git repos / blockattack-game

blame: source/code/menudef.cpp

normal view · raw

593aeae4 sago007 2011-06-25 22:42 1
/*
593aeae4 sago007 2011-06-25 22:42 2
menudef.cpp
593aeae4 sago007 2011-06-25 22:42 3
Copyright (C) 2011 Poul Sander
593aeae4 sago007 2011-06-25 22:42 4
593aeae4 sago007 2011-06-25 22:42 5
    This program is free software; you can redistribute it and/or modify
593aeae4 sago007 2011-06-25 22:42 6
    it under the terms of the GNU General Public License as published by
593aeae4 sago007 2011-06-25 22:42 7
    the Free Software Foundation; either version 2 of the License, or
593aeae4 sago007 2011-06-25 22:42 8
    (at your option) any later version.
593aeae4 sago007 2011-06-25 22:42 9
593aeae4 sago007 2011-06-25 22:42 10
    This program is distributed in the hope that it will be useful,
593aeae4 sago007 2011-06-25 22:42 11
    but WITHOUT ANY WARRANTY; without even the implied warranty of
593aeae4 sago007 2011-06-25 22:42 12
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
593aeae4 sago007 2011-06-25 22:42 13
    GNU General Public License for more details.
593aeae4 sago007 2011-06-25 22:42 14
593aeae4 sago007 2011-06-25 22:42 15
    You should have received a copy of the GNU General Public License
593aeae4 sago007 2011-06-25 22:42 16
    along with this program; if not, write to the Free Software
593aeae4 sago007 2011-06-25 22:42 17
    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
593aeae4 sago007 2011-06-25 22:42 18
593aeae4 sago007 2011-06-25 22:42 19
    Poul Sander
593aeae4 sago007 2011-06-25 22:42 20
    blockattack@poulsander.com
593aeae4 sago007 2011-06-25 22:42 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 "menu/MenuItem.hpp"
26ddb424 sago007 2011-06-09 20:06 27
#include "MenuSystem.h"
c9dd376f sago007 2012-01-20 17:13 28
#include "common.h"
26ddb424 sago007 2011-06-09 20:06 29
26ddb424 sago007 2011-06-09 20:06 30
using namespace std;
26ddb424 sago007 2011-06-09 20:06 31
26ddb424 sago007 2011-06-09 20:06 32
//Menu
6710d462 sago007 2012-05-12 17:23 33
static void PrintHi(Button* b)
26ddb424 sago007 2011-06-09 20:06 34
{
c53e6443 sago007 2012-04-17 11:04 35
	cout << "Hi" <<endl;
26ddb424 sago007 2011-06-09 20:06 36
}
26ddb424 sago007 2011-06-09 20:06 37
593aeae4 sago007 2011-06-25 22:42 38
//Stores the controls
593aeae4 sago007 2011-06-25 22:42 39
struct control
593aeae4 sago007 2011-06-25 22:42 40
{
c53e6443 sago007 2012-04-17 11:04 41
	SDLKey up;
c53e6443 sago007 2012-04-17 11:04 42
	SDLKey down;
c53e6443 sago007 2012-04-17 11:04 43
	SDLKey left;
c53e6443 sago007 2012-04-17 11:04 44
	SDLKey right;
c53e6443 sago007 2012-04-17 11:04 45
	SDLKey change;
c53e6443 sago007 2012-04-17 11:04 46
	SDLKey push;
593aeae4 sago007 2011-06-25 22:42 47
};
593aeae4 sago007 2011-06-25 22:42 48
26ddb424 sago007 2011-06-09 20:06 49
bool OpenDialogbox(int x, int y, char *name);
26ddb424 sago007 2011-06-09 20:06 50
void OpenScoresDisplay();
593aeae4 sago007 2011-06-25 22:42 51
extern control keySettings[3];
593aeae4 sago007 2011-06-25 22:42 52
593aeae4 sago007 2011-06-25 22:42 53
//Function to return the name of a key, to be displayed...
593aeae4 sago007 2011-06-25 22:42 54
static string getKeyName(SDLKey key)
593aeae4 sago007 2011-06-25 22:42 55
{
c53e6443 sago007 2012-04-17 11:04 56
	string keyname(SDL_GetKeyName(key));
c53e6443 sago007 2012-04-17 11:04 57
	cout << key << " translated to " << keyname << endl;
c53e6443 sago007 2012-04-17 11:04 58
	return keyname;
593aeae4 sago007 2011-06-25 22:42 59
}
593aeae4 sago007 2011-06-25 22:42 60
c53e6443 sago007 2012-04-17 11:04 61
class Button_changekey : public Button
c53e6443 sago007 2012-04-17 11:04 62
{
593aeae4 sago007 2011-06-25 22:42 63
private:
c53e6443 sago007 2012-04-17 11:04 64
	SDLKey *m_key2change;
c53e6443 sago007 2012-04-17 11:04 65
	string m_keyname;
593aeae4 sago007 2011-06-25 22:42 66
public:
c53e6443 sago007 2012-04-17 11:04 67
	Button_changekey(SDLKey *key, string keyname);
c53e6443 sago007 2012-04-17 11:04 68
	void doAction();
593aeae4 sago007 2011-06-25 22:42 69
};
593aeae4 sago007 2011-06-25 22:42 70
6710d462 sago007 2012-05-12 17:23 71
c53e6443 sago007 2012-04-17 11:04 72
Button_changekey::Button_changekey(SDLKey* key, string keyname)
c53e6443 sago007 2012-04-17 11:04 73
{
c53e6443 sago007 2012-04-17 11:04 74
	m_key2change = key;
c53e6443 sago007 2012-04-17 11:04 75
	m_keyname = keyname;
c53e6443 sago007 2012-04-17 11:04 76
	setLabel(m_keyname+" : "+getKeyName(*m_key2change));
593aeae4 sago007 2011-06-25 22:42 77
}
593aeae4 sago007 2011-06-25 22:42 78
c53e6443 sago007 2012-04-17 11:04 79
void Button_changekey::doAction()
c53e6443 sago007 2012-04-17 11:04 80
{
c53e6443 sago007 2012-04-17 11:04 81
	SDL_Event event;
c53e6443 sago007 2012-04-17 11:04 82
c53e6443 sago007 2012-04-17 11:04 83
	bool finnish = false;
c53e6443 sago007 2012-04-17 11:04 84
	while (!finnish)
c53e6443 sago007 2012-04-17 11:04 85
	{
c53e6443 sago007 2012-04-17 11:04 86
		SDL_Delay(10);
c53e6443 sago007 2012-04-17 11:04 87
		while ( SDL_PollEvent(&event) )
c53e6443 sago007 2012-04-17 11:04 88
		{
c53e6443 sago007 2012-04-17 11:04 89
			if (event.type == SDL_KEYDOWN)
c53e6443 sago007 2012-04-17 11:04 90
			{
c53e6443 sago007 2012-04-17 11:04 91
				if (event.key.keysym.sym != SDLK_ESCAPE)
c53e6443 sago007 2012-04-17 11:04 92
					*m_key2change = event.key.keysym.sym;
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
26ddb424 sago007 2011-06-09 20:06 100
void InitMenues()
26ddb424 sago007 2011-06-09 20:06 101
{
b283e0f7 sago007 2012-07-29 14:01 102
	standardButton.setSurfaces(menuMarked,menuUnmarked);
b283e0f7 sago007 2012-07-29 14:01 103
	standardButton.thefont = nf_scoreboard_font;
26ddb424 sago007 2011-06-09 20:06 104
}
26ddb424 sago007 2011-06-09 20:06 105
67a32395 sago007 2012-04-19 18:40 106
void runGame(int gametype,int level);
26ddb424 sago007 2011-06-09 20:06 107
6710d462 sago007 2012-05-12 17:23 108
static void runSinglePlayerEndless(Button* b)
c53e6443 sago007 2012-04-17 11:04 109
{
67a32395 sago007 2012-04-19 18:40 110
	runGame(0,0);
26ddb424 sago007 2011-06-09 20:06 111
}
26ddb424 sago007 2011-06-09 20:06 112
6710d462 sago007 2012-05-12 17:23 113
static void runSinglePlayerTimeTrial(Button* b)
c53e6443 sago007 2012-04-17 11:04 114
{
67a32395 sago007 2012-04-19 18:40 115
	runGame(1,0);
26ddb424 sago007 2011-06-09 20:06 116
}
26ddb424 sago007 2011-06-09 20:06 117
6710d462 sago007 2012-05-12 17:23 118
static void runStageClear(Button* b)
aede0664 sago007 2012-04-19 19:45 119
{
aede0664 sago007 2012-04-19 19:45 120
	runGame(2,0);
aede0664 sago007 2012-04-19 19:45 121
}
aede0664 sago007 2012-04-19 19:45 122
6710d462 sago007 2012-05-12 17:23 123
static void runSinglePlayerPuzzle(Button* b)
c53e6443 sago007 2012-04-17 11:04 124
{
67a32395 sago007 2012-04-19 18:40 125
	runGame(3,0);
26ddb424 sago007 2011-06-09 20:06 126
}
26ddb424 sago007 2011-06-09 20:06 127
6710d462 sago007 2012-05-12 17:23 128
static void runSinglePlayerVs(Button* b)
c53e6443 sago007 2012-04-17 11:04 129
{
67a32395 sago007 2012-04-19 18:40 130
	runGame(4,b->iGeneric1);
26ddb424 sago007 2011-06-09 20:06 131
}
26ddb424 sago007 2011-06-09 20:06 132
6710d462 sago007 2012-05-12 17:23 133
static void runTwoPlayerTimeTrial(Button* b) 
b0222eff sago007 2012-04-22 15:06 134
{
b0222eff sago007 2012-04-22 15:06 135
	runGame(10,0);
b0222eff sago007 2012-04-22 15:06 136
}
b0222eff sago007 2012-04-22 15:06 137
6710d462 sago007 2012-05-12 17:23 138
static void runTwoPlayerVs(Button* b) 
b0222eff sago007 2012-04-22 15:06 139
{
b0222eff sago007 2012-04-22 15:06 140
	runGame(11,0);
b0222eff sago007 2012-04-22 15:06 141
}
b0222eff sago007 2012-04-22 15:06 142
6710d462 sago007 2012-05-12 17:23 143
static void runHostGame(Button* b) 
6710d462 sago007 2012-05-12 17:23 144
{
6710d462 sago007 2012-05-12 17:23 145
	runGame(12,0);
6710d462 sago007 2012-05-12 17:23 146
}
6710d462 sago007 2012-05-12 17:23 147
6710d462 sago007 2012-05-12 17:23 148
static void runJoinGame(Button* b) 
6710d462 sago007 2012-05-12 17:23 149
{
6710d462 sago007 2012-05-12 17:23 150
	runGame(13,0);
6710d462 sago007 2012-05-12 17:23 151
}
6710d462 sago007 2012-05-12 17:23 152
6710d462 sago007 2012-05-12 17:23 153
static void buttonActionMusic(Button* b)
c53e6443 sago007 2012-04-17 11:04 154
{
c53e6443 sago007 2012-04-17 11:04 155
	MusicEnabled = !MusicEnabled;
c53e6443 sago007 2012-04-17 11:04 156
	b->setLabel(MusicEnabled? "Music: On" : "Music: Off");
26ddb424 sago007 2011-06-09 20:06 157
}
26ddb424 sago007 2011-06-09 20:06 158
6710d462 sago007 2012-05-12 17:23 159
static void buttonActionSound(Button* b)
c53e6443 sago007 2012-04-17 11:04 160
{
c53e6443 sago007 2012-04-17 11:04 161
	SoundEnabled = !SoundEnabled;
c53e6443 sago007 2012-04-17 11:04 162
	b->setLabel(SoundEnabled? _("Sound: On") : _("Sound: Off") );
26ddb424 sago007 2011-06-09 20:06 163
}
26ddb424 sago007 2011-06-09 20:06 164
6710d462 sago007 2012-05-12 17:23 165
static void buttonActionFullscreen(Button* b)
c53e6443 sago007 2012-04-17 11:04 166
{
c53e6443 sago007 2012-04-17 11:04 167
	bFullscreen = !bFullscreen;
c53e6443 sago007 2012-04-17 11:04 168
	b->setLabel(bFullscreen? _("Fullscreen: On") : _("Fullscreen: Off") );
c53e6443 sago007 2012-04-17 11:04 169
	ResetFullscreen();
26ddb424 sago007 2011-06-09 20:06 170
}
26ddb424 sago007 2011-06-09 20:06 171
6710d462 sago007 2012-05-12 17:23 172
static void buttonActionPlayer1Name(Button *b)
c53e6443 sago007 2012-04-17 11:04 173
{
c53e6443 sago007 2012-04-17 11:04 174
	if (OpenDialogbox(200,100,player1name))
c53e6443 sago007 2012-04-17 11:04 175
		return; //must save if true
26ddb424 sago007 2011-06-09 20:06 176
}
26ddb424 sago007 2011-06-09 20:06 177
6710d462 sago007 2012-05-12 17:23 178
static void buttonActionPlayer2Name(Button *b)
c53e6443 sago007 2012-04-17 11:04 179
{
c53e6443 sago007 2012-04-17 11:04 180
	if (OpenDialogbox(200,100,player2name))
c53e6443 sago007 2012-04-17 11:04 181
		return; //must save if true
26ddb424 sago007 2011-06-09 20:06 182
}
26ddb424 sago007 2011-06-09 20:06 183
6710d462 sago007 2012-05-12 17:23 184
static void buttonActionPortChange(Button *b)
b45d8841 sago007 2012-04-23 19:30 185
{
b45d8841 sago007 2012-04-23 19:30 186
	char port[30];
b45d8841 sago007 2012-04-23 19:30 187
	snprintf(port,sizeof(port),"%i",Config::getInstance()->getInt("portv4") );
b45d8841 sago007 2012-04-23 19:30 188
	if (OpenDialogbox(200,100,port) && atoi(port)) 
b45d8841 sago007 2012-04-23 19:30 189
	{
b45d8841 sago007 2012-04-23 19:30 190
		Config::getInstance()->setInt("portv4",atoi(port));
b45d8841 sago007 2012-04-23 19:30 191
		format f(_("Port: %1%") );
b45d8841 sago007 2012-04-23 19:30 192
		f % port;
b45d8841 sago007 2012-04-23 19:30 193
		b->setLabel(f.str());
b45d8841 sago007 2012-04-23 19:30 194
	}
b45d8841 sago007 2012-04-23 19:30 195
}
b45d8841 sago007 2012-04-23 19:30 196
6710d462 sago007 2012-05-12 17:23 197
static void buttonActionIpChange(Button *b)
b45d8841 sago007 2012-04-23 19:30 198
{
b45d8841 sago007 2012-04-23 19:30 199
	char ip[30];
b45d8841 sago007 2012-04-23 19:30 200
	snprintf(ip,sizeof(ip),"%s",Config::getInstance()->getString("address0").c_str() );
b45d8841 sago007 2012-04-23 19:30 201
	if (OpenDialogbox(200,100,ip)) 
b45d8841 sago007 2012-04-23 19:30 202
	{
b45d8841 sago007 2012-04-23 19:30 203
		Config::getInstance()->setString("address0",ip);
b45d8841 sago007 2012-04-23 19:30 204
		format f(_("Address: %1%") );
b45d8841 sago007 2012-04-23 19:30 205
		f % ip;
b45d8841 sago007 2012-04-23 19:30 206
		b->setLabel(f.str());
b45d8841 sago007 2012-04-23 19:30 207
	}
b45d8841 sago007 2012-04-23 19:30 208
}
b45d8841 sago007 2012-04-23 19:30 209
6710d462 sago007 2012-05-12 17:23 210
static void buttonActionHighscores(Button *b)
c53e6443 sago007 2012-04-17 11:04 211
{
c53e6443 sago007 2012-04-17 11:04 212
	OpenScoresDisplay();
26ddb424 sago007 2011-06-09 20:06 213
}
26ddb424 sago007 2011-06-09 20:06 214
c53e6443 sago007 2012-04-17 11:04 215
static void ChangeKeysMenu(long playernumber)
c53e6443 sago007 2012-04-17 11:04 216
{
c53e6443 sago007 2012-04-17 11:04 217
	Menu km(&screen,_("Change key bindings"),true);
c53e6443 sago007 2012-04-17 11:04 218
	Button_changekey bLeft(&keySettings[playernumber].left,_("Left") );
c53e6443 sago007 2012-04-17 11:04 219
	Button_changekey bRight(&keySettings[playernumber].right,_("Right") );
c53e6443 sago007 2012-04-17 11:04 220
	Button_changekey bUp(&keySettings[playernumber].up,_("Up") );
c53e6443 sago007 2012-04-17 11:04 221
	Button_changekey bDown(&keySettings[playernumber].down,_("Down") );
c53e6443 sago007 2012-04-17 11:04 222
	Button_changekey bPush(&keySettings[playernumber].push,_("Push") );
c53e6443 sago007 2012-04-17 11:04 223
	Button_changekey bSwitch(&keySettings[playernumber].change,_("Change") );
c53e6443 sago007 2012-04-17 11:04 224
	km.addButton(&bLeft);
c53e6443 sago007 2012-04-17 11:04 225
	km.addButton(&bRight);
c53e6443 sago007 2012-04-17 11:04 226
	km.addButton(&bUp);
c53e6443 sago007 2012-04-17 11:04 227
	km.addButton(&bDown);
c53e6443 sago007 2012-04-17 11:04 228
	km.addButton(&bPush);
c53e6443 sago007 2012-04-17 11:04 229
	km.addButton(&bSwitch);
c53e6443 sago007 2012-04-17 11:04 230
	km.run();
c53e6443 sago007 2012-04-17 11:04 231
}
c53e6443 sago007 2012-04-17 11:04 232
c53e6443 sago007 2012-04-17 11:04 233
static void ChangeKeysMenu1(Button *b)
c53e6443 sago007 2012-04-17 11:04 234
{
c53e6443 sago007 2012-04-17 11:04 235
	ChangeKeysMenu(0);
593aeae4 sago007 2011-06-25 22:42 236
}
593aeae4 sago007 2011-06-25 22:42 237
c53e6443 sago007 2012-04-17 11:04 238
static void ChangeKeysMenu2(Button *b)
c53e6443 sago007 2012-04-17 11:04 239
{
c53e6443 sago007 2012-04-17 11:04 240
	ChangeKeysMenu(2);
593aeae4 sago007 2011-06-25 22:42 241
}
fc8e3d6a sago007 2011-06-25 16:31 242
6710d462 sago007 2012-05-12 17:23 243
static void ConfigureMenu(Button *b)
c53e6443 sago007 2012-04-17 11:04 244
{
c53e6443 sago007 2012-04-17 11:04 245
	Menu cm(&screen,_("Configuration"),true);
c53e6443 sago007 2012-04-17 11:04 246
	Button bMusic,bSound,buttonFullscreen,bPlayer1Name,bPlayer2Name;
c53e6443 sago007 2012-04-17 11:04 247
	Button bPlayer1Keys, bPlayer2Keys;
c53e6443 sago007 2012-04-17 11:04 248
	bMusic.setLabel(MusicEnabled? _("Music: On") : _("Music: Off") );
c53e6443 sago007 2012-04-17 11:04 249
	bMusic.setAction(buttonActionMusic);
aceba8db sago007 2012-04-19 20:27 250
	bSound.setLabel(SoundEnabled? _("Sound: On") : _("Sound: Off") );
c53e6443 sago007 2012-04-17 11:04 251
	bSound.setAction(buttonActionSound);
c53e6443 sago007 2012-04-17 11:04 252
	buttonFullscreen.setLabel(bFullscreen? _("Fullscreen: On") : _("Fullscreen: Off") );
c53e6443 sago007 2012-04-17 11:04 253
	buttonFullscreen.setAction(buttonActionFullscreen);
c53e6443 sago007 2012-04-17 11:04 254
	bPlayer1Name.setAction(buttonActionPlayer1Name);
c53e6443 sago007 2012-04-17 11:04 255
	bPlayer1Name.setLabel(_("Change player 1's name") );
c53e6443 sago007 2012-04-17 11:04 256
	bPlayer2Name.setAction(buttonActionPlayer2Name);
c53e6443 sago007 2012-04-17 11:04 257
	bPlayer2Name.setLabel(_("Change player 2's name") );
c53e6443 sago007 2012-04-17 11:04 258
	bPlayer1Keys.setAction(ChangeKeysMenu1);
c53e6443 sago007 2012-04-17 11:04 259
	bPlayer1Keys.setLabel(_("Change player 1's keys") );
c53e6443 sago007 2012-04-17 11:04 260
	bPlayer2Keys.setAction(ChangeKeysMenu2);
c53e6443 sago007 2012-04-17 11:04 261
	bPlayer2Keys.setLabel(_("Change player 2's keys") );
c53e6443 sago007 2012-04-17 11:04 262
	cm.addButton(&bMusic);
c53e6443 sago007 2012-04-17 11:04 263
	cm.addButton(&bSound);
c53e6443 sago007 2012-04-17 11:04 264
	cm.addButton(&buttonFullscreen);
c53e6443 sago007 2012-04-17 11:04 265
	cm.addButton(&bPlayer1Name);
c53e6443 sago007 2012-04-17 11:04 266
	cm.addButton(&bPlayer2Name);
c53e6443 sago007 2012-04-17 11:04 267
	cm.addButton(&bPlayer1Keys);
c53e6443 sago007 2012-04-17 11:04 268
	cm.addButton(&bPlayer2Keys);
c53e6443 sago007 2012-04-17 11:04 269
	cm.run();
26ddb424 sago007 2011-06-09 20:06 270
}
26ddb424 sago007 2011-06-09 20:06 271
6710d462 sago007 2012-05-12 17:23 272
static void SinglePlayerVsMenu(Button *b) 
67a32395 sago007 2012-04-19 18:40 273
{
67a32395 sago007 2012-04-19 18:40 274
	Menu spvs(&screen,_("Single player VS"),true);
67a32395 sago007 2012-04-19 18:40 275
	Button d1,d2,d3,d4,d5,d6,d7;
67a32395 sago007 2012-04-19 18:40 276
	d1.setAction(runSinglePlayerVs);
67a32395 sago007 2012-04-19 18:40 277
	d2.setAction(runSinglePlayerVs);
67a32395 sago007 2012-04-19 18:40 278
	d3.setAction(runSinglePlayerVs);
67a32395 sago007 2012-04-19 18:40 279
	d4.setAction(runSinglePlayerVs);
67a32395 sago007 2012-04-19 18:40 280
	d5.setAction(runSinglePlayerVs);
67a32395 sago007 2012-04-19 18:40 281
	d6.setAction(runSinglePlayerVs);
67a32395 sago007 2012-04-19 18:40 282
	d7.setAction(runSinglePlayerVs);
67a32395 sago007 2012-04-19 18:40 283
	d1.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 284
	d2.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 285
	d3.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 286
	d4.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 287
	d5.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 288
	d6.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 289
	d7.setPopOnRun(true);
67a32395 sago007 2012-04-19 18:40 290
	d1.iGeneric1 = 1;
67a32395 sago007 2012-04-19 18:40 291
	d2.iGeneric1 = 2;
67a32395 sago007 2012-04-19 18:40 292
	d3.iGeneric1 = 3;
67a32395 sago007 2012-04-19 18:40 293
	d4.iGeneric1 = 4;
67a32395 sago007 2012-04-19 18:40 294
	d5.iGeneric1 = 5;
67a32395 sago007 2012-04-19 18:40 295
	d6.iGeneric1 = 6;
67a32395 sago007 2012-04-19 18:40 296
	d7.iGeneric1 = 7;
67a32395 sago007 2012-04-19 18:40 297
	d1.setLabel(_("Very easy"));
67a32395 sago007 2012-04-19 18:40 298
	d2.setLabel(_("Easy"));
67a32395 sago007 2012-04-19 18:40 299
	d3.setLabel(_("Below normal"));
67a32395 sago007 2012-04-19 18:40 300
	d4.setLabel(_("Normal"));
67a32395 sago007 2012-04-19 18:40 301
	d5.setLabel(_("Above normal"));
67a32395 sago007 2012-04-19 18:40 302
	d6.setLabel(_("Hard"));
67a32395 sago007 2012-04-19 18:40 303
	d7.setLabel(_("Hardest"));
67a32395 sago007 2012-04-19 18:40 304
	spvs.addButton(&d1);
67a32395 sago007 2012-04-19 18:40 305
	spvs.addButton(&d2);
67a32395 sago007 2012-04-19 18:40 306
	spvs.addButton(&d3);
67a32395 sago007 2012-04-19 18:40 307
	spvs.addButton(&d4);
67a32395 sago007 2012-04-19 18:40 308
	spvs.addButton(&d5);
67a32395 sago007 2012-04-19 18:40 309
	spvs.addButton(&d6);
67a32395 sago007 2012-04-19 18:40 310
	spvs.addButton(&d7);
67a32395 sago007 2012-04-19 18:40 311
	spvs.run();
67a32395 sago007 2012-04-19 18:40 312
}
67a32395 sago007 2012-04-19 18:40 313
6710d462 sago007 2012-05-12 17:23 314
static void NetworkMenu(Button *b) 
b0222eff sago007 2012-04-22 15:06 315
{
b0222eff sago007 2012-04-22 15:06 316
	Menu nm(&screen,_("Network"),true);
b45d8841 sago007 2012-04-23 19:30 317
	Button bPort, bIp, bHost, bJoin;
6710d462 sago007 2012-05-12 17:23 318
	bHost.setLabel(_("Host game"));
6710d462 sago007 2012-05-12 17:23 319
	bHost.setAction(runHostGame);
6710d462 sago007 2012-05-12 17:23 320
	bJoin.setLabel(_("Join game"));
6710d462 sago007 2012-05-12 17:23 321
	bJoin.setAction(runJoinGame);
b45d8841 sago007 2012-04-23 19:30 322
	format fi(_("Address: %1%") );
b45d8841 sago007 2012-04-23 19:30 323
	fi % Config::getInstance()->getString("address0");
b45d8841 sago007 2012-04-23 19:30 324
	bIp.setLabel(fi.str());
b45d8841 sago007 2012-04-23 19:30 325
	bIp.setAction(buttonActionIpChange);
b45d8841 sago007 2012-04-23 19:30 326
	format fp(_("Port: %1%") );
b45d8841 sago007 2012-04-23 19:30 327
	fp % Config::getInstance()->getString("portv4");
b45d8841 sago007 2012-04-23 19:30 328
	bPort.setLabel(fp.str());
b45d8841 sago007 2012-04-23 19:30 329
	bPort.setAction(buttonActionPortChange);
6710d462 sago007 2012-05-12 17:23 330
	nm.addButton(&bHost);
6710d462 sago007 2012-05-12 17:23 331
	nm.addButton(&bJoin);
b45d8841 sago007 2012-04-23 19:30 332
	nm.addButton(&bIp);
b45d8841 sago007 2012-04-23 19:30 333
	nm.addButton(&bPort);
b45d8841 sago007 2012-04-23 19:30 334
	nm.run();
b45d8841 sago007 2012-04-23 19:30 335
	
b0222eff sago007 2012-04-22 15:06 336
}
b0222eff sago007 2012-04-22 15:06 337
6710d462 sago007 2012-05-12 17:23 338
static void MultiplayerMenu(Button *b) 
b0222eff sago007 2012-04-22 15:06 339
{
b0222eff sago007 2012-04-22 15:06 340
	Menu mm(&screen,_("Multiplayer"),true);
b0222eff sago007 2012-04-22 15:06 341
	Button bTT, bVs, bNet;
b0222eff sago007 2012-04-22 15:06 342
	bTT.setLabel(_("Two player - time trial"));
b0222eff sago007 2012-04-22 15:06 343
	bTT.setAction(runTwoPlayerTimeTrial);
b0222eff sago007 2012-04-22 15:06 344
	bVs.setLabel(_("Two player - vs"));
b0222eff sago007 2012-04-22 15:06 345
	bVs.setAction(runTwoPlayerVs);
b0222eff sago007 2012-04-22 15:06 346
	bNet.setLabel(_("Network/Internet game"));
b0222eff sago007 2012-04-22 15:06 347
	bNet.setAction(NetworkMenu);
b0222eff sago007 2012-04-22 15:06 348
	mm.addButton(&bTT);
b0222eff sago007 2012-04-22 15:06 349
	mm.addButton(&bVs);
b0222eff sago007 2012-04-22 15:06 350
#if NETWORK
b0222eff sago007 2012-04-22 15:06 351
	mm.addButton(&bNet);
b0222eff sago007 2012-04-22 15:06 352
#endif
b0222eff sago007 2012-04-22 15:06 353
	mm.run();
b0222eff sago007 2012-04-22 15:06 354
}
b0222eff sago007 2012-04-22 15:06 355
26ddb424 sago007 2011-06-09 20:06 356
void MainMenu()
26ddb424 sago007 2011-06-09 20:06 357
{
c53e6443 sago007 2012-04-17 11:04 358
	InitMenues();
c53e6443 sago007 2012-04-17 11:04 359
	Menu m(&screen,_("Block Attack - Rise of the blocks"),false);
b0222eff sago007 2012-04-22 15:06 360
	Button bHi,bTimetrial1, bStageClear, bPuzzle, bVs1, bMulti, bConfigure,bHighscore;
c53e6443 sago007 2012-04-17 11:04 361
	bHi.setLabel(_("Single player - endless") );
c53e6443 sago007 2012-04-17 11:04 362
	bHi.setAction(runSinglePlayerEndless);
c53e6443 sago007 2012-04-17 11:04 363
	bTimetrial1.setLabel(_("Single player - time trial") );
c53e6443 sago007 2012-04-17 11:04 364
	bTimetrial1.setAction(runSinglePlayerTimeTrial);
aede0664 sago007 2012-04-19 19:45 365
	bStageClear.setLabel(_("Single player - stage clear") );
aede0664 sago007 2012-04-19 19:45 366
	bStageClear.setAction(runStageClear);
c53e6443 sago007 2012-04-17 11:04 367
	bPuzzle.setLabel(_("Single player - puzzle mode") );
c53e6443 sago007 2012-04-17 11:04 368
	bPuzzle.setAction(runSinglePlayerPuzzle);
c53e6443 sago007 2012-04-17 11:04 369
	bVs1.setLabel(_("Single player - vs") );
67a32395 sago007 2012-04-19 18:40 370
	bVs1.setAction(SinglePlayerVsMenu);
b0222eff sago007 2012-04-22 15:06 371
	bMulti.setLabel(_("Multi player") );
b0222eff sago007 2012-04-22 15:06 372
	bMulti.setAction(MultiplayerMenu);
c53e6443 sago007 2012-04-17 11:04 373
	bConfigure.setLabel(_("Configure") );
c53e6443 sago007 2012-04-17 11:04 374
	bConfigure.setAction(ConfigureMenu);
c53e6443 sago007 2012-04-17 11:04 375
	bHighscore.setLabel(_("Highscores") );
c53e6443 sago007 2012-04-17 11:04 376
	bHighscore.setAction(buttonActionHighscores);
c53e6443 sago007 2012-04-17 11:04 377
	m.addButton(&bHi);
c53e6443 sago007 2012-04-17 11:04 378
	m.addButton(&bTimetrial1);
aede0664 sago007 2012-04-19 19:45 379
	m.addButton(&bStageClear);
c53e6443 sago007 2012-04-17 11:04 380
	m.addButton(&bPuzzle);
c53e6443 sago007 2012-04-17 11:04 381
	m.addButton(&bVs1);
b0222eff sago007 2012-04-22 15:06 382
	m.addButton(&bMulti);
c53e6443 sago007 2012-04-17 11:04 383
	m.addButton(&bConfigure);
c53e6443 sago007 2012-04-17 11:04 384
	m.addButton(&bHighscore);
c53e6443 sago007 2012-04-17 11:04 385
	m.run();
593aeae4 sago007 2011-06-25 22:42 386
}
1970-01-01 00:00 387