git repos / blockattack-game

blame: source/code/menudef.cpp

normal view · raw

593aeae4 sago007 2011-06-25 22:42 1
/*
af35c39d sago007 2013-11-16 16:37 2
===========================================================================
af35c39d sago007 2013-11-16 16:37 3
blockattack - Block Attack - Rise of the Blocks
af35c39d sago007 2013-11-16 16:37 4
Copyright (C) 2005-2013 Poul Sander
af35c39d sago007 2013-11-16 16:37 5
af35c39d sago007 2013-11-16 16:37 6
This program is free software: you can redistribute it and/or modify
af35c39d sago007 2013-11-16 16:37 7
it under the terms of the GNU General Public License as published by
af35c39d sago007 2013-11-16 16:37 8
the Free Software Foundation, either version 2 of the License, or
af35c39d sago007 2013-11-16 16:37 9
(at your option) any later version.
af35c39d sago007 2013-11-16 16:37 10
af35c39d sago007 2013-11-16 16:37 11
This program is distributed in the hope that it will be useful,
af35c39d sago007 2013-11-16 16:37 12
but WITHOUT ANY WARRANTY; without even the implied warranty of
af35c39d sago007 2013-11-16 16:37 13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
af35c39d sago007 2013-11-16 16:37 14
GNU General Public License for more details.
af35c39d sago007 2013-11-16 16:37 15
af35c39d sago007 2013-11-16 16:37 16
You should have received a copy of the GNU General Public License
af35c39d sago007 2013-11-16 16:37 17
along with this program.  If not, see http://www.gnu.org/licenses/
af35c39d sago007 2013-11-16 16:37 18
af35c39d sago007 2013-11-16 16:37 19
Source information and contacts persons can be found at
021de090 sago007 2015-12-30 18:56 20
http://blockattack.net
af35c39d sago007 2013-11-16 16:37 21
===========================================================================
593aeae4 sago007 2011-06-25 22:42 22
*/
26ddb424 sago007 2011-06-09 20:06 23
#include "global.hpp"
26ddb424 sago007 2011-06-09 20:06 24
#include <iostream>
26ddb424 sago007 2011-06-09 20:06 25
#include <stdlib.h>
26ddb424 sago007 2011-06-09 20:06 26
#include "MenuSystem.h"
c9dd376f sago007 2012-01-20 17:13 27
#include "common.h"
d8fe60bd sago007 2018-04-02 16:15 28
#include "HelpHowtoState.hpp"
54d2d583 sago007 2018-04-05 17:52 29
#include "HelpGamepadState.hpp"
5147de4e Poul Sander 2018-05-06 12:59 30
#include "HelpAboutState.hpp"
26ddb424 sago007 2011-06-09 20:06 31
96eb7a16 sago007 2016-04-29 17:01 32
using std::string;
96eb7a16 sago007 2016-04-29 17:01 33
using std::cerr;
3478201d sago007 2016-06-04 14:44 34
using std::cout;
96eb7a16 sago007 2016-04-29 17:01 35
using std::vector;
26ddb424 sago007 2011-06-09 20:06 36
3838c95c sago007 2016-01-23 10:47 37
#if 0
26ddb424 sago007 2011-06-09 20:06 38
//Menu
ecef5838 sago007 2015-11-24 20:01 39
static void PrintHi(Button* b) {
161a010c sago007 2016-05-06 14:00 40
	cout << "Hi" <<"\n";
26ddb424 sago007 2011-06-09 20:06 41
}
3838c95c sago007 2016-01-23 10:47 42
#endif
26ddb424 sago007 2011-06-09 20:06 43
593aeae4 sago007 2011-06-25 22:42 44
//Stores the controls
ecef5838 sago007 2015-11-24 20:01 45
struct control {
1d2e2129 sago007 2015-12-23 15:41 46
	SDL_Keycode up;
1d2e2129 sago007 2015-12-23 15:41 47
	SDL_Keycode down;
1d2e2129 sago007 2015-12-23 15:41 48
	SDL_Keycode left;
1d2e2129 sago007 2015-12-23 15:41 49
	SDL_Keycode right;
1d2e2129 sago007 2015-12-23 15:41 50
	SDL_Keycode change;
1d2e2129 sago007 2015-12-23 15:41 51
	SDL_Keycode push;
593aeae4 sago007 2011-06-25 22:42 52
};
593aeae4 sago007 2011-06-25 22:42 53
26ddb424 sago007 2011-06-09 20:06 54
void OpenScoresDisplay();
593aeae4 sago007 2011-06-25 22:42 55
extern control keySettings[3];
593aeae4 sago007 2011-06-25 22:42 56
593aeae4 sago007 2011-06-25 22:42 57
//Function to return the name of a key, to be displayed...
1d2e2129 sago007 2015-12-23 15:41 58
static string getKeyName(SDL_Keycode key) {
c53e6443 sago007 2012-04-17 11:04 59
	string keyname(SDL_GetKeyName(key));
72383a9e sago007 2016-10-30 11:56 60
	if (globalData.verboseLevel) {
161a010c sago007 2016-05-06 14:00 61
		cout << key << " translated to " << keyname << "\n";
acd79baf sago007 2015-11-22 19:37 62
	}
c53e6443 sago007 2012-04-17 11:04 63
	return keyname;
593aeae4 sago007 2011-06-25 22:42 64
}
593aeae4 sago007 2011-06-25 22:42 65
ecef5838 sago007 2015-11-24 20:01 66
class Button_changekey : public Button {
593aeae4 sago007 2011-06-25 22:42 67
private:
1d2e2129 sago007 2015-12-23 15:41 68
	SDL_Keycode* m_key2change;
c53e6443 sago007 2012-04-17 11:04 69
	string m_keyname;
593aeae4 sago007 2011-06-25 22:42 70
public:
1d2e2129 sago007 2015-12-23 15:41 71
	Button_changekey(SDL_Keycode* key, string keyname);
c53e6443 sago007 2012-04-17 11:04 72
	void doAction();
593aeae4 sago007 2011-06-25 22:42 73
};
593aeae4 sago007 2011-06-25 22:42 74
6710d462 sago007 2012-05-12 17:23 75
1d2e2129 sago007 2015-12-23 15:41 76
Button_changekey::Button_changekey(SDL_Keycode* key, string keyname) {
c53e6443 sago007 2012-04-17 11:04 77
	m_key2change = key;
c53e6443 sago007 2012-04-17 11:04 78
	m_keyname = keyname;
c53e6443 sago007 2012-04-17 11:04 79
	setLabel(m_keyname+" : "+getKeyName(*m_key2change));
593aeae4 sago007 2011-06-25 22:42 80
}
593aeae4 sago007 2011-06-25 22:42 81
ecef5838 sago007 2015-11-24 20:01 82
void Button_changekey::doAction() {
c53e6443 sago007 2012-04-17 11:04 83
	SDL_Event event;
c53e6443 sago007 2012-04-17 11:04 84
c53e6443 sago007 2012-04-17 11:04 85
	bool finnish = false;
ecef5838 sago007 2015-11-24 20:01 86
	while (!finnish) {
c53e6443 sago007 2012-04-17 11:04 87
		SDL_Delay(10);
ecef5838 sago007 2015-11-24 20:01 88
		while ( SDL_PollEvent(&event) ) {
ecef5838 sago007 2015-11-24 20:01 89
			if (event.type == SDL_KEYDOWN) {
acd79baf sago007 2015-11-22 19:37 90
				if (event.key.keysym.sym != SDLK_ESCAPE) {
c53e6443 sago007 2012-04-17 11:04 91
					*m_key2change = event.key.keysym.sym;
acd79baf sago007 2015-11-22 19:37 92
				}
c53e6443 sago007 2012-04-17 11:04 93
				finnish = true;
c53e6443 sago007 2012-04-17 11:04 94
			}
c53e6443 sago007 2012-04-17 11:04 95
		}
c53e6443 sago007 2012-04-17 11:04 96
	}
c53e6443 sago007 2012-04-17 11:04 97
	setLabel(m_keyname+" : "+getKeyName(*m_key2change));
593aeae4 sago007 2011-06-25 22:42 98
}
26ddb424 sago007 2011-06-09 20:06 99
ecef5838 sago007 2015-11-24 20:01 100
void InitMenues() {
094b2dfe sago007 2016-06-12 10:50 101
	standardButton.setSurfaces();
26ddb424 sago007 2011-06-09 20:06 102
}
26ddb424 sago007 2011-06-09 20:06 103
29edda2d sago007 2016-10-08 18:06 104
static void runSinglePlayerEndless() {
de81e07d sago007 2016-07-10 20:22 105
	runGame(Gametype::SinglePlayerEndless, 0);
26ddb424 sago007 2011-06-09 20:06 106
}
26ddb424 sago007 2011-06-09 20:06 107
29edda2d sago007 2016-10-08 18:06 108
static void runSinglePlayerTimeTrial() {
de81e07d sago007 2016-07-10 20:22 109
	runGame(Gametype::SinglePlayerTimeTrial, 0);
26ddb424 sago007 2011-06-09 20:06 110
}
26ddb424 sago007 2011-06-09 20:06 111
29edda2d sago007 2016-10-08 18:06 112
static void runStageClear() {
de81e07d sago007 2016-07-10 20:22 113
	runGame(Gametype::StageClear, 0);
aede0664 sago007 2012-04-19 19:45 114
}
aede0664 sago007 2012-04-19 19:45 115
29edda2d sago007 2016-10-08 18:06 116
static void runSinglePlayerPuzzle() {
de81e07d sago007 2016-07-10 20:22 117
	runGame(Gametype::Puzzle, 0);
26ddb424 sago007 2011-06-09 20:06 118
}
26ddb424 sago007 2011-06-09 20:06 119
29edda2d sago007 2016-10-08 18:06 120
class RunSinglePlayerVsButton : public Button {
29edda2d sago007 2016-10-08 18:06 121
	virtual void doAction() override {
29edda2d sago007 2016-10-08 18:06 122
		runGame(Gametype::SinglePlayerVs, iGeneric1);
29edda2d sago007 2016-10-08 18:06 123
	}
29edda2d sago007 2016-10-08 18:06 124
};
26ddb424 sago007 2011-06-09 20:06 125
29edda2d sago007 2016-10-08 18:06 126
static void runTwoPlayerTimeTrial() {
de81e07d sago007 2016-07-10 20:22 127
	runGame(Gametype::TwoPlayerTimeTrial, 0);
b0222eff sago007 2012-04-22 15:06 128
}
b0222eff sago007 2012-04-22 15:06 129
29edda2d sago007 2016-10-08 18:06 130
static void runTwoPlayerVs() {
de81e07d sago007 2016-07-10 20:22 131
	runGame(Gametype::TwoPlayerVs, 0);
b0222eff sago007 2012-04-22 15:06 132
}
b0222eff sago007 2012-04-22 15:06 133
29edda2d sago007 2016-10-08 18:06 134
class MusicButton : public Button {
29edda2d sago007 2016-10-08 18:06 135
	virtual void doAction() override {
72383a9e sago007 2016-10-30 11:56 136
		globalData.MusicEnabled = !globalData.MusicEnabled;
72383a9e sago007 2016-10-30 11:56 137
		setLabel(globalData.MusicEnabled? _("Music: On") : _("Music: Off"));
29edda2d sago007 2016-10-08 18:06 138
	}
26ddb424 sago007 2011-06-09 20:06 139
29edda2d sago007 2016-10-08 18:06 140
};
26ddb424 sago007 2011-06-09 20:06 141
29edda2d sago007 2016-10-08 18:06 142
class SoundButton : public Button {
29edda2d sago007 2016-10-08 18:06 143
	virtual void doAction() override {
72383a9e sago007 2016-10-30 11:56 144
		globalData.SoundEnabled = !globalData.SoundEnabled;
72383a9e sago007 2016-10-30 11:56 145
		setLabel(globalData.SoundEnabled? _("Sound: On") : _("Sound: Off") );
29edda2d sago007 2016-10-08 18:06 146
	}
29edda2d sago007 2016-10-08 18:06 147
};
29edda2d sago007 2016-10-08 18:06 148
29edda2d sago007 2016-10-08 18:06 149
class FullscreenButton : public Button {
29edda2d sago007 2016-10-08 18:06 150
	virtual void doAction() override {
72383a9e sago007 2016-10-30 11:56 151
		globalData.bFullscreen = !globalData.bFullscreen;
72383a9e sago007 2016-10-30 11:56 152
		setLabel(globalData.bFullscreen? _("Fullscreen: On") : _("Fullscreen: Off") );
29edda2d sago007 2016-10-08 18:06 153
		ResetFullscreen();
29edda2d sago007 2016-10-08 18:06 154
	}
29edda2d sago007 2016-10-08 18:06 155
};
26ddb424 sago007 2011-06-09 20:06 156
29edda2d sago007 2016-10-08 18:06 157
static void buttonActionPlayer1Name() {
72383a9e sago007 2016-10-30 11:56 158
	if ( OpenDialogbox(200, 100, globalData.player1name, _("Enter player 1 name:")) ) {
acd79baf sago007 2015-11-22 19:37 159
		return;    //must save if true
acd79baf sago007 2015-11-22 19:37 160
	}
26ddb424 sago007 2011-06-09 20:06 161
}
26ddb424 sago007 2011-06-09 20:06 162
29edda2d sago007 2016-10-08 18:06 163
static void buttonActionPlayer2Name() {
72383a9e sago007 2016-10-30 11:56 164
	if ( OpenDialogbox(200, 100, globalData.player2name, _("Enter player 2 name:")) ) {
acd79baf sago007 2015-11-22 19:37 165
		return;    //must save if true
acd79baf sago007 2015-11-22 19:37 166
	}
26ddb424 sago007 2011-06-09 20:06 167
}
26ddb424 sago007 2011-06-09 20:06 168
29edda2d sago007 2016-10-08 18:06 169
static void buttonActionHighscores() {
c53e6443 sago007 2012-04-17 11:04 170
	OpenScoresDisplay();
26ddb424 sago007 2011-06-09 20:06 171
}
26ddb424 sago007 2011-06-09 20:06 172
ecef5838 sago007 2015-11-24 20:01 173
static void ChangeKeysMenu(long playernumber) {
72383a9e sago007 2016-10-30 11:56 174
	Menu km(globalData.screen,_("Change key bindings"),true);
c53e6443 sago007 2012-04-17 11:04 175
	Button_changekey bLeft(&keySettings[playernumber].left,_("Left") );
c53e6443 sago007 2012-04-17 11:04 176
	Button_changekey bRight(&keySettings[playernumber].right,_("Right") );
c53e6443 sago007 2012-04-17 11:04 177
	Button_changekey bUp(&keySettings[playernumber].up,_("Up") );
c53e6443 sago007 2012-04-17 11:04 178
	Button_changekey bDown(&keySettings[playernumber].down,_("Down") );
c53e6443 sago007 2012-04-17 11:04 179
	Button_changekey bPush(&keySettings[playernumber].push,_("Push") );
c53e6443 sago007 2012-04-17 11:04 180
	Button_changekey bSwitch(&keySettings[playernumber].change,_("Change") );
c53e6443 sago007 2012-04-17 11:04 181
	km.addButton(&bLeft);
c53e6443 sago007 2012-04-17 11:04 182
	km.addButton(&bRight);
c53e6443 sago007 2012-04-17 11:04 183
	km.addButton(&bUp);
c53e6443 sago007 2012-04-17 11:04 184
	km.addButton(&bDown);
c53e6443 sago007 2012-04-17 11:04 185
	km.addButton(&bPush);
c53e6443 sago007 2012-04-17 11:04 186
	km.addButton(&bSwitch);
20d77c6e sago007 2016-11-12 16:28 187
	RunGameState(km);
c53e6443 sago007 2012-04-17 11:04 188
}
c53e6443 sago007 2012-04-17 11:04 189
29edda2d sago007 2016-10-08 18:06 190
static void ChangeKeysMenu1() {
c53e6443 sago007 2012-04-17 11:04 191
	ChangeKeysMenu(0);
593aeae4 sago007 2011-06-25 22:42 192
}
593aeae4 sago007 2011-06-25 22:42 193
29edda2d sago007 2016-10-08 18:06 194
static void ChangeKeysMenu2() {
c53e6443 sago007 2012-04-17 11:04 195
	ChangeKeysMenu(2);
593aeae4 sago007 2011-06-25 22:42 196
}
fc8e3d6a sago007 2011-06-25 16:31 197
29edda2d sago007 2016-10-08 18:06 198
static void ConfigureMenu() {
72383a9e sago007 2016-10-30 11:56 199
	Menu cm(globalData.screen,_("Configuration"),true);
29edda2d sago007 2016-10-08 18:06 200
	Button bPlayer1Name,bPlayer2Name;
c53e6443 sago007 2012-04-17 11:04 201
	Button bPlayer1Keys, bPlayer2Keys;
29edda2d sago007 2016-10-08 18:06 202
	MusicButton bMusic;
29edda2d sago007 2016-10-08 18:06 203
	SoundButton bSound;
29edda2d sago007 2016-10-08 18:06 204
	FullscreenButton buttonFullscreen;
72383a9e sago007 2016-10-30 11:56 205
	bMusic.setLabel(globalData.MusicEnabled? _("Music: On") : _("Music: Off") );
72383a9e sago007 2016-10-30 11:56 206
	bSound.setLabel(globalData.SoundEnabled? _("Sound: On") : _("Sound: Off") );
72383a9e sago007 2016-10-30 11:56 207
	buttonFullscreen.setLabel(globalData.bFullscreen? _("Fullscreen: On") : _("Fullscreen: Off") );
c53e6443 sago007 2012-04-17 11:04 208
	bPlayer1Name.setAction(buttonActionPlayer1Name);
c53e6443 sago007 2012-04-17 11:04 209
	bPlayer1Name.setLabel(_("Change player 1's name") );
c53e6443 sago007 2012-04-17 11:04 210
	bPlayer2Name.setAction(buttonActionPlayer2Name);
c53e6443 sago007 2012-04-17 11:04 211
	bPlayer2Name.setLabel(_("Change player 2's name") );
c53e6443 sago007 2012-04-17 11:04 212
	bPlayer1Keys.setAction(ChangeKeysMenu1);
c53e6443 sago007 2012-04-17 11:04 213
	bPlayer1Keys.setLabel(_("Change player 1's keys") );
c53e6443 sago007 2012-04-17 11:04 214
	bPlayer2Keys.setAction(ChangeKeysMenu2);
c53e6443 sago007 2012-04-17 11:04 215
	bPlayer2Keys.setLabel(_("Change player 2's keys") );
c53e6443 sago007 2012-04-17 11:04 216
	cm.addButton(&bMusic);
c53e6443 sago007 2012-04-17 11:04 217
	cm.addButton(&bSound);
c53e6443 sago007 2012-04-17 11:04 218
	cm.addButton(&buttonFullscreen);
c53e6443 sago007 2012-04-17 11:04 219
	cm.addButton(&bPlayer1Name);
c53e6443 sago007 2012-04-17 11:04 220
	cm.addButton(&bPlayer2Name);
c53e6443 sago007 2012-04-17 11:04 221
	cm.addButton(&bPlayer1Keys);
c53e6443 sago007 2012-04-17 11:04 222
	cm.addButton(&bPlayer2Keys);
20d77c6e sago007 2016-11-12 16:28 223
	RunGameState(cm);
26ddb424 sago007 2011-06-09 20:06 224
}
26ddb424 sago007 2011-06-09 20:06 225
29edda2d sago007 2016-10-08 18:06 226
static void SinglePlayerVsMenu() {
72383a9e sago007 2016-10-30 11:56 227
	Menu spvs(globalData.screen,_("Single player VS"),true);
29edda2d sago007 2016-10-08 18:06 228
	RunSinglePlayerVsButton d1,d2,d3,d4,d5,d6,d7;
67a32395 sago007 2012-04-19 18:40 229
	d1.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 230
	d2.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 231
	d3.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 232
	d4.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 233
	d5.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 234
	d6.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 235
	d7.setPopOnRun(true);
e68d08eb sago007 2013-11-15 22:33 236
	d1.iGeneric1 = 0;
e68d08eb sago007 2013-11-15 22:33 237
	d2.iGeneric1 = 1;
e68d08eb sago007 2013-11-15 22:33 238
	d3.iGeneric1 = 2;
e68d08eb sago007 2013-11-15 22:33 239
	d4.iGeneric1 = 3;
e68d08eb sago007 2013-11-15 22:33 240
	d5.iGeneric1 = 4;
e68d08eb sago007 2013-11-15 22:33 241
	d6.iGeneric1 = 5;
e68d08eb sago007 2013-11-15 22:33 242
	d7.iGeneric1 = 6;
67a32395 sago007 2012-04-19 18:40 243
	d1.setLabel(_("Very easy"));
67a32395 sago007 2012-04-19 18:40 244
	d2.setLabel(_("Easy"));
67a32395 sago007 2012-04-19 18:40 245
	d3.setLabel(_("Below normal"));
67a32395 sago007 2012-04-19 18:40 246
	d4.setLabel(_("Normal"));
67a32395 sago007 2012-04-19 18:40 247
	d5.setLabel(_("Above normal"));
67a32395 sago007 2012-04-19 18:40 248
	d6.setLabel(_("Hard"));
67a32395 sago007 2012-04-19 18:40 249
	d7.setLabel(_("Hardest"));
67a32395 sago007 2012-04-19 18:40 250
	spvs.addButton(&d1);
67a32395 sago007 2012-04-19 18:40 251
	spvs.addButton(&d2);
67a32395 sago007 2012-04-19 18:40 252
	spvs.addButton(&d3);
67a32395 sago007 2012-04-19 18:40 253
	spvs.addButton(&d4);
67a32395 sago007 2012-04-19 18:40 254
	spvs.addButton(&d5);
67a32395 sago007 2012-04-19 18:40 255
	spvs.addButton(&d6);
67a32395 sago007 2012-04-19 18:40 256
	spvs.addButton(&d7);
20d77c6e sago007 2016-11-12 16:28 257
	RunGameState(spvs);
67a32395 sago007 2012-04-19 18:40 258
}
67a32395 sago007 2012-04-19 18:40 259
29edda2d sago007 2016-10-08 18:06 260
static void MultiplayerMenu() {
72383a9e sago007 2016-10-30 11:56 261
	Menu mm(globalData.screen,_("Multiplayer"),true);
de81e07d sago007 2016-07-10 20:22 262
	Button bTT, bVs;
b0222eff sago007 2012-04-22 15:06 263
	bTT.setLabel(_("Two player - time trial"));
b0222eff sago007 2012-04-22 15:06 264
	bTT.setAction(runTwoPlayerTimeTrial);
b0222eff sago007 2012-04-22 15:06 265
	bVs.setLabel(_("Two player - vs"));
b0222eff sago007 2012-04-22 15:06 266
	bVs.setAction(runTwoPlayerVs);
b0222eff sago007 2012-04-22 15:06 267
	mm.addButton(&bTT);
b0222eff sago007 2012-04-22 15:06 268
	mm.addButton(&bVs);
20d77c6e sago007 2016-11-12 16:28 269
	RunGameState(mm);
b0222eff sago007 2012-04-22 15:06 270
}
b0222eff sago007 2012-04-22 15:06 271
d8fe60bd sago007 2018-04-02 16:15 272
static void runHowto() {
d8fe60bd sago007 2018-04-02 16:15 273
	HelpHowtoState howto;
d8fe60bd sago007 2018-04-02 16:15 274
	RunGameState(howto);
d8fe60bd sago007 2018-04-02 16:15 275
}
d8fe60bd sago007 2018-04-02 16:15 276
54d2d583 sago007 2018-04-05 17:52 277
static void runHelpGamepad() {
54d2d583 sago007 2018-04-05 17:52 278
	HelpGamepadState helpGamepad;
54d2d583 sago007 2018-04-05 17:52 279
	RunGameState(helpGamepad);
54d2d583 sago007 2018-04-05 17:52 280
}
54d2d583 sago007 2018-04-05 17:52 281
5147de4e Poul Sander 2018-05-06 12:59 282
static void runHelpAbout() {
5147de4e Poul Sander 2018-05-06 12:59 283
	HelpAboutState helpAbout;
5147de4e Poul Sander 2018-05-06 12:59 284
	RunGameState(helpAbout);
5147de4e Poul Sander 2018-05-06 12:59 285
}
5147de4e Poul Sander 2018-05-06 12:59 286
d8fe60bd sago007 2018-04-02 16:15 287
static void HelpMenu() {
d8fe60bd sago007 2018-04-02 16:15 288
	Menu m(globalData.screen, _("Help"), true);
d8fe60bd sago007 2018-04-02 16:15 289
	Button bHowto;
d8fe60bd sago007 2018-04-02 16:15 290
	bHowto.setLabel(_("How to"));
d8fe60bd sago007 2018-04-02 16:15 291
	bHowto.setAction(runHowto);
d8fe60bd sago007 2018-04-02 16:15 292
	m.addButton(&bHowto);
54d2d583 sago007 2018-04-05 17:52 293
	Button bGamepad;
54d2d583 sago007 2018-04-05 17:52 294
	bGamepad.setLabel(_("Gamepad"));
54d2d583 sago007 2018-04-05 17:52 295
	bGamepad.setAction(runHelpGamepad);
54d2d583 sago007 2018-04-05 17:52 296
	m.addButton(&bGamepad);
5147de4e Poul Sander 2018-05-06 12:59 297
	Button bAbout;
5147de4e Poul Sander 2018-05-06 12:59 298
	bAbout.setLabel(_("About"));
5147de4e Poul Sander 2018-05-06 12:59 299
	bAbout.setAction(runHelpAbout);
5147de4e Poul Sander 2018-05-06 12:59 300
	m.addButton(&bAbout);
d8fe60bd sago007 2018-04-02 16:15 301
	RunGameState(m);
d8fe60bd sago007 2018-04-02 16:15 302
}
d8fe60bd sago007 2018-04-02 16:15 303
2f331f0c sago007 2017-08-19 16:17 304
static void SinglePlayerMenu() {
2f331f0c sago007 2017-08-19 16:17 305
	Menu m(globalData.screen, _("Single player"), true);
2f331f0c sago007 2017-08-19 16:17 306
	Button bHi,bTimetrial1, bStageClear, bPuzzle, bVs1;
c53e6443 sago007 2012-04-17 11:04 307
	bHi.setLabel(_("Single player - endless") );
c53e6443 sago007 2012-04-17 11:04 308
	bHi.setAction(runSinglePlayerEndless);
c53e6443 sago007 2012-04-17 11:04 309
	bTimetrial1.setLabel(_("Single player - time trial") );
c53e6443 sago007 2012-04-17 11:04 310
	bTimetrial1.setAction(runSinglePlayerTimeTrial);
aede0664 sago007 2012-04-19 19:45 311
	bStageClear.setLabel(_("Single player - stage clear") );
aede0664 sago007 2012-04-19 19:45 312
	bStageClear.setAction(runStageClear);
c53e6443 sago007 2012-04-17 11:04 313
	bPuzzle.setLabel(_("Single player - puzzle mode") );
c53e6443 sago007 2012-04-17 11:04 314
	bPuzzle.setAction(runSinglePlayerPuzzle);
c53e6443 sago007 2012-04-17 11:04 315
	bVs1.setLabel(_("Single player - vs") );
67a32395 sago007 2012-04-19 18:40 316
	bVs1.setAction(SinglePlayerVsMenu);
2f331f0c sago007 2017-08-19 16:17 317
	m.addButton(&bHi);
2f331f0c sago007 2017-08-19 16:17 318
	m.addButton(&bTimetrial1);
2f331f0c sago007 2017-08-19 16:17 319
	m.addButton(&bStageClear);
2f331f0c sago007 2017-08-19 16:17 320
	m.addButton(&bPuzzle);
2f331f0c sago007 2017-08-19 16:17 321
	m.addButton(&bVs1);
2f331f0c sago007 2017-08-19 16:17 322
	RunGameState(m);
2f331f0c sago007 2017-08-19 16:17 323
}
2f331f0c sago007 2017-08-19 16:17 324
2f331f0c sago007 2017-08-19 16:17 325
void MainMenu() {
2f331f0c sago007 2017-08-19 16:17 326
	InitMenues();
2f331f0c sago007 2017-08-19 16:17 327
	Menu m(globalData.screen,_("Block Attack - Rise of the blocks"),false);
d8fe60bd sago007 2018-04-02 16:15 328
	Button bHi, bMulti, bConfigure, bHighscore, bHelp;
2f331f0c sago007 2017-08-19 16:17 329
	bHi.setLabel(_("Single player") );
2f331f0c sago007 2017-08-19 16:17 330
	bHi.setAction(SinglePlayerMenu);
b0222eff sago007 2012-04-22 15:06 331
	bMulti.setLabel(_("Multi player") );
b0222eff sago007 2012-04-22 15:06 332
	bMulti.setAction(MultiplayerMenu);
c53e6443 sago007 2012-04-17 11:04 333
	bConfigure.setLabel(_("Configure") );
c53e6443 sago007 2012-04-17 11:04 334
	bConfigure.setAction(ConfigureMenu);
c53e6443 sago007 2012-04-17 11:04 335
	bHighscore.setLabel(_("Highscores") );
c53e6443 sago007 2012-04-17 11:04 336
	bHighscore.setAction(buttonActionHighscores);
d8fe60bd sago007 2018-04-02 16:15 337
	bHelp.setLabel(_("Help"));
d8fe60bd sago007 2018-04-02 16:15 338
	bHelp.setAction(HelpMenu);
c53e6443 sago007 2012-04-17 11:04 339
	m.addButton(&bHi);
b0222eff sago007 2012-04-22 15:06 340
	m.addButton(&bMulti);
c53e6443 sago007 2012-04-17 11:04 341
	m.addButton(&bConfigure);
c53e6443 sago007 2012-04-17 11:04 342
	m.addButton(&bHighscore);
d8fe60bd sago007 2018-04-02 16:15 343
	m.addButton(&bHelp);
95ab6b0d sago007 2016-11-12 16:11 344
	RunGameState(m);
593aeae4 sago007 2011-06-25 22:42 345
}
1970-01-01 00:00 346