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:
@@ -28,8 +28,7 @@ GameScene::GameScene(SDLManager& sdl, SceneContext& context)
|
||||
context_(context),
|
||||
debris_manager_(sdl.getRenderer()),
|
||||
floating_score_manager_(sdl.getRenderer()),
|
||||
text_(sdl.getRenderer())
|
||||
{
|
||||
text_(sdl.getRenderer()) {
|
||||
// Recuperar configuración de match des del context
|
||||
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
|
||||
|
||||
// Inicialitzar balas con renderer
|
||||
for (auto& bullet : bullets_) {
|
||||
bullet = Bullet(sdl.getRenderer());
|
||||
}
|
||||
std::ranges::fill(bullets_, Bullet(sdl.getRenderer()));
|
||||
|
||||
// Inicialitzar enemigos con renderer
|
||||
for (auto& enemy : enemies_) {
|
||||
enemy = Enemy(sdl.getRenderer());
|
||||
}
|
||||
std::ranges::fill(enemies_, Enemy(sdl.getRenderer()));
|
||||
|
||||
// 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
|
||||
@@ -138,7 +133,7 @@ void GameScene::init() {
|
||||
// Jugador inactiu: marcar como a mort permanent
|
||||
ships_[i].markHit();
|
||||
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";
|
||||
}
|
||||
}
|
||||
@@ -235,7 +230,7 @@ void GameScene::stepMidGameJoin() {
|
||||
auto* input = Input::get();
|
||||
for (uint8_t pid = 0; pid < 2; pid++) {
|
||||
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;
|
||||
if (ACTIU && !MUERTO_SIN_VIDAS) {
|
||||
continue; // jugador ya está jugando
|
||||
|
||||
Reference in New Issue
Block a user