Start pushing updateUseInput into other update functions

This commit is contained in:
2023-03-29 14:27:37 +01:00
parent 5b5ed519dd
commit 69a76dbf93
3 changed files with 13 additions and 24 deletions
+11 -11
View File
@@ -8,6 +8,8 @@ module Dodge.Update (updateUniverse) where
--import Dodge.InputFocus
import Dodge.Update.Input.InGame
import Dodge.Update.Input.ScreenLayer
import Dodge.Debug
import Dodge.SmoothScroll
import Color
@@ -54,7 +56,6 @@ import Dodge.TmTm
import Dodge.TractorBeam.Update
import Dodge.Update.Camera
import Dodge.Update.Cloud
import Dodge.Update.Input
import Dodge.Update.Scroll
import Dodge.Update.WallDamage
import Dodge.WallCreatureCollisions
@@ -71,14 +72,8 @@ import StrictHelp
updateUniverse :: Universe -> Universe
updateUniverse u =
updateUniverseLast
. advanceScrollAmount
. updateWorldEventFlags
. maybeOpenTerminal
. over (uvWorld . input . textInput) (const mempty)
. updateUniverseMid
. debugEvents
. updateUseInput -- this should be pushed inside when the universe is paused etc
-- OR the keys should be tested "in game", so to speak
. over uvWorld (updateCamera cfig)
. updateUniverseFirst
$ u
@@ -116,6 +111,10 @@ gotoTerminal w = case _uvScreenLayers w of
updateUniverseLast :: Universe -> Universe
updateUniverseLast u =
u
& over (uvWorld . input . textInput) (const mempty)
& maybeOpenTerminal
& advanceScrollAmount
& updateWorldEventFlags
& uvWorld . input . pressedKeys . each %~ f
& uvWorld . input . mouseMoving .~ False
& uvWorld . input . mouseButtons . each +~ 1
@@ -129,8 +128,9 @@ updateUniverseLast u =
updateUniverseMid :: Universe -> Universe
updateUniverseMid u = case _uvScreenLayers u of
(OptionScreen{_scOptionFlag = LoadingScreen} : _) -> u
(OptionScreen{_scOptionFlag = GameOverOptions} : _) ->
u & uvWorld
(sl@OptionScreen{_scOptionFlag = GameOverOptions} : _) ->
u & updateUseInputOnScreen sl
& uvWorld
%~ (
--updateParticles
(cWorld . lWorld . radarBlips .~ [])
@@ -138,8 +138,8 @@ updateUniverseMid u = case _uvScreenLayers u of
. updateLightSources
. updateClouds
)
(_ : _) -> u
[] -> timeFlowUpdate u
(sl : _) -> u & updateUseInputOnScreen sl
[] -> timeFlowUpdate $ updateUseInputInGame u
timeFlowUpdate :: Universe -> Universe
timeFlowUpdate u = case u ^. uvWorld . timeFlow of