From 4f27c8f3a9cd26c2d057067582584ff483f9f4e5 Mon Sep 17 00:00:00 2001 From: mlangkabel Date: Tue, 21 Apr 2026 21:16:10 +0200 Subject: [PATCH] fix: demolish did not return blocks --- src/lib/sim/Simulation.cpp | 5 +++++ src/lib/sim/Simulation.h | 3 +++ src/ui/GameWorldView.cpp | 2 +- 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/lib/sim/Simulation.cpp b/src/lib/sim/Simulation.cpp index 16ac4f2..a4f7805 100644 --- a/src/lib/sim/Simulation.cpp +++ b/src/lib/sim/Simulation.cpp @@ -447,6 +447,11 @@ EntityId Simulation::tryPlaceBuilding(BuildingType type, QPoint anchor, Rotation return m_buildingSystem->place(type, anchor, rotation, m_currentTick); } +void Simulation::demolish(EntityId id) +{ + m_buildingBlocksStock += m_buildingSystem->demolish(id); +} + BuildingSystem& Simulation::buildings() { return *m_buildingSystem; diff --git a/src/lib/sim/Simulation.h b/src/lib/sim/Simulation.h index eff8e01..828b61c 100644 --- a/src/lib/sim/Simulation.h +++ b/src/lib/sim/Simulation.h @@ -55,6 +55,9 @@ public: // Returns the new entity id, or kInvalidEntityId if blocks are insufficient. EntityId tryPlaceBuilding(BuildingType type, QPoint anchor, Rotation rotation); + // Demolishes the building with the given id and refunds building blocks. + void demolish(EntityId id); + BuildingSystem& buildings(); const BuildingSystem& buildings() const; BeltSystem& belts(); diff --git a/src/ui/GameWorldView.cpp b/src/ui/GameWorldView.cpp index 1256a2e..eb9cee0 100644 --- a/src/ui/GameWorldView.cpp +++ b/src/ui/GameWorldView.cpp @@ -958,7 +958,7 @@ void GameWorldView::mousePressEvent(QMouseEvent* event) || b->type == BuildingType::PlayerDefenceStation); if (!protected_) { - m_sim->buildings().demolish(hovered); + m_sim->demolish(hovered); m_demolishHoverId = kInvalidEntityId; } }