// continue_system.hpp - Pantalla de continue y máquina de estados de game over // © 2026 JailDesigner // // Gestiona la transición CONTINUE → GAME_OVER, el countdown, los inputs de // los jugadores para continuar la partida y la revivificación. Vive como // estado en GameScene; este módulo solo opera sobre referencias a ese estado. #pragma once #include #include #include #include "core/system/game_config.hpp" #include "core/types.hpp" #include "game/entities/ship.hpp" // Forward declaration: GameOverState es un enum class definido en game_scene.hpp. // Para no traer toda la cabecera, lo declaramos aquí. enum class GameOverState : uint8_t; namespace Systems::ContinueScreen { // Todo lo que el ContinueSystem lee/modifica. struct Context { GameOverState& state; int& counter; float& tick_timer; int& continues_used; float& game_over_timer; std::array& lives_per_player; std::array& score_per_player; std::array& hit_timer_per_player; std::array& ships; GameConfig::MatchConfig& match_config; // Helper inyectado por GameScene (obtenir_punt_spawn). std::function get_spawn_point; }; // Avanza el countdown automático (tick interno). Si el contador cae bajo 0, // transiciona a GAME_OVER y arranca el timer final. void update(Context& ctx, float delta_time); // Procesa input durante la pantalla CONTINUE: // START → revive al jugador (1 o 2, según quién pulsó). // THRUST/SHOOT → acelera el countdown. void processInput(Context& ctx); } // namespace Systems::ContinueScreen