refactor: convertir loops del ctor de GameScene a std::ranges::fill

Cppcheck (style: useStlAlgorithm) marcava els raw loops d'assignació
sobre std::array com a candidats clars per std::fill/std::generate.
Amb fill només es construeix la temporal una vegada i es copia a cada
element, en lloc de construir N temporals.

Preexistent, no introduït per cap commit recent, però el hook ho
demanava en tocar el fitxer. Es resolt el root cause en lloc de
suprimir.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-20 17:10:59 +02:00
parent 707fd29b97
commit 88bb6afab1
+5 -10
View File
@@ -28,8 +28,7 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
context_(context), context_(context),
debris_manager_(sdl.getRenderer()), debris_manager_(sdl.getRenderer()),
floating_score_manager_(sdl.getRenderer()), floating_score_manager_(sdl.getRenderer()),
text_(sdl.getRenderer()) text_(sdl.getRenderer()) {
{
// Recuperar configuración de match des del context // Recuperar configuración de match des del context
match_config_ = context_.getMatchConfig(); match_config_ = context_.getMatchConfig();
@@ -49,14 +48,10 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
ships_[1] = Ship(sdl.getRenderer(), "ship2.shp"); // Jugador 2: interceptor con ales ships_[1] = Ship(sdl.getRenderer(), "ship2.shp"); // Jugador 2: interceptor con ales
// Inicialitzar balas con renderer // Inicialitzar balas con renderer
for (auto& bullet : bullets_) { std::ranges::fill(bullets_, Bullet(sdl.getRenderer()));
bullet = Bullet(sdl.getRenderer());
}
// Inicialitzar enemigos con renderer // Inicialitzar enemigos con renderer
for (auto& enemy : enemies_) { std::ranges::fill(enemies_, Enemy(sdl.getRenderer()));
enemy = Enemy(sdl.getRenderer());
}
// El resto del estado del juego (física, stages, naves, vidas, puntuación) // El resto del estado del juego (física, stages, naves, vidas, puntuación)
// se inicializa en init(), que se llama al final del constructor para que // se inicializa en init(), que se llama al final del constructor para que
@@ -138,7 +133,7 @@ void GameScene::init() {
// Jugador inactiu: marcar como a mort permanent // Jugador inactiu: marcar como a mort permanent
ships_[i].markHit(); ships_[i].markHit();
hit_timer_per_player_[i] = 999.0F; // Valor sentinella (permanent inactiu) hit_timer_per_player_[i] = 999.0F; // Valor sentinella (permanent inactiu)
lives_per_player_[i] = 0; // Sin vides lives_per_player_[i] = 0; // Sin vides
std::cout << "[GameScene] Jugador " << (i + 1) << " inactiu\n"; std::cout << "[GameScene] Jugador " << (i + 1) << " inactiu\n";
} }
} }
@@ -235,7 +230,7 @@ void GameScene::stepMidGameJoin() {
auto* input = Input::get(); auto* input = Input::get();
for (uint8_t pid = 0; pid < 2; pid++) { for (uint8_t pid = 0; pid < 2; pid++) {
const bool ACTIU = (pid == 0) ? match_config_.jugador1_actiu const bool ACTIU = (pid == 0) ? match_config_.jugador1_actiu
: match_config_.jugador2_actiu; : match_config_.jugador2_actiu;
const bool MUERTO_SIN_VIDAS = hit_timer_per_player_[pid] == 999.0F; const bool MUERTO_SIN_VIDAS = hit_timer_per_player_[pid] == 999.0F;
if (ACTIU && !MUERTO_SIN_VIDAS) { if (ACTIU && !MUERTO_SIN_VIDAS) {
continue; // jugador ya está jugando continue; // jugador ya está jugando