| 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" |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
29 |
#include "HelpModInfoState.hpp" |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
30 |
#include "HelpGamepadState.hpp" |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
31 |
#include "HelpAboutState.hpp" |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
32 |
#include "ShowFileState.hpp" |
| 16476649 |
Poul Sander |
2022-01-09 10:29 |
33 |
#include <fmt/core.h> |
| 3e881171 |
Poul Sander |
2023-10-16 15:53 |
34 |
#include "BlockGameSdl.hpp" |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
35 |
|
| 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... |
| 97546fef |
Poul Sander |
2020-08-08 17:21 |
58 |
std::string getKeyName(SDL_Keycode key) { |
| 97546fef |
Poul Sander |
2020-08-08 17:21 |
59 |
std::string keyname(SDL_GetKeyName(key)); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
60 |
if (key == SDLK_UP) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
61 |
keyname = _("Up arrow"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
62 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
63 |
if (key == SDLK_DOWN) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
64 |
keyname = _("Down arrow"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
65 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
66 |
if (key == SDLK_LEFT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
67 |
keyname = _("Left arrow"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
68 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
69 |
if (key == SDLK_RIGHT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
70 |
keyname = _("Right arrow"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
71 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
72 |
if (key == SDLK_RCTRL) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
73 |
keyname = _("Right Ctrl"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
74 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
75 |
if (key == SDLK_LCTRL) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
76 |
keyname = _("Left Ctrl"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
77 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
78 |
if (key == SDLK_RSHIFT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
79 |
keyname = _("Right shift"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
80 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
81 |
if (key == SDLK_LSHIFT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
82 |
keyname = _("Left shift"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
83 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
84 |
if (key == SDLK_RALT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
85 |
keyname = _("Right alt"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
86 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
87 |
if (key == SDLK_LALT) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
88 |
keyname = _("Left alt"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
89 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
90 |
if (key == SDLK_RETURN) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
91 |
keyname = _("Return"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
92 |
} |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
93 |
if (key == SDLK_SPACE) { |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
94 |
keyname = _("Space"); |
| d82fedb9 |
Poul Sander |
2018-06-20 16:48 |
95 |
} |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
96 |
if (globalData.verboseLevel) { |
| b1f06489 |
Poul Sander |
2020-08-08 17:19 |
97 |
std::cout << key << " translated to " << keyname << "\n"; |
| acd79baf |
sago007 |
2015-11-22 19:37 |
98 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
99 |
return keyname; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
100 |
} |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
101 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
102 |
class Button_changekey : public Button { |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
103 |
private: |
| 1d2e2129 |
sago007 |
2015-12-23 15:41 |
104 |
SDL_Keycode* m_key2change; |
| 97546fef |
Poul Sander |
2020-08-08 17:21 |
105 |
std::string m_keyname; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
106 |
public: |
| 7192940a |
Poul Sander |
2020-08-08 17:18 |
107 |
Button_changekey(SDL_Keycode* key, const char* keyname); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
108 |
virtual void doAction() override; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
109 |
}; |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
110 |
|
| 6710d462 |
sago007 |
2012-05-12 17:23 |
111 |
|
| 7192940a |
Poul Sander |
2020-08-08 17:18 |
112 |
Button_changekey::Button_changekey(SDL_Keycode* key, const char* keyname) |
| 3674f7f0 |
sago007 |
2020-07-12 12:16 |
113 |
: m_key2change{key}, m_keyname{keyname} { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
114 |
setLabel(m_keyname+" : "+getKeyName(*m_key2change)); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
115 |
} |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
116 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
117 |
void Button_changekey::doAction() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
118 |
SDL_Event event; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
119 |
|
| c53e6443 |
sago007 |
2012-04-17 11:04 |
120 |
bool finnish = false; |
| ecef5838 |
sago007 |
2015-11-24 20:01 |
121 |
while (!finnish) { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
122 |
SDL_Delay(10); |
| ecef5838 |
sago007 |
2015-11-24 20:01 |
123 |
while ( SDL_PollEvent(&event) ) { |
| ecef5838 |
sago007 |
2015-11-24 20:01 |
124 |
if (event.type == SDL_KEYDOWN) { |
| acd79baf |
sago007 |
2015-11-22 19:37 |
125 |
if (event.key.keysym.sym != SDLK_ESCAPE) { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
126 |
*m_key2change = event.key.keysym.sym; |
| acd79baf |
sago007 |
2015-11-22 19:37 |
127 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
128 |
finnish = true; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
129 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
130 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
131 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
132 |
setLabel(m_keyname+" : "+getKeyName(*m_key2change)); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
133 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
134 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
135 |
class Button_confirmVolume : public Button { |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
136 |
private: |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
137 |
std::string cvar=""; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
138 |
mutable std::string volumeLabel; /*used for cache*/ |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
139 |
public: |
| 493079d1 |
Poul Sander |
2021-10-20 21:03 |
140 |
explicit Button_confirmVolume(const char* cvar); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
141 |
virtual void doAction() override { /*Do nothing. Equal to choose "back". */ }; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
142 |
virtual const std::string& getLabel() const override; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
143 |
}; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
144 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
145 |
Button_confirmVolume::Button_confirmVolume(const char* cvar) : cvar{cvar} { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
146 |
this->setPopOnRun(true); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
147 |
} |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
148 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
149 |
const std::string& Button_confirmVolume::getLabel() const { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
150 |
int volumePct = Config::getInstance()->getInt(cvar)*100.0/MIX_MAX_VOLUME; |
| 16476649 |
Poul Sander |
2022-01-09 10:29 |
151 |
this->volumeLabel = fmt::format(_("Volume: {}%"), volumePct); // std::string(_("Volume: "))+ std::to_string(volumePct)+"%" ; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
152 |
return volumeLabel; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
153 |
} |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
154 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
155 |
class Button_increaseVolume : public Button { |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
156 |
private: |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
157 |
std::string cvar=""; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
158 |
int incrementValue = 1; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
159 |
int lowerLimit = 0; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
160 |
int upperLimit = MIX_MAX_VOLUME; |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
161 |
public: |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
162 |
Button_increaseVolume(const char* cvar, int incrementValue); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
163 |
virtual void doAction() override; |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
164 |
}; |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
165 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
166 |
Button_increaseVolume::Button_increaseVolume(const char* cvar, int incrementValue) |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
167 |
: cvar{cvar},incrementValue{incrementValue} { |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
168 |
char prefix = '+'; |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
169 |
double value = incrementValue; |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
170 |
if (incrementValue<0) { |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
171 |
prefix = '-'; |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
172 |
value = -incrementValue; |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
173 |
} |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
174 |
value = value*100.0/MIX_MAX_VOLUME; |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
175 |
setLabel(fmt::format("{}{:.2f}", prefix, value)); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
176 |
} |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
177 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
178 |
void Button_increaseVolume::doAction() { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
179 |
int newValue = Config::getInstance()->getInt(cvar)+incrementValue; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
180 |
if (newValue<lowerLimit) { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
181 |
newValue = lowerLimit; |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
182 |
} |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
183 |
if (newValue>upperLimit) { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
184 |
newValue = upperLimit; |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
185 |
} |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
186 |
Config::getInstance()->setInt(cvar, newValue); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
187 |
} |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
188 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
189 |
class Button_testSound : public Button { |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
190 |
public: |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
191 |
Button_testSound(); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
192 |
virtual void doAction() override; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
193 |
}; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
194 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
195 |
Button_testSound::Button_testSound() { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
196 |
setLabel(_("Test sound")); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
197 |
} |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
198 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
199 |
void Button_testSound::doAction() { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
200 |
sago::SoundHandler testSound = globalData.spriteHolder->GetDataHolder().getSoundHandler("pop"); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
201 |
Mix_VolumeChunk(testSound.get(), Config::getInstance()->getInt("volume_sound")); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
202 |
Mix_PlayChannel(1, testSound.get(), 0); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
203 |
} |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
204 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
205 |
class Button_testMusic : public Button { |
| 55e33610 |
Poul Sander |
2022-01-09 11:45 |
206 |
public: |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
207 |
Button_testMusic(); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
208 |
virtual void doAction() override; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
209 |
}; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
210 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
211 |
Button_testMusic::Button_testMusic() { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
212 |
setLabel(_("Test music")); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
213 |
} |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
214 |
|
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
215 |
void Button_testMusic::doAction() { |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
216 |
Mix_VolumeMusic(Config::getInstance()->getInt("volume_music")); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
217 |
sago::MusicHandler bgMusic = globalData.spriteHolder->GetDataHolder().getMusicHandler("bgmusic"); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
218 |
Mix_PlayMusic(bgMusic.get(), -1); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
219 |
} |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
220 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
221 |
void InitMenues() { |
| 094b2dfe |
sago007 |
2016-06-12 10:50 |
222 |
standardButton.setSurfaces(); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
223 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
224 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
225 |
static void runSinglePlayerEndless0() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
226 |
runGame(Gametype::SinglePlayerEndless, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
227 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
228 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
229 |
static void runSinglePlayerEndless1() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
230 |
runGame(Gametype::SinglePlayerEndless, 1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
231 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
232 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
233 |
static void runSinglePlayerEndless2() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
234 |
runGame(Gametype::SinglePlayerEndless, 2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
235 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
236 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
237 |
static void runSinglePlayerEndless3() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
238 |
runGame(Gametype::SinglePlayerEndless, 3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
239 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
240 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
241 |
static void runSinglePlayerEndless4() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
242 |
runGame(Gametype::SinglePlayerEndless, 4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
243 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
244 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
245 |
static void runSinglePlayerEndless() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
246 |
Menu sp(globalData.screen,_("Single Player Endless"),true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
247 |
Button d0,d1,d2,d3,d4; |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
248 |
d0.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
249 |
d1.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
250 |
d2.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
251 |
d3.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
252 |
d4.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
253 |
d0.setLabel(_("Slow")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
254 |
d1.setLabel(_("Fast")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
255 |
d2.setLabel(_("Faster")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
256 |
d3.setLabel(_("Even faster")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
257 |
d4.setLabel(_("Fastest")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
258 |
d0.setAction(runSinglePlayerEndless0); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
259 |
d1.setAction(runSinglePlayerEndless1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
260 |
d2.setAction(runSinglePlayerEndless2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
261 |
d3.setAction(runSinglePlayerEndless3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
262 |
d4.setAction(runSinglePlayerEndless4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
263 |
sp.addButton(&d0); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
264 |
sp.addButton(&d1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
265 |
sp.addButton(&d2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
266 |
sp.addButton(&d3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
267 |
sp.addButton(&d4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
268 |
RunGameState(sp); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
269 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
270 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
271 |
static void runSinglePlayerTimeTrial() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
272 |
runGame(Gametype::SinglePlayerTimeTrial, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
273 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
274 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
275 |
static void runStageClear() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
276 |
runGame(Gametype::StageClear, 0); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
277 |
} |
| aede0664 |
sago007 |
2012-04-19 19:45 |
278 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
279 |
static void runSinglePlayerPuzzle() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
280 |
runGame(Gametype::Puzzle, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
281 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
282 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
283 |
class RunSinglePlayerVsButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
284 |
virtual void doAction() override { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
285 |
runGame(Gametype::SinglePlayerVs, iGeneric1); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
286 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
287 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
288 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
289 |
static void runTwoPlayerTimeTrial() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
290 |
runGame(Gametype::TwoPlayerTimeTrial, 0); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
291 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
292 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
293 |
static void runTwoPlayerVs() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
294 |
runGame(Gametype::TwoPlayerVs, 0); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
295 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
296 |
|
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
297 |
static void SetAlwaysSoftwareLabel(Button* b) { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
298 |
b->setLabel(Config::getInstance()->getInt("always-software")? |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
299 |
_("Always use software render: On") |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
300 |
: _("Always use software render: Off")); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
301 |
} |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
302 |
|
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
303 |
static void runSetMusicVolume(const char* cvar, const char* header) { |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
304 |
Menu volumeMenu(globalData.screen, header, true); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
305 |
Button_confirmVolume bConfirm(cvar); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
306 |
Button_increaseVolume plus5(cvar, 5); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
307 |
Button_increaseVolume minus5(cvar, -5); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
308 |
Button_increaseVolume plus1(cvar, 1); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
309 |
Button_increaseVolume minus1(cvar, -1); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
310 |
volumeMenu.addButton(&bConfirm); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
311 |
volumeMenu.addButton(&plus5); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
312 |
volumeMenu.addButton(&minus5); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
313 |
volumeMenu.addButton(&plus1); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
314 |
volumeMenu.addButton(&minus1); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
315 |
Button_testSound bTestSound; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
316 |
volumeMenu.addButton(&bTestSound); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
317 |
Button_testMusic bTestMusic; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
318 |
volumeMenu.addButton(&bTestMusic); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
319 |
RunGameState(volumeMenu); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
320 |
} |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
321 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
322 |
static void SetMusicLabel (Button* b) { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
323 |
if (globalData.MusicEnabled) { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
324 |
double volume = Config::getInstance()->getInt("volume_music"); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
325 |
int volumePct = volume*100.0/MIX_MAX_VOLUME; |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
326 |
b->setLabel(std::string(_("Music: "))+ std::to_string(volumePct)+"%" ); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
327 |
} |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
328 |
else { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
329 |
b->setLabel(_("Music: Off") ); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
330 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
331 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
332 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
333 |
static void SetSoundLabel (Button* b) { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
334 |
if (globalData.SoundEnabled) { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
335 |
double volume = Config::getInstance()->getInt("volume_sound"); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
336 |
int volumePct = volume*100.0/MIX_MAX_VOLUME; |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
337 |
b->setLabel(std::string(_("Sound: "))+ std::to_string(volumePct)+"%" ); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
338 |
} |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
339 |
else { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
340 |
b->setLabel(_("Sound: Off") ); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
341 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
342 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
343 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
344 |
static void SetFullscreenLabel (Button* b) { |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
345 |
b->setLabel(globalData.bFullscreen? _("Fullscreen: On") : _("Fullscreen: Off") ); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
346 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
347 |
|
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
348 |
class AlwaysSoftwareRenderButton : public Button { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
349 |
virtual void doAction() override { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
350 |
Config::getInstance()->setInt("always-software", !Config::getInstance()->getInt("always-software")); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
351 |
SetAlwaysSoftwareLabel(this); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
352 |
} |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
353 |
}; |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
354 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
355 |
class MusicButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
356 |
virtual void doAction() override { |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
357 |
runSetMusicVolume("volume_music", _("Music volume")); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
358 |
globalData.MusicEnabled = (Config::getInstance()->getInt("volume_music") != 0); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
359 |
SetMusicLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
360 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
361 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
362 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
363 |
class SoundButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
364 |
virtual void doAction() override { |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
365 |
runSetMusicVolume("volume_sound", _("Sound volume")); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
366 |
globalData.MusicEnabled = (Config::getInstance()->getInt("volume_sound") != 0); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
367 |
SetSoundLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
368 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
369 |
}; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
370 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
371 |
class FullscreenButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
372 |
virtual void doAction() override { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
373 |
globalData.bFullscreen = !globalData.bFullscreen; |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
374 |
SetFullscreenLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
375 |
ResetFullscreen(); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
376 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
377 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
378 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
379 |
static void buttonActionPlayer1Name() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
380 |
if ( OpenDialogbox(200, 100, globalData.player1name, _("Enter player 1 name:")) ) { |
| acd79baf |
sago007 |
2015-11-22 19:37 |
381 |
return; //must save if true |
| acd79baf |
sago007 |
2015-11-22 19:37 |
382 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
383 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
384 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
385 |
static void buttonActionPlayer2Name() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
386 |
if ( OpenDialogbox(200, 100, globalData.player2name, _("Enter player 2 name:")) ) { |
| acd79baf |
sago007 |
2015-11-22 19:37 |
387 |
return; //must save if true |
| acd79baf |
sago007 |
2015-11-22 19:37 |
388 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
389 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
390 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
391 |
static void buttonActionHighscores() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
392 |
OpenScoresDisplay(); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
393 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
394 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
395 |
static void ChangeKeysMenu(long playernumber) { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
396 |
Menu km(globalData.screen,_("Change key bindings"),true); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
397 |
Button_changekey bLeft(&keySettings[playernumber].left,_("Left") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
398 |
Button_changekey bRight(&keySettings[playernumber].right,_("Right") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
399 |
Button_changekey bUp(&keySettings[playernumber].up,_("Up") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
400 |
Button_changekey bDown(&keySettings[playernumber].down,_("Down") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
401 |
Button_changekey bPush(&keySettings[playernumber].push,_("Push") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
402 |
Button_changekey bSwitch(&keySettings[playernumber].change,_("Change") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
403 |
km.addButton(&bLeft); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
404 |
km.addButton(&bRight); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
405 |
km.addButton(&bUp); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
406 |
km.addButton(&bDown); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
407 |
km.addButton(&bPush); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
408 |
km.addButton(&bSwitch); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
409 |
RunGameState(km); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
410 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
411 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
412 |
static void ChangeKeysMenu1() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
413 |
ChangeKeysMenu(0); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
414 |
} |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
415 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
416 |
static void ChangeKeysMenu2() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
417 |
ChangeKeysMenu(2); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
418 |
} |
| fc8e3d6a |
sago007 |
2011-06-25 16:31 |
419 |
|
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
420 |
static void PlayerConfigMenu() { |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
421 |
Menu pcm(globalData.screen,_("Player configuration"),true); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
422 |
Button bPlayer1Name, bPlayer2Name; |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
423 |
Button bPlayer1Keys, bPlayer2Keys; |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
424 |
bPlayer1Name.setAction(buttonActionPlayer1Name); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
425 |
bPlayer1Name.setLabel(_("Change player 1's name") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
426 |
bPlayer2Name.setAction(buttonActionPlayer2Name); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
427 |
bPlayer2Name.setLabel(_("Change player 2's name") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
428 |
bPlayer1Keys.setAction(ChangeKeysMenu1); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
429 |
bPlayer1Keys.setLabel(_("Change player 1's keys") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
430 |
bPlayer2Keys.setAction(ChangeKeysMenu2); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
431 |
bPlayer2Keys.setLabel(_("Change player 2's keys") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
432 |
pcm.addButton(&bPlayer1Name); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
433 |
pcm.addButton(&bPlayer2Name); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
434 |
pcm.addButton(&bPlayer1Keys); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
435 |
pcm.addButton(&bPlayer2Keys); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
436 |
RunGameState(pcm); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
437 |
} |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
438 |
|
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
439 |
static void switchTheme() { |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
440 |
globalData.theme = getNextTheme(); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
441 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
442 |
|
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
443 |
class ThemesMenu : public Menu { |
| a3a8b2b4 |
Poul Sander |
2023-10-15 21:04 |
444 |
private: |
| a3a8b2b4 |
Poul Sander |
2023-10-15 21:04 |
445 |
std::shared_ptr<BlockGameSdl> game; |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
446 |
public: |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
447 |
ThemesMenu(SDL_Renderer* screen, const std::string& title, bool submenu) : Menu(screen, title, submenu) { |
| a3a8b2b4 |
Poul Sander |
2023-10-15 21:04 |
448 |
game = std::make_shared<BlockGameSdl>(1024-500,100,&globalData.spriteHolder->GetDataHolder()); |
| 10a4aa95 |
Poul Sander |
2023-10-31 20:39 |
449 |
game->putSampleBlocks(); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
450 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
451 |
|
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
452 |
void placeButtons() { |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
453 |
int nextY = 100; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
454 |
int X = 50; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
455 |
for (Button* it : buttons) { |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
456 |
it->x = X; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
457 |
it->y = nextY; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
458 |
nextY += standardButton.ysize+10; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
459 |
} |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
460 |
exit.x = X; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
461 |
exit.y = nextY; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
462 |
} |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
463 |
|
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
464 |
void Draw(SDL_Renderer* target) override { |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
465 |
Menu::Draw(target); |
| a3a8b2b4 |
Poul Sander |
2023-10-15 21:04 |
466 |
game->DoPaintJob(); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
467 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
468 |
}; |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
469 |
|
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
470 |
static void OpenThemesMenu() { |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
471 |
ThemesMenu tm(globalData.screen, _("Themes"), true); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
472 |
Button bSwitchTheme; |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
473 |
bSwitchTheme.setLabel(_("Switch theme")); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
474 |
bSwitchTheme.setAction(&switchTheme); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
475 |
tm.addButton(&bSwitchTheme); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
476 |
RunGameState(tm); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
477 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
478 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
479 |
static void ConfigureMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
480 |
Menu cm(globalData.screen,_("Configuration"),true); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
481 |
AlwaysSoftwareRenderButton bSoftware; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
482 |
MusicButton bMusic; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
483 |
SoundButton bSound; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
484 |
FullscreenButton buttonFullscreen; |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
485 |
Button bPlayerConfig; |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
486 |
bPlayerConfig.setLabel(_("Player configuration") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
487 |
bPlayerConfig.setAction(PlayerConfigMenu); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
488 |
Button bThemes; |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
489 |
bThemes.setLabel(_("Themes")); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
490 |
bThemes.setAction(OpenThemesMenu); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
491 |
SetAlwaysSoftwareLabel(&bSoftware); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
492 |
SetMusicLabel(&bMusic); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
493 |
SetSoundLabel(&bSound); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
494 |
SetFullscreenLabel(&buttonFullscreen); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
495 |
cm.addButton(&bMusic); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
496 |
cm.addButton(&bSound); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
497 |
cm.addButton(&bSoftware); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
498 |
cm.addButton(&buttonFullscreen); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
499 |
cm.addButton(&bPlayerConfig); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
500 |
cm.addButton(&bThemes); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
501 |
RunGameState(cm); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
502 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
503 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
504 |
static void SinglePlayerVsMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
505 |
Menu spvs(globalData.screen,_("Single player VS"),true); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
506 |
RunSinglePlayerVsButton d1,d2,d3,d4,d5,d6,d7; |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
507 |
d1.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
508 |
d2.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
509 |
d3.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
510 |
d4.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
511 |
d5.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
512 |
d6.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
513 |
d7.setPopOnRun(true); |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
514 |
d1.iGeneric1 = 0; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
515 |
d2.iGeneric1 = 1; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
516 |
d3.iGeneric1 = 2; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
517 |
d4.iGeneric1 = 3; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
518 |
d5.iGeneric1 = 4; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
519 |
d6.iGeneric1 = 5; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
520 |
d7.iGeneric1 = 6; |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
521 |
d1.setLabel(_("Very easy")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
522 |
d2.setLabel(_("Easy")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
523 |
d3.setLabel(_("Below normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
524 |
d4.setLabel(_("Normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
525 |
d5.setLabel(_("Above normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
526 |
d6.setLabel(_("Hard")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
527 |
d7.setLabel(_("Hardest")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
528 |
spvs.addButton(&d1); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
529 |
spvs.addButton(&d2); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
530 |
spvs.addButton(&d3); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
531 |
spvs.addButton(&d4); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
532 |
spvs.addButton(&d5); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
533 |
spvs.addButton(&d6); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
534 |
spvs.addButton(&d7); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
535 |
RunGameState(spvs); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
536 |
} |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
537 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
538 |
static void MultiplayerMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
539 |
Menu mm(globalData.screen,_("Multiplayer"),true); |
| de81e07d |
sago007 |
2016-07-10 20:22 |
540 |
Button bTT, bVs; |
| b0222eff |
sago007 |
2012-04-22 15:06 |
541 |
bTT.setLabel(_("Two player - time trial")); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
542 |
bTT.setAction(runTwoPlayerTimeTrial); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
543 |
bVs.setLabel(_("Two player - vs")); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
544 |
bVs.setAction(runTwoPlayerVs); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
545 |
mm.addButton(&bTT); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
546 |
mm.addButton(&bVs); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
547 |
RunGameState(mm); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
548 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
549 |
|
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
550 |
static void runHowto() { |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
551 |
HelpHowtoState howto; |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
552 |
RunGameState(howto); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
553 |
} |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
554 |
|
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
555 |
static void runHelpModInfo() { |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
556 |
HelpModInfoState modInfo; |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
557 |
RunGameState(modInfo); |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
558 |
} |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
559 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
560 |
static void runHelpGamepad() { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
561 |
HelpGamepadState helpGamepad; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
562 |
RunGameState(helpGamepad); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
563 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
564 |
|
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
565 |
static void runHelpAbout() { |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
566 |
HelpAboutState helpAbout; |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
567 |
RunGameState(helpAbout); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
568 |
} |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
569 |
|
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
570 |
static void runCredits() { |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
571 |
ShowFileState creditsFile; |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
572 |
creditsFile.SetData("misc/AUTHORS", _("Credits")); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
573 |
RunGameState(creditsFile); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
574 |
} |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
575 |
|
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
576 |
static void HelpMenu() { |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
577 |
Menu m(globalData.screen, _("Help"), true); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
578 |
Button bHowto; |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
579 |
bHowto.setLabel(_("How to")); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
580 |
bHowto.setAction(runHowto); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
581 |
m.addButton(&bHowto); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
582 |
Button bGamepad; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
583 |
bGamepad.setLabel(_("Gamepad")); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
584 |
bGamepad.setAction(runHelpGamepad); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
585 |
m.addButton(&bGamepad); |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
586 |
Button bModInfo; |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
587 |
bModInfo.setLabel(_("Mod info")); |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
588 |
bModInfo.setAction(runHelpModInfo); |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
589 |
m.addButton(&bModInfo); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
590 |
Button bCredits; |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
591 |
bCredits.setLabel(_("Credits")); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
592 |
bCredits.setAction(runCredits); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
593 |
m.addButton(&bCredits); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
594 |
Button bAbout; |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
595 |
bAbout.setLabel(_("About")); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
596 |
bAbout.setAction(runHelpAbout); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
597 |
m.addButton(&bAbout); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
598 |
RunGameState(m); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
599 |
} |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
600 |
|
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
601 |
static void SinglePlayerMenu() { |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
602 |
Menu m(globalData.screen, _("Single player"), true); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
603 |
Button bHi,bTimetrial1, bStageClear, bPuzzle, bVs1; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
604 |
bHi.setLabel(_("Single player - endless") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
605 |
bHi.setAction(runSinglePlayerEndless); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
606 |
bTimetrial1.setLabel(_("Single player - time trial") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
607 |
bTimetrial1.setAction(runSinglePlayerTimeTrial); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
608 |
bStageClear.setLabel(_("Single player - stage clear") ); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
609 |
bStageClear.setAction(runStageClear); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
610 |
bPuzzle.setLabel(_("Single player - puzzle mode") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
611 |
bPuzzle.setAction(runSinglePlayerPuzzle); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
612 |
bVs1.setLabel(_("Single player - vs") ); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
613 |
bVs1.setAction(SinglePlayerVsMenu); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
614 |
m.addButton(&bHi); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
615 |
m.addButton(&bTimetrial1); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
616 |
m.addButton(&bStageClear); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
617 |
m.addButton(&bPuzzle); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
618 |
m.addButton(&bVs1); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
619 |
RunGameState(m); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
620 |
} |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
621 |
|
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
622 |
void SafeModeMenu() { |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
623 |
if (Config::getInstance()->getInt("always-software")) { |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
624 |
return; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
625 |
} |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
626 |
InitMenues(); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
627 |
Menu safeMode(globalData.screen, _("Game did not shutdown as it should"), true); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
628 |
Button bOnce; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
629 |
Button bAlways; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
630 |
bOnce.setLabel(_("Use software renderer this time")); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
631 |
bAlways.setLabel(_("Always use software renderer")); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
632 |
bOnce.setPopOnRun(true); |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
633 |
bAlways.setAction([]() { |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
634 |
Config::getInstance()->setInt("always-software", 1); |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
635 |
}); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
636 |
bAlways.setPopOnRun(true); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
637 |
safeMode.addButton(&bOnce); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
638 |
safeMode.addButton(&bAlways); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
639 |
RunGameState(safeMode); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
640 |
} |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
641 |
|
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
642 |
void MainMenu() { |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
643 |
InitMenues(); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
644 |
Menu m(globalData.screen,_("Block Attack - Rise of the blocks"),false); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
645 |
Button bHi, bMulti, bConfigure, bHighscore, bHelp; |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
646 |
bHi.setLabel(_("Single player") ); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
647 |
bHi.setAction(SinglePlayerMenu); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
648 |
bMulti.setLabel(_("Multi player") ); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
649 |
bMulti.setAction(MultiplayerMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
650 |
bConfigure.setLabel(_("Configure") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
651 |
bConfigure.setAction(ConfigureMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
652 |
bHighscore.setLabel(_("Highscores") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
653 |
bHighscore.setAction(buttonActionHighscores); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
654 |
bHelp.setLabel(_("Help")); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
655 |
bHelp.setAction(HelpMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
656 |
m.addButton(&bHi); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
657 |
m.addButton(&bMulti); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
658 |
m.addButton(&bConfigure); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
659 |
m.addButton(&bHighscore); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
660 |
m.addButton(&bHelp); |
| 95ab6b0d |
sago007 |
2016-11-12 16:11 |
661 |
RunGameState(m); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
662 |
} |
|
|
1970-01-01 00:00 |
663 |
|