From deac9d0fcbfd7211781144ae1bf71916fd2c4a00 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Tue, 16 Jun 2026 20:12:10 +0300 Subject: [PATCH 1/3] bugfix for crashing when toggling pause --- map.cpp | 5 +++-- researchButton.cpp | 4 +++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/map.cpp b/map.cpp index 36447c0..4ba9728 100755 --- a/map.cpp +++ b/map.cpp @@ -212,9 +212,10 @@ namespace battleship{ } void Map::Minimap::update(){ - if(!GameManager::getSingleton()->getStateManager()->getAppStateByType(AppStateType::ACTIVE_STATE)) return; - Button *mb = ConcreteGuiManager::getSingleton()->getButton("minimap"); + + if(!(GameManager::getSingleton()->getStateManager()->getAppStateByType(AppStateType::ACTIVE_STATE) && mb)) return; + updateCamFrame(mb); } diff --git a/researchButton.cpp b/researchButton.cpp index 21d1944..e461def 100644 --- a/researchButton.cpp +++ b/researchButton.cpp @@ -49,8 +49,10 @@ namespace battleship{ void ResearchButton::update(){ Button::update(); - ActiveGameState *activeState = (ActiveGameState*)(GameManager::getSingleton()->getStateManager()->getAppStateByType((int)AppStateType::ACTIVE_STATE)); + + if(!activeState) return; + vector technologies = activeState->getPlayer()->getTechnologies(); bool hasTech = (find(technologies.begin(), technologies.end(), techId) != technologies.end()); From 72fa0a43258f30b4e0b48110bbcad0a89afa8db0 Mon Sep 17 00:00:00 2001 From: devZoGok Date: Tue, 16 Jun 2026 20:27:14 +0300 Subject: [PATCH 2/3] false'ing ActiveGameState flags upon dettachment --- activeGameState.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/activeGameState.cpp b/activeGameState.cpp index c3f85b5..55c6b9d 100755 --- a/activeGameState.cpp +++ b/activeGameState.cpp @@ -140,6 +140,19 @@ namespace battleship{ void ActiveGameState::onDettached() { AbstractAppState::onDettached(); + + isSelectionBox = false; + shiftPressed = false; + controlPressed = false; + selectMouseClicked = false; + orderMouseClicked = false; + buildableStructSelected = false; + selectingPatrolPoints = false; + selectingDestOrient = false; + forceCursorState = false; + orderPossible = false; + tradingScreen = false; + offerScreen = false; } void ActiveGameState::updateCursor(){ From b384c424656889334e9ccc655ef2832e138490ac Mon Sep 17 00:00:00 2001 From: devZoGok Date: Tue, 16 Jun 2026 20:30:24 +0300 Subject: [PATCH 3/3] removed unneeded code increased camera far plane --- activeGameState.cpp | 12 +----------- inGameAppState.cpp | 1 + 2 files changed, 2 insertions(+), 11 deletions(-) diff --git a/activeGameState.cpp b/activeGameState.cpp index 55c6b9d..db11820 100755 --- a/activeGameState.cpp +++ b/activeGameState.cpp @@ -141,18 +141,8 @@ namespace battleship{ void ActiveGameState::onDettached() { AbstractAppState::onDettached(); - isSelectionBox = false; - shiftPressed = false; - controlPressed = false; - selectMouseClicked = false; - orderMouseClicked = false; - buildableStructSelected = false; - selectingPatrolPoints = false; - selectingDestOrient = false; - forceCursorState = false; - orderPossible = false; - tradingScreen = false; offerScreen = false; + tradingScreen = false; } void ActiveGameState::updateCursor(){ diff --git a/inGameAppState.cpp b/inGameAppState.cpp index d627284..3212658 100755 --- a/inGameAppState.cpp +++ b/inGameAppState.cpp @@ -67,6 +67,7 @@ namespace battleship{ Camera *cam = Root::getSingleton()->getCamera(); cam->setPosition(Map::getSingleton()->getSpawnPoint(playerId) + Vector3(1, 1, 1) * configData::CAMERA_DISTANCE); cam->lookAt(Vector3(0, -1, -1).norm(), Vector3(0, 1, -1).norm()); + cam->setFarPlane(1000); GameManager *gm = GameManager::getSingleton(); StateManager *stateManager = gm->getStateManager();