| 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" |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
31 |
#include "ShowFileState.hpp" |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
32 |
|
| 96eb7a16 |
sago007 |
2016-04-29 17:01 |
33 |
using std::string; |
| 96eb7a16 |
sago007 |
2016-04-29 17:01 |
34 |
using std::vector; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
35 |
|
| 3838c95c |
sago007 |
2016-01-23 10:47 |
36 |
#if 0 |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
37 |
//Menu |
| ecef5838 |
sago007 |
2015-11-24 20:01 |
38 |
static void PrintHi(Button* b) { |
| 161a010c |
sago007 |
2016-05-06 14:00 |
39 |
cout << "Hi" <<"\n"; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
40 |
} |
| 3838c95c |
sago007 |
2016-01-23 10:47 |
41 |
#endif |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
42 |
|
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
43 |
//Stores the controls |
| ecef5838 |
sago007 |
2015-11-24 20:01 |
44 |
struct control { |
| 1d2e2129 |
sago007 |
2015-12-23 15:41 |
45 |
SDL_Keycode up; |
| 1d2e2129 |
sago007 |
2015-12-23 15:41 |
46 |
SDL_Keycode down; |
| 1d2e2129 |
sago007 |
2015-12-23 15:41 |
47 |
SDL_Keycode left; |
| 1d2e2129 |
sago007 |
2015-12-23 15:41 |
48 |
SDL_Keycode right; |
| 1d2e2129 |
sago007 |
2015-12-23 15:41 |
49 |
SDL_Keycode change; |
| 1d2e2129 |
sago007 |
2015-12-23 15:41 |
50 |
SDL_Keycode push; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
51 |
}; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
52 |
|
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
53 |
void OpenScoresDisplay(); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
54 |
extern control keySettings[3]; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
55 |
|
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
56 |
//Function to return the name of a key, to be displayed... |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
57 |
string getKeyName(SDL_Keycode key) { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
58 |
string keyname(SDL_GetKeyName(key)); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
59 |
if (key == SDLK_UP) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
60 |
keyname = _("Up arrow"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
61 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
62 |
if (key == SDLK_DOWN) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
63 |
keyname = _("Down arrow"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
64 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
65 |
if (key == SDLK_LEFT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
66 |
keyname = _("Left arrow"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
67 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
68 |
if (key == SDLK_RIGHT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
69 |
keyname = _("Right arrow"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
70 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
71 |
if (key == SDLK_RCTRL) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
72 |
keyname = _("Right Ctrl"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
73 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
74 |
if (key == SDLK_LCTRL) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
75 |
keyname = _("Left Ctrl"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
76 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
77 |
if (key == SDLK_RSHIFT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
78 |
keyname = _("Right shift"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
79 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
80 |
if (key == SDLK_LSHIFT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
81 |
keyname = _("Left shift"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
82 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
83 |
if (key == SDLK_RALT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
84 |
keyname = _("Right alt"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
85 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
86 |
if (key == SDLK_LALT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
87 |
keyname = _("Left alt"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
88 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
89 |
if (key == SDLK_RETURN) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
90 |
keyname = _("Return"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
91 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
92 |
if (key == SDLK_SPACE) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
93 |
keyname = _("Space"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
94 |
} |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
95 |
if (globalData.verboseLevel) { |
| b1f06489 |
Poul Sander |
2020-08-08 17:19 |
96 |
std::cout << key << " translated to " << keyname << "\n"; |
| acd79baf |
sago007 |
2015-11-22 19:37 |
97 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
98 |
return keyname; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
99 |
} |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
100 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
101 |
class Button_changekey : public Button { |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
102 |
private: |
| 1d2e2129 |
sago007 |
2015-12-23 15:41 |
103 |
SDL_Keycode* m_key2change; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
104 |
string m_keyname; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
105 |
public: |
| 7192940a |
Poul Sander |
2020-08-08 17:18 |
106 |
Button_changekey(SDL_Keycode* key, const char* keyname); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
107 |
void doAction(); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
108 |
}; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
109 |
|
| 6710d462 |
sago007 |
2012-05-12 17:23 |
110 |
|
| 7192940a |
Poul Sander |
2020-08-08 17:18 |
111 |
Button_changekey::Button_changekey(SDL_Keycode* key, const char* keyname) |
| 3674f7f0 |
sago007 |
2020-07-12 12:16 |
112 |
: m_key2change{key}, m_keyname{keyname} { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
113 |
setLabel(m_keyname+" : "+getKeyName(*m_key2change)); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
114 |
} |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
115 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
116 |
void Button_changekey::doAction() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
117 |
SDL_Event event; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
118 |
|
| c53e6443 |
sago007 |
2012-04-17 11:04 |
119 |
bool finnish = false; |
| ecef5838 |
sago007 |
2015-11-24 20:01 |
120 |
while (!finnish) { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
121 |
SDL_Delay(10); |
| ecef5838 |
sago007 |
2015-11-24 20:01 |
122 |
while ( SDL_PollEvent(&event) ) { |
| ecef5838 |
sago007 |
2015-11-24 20:01 |
123 |
if (event.type == SDL_KEYDOWN) { |
| acd79baf |
sago007 |
2015-11-22 19:37 |
124 |
if (event.key.keysym.sym != SDLK_ESCAPE) { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
125 |
*m_key2change = event.key.keysym.sym; |
| acd79baf |
sago007 |
2015-11-22 19:37 |
126 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
127 |
finnish = true; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
128 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
129 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
130 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
131 |
setLabel(m_keyname+" : "+getKeyName(*m_key2change)); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
132 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
133 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
134 |
void InitMenues() { |
| 094b2dfe |
sago007 |
2016-06-12 10:50 |
135 |
standardButton.setSurfaces(); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
136 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
137 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
138 |
static void runSinglePlayerEndless0() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
139 |
runGame(Gametype::SinglePlayerEndless, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
140 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
141 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
142 |
static void runSinglePlayerEndless1() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
143 |
runGame(Gametype::SinglePlayerEndless, 1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
144 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
145 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
146 |
static void runSinglePlayerEndless2() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
147 |
runGame(Gametype::SinglePlayerEndless, 2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
148 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
149 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
150 |
static void runSinglePlayerEndless3() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
151 |
runGame(Gametype::SinglePlayerEndless, 3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
152 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
153 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
154 |
static void runSinglePlayerEndless4() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
155 |
runGame(Gametype::SinglePlayerEndless, 4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
156 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
157 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
158 |
static void runSinglePlayerEndless() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
159 |
Menu sp(globalData.screen,_("Single Player Endless"),true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
160 |
Button d0,d1,d2,d3,d4; |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
161 |
d0.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
162 |
d1.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
163 |
d2.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
164 |
d3.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
165 |
d4.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
166 |
d0.setLabel(_("Slow")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
167 |
d1.setLabel(_("Fast")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
168 |
d2.setLabel(_("Faster")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
169 |
d3.setLabel(_("Even faster")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
170 |
d4.setLabel(_("Fastest")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
171 |
d0.setAction(runSinglePlayerEndless0); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
172 |
d1.setAction(runSinglePlayerEndless1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
173 |
d2.setAction(runSinglePlayerEndless2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
174 |
d3.setAction(runSinglePlayerEndless3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
175 |
d4.setAction(runSinglePlayerEndless4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
176 |
sp.addButton(&d0); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
177 |
sp.addButton(&d1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
178 |
sp.addButton(&d2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
179 |
sp.addButton(&d3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
180 |
sp.addButton(&d4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
181 |
RunGameState(sp); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
182 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
183 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
184 |
static void runSinglePlayerTimeTrial() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
185 |
runGame(Gametype::SinglePlayerTimeTrial, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
186 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
187 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
188 |
static void runStageClear() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
189 |
runGame(Gametype::StageClear, 0); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
190 |
} |
| aede0664 |
sago007 |
2012-04-19 19:45 |
191 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
192 |
static void runSinglePlayerPuzzle() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
193 |
runGame(Gametype::Puzzle, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
194 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
195 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
196 |
class RunSinglePlayerVsButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
197 |
virtual void doAction() override { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
198 |
runGame(Gametype::SinglePlayerVs, iGeneric1); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
199 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
200 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
201 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
202 |
static void runTwoPlayerTimeTrial() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
203 |
runGame(Gametype::TwoPlayerTimeTrial, 0); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
204 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
205 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
206 |
static void runTwoPlayerVs() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
207 |
runGame(Gametype::TwoPlayerVs, 0); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
208 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
209 |
|
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
210 |
static void SetAlwaysSoftwareLabel(Button* b) { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
211 |
b->setLabel(Config::getInstance()->getInt("always-software")? |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
212 |
_("Always use software render: On") |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
213 |
: _("Always use software render: Off")); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
214 |
} |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
215 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
216 |
static void SetMusicLabel (Button* b) { |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
217 |
b->setLabel(globalData.MusicEnabled? _("Music: On") : _("Music: Off") ); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
218 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
219 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
220 |
static void SetSoundLabel (Button* b) { |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
221 |
b->setLabel(globalData.SoundEnabled? _("Sound: On") : _("Sound: Off") ); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
222 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
223 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
224 |
static void SetFullscreenLabel (Button* b) { |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
225 |
b->setLabel(globalData.bFullscreen? _("Fullscreen: On") : _("Fullscreen: Off") ); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
226 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
227 |
|
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
228 |
class AlwaysSoftwareRenderButton : public Button { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
229 |
virtual void doAction() override { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
230 |
Config::getInstance()->setInt("always-software", !Config::getInstance()->getInt("always-software")); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
231 |
SetAlwaysSoftwareLabel(this); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
232 |
} |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
233 |
}; |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
234 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
235 |
class MusicButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
236 |
virtual void doAction() override { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
237 |
globalData.MusicEnabled = !globalData.MusicEnabled; |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
238 |
SetMusicLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
239 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
240 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
241 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
242 |
class SoundButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
243 |
virtual void doAction() override { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
244 |
globalData.SoundEnabled = !globalData.SoundEnabled; |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
245 |
SetSoundLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
246 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
247 |
}; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
248 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
249 |
class FullscreenButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
250 |
virtual void doAction() override { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
251 |
globalData.bFullscreen = !globalData.bFullscreen; |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
252 |
SetFullscreenLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
253 |
ResetFullscreen(); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
254 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
255 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
256 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
257 |
static void buttonActionPlayer1Name() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
258 |
if ( OpenDialogbox(200, 100, globalData.player1name, _("Enter player 1 name:")) ) { |
| acd79baf |
sago007 |
2015-11-22 19:37 |
259 |
return; //must save if true |
| acd79baf |
sago007 |
2015-11-22 19:37 |
260 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
261 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
262 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
263 |
static void buttonActionPlayer2Name() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
264 |
if ( OpenDialogbox(200, 100, globalData.player2name, _("Enter player 2 name:")) ) { |
| acd79baf |
sago007 |
2015-11-22 19:37 |
265 |
return; //must save if true |
| acd79baf |
sago007 |
2015-11-22 19:37 |
266 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
267 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
268 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
269 |
static void buttonActionHighscores() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
270 |
OpenScoresDisplay(); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
271 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
272 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
273 |
static void ChangeKeysMenu(long playernumber) { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
274 |
Menu km(globalData.screen,_("Change key bindings"),true); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
275 |
Button_changekey bLeft(&keySettings[playernumber].left,_("Left") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
276 |
Button_changekey bRight(&keySettings[playernumber].right,_("Right") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
277 |
Button_changekey bUp(&keySettings[playernumber].up,_("Up") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
278 |
Button_changekey bDown(&keySettings[playernumber].down,_("Down") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
279 |
Button_changekey bPush(&keySettings[playernumber].push,_("Push") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
280 |
Button_changekey bSwitch(&keySettings[playernumber].change,_("Change") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
281 |
km.addButton(&bLeft); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
282 |
km.addButton(&bRight); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
283 |
km.addButton(&bUp); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
284 |
km.addButton(&bDown); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
285 |
km.addButton(&bPush); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
286 |
km.addButton(&bSwitch); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
287 |
RunGameState(km); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
288 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
289 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
290 |
static void ChangeKeysMenu1() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
291 |
ChangeKeysMenu(0); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
292 |
} |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
293 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
294 |
static void ChangeKeysMenu2() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
295 |
ChangeKeysMenu(2); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
296 |
} |
| fc8e3d6a |
sago007 |
2011-06-25 16:31 |
297 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
298 |
static void ConfigureMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
299 |
Menu cm(globalData.screen,_("Configuration"),true); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
300 |
Button bPlayer1Name,bPlayer2Name; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
301 |
Button bPlayer1Keys, bPlayer2Keys; |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
302 |
AlwaysSoftwareRenderButton bSoftware; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
303 |
MusicButton bMusic; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
304 |
SoundButton bSound; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
305 |
FullscreenButton buttonFullscreen; |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
306 |
SetAlwaysSoftwareLabel(&bSoftware); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
307 |
SetMusicLabel(&bMusic); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
308 |
SetSoundLabel(&bSound); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
309 |
SetFullscreenLabel(&buttonFullscreen); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
310 |
bPlayer1Name.setAction(buttonActionPlayer1Name); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
311 |
bPlayer1Name.setLabel(_("Change player 1's name") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
312 |
bPlayer2Name.setAction(buttonActionPlayer2Name); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
313 |
bPlayer2Name.setLabel(_("Change player 2's name") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
314 |
bPlayer1Keys.setAction(ChangeKeysMenu1); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
315 |
bPlayer1Keys.setLabel(_("Change player 1's keys") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
316 |
bPlayer2Keys.setAction(ChangeKeysMenu2); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
317 |
bPlayer2Keys.setLabel(_("Change player 2's keys") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
318 |
cm.addButton(&bMusic); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
319 |
cm.addButton(&bSound); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
320 |
cm.addButton(&bSoftware); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
321 |
cm.addButton(&buttonFullscreen); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
322 |
cm.addButton(&bPlayer1Name); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
323 |
cm.addButton(&bPlayer2Name); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
324 |
cm.addButton(&bPlayer1Keys); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
325 |
cm.addButton(&bPlayer2Keys); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
326 |
RunGameState(cm); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
327 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
328 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
329 |
static void SinglePlayerVsMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
330 |
Menu spvs(globalData.screen,_("Single player VS"),true); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
331 |
RunSinglePlayerVsButton d1,d2,d3,d4,d5,d6,d7; |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
332 |
d1.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
333 |
d2.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
334 |
d3.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
335 |
d4.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
336 |
d5.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
337 |
d6.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
338 |
d7.setPopOnRun(true); |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
339 |
d1.iGeneric1 = 0; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
340 |
d2.iGeneric1 = 1; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
341 |
d3.iGeneric1 = 2; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
342 |
d4.iGeneric1 = 3; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
343 |
d5.iGeneric1 = 4; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
344 |
d6.iGeneric1 = 5; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
345 |
d7.iGeneric1 = 6; |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
346 |
d1.setLabel(_("Very easy")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
347 |
d2.setLabel(_("Easy")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
348 |
d3.setLabel(_("Below normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
349 |
d4.setLabel(_("Normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
350 |
d5.setLabel(_("Above normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
351 |
d6.setLabel(_("Hard")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
352 |
d7.setLabel(_("Hardest")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
353 |
spvs.addButton(&d1); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
354 |
spvs.addButton(&d2); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
355 |
spvs.addButton(&d3); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
356 |
spvs.addButton(&d4); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
357 |
spvs.addButton(&d5); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
358 |
spvs.addButton(&d6); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
359 |
spvs.addButton(&d7); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
360 |
RunGameState(spvs); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
361 |
} |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
362 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
363 |
static void MultiplayerMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
364 |
Menu mm(globalData.screen,_("Multiplayer"),true); |
| de81e07d |
sago007 |
2016-07-10 20:22 |
365 |
Button bTT, bVs; |
| b0222eff |
sago007 |
2012-04-22 15:06 |
366 |
bTT.setLabel(_("Two player - time trial")); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
367 |
bTT.setAction(runTwoPlayerTimeTrial); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
368 |
bVs.setLabel(_("Two player - vs")); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
369 |
bVs.setAction(runTwoPlayerVs); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
370 |
mm.addButton(&bTT); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
371 |
mm.addButton(&bVs); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
372 |
RunGameState(mm); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
373 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
374 |
|
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
375 |
static void runHowto() { |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
376 |
HelpHowtoState howto; |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
377 |
RunGameState(howto); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
378 |
} |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
379 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
380 |
static void runHelpGamepad() { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
381 |
HelpGamepadState helpGamepad; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
382 |
RunGameState(helpGamepad); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
383 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
384 |
|
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
385 |
static void runHelpAbout() { |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
386 |
HelpAboutState helpAbout; |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
387 |
RunGameState(helpAbout); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
388 |
} |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
389 |
|
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
390 |
static void runCredits() { |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
391 |
ShowFileState creditsFile; |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
392 |
creditsFile.SetData("misc/AUTHORS", _("Credits")); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
393 |
RunGameState(creditsFile); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
394 |
} |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
395 |
|
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
396 |
static void HelpMenu() { |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
397 |
Menu m(globalData.screen, _("Help"), true); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
398 |
Button bHowto; |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
399 |
bHowto.setLabel(_("How to")); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
400 |
bHowto.setAction(runHowto); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
401 |
m.addButton(&bHowto); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
402 |
Button bGamepad; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
403 |
bGamepad.setLabel(_("Gamepad")); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
404 |
bGamepad.setAction(runHelpGamepad); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
405 |
m.addButton(&bGamepad); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
406 |
Button bCredits; |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
407 |
bCredits.setLabel(_("Credits")); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
408 |
bCredits.setAction(runCredits); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
409 |
m.addButton(&bCredits); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
410 |
Button bAbout; |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
411 |
bAbout.setLabel(_("About")); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
412 |
bAbout.setAction(runHelpAbout); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
413 |
m.addButton(&bAbout); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
414 |
RunGameState(m); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
415 |
} |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
416 |
|
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
417 |
static void SinglePlayerMenu() { |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
418 |
Menu m(globalData.screen, _("Single player"), true); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
419 |
Button bHi,bTimetrial1, bStageClear, bPuzzle, bVs1; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
420 |
bHi.setLabel(_("Single player - endless") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
421 |
bHi.setAction(runSinglePlayerEndless); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
422 |
bTimetrial1.setLabel(_("Single player - time trial") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
423 |
bTimetrial1.setAction(runSinglePlayerTimeTrial); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
424 |
bStageClear.setLabel(_("Single player - stage clear") ); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
425 |
bStageClear.setAction(runStageClear); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
426 |
bPuzzle.setLabel(_("Single player - puzzle mode") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
427 |
bPuzzle.setAction(runSinglePlayerPuzzle); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
428 |
bVs1.setLabel(_("Single player - vs") ); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
429 |
bVs1.setAction(SinglePlayerVsMenu); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
430 |
m.addButton(&bHi); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
431 |
m.addButton(&bTimetrial1); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
432 |
m.addButton(&bStageClear); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
433 |
m.addButton(&bPuzzle); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
434 |
m.addButton(&bVs1); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
435 |
RunGameState(m); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
436 |
} |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
437 |
|
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
438 |
void SafeModeMenu() { |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
439 |
if (Config::getInstance()->getInt("always-software")) { |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
440 |
return; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
441 |
} |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
442 |
InitMenues(); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
443 |
Menu safeMode(globalData.screen, _("Game did not shutdown as it should"), true); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
444 |
Button bOnce; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
445 |
Button bAlways; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
446 |
bOnce.setLabel(_("Use software renderer this time")); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
447 |
bAlways.setLabel(_("Always use software renderer")); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
448 |
bOnce.setPopOnRun(true); |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
449 |
bAlways.setAction([]() { |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
450 |
Config::getInstance()->setInt("always-software", 1); |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
451 |
}); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
452 |
bAlways.setPopOnRun(true); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
453 |
safeMode.addButton(&bOnce); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
454 |
safeMode.addButton(&bAlways); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
455 |
RunGameState(safeMode); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
456 |
} |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
457 |
|
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
458 |
void MainMenu() { |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
459 |
InitMenues(); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
460 |
Menu m(globalData.screen,_("Block Attack - Rise of the blocks"),false); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
461 |
Button bHi, bMulti, bConfigure, bHighscore, bHelp; |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
462 |
bHi.setLabel(_("Single player") ); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
463 |
bHi.setAction(SinglePlayerMenu); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
464 |
bMulti.setLabel(_("Multi player") ); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
465 |
bMulti.setAction(MultiplayerMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
466 |
bConfigure.setLabel(_("Configure") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
467 |
bConfigure.setAction(ConfigureMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
468 |
bHighscore.setLabel(_("Highscores") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
469 |
bHighscore.setAction(buttonActionHighscores); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
470 |
bHelp.setLabel(_("Help")); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
471 |
bHelp.setAction(HelpMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
472 |
m.addButton(&bHi); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
473 |
m.addButton(&bMulti); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
474 |
m.addButton(&bConfigure); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
475 |
m.addButton(&bHighscore); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
476 |
m.addButton(&bHelp); |
| 95ab6b0d |
sago007 |
2016-11-12 16:11 |
477 |
RunGameState(m); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
478 |
} |
|
|
1970-01-01 00:00 |
479 |
|