diff --git a/data/dodge.config.json b/data/dodge.config.json index d3ea16897..9ad16e44f 100644 --- a/data/dodge.config.json +++ b/data/dodge.config.json @@ -14,7 +14,7 @@ "_graphics_num_shadow_casters": "NumShadowCasters20", "_graphics_shadow_rendering": "GeoObjShads", "_graphics_shadow_size": "Typical", - "_graphics_world_resolution": "HalfRes", + "_graphics_world_resolution": "QuarterRes", "_volume_master": 1, "_volume_music": 0, "_volume_sound": 1, diff --git a/ghcidOutput b/ghcidOutput index 17eaaf545..135d43ff0 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1 +1,5 @@ -All good (596 modules, at 11:08:10) +/home/justin/Haskell/loop/src/Dodge/Update.hs:357:15: warning: [-Wunused-matches] + Defined but not used: ‘x’ + | +357 | shiftInvItems x w = w + | ^ diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 1946a4dff..688cd96a2 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -24,8 +24,7 @@ data MouseInventorySelection | MouseInvSelect {_misSelStart :: (Int, Int), _misMaybeEnd :: Maybe (Int, Int)} | MouseInvChosen - { _misChosenStart :: (Int, Int) - , _misChosenEnd :: (Int, Int) + { _misExtra :: Int } data SubInventory diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index ddb708228..f3f8a5b86 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -162,7 +162,7 @@ defaultDisplayInventory :: HUDElement defaultDisplayInventory = DisplayInventory { _subInventory = NoSubInventory - {_nsSelected = MouseInvChosen (0,0) (0,2) + {_nsSelected = NoMouseSel , _nsMouseOver = Just (0,3) } , _diSections = defaultInvSections diff --git a/src/Dodge/Inventory.hs b/src/Dodge/Inventory.hs index 323ee05b9..e29167788 100644 --- a/src/Dodge/Inventory.hs +++ b/src/Dodge/Inventory.hs @@ -5,6 +5,7 @@ module Dodge.Inventory ( destroyInvItem, updateCloseObjects, changeSwapSel, + augInvDirectSelect, scrollAugInvSel, crNumFreeSlots, crInvSize, @@ -14,9 +15,6 @@ module Dodge.Inventory ( swapInvItems, ) where -import NewInt -import Dodge.Inventory.Location -import Dodge.Inventory.RBList import Control.Applicative import Data.Maybe import Dodge.Base @@ -26,19 +24,23 @@ import Dodge.Data.World import Dodge.Euse import Dodge.Inventory.CheckSlots import Dodge.Inventory.CloseObject +import Dodge.Inventory.Location +import Dodge.Inventory.RBList import Dodge.ItEffect import Dodge.SelectionSections import Geometry import qualified IntMapHelp as IM import LensHelp import ListHelp +import NewInt + --import Padding -- TODO check what happens to selection index when dropping non-selected items -- should consider never fully destroying items, but assigning a flag saying how -- they were moved from play -destroyInvItem :: +destroyInvItem :: Int -> -- | Inventory position Int -> @@ -58,31 +60,30 @@ rmInvItem :: Int -> World -> World -rmInvItem cid invid w = w - & doanyitemeffect - & dounequipfunction --the ordering of these is - & pointcid . crInv %~ f -- important - - & removeAnySlotEquipment - & pointcid . crEquipment . each %~ g - & pointcid . crInvEquipped %~ IM.delete invid - & pointcid . crInvEquipped %~ IM.mapKeys g - - & removeanyactivation - & pointcid . crHotkeys . each %~ g - & pointcid . crInvHotkeys %~ IM.delete invid - & pointcid . crInvHotkeys %~ IM.mapKeys g - - & updateselection - & pointcid %~ updateRootItemID - & worldEventFlags . at InventoryChange ?~ () --- & updateCreatureItemLocations cid +rmInvItem cid invid w = + w + & doanyitemeffect + & dounequipfunction --the ordering of these is + & pointcid . crInv %~ f -- important + & removeAnySlotEquipment + & pointcid . crEquipment . each %~ g + & pointcid . crInvEquipped %~ IM.delete invid + & pointcid . crInvEquipped %~ IM.mapKeys g + & removeanyactivation + & pointcid . crHotkeys . each %~ g + & pointcid . crInvHotkeys %~ IM.delete invid + & pointcid . crInvHotkeys %~ IM.mapKeys g + & updateselection + & pointcid %~ updateRootItemID + & worldEventFlags . at InventoryChange ?~ () where + -- & updateCreatureItemLocations cid + pointcid = cWorld . lWorld . creatures . ix cid updateselection | cid == 0 && cr ^? crManipulation . manObject . imSelectedItem == Just invid = - scrollAugInvSel (-1) . scrollAugInvSel 1-- . updateInventorySectionItems + scrollAugInvSel (-1) . scrollAugInvSel 1 -- . updateInventorySectionItems | otherwise = pointcid . crManipulation . manObject . imSelectedItem %~ g @@ -131,12 +132,17 @@ updateCloseObjects w = . filter ((/=) BtNoLabel . _btState) . IM.elems $ w ^. cWorld . lWorld . buttons - currentClose = filt $ map Left (IM.elems $ w ^. cWorld . lWorld . floorItems . unNIntMap) - ++ activeButtons + currentClose = + filt $ + map Left (IM.elems $ w ^. cWorld . lWorld . floorItems . unNIntMap) + ++ activeButtons oldClose = filt $ mapMaybe updatebyid $ w ^. hud . closeObjects oldCloseFiltered = intersectBy closeObjEq oldClose currentClose - updatebyid (Left flid) = fmap Left $ w ^? cWorld . lWorld . floorItems . unNIntMap - . ix (_unNInt $ _flItID flid) + updatebyid (Left flid) = + fmap Left $ + w + ^? cWorld . lWorld . floorItems . unNIntMap + . ix (_unNInt $ _flItID flid) updatebyid (Right btid) = fmap Right $ w ^? cWorld . lWorld . buttons . ix (_btID btid) changeSwapSel :: Int -> World -> World @@ -173,17 +179,17 @@ swapInvItems f i w = fromMaybe w $ do ss <- w ^? hud . hudElement . diSections . sssSections . ix 0 . ssItems k <- f i ss let updateselection = case w ^? hud . hudElement . diSections . sssExtra . sssSelPos . _Just of - Just (0,j) | j == k -> hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ i - Just (0,j) | j == i -> hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ k + Just (0, j) | j == k -> hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ i + Just (0, j) | j == i -> hud . hudElement . diSections . sssExtra . sssSelPos . _Just . _2 .~ k _ -> id return $ w & cWorld . lWorld . creatures . ix 0 %~ updatecreature k & updateselection & worldEventFlags . at InventoryChange ?~ () - & cWorld . lWorld %~ crUpdateItemLocations 0 - & setInvPosFromSS - & cWorld . lWorld %~ crUpdateItemLocations 0 -- the double application is inefficient, but necessary without further changes - -- a rethink is maybe in order + & cWorld . lWorld %~ crUpdateItemLocations 0 + & setInvPosFromSS + & cWorld . lWorld %~ crUpdateItemLocations 0 -- the double application is inefficient, but necessary without further changes + -- a rethink is maybe in order where updatecreature k = (crInv %~ IM.safeSwapKeys i k) @@ -208,6 +214,14 @@ changeSwapWith f w = case w ^? hud . hudElement . diSections . sssExtra . sssSel Just (3, i) -> w & changeSwapClose f i _ -> w +augInvDirectSelect :: (Int, Int) -> World -> World +augInvDirectSelect (i, j) w = + w + & hud . hudElement . diSections . sssExtra . sssSelPos .~ Just (i, j) + & worldEventFlags . at InventoryChange ?~ () + & setInvPosFromSS + & cWorld . lWorld %~ crUpdateItemLocations 0 + scrollAugInvSel :: Int -> World -> World scrollAugInvSel yi w | yi == 0 = w @@ -217,7 +231,6 @@ scrollAugInvSel yi w & setInvPosFromSS & cWorld . lWorld %~ crUpdateItemLocations 0 - selectedCloseObject :: World -> Maybe (Either FloorItem Button) selectedCloseObject w = do i <- diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index abf4c586d..25c4676b3 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -35,8 +35,7 @@ import Dodge.SelectionSections.Draw import Geometry import qualified IntMapHelp as IM import Justify ---import ListHelp ---import Padding +import Data.List (sort) import Picture import SDL (MouseButton (..)) @@ -64,6 +63,7 @@ drawInventory sss w cfig = <> translateScreenPos cfig (ldp ^. ldpPos) (drawDIMouseOver w) <> drawDISelections w cfig + <> drawDISelections' w cfig where ldp = invDisplayParams w iextra = fromMaybe mempty $ do @@ -83,7 +83,13 @@ drawDIMouseOver w = fromMaybe mempty $ do getMouseInvSel :: World -> Maybe ((Int,Int),(Int,Int)) getMouseInvSel w = case w ^? hud . hudElement . subInventory . nsSelected of Just (MouseInvSelect s (Just e)) -> Just (s,e) - Just (MouseInvChosen s e) -> Just (s,e) + _ -> Nothing + +getMouseInvSel' :: World -> Maybe ((Int,Int),(Int,Int)) +getMouseInvSel' w = case w ^? hud . hudElement . subInventory . nsSelected of + Just (MouseInvChosen x) -> do + (i,j) <- w ^? hud . hudElement . diSections . sssExtra . sssSelPos . _Just + return ((i,j),(i,j+x)) _ -> Nothing drawDISelections :: World -> Configuration -> Picture @@ -93,7 +99,16 @@ drawDISelections w cfig = fromMaybe mempty $ do let idp = invDisplayParams w tp <- selNumPosCardinal NorthWest8 cfig idp sss i j bp <- selNumPosCardinal SouthWest8 cfig idp sss a b - return . color red $ line [tp,bp] + return . color red . line $ sort [tp,bp] + +drawDISelections' :: World -> Configuration -> Picture +drawDISelections' w cfig = fromMaybe mempty $ do + ((i,j),(a,b)) <- getMouseInvSel' w + sss <- w ^? hud . hudElement . diSections + let idp = invDisplayParams w + tp <- selNumPosCardinal NorthEast8 cfig idp sss i j + bp <- selNumPosCardinal SouthEast8 cfig idp sss a b + return . color green . line $ sort [tp,bp] drawSubInventory :: SubInventory -> Configuration -> World -> Picture diff --git a/src/Dodge/SelectionSections.hs b/src/Dodge/SelectionSections.hs index 3033c8749..91930afa2 100644 --- a/src/Dodge/SelectionSections.hs +++ b/src/Dodge/SelectionSections.hs @@ -41,11 +41,12 @@ ssScrollUsing :: SelectionSections a ssScrollUsing g sss = sss & sssExtra . sssSelPos - .~ fmap f (ssScrollUsing' g (sss & sssSections %~ fmap (ssItems %~ IM.filter _siIsSelectable))) + .~ fmap f (ssScrollSelectable g + (sss & sssSections %~ fmap (ssItems %~ IM.filter _siIsSelectable))) where f (i, j, _) = (i, j) -ssScrollUsing' :: +ssScrollSelectable :: ( Int -> Int -> SelectionSections a -> @@ -53,7 +54,7 @@ ssScrollUsing' :: ) -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) -ssScrollUsing' f sss = l <|> ssLookupMin sss +ssScrollSelectable f sss = l <|> ssLookupMin sss where l = do (i, j) <- sss ^? sssExtra . sssSelPos . _Just @@ -188,6 +189,7 @@ inverseSelNumPos :: inverseSelNumPos cfig ldp sss (V2 x y) = inverseSelSecYintXPosCheck cfig ldp x (posSelSecYint cfig ldp y) sss + inverseSelBoundaryUp :: Configuration -> ListDisplayParams -> diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index 1e88faad6..a678c8005 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -305,21 +305,21 @@ updateMouseInventorySelection' sss cfig w | leftclickstart = case msel of Nothing -> fromMaybe w $ do ysel <- mysel - return $ w & hud . hudElement . subInventory . nsSelected .~ MouseInvSelect ysel Nothing - Just p -> w & hud . hudElement . subInventory . nsSelected %~ startdrag p + return $ w & hud . hudElement . subInventory . nsSelected + .~ MouseInvSelect ysel Nothing + Just p -> startDrag p w | leftclickheld = case w ^? hud . hudElement . subInventory . nsSelected of Just MouseInvSelect{} -> - w - & hud . hudElement . subInventory . nsSelected . misMaybeEnd .~ msel - Just (MouseInvChosen ssel esel) - | maybe False (< ssel) $ inverseSelBoundaryUp cfig ldp sss mpos -> - w - & shiftInvItemsUp ssel esel (inverseSelBoundaryUp cfig ldp sss mpos) - Just (MouseInvChosen ssel esel) - | maybe False (> esel) $ inverseSelBoundaryDown cfig ldp sss mpos -> - w - & shiftInvItemsDown ssel esel (inverseSelBoundaryDown cfig ldp sss mpos) - Just (MouseInvChosen{}) -> w + w & hud . hudElement . subInventory . nsSelected . misMaybeEnd .~ msel + Just (MouseInvChosen x) -> shiftInvItems x w +-- | maybe False (< ssel) $ inverseSelBoundaryUp cfig ldp sss mpos -> +-- w +-- & shiftInvItemsUp ssel esel (inverseSelBoundaryUp cfig ldp sss mpos) +-- Just (MouseInvChosen ssel esel) +-- | maybe False (> esel) $ inverseSelBoundaryDown cfig ldp sss mpos -> +-- w +-- & shiftInvItemsDown ssel esel (inverseSelBoundaryDown cfig ldp sss mpos) +-- Just (MouseInvChosen{}) -> w _ -> w & hud . hudElement . subInventory . nsSelected .~ NoMouseSel @@ -327,16 +327,13 @@ updateMouseInventorySelection' sss cfig w Just (MouseInvSelect ssel (Just esel)) -> w & hud . hudElement . subInventory . nsSelected - .~ MouseInvChosen - (min ssel esel) - (max ssel esel) + .~ MouseInvChosen (max (snd ssel) (snd esel) - min (snd ssel) (snd esel)) + & augInvDirectSelect (min ssel esel) Just (MouseInvSelect _ Nothing) -> w & hud . hudElement . subInventory . nsSelected .~ NoMouseSel _ -> w where - startdrag p (MouseInvChosen s e) | s <= p && p <= e = MouseInvChosen s e - startdrag p _ = MouseInvChosen p p leftclickstart = w ^? input . mouseButtons . ix ButtonLeft == Just 0 && nobuttonright leftclickheld = ButtonLeft `M.member` (w ^. input . mouseButtons) && nobuttonright nobuttonright = not $ ButtonRight `M.member` (w ^. input . mouseButtons) @@ -345,27 +342,41 @@ updateMouseInventorySelection' sss cfig w msel = inverseSelNumPos cfig ldp sss (w ^. input . mousePos) mysel = inverseSelSecYint (posSelSecYint cfig ldp (mpos ^. _y)) sss -shiftInvItemsUp :: (Int, Int) -> (Int, Int) -> Maybe (Int, Int) -> World -> World -shiftInvItemsUp (_, i) (_, j) Just{} w = - w - & flip (foldl' f) [i .. j] - & hud . hudElement . subInventory . nsSelected . misChosenStart . _2 -~ 1 - & hud . hudElement . subInventory . nsSelected . misChosenEnd . _2 -~ 1 +startDrag :: (Int,Int) -> World -> World +startDrag (a,b) w = fromMaybe (augInvDirectSelect (a,b) $ setmichosen 0 w) $ do + (i,j) <- w ^? hud . hudElement . diSections . sssExtra . sssSelPos . _Just + x <- w ^? hud . hudElement . subInventory . nsSelected . misExtra + guard $ i == a && b >= j && b <= j + x + return w where - f w' i' = swapInvItems g i' w' - g i' m = fmap fst $ IM.cycleLT i' m -shiftInvItemsUp _ _ Nothing w = w + setmichosen x = hud . hudElement . subInventory . nsSelected .~ MouseInvChosen x + +-- & hud . hudElement . subInventory . nsSelected %~ startdrag p -shiftInvItemsDown :: (Int, Int) -> (Int, Int) -> Maybe (Int, Int) -> World -> World -shiftInvItemsDown (_, i) (_, j) Just{} w = - w - & flip (foldl' f) (reverse [i .. j]) - & hud . hudElement . subInventory . nsSelected . misChosenStart . _2 +~ 1 - & hud . hudElement . subInventory . nsSelected . misChosenEnd . _2 +~ 1 - where - f w' i' = swapInvItems g i' w' - g i' m = fmap fst $ IM.cycleGT i' m -shiftInvItemsDown _ _ Nothing w = w +shiftInvItems :: Int -> World -> World +shiftInvItems x w = w + +--shiftInvItemsUp :: (Int, Int) -> (Int, Int) -> Maybe (Int, Int) -> World -> World +--shiftInvItemsUp (_, i) (_, j) Just{} w = +-- w +-- & flip (foldl' f) [i .. j] +-- & hud . hudElement . subInventory . nsSelected . misChosenStart . _2 -~ 1 +-- & hud . hudElement . subInventory . nsSelected . misChosenEnd . _2 -~ 1 +-- where +-- f w' i' = swapInvItems g i' w' +-- g i' m = fmap fst $ IM.cycleLT i' m +--shiftInvItemsUp _ _ Nothing w = w +-- +--shiftInvItemsDown :: (Int, Int) -> (Int, Int) -> Maybe (Int, Int) -> World -> World +--shiftInvItemsDown (_, i) (_, j) Just{} w = +-- w +-- & flip (foldl' f) (reverse [i .. j]) +-- & hud . hudElement . subInventory . nsSelected . misChosenStart . _2 +~ 1 +-- & hud . hudElement . subInventory . nsSelected . misChosenEnd . _2 +~ 1 +-- where +-- f w' i' = swapInvItems g i' w' +-- g i' m = fmap fst $ IM.cycleGT i' m +--shiftInvItemsDown _ _ Nothing w = w updateMouseOverInventory :: Configuration -> World -> World updateMouseOverInventory cfig w = fromMaybe w $ do diff --git a/tags b/tags index e838a6e3f..0cc2fd61e 100644 --- a/tags +++ b/tags @@ -333,7 +333,7 @@ Combinations src/Dodge/Combine/Combinations.hs 3;" m Combine src/Dodge/Combine.hs 2;" m Combine src/Dodge/Data/Combine.hs 2;" m Combine src/Dodge/Data/Item/Combine.hs 6;" m -CombineInventory src/Dodge/Data/HUD.hs 37;" C +CombineInventory src/Dodge/Data/HUD.hs 36;" C CombineInventoryChange src/Dodge/Data/World.hs 34;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m @@ -513,7 +513,7 @@ Display src/Dodge/Item/Display.hs 1;" m DisplayCarte src/Dodge/Data/HUD.hs 20;" C DisplayInventory src/Dodge/Data/HUD.hs 16;" C DisplayInventory src/Dodge/DisplayInventory.hs 5;" m -DisplayTerminal src/Dodge/Data/HUD.hs 39;" C +DisplayTerminal src/Dodge/Data/HUD.hs 38;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m Distortion src/Dodge/Distortion.hs 1;" m @@ -658,7 +658,7 @@ Euse src/Dodge/Data/Item/HeldUse.hs 20;" t Euse src/Dodge/Euse.hs 1;" m Event src/Dodge/Button/Event.hs 1;" m Event src/Dodge/Event.hs 14;" m -ExamineInventory src/Dodge/Data/HUD.hs 36;" C +ExamineInventory src/Dodge/Data/HUD.hs 35;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 36;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m @@ -816,7 +816,7 @@ HELD src/Dodge/Data/Item/Combine.hs 16;" C HELDDETECTOR src/Dodge/Data/Item/Combine.hs 162;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C HOSE src/Dodge/Data/Item/Combine.hs 32;" C -HUD src/Dodge/Data/HUD.hs 43;" t +HUD src/Dodge/Data/HUD.hs 42;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m HUDElement src/Dodge/Data/HUD.hs 15;" t @@ -1072,7 +1072,7 @@ Location src/Dodge/Item/Location.hs 1;" m LocationLDT src/Dodge/Data/DoubleTree.hs 62;" t Lock src/Dodge/Inventory/Lock.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m -LockedInventory src/Dodge/Data/HUD.hs 38;" C +LockedInventory src/Dodge/Data/HUD.hs 37;" C LoneWolf src/Dodge/Data/Creature/State.hs 46;" C LongAI src/Dodge/Data/Creature/Misc.hs 60;" C LongDoor src/Dodge/Room/LongDoor.hs 2;" m @@ -1264,7 +1264,7 @@ NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C NoShadowFidelity src/Shape/Data.hs 25;" C NoShadows src/Dodge/Data/Config.hs 101;" C -NoSubInventory src/Dodge/Data/HUD.hs 32;" C +NoSubInventory src/Dodge/Data/HUD.hs 31;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 24;" C Noclip src/Dodge/Data/Config.hs 70;" C NodeMTree src/Dodge/Tree/Compose/Data.hs 9;" C @@ -1809,7 +1809,7 @@ Strategy src/Dodge/Creature/Strategy.hs 1;" m StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C StrictHelp src/StrictHelp.hs 1;" m StringHelp src/StringHelp.hs 1;" m -SubInventory src/Dodge/Data/HUD.hs 31;" t +SubInventory src/Dodge/Data/HUD.hs 30;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -2274,15 +2274,15 @@ _camViewDistance src/Dodge/Data/Camera.hs 30;" f _camViewFrom src/Dodge/Data/Camera.hs 29;" f _camZoom src/Dodge/Data/Camera.hs 26;" f _carriage src/Dodge/Data/Creature/Stance.hs 14;" f -_carteCenter src/Dodge/Data/HUD.hs 45;" f -_carteRot src/Dodge/Data/HUD.hs 47;" f -_carteZoom src/Dodge/Data/HUD.hs 46;" f +_carteCenter src/Dodge/Data/HUD.hs 44;" f +_carteRot src/Dodge/Data/HUD.hs 46;" f +_carteZoom src/Dodge/Data/HUD.hs 45;" f _ceSideEffect src/Dodge/Data/Universe.hs 62;" f _ceString src/Dodge/Data/Universe.hs 63;" f _ciInfo src/Dodge/Data/Combine.hs 8;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciSections src/Dodge/Data/HUD.hs 37;" f +_ciSections src/Dodge/Data/HUD.hs 36;" f _cigType src/Dodge/Data/Camera.hs 19;" f _clAlt src/Dodge/Data/Cloud.hs 23;" f _clPict src/Dodge/Data/Cloud.hs 21;" f @@ -2306,7 +2306,7 @@ _cldtUp src/Dodge/Data/DoubleTree.hs 46;" f _cldtUp src/Dodge/Data/DoubleTree.hs 54;" f _clickPos src/Dodge/Data/Input.hs 26;" f _clickWorldPos src/Dodge/Data/Input.hs 28;" f -_closeObjects src/Dodge/Data/HUD.hs 48;" f +_closeObjects src/Dodge/Data/HUD.hs 47;" f _cloudEBO src/Data/Preload/Render.hs 49;" f _cloudShader src/Data/Preload/Render.hs 48;" f _cloudVBO src/Data/Preload/Render.hs 47;" f @@ -2585,7 +2585,7 @@ _heldPos src/Dodge/Data/Input.hs 27;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 42;" f _heldWorldPos src/Dodge/Data/Input.hs 29;" f _hud src/Dodge/Data/World.hs 47;" f -_hudElement src/Dodge/Data/HUD.hs 44;" f +_hudElement src/Dodge/Data/HUD.hs 43;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" f _iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 22;" f _iaMax src/Dodge/Data/Item/Use/Consumption.hs 21;" f @@ -2739,8 +2739,7 @@ _mgField src/Dodge/Data/Magnet.hs 25;" f _mgID src/Dodge/Data/Magnet.hs 22;" f _mgPos src/Dodge/Data/Magnet.hs 24;" f _mgUpdate src/Dodge/Data/Magnet.hs 23;" f -_misChosenEnd src/Dodge/Data/HUD.hs 28;" f -_misChosenStart src/Dodge/Data/HUD.hs 27;" f +_misExtra src/Dodge/Data/HUD.hs 27;" f _misMaybeEnd src/Dodge/Data/HUD.hs 25;" f _misSelStart src/Dodge/Data/HUD.hs 25;" f _moEff src/Dodge/Data/Universe.hs 101;" f @@ -2774,8 +2773,8 @@ _newArcStep src/Dodge/Data/Item/Params.hs 25;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodeTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f -_nsMouseOver src/Dodge/Data/HUD.hs 34;" f -_nsSelected src/Dodge/Data/HUD.hs 33;" f +_nsMouseOver src/Dodge/Data/HUD.hs 33;" f +_nsSelected src/Dodge/Data/HUD.hs 32;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 32;" f @@ -3103,7 +3102,7 @@ _tcEffect src/Dodge/Data/Terminal.hs 118;" f _tcHelp src/Dodge/Data/Terminal.hs 117;" f _tcString src/Dodge/Data/Terminal.hs 115;" f _tempLightSources src/Dodge/Data/LWorld.hs 138;" f -_termID src/Dodge/Data/HUD.hs 39;" f +_termID src/Dodge/Data/HUD.hs 38;" f _terminals src/Dodge/Data/LWorld.hs 123;" f _teslaArcs src/Dodge/Data/LWorld.hs 113;" f _testFloat src/Dodge/Data/World.hs 45;" f @@ -3284,7 +3283,7 @@ aShape src/Dodge/Placement/Instance/LightSource.hs 108;" f aSound src/Dodge/SoundLogic.hs 68;" f aStaticBall src/Dodge/WorldEvent/SpawnParticle.hs 41;" f aTeslaArcAt src/Dodge/Tesla/Arc.hs 20;" f -aTreeStrut src/Dodge/Tree/GenerateStructure.hs 38;" f +aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f accessTerminal src/Dodge/WorldEffect.hs 54;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 24;" f addArmour src/Dodge/Creature.hs 83;" f @@ -3326,7 +3325,7 @@ addToTrunk src/TreeHelp.hs 156;" f addWarningTerminal src/Dodge/Room/Warning.hs 37;" f addZ src/Geometry/Vector3D.hs 89;" f adjustIMZone src/Dodge/Base.hs 77;" f -advanceScrollAmount src/Dodge/Update.hs 375;" f +advanceScrollAmount src/Dodge/Update.hs 395;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f aimDelaySweep src/Dodge/Render/ShapePicture.hs 56;" f @@ -3417,6 +3416,7 @@ attachOnward' src/Dodge/Tree/Compose.hs 98;" f attachTree src/Dodge/Tree/Compose.hs 38;" f attentionViewPoint src/Dodge/Creature/ReaderUpdate.hs 66;" f attribSize src/Shader/Compile.hs 306;" f +augInvDirectSelect src/Dodge/Inventory.hs 217;" f augmentedHUD src/Dodge/Item/Scope.hs 49;" f autoAmr src/Dodge/Item/Held/Rod.hs 51;" f autoBS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 350;" f @@ -3552,9 +3552,9 @@ centroidNum src/Geometry/Polygon.hs 133;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainLinkOrientation src/Dodge/Creature/State.hs 183;" f chainPairs src/Geometry.hs 363;" f -changeSwapClose src/Dodge/Inventory.hs 150;" f -changeSwapSel src/Dodge/Inventory.hs 142;" f -changeSwapWith src/Dodge/Inventory.hs 205;" f +changeSwapClose src/Dodge/Inventory.hs 156;" f +changeSwapSel src/Dodge/Inventory.hs 148;" f +changeSwapWith src/Dodge/Inventory.hs 211;" f charToTuple src/Picture/Base.hs 317;" f charToTupleGrad src/Picture/Text.hs 18;" f chargeIfEquipped src/Dodge/ItEffect.hs 54;" f @@ -3565,9 +3565,8 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 69;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 112;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f -checkBlockHP src/Dodge/Block.hs 47;" f checkDeath src/Dodge/Creature/State.hs 75;" f -checkEndGame src/Dodge/Update.hs 657;" f +checkEndGame src/Dodge/Update.hs 682;" f checkErrorGL src/Shader/Compile.hs 255;" f checkFBO src/Framebuffer/Check.hs 6;" f checkGLError src/GLHelp.hs 17;" f @@ -3593,7 +3592,7 @@ circle src/Picture/Base.hs 180;" f circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f circleSolid src/Picture/Base.hs 164;" f circleSolidCol src/Picture/Base.hs 168;" f -clClSpringVel src/Dodge/Update.hs 710;" f +clClSpringVel src/Dodge/Update.hs 735;" f clZoneSize src/Dodge/Zone/Size.hs 3;" f clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f clampPath src/Dodge/Room/Procedural.hs 166;" f @@ -3613,14 +3612,14 @@ clipZoom src/Dodge/Update/Camera.hs 215;" f clockCycle src/Dodge/Clock.hs 9;" f closeObjEq src/Dodge/Inventory/CloseObject.hs 15;" f closeObjPos src/Dodge/Inventory/CloseObject.hs 10;" f -closeObjectInfo src/Dodge/Render/HUD.hs 143;" f +closeObjectInfo src/Dodge/Render/HUD.hs 145;" f closeObjectToSelectionItem src/Dodge/Inventory/SelectionList.hs 54;" f closeObjectToTextPictures src/Dodge/Inventory/SelectionList.hs 69;" f closestCreatureID src/Dodge/Debug.hs 91;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f closestPointOnSeg src/Geometry/Intersect.hs 282;" f -cloudEffect src/Dodge/Update.hs 680;" f +cloudEffect src/Dodge/Update.hs 705;" f cloudPoisonDamage src/Dodge/Update/Cloud.hs 9;" f clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f @@ -3649,7 +3648,7 @@ combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 41;" f combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineFloors src/Dodge/Room/Procedural.hs 172;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 232;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 234;" f combineItemListYouX src/Dodge/Combine.hs 33;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3690,7 +3689,7 @@ crAdd src/Dodge/Room/RezBox.hs 104;" f crAwayFromPost src/Dodge/Creature/Test.hs 77;" f crBlips src/Dodge/RadarSweep.hs 69;" f crCanSeeCr src/Dodge/Creature/Test.hs 48;" f -crCrSpring src/Dodge/Update.hs 728;" f +crCrSpring src/Dodge/Update.hs 753;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 28;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 37;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 51;" f @@ -3710,7 +3709,7 @@ crNearPoint src/Dodge/Creature/Test.hs 135;" f crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 35;" f crOnWall src/Dodge/WallCreatureCollisions.hs 84;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 67;" f -crSpring src/Dodge/Update.hs 723;" f +crSpring src/Dodge/Update.hs 748;" f crStratConMatches src/Dodge/Creature/Test.hs 72;" f crUpdate src/Dodge/Creature/State.hs 62;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 50;" f @@ -3931,16 +3930,16 @@ deleteWallID src/Dodge/Wall/Delete.hs 13;" f deleteWallIDs src/Dodge/Wall/Delete.hs 28;" f denormalEdges src/Polyhedra.hs 136;" f destroyAt src/Dodge/Bullet.hs 201;" f -destroyBlock src/Dodge/Block.hs 52;" f -destroyDoor src/Dodge/Block.hs 80;" f -destroyInvItem src/Dodge/Inventory.hs 41;" f +destroyBlock src/Dodge/Block.hs 56;" f +destroyDoor src/Dodge/Block.hs 85;" f +destroyInvItem src/Dodge/Inventory.hs 43;" f destroyLS src/Dodge/LightSource.hs 91;" f destroyLSFlashAt src/Dodge/LightSource.hs 101;" f destroyMachine src/Dodge/Machine/Destroy.hs 12;" f destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMcType src/Dodge/Machine/Destroy.hs 21;" f -destroyMount src/Dodge/Block.hs 99;" f -destroyMounts src/Dodge/Block.hs 96;" f +destroyMount src/Dodge/Block.hs 104;" f +destroyMounts src/Dodge/Block.hs 101;" f destroyProjectile src/Dodge/Projectile/Update.hs 63;" f detV src/Geometry/Vector.hs 93;" f detectorColor src/Dodge/Item/Draw/SPic.hs 391;" f @@ -3963,8 +3962,8 @@ displayConfig src/Dodge/Menu.hs 196;" f displayControls src/Dodge/Menu.hs 206;" f displayFrameTicks src/Dodge/Render/Picture.hs 33;" f displayFreeSlots src/Dodge/DisplayInventory.hs 144;" f -displayTerminal src/Dodge/Render/HUD.hs 259;" f -displayTerminalLineString src/Dodge/Update.hs 403;" f +displayTerminal src/Dodge/Render/HUD.hs 261;" f +displayTerminalLineString src/Dodge/Update.hs 424;" f dist src/Geometry/Vector.hs 179;" f dist3 src/Geometry/Vector3D.hs 101;" f divTo src/Geometry/Zone.hs 6;" f @@ -4004,7 +4003,7 @@ doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 25;" f doIntImp src/Dodge/CreatureEffect.hs 24;" f doInvEffect src/Dodge/ItEffect.hs 10;" f doItCrWdWd src/Dodge/WorldEffect.hs 49;" f -doItemTimeScroll src/Dodge/Update.hs 186;" f +doItemTimeScroll src/Dodge/Update.hs 185;" f doLoop src/Loop.hs 60;" f doMCrAc src/Dodge/CreatureEffect.hs 57;" f doMP2Ac src/Dodge/CreatureEffect.hs 73;" f @@ -4037,7 +4036,7 @@ doTestDrawing src/Dodge/Render.hs 42;" 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 74;" f -doTimeScroll src/Dodge/Update.hs 191;" f +doTimeScroll src/Dodge/Update.hs 190;" f doTmTm src/Dodge/TmTm.hs 6;" f doTmWdWd src/Dodge/WorldEffect.hs 109;" f doWallRotate src/Dodge/Update/Camera.hs 188;" f @@ -4047,7 +4046,7 @@ doWdCrCr src/Dodge/CreatureEffect.hs 12;" f doWdP2f src/Dodge/WdP2f.hs 12;" f doWdWd src/Dodge/WorldEffect.hs 26;" f doWeaponRepetitions src/Dodge/HeldUse.hs 56;" f -doWorldEvents src/Dodge/Update.hs 385;" f +doWorldEvents src/Dodge/Update.hs 406;" f doWorldPos src/Dodge/WorldPos.hs 7;" f door src/Dodge/Room/Door.hs 13;" f doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f @@ -4074,7 +4073,7 @@ drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCarte src/Dodge/Render/HUD/Carte.hs 14;" f drawCircFlare src/Dodge/Flare.hs 25;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f -drawCombineInventory src/Dodge/Render/HUD.hs 107;" f +drawCombineInventory src/Dodge/Render/HUD.hs 109;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 58;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCrInfo src/Dodge/Debug/Picture.hs 342;" f @@ -4085,12 +4084,12 @@ drawCrossCol src/Dodge/Render/Label.hs 21;" f drawCursorAt src/Dodge/Render/List.hs 56;" f drawDDATest src/Dodge/Debug/Picture.hs 256;" f drawDIMouseOver src/Dodge/Render/HUD.hs 76;" f -drawDISelections src/Dodge/Render/HUD.hs 89;" f +drawDISelections src/Dodge/Render/HUD.hs 91;" f drawDoorPaths src/Dodge/Debug/Picture.hs 217;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 140;" f -drawExamineInventory src/Dodge/Render/HUD.hs 113;" f +drawExamineInventory src/Dodge/Render/HUD.hs 115;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 234;" f drawFlame src/Dodge/Flame/Draw.hs 7;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f @@ -4131,7 +4130,7 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f -drawRBOptions src/Dodge/Render/HUD.hs 161;" f +drawRBOptions src/Dodge/Render/HUD.hs 163;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawSelectionCursor src/Dodge/Render/List.hs 41;" f @@ -4145,7 +4144,7 @@ drawShell src/Dodge/Projectile/Draw.hs 20;" f drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f drawSpark src/Dodge/Spark/Draw.hs 6;" f drawStaticBall src/Dodge/EnergyBall/Draw.hs 14;" f -drawSubInventory src/Dodge/Render/HUD.hs 99;" f +drawSubInventory src/Dodge/Render/HUD.hs 101;" f drawSweep src/Dodge/Render/ShapePicture.hs 63;" f drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f @@ -4197,7 +4196,7 @@ encircleP src/Dodge/Creature/Boid.hs 27;" f enterCombineInv src/Dodge/DisplayInventory.hs 239;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 204;" f +equipAllocString src/Dodge/Render/HUD.hs 206;" f equipInfo src/Dodge/Item/Info.hs 103;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 29;" f @@ -4289,7 +4288,7 @@ flockPointTarget src/Dodge/Creature/Boid.hs 199;" f flockPointTargetR src/Dodge/Creature/Boid.hs 266;" f flockToPointUsing src/Dodge/Creature/Boid.hs 214;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 227;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 148;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 150;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 165;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 398;" f @@ -4397,7 +4396,7 @@ glassWallDamage src/Dodge/Wall/DamageEffect.hs 48;" f glushortSize src/Shader/Parameters.hs 25;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 136;" f -gotoTerminal src/Dodge/Update.hs 124;" f +gotoTerminal src/Dodge/Update.hs 121;" f grahamEliminate src/Geometry/Polygon.hs 125;" f grahamScan src/Geometry/Polygon.hs 116;" f grapeCannon src/Dodge/Item/Held/Cone.hs 38;" f @@ -4556,7 +4555,7 @@ intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 181;" f invDimColor src/Dodge/DisplayInventory.hs 138;" f invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f -invHead src/Dodge/Render/HUD.hs 295;" f +invHead src/Dodge/Render/HUD.hs 297;" f invLDT src/Dodge/Item/Grammar.hs 165;" f invRootMap src/Dodge/Item/Grammar.hs 174;" f invRootTrees src/Dodge/Item/Grammar.hs 206;" f @@ -4567,14 +4566,14 @@ invSideEff src/Dodge/Creature/State.hs 162;" f invSize src/Dodge/Inventory/CheckSlots.hs 41;" f invTrees src/Dodge/Item/Grammar.hs 194;" f invTrees' src/Dodge/Item/Grammar.hs 198;" f -inventoryExtra src/Dodge/Render/HUD.hs 213;" f -inventoryExtraH src/Dodge/Render/HUD.hs 224;" f +inventoryExtra src/Dodge/Render/HUD.hs 215;" f +inventoryExtraH src/Dodge/Render/HUD.hs 226;" f inventoryX src/Dodge/Creature.hs 115;" f -inverseSelBoundaryDown src/Dodge/SelectionSections.hs 204;" f -inverseSelBoundaryUp src/Dodge/SelectionSections.hs 191;" f -inverseSelNumPos src/Dodge/SelectionSections.hs 182;" f -inverseSelSecYint src/Dodge/SelectionSections.hs 157;" f -inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 168;" f +inverseSelBoundaryDown src/Dodge/SelectionSections.hs 206;" f +inverseSelBoundaryUp src/Dodge/SelectionSections.hs 193;" f +inverseSelNumPos src/Dodge/SelectionSections.hs 183;" f +inverseSelSecYint src/Dodge/SelectionSections.hs 158;" f +inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 169;" f inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 43;" f invertEncircleDistP src/Dodge/Creature/Boid.hs 13;" f invertIntMap src/IntMapHelp.hs 101;" f @@ -4732,7 +4731,7 @@ llleft src/Dodge/Item/Grammar.hs 105;" f llright src/Dodge/Item/Grammar.hs 108;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 284;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 286;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -4803,10 +4802,10 @@ makeDebrisToHeight src/Dodge/Block/Debris.hs 39;" f makeDefaultCorpse src/Dodge/Corpse/Make.hs 14;" f makeDoorDebris src/Dodge/Block/Debris.hs 18;" f makeEnumOption src/Dodge/Menu/OptionType.hs 13;" f -makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 80;" f +makeExplosionAt src/Dodge/WorldEvent/Explosion.hs 74;" f makeFlak src/Dodge/Bullet.hs 131;" f makeFlame src/Dodge/Flame.hs 131;" f -makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 63;" f +makeFlameExplosionAt src/Dodge/WorldEvent/Explosion.hs 57;" f makeFlamelet src/Dodge/EnergyBall.hs 16;" f makeFlamerSmokeAt src/Dodge/WorldEvent/Cloud.hs 68;" f makeFlashBall src/Dodge/EnergyBall.hs 74;" f @@ -4820,7 +4819,7 @@ makeOptionsSelectionList src/Dodge/Menu/Option.hs 46;" f makeParagraph src/Justify.hs 6;" f makePathBetween src/Dodge/Path.hs 35;" f makePathBetweenPs src/Dodge/Path.hs 54;" f -makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 32;" f +makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 26;" f makeRect src/Grid.hs 82;" f makeSelectionListPictures src/Dodge/Render/List.hs 50;" f makeShaderEBO src/Shader/Compile.hs 53;" f @@ -4839,7 +4838,7 @@ makeTermLine src/Dodge/Terminal.hs 118;" f makeTermPara src/Dodge/Terminal.hs 121;" f makeTeslaArc src/Dodge/Tesla/Arc.hs 57;" f makeTeslaBallAt src/Dodge/Tesla/Ball.hs 6;" f -makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 47;" f +makeTeslaExplosionAt src/Dodge/WorldEvent/Explosion.hs 41;" f makeThickSmokeAt src/Dodge/WorldEvent/Cloud.hs 54;" f makeThinSmokeAt src/Dodge/WorldEvent/Cloud.hs 57;" f makeTileFromPoly src/Tile.hs 34;" f @@ -4847,19 +4846,19 @@ makeTlsTimeRadColPos src/Dodge/LightSource.hs 88;" f makeTypeCraft src/Dodge/Item/Craftable.hs 13;" f makeTypeCraftNum src/Dodge/Item/Craftable.hs 7;" f mapOverlay src/Dodge/Render/HUD/Carte.hs 24;" f -markWallSeen src/Dodge/Update.hs 643;" f +markWallSeen src/Dodge/Update.hs 667;" f maxDamageType src/Dodge/Damage.hs 37;" f maxShowX src/Dodge/Combine/Graph.hs 43;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f maybeBlockedPassage src/Dodge/Room/RezBox.hs 69;" f maybeClearDoorPath src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 71;" f maybeClearDoorPaths src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 68;" f -maybeClearPath src/Dodge/Block.hs 73;" f -maybeClearPaths src/Dodge/Block.hs 70;" f +maybeClearPath src/Dodge/Block.hs 77;" f +maybeClearPaths src/Dodge/Block.hs 74;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 265;" f -maybeOpenTerminal src/Dodge/Update.hs 119;" f +maybeOpenTerminal src/Dodge/Update.hs 116;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f maybeWarmupStatus src/Dodge/Item/Display.hs 119;" f @@ -4979,7 +4978,7 @@ mvBullet src/Dodge/Bullet.hs 33;" f mvButton src/Dodge/Placement/PlaceSpot.hs 181;" f mvCr src/Dodge/Placement/PlaceSpot.hs 191;" f mvFS src/Dodge/Placement/PlaceSpot.hs 194;" f -mvGust src/Dodge/Update.hs 671;" f +mvGust src/Dodge/Update.hs 696;" f mvLS src/Dodge/Placement/PlaceSpot.hs 222;" f mvP src/Dodge/Wall/Move.hs 54;" f mvPP src/Dodge/Placement/PlaceSpot.hs 188;" f @@ -5091,7 +5090,7 @@ pauseGame src/Dodge/Update/Input/InGame.hs 214;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f -pauseTime src/Dodge/Update.hs 177;" f +pauseTime src/Dodge/Update.hs 176;" f pciToCI src/Dodge/Item/Grammar.hs 94;" f peZoneSize src/Dodge/Zoning/Pathing.hs 46;" f pedestalRoom src/Dodge/Room/Containing.hs 50;" f @@ -5233,7 +5232,7 @@ polysToPic src/Polyhedra.hs 130;" f popScreen src/Dodge/Menu/PushPop.hs 6;" f posEventEffect src/Dodge/PosEvent.hs 16;" f posRms src/Dodge/Tree/Shift.hs 44;" f -posSelSecYint src/Dodge/SelectionSections.hs 138;" f +posSelSecYint src/Dodge/SelectionSections.hs 139;" f positionRoomsFromTree src/Dodge/Tree/Shift.hs 35;" f postGenerationProcessing src/Dodge/LevelGen.hs 33;" f postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f @@ -5246,7 +5245,7 @@ powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f powlistUpToN'' src/Multiset.hs 31;" f ppDraw src/Dodge/Render/ShapePicture.hs 162;" f -ppEvents src/Dodge/Update.hs 636;" f +ppEvents src/Dodge/Update.hs 659;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f preCritStart src/Dodge/Room/Start.hs 82;" f preloadRender src/Preload/Render.hs 30;" f @@ -5432,7 +5431,7 @@ rightPad src/Padding.hs 22;" f rightPadNoSquash src/Padding.hs 26;" f rlPosDir src/Dodge/RoomLink.hs 94;" f rmInLinks src/Dodge/RoomLink.hs 138;" f -rmInvItem src/Dodge/Inventory.hs 54;" f +rmInvItem src/Dodge/Inventory.hs 56;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmOutLinks src/Dodge/RoomLink.hs 138;" f roomC src/Dodge/Room/Room.hs 39;" f @@ -5525,13 +5524,13 @@ 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 53;" f -scrollAugInvSel src/Dodge/Inventory.hs 211;" f +scrollAugInvSel src/Dodge/Inventory.hs 225;" f scrollCommandStrings src/Dodge/Update/Scroll.hs 134;" f scrollCommands src/Dodge/Update/Scroll.hs 131;" f scrollDebugInfoInt src/Dodge/Debug.hs 46;" f scrollRBOption src/Dodge/Update/Scroll.hs 108;" f scrollSelectionSections src/Dodge/SelectionSections.hs 27;" f -scrollTimeBack src/Dodge/Update.hs 201;" f +scrollTimeBack src/Dodge/Update.hs 200;" f scrollTimeForward src/Dodge/Update.hs 220;" f scrollWatch src/Dodge/Item/Weapon/Utility.hs 30;" f seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 406;" f @@ -5547,16 +5546,16 @@ secondColumnParams src/Dodge/ListDisplayParams.hs 42;" f seedStartMenu src/Dodge/Menu.hs 79;" f seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f -selNumPos src/Dodge/Render/HUD.hs 355;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 377;" f +selNumPos src/Dodge/Render/HUD.hs 357;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 379;" f selSecDrawCursor src/Dodge/Render/List.hs 104;" f selSecDrawCursorAt src/Dodge/Render/List.hs 88;" f -selSecSelCol src/Dodge/Render/HUD.hs 403;" f -selSecSelSize src/Dodge/SelectionSections.hs 134;" f -selSecYint src/Dodge/SelectionSections.hs 143;" f +selSecSelCol src/Dodge/Render/HUD.hs 405;" f +selSecSelSize src/Dodge/SelectionSections.hs 135;" f +selSecYint src/Dodge/SelectionSections.hs 144;" f selectCreatureDebugItem src/Dodge/Debug.hs 38;" f selectUse src/Dodge/SelectUse.hs 11;" f -selectedCloseObject src/Dodge/Inventory.hs 221;" f +selectedCloseObject src/Dodge/Inventory.hs 234;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f senseDamage src/Dodge/Machine/Update.hs 134;" f @@ -5569,7 +5568,7 @@ sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 50;" f setChannelPos src/Sound.hs 149;" f -setClickWorldPos src/Dodge/Update.hs 99;" f +setClickWorldPos src/Dodge/Update.hs 95;" f setClusterID src/Dodge/Combine/Graph.hs 103;" f setDepth src/Picture/Base.hs 128;" f setDirPS src/Dodge/PlacementSpot.hs 49;" f @@ -5588,7 +5587,7 @@ setLinkTypePD src/Dodge/RoomLink.hs 67;" f setMinInvSize src/Dodge/Creature/Action.hs 150;" f setMusicVolume src/Sound.hs 161;" f setMvPos src/Dodge/Creature/ReaderUpdate.hs 51;" f -setOldPos src/Dodge/Update.hs 427;" f +setOldPos src/Dodge/Update.hs 448;" f setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f @@ -5644,8 +5643,7 @@ shiftDec src/Dodge/Placement/PlaceSpot.hs 151;" f shiftDraw src/Dodge/Render/ShapePicture.hs 107;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 113;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItemsDown src/Dodge/Update.hs 350;" f -shiftInvItemsUp src/Dodge/Update.hs 340;" f +shiftInvItems src/Dodge/Update.hs 354;" 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 @@ -5695,7 +5693,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f shuffleRoomPos src/Dodge/Layout.hs 78;" f shuffleTail src/RandomHelp.hs 59;" f sigmoid src/Dodge/Base.hs 129;" f -simpleCrSprings src/Dodge/Update.hs 719;" f +simpleCrSprings src/Dodge/Update.hs 744;" f simpleDamFL src/Dodge/Flame.hs 41;" f simpleTermMessage src/Dodge/Terminal.hs 249;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f @@ -5715,7 +5713,7 @@ slideWindow src/ListHelp.hs 80;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 152;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 169;" f smallBattery src/Dodge/Item/Ammo.hs 90;" f -smallBranch src/Dodge/Tree/GenerateStructure.hs 29;" f +smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 16;" f smallDrawTree src/Dodge/LevelGen.hs 88;" f smallGlass1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 338;" f @@ -5762,7 +5760,7 @@ speedLegs src/Dodge/Item/Equipment.hs 113;" f splashMenu src/Dodge/Menu.hs 27;" f splashMenuOptions src/Dodge/Menu.hs 32;" f splashScreen src/Dodge/Initialisation.hs 11;" f -splinterBlock src/Dodge/Block.hs 26;" f +splinterBlock src/Dodge/Block.hs 30;" f splitBezierquad src/Geometry/Bezier.hs 15;" f splitExtra src/Justify.hs 21;" f splitTrunk src/TreeHelp.hs 178;" f @@ -5778,19 +5776,19 @@ square src/Geometry/Polygon.hs 46;" f squareDecoration src/Dodge/Placement/TopDecoration.hs 41;" f squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 110;" f squashNormalizeV src/Geometry/Vector.hs 146;" f -ssLookupDown src/Dodge/SelectionSections.hs 84;" f -ssLookupGE' src/Dodge/SelectionSections.hs 127;" f -ssLookupGT src/Dodge/SelectionSections.hs 114;" f -ssLookupGT' src/Dodge/SelectionSections.hs 120;" f -ssLookupLE' src/Dodge/SelectionSections.hs 102;" f -ssLookupLT src/Dodge/SelectionSections.hs 89;" f -ssLookupLT' src/Dodge/SelectionSections.hs 95;" f -ssLookupMax src/Dodge/SelectionSections.hs 74;" f -ssLookupMin src/Dodge/SelectionSections.hs 109;" f -ssLookupUp src/Dodge/SelectionSections.hs 79;" f +ssLookupDown src/Dodge/SelectionSections.hs 85;" f +ssLookupGE' src/Dodge/SelectionSections.hs 128;" f +ssLookupGT src/Dodge/SelectionSections.hs 115;" f +ssLookupGT' src/Dodge/SelectionSections.hs 121;" f +ssLookupLE' src/Dodge/SelectionSections.hs 103;" f +ssLookupLT src/Dodge/SelectionSections.hs 90;" f +ssLookupLT' src/Dodge/SelectionSections.hs 96;" f +ssLookupMax src/Dodge/SelectionSections.hs 75;" f +ssLookupMin src/Dodge/SelectionSections.hs 110;" f +ssLookupUp src/Dodge/SelectionSections.hs 80;" f +ssScrollSelectable src/Dodge/SelectionSections.hs 49;" f ssScrollUsing src/Dodge/SelectionSections.hs 38;" f -ssScrollUsing' src/Dodge/SelectionSections.hs 48;" f -ssSetCursor src/Dodge/SelectionSections.hs 62;" f +ssSetCursor src/Dodge/SelectionSections.hs 63;" f ssfold src/FoldableHelp.hs 105;" f stackPicturesAt src/Dodge/Render/List.hs 82;" f stackPicturesAtOff src/Dodge/Render/List.hs 85;" f @@ -5798,6 +5796,7 @@ stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 282;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f +startDrag src/Dodge/Update.hs 345;" f startInvList src/Dodge/Creature.hs 109;" f startInventory src/Dodge/Creature.hs 112;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5813,7 +5812,7 @@ stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f stoneDebris src/Dodge/Block/Debris.hs 137;" f stoneWallDamage src/Dodge/Wall/DamageEffect.hs 24;" f stopAllSounds src/Sound.hs 124;" f -stopPushing src/Dodge/Block.hs 104;" f +stopPushing src/Dodge/Block.hs 109;" f stopSoundFrom src/Dodge/SoundLogic.hs 206;" f stopWatch src/Dodge/Item/Weapon/Utility.hs 13;" f strFromEquipment src/Dodge/Creature/Statistics.hs 19;" f @@ -5829,7 +5828,7 @@ subMap src/TreeHelp.hs 118;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f swapInOutLinks src/Dodge/RoomLink.hs 80;" f swapIndices src/ListHelp.hs 50;" f -swapInvItems src/Dodge/Inventory.hs 167;" f +swapInvItems src/Dodge/Inventory.hs 173;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 171;" f switchDoor src/Dodge/Placement/Instance/Door.hs 96;" f @@ -5907,7 +5906,7 @@ threeLineDecoration src/Dodge/Placement/TopDecoration.hs 61;" f tileTexCoords src/Tile.hs 11;" f tilesFromRooms src/Dodge/Layout.hs 205;" f tilesToLine src/Shader/AuxAddition.hs 66;" f -timeFlowUpdate src/Dodge/Update.hs 164;" f +timeFlowUpdate src/Dodge/Update.hs 163;" f timeModule src/Dodge/Item/Craftable.hs 33;" f timerTLS src/Dodge/LightSource/Update.hs 22;" f tinMag src/Dodge/Item/Ammo.hs 27;" f @@ -5916,7 +5915,7 @@ titleOptionsMenu src/Dodge/Menu.hs 99;" f titleOptionsNoWrite src/Dodge/Menu.hs 102;" f tlsTimeRadColPos src/Dodge/LightSource.hs 69;" f tlsTimeRadFunPos src/Dodge/LightSource.hs 26;" f -tmUpdate src/Dodge/Update.hs 407;" f +tmUpdate src/Dodge/Update.hs 428;" f toBothLnk src/Dodge/RoomLink.hs 121;" f toClosestMultiple src/HelpNum.hs 3;" f toColor8 src/Color.hs 148;" f @@ -6039,7 +6038,7 @@ unpause src/Dodge/Menu.hs 192;" f unsafeBlinkAction src/Dodge/Creature/Action/Blink.hs 52;" f unsafeBlinkGun src/Dodge/Item/Weapon/Utility.hs 52;" f unsafeSwapKeys src/IntMapHelp.hs 76;" f -unshadowBlock src/Dodge/Block.hs 39;" f +unshadowBlock src/Dodge/Block.hs 43;" f untilJust src/MonadHelp.hs 7;" f untilJustCount src/MonadHelp.hs 14;" f unusedOffPathAwayFromLink src/Dodge/PlacementSpot.hs 133;" f @@ -6058,39 +6057,39 @@ updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f updateBulVel src/Dodge/Bullet.hs 50;" f updateBullet src/Dodge/Bullet.hs 28;" f -updateBullets src/Dodge/Update.hs 502;" f +updateBullets src/Dodge/Update.hs 525;" f updateCamera src/Dodge/Update/Camera.hs 31;" f -updateCloseObjects src/Dodge/Inventory.hs 113;" f -updateCloud src/Dodge/Update.hs 685;" f -updateClouds src/Dodge/Update.hs 531;" f +updateCloseObjects src/Dodge/Inventory.hs 114;" f +updateCloud src/Dodge/Update.hs 710;" f +updateClouds src/Dodge/Update.hs 554;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 37;" f updateCombineSections src/Dodge/DisplayInventory.hs 42;" f updateCreature src/Dodge/Creature/Update.hs 10;" f -updateCreatureGroups src/Dodge/Update.hs 471;" f -updateCreatureSoundPositions src/Dodge/Update.hs 449;" f -updateDebugMessageOffset src/Dodge/Update.hs 93;" f -updateDelayedEvents src/Dodge/Update.hs 748;" f +updateCreatureGroups src/Dodge/Update.hs 494;" f +updateCreatureSoundPositions src/Dodge/Update.hs 470;" f +updateDebugMessageOffset src/Dodge/Update.hs 89;" f +updateDelayedEvents src/Dodge/Update.hs 773;" f updateDisplaySections src/Dodge/DisplayInventory.hs 92;" f updateDistortion src/Dodge/Distortion.hs 5;" f -updateDistortions src/Dodge/Update.hs 492;" f +updateDistortions src/Dodge/Update.hs 515;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f -updateEnergyBalls src/Dodge/Update.hs 519;" f +updateEnergyBalls src/Dodge/Update.hs 542;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 189;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFlame src/Dodge/Flame.hs 71;" f -updateFlames src/Dodge/Update.hs 516;" f +updateFlames src/Dodge/Update.hs 539;" f updateFlare src/Dodge/Flare.hs 7;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateGusts src/Dodge/Update.hs 668;" f +updateGusts src/Dodge/Update.hs 693;" f updateHeldRootItem src/Dodge/Creature/State.hs 167;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f -updateIMl src/Dodge/Update.hs 463;" f -updateIMl' src/Dodge/Update.hs 467;" f +updateIMl src/Dodge/Update.hs 484;" f +updateIMl' src/Dodge/Update.hs 489;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 109;" f -updateInstantBullets src/Dodge/Update.hs 608;" f +updateInstantBullets src/Dodge/Update.hs 631;" f updateInv src/Dodge/Creature/State.hs 152;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f @@ -6099,21 +6098,21 @@ updateKeyInGame src/Dodge/Update/Input/InGame.hs 103;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 92;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f -updateLasers src/Dodge/Update.hs 392;" f -updateLightSources src/Dodge/Update.hs 495;" f +updateLasers src/Dodge/Update.hs 413;" f +updateLightSources src/Dodge/Update.hs 518;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 129;" f -updateMIM src/Dodge/Update.hs 621;" f +updateMIM src/Dodge/Update.hs 644;" f updateMachine src/Dodge/Machine/Update.hs 16;" f updateMouseInventorySelection src/Dodge/Update.hs 297;" f updateMouseInventorySelection' src/Dodge/Update.hs 303;" f -updateMouseOverInventory src/Dodge/Update.hs 360;" f +updateMouseOverInventory src/Dodge/Update.hs 379;" f updateMovement src/Dodge/Creature/State.hs 331;" f -updateObjCatMaybes src/Dodge/Update.hs 483;" f -updateObjMapMaybe src/Dodge/Update.hs 476;" f -updatePastWorlds src/Dodge/Update.hs 381;" f +updateObjCatMaybes src/Dodge/Update.hs 506;" f +updateObjMapMaybe src/Dodge/Update.hs 499;" f +updatePastWorlds src/Dodge/Update.hs 401;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f -updatePosEvents src/Dodge/Update.hs 528;" f +updatePosEvents src/Dodge/Update.hs 551;" f updatePreload src/Preload/Update.hs 20;" f updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 67;" f updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 70;" f @@ -6121,9 +6120,9 @@ updateProjectile src/Dodge/Projectile/Update.hs 23;" f updateProp src/Dodge/Prop/Update.hs 11;" f updateRBList src/Dodge/Inventory/RBList.hs 16;" f updateRadarBlip src/Dodge/RadarBlip.hs 8;" f -updateRadarBlips src/Dodge/Update.hs 498;" f +updateRadarBlips src/Dodge/Update.hs 521;" f updateRadarSweep src/Dodge/RadarSweep.hs 25;" f -updateRadarSweeps src/Dodge/Update.hs 522;" f +updateRadarSweeps src/Dodge/Update.hs 545;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 106;" f updateRootItemID src/Dodge/Inventory/Location.hs 37;" f @@ -6132,32 +6131,32 @@ updateScopeZoom' src/Dodge/Update/Camera.hs 132;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 171;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 150;" f -updateSeenWalls src/Dodge/Update.hs 639;" f +updateSeenWalls src/Dodge/Update.hs 662;" f updateShockwave src/Dodge/Shockwave/Update.hs 12;" f -updateShockwaves src/Dodge/Update.hs 513;" f +updateShockwaves src/Dodge/Update.hs 536;" f updateSingleNodes src/TreeHelp.hs 97;" f updateSound src/Sound.hs 71;" f updateSounds src/Sound.hs 66;" f updateSpark src/Dodge/Spark.hs 19;" f -updateSparks src/Dodge/Update.hs 525;" f +updateSparks src/Dodge/Update.hs 548;" f updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f -updateTeslaArcs src/Dodge/Update.hs 507;" f +updateTeslaArcs src/Dodge/Update.hs 530;" f updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f -updateTractorBeams src/Dodge/Update.hs 510;" f +updateTractorBeams src/Dodge/Update.hs 533;" f updateTurret src/Dodge/Machine/Update.hs 31;" f -updateUniverse src/Dodge/Update.hs 73;" f -updateUniverseFirst src/Dodge/Update.hs 84;" f -updateUniverseLast src/Dodge/Update.hs 129;" f -updateUniverseMid src/Dodge/Update.hs 148;" f +updateUniverse src/Dodge/Update.hs 69;" f +updateUniverseFirst src/Dodge/Update.hs 80;" f +updateUniverseLast src/Dodge/Update.hs 126;" f +updateUniverseMid src/Dodge/Update.hs 147;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 31;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 20;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 12;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWheelEvent src/Dodge/Update/Scroll.hs 20;" f -updateWheelEvents src/Dodge/Update.hs 368;" f -updateWorldEventFlag src/Dodge/Update.hs 113;" f -updateWorldEventFlags src/Dodge/Update.hs 104;" f +updateWheelEvents src/Dodge/Update.hs 388;" f +updateWorldEventFlag src/Dodge/Update.hs 110;" f +updateWorldEventFlags src/Dodge/Update.hs 101;" f upperBody src/Dodge/Creature/Picture.hs 133;" f upperBox src/Shape.hs 154;" f upperBoxHalf src/Shape.hs 220;" f @@ -6308,7 +6307,7 @@ yV2 src/Geometry/Vector.hs 203;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 18;" f youDropItem src/Dodge/Creature/Action.hs 184;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 155;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 157;" f yourControl src/Dodge/Creature/YourControl.hs 22;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 134;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 137;" f @@ -6325,9 +6324,9 @@ zipCount src/Dodge/Tree/Shift.hs 129;" f zipCountDown src/Dodge/Room/Procedural.hs 118;" f zipWithDefaults src/Dodge/Item/Display.hs 21;" f zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f -zoneClouds src/Dodge/Update.hs 400;" f +zoneClouds src/Dodge/Update.hs 421;" f zoneCreature src/Dodge/Zoning/Creature.hs 52;" f -zoneCreatures src/Dodge/Update.hs 444;" f +zoneCreatures src/Dodge/Update.hs 465;" f zoneExtract src/Dodge/Zoning/Base.hs 50;" f zoneMonoid src/Dodge/Zoning/Base.hs 80;" f zoneOfCirc src/Dodge/Zoning/Base.hs 22;" f