From e3b0958d105ff6d7ce20f921ebcdce55bab7e26b Mon Sep 17 00:00:00 2001 From: Sergio Valor Date: Wed, 20 May 2026 17:11:47 +0200 Subject: [PATCH] =?UTF-8?q?refactor:=20eliminar=20doble=20inicialitzaci?= =?UTF-8?q?=C3=B3=20d'enemies=5F=20a=20GameScene?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit El ctor de GameScene ja construïa cada Enemy amb el renderer, però init() (cridat des del propi ctor) tornava a assignar enemies_[i] = Enemy(sdl_.getRenderer()) sobre la mateixa instància. Treball perdut, a més d'incoherent amb ships_ i bullets_, que no es reassignen a init() sinó que es limiten a init()/addBody. Eliminem la reassignació i deixem només setShipPosition i addBody, alineat amb la resta d'entitats. Hallazgo #34 de CODE_REVIEW.md. Co-Authored-By: Claude Opus 4.7 (1M context) --- source/game/scenes/game_scene.cpp | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/source/game/scenes/game_scene.cpp b/source/game/scenes/game_scene.cpp index d38f4b8..0ba0bf9 100644 --- a/source/game/scenes/game_scene.cpp +++ b/source/game/scenes/game_scene.cpp @@ -138,11 +138,12 @@ void GameScene::init() { } } - // [MODIFIED] Initialize enemies as inactive (stage system will spawn them). + // Initialize enemies as inactive (stage system will spawn them). // Registramos el body al world incluso inactivo: con radius=0 no colisiona // ni se mueve, y al init() del stage system se activa sin re-registrar. + // La construcció dels Enemy ja s'ha fet al ctor de GameScene; ací només + // configurem la referència a la nau i registrem el body. for (auto& enemy : enemies_) { - enemy = Enemy(sdl_.getRenderer()); enemy.setShipPosition(&ships_[0].getCenter()); // Set ship reference (P1 for now) physics_world_.addBody(&enemy.getBody()); // DON'T call enemy.init() here - stage system handles spawning