From 02478ea3bc27826706a86383e6ce5a0ecc729118 Mon Sep 17 00:00:00 2001 From: Rampoina Date: Tue, 9 Aug 2022 21:04:43 +0200 Subject: [PATCH] Load the game on double click on the loading menu --- source/glest_game/menu/main_menu.cpp | 10 ++++++++++ source/glest_game/menu/main_menu.h | 3 +++ source/glest_game/menu/menu_state_about.h | 1 + source/glest_game/menu/menu_state_connected_game.h | 1 + source/glest_game/menu/menu_state_custom_game.h | 1 + source/glest_game/menu/menu_state_graphic_info.h | 1 + source/glest_game/menu/menu_state_join_game.h | 1 + source/glest_game/menu/menu_state_keysetup.h | 1 + source/glest_game/menu/menu_state_load_game.cpp | 6 ++++++ source/glest_game/menu/menu_state_load_game.h | 1 + source/glest_game/menu/menu_state_masterserver.h | 1 + source/glest_game/menu/menu_state_mods.h | 1 + source/glest_game/menu/menu_state_new_game.h | 1 + source/glest_game/menu/menu_state_options.h | 1 + source/glest_game/menu/menu_state_options_graphics.h | 1 + source/glest_game/menu/menu_state_options_network.h | 1 + source/glest_game/menu/menu_state_options_sound.h | 1 + source/glest_game/menu/menu_state_root.h | 1 + source/glest_game/menu/menu_state_scenario.h | 1 + 19 files changed, 35 insertions(+) diff --git a/source/glest_game/menu/main_menu.cpp b/source/glest_game/menu/main_menu.cpp index 1f28bc2f..e965b7e5 100644 --- a/source/glest_game/menu/main_menu.cpp +++ b/source/glest_game/menu/main_menu.cpp @@ -227,6 +227,16 @@ void MainMenu::mouseDownLeft(int x, int y){ state->mouseClick(x, y, mbLeft); } +void MainMenu::mouseDoubleClickLeft(int x, int y){ + if(GraphicComponent::getFade()<0.2f) return; + state->mouseDoubleClick(x, y, mbLeft); +} + +void MainMenu::mouseDoubleClickRight(int x, int y){ + if(GraphicComponent::getFade()<0.2f) return; + state->mouseDoubleClick(x, y, mbRight); +} + void MainMenu::mouseDownRight(int x, int y){ if(GraphicComponent::getFade()<0.2f) return; state->mouseClick(x, y, mbRight); diff --git a/source/glest_game/menu/main_menu.h b/source/glest_game/menu/main_menu.h index a98225bd..455ffb3c 100644 --- a/source/glest_game/menu/main_menu.h +++ b/source/glest_game/menu/main_menu.h @@ -74,6 +74,8 @@ public: virtual void mouseMove(int x, int y, const MouseState *mouseState); virtual void eventMouseWheel(int x, int y,int zDelta); virtual void mouseDownLeft(int x, int y); + virtual void mouseDoubleClickLeft(int x, int y); + virtual void mouseDoubleClickRight(int x, int y); virtual void mouseDownRight(int x, int y); virtual void mouseUpLeft(int x, int y); virtual bool textInput(std::string text); @@ -119,6 +121,7 @@ public: MenuState(Program *program, MainMenu *mainMenu, const string &stateName); virtual ~MenuState(); virtual void mouseClick(int x, int y, MouseButton mouseButton)=0; + virtual void mouseDoubleClick(int x, int y, MouseButton mouseButton)=0; virtual void mouseUp(int x, int y, const MouseButton mouseButton){}; virtual void mouseMove(int x, int y, const MouseState *mouseState)=0; virtual void eventMouseWheel(int x, int y, int zDelta){}; diff --git a/source/glest_game/menu/menu_state_about.h b/source/glest_game/menu/menu_state_about.h index efa6c0ef..5a8207b4 100644 --- a/source/glest_game/menu/menu_state_about.h +++ b/source/glest_game/menu/menu_state_about.h @@ -59,6 +59,7 @@ public: virtual ~MenuStateAbout(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void render(); virtual void keyDown(SDL_KeyboardEvent key); diff --git a/source/glest_game/menu/menu_state_connected_game.h b/source/glest_game/menu/menu_state_connected_game.h index e1426c9e..f4971cf0 100644 --- a/source/glest_game/menu/menu_state_connected_game.h +++ b/source/glest_game/menu/menu_state_connected_game.h @@ -266,6 +266,7 @@ public: virtual ~MenuStateConnectedGame(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void eventMouseWheel(int x, int y,int zDelta); void render(); diff --git a/source/glest_game/menu/menu_state_custom_game.h b/source/glest_game/menu/menu_state_custom_game.h index 8e27dce0..5f67c5e9 100644 --- a/source/glest_game/menu/menu_state_custom_game.h +++ b/source/glest_game/menu/menu_state_custom_game.h @@ -245,6 +245,7 @@ public: virtual ~MenuStateCustomGame(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void eventMouseWheel(int x, int y,int zDelta); void render(); diff --git a/source/glest_game/menu/menu_state_graphic_info.h b/source/glest_game/menu/menu_state_graphic_info.h index 71ec9cb4..2d4b1e9f 100644 --- a/source/glest_game/menu/menu_state_graphic_info.h +++ b/source/glest_game/menu/menu_state_graphic_info.h @@ -38,6 +38,7 @@ public: MenuStateGraphicInfo(Program *program, MainMenu *mainMenu); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void render(); virtual void keyDown(SDL_KeyboardEvent key); diff --git a/source/glest_game/menu/menu_state_join_game.h b/source/glest_game/menu/menu_state_join_game.h index c4cac3f8..85b1ff09 100644 --- a/source/glest_game/menu/menu_state_join_game.h +++ b/source/glest_game/menu/menu_state_join_game.h @@ -76,6 +76,7 @@ public: virtual ~MenuStateJoinGame(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void render(); void update(); diff --git a/source/glest_game/menu/menu_state_keysetup.h b/source/glest_game/menu/menu_state_keysetup.h index add7352a..bd6a7167 100644 --- a/source/glest_game/menu/menu_state_keysetup.h +++ b/source/glest_game/menu/menu_state_keysetup.h @@ -70,6 +70,7 @@ public: virtual ~MenuStateKeysetup(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseUp(int x, int y, const MouseButton mouseButton); void mouseMove(int x, int y, const MouseState *mouseState); void update(); diff --git a/source/glest_game/menu/menu_state_load_game.cpp b/source/glest_game/menu/menu_state_load_game.cpp index 876c65e1..38c11b79 100644 --- a/source/glest_game/menu/menu_state_load_game.cpp +++ b/source/glest_game/menu/menu_state_load_game.cpp @@ -189,6 +189,12 @@ void MenuStateLoadGame::reloadUI() { GraphicComponent::reloadFontsForRegisterGraphicComponents(containerName); } +void MenuStateLoadGame::mouseDoubleClick(int x, int y, MouseButton mouseButton) { + if (mouseButton == mbLeft) { + slotsScrollBar.mouseDown(x, y); + mouseClick(loadButton.getX()+1, loadButton.getY()+1, mouseButton); + } +} void MenuStateLoadGame::mouseClick(int x, int y, MouseButton mouseButton){ CoreData &coreData= CoreData::getInstance(); diff --git a/source/glest_game/menu/menu_state_load_game.h b/source/glest_game/menu/menu_state_load_game.h index eeeb146e..ca344ce9 100644 --- a/source/glest_game/menu/menu_state_load_game.h +++ b/source/glest_game/menu/menu_state_load_game.h @@ -56,6 +56,7 @@ public: ~MenuStateLoadGame(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton); void mouseUp(int x, int y, const MouseButton mouseButton); void mouseMove(int x, int y, const MouseState *mouseState); void update(); diff --git a/source/glest_game/menu/menu_state_masterserver.h b/source/glest_game/menu/menu_state_masterserver.h index 55f2ac00..2b36f208 100644 --- a/source/glest_game/menu/menu_state_masterserver.h +++ b/source/glest_game/menu/menu_state_masterserver.h @@ -117,6 +117,7 @@ public: ~MenuStateMasterserver(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseUp(int x, int y, const MouseButton mouseButton); void mouseMove(int x, int y, const MouseState *mouseState); void update(); diff --git a/source/glest_game/menu/menu_state_mods.h b/source/glest_game/menu/menu_state_mods.h index 8ed70b05..74406eb3 100644 --- a/source/glest_game/menu/menu_state_mods.h +++ b/source/glest_game/menu/menu_state_mods.h @@ -188,6 +188,7 @@ public: virtual ~MenuStateMods(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseUp(int x, int y, const MouseButton mouseButton); void mouseMove(int x, int y, const MouseState *mouseState); void eventMouseWheel(int x, int y,int zDelta); diff --git a/source/glest_game/menu/menu_state_new_game.h b/source/glest_game/menu/menu_state_new_game.h index d8ac2d2e..d3066e5b 100644 --- a/source/glest_game/menu/menu_state_new_game.h +++ b/source/glest_game/menu/menu_state_new_game.h @@ -34,6 +34,7 @@ public: MenuStateNewGame(Program *program, MainMenu *mainMenu); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void update(); void render(); diff --git a/source/glest_game/menu/menu_state_options.h b/source/glest_game/menu/menu_state_options.h index ed6689b5..4dab996b 100644 --- a/source/glest_game/menu/menu_state_options.h +++ b/source/glest_game/menu/menu_state_options.h @@ -94,6 +94,7 @@ public: virtual ~MenuStateOptions(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void render(); virtual bool textInput(std::string text); diff --git a/source/glest_game/menu/menu_state_options_graphics.h b/source/glest_game/menu/menu_state_options_graphics.h index 75203ac6..1b18469b 100644 --- a/source/glest_game/menu/menu_state_options_graphics.h +++ b/source/glest_game/menu/menu_state_options_graphics.h @@ -99,6 +99,7 @@ public: MenuStateOptionsGraphics(Program *program, MainMenu *mainMenu, ProgramState **parentUI=NULL); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void render(); //virtual void keyDown(SDL_KeyboardEvent key); diff --git a/source/glest_game/menu/menu_state_options_network.h b/source/glest_game/menu/menu_state_options_network.h index 71a470fb..c518a756 100644 --- a/source/glest_game/menu/menu_state_options_network.h +++ b/source/glest_game/menu/menu_state_options_network.h @@ -70,6 +70,7 @@ public: MenuStateOptionsNetwork(Program *program, MainMenu *mainMenu, ProgramState **parentUI=NULL); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void render(); //virtual void keyDown(SDL_KeyboardEvent key); diff --git a/source/glest_game/menu/menu_state_options_sound.h b/source/glest_game/menu/menu_state_options_sound.h index dc4cef95..05c2f3b9 100644 --- a/source/glest_game/menu/menu_state_options_sound.h +++ b/source/glest_game/menu/menu_state_options_sound.h @@ -54,6 +54,7 @@ public: MenuStateOptionsSound(Program *program, MainMenu *mainMenu, ProgramState **parentUI=NULL); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void render(); //virtual void keyDown(SDL_KeyboardEvent key); diff --git a/source/glest_game/menu/menu_state_root.h b/source/glest_game/menu/menu_state_root.h index 29e5f2f0..9be5fbfd 100644 --- a/source/glest_game/menu/menu_state_root.h +++ b/source/glest_game/menu/menu_state_root.h @@ -62,6 +62,7 @@ public: virtual ~MenuStateRoot(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void render(); void update(); diff --git a/source/glest_game/menu/menu_state_scenario.h b/source/glest_game/menu/menu_state_scenario.h index f7889279..5a2a9244 100644 --- a/source/glest_game/menu/menu_state_scenario.h +++ b/source/glest_game/menu/menu_state_scenario.h @@ -56,6 +56,7 @@ public: virtual ~MenuStateScenario(); void mouseClick(int x, int y, MouseButton mouseButton); + void mouseDoubleClick(int x, int y, MouseButton mouseButton){}; void mouseMove(int x, int y, const MouseState *mouseState); void eventMouseWheel(int x, int y,int zDelta); void render();