| 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 |
|
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
221 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
222 |
static void runSinglePlayerEndless0() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
223 |
runGame(Gametype::SinglePlayerEndless, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
224 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
225 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
226 |
static void runSinglePlayerEndless1() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
227 |
runGame(Gametype::SinglePlayerEndless, 1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
228 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
229 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
230 |
static void runSinglePlayerEndless2() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
231 |
runGame(Gametype::SinglePlayerEndless, 2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
232 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
233 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
234 |
static void runSinglePlayerEndless3() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
235 |
runGame(Gametype::SinglePlayerEndless, 3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
236 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
237 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
238 |
static void runSinglePlayerEndless4() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
239 |
runGame(Gametype::SinglePlayerEndless, 4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
240 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
241 |
|
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
242 |
static void runSinglePlayerEndless() { |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
243 |
Menu sp(globalData.screen,_("Single Player Endless"),true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
244 |
Button d0,d1,d2,d3,d4; |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
245 |
d0.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
246 |
d1.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
247 |
d2.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
248 |
d3.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
249 |
d4.setPopOnRun(true); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
250 |
d0.setLabel(_("Slow")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
251 |
d1.setLabel(_("Fast")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
252 |
d2.setLabel(_("Faster")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
253 |
d3.setLabel(_("Even faster")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
254 |
d4.setLabel(_("Fastest")); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
255 |
d0.setAction(runSinglePlayerEndless0); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
256 |
d1.setAction(runSinglePlayerEndless1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
257 |
d2.setAction(runSinglePlayerEndless2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
258 |
d3.setAction(runSinglePlayerEndless3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
259 |
d4.setAction(runSinglePlayerEndless4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
260 |
sp.addButton(&d0); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
261 |
sp.addButton(&d1); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
262 |
sp.addButton(&d2); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
263 |
sp.addButton(&d3); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
264 |
sp.addButton(&d4); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
265 |
RunGameState(sp); |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
266 |
} |
| 4379ec19 |
Poul Sander |
2019-01-30 18:27 |
267 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
268 |
static void runSinglePlayerTimeTrial() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
269 |
runGame(Gametype::SinglePlayerTimeTrial, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
270 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
271 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
272 |
static void runStageClear() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
273 |
runGame(Gametype::StageClear, 0); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
274 |
} |
| aede0664 |
sago007 |
2012-04-19 19:45 |
275 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
276 |
static void runSinglePlayerPuzzle() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
277 |
runGame(Gametype::Puzzle, 0); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
278 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
279 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
280 |
class RunSinglePlayerVsButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
281 |
virtual void doAction() override { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
282 |
runGame(Gametype::SinglePlayerVs, iGeneric1); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
283 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
284 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
285 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
286 |
static void runTwoPlayerTimeTrial() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
287 |
runGame(Gametype::TwoPlayerTimeTrial, 0); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
288 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
289 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
290 |
static void runTwoPlayerVs() { |
| de81e07d |
sago007 |
2016-07-10 20:22 |
291 |
runGame(Gametype::TwoPlayerVs, 0); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
292 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
293 |
|
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
294 |
static void SetAlwaysSoftwareLabel(Button* b) { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
295 |
b->setLabel(Config::getInstance()->getInt("always-software")? |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
296 |
_("Always use software render: On") |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
297 |
: _("Always use software render: Off")); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
298 |
} |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
299 |
|
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
300 |
static void runSetMusicVolume(const char* cvar, const char* header) { |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
301 |
Menu volumeMenu(globalData.screen, header, true); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
302 |
Button_confirmVolume bConfirm(cvar); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
303 |
Button_increaseVolume plus5(cvar, 5); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
304 |
Button_increaseVolume minus5(cvar, -5); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
305 |
Button_increaseVolume plus1(cvar, 1); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
306 |
Button_increaseVolume minus1(cvar, -1); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
307 |
volumeMenu.addButton(&bConfirm); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
308 |
volumeMenu.addButton(&plus5); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
309 |
volumeMenu.addButton(&minus5); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
310 |
volumeMenu.addButton(&plus1); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
311 |
volumeMenu.addButton(&minus1); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
312 |
Button_testSound bTestSound; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
313 |
volumeMenu.addButton(&bTestSound); |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
314 |
Button_testMusic bTestMusic; |
| c99935b0 |
Poul Sander |
2021-08-28 13:13 |
315 |
volumeMenu.addButton(&bTestMusic); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
316 |
RunGameState(volumeMenu); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
317 |
} |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
318 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
319 |
static void SetMusicLabel (Button* b) { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
320 |
if (globalData.MusicEnabled) { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
321 |
double volume = Config::getInstance()->getInt("volume_music"); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
322 |
int volumePct = volume*100.0/MIX_MAX_VOLUME; |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
323 |
b->setLabel(std::string(_("Music: "))+ std::to_string(volumePct)+"%" ); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
324 |
} |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
325 |
else { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
326 |
b->setLabel(_("Music: Off") ); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
327 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
328 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
329 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
330 |
static void SetSoundLabel (Button* b) { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
331 |
if (globalData.SoundEnabled) { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
332 |
double volume = Config::getInstance()->getInt("volume_sound"); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
333 |
int volumePct = volume*100.0/MIX_MAX_VOLUME; |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
334 |
b->setLabel(std::string(_("Sound: "))+ std::to_string(volumePct)+"%" ); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
335 |
} |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
336 |
else { |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
337 |
b->setLabel(_("Sound: Off") ); |
| 4482071a |
Poul Sander |
2021-06-05 15:07 |
338 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
339 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
340 |
|
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
341 |
static void SetFullscreenLabel (Button* b) { |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
342 |
b->setLabel(globalData.bFullscreen? _("Fullscreen: On") : _("Fullscreen: Off") ); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
343 |
} |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
344 |
|
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
345 |
class AlwaysSoftwareRenderButton : public Button { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
346 |
virtual void doAction() override { |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
347 |
Config::getInstance()->setInt("always-software", !Config::getInstance()->getInt("always-software")); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
348 |
SetAlwaysSoftwareLabel(this); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
349 |
} |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
350 |
}; |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
351 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
352 |
class MusicButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
353 |
virtual void doAction() override { |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
354 |
runSetMusicVolume("volume_music", _("Music volume")); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
355 |
globalData.MusicEnabled = (Config::getInstance()->getInt("volume_music") != 0); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
356 |
SetMusicLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
357 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
358 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
359 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
360 |
class SoundButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
361 |
virtual void doAction() override { |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
362 |
runSetMusicVolume("volume_sound", _("Sound volume")); |
| 5f8ce673 |
Poul Sander |
2021-06-05 22:18 |
363 |
globalData.MusicEnabled = (Config::getInstance()->getInt("volume_sound") != 0); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
364 |
SetSoundLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
365 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
366 |
}; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
367 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
368 |
class FullscreenButton : public Button { |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
369 |
virtual void doAction() override { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
370 |
globalData.bFullscreen = !globalData.bFullscreen; |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
371 |
SetFullscreenLabel(this); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
372 |
ResetFullscreen(); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
373 |
} |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
374 |
}; |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
375 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
376 |
static void buttonActionPlayer1Name() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
377 |
if ( OpenDialogbox(200, 100, globalData.player1name, _("Enter player 1 name:")) ) { |
| acd79baf |
sago007 |
2015-11-22 19:37 |
378 |
return; //must save if true |
| acd79baf |
sago007 |
2015-11-22 19:37 |
379 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
380 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
381 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
382 |
static void buttonActionPlayer2Name() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
383 |
if ( OpenDialogbox(200, 100, globalData.player2name, _("Enter player 2 name:")) ) { |
| acd79baf |
sago007 |
2015-11-22 19:37 |
384 |
return; //must save if true |
| acd79baf |
sago007 |
2015-11-22 19:37 |
385 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
386 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
387 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
388 |
static void buttonActionHighscores() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
389 |
OpenScoresDisplay(); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
390 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
391 |
|
| ecef5838 |
sago007 |
2015-11-24 20:01 |
392 |
static void ChangeKeysMenu(long playernumber) { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
393 |
Menu km(globalData.screen,_("Change key bindings"),true); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
394 |
Button_changekey bLeft(&keySettings[playernumber].left,_("Left") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
395 |
Button_changekey bRight(&keySettings[playernumber].right,_("Right") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
396 |
Button_changekey bUp(&keySettings[playernumber].up,_("Up") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
397 |
Button_changekey bDown(&keySettings[playernumber].down,_("Down") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
398 |
Button_changekey bPush(&keySettings[playernumber].push,_("Push") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
399 |
Button_changekey bSwitch(&keySettings[playernumber].change,_("Change") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
400 |
km.addButton(&bLeft); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
401 |
km.addButton(&bRight); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
402 |
km.addButton(&bUp); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
403 |
km.addButton(&bDown); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
404 |
km.addButton(&bPush); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
405 |
km.addButton(&bSwitch); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
406 |
RunGameState(km); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
407 |
} |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
408 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
409 |
static void ChangeKeysMenu1() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
410 |
ChangeKeysMenu(0); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
411 |
} |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
412 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
413 |
static void ChangeKeysMenu2() { |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
414 |
ChangeKeysMenu(2); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
415 |
} |
| fc8e3d6a |
sago007 |
2011-06-25 16:31 |
416 |
|
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
417 |
static void PlayerConfigMenu() { |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
418 |
Menu pcm(globalData.screen,_("Player configuration"),true); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
419 |
Button bPlayer1Name, bPlayer2Name; |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
420 |
Button bPlayer1Keys, bPlayer2Keys; |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
421 |
bPlayer1Name.setAction(buttonActionPlayer1Name); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
422 |
bPlayer1Name.setLabel(_("Change player 1's name") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
423 |
bPlayer2Name.setAction(buttonActionPlayer2Name); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
424 |
bPlayer2Name.setLabel(_("Change player 2's name") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
425 |
bPlayer1Keys.setAction(ChangeKeysMenu1); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
426 |
bPlayer1Keys.setLabel(_("Change player 1's keys") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
427 |
bPlayer2Keys.setAction(ChangeKeysMenu2); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
428 |
bPlayer2Keys.setLabel(_("Change player 2's keys") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
429 |
pcm.addButton(&bPlayer1Name); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
430 |
pcm.addButton(&bPlayer2Name); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
431 |
pcm.addButton(&bPlayer1Keys); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
432 |
pcm.addButton(&bPlayer2Keys); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
433 |
RunGameState(pcm); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
434 |
} |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
435 |
|
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
436 |
static void switchTheme() { |
| 51c4029b |
Poul Sander |
2023-11-15 16:11 |
437 |
globalData.theme = ThemesGetNext(); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
438 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
439 |
|
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
440 |
|
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
441 |
static void testMusic() { |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
442 |
static bool highbeatNext = false; |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
443 |
int musicVolume = Config::getInstance()->getInt("volume_music"); |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
444 |
std::string music_name = "bgmusic"; |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
445 |
if (highbeatNext) { |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
446 |
music_name = "highbeat"; |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
447 |
} |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
448 |
Mix_PlayMusic(globalData.spriteHolder->GetDataHolder().getMusicHandler(music_name.c_str()).get(), 1); |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
449 |
Mix_VolumeMusic(musicVolume); |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
450 |
highbeatNext = !highbeatNext; //Toggle between standard and highbeat |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
451 |
} |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
452 |
|
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
453 |
class ThemesMenu : public Menu { |
| a3a8b2b4 |
Poul Sander |
2023-10-15 21:04 |
454 |
private: |
| a3a8b2b4 |
Poul Sander |
2023-10-15 21:04 |
455 |
std::shared_ptr<BlockGameSdl> game; |
| b7249250 |
Poul Sander |
2023-11-13 16:11 |
456 |
sago::SagoTextField themeTitle; |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
457 |
public: |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
458 |
ThemesMenu(SDL_Renderer* screen, const std::string& title, bool submenu) : Menu(screen, title, submenu) { |
| 75e8dcd8 |
Poul Sander |
2023-11-11 14:41 |
459 |
game = std::make_shared<BlockGameSdl>(globalData.xsize-450,100,&globalData.spriteHolder->GetDataHolder()); |
| 10a4aa95 |
Poul Sander |
2023-10-31 20:39 |
460 |
game->putSampleBlocks(); |
| b7249250 |
Poul Sander |
2023-11-13 16:11 |
461 |
sagoTextSetBlueFont(themeTitle); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
462 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
463 |
|
| 60b2bac0 |
Poul Sander |
2023-11-10 20:43 |
464 |
void placeButtons() override { |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
465 |
int nextY = 100; |
| 75e8dcd8 |
Poul Sander |
2023-11-11 14:41 |
466 |
int X = 10; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
467 |
for (Button* it : buttons) { |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
468 |
it->x = X; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
469 |
it->y = nextY; |
| 60b2bac0 |
Poul Sander |
2023-11-10 20:43 |
470 |
nextY += it->standardButton.ysize+10; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
471 |
} |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
472 |
exit.x = X; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
473 |
exit.y = nextY; |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
474 |
} |
| ddceb7e8 |
Poul Sander |
2023-10-18 11:02 |
475 |
|
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
476 |
void Draw(SDL_Renderer* target) override { |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
477 |
Menu::Draw(target); |
| a3a8b2b4 |
Poul Sander |
2023-10-15 21:04 |
478 |
game->DoPaintJob(); |
| b7249250 |
Poul Sander |
2023-11-13 16:11 |
479 |
themeTitle.SetText(fmt::format(_("Theme: {}"), globalData.theme.theme_name)); |
| b7249250 |
Poul Sander |
2023-11-13 16:11 |
480 |
themeTitle.Draw(target, 10, globalData.ysize-50,sago::SagoTextField::Alignment::left); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
481 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
482 |
}; |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
483 |
|
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
484 |
static void OpenThemesMenu() { |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
485 |
ThemesMenu tm(globalData.screen, _("Themes"), true); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
486 |
Button bSwitchTheme; |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
487 |
bSwitchTheme.setLabel(_("Switch theme")); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
488 |
bSwitchTheme.setAction(&switchTheme); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
489 |
tm.addButton(&bSwitchTheme); |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
490 |
if (!globalData.NoSound) { |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
491 |
Button bTestMusic; |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
492 |
bTestMusic.setLabel(_("Test music")); |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
493 |
bTestMusic.setAction(&testMusic); |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
494 |
tm.addButton(&bTestMusic); |
| 397e4b12 |
Poul Sander |
2023-11-13 13:41 |
495 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
496 |
RunGameState(tm); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
497 |
} |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
498 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
499 |
static void ConfigureMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
500 |
Menu cm(globalData.screen,_("Configuration"),true); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
501 |
AlwaysSoftwareRenderButton bSoftware; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
502 |
MusicButton bMusic; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
503 |
SoundButton bSound; |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
504 |
FullscreenButton buttonFullscreen; |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
505 |
Button bPlayerConfig; |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
506 |
bPlayerConfig.setLabel(_("Player configuration") ); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
507 |
bPlayerConfig.setAction(PlayerConfigMenu); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
508 |
Button bThemes; |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
509 |
bThemes.setLabel(_("Themes")); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
510 |
bThemes.setAction(OpenThemesMenu); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
511 |
SetAlwaysSoftwareLabel(&bSoftware); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
512 |
SetMusicLabel(&bMusic); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
513 |
SetSoundLabel(&bSound); |
| e17d4be2 |
Poul Sander |
2019-03-13 17:29 |
514 |
SetFullscreenLabel(&buttonFullscreen); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
515 |
cm.addButton(&bMusic); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
516 |
cm.addButton(&bSound); |
| 1029dfed |
Poul Sander |
2019-03-13 17:22 |
517 |
cm.addButton(&bSoftware); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
518 |
cm.addButton(&buttonFullscreen); |
| 3affd2d6 |
Poul Sander |
2020-12-27 15:56 |
519 |
cm.addButton(&bPlayerConfig); |
| 4ba5514b |
Poul Sander |
2023-10-09 18:59 |
520 |
cm.addButton(&bThemes); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
521 |
RunGameState(cm); |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
522 |
} |
| 26ddb424 |
sago007 |
2011-06-09 20:06 |
523 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
524 |
static void SinglePlayerVsMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
525 |
Menu spvs(globalData.screen,_("Single player VS"),true); |
| 29edda2d |
sago007 |
2016-10-08 18:06 |
526 |
RunSinglePlayerVsButton d1,d2,d3,d4,d5,d6,d7; |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
527 |
d1.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
528 |
d2.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
529 |
d3.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
530 |
d4.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
531 |
d5.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
532 |
d6.setPopOnRun(true); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
533 |
d7.setPopOnRun(true); |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
534 |
d1.iGeneric1 = 0; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
535 |
d2.iGeneric1 = 1; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
536 |
d3.iGeneric1 = 2; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
537 |
d4.iGeneric1 = 3; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
538 |
d5.iGeneric1 = 4; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
539 |
d6.iGeneric1 = 5; |
| e68d08eb |
sago007 |
2013-11-15 22:33 |
540 |
d7.iGeneric1 = 6; |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
541 |
d1.setLabel(_("Very easy")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
542 |
d2.setLabel(_("Easy")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
543 |
d3.setLabel(_("Below normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
544 |
d4.setLabel(_("Normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
545 |
d5.setLabel(_("Above normal")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
546 |
d6.setLabel(_("Hard")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
547 |
d7.setLabel(_("Hardest")); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
548 |
spvs.addButton(&d1); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
549 |
spvs.addButton(&d2); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
550 |
spvs.addButton(&d3); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
551 |
spvs.addButton(&d4); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
552 |
spvs.addButton(&d5); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
553 |
spvs.addButton(&d6); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
554 |
spvs.addButton(&d7); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
555 |
RunGameState(spvs); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
556 |
} |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
557 |
|
| 29edda2d |
sago007 |
2016-10-08 18:06 |
558 |
static void MultiplayerMenu() { |
| 72383a9e |
sago007 |
2016-10-30 11:56 |
559 |
Menu mm(globalData.screen,_("Multiplayer"),true); |
| de81e07d |
sago007 |
2016-07-10 20:22 |
560 |
Button bTT, bVs; |
| b0222eff |
sago007 |
2012-04-22 15:06 |
561 |
bTT.setLabel(_("Two player - time trial")); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
562 |
bTT.setAction(runTwoPlayerTimeTrial); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
563 |
bVs.setLabel(_("Two player - vs")); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
564 |
bVs.setAction(runTwoPlayerVs); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
565 |
mm.addButton(&bTT); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
566 |
mm.addButton(&bVs); |
| 20d77c6e |
sago007 |
2016-11-12 16:28 |
567 |
RunGameState(mm); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
568 |
} |
| b0222eff |
sago007 |
2012-04-22 15:06 |
569 |
|
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
570 |
static void runHowto() { |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
571 |
HelpHowtoState howto; |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
572 |
RunGameState(howto); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
573 |
} |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
574 |
|
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
575 |
static void runHelpModInfo() { |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
576 |
HelpModInfoState modInfo; |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
577 |
RunGameState(modInfo); |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
578 |
} |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
579 |
|
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
580 |
static void runHelpGamepad() { |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
581 |
HelpGamepadState helpGamepad; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
582 |
RunGameState(helpGamepad); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
583 |
} |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
584 |
|
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
585 |
static void runHelpAbout() { |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
586 |
HelpAboutState helpAbout; |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
587 |
RunGameState(helpAbout); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
588 |
} |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
589 |
|
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
590 |
static void runCredits() { |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
591 |
ShowFileState creditsFile; |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
592 |
creditsFile.SetData("misc/AUTHORS", _("Credits")); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
593 |
RunGameState(creditsFile); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
594 |
} |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
595 |
|
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
596 |
static void HelpMenu() { |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
597 |
Menu m(globalData.screen, _("Help"), true); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
598 |
Button bHowto; |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
599 |
bHowto.setLabel(_("How to")); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
600 |
bHowto.setAction(runHowto); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
601 |
m.addButton(&bHowto); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
602 |
Button bGamepad; |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
603 |
bGamepad.setLabel(_("Gamepad")); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
604 |
bGamepad.setAction(runHelpGamepad); |
| 54d2d583 |
sago007 |
2018-04-05 17:52 |
605 |
m.addButton(&bGamepad); |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
606 |
Button bModInfo; |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
607 |
bModInfo.setLabel(_("Mod info")); |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
608 |
bModInfo.setAction(runHelpModInfo); |
| bfb4fed7 |
Poul Sander |
2022-02-14 19:35 |
609 |
m.addButton(&bModInfo); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
610 |
Button bCredits; |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
611 |
bCredits.setLabel(_("Credits")); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
612 |
bCredits.setAction(runCredits); |
| 0471a1d3 |
sago007 |
2018-05-19 10:26 |
613 |
m.addButton(&bCredits); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
614 |
Button bAbout; |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
615 |
bAbout.setLabel(_("About")); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
616 |
bAbout.setAction(runHelpAbout); |
| 5147de4e |
Poul Sander |
2018-05-06 12:59 |
617 |
m.addButton(&bAbout); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
618 |
RunGameState(m); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
619 |
} |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
620 |
|
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
621 |
static void SinglePlayerMenu() { |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
622 |
Menu m(globalData.screen, _("Single player"), true); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
623 |
Button bHi,bTimetrial1, bStageClear, bPuzzle, bVs1; |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
624 |
bHi.setLabel(_("Single player - endless") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
625 |
bHi.setAction(runSinglePlayerEndless); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
626 |
bTimetrial1.setLabel(_("Single player - time trial") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
627 |
bTimetrial1.setAction(runSinglePlayerTimeTrial); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
628 |
bStageClear.setLabel(_("Single player - stage clear") ); |
| aede0664 |
sago007 |
2012-04-19 19:45 |
629 |
bStageClear.setAction(runStageClear); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
630 |
bPuzzle.setLabel(_("Single player - puzzle mode") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
631 |
bPuzzle.setAction(runSinglePlayerPuzzle); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
632 |
bVs1.setLabel(_("Single player - vs") ); |
| 67a32395 |
sago007 |
2012-04-19 18:40 |
633 |
bVs1.setAction(SinglePlayerVsMenu); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
634 |
m.addButton(&bHi); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
635 |
m.addButton(&bTimetrial1); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
636 |
m.addButton(&bStageClear); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
637 |
m.addButton(&bPuzzle); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
638 |
m.addButton(&bVs1); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
639 |
RunGameState(m); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
640 |
} |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
641 |
|
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
642 |
void SafeModeMenu() { |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
643 |
if (Config::getInstance()->getInt("always-software")) { |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
644 |
return; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
645 |
} |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
646 |
Menu safeMode(globalData.screen, _("Game did not shutdown as it should"), true); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
647 |
Button bOnce; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
648 |
Button bAlways; |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
649 |
bOnce.setLabel(_("Use software renderer this time")); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
650 |
bAlways.setLabel(_("Always use software renderer")); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
651 |
bOnce.setPopOnRun(true); |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
652 |
bAlways.setAction([]() { |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
653 |
Config::getInstance()->setInt("always-software", 1); |
| 9c7fa9a1 |
sago007 |
2020-06-27 22:09 |
654 |
}); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
655 |
bAlways.setPopOnRun(true); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
656 |
safeMode.addButton(&bOnce); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
657 |
safeMode.addButton(&bAlways); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
658 |
RunGameState(safeMode); |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
659 |
} |
| ccee1ad0 |
Poul Sander |
2019-03-13 18:39 |
660 |
|
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
661 |
void MainMenu() { |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
662 |
Menu m(globalData.screen,_("Block Attack - Rise of the blocks"),false); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
663 |
Button bHi, bMulti, bConfigure, bHighscore, bHelp; |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
664 |
bHi.setLabel(_("Single player") ); |
| 2f331f0c |
sago007 |
2017-08-19 16:17 |
665 |
bHi.setAction(SinglePlayerMenu); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
666 |
bMulti.setLabel(_("Multi player") ); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
667 |
bMulti.setAction(MultiplayerMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
668 |
bConfigure.setLabel(_("Configure") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
669 |
bConfigure.setAction(ConfigureMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
670 |
bHighscore.setLabel(_("Highscores") ); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
671 |
bHighscore.setAction(buttonActionHighscores); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
672 |
bHelp.setLabel(_("Help")); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
673 |
bHelp.setAction(HelpMenu); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
674 |
m.addButton(&bHi); |
| b0222eff |
sago007 |
2012-04-22 15:06 |
675 |
m.addButton(&bMulti); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
676 |
m.addButton(&bConfigure); |
| c53e6443 |
sago007 |
2012-04-17 11:04 |
677 |
m.addButton(&bHighscore); |
| d8fe60bd |
sago007 |
2018-04-02 16:15 |
678 |
m.addButton(&bHelp); |
| 95ab6b0d |
sago007 |
2016-11-12 16:11 |
679 |
RunGameState(m); |
| 593aeae4 |
sago007 |
2011-06-25 22:42 |
680 |
} |
|
|
1970-01-01 00:00 |
681 |
|