git repos / blockattack-game

commit 4ba5514b

Poul Sander · 2023-10-09 18:59
4ba5514b7e0bf3ae18b06cc4c0612218def74489 patch · browse files
parent 7d88cb3813700a078de44f3373b18ccd8939a9fd

Started on a custom ThemesMenu

Changed files

M source/code/menudef.cpp before
diff --git a/source/code/menudef.cpp b/source/code/menudef.cpp index d371236..b59b494 100644 --- a/source/code/menudef.cpp +++ b/source/code/menudef.cpp
@@ -435,6 +435,30 @@ static void PlayerConfigMenu() {
RunGameState(pcm);
}
+static void switchTheme() {
+ globalData.theme = getNextTheme();
+}
+
+class ThemesMenu : public Menu {
+public:
+ ThemesMenu(SDL_Renderer* screen, const std::string& title, bool submenu) : Menu(screen, title, submenu) {
+
+ }
+
+ void Draw(SDL_Renderer* target) override {
+ Menu::Draw(target);
+ }
+};
+
+static void OpenThemesMenu() {
+ ThemesMenu tm(globalData.screen, _("Themes"), true);
+ Button bSwitchTheme;
+ bSwitchTheme.setLabel(_("Switch theme"));
+ bSwitchTheme.setAction(&switchTheme);
+ tm.addButton(&bSwitchTheme);
+ RunGameState(tm);
+}
+
static void ConfigureMenu() {
Menu cm(globalData.screen,_("Configuration"),true);
AlwaysSoftwareRenderButton bSoftware;
@@ -444,6 +468,9 @@ static void ConfigureMenu() {
Button bPlayerConfig;
bPlayerConfig.setLabel(_("Player configuration") );
bPlayerConfig.setAction(PlayerConfigMenu);
+ Button bThemes;
+ bThemes.setLabel(_("Themes"));
+ bThemes.setAction(OpenThemesMenu);
SetAlwaysSoftwareLabel(&bSoftware);
SetMusicLabel(&bMusic);
SetSoundLabel(&bSound);
@@ -453,6 +480,7 @@ static void ConfigureMenu() {
cm.addButton(&bSoftware);
cm.addButton(&buttonFullscreen);
cm.addButton(&bPlayerConfig);
+ cm.addButton(&bThemes);
RunGameState(cm);
}