Fix worldEvent reset space leak
This commit is contained in:
+7
-4
@@ -33,7 +33,7 @@ import Data.Monoid
|
||||
--import System.Random
|
||||
|
||||
update :: World -> World
|
||||
update = update' . pushSideEffects
|
||||
update = functionalUpdate . pushSideEffects
|
||||
|
||||
pushSideEffects :: World -> World
|
||||
pushSideEffects w = w
|
||||
@@ -42,8 +42,8 @@ pushSideEffects w = w
|
||||
{- |
|
||||
The update step.
|
||||
For most menus the only way to change the world is using event handling. -}
|
||||
update' :: World -> World
|
||||
update' w = case _menuLayers w of
|
||||
functionalUpdate :: World -> World
|
||||
functionalUpdate w = case _menuLayers w of
|
||||
(TerminalMessage t xs:mls) -> w & menuLayers .~ (TerminalMessage (max (t-1) 0) xs:mls)
|
||||
(WaitMessage s i: _)
|
||||
| i < 1 -> w & dbArg _worldEvents
|
||||
@@ -64,7 +64,7 @@ update' w = case _menuLayers w of
|
||||
. simpleCrSprings
|
||||
. zoneCreatures
|
||||
. updateWalls
|
||||
. set worldEvents id
|
||||
. resetWorldEvents
|
||||
. dbArg _worldEvents
|
||||
. updateParticles
|
||||
. updateProjectiles
|
||||
@@ -88,6 +88,9 @@ update' w = case _menuLayers w of
|
||||
where
|
||||
(x,y) = cloudZoneOfPoint $ _clPos cl
|
||||
|
||||
resetWorldEvents :: World -> World
|
||||
resetWorldEvents w = w {_worldEvents = id}
|
||||
|
||||
updateCreatureGroups :: World -> World
|
||||
updateCreatureGroups w = w & creatureGroups %~
|
||||
IM.mapMaybe (\cgp -> _crGroupUpdate cgp w cgp)
|
||||
|
||||
Reference in New Issue
Block a user