feat(level-manager): salts debug entre sales (només Debug)
Tecles [ i ] al keys.yaml (prev_room / next_room) que mouen LevelManager::setIndex en ±1 i recarreguen la sala via loadRoom + enterRoomIntro. Ignorades si la pausa està activa o l'editor obert (qualsevol dels dos invalida l'estat editat). Refactor de la FSM al mateix pas: l'avanç de sala (LevelManager + loadRoom) ja no viu dins setState — el dispara updateRoomTransition quan detecta el final de l'OUTRO via advanceToNextRoom. setState torna a ser una transició pura, condició necessària perquè el salt debug puga entrar a INTRO sense disparar un advance addicional. Nou helper enterRoomIntro() reusable per la sortida de l'OUTRO i pels salts; idempotent quan ja s'estava a INTRO.
This commit is contained in:
1 parent
d52cc1c509
commit
b147590a39
3 files changed
+78
-15
No files matched your search
@@ -217,12 +217,19 @@ class GameScene : public Scene {
|
||||
void loadRoom(const std::string& yaml_path);
|
||||
|
||||
// Demana al LevelManager el següent nivell i el carrega via
|
||||
// `loadRoom`. Si ja era a l'última entrada, fa loop a la primera
|
||||
// (política temporal mentre no hi haja pantalla de fi de joc).
|
||||
// Cridat des de `setState(ROOM_INTRO)` quan la transició anterior
|
||||
// era OUTRO — és la conseqüència de creuar la porta.
|
||||
// `loadRoom`, deixant la FSM al començament d'un nou cicle d'INTRO.
|
||||
// Si ja era a l'última entrada, fa loop a la primera (política
|
||||
// temporal mentre no hi haja pantalla de fi de joc). Cridat des de
|
||||
// `updateRoomTransition` quan l'OUTRO arriba a la fase final.
|
||||
void advanceToNextRoom();
|
||||
|
||||
// Inicia (o reinicia) el cicle d'entrada de sala: posa l'estat a
|
||||
// ROOM_INTRO i reseteja `transition_`, `room_intro_elapsed_ms_` i el
|
||||
// flag d'spawn aeri. Idempotent quan ja s'estava a INTRO (els
|
||||
// timers tornen a començar des de zero — útil per als salts debug
|
||||
// que recarreguen la sala estant ja en INTRO).
|
||||
void enterRoomIntro();
|
||||
|
||||
#ifdef _DEBUG
|
||||
// Editor modal del tilemap. Mútuament excloent amb la pausa: si la
|
||||
// pausa no està IDLE la tecla de toggle de l'editor s'ignora, i
|
||||
|
||||
Reference in new issue
Block a user