From 2e6c54e44860650f996c3b58438a21f9ccc24c10 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Fri, 27 Sep 2024 18:16:18 +0300 Subject: [PATCH] bugfixes for crashing when pausing the game or selecting engineers --- activeStateButton.cpp | 2 +- activeStateButton.h | 2 +- concreteGuiManager.cpp | 2 +- map.cpp | 2 ++ minimapButton.h | 6 +++--- playerTradeButton.cpp | 2 +- tradingScreenButton.cpp | 2 +- 7 files changed, 10 insertions(+), 8 deletions(-) diff --git a/activeStateButton.cpp b/activeStateButton.cpp index 2a25bbb..275feec 100644 --- a/activeStateButton.cpp +++ b/activeStateButton.cpp @@ -18,7 +18,7 @@ namespace battleship{ using namespace vb01Gui; using namespace gameBase; - ActiveStateButton::ActiveStateButton(Vector3 pos, Vector2 size, string gs, string name, int trigger, string imagePath) : Button(pos, size, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", trigger, true, imagePath), guiScreen(gs){ + ActiveStateButton::ActiveStateButton(Vector3 pos, Vector2 size, string gs, string name, string fontPath, int trigger, string imagePath) : Button(pos, size, name, fontPath, trigger, true, imagePath), guiScreen(gs){ StateManager *stateManager = GameManager::getSingleton()->getStateManager(); ActiveGameState *activeState = (ActiveGameState*)stateManager->getAppStateByType((int)AppStateType::ACTIVE_STATE); diff --git a/activeStateButton.h b/activeStateButton.h index 2def462..48a7c14 100644 --- a/activeStateButton.h +++ b/activeStateButton.h @@ -6,7 +6,7 @@ namespace battleship{ class ActiveStateButton : public vb01Gui::Button{ public: - ActiveStateButton(vb01::Vector3, vb01::Vector2, std::string, std::string, int = -1, std::string = ""); + ActiveStateButton(vb01::Vector3, vb01::Vector2, std::string, std::string, std::string, int = -1, std::string = ""); void onClick(); private: std::string guiScreen = ""; diff --git a/concreteGuiManager.cpp b/concreteGuiManager.cpp index 563b87b..d8c950a 100644 --- a/concreteGuiManager.cpp +++ b/concreteGuiManager.cpp @@ -243,7 +243,7 @@ namespace battleship{ break; case ACTIVE_GAME_STATE: guiScreen = guiTable["guiScreen"]; - button = new ActiveStateButton(pos, size, guiScreen, name, (int)guiTable["trigger"], imagePath); + button = new ActiveStateButton(pos, size, guiScreen, name, fontBasePath + "batang.ttf", (int)guiTable["trigger"], imagePath); break; case PLAYER_TRADE: guiScreen = guiTable["guiScreen"]; diff --git a/map.cpp b/map.cpp index f752da0..79a94af 100755 --- a/map.cpp +++ b/map.cpp @@ -203,6 +203,8 @@ namespace battleship{ } void Map::Minimap::update(){ + if(!GameManager::getSingleton()->getStateManager()->getAppStateByType(AppStateType::ACTIVE_STATE)) return; + Button *mb = ConcreteGuiManager::getSingleton()->getButton("minimap"); updateImage(mb); updateCamFrame(mb); diff --git a/minimapButton.h b/minimapButton.h index 92f0802..bd6a402 100644 --- a/minimapButton.h +++ b/minimapButton.h @@ -1,16 +1,16 @@ #ifndef MINIMAP_BUTTON_H #define MINIMAP_BUTTON_H -#include +#include "activeStateButton.h" namespace vb01{ class Node; } namespace battleship{ - class MinimapButton : public vb01Gui::Button{ + class MinimapButton : public ActiveStateButton{ public: - MinimapButton(vb01::Vector3 pos, vb01::Vector2 size, std::string ip) : vb01Gui::Button(pos, size, "minimap", "", -1, true, ip){} + MinimapButton(vb01::Vector3 pos, vb01::Vector2 size, std::string ip) : ActiveStateButton(pos, size, "", "minimap", "", -1, ip){} ~MinimapButton(){} void onClick(); private: diff --git a/playerTradeButton.cpp b/playerTradeButton.cpp index b04e05a..2b6ce8b 100644 --- a/playerTradeButton.cpp +++ b/playerTradeButton.cpp @@ -13,7 +13,7 @@ namespace battleship{ using namespace vb01Gui; using namespace gameBase; - PlayerTradeButton::PlayerTradeButton(Vector3 pos, Vector2 size, string gs, string name, int trigger, string imagePath) : ActiveStateButton(pos, size, gs, name, trigger, imagePath){} + PlayerTradeButton::PlayerTradeButton(Vector3 pos, Vector2 size, string gs, string name, int trigger, string imagePath) : ActiveStateButton(pos, size, gs, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", trigger, imagePath){} void PlayerTradeButton::onClick(){ ActiveStateButton::onClick(); diff --git a/tradingScreenButton.cpp b/tradingScreenButton.cpp index 4a2fb95..09059f8 100644 --- a/tradingScreenButton.cpp +++ b/tradingScreenButton.cpp @@ -18,7 +18,7 @@ namespace battleship{ using namespace gameBase; TradingScreenButton::TradingScreenButton(Vector3 pos, Vector2 size, Listbox *lb, int plId, string gs, string name, int trigger, string imagePath) : - ActiveStateButton(pos, size, gs, name, trigger, imagePath), + ActiveStateButton(pos, size, gs, name, GameManager::getSingleton()->getPath() + "Fonts/batang.ttf", trigger, imagePath), listbox(lb), playerId(plId) {}