|
SSBM Decomp
|
Functions | |
| void | gm_801A4014 (GameMode *mode) |
| Runs one game-mode scene transition and invokes the run loop for a given scene. | |
| void * | gm_GetGameSceneLoadDataCallback (GameScene *) |
| void * | gm_GetGameSceneLeaveDataCallback (GameScene *) |
| void | gm_SetSceneIndex (u8 arg0) |
| Sets the scene index for both the current and previous scene. | |
| void | gm_SetPendingSceneIndex (u8 pending_scene) |
| Sets the scene index for the pending scene. | |
| u8 | gm_GetPreviousSceneIndex (void) |
| u8 | gm_GetCurrentSceneIndex (void) |
| void | gm_SetNewGameModePending (void) |
Sets gm_80479D30's GameState::pending value to true (1). | |
| void | gm_SetPendingGameMode (s8 pending_mode) |
Sets GameRouting::pending_mode on gm_80479D30 to pending_mode for use after the current mode exits. | |
| void | gm_ChangeGameModeAfterCurrentScene (int pending_mode) |
Sets GameRouting::pending_mode and GameState::pending on gm_80479D30 to pending_mode and true (1) for use after the current scene exits,. | |
| u8 | gm_GetCurrentGameMode (void) |
| u8 | gm_GetPreviousGameMode (void) |
| u8 | gm_RunGameMode (GameModeKind mode_kind) |
| Loads a game mode, runs it to completion, then unloads it. | |
| void gm_801A4014 | ( | GameMode * | mode | ) |
Runs one game-mode scene transition and invokes the run loop for a given scene.
Finds the current GameScene in mode, runs its Prep handler, loads the scene via gm_FindGameSceneHandler / gm_801A4D34, then advances GameRouting::curr_scene_idx when the scene loop exits.
| void * gm_GetGameSceneLoadDataCallback | ( | GameScene * | scene | ) |
| void * gm_GetGameSceneLeaveDataCallback | ( | GameScene * | scene | ) |
| void gm_SetSceneIndex | ( | u8 | arg0 | ) |
Sets the scene index for both the current and previous scene.
Sets GameRouting::curr_scene_idx and GameRouting::prev_scene_idx on gm_80479D30.
See docs related to GameScene.
| arg0 | The index of the scene to use. Not to be confused with the scene class_id, which is defined as a GameSceneKind. |
| void gm_SetPendingSceneIndex | ( | u8 | pending_scene | ) |
Sets the scene index for the pending scene.
Sets GameRouting::pending_scene_idx on gm_80479D30 to arg0 + 1
See docs related to GameScene.
| arg0 | The scene index of the scene preceding the desired pending scene. The method adds +1 to the input. Not to be confused with the scene class_id, which is defined as a GameSceneKind. |
| pending_scene | Actually sets the pending scene to the scene following the input |
| u8 gm_GetPreviousSceneIndex | ( | void | ) |
| u8 gm_GetCurrentSceneIndex | ( | void | ) |
| void gm_SetNewGameModePending | ( | void | ) |
Sets gm_80479D30's GameState::pending value to true (1).
Signaling that the game mode should change after the current scene exits.
See also: gm_ChangeGameModeAfterCurrentScene, gm_SetPendingGameMode, gm_RunGameMode
| void gm_SetPendingGameMode | ( | s8 | pending_mode | ) |
Sets GameRouting::pending_mode on gm_80479D30 to pending_mode for use after the current mode exits.
Sets the gm_80479D30 GameRouting::pending_mode to the provided value. The pending_mode is read when gm_RunGameMode exits, ultimately passing the pending_mode on to the next invocation of gm_RunGameMode.
Note that subsequent calls to gm_SetPendingGameMode or gm_ChangeGameModeAfterCurrentScene will override the last one. When a game mode exits, the last call to gm_SetPendingGameMode or gm_ChangeGameModeAfterCurrentScene wins.
See also: gm_ChangeGameModeAfterCurrentScene, gm_SetNewGameModePending, gm_RunGameMode
| pending_mode | The next game mode to use |
| void gm_ChangeGameModeAfterCurrentScene | ( | int | pending_mode | ) |
Sets GameRouting::pending_mode and GameState::pending on gm_80479D30 to pending_mode and true (1) for use after the current scene exits,.
Sets the gm_80479D30 GameRouting::pending_mode to the provided value, setting GameState::pending to true (1) in the process. The pending_mode is read when gm_RunGameMode exits, ultimately passing the pending_mode on to the next invocation of gm_RunGameMode.
Effectively equivelant to running gm_SetPendingGameMode and gm_SetNewGameModePending
Note that subsequent calls to gm_SetPendingGameMode or gm_ChangeGameModeAfterCurrentScene will override the last one. When a game mode exits, the last call to gm_SetPendingGameMode or gm_ChangeGameModeAfterCurrentScene wins.
See also: gm_SetPendingGameMode, gm_SetNewGameModePending, gm_RunGameMode
| pending_mode | The next game mode to use |
| u8 gm_GetCurrentGameMode | ( | void | ) |
| u8 gm_GetPreviousGameMode | ( | void | ) |
| u8 gm_RunGameMode | ( | GameModeKind | mode_kind | ) |
Loads a game mode, runs it to completion, then unloads it.
Loads the data associated with the given GameModeKind (asset preload and GameMode::Load), then executes its scene graph via gm_801A4014 until GameState::pending is set. When the loop finishes, unloads the mode (GameMode::Unload) unless the game is resetting, then returns GameRouting::pending_mode, the next pending GameModeKind.
If GameState::game_mode_override is defined and returns a mode < GM_COUNT, a single scene from that game mode will be executed after the current scene exits, skipping typical game mode load/preload routines for the resulting gamemode. GameState::pending takes precedence over the override behavior.
See also: gm_ChangeGameModeAfterCurrentScene, gm_SetPendingGameMode, gm_SetNewGameModePending