From a2c32907f0c946a540d7956200eb7d1933d826ac Mon Sep 17 00:00:00 2001 From: justin Date: Mon, 25 Aug 2025 12:59:12 +0100 Subject: [PATCH] Fix bugs in drag pickup when releasing mouse outside of inventory list --- src/Dodge/Data/LWorld.hs | 1 - src/Dodge/FloorItem.hs | 16 +- src/Dodge/Inventory/Add.hs | 114 ++------ src/Dodge/Inventory/CheckSlots.hs | 1 + src/Dodge/Inventory/Location.hs | 34 ++- src/Dodge/Item/Grammar.hs | 4 - src/Dodge/TestString.hs | 17 +- src/Dodge/Update/Input/InGame.hs | 21 +- tags | 469 +++++++++++++++--------------- 9 files changed, 312 insertions(+), 365 deletions(-) diff --git a/src/Dodge/Data/LWorld.hs b/src/Dodge/Data/LWorld.hs index b02f58f95..e53f535d1 100644 --- a/src/Dodge/Data/LWorld.hs +++ b/src/Dodge/Data/LWorld.hs @@ -99,7 +99,6 @@ import Picture.Data data LWorld = LWorld { _creatures :: IM.IntMap Creature , _creatureGroups :: IM.IntMap CrGroupParams --- , _itemLocations :: IM.IntMap ItemLocation , _items :: IM.IntMap Item , _clouds :: [Cloud] , _dusts :: [Dust] diff --git a/src/Dodge/FloorItem.hs b/src/Dodge/FloorItem.hs index f26c5e817..9d89e253e 100644 --- a/src/Dodge/FloorItem.hs +++ b/src/Dodge/FloorItem.hs @@ -7,23 +7,19 @@ import Dodge.Data.World import Dodge.Item.InvSize import Geometry import LensHelp ---import qualified IntMapHelp as IM import NewInt import System.Random -- | Copy an item to the floor copyItemToFloor :: Point2 -> Item -> World -> World -copyItemToFloor pos it w = +copyItemToFloor p it w = w' - & cWorld . lWorld . floorItems . at (_unNInt $ _itID it) ?~ theflit - & cWorld . lWorld . items . at (_unNInt $ _itID it) ?~ (it & itLocation .~ OnFloor) - & hud . closeItems .:~ _itID it + & cWorld . lWorld . floorItems . at (it ^. itID . unNInt) ?~ FlIt q r + & cWorld . lWorld . items . at (it ^. itID . unNInt) ?~ (it & itLocation .~ OnFloor) + & hud . closeItems .:~ _itID it -- puts item at top of close items where - -- & hud . hudElement . diSections . ix 3 . ssOffset .~ 0 - -- ensures dropped item is at the top of the close item selection list - (p', w') = findWallFreeDropPoint (_dimRad $ itDim it) pos w - rot = fst . randomR (- pi, pi) $ _randGen w - theflit = FlIt{_flItPos = p', _flItRot = rot} + (q, w') = findWallFreeDropPoint (_dimRad $ itDim it) p w + r = fst . randomR (- pi, pi) $ _randGen w cardinalVectors :: [Point2] cardinalVectors = [ V2 1 0 , V2 0 1 , V2 (-1) 0 , V2 0 (-1) ] diff --git a/src/Dodge/Inventory/Add.hs b/src/Dodge/Inventory/Add.hs index 34051db3b..23e186f48 100644 --- a/src/Dodge/Inventory/Add.hs +++ b/src/Dodge/Inventory/Add.hs @@ -1,11 +1,12 @@ {-# LANGUAGE TupleSections #-} + module Dodge.Inventory.Add ( - tryPutItemInInv, createItemYou, pickUpItem, pickUpItemAt, ) where +import qualified Data.IntSet as IS import Control.Lens import Control.Monad import Data.Maybe @@ -19,34 +20,34 @@ import qualified IntMapHelp as IM import NewInt -- should check that the item is not already in your inventory --- this assumes that this is a floor item -tryPutItemInInv :: Int -> Int -> World -> Maybe (NewInt InvInt,World) +-- this assumes that this item is currently on the floor +tryPutItemInInv :: Int -> Int -> World -> Maybe (NewInt InvInt, World) tryPutItemInInv cid itid w = do itm <- w ^? cWorld . lWorld . items . ix itid invid <- checkInvSlotsYou itm w - let itloc = InInv - { _ilCrID = cid - , _ilInvID = invid - , _ilIsRoot = False - , _ilIsSelected = False - , _ilIsAttached = False - , _ilEquipSite = Nothing - } - newitm = itm & itLocation .~ itloc - return $ (invid,) $ w - & cWorld . lWorld %~ crUpdateItemLocations cid --- not sure about the order of these... - & cWorld . lWorld . creatures . ix cid . crInv . at invid ?~ itid - & cWorld . lWorld . items . at itid ?~ newitm --- & cWorld . lWorld . itemLocations . at itid ?~ itloc - & cWorld . lWorld . floorItems . at itid .~ Nothing - & updateselectionextra + let itloc = InInv + { _ilCrID = cid + , _ilInvID = invid + , _ilIsRoot = False + , _ilIsSelected = False + , _ilIsAttached = False + , _ilEquipSite = Nothing + } + return $ (invid,) $ + w + & cWorld . lWorld %~ crUpdateItemLocations cid + -- not sure about the order of these... + & cWorld . lWorld . creatures . ix cid . crInv . at invid ?~ itid + & cWorld . lWorld . items . ix itid . itLocation .~ itloc + & cWorld . lWorld . floorItems . at itid .~ Nothing + & updateselectionextra invid where - updateselectionextra - | cid == 0 = - hud . hudElement . diSelection . _Just . _3 %~ const mempty + updateselectionextra i + | cid == 0 = hud . hudElement . diSelection . _Just . _3 %~ IS.map (f i) | otherwise = id - + f j i | i >= _unNInt j = i + 1 + | otherwise = i + -- not sure why we have the cid here, this will probably only work for cid == 0 tryPutItemInInvAt :: Int -> Int -> Int -> World -> Maybe World tryPutItemInInvAt i cid itid w = do @@ -56,77 +57,20 @@ tryPutItemInInvAt i cid itid w = do where f j = swapInvItems (\_ _ -> Just (j -1)) j ----- | Pick up a specific item. ---tryPutItemInInv :: Int -> Item -> Int -> World -> Maybe (Int, World) ---tryPutItemInInv cid flit itid w = do --- i <- checkInvSlotsYou it w --- Just --- ( i --- , w --- & cWorld . lWorld . floorItems %~ IM.delete itid --- & cWorld . lWorld . creatures . ix cid . crInv . at i ?~ it --- & updateItLocation i --- -- I forget whether using "at" rather than "IM.insert" here caused problems --- -- & cWorld . lWorld . creatures . ix cid . crInv . at i ?~ it --- -- note item locations are updated twice: first for the ilInvID, --- -- second for the root/selected item bools --- & cWorld . lWorld %~ crUpdateItemLocations cid --- & setInvPosFromSS --- & updateselectionextra --- & cWorld . lWorld %~ crUpdateItemLocations cid --- ) --- where --- updateselectionextra --- | cid == 0 = --- hud . hudElement . diSelection . _Just . _3 %~ const mempty --- | otherwise = id --- it = _flIt flit --- -- not sure if the following is necessary --- updateItLocation invid w' = --- w' & cWorld . lWorld . itemLocations . ix (_unNInt $ _itID it) --- .~ InInv --- { _ilCrID = cid --- , _ilInvID = invid --- , _ilIsRoot = False --- , _ilIsSelected = False --- , _ilIsAttached = False --- , _ilEquipSite = Nothing --- } - ----- should select the item on the floor if no inventory space? ---createAndSelectItem :: Item -> World -> World ---createAndSelectItem itm w = case createPutItem itm w of --- (Just i, w') -> --- w' --- & hud . hudElement . diSections . sssExtra . sssSelPos ?~ (0, i) --- & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject --- .~ InInventory (SelectedItem i --- $ fromMaybe (error "no root item1!") $ tryGetRootItemInvID i (you w)) --- (Nothing, w') -> w' - ---createPutItem :: Item -> World -> (Maybe Int, World) ---createPutItem it w = fromMaybe (Nothing,w) $ do --- (i,w') <- uncurry (tryPutItemIDInInv 0) $ --- copyItemToFloorID (_crPos $ you w) (applyModules it) w --- return (Just i, w') - createItemYou :: Item -> World -> World -createItemYou itm w = fromMaybe w' $ fmap snd $ tryPutItemInInv 0 itid w' +createItemYou itm w = maybe w' snd $ tryPutItemInInv 0 itid w' where itid = IM.newKey $ w ^. cWorld . lWorld . items pos = w ^?! cWorld . lWorld . creatures . ix 0 . crPos w' = copyItemToFloor pos (itm & itID .~ NInt itid) w --- | Pick up a specific item. +-- the duplication is annoying... pickUpItem :: Int -> Int -> World -> World pickUpItem cid itid w = fromMaybe w $ do - (_,w') <- tryPutItemInInv cid itid w p <- w ^? cWorld . lWorld . floorItems . ix itid . flItPos - return $ soundStart (CrSound cid) p pickUpS Nothing w' + soundStart (CrSound cid) p pickUpS Nothing . snd <$> tryPutItemInInv cid itid w --- | Pick up a specific item. pickUpItemAt :: Int -> Int -> Int -> World -> World pickUpItemAt invid cid itid w = fromMaybe w $ do - w' <- tryPutItemInInvAt invid cid itid w p <- w ^? cWorld . lWorld . floorItems . ix itid . flItPos - return $ soundStart (CrSound cid) p pickUpS Nothing w' + soundStart (CrSound cid) p pickUpS Nothing <$> tryPutItemInInvAt invid cid itid w diff --git a/src/Dodge/Inventory/CheckSlots.hs b/src/Dodge/Inventory/CheckSlots.hs index 2c99be052..794fa3bca 100644 --- a/src/Dodge/Inventory/CheckSlots.hs +++ b/src/Dodge/Inventory/CheckSlots.hs @@ -21,6 +21,7 @@ checkInvSlotsYou it w = do guard $ crNumFreeSlots (w ^. cWorld . lWorld . items) ycr >= itInvHeight it Just . NInt . IM.newKey . _unNIntMap $ _crInv ycr +-- the intmap should be _items crNumFreeSlots :: IM.IntMap Item -> Creature -> Int crNumFreeSlots m cr = maxInvSlots - invSize (fmap f (_crInv cr)) where diff --git a/src/Dodge/Inventory/Location.hs b/src/Dodge/Inventory/Location.hs index 2afafcd19..dd848df42 100644 --- a/src/Dodge/Inventory/Location.hs +++ b/src/Dodge/Inventory/Location.hs @@ -4,15 +4,15 @@ module Dodge.Inventory.Location ( setInvPosFromSS, ) where -import Dodge.Data.ComposedItem -import Dodge.Data.DoubleTree -import Data.Foldable import Control.Applicative import Control.Lens +import Data.Foldable --import Data.IntMap.Merge.Strict import qualified Data.IntSet as IS import Data.Maybe import Dodge.Base.You +import Dodge.Data.ComposedItem +import Dodge.Data.DoubleTree import Dodge.Data.Item.Use.Consumption.LoadAction import Dodge.Data.World import Dodge.Item.Grammar @@ -20,8 +20,10 @@ import qualified IntMapHelp as IM import NewInt -- assumes all item locations inside the items are correct -tryGetRootAttachedFromInvID :: NewInt InvInt - -> NewIntMap InvInt Item -> Maybe (Int, IS.IntSet) +tryGetRootAttachedFromInvID :: + NewInt InvInt -> + NewIntMap InvInt Item -> + Maybe (Int, IS.IntSet) tryGetRootAttachedFromInvID (NInt invid) im = do let imroots = invRootMap im theroot = fromMaybe invid $ imroots ^? ix invid . _1 . _Just @@ -59,11 +61,17 @@ crSetRoots cid w = fromMaybe w $ do where g w' i = w' & items . ix i . itLocation . ilIsRoot .~ False f :: LWorld -> DTree OItem -> LWorld - f w' x = w' - & items . ix (x ^. dtValue . _1 . itID . unNInt) . itLocation . ilIsRoot .~ True + f w' x = + w' + & items . ix (x ^. dtValue . _1 . itID . unNInt) . itLocation . ilIsRoot .~ True -crUpdateInvidLocations :: ManipulatedObject -> Int -> LWorld -> Int - -> Item -> LWorld +crUpdateInvidLocations :: + ManipulatedObject -> + Int -> + LWorld -> + Int -> + Item -> + LWorld crUpdateInvidLocations mo crid lw invid itm = lw & creatures . ix crid . crInv . ix (NInt invid) .~ itid -- . itLocation .~ newloc @@ -93,8 +101,12 @@ setInvPosFromSS w = w case i of (-1) -> Just SortInventory 0 -> do - (rootid, aset) <- tryGetRootAttachedFromInvID (NInt j) (fmap (\k -> w ^?! cWorld . lWorld . items . ix k ) - $ you w ^. crInv) + (rootid, aset) <- + tryGetRootAttachedFromInvID + (NInt j) + ( fmap (\k -> w ^?! cWorld . lWorld . items . ix k) $ + you w ^. crInv + ) return SelectedItem { _imSelectedItem = NInt j diff --git a/src/Dodge/Item/Grammar.hs b/src/Dodge/Item/Grammar.hs index d4284129d..6691e80da 100644 --- a/src/Dodge/Item/Grammar.hs +++ b/src/Dodge/Item/Grammar.hs @@ -223,8 +223,6 @@ invDT' = fmap propagateOrientation' . invDT -- this assumes the creature inventory is well formed, specifically the -- location ids --- consider explicitly reseting the inventory ids (but this probably really --- should be done upstream anyway in the actually creature inventory) invRootMap :: NewIntMap InvInt Item -> IM.IntMap (Maybe Int, DTree Item) invRootMap = foldMap @@ -233,8 +231,6 @@ invRootMap = -- this assumes the creature inventory is well formed, specifically the -- location ids --- consider explicitly reseting the inventory ids (but this probably really --- should be done upstream anyway in the actually creature inventory) -- The first Int in the maybe is the root, the second the parent invAdj :: NewIntMap InvInt Item -> IM.IntMap (Maybe (Int, Int), [Int], [Int]) invAdj = IM.unions . map g . invDT diff --git a/src/Dodge/TestString.hs b/src/Dodge/TestString.hs index 004239a59..5e80701ca 100644 --- a/src/Dodge/TestString.hs +++ b/src/Dodge/TestString.hs @@ -31,14 +31,15 @@ import NewInt import Data.Foldable testStringInit :: Universe -> [String] -testStringInit u = map f (IM.toList $ u ^. uvWorld . cWorld . lWorld . items) - <> ["---"] - <> map show (IM.toList . fold $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv . unNIntMap) - <> ["---"] - <> map show (IM.keys $ u ^. uvWorld . cWorld . lWorld . floorItems) - - where - f (i,itm) = show i <> ":" <> show (itm ^. itID . unNInt) <> ":"<> shortShow (itm ^. itLocation) +testStringInit _ = mempty + -- map f (IM.toList $ u ^. uvWorld . cWorld . lWorld . items) + -- <> ["---"] + -- <> map show (IM.toList . fold $ u ^? uvWorld . cWorld . lWorld . creatures . ix 0 . crInv . unNIntMap) + -- <> ["---"] + -- <> map show (IM.keys $ u ^. uvWorld . cWorld . lWorld . floorItems) + -- + -- where + -- f (i,itm) = show i <> ":" <> show (itm ^. itID . unNInt) <> ":"<> shortShow (itm ^. itLocation) -- map shortShow (u ^.. uvWorld . cWorld . lWorld . debris . each . to g) -- where -- g db = (pz,z,norm v) diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 834027793..70ce63ae0 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -132,23 +132,22 @@ tryPickupSelected k mpos w = do guard $ k == 3 guard $ maybe True (\(i, _) -> i == 0 || i == 1) mpos cr <- w ^? cWorld . lWorld . creatures . ix 0 - let nfreeslots = crNumFreeSlots (w ^. cWorld . lWorld . items) cr xs <- w ^? hud . hudElement . diSelection . _Just . _3 - let itmstopickup = mapMaybe g $ IS.toList xs - let slotsneeded = alaf Sum foldMap itInvHeight itmstopickup + let nfreeslots = crNumFreeSlots (w ^. cWorld . lWorld . items) cr + itmstopickup = mapMaybe g $ IS.toList xs + slotsneeded = alaf Sum foldMap itInvHeight itmstopickup + ispickup = map (_unNInt . _itID) itmstopickup guard $ nfreeslots >= slotsneeded return $ case mpos of Just (0, j) -> - foldr (pickUpItemAt j 0) w (map (_unNInt . _itID) itmstopickup) - & hud . hudElement . diSelection - ?~ ( 0 - , j - , IS.fromDistinctAscList [j .. j + IS.size xs -1] - ) + foldr (pickUpItemAt j 0) w ispickup + & newdisel j xs _ -> - foldl' (flip $ pickUpItem 0) w (IS.toList xs) - & hud . hudElement . diSelection . _Just . _3 %~ const mempty + foldl' (flip $ pickUpItem 0) w ispickup + & newdisel (length (cr ^. crInv)) xs where + newdisel j xs = hud . hudElement . diSelection ?~ + (0 , j , IS.fromDistinctAscList [j .. j + IS.size xs -1]) g i = do NInt j <- w ^? hud . closeItems . ix i w ^? cWorld . lWorld . items . ix j diff --git a/tags b/tags index a0661f6d5..a8f1c6839 100644 --- a/tags +++ b/tags @@ -16,7 +16,7 @@ <$> src/Dodge/Data/CWorld.hs 47;" o <$> src/Dodge/Data/Camera.hs 39;" o <$> src/Dodge/Data/Creature.hs 81;" o -<$> src/Dodge/Data/LWorld.hs 185;" o +<$> src/Dodge/Data/LWorld.hs 184;" o <$> src/Dodge/Data/Terminal.hs 71;" o ABSOLUTE src/Dodge/Data/Item/Combine.hs 40;" C AIUNIT src/Dodge/Data/Item/Combine.hs 75;" C @@ -64,7 +64,7 @@ ArbitraryAction src/Dodge/Data/ActionPlan.hs 166;" C ArbitraryImpulse src/Dodge/Data/ActionPlan.hs 47;" C ArbitraryImpulseEffect src/Dodge/Data/ActionPlan.hs 48;" C ArbitraryImpulseFunction src/Dodge/Data/ActionPlan.hs 46;" C -ArcNodeType src/Dodge/Data/LWorld.hs 165;" t +ArcNodeType src/Dodge/Data/LWorld.hs 164;" t ArcShad src/Picture/Data.hs 38;" C ArcStep src/Dodge/Data/ArcStep.hs 14;" t Arcing src/Dodge/Data/Item/Params.hs 17;" C @@ -258,7 +258,7 @@ Corpse src/Dodge/Data/Corpse.hs 17;" t CorpseResurrection src/Dodge/Data/Corpse.hs 14;" t Cosmic src/Dodge/Data/Scenario.hs 74;" C CrAc src/Dodge/Data/CreatureEffect.hs 48;" t -CrArcNode src/Dodge/Data/LWorld.hs 170;" C +CrArcNode src/Dodge/Data/LWorld.hs 169;" C CrBl src/Dodge/Data/CreatureEffect.hs 39;" t CrCanShoot src/Dodge/Data/CreatureEffect.hs 40;" C CrChasm src/Dodge/Data/SoundOrigin.hs 19;" C @@ -621,20 +621,19 @@ IsolationUnitSS src/Dodge/Data/Scenario.hs 101;" C ItCrWdItemHeldEffect src/Dodge/Data/WorldEffect.hs 18;" C ItCrWdItemHeldEffectNoHammer src/Dodge/Data/WorldEffect.hs 19;" C ItCrWdWd src/Dodge/Data/WorldEffect.hs 18;" t -ItID src/Dodge/Data/Item.hs 29;" t -ItTargeting src/Dodge/Data/Item.hs 57;" C -Item src/Dodge/Data/Item.hs 39;" t +ItTargeting src/Dodge/Data/Item.hs 45;" C +Item src/Dodge/Data/Item.hs 26;" t ItemClust src/Dodge/Combine/Graph.hs 21;" C ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t ItemLocation src/Dodge/Data/Item/Location.hs 26;" t ItemParamID src/Dodge/Data/Item/Params.hs 26;" C ItemParams src/Dodge/Data/Item/Params.hs 14;" t ItemSF src/Dodge/Data/ComposedItem.hs 12;" t -ItemScroll src/Dodge/Data/Item.hs 51;" t -ItemScrollInt src/Dodge/Data/Item.hs 53;" C -ItemScrollIntRange src/Dodge/Data/Item.hs 54;" C +ItemScroll src/Dodge/Data/Item.hs 38;" t +ItemScrollInt src/Dodge/Data/Item.hs 40;" C +ItemScrollIntRange src/Dodge/Data/Item.hs 41;" C ItemScrollTimeFlow src/Dodge/Data/World.hs 62;" C -ItemTargeting src/Dodge/Data/Item.hs 56;" t +ItemTargeting src/Dodge/Data/Item.hs 43;" t ItemType src/Dodge/Data/Item/Combine.hs 16;" t ItemUse src/Dodge/Data/Item/Use.hs 30;" t ItmInt src/Dodge/Data/Item/Location.hs 23;" t @@ -856,8 +855,8 @@ NoFaction src/Dodge/Data/Creature/State.hs 20;" C NoFlare src/Dodge/Data/Muzzle.hs 29;" C NoHoming src/Dodge/Data/Projectile.hs 42;" C NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C -NoItTargeting src/Dodge/Data/Item.hs 56;" C -NoItemScroll src/Dodge/Data/Item.hs 52;" C +NoItTargeting src/Dodge/Data/Item.hs 44;" C +NoItemScroll src/Dodge/Data/Item.hs 39;" C NoLightFlare src/Dodge/Data/Muzzle.hs 31;" C NoLighting src/Dodge/Data/Config.hs 104;" C NoMouseContext src/Dodge/Data/Input.hs 15;" C @@ -1471,7 +1470,7 @@ WRIST_ECG src/Dodge/Data/Item/Combine.hs 137;" C WaitThen src/Dodge/Data/ActionPlan.hs 103;" C Walking src/Dodge/Data/Creature/Stance.hs 21;" C Wall src/Dodge/Data/Wall.hs 20;" t -WallArcNode src/Dodge/Data/LWorld.hs 166;" C +WallArcNode src/Dodge/Data/LWorld.hs 165;" C WallDraw src/Dodge/Data/Wall.hs 47;" t WallObstacle src/Dodge/Data/PathGraph.hs 52;" C WallP src/Dodge/LevelGen/StaticWalls.hs 23;" t @@ -1550,7 +1549,7 @@ _apProjectiles src/Dodge/Data/Item/Use.hs 46;" f _apStrategy src/Dodge/Data/ActionPlan.hs 21;" f _aps src/Dodge/Data/Muzzle.hs 22;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 167;" f -_arcNode src/Dodge/Data/LWorld.hs 118;" f +_arcNode src/Dodge/Data/LWorld.hs 117;" f _asDir src/Dodge/Data/ArcStep.hs 16;" f _asObject src/Dodge/Data/ArcStep.hs 17;" f _asPos src/Dodge/Data/ArcStep.hs 15;" f @@ -1580,7 +1579,7 @@ _blObstructs src/Dodge/Data/Block.hs 34;" f _blPos src/Dodge/Data/Block.hs 29;" f _blShadows src/Dodge/Data/Block.hs 27;" f _blWallIDs src/Dodge/Data/Block.hs 25;" f -_blocks src/Dodge/Data/LWorld.hs 132;" f +_blocks src/Dodge/Data/LWorld.hs 131;" f _bloomBlurShader src/Data/Preload/Render.hs 21;" f _bmColor src/Dodge/Data/Beam.hs 23;" f _bmDamage src/Dodge/Data/Beam.hs 22;" f @@ -1616,10 +1615,10 @@ _buOldPos src/Dodge/Data/Bullet.hs 24;" f _buPayload src/Dodge/Data/Bullet.hs 20;" f _buPos src/Dodge/Data/Bullet.hs 23;" f _buVel src/Dodge/Data/Bullet.hs 21;" f -_bullets src/Dodge/Data/LWorld.hs 110;" f +_bullets src/Dodge/Data/LWorld.hs 109;" f _burstFrames src/Dodge/Data/TriggerType.hs 12;" f _burstRate src/Dodge/Data/TriggerType.hs 12;" f -_buttons src/Dodge/Data/LWorld.hs 140;" f +_buttons src/Dodge/Data/LWorld.hs 139;" f _cClock src/Dodge/Data/CWorld.hs 26;" f _cWorld src/Dodge/Data/World.hs 36;" f _camBoundBox src/Dodge/Data/Camera.hs 31;" f @@ -1632,7 +1631,7 @@ _camRot src/Dodge/Data/Camera.hs 25;" f _camViewDistance src/Dodge/Data/Camera.hs 30;" f _camViewFrom src/Dodge/Data/Camera.hs 29;" f _camZoom src/Dodge/Data/Camera.hs 26;" f -_canID src/Dodge/Data/LWorld.hs 171;" f +_canID src/Dodge/Data/LWorld.hs 170;" f _carriage src/Dodge/Data/Creature/Stance.hs 14;" f _carteCenter src/Dodge/Data/HUD.hs 44;" f _carteRot src/Dodge/Data/HUD.hs 46;" f @@ -1682,13 +1681,13 @@ _closeItems src/Dodge/Data/HUD.hs 47;" f _cloudEBO src/Data/Preload/Render.hs 51;" f _cloudShader src/Data/Preload/Render.hs 50;" f _cloudVBO src/Data/Preload/Render.hs 49;" f -_clouds src/Dodge/Data/LWorld.hs 104;" f +_clouds src/Dodge/Data/LWorld.hs 103;" f _colorBlurShader src/Data/Preload/Render.hs 22;" f _coolEnd src/Dodge/Data/TriggerType.hs 17;" f _coolSound src/Dodge/Data/Item/Params.hs 24;" f _coolStart src/Dodge/Data/TriggerType.hs 16;" f -_coordinates src/Dodge/Data/LWorld.hs 133;" f -_corpses src/Dodge/Data/LWorld.hs 142;" f +_coordinates src/Dodge/Data/LWorld.hs 132;" f +_corpses src/Dodge/Data/LWorld.hs 141;" f _cpAttention src/Dodge/Data/Creature/Perception.hs 34;" f _cpAudition src/Dodge/Data/Creature/Perception.hs 37;" f _cpAwareness src/Dodge/Data/Creature/Perception.hs 35;" f @@ -1752,7 +1751,7 @@ _dbRot src/Dodge/Data/Prop.hs 52;" f _dbSpin src/Dodge/Data/Prop.hs 53;" f _dbType src/Dodge/Data/Prop.hs 50;" f _dbVel src/Dodge/Data/Prop.hs 51;" f -_debris src/Dodge/Data/LWorld.hs 108;" f +_debris src/Dodge/Data/LWorld.hs 107;" f _debugInfo src/Dodge/Data/Universe.hs 54;" f _debugInt src/Dodge/Data/Universe.hs 62;" f _debugMInt src/Dodge/Data/Universe.hs 61;" f @@ -1762,7 +1761,7 @@ _debugV2 src/Dodge/Data/Universe.hs 60;" f _debugV3 src/Dodge/Data/Universe.hs 59;" f _debug_booleans src/Dodge/Data/Config.hs 57;" f _debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f -_delayedEvents src/Dodge/Data/LWorld.hs 138;" f +_delayedEvents src/Dodge/Data/LWorld.hs 137;" f _diCloseFilter src/Dodge/Data/HUD.hs 24;" f _diInvFilter src/Dodge/Data/HUD.hs 23;" f _diSections src/Dodge/Data/HUD.hs 21;" f @@ -1770,7 +1769,7 @@ _diSelection src/Dodge/Data/HUD.hs 22;" f _dimAttachPos src/Dodge/Data/Item/Misc.hs 16;" f _dimCenter src/Dodge/Data/Item/Misc.hs 15;" f _dimRad src/Dodge/Data/Item/Misc.hs 14;" f -_distortions src/Dodge/Data/LWorld.hs 147;" f +_distortions src/Dodge/Data/LWorld.hs 146;" f _dmAmount src/Dodge/Data/Damage.hs 20;" f _dmAmount src/Dodge/Data/Damage.hs 23;" f _dmAmount src/Dodge/Data/Damage.hs 26;" f @@ -1803,7 +1802,7 @@ _doReplicateAction src/Dodge/Data/ActionPlan.hs 142;" f _doReplicateAction src/Dodge/Data/ActionPlan.hs 147;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 141;" f _doReplicateTimes src/Dodge/Data/ActionPlan.hs 146;" f -_doors src/Dodge/Data/LWorld.hs 127;" f +_doors src/Dodge/Data/LWorld.hs 126;" f _drClosePos src/Dodge/Data/Door.hs 42;" f _drDeath src/Dodge/Data/Door.hs 44;" f _drHP src/Dodge/Data/Door.hs 43;" f @@ -1828,7 +1827,7 @@ _dsZoning src/Dodge/Data/World.hs 49;" f _dtLeft src/Dodge/Data/DoubleTree.hs 31;" f _dtRight src/Dodge/Data/DoubleTree.hs 31;" f _dtValue src/Dodge/Data/DoubleTree.hs 31;" f -_dusts src/Dodge/Data/LWorld.hs 105;" f +_dusts src/Dodge/Data/LWorld.hs 104;" f _ebID src/Dodge/Data/EnergyBall/Type.hs 15;" f _ebPos src/Dodge/Data/EnergyBall.hs 19;" f _ebTimer src/Dodge/Data/EnergyBall.hs 20;" f @@ -1837,7 +1836,7 @@ _ebVel src/Dodge/Data/EnergyBall.hs 18;" f _eboName src/Shader/Data.hs 89;" f _eboPtr src/Shader/Data.hs 90;" f _emoMenuOption src/Dodge/Data/Universe.hs 77;" f -_energyBalls src/Dodge/Data/LWorld.hs 112;" f +_energyBalls src/Dodge/Data/LWorld.hs 111;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 14;" f _fbo2 src/Data/Preload/Render.hs 29;" f _fbo3 src/Data/Preload/Render.hs 30;" f @@ -1853,14 +1852,14 @@ _flItRot src/Dodge/Data/FloorItem.hs 15;" f _flPos src/Dodge/Data/Flame.hs 15;" f _flTimer src/Dodge/Data/Flame.hs 14;" f _flVel src/Dodge/Data/Flame.hs 16;" f -_flames src/Dodge/Data/LWorld.hs 113;" f +_flames src/Dodge/Data/LWorld.hs 112;" f _flankTarget src/Dodge/Data/ActionPlan.hs 177;" f -_flares src/Dodge/Data/LWorld.hs 116;" f +_flares src/Dodge/Data/LWorld.hs 115;" f _flatShieldWlMIX src/Dodge/Data/Item/Params.hs 16;" f -_floorItems src/Dodge/Data/LWorld.hs 135;" f +_floorItems src/Dodge/Data/LWorld.hs 134;" f _floorShader src/Data/Preload/Render.hs 44;" f _floorVBO src/Data/Preload/Render.hs 43;" f -_foregroundShapes src/Dodge/Data/LWorld.hs 141;" f +_foregroundShapes src/Dodge/Data/LWorld.hs 140;" f _fsDir src/Dodge/Data/ForegroundShape.hs 17;" f _fsID src/Dodge/Data/ForegroundShape.hs 15;" f _fsPos src/Dodge/Data/ForegroundShape.hs 16;" f @@ -1903,11 +1902,11 @@ _guID src/Dodge/Data/Gust.hs 14;" f _guPos src/Dodge/Data/Gust.hs 15;" f _guTime src/Dodge/Data/Gust.hs 17;" f _guVel src/Dodge/Data/Gust.hs 16;" f -_gusts src/Dodge/Data/LWorld.hs 106;" f +_gusts src/Dodge/Data/LWorld.hs 105;" f _gwWorld src/Dodge/Data/GenWorld.hs 24;" f _heldPos src/Dodge/Data/Input.hs 47;" f _heldWorldPos src/Dodge/Data/Input.hs 49;" f -_hotkeys src/Dodge/Data/LWorld.hs 151;" f +_hotkeys src/Dodge/Data/LWorld.hs 150;" f _hud src/Dodge/Data/World.hs 45;" f _hudElement src/Dodge/Data/HUD.hs 43;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 81;" f @@ -1929,7 +1928,7 @@ _ilIsRoot src/Dodge/Data/Item/Location.hs 30;" f _ilIsSelected src/Dodge/Data/Item/Location.hs 31;" f _ilTuID src/Dodge/Data/Item/Location.hs 35;" f _imAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 27;" f -_imHotkeys src/Dodge/Data/LWorld.hs 152;" f +_imHotkeys src/Dodge/Data/LWorld.hs 151;" f _imRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 26;" f _imSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 25;" f _immediateEffect src/Loop/Data.hs 9;" f @@ -1944,36 +1943,36 @@ _ipPlacementID src/Dodge/Data/GenWorld.hs 137;" f _isWarming src/Dodge/Data/Item/Params.hs 23;" f _ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 33;" f _ispCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" f -_itConsumables src/Dodge/Data/Item.hs 41;" f -_itID src/Dodge/Data/Item.hs 43;" f -_itLocation src/Dodge/Data/Item.hs 44;" f +_itConsumables src/Dodge/Data/Item.hs 28;" f +_itID src/Dodge/Data/Item.hs 30;" f +_itLocation src/Dodge/Data/Item.hs 31;" f _itParamID src/Dodge/Data/Item/Params.hs 26;" f -_itParams src/Dodge/Data/Item.hs 46;" f -_itScroll src/Dodge/Data/Item.hs 47;" f -_itTargeting src/Dodge/Data/Item.hs 45;" f -_itTgActive src/Dodge/Data/Item.hs 60;" f -_itTgID src/Dodge/Data/Item.hs 59;" f -_itTgPos src/Dodge/Data/Item.hs 58;" f -_itTimeLastUsed src/Dodge/Data/Item.hs 48;" f -_itType src/Dodge/Data/Item.hs 42;" f -_itUse src/Dodge/Data/Item.hs 40;" f -_items src/Dodge/Data/LWorld.hs 103;" f -_itsInt src/Dodge/Data/Item.hs 53;" f -_itsMax src/Dodge/Data/Item.hs 54;" f -_itsRangeInt src/Dodge/Data/Item.hs 54;" f +_itParams src/Dodge/Data/Item.hs 33;" f +_itScroll src/Dodge/Data/Item.hs 34;" f +_itTargeting src/Dodge/Data/Item.hs 32;" f +_itTgActive src/Dodge/Data/Item.hs 48;" f +_itTgID src/Dodge/Data/Item.hs 47;" f +_itTgPos src/Dodge/Data/Item.hs 46;" f +_itTimeLastUsed src/Dodge/Data/Item.hs 35;" f +_itType src/Dodge/Data/Item.hs 29;" f +_itUse src/Dodge/Data/Item.hs 27;" f +_items src/Dodge/Data/LWorld.hs 102;" f +_itsInt src/Dodge/Data/Item.hs 40;" f +_itsMax src/Dodge/Data/Item.hs 41;" f +_itsRangeInt src/Dodge/Data/Item.hs 41;" f _killTarget src/Dodge/Data/ActionPlan.hs 198;" f -_lAimPos src/Dodge/Data/LWorld.hs 153;" f -_lClock src/Dodge/Data/LWorld.hs 148;" f -_lInvLock src/Dodge/Data/LWorld.hs 154;" f -_lTestInt src/Dodge/Data/LWorld.hs 150;" f -_lTestString src/Dodge/Data/LWorld.hs 149;" f +_lAimPos src/Dodge/Data/LWorld.hs 152;" f +_lClock src/Dodge/Data/LWorld.hs 147;" f +_lInvLock src/Dodge/Data/LWorld.hs 153;" f +_lTestInt src/Dodge/Data/LWorld.hs 149;" f +_lTestString src/Dodge/Data/LWorld.hs 148;" f _lWorld src/Dodge/Data/CWorld.hs 24;" f _lampColor src/Dodge/Data/Creature/Misc.hs 74;" f _lampHeight src/Dodge/Data/Creature/Misc.hs 74;" f _lampLSID src/Dodge/Data/Creature/Misc.hs 74;" f _laserEmmiter src/Dodge/Data/Laser.hs 18;" f _laserTypeDamage src/Dodge/Data/Laser.hs 17;" f -_lasers src/Dodge/Data/LWorld.hs 120;" f +_lasers src/Dodge/Data/LWorld.hs 119;" f _ldpPos src/Dodge/Data/SelectionList.hs 14;" f _ldpScale src/Dodge/Data/SelectionList.hs 15;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f @@ -1981,14 +1980,14 @@ _ldtLeft src/Dodge/Data/DoubleTree.hs 36;" f _ldtRight src/Dodge/Data/DoubleTree.hs 37;" f _ldtValue src/Dodge/Data/DoubleTree.hs 35;" f _leadTargetBy src/Dodge/Data/ActionPlan.hs 150;" f -_lightSources src/Dodge/Data/LWorld.hs 143;" f +_lightSources src/Dodge/Data/LWorld.hs 142;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f _lightingLineShadowShader src/Data/Preload/Render.hs 15;" f _lightingTextureShader src/Data/Preload/Render.hs 17;" f _lightingWallShadShader src/Data/Preload/Render.hs 14;" f -_lights src/Dodge/Data/LWorld.hs 144;" f +_lights src/Dodge/Data/LWorld.hs 143;" f _lightsUBO src/Data/Preload/Render.hs 40;" f -_linearShockwaves src/Dodge/Data/LWorld.hs 123;" f +_linearShockwaves src/Dodge/Data/LWorld.hs 122;" f _linkGapEW src/Dodge/Data/Room.hs 35;" f _linkGapNS src/Dodge/Data/Room.hs 36;" f _locDT src/Dodge/Data/DoubleTree.hs 103;" f @@ -2011,9 +2010,9 @@ _lwPos src/Dodge/Data/LinearShockwave.hs 14;" f _lwTimer src/Dodge/Data/LinearShockwave.hs 17;" f _lyCounter src/Dodge/Annotation/Data.hs 16;" f _lyGen src/Dodge/Annotation/Data.hs 15;" f -_machines src/Dodge/Data/LWorld.hs 128;" f +_machines src/Dodge/Data/LWorld.hs 127;" f _magBelowID src/Dodge/Data/Muzzle.hs 22;" f -_magnets src/Dodge/Data/LWorld.hs 131;" f +_magnets src/Dodge/Data/LWorld.hs 130;" f _mainAction src/Dodge/Data/ActionPlan.hs 171;" f _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" f _mapInvItmID src/Dodge/Data/HUD.hs 33;" f @@ -2070,7 +2069,7 @@ _moString src/Dodge/Data/Universe.hs 105;" f _moString src/Dodge/Data/Universe.hs 110;" f _modOption src/Dodge/Data/Universe.hs 100;" f _modString src/Dodge/Data/Universe.hs 98;" f -_modifications src/Dodge/Data/LWorld.hs 136;" f +_modifications src/Dodge/Data/LWorld.hs 135;" f _mouseButtons src/Dodge/Data/Input.hs 42;" f _mouseButtonsReleased src/Dodge/Data/Input.hs 43;" f _mouseContext src/Dodge/Data/Input.hs 39;" f @@ -2104,7 +2103,7 @@ _nzMaxWalkAngle src/Dodge/Data/Muzzle.hs 49;" f _nzPressure src/Dodge/Data/Muzzle.hs 48;" f _nzWalkSpeed src/Dodge/Data/Muzzle.hs 50;" f _offPathFromEdges src/Dodge/Data/Room.hs 74;" f -_oldMagnets src/Dodge/Data/LWorld.hs 130;" f +_oldMagnets src/Dodge/Data/LWorld.hs 129;" f _onPathFromEdges src/Dodge/Data/Room.hs 73;" f _opDraw src/Dodge/Data/Wall.hs 43;" f _opSel src/Dodge/Data/RightButtonOptions.hs 17;" f @@ -2180,10 +2179,10 @@ _prUpdate src/Dodge/Data/Prop.hs 35;" f _prVel src/Dodge/Data/Prop.hs 24;" f _prVelZ src/Dodge/Data/Prop.hs 27;" f _preloadData src/Dodge/Data/Universe.hs 33;" f -_pressPlates src/Dodge/Data/LWorld.hs 139;" f +_pressPlates src/Dodge/Data/LWorld.hs 138;" f _pressedKeys src/Dodge/Data/Input.hs 41;" f -_projectiles src/Dodge/Data/LWorld.hs 109;" f -_props src/Dodge/Data/LWorld.hs 107;" f +_projectiles src/Dodge/Data/LWorld.hs 108;" f +_props src/Dodge/Data/LWorld.hs 106;" f _proxDist src/Dodge/Data/Machine/Sensor.hs 29;" f _proxReqEquipment src/Dodge/Data/Machine/Sensor.hs 38;" f _proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 37;" f @@ -2196,8 +2195,8 @@ _psRoomEff src/Dodge/Data/GenWorld.hs 72;" f _psRoomRandPointNum src/Dodge/Data/GenWorld.hs 76;" f _psRot src/Dodge/Data/GenWorld.hs 68;" f _psSelect src/Dodge/Data/GenWorld.hs 71;" f -_pulseBalls src/Dodge/Data/LWorld.hs 122;" f -_pulseLasers src/Dodge/Data/LWorld.hs 121;" f +_pulseBalls src/Dodge/Data/LWorld.hs 121;" f +_pulseLasers src/Dodge/Data/LWorld.hs 120;" f _pulseProgress src/Dodge/Data/Creature/Misc.hs 56;" f _pulseRate src/Dodge/Data/Creature/Misc.hs 55;" f _putBlock src/Dodge/Data/GenWorld.hs 44;" f @@ -2223,8 +2222,8 @@ _pzDir src/Dodge/Data/PulseLaser.hs 14;" f _pzPhaseV src/Dodge/Data/PulseLaser.hs 12;" f _pzPos src/Dodge/Data/PulseLaser.hs 13;" f _pzTimer src/Dodge/Data/PulseLaser.hs 16;" f -_radarBlips src/Dodge/Data/LWorld.hs 115;" f -_radarSweeps src/Dodge/Data/LWorld.hs 111;" f +_radarBlips src/Dodge/Data/LWorld.hs 114;" f +_radarSweeps src/Dodge/Data/LWorld.hs 110;" f _randGen src/Dodge/Data/World.hs 39;" f _rbColor src/Dodge/Data/RadarBlip.hs 15;" f _rbMaxTime src/Dodge/Data/RadarBlip.hs 17;" f @@ -2235,7 +2234,7 @@ _rbTime src/Dodge/Data/RadarBlip.hs 16;" f _rboBaseBloom src/Data/Preload/Render.hs 38;" f _renderData src/Data/Preload.hs 11;" f _respawnDelay src/Dodge/Data/World.hs 60;" f -_respawnPos src/Dodge/Data/LWorld.hs 155;" f +_respawnPos src/Dodge/Data/LWorld.hs 154;" f _reverseAmount src/Dodge/Data/World.hs 64;" f _reverseAmount src/Dodge/Data/World.hs 70;" f _reverseAmount src/Dodge/Data/World.hs 74;" f @@ -2308,8 +2307,8 @@ _scrollTestInt src/Dodge/Data/Input.hs 52;" f _scurColor src/Dodge/Data/SelectionList.hs 26;" f _scurPos src/Dodge/Data/SelectionList.hs 24;" f _scurSize src/Dodge/Data/SelectionList.hs 25;" f -_seenLocations src/Dodge/Data/LWorld.hs 145;" f -_selLocation src/Dodge/Data/LWorld.hs 146;" f +_seenLocations src/Dodge/Data/LWorld.hs 144;" f +_selLocation src/Dodge/Data/LWorld.hs 145;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 22;" f _sensDraw src/Dodge/Data/Machine/Sensor.hs 24;" f _sensThreshold src/Dodge/Data/Machine/Sensor.hs 25;" f @@ -2331,7 +2330,7 @@ _shapeEBO src/Data/Preload/Render.hs 26;" f _shapeHalfSize src/Shape/Data.hs 18;" f _shapeShader src/Data/Preload/Render.hs 25;" f _shellPayload src/Dodge/Data/Item/Combine.hs 103;" f -_shockwaves src/Dodge/Data/LWorld.hs 119;" f +_shockwaves src/Dodge/Data/LWorld.hs 118;" f _siColor src/Dodge/Data/SelectionList.hs 49;" f _siHeight src/Dodge/Data/SelectionList.hs 46;" f _siIsSelectable src/Dodge/Data/SelectionList.hs 48;" f @@ -2363,7 +2362,7 @@ _soundVolumeFraction src/Sound/Data.hs 52;" f _soundsToInvestigate src/Dodge/Data/Creature/Memory.hs 14;" f _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f -_sparks src/Dodge/Data/LWorld.hs 114;" f +_sparks src/Dodge/Data/LWorld.hs 113;" f _spawnEBT src/Dodge/Data/Bullet.hs 35;" f _ssIndent src/Dodge/Data/SelectionList.hs 34;" f _ssItems src/Dodge/Data/SelectionList.hs 30;" f @@ -2398,8 +2397,8 @@ _tbStartPos src/Dodge/Data/TractorBeam.hs 15;" f _tbTime src/Dodge/Data/TractorBeam.hs 17;" f _tbVel src/Dodge/Data/TractorBeam.hs 16;" f _termID src/Dodge/Data/HUD.hs 40;" f -_terminals src/Dodge/Data/LWorld.hs 129;" f -_teslaArcs src/Dodge/Data/LWorld.hs 117;" f +_terminals src/Dodge/Data/LWorld.hs 128;" f +_teslaArcs src/Dodge/Data/LWorld.hs 116;" f _testFloat src/Dodge/Data/World.hs 43;" f _textInput src/Dodge/Data/Input.hs 50;" f _textureObject src/Shader/Data.hs 95;" f @@ -2435,10 +2434,10 @@ _toPlaySoundVolumeFraction src/Sound/Data.hs 40;" f _toPlaySounds src/Dodge/Data/World.hs 40;" f _topBoxSize src/Shape/Data.hs 17;" f _tptString src/Dodge/Data/Terminal/Status.hs 15;" f -_tractorBeams src/Dodge/Data/LWorld.hs 124;" f +_tractorBeams src/Dodge/Data/LWorld.hs 123;" f _trieChildren src/SimpleTrie.hs 12;" f _trieMVal src/SimpleTrie.hs 11;" f -_triggers src/Dodge/Data/LWorld.hs 134;" f +_triggers src/Dodge/Data/LWorld.hs 133;" f _ttDeathEffect src/Dodge/Data/Terminal.hs 46;" f _ttTriggerID src/Dodge/Data/Terminal.hs 45;" f _tuDir src/Dodge/Data/Machine.hs 61;" f @@ -2520,12 +2519,12 @@ _wCam src/Dodge/Data/World.hs 54;" f _wTime src/Dodge/Data/Item/Params.hs 22;" f _waitThenAction src/Dodge/Data/ActionPlan.hs 105;" f _waitThenTimer src/Dodge/Data/ActionPlan.hs 104;" f -_wallDamages src/Dodge/Data/LWorld.hs 126;" f +_wallDamages src/Dodge/Data/LWorld.hs 125;" f _wallShader src/Data/Preload/Render.hs 48;" f _wallVBO src/Data/Preload/Render.hs 47;" f -_walls src/Dodge/Data/LWorld.hs 125;" f -_wanID src/Dodge/Data/LWorld.hs 168;" f -_wanPos src/Dodge/Data/LWorld.hs 167;" f +_walls src/Dodge/Data/LWorld.hs 124;" f +_wanID src/Dodge/Data/LWorld.hs 167;" f +_wanPos src/Dodge/Data/LWorld.hs 166;" f _warmMax src/Dodge/Data/TriggerType.hs 19;" f _warmStart src/Dodge/Data/TriggerType.hs 15;" f _windowPosX src/Dodge/Data/Config.hs 53;" f @@ -2552,7 +2551,7 @@ _wlUnshadowed src/Dodge/Data/Wall.hs 32;" f _wlWalkable src/Dodge/Data/Wall.hs 28;" f _wlZoning src/Dodge/Data/World.hs 50;" f _worldEventFlags src/Dodge/Data/World.hs 46;" f -_worldEvents src/Dodge/Data/LWorld.hs 137;" f +_worldEvents src/Dodge/Data/LWorld.hs 136;" f _wsBlock src/Dodge/Data/Wall/Structure.hs 16;" f _wsDoor src/Dodge/Data/Wall/Structure.hs 14;" f _wsMachine src/Dodge/Data/Wall/Structure.hs 15;" f @@ -2565,8 +2564,8 @@ aRadarPulse src/Dodge/RadarSweep.hs 19;" f aShape src/Dodge/Placement/Instance/LightSource.hs 107;" f aSound src/Dodge/SoundLogic.hs 74;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f -accessTerminal src/Dodge/WorldEffect.hs 52;" f -activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 60;" f +accessTerminal src/Dodge/WorldEffect.hs 53;" f +activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 61;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f addArmour src/Dodge/Creature.hs 84;" f addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f @@ -2631,7 +2630,7 @@ anRoom src/Dodge/Floor.hs 131;" f analyser src/Dodge/Placement/Instance/Analyser.hs 10;" f analyserByDoor src/Dodge/Room/LasTurret.hs 93;" f analyserByNthLink src/Dodge/Room/LasTurret.hs 78;" f -andOrRegex src/Dodge/DisplayInventory.hs 79;" f +andOrRegex src/Dodge/DisplayInventory.hs 80;" f angleBetween src/Geometry.hs 161;" f angleVV src/Geometry/Vector.hs 57;" f angleVV3 src/Geometry/Vector3D.hs 122;" f @@ -2837,9 +2836,9 @@ centroid src/Geometry/Polygon.hs 136;" f centroidNum src/Geometry/Polygon.hs 139;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainPairs src/Geometry.hs 363;" f -changeSwapOther src/Dodge/Inventory.hs 151;" f -changeSwapSel src/Dodge/Inventory.hs 144;" f -changeSwapWith src/Dodge/Inventory.hs 185;" f +changeSwapOther src/Dodge/Inventory.hs 149;" f +changeSwapSel src/Dodge/Inventory.hs 142;" f +changeSwapWith src/Dodge/Inventory.hs 183;" f charToTuple src/Picture/Base.hs 317;" f charToTupleGrad src/Picture/Text.hs 18;" f chartreuse src/Color.hs 24;" f @@ -2848,18 +2847,18 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 70;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f -chasmTest src/Dodge/Creature/Update.hs 121;" f +chasmTest src/Dodge/Creature/Update.hs 122;" f chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f -checkCombineSelectionExists src/Dodge/DisplayInventory.hs 101;" f +checkCombineSelectionExists src/Dodge/DisplayInventory.hs 102;" f checkConnection src/Dodge/Inventory/Swap.hs 65;" f -checkDeath src/Dodge/Creature/Update.hs 67;" f -checkDeath' src/Dodge/Creature/Update.hs 70;" f +checkDeath src/Dodge/Creature/Update.hs 68;" f +checkDeath' src/Dodge/Creature/Update.hs 71;" f checkEndGame src/Dodge/Update.hs 790;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" f -checkInventorySelectionExists src/Dodge/DisplayInventory.hs 94;" f +checkInventorySelectionExists src/Dodge/DisplayInventory.hs 95;" f checkTermDist src/Dodge/Update.hs 334;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f @@ -2910,7 +2909,7 @@ clockCycle src/Dodge/Clock.hs 9;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 223;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 208;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 243;" f -closeObjectInfo src/Dodge/Render/HUD.hs 222;" f +closeObjectInfo src/Dodge/Render/HUD.hs 223;" f closestCreatureID src/Dodge/Debug.hs 116;" f closestPointOnLine src/Geometry/Intersect.hs 281;" f closestPointOnLineParam src/Geometry/Intersect.hs 297;" f @@ -2927,7 +2926,7 @@ cogRaised src/Dodge/Creature/Perception.hs 102;" f colCrWall src/Dodge/WallCreatureCollisions.hs 28;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 18;" f collectDamageTypes src/Dodge/Damage.hs 53;" f -collectInvItems src/Dodge/Update/Input/InGame.hs 290;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 291;" f collide3 src/Dodge/Base/Collide.hs 119;" f collide3Chasm src/Dodge/Base/Collide.hs 103;" f collide3Chasms src/Dodge/Base/Collide.hs 96;" f @@ -2950,7 +2949,7 @@ combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 43;" f combineAwareness src/Dodge/Creature/Perception.hs 110;" f combineFloors src/Dodge/Room/Procedural.hs 172;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 338;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 339;" f combineItemListYouX src/Dodge/Combine.hs 35;" f combineList src/Dodge/Combine.hs 21;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -2968,14 +2967,14 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 640;" f conEffects src/Dodge/Concurrent.hs 12;" f conLDTToConDT src/Dodge/DoubleTree.hs 22;" f -concurrentIS src/Dodge/Update/Input/InGame.hs 282;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 283;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 722;" f connectionBlurb src/Dodge/Terminal.hs 46;" f connectionBlurbLines src/Dodge/Terminal.hs 38;" f constructEdges src/Polyhedra.hs 34;" f constructEdgesList src/Polyhedra.hs 43;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 57;" f -continueTerminal src/Dodge/Update/Input/InGame.hs 393;" f +continueTerminal src/Dodge/Update/Input/InGame.hs 394;" f convexHull src/Geometry/Polygon.hs 110;" f convexHullSafe src/Geometry/Polygon.hs 117;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 50;" f @@ -2986,7 +2985,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 130;" f copyItemToFloor src/Dodge/FloorItem.hs 15;" f corDoor src/Dodge/Room/Room.hs 376;" f cornerList src/Preload/Render.hs 198;" f -corpseOrGib src/Dodge/Creature/Update.hs 101;" f +corpseOrGib src/Dodge/Creature/Update.hs 102;" f corridor src/Dodge/Room/Corridor.hs 17;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorN src/Dodge/Room/Corridor.hs 52;" f @@ -3022,14 +3021,14 @@ crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 24;" f crOnWall src/Dodge/WallCreatureCollisions.hs 86;" f crRad src/Dodge/Creature/Radius.hs 7;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 74;" f -crSetRoots src/Dodge/Inventory/Location.hs 54;" f +crSetRoots src/Dodge/Inventory/Location.hs 56;" f crShape src/Dodge/Creature/Shape.hs 8;" f crSpring src/Dodge/Update.hs 887;" f crStratConMatches src/Dodge/Creature/Test.hs 79;" f crStrength src/Dodge/Creature/Statistics.hs 25;" f -crUpdate' src/Dodge/Creature/Update.hs 56;" f -crUpdateInvidLocations src/Dodge/Inventory/Location.hs 65;" f -crUpdateItemLocations src/Dodge/Inventory/Location.hs 46;" f +crUpdate' src/Dodge/Creature/Update.hs 57;" f +crUpdateInvidLocations src/Dodge/Inventory/Location.hs 68;" f +crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 41;" f @@ -3209,12 +3208,12 @@ deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f deleteWallID src/Dodge/Wall/Delete.hs 13;" f deleteWallIDs src/Dodge/Wall/Delete.hs 28;" f denormalEdges src/Polyhedra.hs 136;" f -destroyAllInvItems src/Dodge/Inventory.hs 57;" f +destroyAllInvItems src/Dodge/Inventory.hs 55;" f destroyBlock src/Dodge/Block.hs 52;" f -destroyCreature src/Dodge/Creature/Update.hs 93;" f +destroyCreature src/Dodge/Creature/Update.hs 94;" f destroyDoor src/Dodge/Block.hs 80;" f -destroyInvItem src/Dodge/Inventory.hs 42;" f -destroyItem src/Dodge/Inventory.hs 66;" f +destroyInvItem src/Dodge/Inventory.hs 40;" f +destroyItem src/Dodge/Inventory.hs 64;" f destroyLS src/Dodge/LightSource.hs 32;" f destroyLSFlashAt src/Dodge/LightSource.hs 42;" f destroyMachine src/Dodge/Machine/Destroy.hs 13;" f @@ -3241,8 +3240,8 @@ disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 650;" f displayConfig src/Dodge/Menu.hs 213;" f displayControls src/Dodge/Menu.hs 223;" f displayFrameTicks src/Dodge/Render/Picture.hs 46;" f -displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f -displayIndents src/Dodge/DisplayInventory.hs 111;" f +displayFreeSlots src/Dodge/DisplayInventory.hs 197;" f +displayIndents src/Dodge/DisplayInventory.hs 112;" f displayPulse src/Dodge/Inventory/SelectionList.hs 179;" f displayTerminalLineString src/Dodge/Update.hs 496;" f dist src/Geometry/Vector.hs 190;" f @@ -3274,8 +3273,8 @@ doCrWdAc src/Dodge/CreatureEffect.hs 77;" f doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f doDamage src/Dodge/Creature/State.hs 42;" f -doDeathToggle src/Dodge/WorldEffect.hs 84;" f -doDeathTriggers src/Dodge/WorldEffect.hs 77;" f +doDeathToggle src/Dodge/WorldEffect.hs 85;" f +doDeathTriggers src/Dodge/WorldEffect.hs 78;" f doDebugTest src/Dodge/Update/Input/DebugTest.hs 22;" f doDebugTest2 src/Dodge/Update/Input/DebugTest.hs 37;" f doDebugTestF10 src/Dodge/Update/Input/DebugTest.hs 62;" f @@ -3285,7 +3284,7 @@ doDebugTestF6 src/Dodge/Update/Input/DebugTest.hs 40;" f doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 48;" f doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 56;" f doDrWdWd src/Dodge/DrWdWd.hs 16;" f -doDrag src/Dodge/Update/Input/InGame.hs 110;" f +doDrag src/Dodge/Update/Input/InGame.hs 111;" f doDrawing src/Dodge/Render.hs 34;" f doDrawing' src/Dodge/Render.hs 45;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f @@ -3306,33 +3305,33 @@ doOutPlacements src/Dodge/Layout.hs 102;" f doP2Ac src/Dodge/CreatureEffect.hs 69;" f doP2Imp src/Dodge/CreatureEffect.hs 33;" f doPrWdLsLs src/Dodge/PrWdLsLs.hs 8;" f -doPreload appDodge/Main.hs 135;" f +doPreload appDodge/Main.hs 137;" f doPressPlateEvent src/Dodge/PressPlate.hs 8;" f doPropUpdates src/Dodge/Prop/Update.hs 34;" f doQuickload src/Dodge/Save.hs 82;" f doQuicksave src/Dodge/Save.hs 77;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f -doRegexInput src/Dodge/Update/Input/InGame.hs 437;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 438;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomShift src/Dodge/Room/Link.hs 33;" f -doScopeZoom src/Dodge/Update/Scroll.hs 91;" f -doSectionSize src/Dodge/DisplayInventory.hs 215;" f -doSideEffects appDodge/Main.hs 120;" f +doScopeZoom src/Dodge/Update/Scroll.hs 89;" f +doSectionSize src/Dodge/DisplayInventory.hs 216;" f +doSideEffects appDodge/Main.hs 122;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 166;" f doTestDrawing src/Dodge/Render.hs 41;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doThrust src/Dodge/Projectile/Update.hs 182;" f doTimeScroll src/Dodge/Update.hs 208;" f -doTmWdWd src/Dodge/WorldEffect.hs 87;" f +doTmWdWd src/Dodge/WorldEffect.hs 88;" f doWallRotate src/Dodge/Update/Camera.hs 218;" f doWdBl src/Dodge/WorldBool.hs 10;" f doWdCrBl src/Dodge/CreatureEffect.hs 37;" f doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f -doWdWd src/Dodge/WorldEffect.hs 26;" f +doWdWd src/Dodge/WorldEffect.hs 27;" f doWorldEvents src/Dodge/Update.hs 443;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f @@ -3342,10 +3341,10 @@ doorMechanismStepwise src/Dodge/DrWdWd.hs 59;" f dotV src/Geometry/Vector.hs 75;" f dotV3 src/Geometry/Vector3D.hs 119;" f doubleCorridorBarrels src/Dodge/Room/Room.hs 265;" f -doubleFindMax src/Dodge/Update/Scroll.hs 199;" f -doubleFindMin src/Dodge/Update/Scroll.hs 178;" f -doubleFindPred src/Dodge/Update/Scroll.hs 206;" f -doubleFindSucc src/Dodge/Update/Scroll.hs 185;" f +doubleFindMax src/Dodge/Update/Scroll.hs 197;" f +doubleFindMin src/Dodge/Update/Scroll.hs 176;" f +doubleFindPred src/Dodge/Update/Scroll.hs 204;" f +doubleFindSucc src/Dodge/Update/Scroll.hs 183;" f doubleLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 28;" f doublePair src/Geometry.hs 165;" f doublePairSet src/Geometry.hs 169;" f @@ -3368,7 +3367,7 @@ drawCircCollisionTest src/Dodge/Debug/Picture.hs 116;" f drawCliff src/Dodge/Render/ShapePicture.hs 47;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 268;" f -drawCombineInventory src/Dodge/Render/HUD.hs 178;" f +drawCombineInventory src/Dodge/Render/HUD.hs 179;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 69;" f drawCoord src/Dodge/Debug/Picture.hs 364;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f @@ -3386,12 +3385,12 @@ drawDrag src/Dodge/Render/Picture.hs 199;" f drawDragDrop src/Dodge/Render/Picture.hs 228;" f drawDragPickup src/Dodge/Render/Picture.hs 237;" f drawDragSelect src/Dodge/Render/Picture.hs 196;" f -drawDragSelected src/Dodge/Render/HUD.hs 131;" f -drawDragSelecting src/Dodge/Render/HUD.hs 148;" f +drawDragSelected src/Dodge/Render/HUD.hs 132;" f +drawDragSelecting src/Dodge/Render/HUD.hs 149;" f drawEmptySet src/Dodge/Render/Picture.hs 140;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEquipment src/Dodge/Creature/Picture.hs 134;" f -drawExamineInventory src/Dodge/Render/HUD.hs 194;" f +drawExamineInventory src/Dodge/Render/HUD.hs 195;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 269;" f drawFlame src/Dodge/Flame/Draw.hs 8;" f @@ -3400,13 +3399,13 @@ drawFooterText src/Dodge/Render/MenuScreen.hs 72;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f drawGapPlus src/Dodge/Render/Picture.hs 279;" f drawGib src/Dodge/Prop/Draw.hs 39;" f -drawHUD src/Dodge/Render/HUD.hs 47;" f +drawHUD src/Dodge/Render/HUD.hs 48;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 22;" f drawInspectWall src/Dodge/Debug/Picture.hs 244;" f drawInspectWalls src/Dodge/Debug/Picture.hs 232;" f -drawInventory src/Dodge/Render/HUD.hs 54;" f -drawItemChildrenConnect src/Dodge/Render/HUD.hs 325;" f -drawItemConnections src/Dodge/Render/HUD.hs 315;" f +drawInventory src/Dodge/Render/HUD.hs 55;" f +drawItemChildrenConnect src/Dodge/Render/HUD.hs 326;" f +drawItemConnections src/Dodge/Render/HUD.hs 316;" f drawJumpDown src/Dodge/Render/Picture.hs 191;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f drawLampCover src/Dodge/Prop/Draw.hs 55;" f @@ -3419,13 +3418,13 @@ drawListYgapScaleYoff src/Dodge/Render/List.hs 95;" f drawListYoff src/Dodge/Render/List.hs 92;" f drawMachine src/Dodge/Machine/Draw.hs 15;" f drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f -drawMapperInventory src/Dodge/Render/HUD.hs 169;" f +drawMapperInventory src/Dodge/Render/HUD.hs 170;" f drawMenuClick src/Dodge/Render/Picture.hs 163;" f drawMenuCursor src/Dodge/Render/Picture.hs 177;" f drawMenuOrHUD src/Dodge/Render/Picture.hs 64;" f drawMenuScreen src/Dodge/Render/MenuScreen.hs 16;" f drawMouseCursor src/Dodge/Render/Picture.hs 80;" f -drawMouseOver src/Dodge/Render/HUD.hs 104;" f +drawMouseOver src/Dodge/Render/HUD.hs 105;" f drawMousePosition src/Dodge/Debug/Picture.hs 354;" f drawMovingShape src/Dodge/Prop/Draw.hs 81;" f drawMovingShapeCol src/Dodge/Prop/Draw.hs 87;" f @@ -3439,11 +3438,11 @@ drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 26;" f drawPulseBall src/Dodge/Render/ShapePicture.hs 53;" f drawQuitTerminal src/Dodge/Render/Picture.hs 133;" f -drawRBOptions src/Dodge/Render/HUD.hs 247;" f +drawRBOptions src/Dodge/Render/HUD.hs 248;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f drawReturn src/Dodge/Render/Picture.hs 147;" f -drawRootCursor src/Dodge/Render/HUD.hs 71;" f +drawRootCursor src/Dodge/Render/HUD.hs 72;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 35;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 46;" f drawSelect src/Dodge/Render/Picture.hs 256;" f @@ -3458,11 +3457,11 @@ drawShell src/Dodge/Projectile/Draw.hs 22;" f drawShockwave src/Dodge/Shockwave/Draw.hs 6;" f drawSpark src/Dodge/Spark/Draw.hs 7;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 28;" f -drawSubInventory src/Dodge/Render/HUD.hs 159;" f +drawSubInventory src/Dodge/Render/HUD.hs 160;" f drawSwitch src/Dodge/Button/Draw.hs 16;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f -drawTerminalDisplay src/Dodge/Render/HUD.hs 361;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 362;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 55;" f @@ -3481,7 +3480,7 @@ drawWeapon src/Dodge/Creature/Volition.hs 14;" f drawWlIDs src/Dodge/Debug/Picture.hs 372;" f drawZoneCol src/Dodge/Debug/Picture.hs 147;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 284;" f -dropAll src/Dodge/Creature/Update.hs 118;" f +dropAll src/Dodge/Creature/Update.hs 119;" f dropExcept src/Dodge/Creature/Action.hs 167;" f dropInventoryPath src/Dodge/HeldUse.hs 1409;" f dropItem src/Dodge/Creature/Action.hs 174;" f @@ -3526,15 +3525,15 @@ encircleCloseP src/Dodge/Creature/Boid.hs 36;" f encircleDistP src/Dodge/Creature/Boid.hs 22;" f encircleP src/Dodge/Creature/Boid.hs 28;" f endArcPos src/Dodge/Tesla.hs 87;" f -endCombineRegex src/Dodge/Update/Input/InGame.hs 262;" f -endRegex src/Dodge/Update/Input/InGame.hs 253;" f +endCombineRegex src/Dodge/Update/Input/InGame.hs 263;" f +endRegex src/Dodge/Update/Input/InGame.hs 254;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f -enterCombineInv src/Dodge/DisplayInventory.hs 321;" f +enterCombineInv src/Dodge/DisplayInventory.hs 322;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f eqSiteToPositions src/Dodge/Inventory/RBList.hs 80;" f -equipAllocString src/Dodge/Render/HUD.hs 306;" f +equipAllocString src/Dodge/Render/HUD.hs 307;" f equipAttachPos src/Dodge/Item/Draw.hs 33;" f equipBackgroundEffect src/Dodge/Euse.hs 15;" f equipInfo src/Dodge/Item/Info.hs 141;" f @@ -3552,7 +3551,7 @@ errorNormalizeV src/Geometry.hs 55;" f errorPointInPolygon src/Geometry.hs 47;" f evaluateRandPS src/Dodge/Placement/PlaceSpot.hs 154;" f evenOddSplit src/Dodge/Base.hs 160;" f -exitTerminalSubInv src/Dodge/WorldEffect.hs 107;" f +exitTerminalSubInv src/Dodge/WorldEffect.hs 108;" f expandLine src/Dodge/Picture.hs 30;" f expandPolyBy src/Dodge/LevelGen/StaticWalls.hs 91;" f expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f @@ -3576,7 +3575,7 @@ fdiv src/ShortShow.hs 37;" f feet src/Dodge/Creature/Picture.hs 50;" f ffoldM src/Framebuffer/Update.hs 79;" f filter3 src/FoldableHelp.hs 76;" f -filterSectionsPair src/Dodge/DisplayInventory.hs 164;" f +filterSectionsPair src/Dodge/DisplayInventory.hs 165;" f findBlips src/Dodge/RadarSweep.hs 62;" f findBoundDists src/Dodge/Update/Camera.hs 246;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f @@ -3592,7 +3591,7 @@ fireLoudS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 704;" f fireS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 464;" f firstBreather src/Dodge/Room/Breather.hs 9;" f firstTrie src/SimpleTrie.hs 51;" f -firstWorldLoad appDodge/Main.hs 77;" f +firstWorldLoad appDodge/Main.hs 78;" f fixedCoordPictures src/Dodge/Render/Picture.hs 18;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f flFlicker src/Dodge/Flame.hs 38;" f @@ -3623,7 +3622,7 @@ flockPointTarget src/Dodge/Creature/Boid.hs 200;" f flockPointTargetR src/Dodge/Creature/Boid.hs 267;" f flockToPointUsing src/Dodge/Creature/Boid.hs 215;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 228;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 227;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 228;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 121;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f @@ -3688,7 +3687,7 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulHitDams src/Dodge/Bullet.hs 170;" f getBulletType src/Dodge/HeldUse.hs 933;" f -getCloseObj src/Dodge/Update/Input/InGame.hs 528;" f +getCloseObj src/Dodge/Update/Input/InGame.hs 529;" f getCommand src/Dodge/Terminal.hs 58;" f getCommands src/Dodge/Terminal.hs 55;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 46;" f @@ -3707,7 +3706,7 @@ getNodePos src/Dodge/Path.hs 31;" f getPJStabiliser src/Dodge/HeldUse.hs 1288;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 6;" f -getRootItemBounds src/Dodge/Render/HUD.hs 95;" f +getRootItemBounds src/Dodge/Render/HUD.hs 96;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSplitString src/Dodge/Debug/Terminal.hs 126;" f @@ -3893,18 +3892,18 @@ invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invDP src/Dodge/ListDisplayParams.hs 30;" f invDT src/Dodge/Item/Grammar.hs 216;" f invDT' src/Dodge/Item/Grammar.hs 221;" f -invDimColor src/Dodge/DisplayInventory.hs 190;" f -invHead src/Dodge/Render/HUD.hs 401;" f +invDimColor src/Dodge/DisplayInventory.hs 191;" f +invHead src/Dodge/Render/HUD.hs 402;" f invIMDT src/Dodge/Item/Grammar.hs 249;" f invIndents src/Dodge/Item/Grammar.hs 256;" f invItemEffs src/Dodge/Creature/State.hs 62;" f invItemLocUpdate src/Dodge/Creature/State.hs 70;" f invRootMap src/Dodge/Item/Grammar.hs 228;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f -invSetSelection src/Dodge/Inventory.hs 197;" f -invSetSelectionPos src/Dodge/Inventory.hs 205;" f +invSetSelection src/Dodge/Inventory.hs 195;" f +invSetSelectionPos src/Dodge/Inventory.hs 203;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f -invSize src/Dodge/Inventory/CheckSlots.hs 33;" f +invSize src/Dodge/Inventory/CheckSlots.hs 32;" f inventoryX src/Dodge/Creature.hs 113;" f inverseSelNumPos src/Dodge/SelectionSections.hs 228;" f inverseSelSecYint src/Dodge/SelectionSections.hs 201;" f @@ -3921,7 +3920,7 @@ isAnimate src/Dodge/Creature/Test.hs 144;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f isConnected src/Dodge/Inventory/Swap.hs 76;" f isElectrical src/Dodge/Machine/Update.hs 80;" f -isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 188;" f +isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 189;" f isInLnk src/Dodge/PlacementSpot.hs 169;" f isJust' src/MaybeHelp.hs 29;" f isLHS src/Geometry/LHS.hs 8;" f @@ -4072,11 +4071,11 @@ listConfig src/Dodge/Menu.hs 216;" f listControls src/Dodge/Menu.hs 228;" f listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 190;" f -listSelectionColorPicture src/Dodge/DisplayInventory.hs 306;" f +listSelectionColorPicture src/Dodge/DisplayInventory.hs 307;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 390;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 391;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f @@ -4137,7 +4136,7 @@ magV src/Geometry/Vector.hs 171;" f magV3 src/Geometry/Vector3D.hs 78;" f magazineCombinations src/Dodge/Combine/Combinations.hs 43;" f magenta src/Color.hs 19;" f -main appDodge/Main.hs 37;" f +main appDodge/Main.hs 38;" f main bench/Bench.hs 15;" f main test/Spec.hs 12;" f makeArc src/Picture/Base.hs 157;" f @@ -4196,7 +4195,7 @@ mapper src/Dodge/Item/Scope.hs 70;" f materialColor src/Dodge/Material/Color.hs 8;" f maxAmmo src/Dodge/Item/MaxAmmo.hs 6;" f maxDamageType src/Dodge/Damage.hs 58;" f -maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f +maxInvSlots src/Dodge/Inventory/CheckSlots.hs 29;" f maxShowX src/Dodge/Combine/Graph.hs 50;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f @@ -4206,7 +4205,7 @@ maybeClearPath src/Dodge/Block.hs 72;" f maybeClearPaths src/Dodge/Block.hs 69;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 549;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 550;" f maybeOpenConsole src/Dodge/Update.hs 131;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f @@ -4291,7 +4290,7 @@ mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 60;" f mouseCursorType src/Dodge/Render/Picture.hs 87;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f moveBullet src/Dodge/Bullet.hs 194;" f -moveCombineSel src/Dodge/Update/Scroll.hs 121;" f +moveCombineSel src/Dodge/Update/Scroll.hs 119;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f movePenBullet src/Dodge/Bullet.hs 200;" f @@ -4383,7 +4382,7 @@ optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 43;" f optionValueOffset src/Dodge/Menu/Option.hs 88;" f optionsOptions src/Dodge/Menu.hs 111;" f optionsToSelections src/Dodge/Menu/Option.hs 50;" f -orRegex src/Dodge/DisplayInventory.hs 82;" f +orRegex src/Dodge/DisplayInventory.hs 83;" f orange src/Color.hs 25;" f orderAround3 src/Geometry/Vector3D.hs 105;" f orderAroundFirst src/Geometry/Polygon.hs 88;" f @@ -4426,7 +4425,7 @@ parseNum src/Dodge/Debug/Terminal.hs 75;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f -pauseGame src/Dodge/Update/Input/InGame.hs 514;" f +pauseGame src/Dodge/Update/Input/InGame.hs 515;" f pauseMenu src/Dodge/Menu.hs 56;" f pauseMenuOptions src/Dodge/Menu.hs 61;" f pauseSound src/Dodge/SoundLogic.hs 42;" f @@ -4485,12 +4484,12 @@ placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 88;" f placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 69;" f placeString src/Dodge/Render/MenuScreen.hs 61;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 167;" f -plainRegex src/Dodge/DisplayInventory.hs 193;" f +plainRegex src/Dodge/DisplayInventory.hs 194;" f playIfFree src/Sound.hs 137;" f playPositionalSoundQueue src/Sound.hs 145;" f playSoundAndUpdate src/Sound.hs 54;" f playSoundQueue src/Sound.hs 132;" f -playSoundUnlessRewinding appDodge/Main.hs 113;" f +playSoundUnlessRewinding appDodge/Main.hs 115;" f plusDecoration src/Dodge/Placement/TopDecoration.hs 35;" f pmLineLoop src/Shader/Data.hs 107;" f pmLineStrip src/Shader/Data.hs 107;" f @@ -4520,7 +4519,7 @@ pointerToItemID src/Dodge/Item/Location.hs 42;" f pointerYourRootItem src/Dodge/Item/Location.hs 33;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f pointsToPoly src/Geometry/ConvexPoly.hs 39;" f -poisonSPic src/Dodge/Creature/Update.hs 114;" f +poisonSPic src/Dodge/Creature/Update.hs 115;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poke34 src/Shader/Poke.hs 506;" f pokeArrayOff src/Shader/Poke.hs 517;" f @@ -4736,8 +4735,8 @@ reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 16;" f reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 69;" f refract src/Dodge/Item/Weapon/LaserPath.hs 43;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 38;" f -regexCombs src/Dodge/DisplayInventory.hs 72;" f -regexList src/Dodge/DisplayInventory.hs 312;" f +regexCombs src/Dodge/DisplayInventory.hs 73;" f +regexList src/Dodge/DisplayInventory.hs 313;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 602;" f reloadLevelStart src/Dodge/Save.hs 71;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 600;" f @@ -4763,7 +4762,7 @@ replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 47;" f resetPLUse src/Dodge/PlacementSpot.hs 99;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 24;" f -resetTerminal src/Dodge/WorldEffect.hs 101;" f +resetTerminal src/Dodge/WorldEffect.hs 102;" f resizeFBOTO src/Framebuffer/Update.hs 203;" f resizeFBOTO3 src/Framebuffer/Update.hs 175;" f resizeRBO src/Framebuffer/Update.hs 87;" f @@ -4800,7 +4799,7 @@ rightPadNoSquash src/Padding.hs 23;" f rlPosDir src/Dodge/RoomLink.hs 94;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 409;" f rmInLinks src/Dodge/RoomLink.hs 138;" f -rmInvItem src/Dodge/Inventory.hs 78;" f +rmInvItem src/Dodge/Inventory.hs 76;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmOutLinks src/Dodge/RoomLink.hs 138;" f roomC src/Dodge/Room/Room.hs 38;" f @@ -4886,16 +4885,16 @@ scaleSH src/Shape.hs 269;" f scalp src/Dodge/Creature/Picture.hs 92;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 96;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f -scorchSPic src/Dodge/Creature/Update.hs 111;" f +scorchSPic src/Dodge/Creature/Update.hs 112;" f screenBox src/Dodge/Base/Window.hs 53;" f screenPolygon src/Dodge/Base/Window.hs 17;" f screenPolygonBord src/Dodge/Base/Window.hs 27;" f screenPosAbs src/Dodge/ScreenPos.hs 15;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 51;" f -scrollAugInvSel src/Dodge/Inventory.hs 216;" f -scrollAugNextInSection src/Dodge/Inventory.hs 229;" f +scrollAugInvSel src/Dodge/Inventory.hs 214;" f +scrollAugNextInSection src/Dodge/Inventory.hs 227;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f -scrollRBOption src/Dodge/Update/Scroll.hs 219;" f +scrollRBOption src/Dodge/Update/Scroll.hs 217;" f scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f scrollTimeBack src/Dodge/Update.hs 218;" f scrollTimeForward src/Dodge/Update.hs 241;" f @@ -4910,16 +4909,16 @@ seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 502;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 718;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 205;" f secondColumnParams src/Dodge/ListDisplayParams.hs 43;" f -sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f -sectionsSizes src/Dodge/DisplayInventory.hs 205;" f +sectionsDesiredLines src/Dodge/DisplayInventory.hs 203;" f +sectionsSizes src/Dodge/DisplayInventory.hs 206;" f seedStartMenu src/Dodge/Menu.hs 82;" f seedStartOptions src/Dodge/Menu.hs 85;" f segOnCirc src/Geometry.hs 114;" f -selNumPos src/Dodge/Render/HUD.hs 450;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 473;" f +selNumPos src/Dodge/Render/HUD.hs 451;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 474;" f selSecDrawCursor src/Dodge/Render/List.hs 126;" f selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f -selSecSelCol src/Dodge/Render/HUD.hs 504;" f +selSecSelCol src/Dodge/Render/HUD.hs 505;" f selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 55;" f @@ -4946,7 +4945,7 @@ setFallback src/Dodge/PlacementSpot.hs 132;" f setInLinks src/Dodge/RoomLink.hs 51;" f setInLinksByType src/Dodge/RoomLink.hs 54;" f setInLinksPD src/Dodge/RoomLink.hs 74;" f -setInvPosFromSS src/Dodge/Inventory/Location.hs 87;" f +setInvPosFromSS src/Dodge/Inventory/Location.hs 95;" f setLayer src/Picture/Base.hs 139;" f setLinkType src/Dodge/RoomLink.hs 60;" f setLinkTypePD src/Dodge/RoomLink.hs 67;" f @@ -4957,7 +4956,7 @@ setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f -setSelWhileDragging src/Dodge/Update/Input/InGame.hs 326;" f +setSelWhileDragging src/Dodge/Update/Input/InGame.hs 327;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5011,9 +5010,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 78;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 84;" f shiftInBy src/Dodge/PlacementSpot.hs 251;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 300;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 339;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 333;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 301;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 340;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 334;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f shiftPathBy src/Dodge/Room/Link.hs 92;" f @@ -5113,7 +5112,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f -spaceAction src/Dodge/Update/Input/InGame.hs 518;" f +spaceAction src/Dodge/Update/Input/InGame.hs 519;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f @@ -5169,7 +5168,7 @@ stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 310;" f startCr src/Dodge/Creature.hs 92;" f startCrafts src/Dodge/Room/Start.hs 93;" f -startDrag src/Dodge/Update/Input/InGame.hs 271;" f +startDrag src/Dodge/Update/Input/InGame.hs 272;" f startInvList src/Dodge/Creature.hs 107;" f startInventory src/Dodge/Creature.hs 110;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5202,7 +5201,7 @@ swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 56;" f swapInOutLinks src/Dodge/RoomLink.hs 80;" f swapIndices src/ListHelp.hs 50;" f swapInvItems src/Dodge/Inventory/Swap.hs 21;" f -swapItemWith src/Dodge/Inventory.hs 174;" f +swapItemWith src/Dodge/Inventory.hs 172;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 172;" f switchDoor src/Dodge/Placement/Instance/Door.hs 96;" f @@ -5247,7 +5246,7 @@ terminalReturnEffect src/Dodge/Terminal.hs 191;" f terminalSPic src/Dodge/Machine/Draw.hs 27;" f terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f terminalShape src/Dodge/Machine/Draw.hs 30;" f -terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f +terminalWheelEvent src/Dodge/Update/Scroll.hs 129;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 421;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f @@ -5267,9 +5266,9 @@ textVMirror src/Picture/Base.hs 216;" f tflat2 src/Picture/Data.hs 60;" f tflat3 src/Picture/Data.hs 64;" f tflat4 src/Picture/Data.hs 68;" f -theCleanup appDodge/Main.hs 74;" f +theCleanup appDodge/Main.hs 75;" f theColumns src/Dodge/Tree/Shift.hs 139;" f -theUpdateStep appDodge/Main.hs 105;" f +theUpdateStep appDodge/Main.hs 107;" f thickArc src/Picture/Base.hs 298;" f thickCircle src/Picture/Base.hs 272;" f thickLine src/Picture/Base.hs 244;" f @@ -5312,12 +5311,12 @@ toTopLeft src/Dodge/Render/List.hs 219;" f toV2 src/Geometry/Data.hs 54;" f toV3 src/Geometry/Data.hs 57;" f toV4 src/Geometry/Data.hs 60;" f -toggleCombineInv src/Dodge/DisplayInventory.hs 315;" f +toggleCombineInv src/Dodge/DisplayInventory.hs 316;" f toggleCommands src/Dodge/Terminal.hs 100;" f -toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 65;" f -toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 106;" f +toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 66;" f +toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 108;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 111;" f +toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 113;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 664;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 606;" f @@ -5329,7 +5328,7 @@ topTestPart src/Dodge/TestString.hs 70;" f torch src/Dodge/Item/Held/Utility.hs 23;" f torchShape src/Dodge/Item/Draw/SPic.hs 290;" f torqueAmount src/Dodge/HeldUse.hs 573;" f -torqueCr src/Dodge/WorldEffect.hs 70;" f +torqueCr src/Dodge/WorldEffect.hs 71;" f torso src/Dodge/Creature/Picture.hs 101;" f tractCr src/Dodge/TractorBeam/Update.hs 27;" f tractFlIt src/Dodge/TractorBeam/Update.hs 22;" f @@ -5385,14 +5384,14 @@ truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f tryAttachItems src/Dodge/Item/Grammar.hs 34;" f tryClickUse src/Dodge/Creature/YourControl.hs 225;" f -tryCombine src/Dodge/Update/Input/InGame.hs 539;" f +tryCombine src/Dodge/Update/Input/InGame.hs 540;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 150;" f -tryDropSelected src/Dodge/Update/Input/InGame.hs 122;" f +tryDropSelected src/Dodge/Update/Input/InGame.hs 123;" f tryGetChannel src/Sound.hs 97;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f -tryGetRootItemInvID src/Dodge/Inventory/Location.hs 33;" f +tryGetRootItemInvID src/Dodge/Inventory/Location.hs 35;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 38;" f -tryPickupSelected src/Dodge/Update/Input/InGame.hs 129;" f +tryPickupSelected src/Dodge/Update/Input/InGame.hs 130;" f tryPlay src/Sound.hs 84;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 23;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 51;" f @@ -5443,7 +5442,7 @@ unusedSpotNearInLink src/Dodge/PlacementSpot.hs 201;" f updateAimPos src/Dodge/Update.hs 321;" f updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla.hs 44;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 471;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 472;" f updateBarrel src/Dodge/Barreloid.hs 41;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f @@ -5452,20 +5451,20 @@ updateBulVel src/Dodge/Bullet.hs 56;" f updateBullet src/Dodge/Bullet.hs 21;" f updateBullets src/Dodge/Update.hs 582;" f updateCamera src/Dodge/Update/Camera.hs 30;" f -updateCloseObjects src/Dodge/Inventory.hs 124;" f +updateCloseObjects src/Dodge/Inventory.hs 122;" f updateCloud src/Dodge/Update.hs 820;" f updateClouds src/Dodge/Update.hs 688;" f -updateCombinePositioning src/Dodge/DisplayInventory.hs 38;" f -updateCombineSections src/Dodge/DisplayInventory.hs 45;" f -updateCreature src/Dodge/Creature/Update.hs 30;" f -updateCreature' src/Dodge/Creature/Update.hs 38;" f +updateCombinePositioning src/Dodge/DisplayInventory.hs 39;" f +updateCombineSections src/Dodge/DisplayInventory.hs 46;" f +updateCreature src/Dodge/Creature/Update.hs 31;" f +updateCreature' src/Dodge/Creature/Update.hs 39;" f updateCreatureGroups src/Dodge/Update.hs 554;" f updateCreatureSoundPositions src/Dodge/Update.hs 530;" f updateDebris src/Dodge/Update.hs 589;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebugMessageOffset src/Dodge/Update.hs 100;" f updateDelayedEvents src/Dodge/Update.hs 912;" f -updateDisplaySections src/Dodge/DisplayInventory.hs 117;" f +updateDisplaySections src/Dodge/DisplayInventory.hs 118;" f updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 575;" f updateDoor src/Dodge/Update.hs 326;" f @@ -5473,49 +5472,49 @@ updateDust src/Dodge/Update.hs 844;" f updateDusts src/Dodge/Update.hs 691;" f updateEnergyBall src/Dodge/EnergyBall.hs 31;" f updateEnergyBalls src/Dodge/Update.hs 679;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 496;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 497;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 19;" f updateFlames src/Dodge/Update.hs 676;" f updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 356;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 349;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 357;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 350;" f updateGusts src/Dodge/Update.hs 803;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f updateIMl src/Dodge/Update.hs 544;" f updateIMl' src/Dodge/Update.hs 549;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 418;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 419;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f -updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f +updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f updateItemTargeting src/Dodge/Creature/State.hs 258;" f -updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 387;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 412;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 374;" f -updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 396;" f +updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 388;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 413;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 375;" f +updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 397;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 11;" f updateLasers src/Dodge/Update.hs 450;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 431;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 432;" f updateMachine src/Dodge/Machine/Update.hs 20;" f updateMagnets src/Dodge/Update.hs 329;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 194;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 195;" f updateMouseContext src/Dodge/Update.hs 342;" f updateMouseContextGame src/Dodge/Update.hs 347;" f -updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 98;" f -updateMouseInGame src/Dodge/Update/Input/InGame.hs 88;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 155;" f +updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 99;" f +updateMouseInGame src/Dodge/Update/Input/InGame.hs 89;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 156;" f updateObjCatMaybes src/Dodge/Update.hs 566;" f updateObjMapMaybe src/Dodge/Update.hs 559;" f updatePastWorlds src/Dodge/Update.hs 438;" f updatePreload src/Preload/Update.hs 20;" f updateProjectile src/Dodge/Projectile/Update.hs 27;" f updateProp src/Dodge/Prop/Update.hs 11;" f -updatePulse src/Dodge/Creature/Update.hs 135;" f +updatePulse src/Dodge/Creature/Update.hs 136;" f updatePulseBall src/Dodge/Update.hs 464;" f updatePulseLaser src/Dodge/Update.hs 629;" f updatePulseLasers src/Dodge/Update.hs 459;" f @@ -5525,13 +5524,13 @@ updateRadarBlips src/Dodge/Update.hs 578;" f updateRadarSweep src/Dodge/RadarSweep.hs 39;" f updateRadarSweeps src/Dodge/Update.hs 682;" f updateRandNode src/TreeHelp.hs 108;" f -updateRenderSplit appDodge/Main.hs 108;" f +updateRenderSplit appDodge/Main.hs 110;" f updateRightParentSF src/Dodge/Item/Grammar.hs 181;" f -updateRootItemID src/Dodge/Inventory/Location.hs 39;" f -updateScopeZoom src/Dodge/Update/Scroll.hs 78;" f +updateRootItemID src/Dodge/Inventory/Location.hs 41;" f +updateScopeZoom src/Dodge/Update/Scroll.hs 77;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f -updateSection src/Dodge/DisplayInventory.hs 262;" f -updateSectionsPositioning src/Dodge/DisplayInventory.hs 241;" f +updateSection src/Dodge/DisplayInventory.hs 263;" f +updateSectionsPositioning src/Dodge/DisplayInventory.hs 242;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f updateShockwaves src/Dodge/Update.hs 673;" f updateSingleNodes src/TreeHelp.hs 97;" f @@ -5548,7 +5547,7 @@ updateUniverse src/Dodge/Update.hs 79;" f updateUniverseFirst src/Dodge/Update.hs 90;" f updateUniverseLast src/Dodge/Update.hs 141;" f updateUniverseMid src/Dodge/Update.hs 161;" f -updateUseInputInGame src/Dodge/Update/Input/InGame.hs 45;" f +updateUseInputInGame src/Dodge/Update/Input/InGame.hs 46;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 10;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f @@ -5578,8 +5577,8 @@ useBulletPayload src/Dodge/Bullet.hs 114;" f useGasParams src/Dodge/HeldUse.hs 1121;" f useHotkey src/Dodge/Creature/YourControl.hs 71;" f useInventoryPath src/Dodge/HeldUse.hs 1440;" f -useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f -useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 24;" f +useItem src/Dodge/Creature/Impulse/UseItem.hs 19;" f +useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 25;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 259;" f useLoadedAmmo src/Dodge/HeldUse.hs 713;" f useMagShield src/Dodge/Euse.hs 27;" f @@ -5667,7 +5666,7 @@ white src/Color.hs 26;" f whiteNoiseFadeInS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 724;" f whiteNoiseFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 522;" f wiToFloat src/Dodge/Room/Modify/Girder.hs 168;" f -winConfig appDodge/Main.hs 56;" f +winConfig appDodge/Main.hs 57;" f windowLine src/Dodge/Placement/Instance/Wall.hs 48;" f windowLineType src/Dodge/Placement/Instance/Wall.hs 83;" f windowXFloat src/Dodge/Data/Config.hs 61;" f @@ -5711,7 +5710,7 @@ yV2 src/Geometry/Vector.hs 210;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 13;" f youDropItem src/Dodge/Creature/Action.hs 195;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 234;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 235;" f yourControl src/Dodge/Creature/YourControl.hs 29;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 110;" f yourInfo src/Dodge/Creature/Info.hs 10;" f @@ -5751,7 +5750,7 @@ zoneWall src/Dodge/Zoning/Wall.hs 65;" f zonesAroundPoint src/Dodge/Zoning/Base.hs 96;" f zonesExtract src/Dodge/Zoning/Base.hs 56;" f zoomFloatingCamera src/Dodge/Update/Camera.hs 71;" f -zoomInLongGun src/Dodge/Update/Scroll.hs 105;" f -zoomOutLongGun src/Dodge/Update/Scroll.hs 113;" f +zoomInLongGun src/Dodge/Update/Scroll.hs 103;" f +zoomOutLongGun src/Dodge/Update/Scroll.hs 111;" f zoomScope src/Dodge/Item/Scope.hs 33;" f -zoomSpeed src/Dodge/Update/Scroll.hs 102;" f +zoomSpeed src/Dodge/Update/Scroll.hs 100;" f