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),
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user