From bb50f527d6cf3fcc718127d65c2f5d7f31429064 Mon Sep 17 00:00:00 2001 From: Malte Langkabel Date: Tue, 4 Aug 2026 21:34:20 +0200 Subject: [PATCH] drop CombatSystem's unused BuildingSystem parameter MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The parameter was already commented out in the definition — combat resolution never touched it. Removing it also removes the last reference to BuildingSystem from CombatSystem, so the forward declaration goes too. Co-Authored-By: Claude Claude-Session: https://claude.ai/code/session_01YHcUerKAZKWNvSKJxYKbnG --- src/balancing/ArenaSimulation.cpp | 2 +- src/lib/ecs/system/CombatSystem.cpp | 1 - src/lib/ecs/system/CombatSystem.h | 2 -- src/lib/sim/Simulation.cpp | 3 +-- src/test/CombatSystemTest.cpp | 18 +++++++++--------- 5 files changed, 11 insertions(+), 15 deletions(-) diff --git a/src/balancing/ArenaSimulation.cpp b/src/balancing/ArenaSimulation.cpp index 6075ed9..f31232d 100644 --- a/src/balancing/ArenaSimulation.cpp +++ b/src/balancing/ArenaSimulation.cpp @@ -329,7 +329,7 @@ void ArenaSimulation::tick() m_repairSystem->tick(m_currentTick, beamFiredEvents); // Combat resolution (tick step 8). - m_combatSystem->tick(m_currentTick, m_admin, *m_buildingSystem, beamFiredEvents); + m_combatSystem->tick(m_currentTick, m_admin, beamFiredEvents); m_beamFiredEvents.insert(m_beamFiredEvents.end(), beamFiredEvents.begin(), beamFiredEvents.end()); m_combatSystem->applyPendingDamage(m_currentTick, m_admin); diff --git a/src/lib/ecs/system/CombatSystem.cpp b/src/lib/ecs/system/CombatSystem.cpp index 2b97393..deb17e6 100644 --- a/src/lib/ecs/system/CombatSystem.cpp +++ b/src/lib/ecs/system/CombatSystem.cpp @@ -17,7 +17,6 @@ CombatSystem::CombatSystem(const GameConfig& config) void CombatSystem::tick(Tick currentTick, EntityAdmin& admin, - BuildingSystem& /*buildings*/, std::vector& outBeamFiredEvents) { TRACE(); diff --git a/src/lib/ecs/system/CombatSystem.h b/src/lib/ecs/system/CombatSystem.h index ccf00b7..1f71c61 100644 --- a/src/lib/ecs/system/CombatSystem.h +++ b/src/lib/ecs/system/CombatSystem.h @@ -15,7 +15,6 @@ #include "entt/entity/entity.hpp" -class BuildingSystem; class EntityAdmin; class CombatSystem @@ -25,7 +24,6 @@ public: void tick(Tick currentTick, EntityAdmin& admin, - BuildingSystem& buildings, std::vector& outBeamFiredEvents); void applyPendingDamage(Tick currentTick, EntityAdmin& admin); diff --git a/src/lib/sim/Simulation.cpp b/src/lib/sim/Simulation.cpp index adc6102..f5aba55 100644 --- a/src/lib/sim/Simulation.cpp +++ b/src/lib/sim/Simulation.cpp @@ -267,8 +267,7 @@ void Simulation::tick() m_repairSystem->tick(m_currentTick, m_beamFiredEvents); // Step 8: combat resolution - m_combatSystem->tick(m_currentTick, m_admin, - *m_buildingSystem, m_beamFiredEvents); + m_combatSystem->tick(m_currentTick, m_admin, m_beamFiredEvents); // Step 8b: deferred damage whose impact tick has arrived m_combatSystem->applyPendingDamage(m_currentTick, m_admin); diff --git a/src/test/CombatSystemTest.cpp b/src/test/CombatSystemTest.cpp index 10ac73d..268fd8a 100644 --- a/src/test/CombatSystemTest.cpp +++ b/src/test/CombatSystemTest.cpp @@ -112,7 +112,7 @@ TEST_CASE("CombatSystem: ship fires when cooldown=0 and target in range", "[comb const float hpBefore = f.admin.get(player).hp; std::vector events; - f.combat.tick(0, f.admin, f.buildings, events); + f.combat.tick(0, f.admin, events); f.combat.applyPendingDamage(5, f.admin); REQUIRE(f.admin.get(player).hp < hpBefore); @@ -145,13 +145,13 @@ TEST_CASE("CombatSystem: cooldown prevents firing before it expires", "[combat]" }; std::vector events; - f.combat.tick(0, f.admin, f.buildings, events); + f.combat.tick(0, f.admin, events); REQUIRE_FALSE(enemyFiredIn(events)); - f.combat.tick(1, f.admin, f.buildings, events); + f.combat.tick(1, f.admin, events); REQUIRE_FALSE(enemyFiredIn(events)); - f.combat.tick(2, f.admin, f.buildings, events); + f.combat.tick(2, f.admin, events); REQUIRE(enemyFiredIn(events)); } @@ -166,7 +166,7 @@ TEST_CASE("CombatSystem: no fire when target is out of range", "[combat]") f.wireEnemyTarget(enemy, player); std::vector events; - f.combat.tick(0, f.admin, f.buildings, events); + f.combat.tick(0, f.admin, events); REQUIRE(events.empty()); } @@ -309,7 +309,7 @@ TEST_CASE("CombatSystem: damage not applied before impact tick", "[combat]") const float hpBefore = f.admin.get(player).hp; std::vector events; - f.combat.tick(0, f.admin, f.buildings, events); + f.combat.tick(0, f.admin, events); for (Tick t = 1; t < 5; ++t) { @@ -331,7 +331,7 @@ TEST_CASE("CombatSystem: damage applied exactly at impact tick", "[combat]") const float hpBefore = f.admin.get(player).hp; std::vector events; - f.combat.tick(0, f.admin, f.buildings, events); + f.combat.tick(0, f.admin, events); f.combat.applyPendingDamage(5, f.admin); REQUIRE(f.admin.get(player).hp < hpBefore); @@ -348,7 +348,7 @@ TEST_CASE("CombatSystem: damage silently dropped if target already dead", "[comb f.wireEnemyTarget(enemy, player); std::vector events; - f.combat.tick(0, f.admin, f.buildings, events); + f.combat.tick(0, f.admin, events); f.ships.despawn(player); @@ -371,7 +371,7 @@ TEST_CASE("CombatSystem: damage still applied if shooter already dead", "[combat const float hpBefore = f.admin.get(player).hp; std::vector events; - f.combat.tick(0, f.admin, f.buildings, events); + f.combat.tick(0, f.admin, events); f.ships.despawn(enemy);