refactor: eliminar doble inicialització d'enemies_ a GameScene

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) <noreply@anthropic.com>
This commit is contained in:
2026-05-20 17:11:47 +02:00
parent 88bb6afab1
commit e3b0958d10
+3 -2
View File
@@ -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