about summary refs log tree commit diff
path: root/src/Xanthous
diff options
context:
space:
mode:
authorGriffin Smith <root@gws.fyi>2020-01-20T15·31-0500
committerGriffin Smith <root@gws.fyi>2020-01-20T15·31-0500
commit72edcff32307ffebda07d350634792cc86b268bb (patch)
tree46ea73be1b22c58bc07e8e9d6fc60f1f74c33a17 /src/Xanthous
parentd62aba218d1996b2c0541553c182313cfcc9843d (diff)
Put new levels at the right position in the list
New levels need to go at the *end* of the list of levels, not the
beginning - otherwise we jump to the proper position on the new level
but the current level stays the same (oops).
Diffstat (limited to 'src/Xanthous')
-rw-r--r--src/Xanthous/App.hs3
-rw-r--r--src/Xanthous/Data/Levels.hs2
2 files changed, 2 insertions, 3 deletions
diff --git a/src/Xanthous/App.hs b/src/Xanthous/App.hs
index 2fd821af1cf7..577466328101 100644
--- a/src/Xanthous/App.hs
+++ b/src/Xanthous/App.hs
@@ -300,8 +300,7 @@ handleCommand GoDown = do
     let newLevelNum = Levels.pos levs + 1
     levs' <- nextLevel (levelToEntityMap <$> genLevel newLevelNum) levs
     cEID <- use characterEntityID
-    pCharacter <- use $ entities . at cEID
-    entities . at cEID .= Nothing
+    pCharacter <- entities . at cEID <<.= Nothing
     levels .= levs'
     entities . at cEID .= pCharacter
   else say_ ["cant", "goDown"]
diff --git a/src/Xanthous/Data/Levels.hs b/src/Xanthous/Data/Levels.hs
index 5fc3f9334138..efc0f53acecf 100644
--- a/src/Xanthous/Data/Levels.hs
+++ b/src/Xanthous/Data/Levels.hs
@@ -102,7 +102,7 @@ nextLevel genLevel levs
   = pure $ seeks succ levs
   | otherwise
   = genLevel <&> \level ->
-      seek (pos levs + 1) . partialMkLevels $ level <| allLevels levs
+      seek (pos levs + 1) . partialMkLevels $ allLevels levs |> level
 
 -- | Go to the previous level. Returns Nothing if 'pos' is 0
 prevLevel :: Levels level -> Maybe (Levels level)