diff options
Diffstat (limited to 'src/LivingVillage.Desktop/Game.fs')
| -rw-r--r-- | src/LivingVillage.Desktop/Game.fs | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/src/LivingVillage.Desktop/Game.fs b/src/LivingVillage.Desktop/Game.fs index 785a6aa..9e229aa 100644 --- a/src/LivingVillage.Desktop/Game.fs +++ b/src/LivingVillage.Desktop/Game.fs @@ -145,6 +145,7 @@ type LivingVillageGame() as this = let mutable hudClock = 0L let mutable hudStatus = "" let mutable hudStatusAt = 0L + let mutable pauseHelpControl: SimulationControl option = None do graphics.PreferredBackBufferWidth <- 1280 @@ -280,9 +281,12 @@ type LivingVillageGame() as this = let lPressed = pressed Keys.L let escapePressed = pressed Keys.Escape if pressed Keys.P then - simulationControl <- SimulationControl.togglePause simulationControl - menu <- MenuState.setSettings simulationControl menu - printfn $"simulation={M6Presentation.clockLabel simulationControl}" + if m5View.Panel = WorldPanel then + let helpState, pausedControl = MenuState.enterPauseHelp simulationControl menu + menu <- helpState + pauseHelpControl <- Some simulationControl + simulationControl <- pausedControl + printfn $"help=pause-open simulation={M6Presentation.clockLabel simulationControl}" if pressed Keys.F1 then simulationControl <- SimulationControl.setSpeed OneX simulationControl legacyStepsPerFrame <- None @@ -443,6 +447,13 @@ type LivingVillageGame() as this = this.UpdatePlaying gameTime kb pressed pressedAny else this.UpdateMenu pressed + match pauseHelpControl with + | Some original when menu.Page = Playing -> + let _, restoredControl = MenuState.exitPauseHelp original menu + simulationControl <- restoredControl + pauseHelpControl <- None + printfn $"help=pause-close simulation={M6Presentation.clockLabel simulationControl}" + | _ -> () hudClock <- hudClock + 1L if m5View.Status <> hudStatus then hudStatus <- m5View.Status |
