@startuml GameLogicState state "GameLogicState" as GameLogicState { state "Paused" as GameLogicState_Paused { state "OptionsMenu" as GameLogicState_OptionsMenu state "Saving" as GameLogicState_Saving } state "Playing" as GameLogicState_Playing state "Quit" as GameLogicState_Quit } GameLogicState_OptionsMenu --> GameLogicState_OptionsMenu : OpenOptionMenu GameLogicState_OptionsMenu --> GameLogicState_Paused : PauseButtonPressed GameLogicState_Paused --> GameLogicState_OptionsMenu : OpenOptionMenu GameLogicState_Paused --> GameLogicState_Playing : PauseButtonPressed GameLogicState_Paused --> GameLogicState_Quit : GotoMainMenu GameLogicState_Paused --> GameLogicState_Saving : SaveRequested GameLogicState_Playing --> GameLogicState_Paused : PauseButtonPressed GameLogicState_Saving --> GameLogicState_Paused : SaveCompleted GameLogicState_Saving --> GameLogicState_Saving : GotoMainMenu GameLogicState_Saving --> GameLogicState_Saving : OpenOptionMenu GameLogicState_Saving --> GameLogicState_Saving : PauseButtonPressed GameLogicState_OptionsMenu : OnEnter → ShowOptionMenu GameLogicState_OptionsMenu : OnPauseButtonPressed → ShowPauseMenu GameLogicState_Paused : OnEnter → SetPauseMode, ShowPauseMenu GameLogicState_Paused : OnExit → ExitPauseMenu, SetPauseMode GameLogicState_Playing : OnEnter → HideMenus GameLogicState_Saving : OnEnter → ShowPauseSaveOverlay, StartSaving @enduml