Work on selections when picking up/droping items

This commit is contained in:
2026-05-14 11:40:58 +01:00
parent 44ecaf409e
commit ab393febcb
7 changed files with 155 additions and 112 deletions
+20 -7
View File
@@ -10,6 +10,9 @@ module Dodge.Creature.Action (
youDropItem, youDropItem,
) where ) where
import qualified IntSetHelp as IS
import Dodge.DisplayInventory
import Dodge.Data.SelectionList
import RandomHelp import RandomHelp
import Dodge.WorldEvent.ThingsHit import Dodge.WorldEvent.ThingsHit
import Control.Applicative import Control.Applicative
@@ -174,22 +177,32 @@ performTurnToA cr p
-- why not a cid (Int)? -- why not a cid (Int)?
dropItem :: Creature -> Int -> World -> World dropItem :: Creature -> Int -> World -> World
dropItem cr invid w' = dropItem cr invid w =
doanyitemdropeffect itEffectOnDrop itm cr
. maybesetdropped
. (hud . diSections . ix 3 . ssSet %~ IS.map (+ 1))
. (hud . diSections . ix 0 . ssSet %~ IS.deleteShift invid)
. maybeshiftseldown . maybeshiftseldown
. copyItemToFloor (cr ^. crPos . _xy) itm -- . mayberemoveequip . copyItemToFloor (cr ^. crPos . _xy) itm -- . mayberemoveequip
. rmInvItem (_crID cr) (NInt invid) -- it is important . rmInvItem (_crID cr) (NInt invid) -- it is important
-- to do this before copying the item to the floor! -- to do this before copying the item to the floor!
. soundStart (CrSound (_crID cr)) (cr ^. crPos . _xy) whiteNoiseFadeOutS Nothing . soundStart (CrSound (_crID cr)) (cr ^. crPos . _xy) whiteNoiseFadeOutS Nothing
$ w' $ w
where where
doanyitemdropeffect = itEffectOnDrop itm cr
itm = fromMaybe (error "dropItem cannot find item") $ do itm = fromMaybe (error "dropItem cannot find item") $ do
itid <- cr ^? crInv . ix (NInt invid) itid <- cr ^? crInv . ix (NInt invid)
w' ^? cWorld . lWorld . items . ix itid w ^? cWorld . lWorld . items . ix itid
maybeshiftseldown w = fromMaybe w $ do t = fromMaybe True $ do
s <- w ^? hud . diCloseFilter . _Just
si <- w ^? hud . diSections . ix 0 . ssItems . ix invid
return $ plainRegex s si
maybesetdropped = fromMaybe id $ do
guard $ t && (invid `IS.member` (w ^?! hud . diSections . ix 0 . ssSet))
return $ hud . diSections . ix 3 . ssSet %~ IS.insert 0
maybeshiftseldown = fromMaybe id $ do
guard t
3 <- w ^? hud . diSelection . _Just . slSec 3 <- w ^? hud . diSelection . _Just . slSec
return $ w & hud . diSelection . _Just . slInt +~ 1 return $ hud . diSelection . _Just . slInt +~ 1
-- | Get your creature to drop the item under the cursor. -- | Get your creature to drop the item under the cursor.
youDropItem :: World -> World youDropItem :: World -> World
+1
View File
@@ -8,6 +8,7 @@ module Dodge.DisplayInventory (
updateInventoryPositioning, updateInventoryPositioning,
updateCombinePositioning, updateCombinePositioning,
toggleCombineInv, toggleCombineInv,
plainRegex,
) where ) where
import qualified Data.IntSet as IS import qualified Data.IntSet as IS
+27 -13
View File
@@ -6,9 +6,9 @@ module Dodge.Inventory.Add (
pickUpItemAt, pickUpItemAt,
) where ) where
import qualified IntSetHelp as IS
import Dodge.Data.SelectionList import Dodge.Data.SelectionList
import Linear import Linear
import qualified Data.IntSet as IS
import Control.Lens import Control.Lens
import Control.Monad import Control.Monad
import Data.Maybe import Data.Maybe
@@ -22,8 +22,8 @@ import qualified IntMapHelp as IM
import NewInt import NewInt
-- this assumes that this item is currently on the floor -- this assumes that this item is currently on the floor
tryPutItemInInv :: Int -> Int -> World -> Maybe (NewInt InvInt, World) tryPutItemInInv :: Maybe Int -> Int -> Int -> World -> Maybe (NewInt InvInt, World)
tryPutItemInInv cid itid w = do tryPutItemInInv mcipos cid itid w = do
itm <- w ^? cWorld . lWorld . items . ix itid itm <- w ^? cWorld . lWorld . items . ix itid
invid <- checkInvSlotsYou itm w invid <- checkInvSlotsYou itm w
let itloc = InInv let itloc = InInv
@@ -42,8 +42,18 @@ tryPutItemInInv cid itid w = do
& cWorld . lWorld . items . ix itid . itLocation .~ itloc & cWorld . lWorld . items . ix itid . itLocation .~ itloc
& cWorld . lWorld . floorItems . at itid .~ Nothing & cWorld . lWorld . floorItems . at itid .~ Nothing
& updateselectionextra invid & updateselectionextra invid
& updatecloseitemset
& maybeselect invid
& cWorld . highlightItems . at itid ?~ 20 & cWorld . highlightItems . at itid ?~ 20
where where
maybeselect invid = fromMaybe id $ do
i <- mcipos
is <- w ^? hud . diSections . ix 3 . ssSet
guard $ i `IS.member` is
return $ hud . diSections . ix 0 . ssSet %~ IS.insert (invid ^. unNInt)
updatecloseitemset = fromMaybe id $ do
i <- mcipos
return $ hud . diSections . ix 3 . ssSet %~ IS.deleteShift i
updateselectionextra i updateselectionextra i
-- | cid == 0 = (hud . diSelection . _Just . slSet %~ IS.map (f i)) -- | cid == 0 = (hud . diSelection . _Just . slSet %~ IS.map (f i))
| cid == 0 = (hud . diSections . ix 0 . ssSet %~ IS.map (f i)) | cid == 0 = (hud . diSections . ix 0 . ssSet %~ IS.map (f i))
@@ -53,28 +63,32 @@ tryPutItemInInv cid itid w = do
| otherwise = i | otherwise = i
-- not sure why we have the cid here, this will probably only work for cid == 0 -- not sure why we have the cid here, this will probably only work for cid == 0
tryPutItemInInvAt :: Int -> Int -> Int -> World -> Maybe World tryPutItemInInvAt :: Maybe Int -> Int -> Int -> Int -> World -> Maybe World
tryPutItemInInvAt i cid itid w = do tryPutItemInInvAt mcipos i cid itid w = do
(j, w') <- tryPutItemInInv cid itid w (j, w') <- tryPutItemInInv mcipos cid itid w
guard (i <= _unNInt j) guard (i <= _unNInt j)
return $ foldr f w' [i + 1 .. _unNInt j] return $ foldr f w' [i + 1 .. _unNInt j]
where where
f j = swapInvItems (\_ _ -> Just (j -1)) j f j = swapInvItems (\_ _ -> Just (j -1)) j
createItemYou :: Item -> World -> World createItemYou :: Item -> World -> World
createItemYou itm w = maybe w' snd $ tryPutItemInInv 0 itid w' createItemYou itm w = maybe w' snd $ tryPutItemInInv Nothing 0 itid w'
where where
itid = IM.newKey $ w ^. cWorld . lWorld . items itid = IM.newKey $ w ^. cWorld . lWorld . items
pos = w ^?! cWorld . lWorld . creatures . ix 0 . crPos . _xy pos = w ^?! cWorld . lWorld . creatures . ix 0 . crPos . _xy
w' = copyItemToFloor pos (itm & itID .~ NInt itid) w w' = copyItemToFloor pos (itm & itID .~ NInt itid) w
-- the duplication is annoying... -- the duplication is annoying...
pickUpItem :: Int -> Int -> World -> World pickUpItem :: Int -> (Int,Int) -> World -> World
pickUpItem cid itid w = fromMaybe w $ do pickUpItem cid (i,itid) w = fromMaybe w $ do
p <- w ^? cWorld . lWorld . floorItems . ix itid . flItPos p <- w ^? cWorld . lWorld . floorItems . ix itid . flItPos
soundStart (CrSound cid) p pickUpS Nothing . snd <$> tryPutItemInInv cid itid w soundStart (CrSound cid) p pickUpS Nothing . snd <$> tryPutItemInInv (Just i) cid itid w
pickUpItemAt :: Int -> Int -> Int -> World -> World pickUpItemAt :: Int -> Int -> (Int,Int) -> World -> World
pickUpItemAt invid cid itid w = fromMaybe w $ do pickUpItemAt invid cid (i,itid) w = fromMaybe w $ do
p <- w ^? cWorld . lWorld . floorItems . ix itid . flItPos p <- w ^? cWorld . lWorld . floorItems . ix itid . flItPos
soundStart (CrSound cid) p pickUpS Nothing <$> tryPutItemInInvAt invid cid itid w soundStart (CrSound cid) p pickUpS Nothing <$> tryPutItemInInvAt (Just i) invid cid itid w
& _Just . hud . diSections . ix 0 . ssSet %~ IS.map f
where
f j | j >= invid = j +1
| otherwise = j
+5 -1
View File
@@ -5,10 +5,14 @@ import Dodge.Button.Event
import Dodge.Data.World import Dodge.Data.World
import Dodge.Inventory.Add import Dodge.Inventory.Add
import NewInt import NewInt
import Data.Maybe
-- assumes that, for picking up, you are selecting the item
interactWithCloseObj :: Either (NewInt ItmInt) Button -> World -> World interactWithCloseObj :: Either (NewInt ItmInt) Button -> World -> World
interactWithCloseObj e w = worldEventFlags . at InventoryChange ?~ () $ case e of interactWithCloseObj e w = worldEventFlags . at InventoryChange ?~ () $ case e of
(Left flit) -> pickUpItem 0 (_unNInt flit) w (Left flit) -> fromMaybe w $ do
i <- w ^? hud . diSelection . _Just . slInt
return $ pickUpItem 0 (i,_unNInt flit) w
(Right but) -> doButtonEvent (but ^. btEvent) but w (Right but) -> doButtonEvent (but ^. btEvent) but w
getSelectedCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button) getSelectedCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button)
+7 -13
View File
@@ -154,7 +154,6 @@ tryDropSelected mpos w = do
let xmin = IS.findMin xs let xmin = IS.findMin xs
return return
. (hud . diSelection ?~ Sel 3 (j - xmin)) . (hud . diSelection ?~ Sel 3 (j - xmin))
. (hud . diSections . ix 3 . ssSet .~ IS.fromDistinctAscList [0 .. IS.size xs - 1])
. foldl' (flip $ dropItem cr) w . foldl' (flip $ dropItem cr) w
. IS.toDescList . IS.toDescList
$ xs $ xs
@@ -181,18 +180,17 @@ tryPickupSelected k mpos w = do
let xmin = IS.findMin xs let xmin = IS.findMin xs
joff = sli - xmin joff = sli - xmin
let nfreeslots = crNumFreeSlots (w ^. cWorld . lWorld . items) cr let nfreeslots = crNumFreeSlots (w ^. cWorld . lWorld . items) cr
itmstopickup = mapMaybe g $ IS.toList xs is = IS.toList xs
itmstopickup = mapMaybe g is
slotsneeded = alaf Sum foldMap itInvHeight itmstopickup slotsneeded = alaf Sum foldMap itInvHeight itmstopickup
ispickup = map (_unNInt . _itID) itmstopickup ispickup = map (_unNInt . _itID) itmstopickup
guard $ nfreeslots >= slotsneeded guard $ nfreeslots >= slotsneeded
return $ case mpos of return $ case mpos of
Just (0, j) -> foldr (pickUpItemAt j 0) w ispickup & newdisel j joff xs Just (0, j) -> foldr (pickUpItemAt j 0) w (zip is ispickup) & newdisel j joff
_ -> foldl' (flip $ pickUpItem 0) w ispickup & newdisel (length (cr ^. crInv)) joff xs _ -> foldl' (flip $ pickUpItem 0) w (zip is ispickup) & newdisel (length (cr ^. crInv)) joff
where where
newdisel j joff xs = newdisel j joff =
-- hud . diSelection ?~ Sel 0 (j+joff) (IS.fromDistinctAscList [j .. j + IS.size xs -1])
(hud . diSelection ?~ Sel 0 (j + joff)) (hud . diSelection ?~ Sel 0 (j + joff))
. (hud . diSections . ix 0 . ssSet .~ IS.fromDistinctAscList [j .. j + IS.size xs - 1])
g i = do g i = do
NInt j <- w ^? hud . closeItems . ix i NInt j <- w ^? hud . closeItems . ix i
w ^? cWorld . lWorld . items . ix j w ^? cWorld . lWorld . items . ix j
@@ -549,12 +547,8 @@ updateEnterRegex w = case w ^? hud . subInventory of
| secfocus [2, 3] -> | secfocus [2, 3] ->
-- w & hud . diSelection ?~ Sel 2 0 mempty -- w & hud . diSelection ?~ Sel 2 0 mempty
w w
& hud & hud . diSelection ?~ Sel 2 0
. diSelection & hud . diCloseFilter %~ enterregex
?~ Sel 2 0
& hud
. diCloseFilter
%~ enterregex
Just CombineInventory{} -> Just CombineInventory{} ->
w w
& hud & hud
+16
View File
@@ -0,0 +1,16 @@
module IntSetHelp
(
module Data.IntSet,
deleteShift
)
where
--import qualified Prelude
import Prelude hiding (map)
import Data.IntSet
deleteShift :: Int -> IntSet -> IntSet
deleteShift i x = y <> map (subtract 1) z
where
(y,z) = split i x
+79 -78
View File
@@ -39,7 +39,7 @@ AccessTerminal src/Dodge/Data/WorldEffect.hs 30;" C
Action src/Dodge/Data/ActionPlan.hs 71;" t Action src/Dodge/Data/ActionPlan.hs 71;" t
ActionPlan src/Dodge/Data/ActionPlan.hs 14;" t ActionPlan src/Dodge/Data/ActionPlan.hs 14;" t
ActionPlan src/Dodge/Data/ActionPlan.hs 17;" C ActionPlan src/Dodge/Data/ActionPlan.hs 17;" C
ActionUpdate src/Dodge/Creature/Action.hs 53;" t ActionUpdate src/Dodge/Creature/Action.hs 56;" t
AimAt src/Dodge/Data/ActionPlan.hs 72;" C AimAt src/Dodge/Data/ActionPlan.hs 72;" C
AimStance src/Dodge/Data/AimStance.hs 10;" t AimStance src/Dodge/Data/AimStance.hs 10;" t
Aiming src/Dodge/Data/Creature/Stance.hs 38;" C Aiming src/Dodge/Data/Creature/Stance.hs 38;" C
@@ -2406,10 +2406,10 @@ _sparks src/Dodge/Data/LWorld.hs 111;" f
_spawnEBT src/Dodge/Data/Bullet.hs 34;" f _spawnEBT src/Dodge/Data/Bullet.hs 34;" f
_ssIndent src/Dodge/Data/SelectionList.hs 37;" f _ssIndent src/Dodge/Data/SelectionList.hs 37;" f
_ssItems src/Dodge/Data/SelectionList.hs 33;" f _ssItems src/Dodge/Data/SelectionList.hs 33;" f
_ssOffset src/Dodge/Data/SelectionList.hs 34;" f
_ssSet src/Dodge/Data/SelectionList.hs 38;" f _ssSet src/Dodge/Data/SelectionList.hs 38;" f
_ssShownItems src/Dodge/Data/SelectionList.hs 35;" f _ssShownItems src/Dodge/Data/SelectionList.hs 35;" f
_ssShownLength src/Dodge/Data/SelectionList.hs 36;" f _ssShownLength src/Dodge/Data/SelectionList.hs 36;" f
_ssYOffset src/Dodge/Data/SelectionList.hs 34;" f
_ssboName src/Shader/Data.hs 97;" f _ssboName src/Shader/Data.hs 97;" f
_ssboPtr src/Shader/Data.hs 98;" f _ssboPtr src/Shader/Data.hs 98;" f
_startStopMv src/Dodge/Data/Creature/Misc.hs 89;" f _startStopMv src/Dodge/Data/Creature/Misc.hs 89;" f
@@ -2674,7 +2674,7 @@ anRoom src/Dodge/Floor.hs 116;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 8;" f analyser src/Dodge/Placement/Instance/Analyser.hs 8;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 126;" f analyserByDoor src/Dodge/Room/LasTurret.hs 126;" f
analyserByNthLink src/Dodge/Room/LasTurret.hs 112;" f analyserByNthLink src/Dodge/Room/LasTurret.hs 112;" f
andOrRegex src/Dodge/DisplayInventory.hs 79;" f andOrRegex src/Dodge/DisplayInventory.hs 80;" f
angleBetween src/Geometry.hs 158;" f angleBetween src/Geometry.hs 158;" f
angleThreeSides src/Geometry/Vector.hs 71;" f angleThreeSides src/Geometry/Vector.hs 71;" f
angleVV src/Geometry/Vector.hs 58;" f angleVV src/Geometry/Vector.hs 58;" f
@@ -2907,7 +2907,7 @@ chasmSimpleMaze src/Dodge/Room/Tutorial.hs 417;" f
chasmSpitTerminal src/Dodge/Room/Tutorial.hs 348;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 348;" f
chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 126;" f chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 126;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 133;" f chasmWallToSurface src/Dodge/Base/Collide.hs 133;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 101;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 102;" f
checkConnection src/Dodge/Inventory/Swap.hs 75;" f checkConnection src/Dodge/Inventory/Swap.hs 75;" f
checkDeath src/Dodge/Creature/Update.hs 461;" f checkDeath src/Dodge/Creature/Update.hs 461;" f
checkDeath' src/Dodge/Creature/Update.hs 464;" f checkDeath' src/Dodge/Creature/Update.hs 464;" f
@@ -2916,7 +2916,7 @@ checkErrorGL src/Shader/Compile.hs 86;" f
checkFBO src/Framebuffer/Check.hs 6;" f checkFBO src/Framebuffer/Check.hs 6;" f
checkGLError src/GLHelp.hs 17;" f checkGLError src/GLHelp.hs 17;" f
checkInvSlotsYou src/Dodge/Inventory/CheckSlots.hs 18;" 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 413;" f checkTermDist src/Dodge/Update.hs 413;" f
checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f
checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f
@@ -2998,7 +2998,7 @@ combinationsOf src/Multiset.hs 46;" f
combinationsTrie src/Dodge/Combine.hs 44;" f combinationsTrie src/Dodge/Combine.hs 44;" f
combineAwareness src/Dodge/Creature/Perception.hs 119;" f combineAwareness src/Dodge/Creature/Perception.hs 119;" f
combineFloors src/Dodge/Room/Procedural.hs 154;" f combineFloors src/Dodge/Room/Procedural.hs 154;" f
combineInventoryExtra src/Dodge/Render/HUD.hs 324;" f combineInventoryExtra src/Dodge/Render/HUD.hs 323;" f
combineItemListYouX src/Dodge/Combine.hs 36;" f combineItemListYouX src/Dodge/Combine.hs 36;" f
combineList src/Dodge/Combine.hs 21;" f combineList src/Dodge/Combine.hs 21;" f
combineRooms src/Dodge/Room/Procedural.hs 134;" f combineRooms src/Dodge/Room/Procedural.hs 134;" f
@@ -3025,7 +3025,7 @@ connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 802;" f
constructEdges src/Polyhedra.hs 31;" f constructEdges src/Polyhedra.hs 31;" f
constructEdgesList src/Polyhedra.hs 40;" f constructEdgesList src/Polyhedra.hs 40;" f
contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f
continueTerminal src/Dodge/Update/Input/InGame.hs 407;" f continueTerminal src/Dodge/Update/Input/InGame.hs 405;" f
convexHull src/Geometry/Polygon.hs 150;" f convexHull src/Geometry/Polygon.hs 150;" f
convexHullSafe src/Geometry/Polygon.hs 172;" f convexHullSafe src/Geometry/Polygon.hs 172;" f
convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f
@@ -3067,7 +3067,7 @@ crLeftHandWall src/Dodge/Creature/HandPos.hs 94;" f
crMass src/Dodge/Creature/Mass.hs 5;" f crMass src/Dodge/Creature/Mass.hs 5;" f
crMaterial src/Dodge/Creature/Material.hs 8;" f crMaterial src/Dodge/Creature/Material.hs 8;" f
crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f crMaxHP src/Dodge/Creature/MaxHP.hs 6;" f
crMoveImpulses src/Dodge/Creature/Action.hs 140;" f crMoveImpulses src/Dodge/Creature/Action.hs 143;" f
crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 39;" f crMvAbsolute src/Dodge/Creature/Impulse/Movement.hs 39;" f
crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 56;" f crMvAbsoluteNoStride src/Dodge/Creature/Impulse/Movement.hs 56;" f
crMvBy src/Dodge/Creature/Impulse/Movement.hs 28;" f crMvBy src/Dodge/Creature/Impulse/Movement.hs 28;" f
@@ -3080,7 +3080,7 @@ crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f
crOnSeg src/Dodge/WorldEvent/ThingsHit.hs 249;" f crOnSeg src/Dodge/WorldEvent/ThingsHit.hs 249;" f
crOnSeg' src/Dodge/Creature/State/WalkCycle.hs 145;" f crOnSeg' src/Dodge/Creature/State/WalkCycle.hs 145;" f
crPainEffect src/Dodge/Creature/State.hs 50;" f crPainEffect src/Dodge/Creature/State.hs 50;" f
crPathing src/Dodge/Creature/Action.hs 124;" f crPathing src/Dodge/Creature/Action.hs 127;" f
crRad src/Dodge/Creature/Radius.hs 7;" f crRad src/Dodge/Creature/Radius.hs 7;" f
crRightHandWall src/Dodge/Creature/HandPos.hs 76;" f crRightHandWall src/Dodge/Creature/HandPos.hs 76;" f
crSafeDistFromTarg src/Dodge/Creature/Test.hs 71;" f crSafeDistFromTarg src/Dodge/Creature/Test.hs 71;" f
@@ -3112,7 +3112,7 @@ crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f
createForceField src/Dodge/ForceField.hs 7;" f createForceField src/Dodge/ForceField.hs 7;" f
createGas src/Dodge/Gas.hs 10;" f createGas src/Dodge/Gas.hs 10;" f
createHeadLamp src/Dodge/Euse.hs 64;" f createHeadLamp src/Dodge/Euse.hs 64;" f
createItemYou src/Dodge/Inventory/Add.hs 64;" f createItemYou src/Dodge/Inventory/Add.hs 74;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createProjectile src/Dodge/HeldUse.hs 1305;" f createProjectile src/Dodge/HeldUse.hs 1305;" f
createProjectileR src/Dodge/HeldUse.hs 1254;" f createProjectileR src/Dodge/HeldUse.hs 1254;" f
@@ -3289,6 +3289,7 @@ defaultWindow src/Dodge/Default/Wall.hs 54;" f
defaultWorld src/Dodge/Default/World.hs 34;" f defaultWorld src/Dodge/Default/World.hs 34;" f
degToRad src/Geometry/Vector.hs 126;" f degToRad src/Geometry/Vector.hs 126;" f
deleteIMInZone src/Dodge/Base.hs 70;" f deleteIMInZone src/Dodge/Base.hs 70;" f
deleteShift src/IntSetHelp.hs 12;" f
deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f
deleteWallID src/Dodge/Wall/Delete.hs 13;" f deleteWallID src/Dodge/Wall/Delete.hs 13;" f
deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f
@@ -3324,8 +3325,8 @@ disconnectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 848;" f
displayConfig src/Dodge/Menu.hs 223;" f displayConfig src/Dodge/Menu.hs 223;" f
displayControls src/Dodge/Menu.hs 239;" f displayControls src/Dodge/Menu.hs 239;" f
displayFrameTicks src/Dodge/Render/Picture.hs 50;" f displayFrameTicks src/Dodge/Render/Picture.hs 50;" f
displayFreeSlots src/Dodge/DisplayInventory.hs 196;" f displayFreeSlots src/Dodge/DisplayInventory.hs 197;" f
displayIndents src/Dodge/DisplayInventory.hs 110;" f displayIndents src/Dodge/DisplayInventory.hs 111;" f
displayPulse src/Dodge/Inventory/SelectionList.hs 192;" f displayPulse src/Dodge/Inventory/SelectionList.hs 192;" f
displayTerminalLineString src/Dodge/Update.hs 586;" f displayTerminalLineString src/Dodge/Update.hs 586;" f
dist src/Geometry/Vector.hs 193;" f dist src/Geometry/Vector.hs 193;" f
@@ -3368,7 +3369,7 @@ doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 59;" f
doDoorLerp src/Dodge/Door/DoorLerp.hs 8;" f doDoorLerp src/Dodge/Door/DoorLerp.hs 8;" f
doDoorMount src/Dodge/Door.hs 32;" f doDoorMount src/Dodge/Door.hs 32;" f
doDrag src/Dodge/Update/Input/InGame.hs 136;" f doDrag src/Dodge/Update/Input/InGame.hs 136;" f
doDragSelect src/Dodge/Update/Input/InGame.hs 216;" f doDragSelect src/Dodge/Update/Input/InGame.hs 214;" f
doDrawing src/Dodge/Render.hs 33;" f doDrawing src/Dodge/Render.hs 33;" f
doDrawing' src/Dodge/Render.hs 44;" f doDrawing' src/Dodge/Render.hs 44;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f
@@ -3387,11 +3388,11 @@ doPreload appDodge/Main.hs 133;" f
doQuickload src/Dodge/Save.hs 83;" f doQuickload src/Dodge/Save.hs 83;" f
doQuicksave src/Dodge/Save.hs 77;" f doQuicksave src/Dodge/Save.hs 77;" f
doRandImpulse src/Dodge/RandImpulse.hs 8;" f doRandImpulse src/Dodge/RandImpulse.hs 8;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 460;" f doRegexInput src/Dodge/Update/Input/InGame.hs 458;" f
doRoomPlacements src/Dodge/Layout.hs 121;" f doRoomPlacements src/Dodge/Layout.hs 121;" f
doRoomShift src/Dodge/Room/Link.hs 34;" f doRoomShift src/Dodge/Room/Link.hs 34;" f
doScopeZoom src/Dodge/Update/Scroll.hs 89;" f doScopeZoom src/Dodge/Update/Scroll.hs 89;" f
doSectionSize src/Dodge/DisplayInventory.hs 215;" f doSectionSize src/Dodge/DisplayInventory.hs 216;" f
doSideEffects appDodge/Main.hs 118;" f doSideEffects appDodge/Main.hs 118;" f
doSlimeRadChange src/Dodge/Creature/Update.hs 299;" f doSlimeRadChange src/Dodge/Creature/Update.hs 299;" f
doTabComplete src/Dodge/Terminal.hs 241;" f doTabComplete src/Dodge/Terminal.hs 241;" f
@@ -3536,8 +3537,8 @@ drawSubInventory src/Dodge/Render/HUD.hs 166;" f
drawSwitch src/Dodge/Button/Draw.hs 18;" f drawSwitch src/Dodge/Button/Draw.hs 18;" f
drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f
drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f
drawTerminalCursorLink src/Dodge/Render/HUD.hs 380;" f drawTerminalCursorLink src/Dodge/Render/HUD.hs 379;" f
drawTerminalDisplay src/Dodge/Render/HUD.hs 341;" f drawTerminalDisplay src/Dodge/Render/HUD.hs 340;" f
drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f
drawText src/Picture/Base.hs 224;" f drawText src/Picture/Base.hs 224;" f
drawTitle src/Dodge/Render/MenuScreen.hs 49;" f drawTitle src/Dodge/Render/MenuScreen.hs 49;" f
@@ -3559,7 +3560,7 @@ drawZoneCol src/Dodge/Debug/Picture.hs 149;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f
dropAll src/Dodge/Creature/Update.hs 546;" f dropAll src/Dodge/Creature/Update.hs 546;" f
dropInventoryPath src/Dodge/HeldUse.hs 1380;" f dropInventoryPath src/Dodge/HeldUse.hs 1380;" f
dropItem src/Dodge/Creature/Action.hs 176;" f dropItem src/Dodge/Creature/Action.hs 179;" f
dropper src/Dodge/Item/Scope.hs 82;" f dropper src/Dodge/Item/Scope.hs 82;" f
drumMag src/Dodge/Item/Ammo.hs 31;" f drumMag src/Dodge/Item/Ammo.hs 31;" f
dsZoneSize src/Dodge/Zoning/Cloud.hs 51;" f dsZoneSize src/Dodge/Zoning/Cloud.hs 51;" f
@@ -3599,10 +3600,10 @@ encircleCloseP src/Dodge/Creature/Boid.hs 38;" f
encircleDistP src/Dodge/Creature/Boid.hs 24;" f encircleDistP src/Dodge/Creature/Boid.hs 24;" f
encircleP src/Dodge/Creature/Boid.hs 30;" f encircleP src/Dodge/Creature/Boid.hs 30;" f
endArcPos src/Dodge/Tesla.hs 87;" f endArcPos src/Dodge/Tesla.hs 87;" f
endCombineRegex src/Dodge/Update/Input/InGame.hs 295;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 293;" f
endRegex src/Dodge/Update/Input/InGame.hs 289;" f endRegex src/Dodge/Update/Input/InGame.hs 287;" f
energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f
enterCombineInv src/Dodge/DisplayInventory.hs 321;" f enterCombineInv src/Dodge/DisplayInventory.hs 322;" f
enumOption src/Dodge/Menu/OptionType.hs 17;" f enumOption src/Dodge/Menu/OptionType.hs 17;" f
epText src/Dodge/Inventory/SelectionList.hs 74;" f epText src/Dodge/Inventory/SelectionList.hs 74;" f
eqConstr src/SameConstr.hs 17;" f eqConstr src/SameConstr.hs 17;" f
@@ -3650,7 +3651,7 @@ fdiv src/ShortShow.hs 41;" f
feedSlime src/Dodge/Update.hs 1080;" f feedSlime src/Dodge/Update.hs 1080;" f
feet src/Dodge/Creature/Picture.hs 226;" f feet src/Dodge/Creature/Picture.hs 226;" f
filter3 src/FoldableHelp.hs 76;" f filter3 src/FoldableHelp.hs 76;" f
filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f filterSectionsPair src/Dodge/DisplayInventory.hs 161;" f
findBlips src/Dodge/RadarSweep.hs 63;" f findBlips src/Dodge/RadarSweep.hs 63;" f
findBoundDists src/Dodge/Update/Camera.hs 252;" f findBoundDists src/Dodge/Update/Camera.hs 252;" f
findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f
@@ -3759,7 +3760,7 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 90;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 175;" f getBulHitDams src/Dodge/Bullet.hs 175;" f
getBulletType src/Dodge/HeldUse.hs 945;" f getBulletType src/Dodge/HeldUse.hs 945;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 584;" f getCloseObj src/Dodge/Update/Input/InGame.hs 578;" f
getCommand src/Dodge/Terminal.hs 61;" f getCommand src/Dodge/Terminal.hs 61;" f
getCommands src/Dodge/Terminal.hs 58;" f getCommands src/Dodge/Terminal.hs 58;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f
@@ -3784,7 +3785,7 @@ getRoomFromID src/Dodge/Room/Modify.hs 31;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 611;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 611;" f
getRootItemBounds src/Dodge/Render/HUD.hs 98;" f getRootItemBounds src/Dodge/Render/HUD.hs 98;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 18;" f
getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f
getSplitString src/Dodge/Debug/Terminal.hs 129;" f getSplitString src/Dodge/Debug/Terminal.hs 129;" f
getTiles src/Dodge/Layout.hs 224;" f getTiles src/Dodge/Layout.hs 224;" f
@@ -3944,7 +3945,7 @@ insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 131;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 131;" f
insertWithNewKeys src/IntMapHelp.hs 71;" f insertWithNewKeys src/IntMapHelp.hs 71;" f
intAnno src/Dodge/Floor.hs 110;" f intAnno src/Dodge/Floor.hs 110;" f
interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f interactWithCloseObj src/Dodge/SelectedClose.hs 11;" f
interpWith src/Dodge/Creature/Boid.hs 13;" f interpWith src/Dodge/Creature/Boid.hs 13;" f
intersectCircLine src/Geometry/Intersect.hs 368;" f intersectCircLine src/Geometry/Intersect.hs 368;" f
intersectCircLineAlong src/Geometry/Intersect.hs 359;" f intersectCircLineAlong src/Geometry/Intersect.hs 359;" f
@@ -3979,8 +3980,8 @@ invCursorParams src/Dodge/ListDisplayParams.hs 35;" f
invDP src/Dodge/ListDisplayParams.hs 32;" f invDP src/Dodge/ListDisplayParams.hs 32;" f
invDT src/Dodge/Item/Grammar.hs 227;" f invDT src/Dodge/Item/Grammar.hs 227;" f
invDT' src/Dodge/Item/Grammar.hs 232;" f invDT' src/Dodge/Item/Grammar.hs 232;" f
invDimColor src/Dodge/DisplayInventory.hs 190;" f invDimColor src/Dodge/DisplayInventory.hs 191;" f
invHead src/Dodge/Render/HUD.hs 410;" f invHead src/Dodge/Render/HUD.hs 409;" f
invIMDT src/Dodge/Item/Grammar.hs 256;" f invIMDT src/Dodge/Item/Grammar.hs 256;" f
invIndents src/Dodge/Item/Grammar.hs 263;" f invIndents src/Dodge/Item/Grammar.hs 263;" f
invItemEffs src/Dodge/Creature/State.hs 91;" f invItemEffs src/Dodge/Creature/State.hs 91;" f
@@ -4168,10 +4169,10 @@ listConfig src/Dodge/Menu.hs 232;" f
listControls src/Dodge/Menu.hs 244;" f listControls src/Dodge/Menu.hs 244;" f
listCursor src/Dodge/Render/List.hs 120;" f listCursor src/Dodge/Render/List.hs 120;" f
listGuard src/Dodge/Creature/ReaderUpdate.hs 287;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 287;" f
listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 300;" f
litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
lmt src/MatrixHelper.hs 53;" f lmt src/MatrixHelper.hs 53;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 399;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 398;" f
loadAmmoTut src/Dodge/Room/Tutorial.hs 475;" f loadAmmoTut src/Dodge/Room/Tutorial.hs 475;" f
loadDodgeConfig src/Dodge/Config.hs 30;" f loadDodgeConfig src/Dodge/Config.hs 30;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
@@ -4298,7 +4299,7 @@ maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 136;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 136;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 141;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 141;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 620;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 614;" f
maybeOpenConsole src/Dodge/Update.hs 135;" f maybeOpenConsole src/Dodge/Update.hs 135;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 135;" f maybeTakeOne src/RandomHelp.hs 135;" f
@@ -4494,7 +4495,7 @@ optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 53;" f
optionValueOffset src/Dodge/Menu/Option.hs 86;" f optionValueOffset src/Dodge/Menu/Option.hs 86;" f
optionsOptions src/Dodge/Menu.hs 113;" f optionsOptions src/Dodge/Menu.hs 113;" f
optionsToSelections src/Dodge/Menu/Option.hs 47;" f optionsToSelections src/Dodge/Menu/Option.hs 47;" f
orRegex src/Dodge/DisplayInventory.hs 82;" f orRegex src/Dodge/DisplayInventory.hs 83;" f
orange src/Color.hs 52;" f orange src/Color.hs 52;" f
orderAround3 src/Geometry/Vector3D.hs 106;" f orderAround3 src/Geometry/Vector3D.hs 106;" f
orderAroundFirst src/Geometry/Polygon.hs 128;" f orderAroundFirst src/Geometry/Polygon.hs 128;" f
@@ -4540,7 +4541,7 @@ passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 693;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 87;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 576;" f pauseGame src/Dodge/Update/Input/InGame.hs 570;" f
pauseMenu src/Dodge/Menu.hs 57;" f pauseMenu src/Dodge/Menu.hs 57;" f
pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseMenuOptions src/Dodge/Menu.hs 64;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f pauseSound src/Dodge/SoundLogic.hs 42;" f
@@ -4552,14 +4553,14 @@ pedestalRoom src/Dodge/Room/Containing.hs 50;" f
penThing src/Dodge/Bullet.hs 217;" f penThing src/Dodge/Bullet.hs 217;" f
perMat src/MatrixHelper.hs 60;" f perMat src/MatrixHelper.hs 60;" f
perceptionUpdate src/Dodge/Creature/Perception.hs 25;" f perceptionUpdate src/Dodge/Creature/Perception.hs 25;" f
performAction src/Dodge/Creature/Action.hs 58;" f performAction src/Dodge/Creature/Action.hs 61;" f
performActions src/Dodge/Creature/Action.hs 41;" f performActions src/Dodge/Creature/Action.hs 44;" f
performAimAt src/Dodge/Creature/Action.hs 108;" f performAimAt src/Dodge/Creature/Action.hs 111;" f
performPathTo src/Dodge/Creature/Action.hs 129;" f performPathTo src/Dodge/Creature/Action.hs 132;" f
performTurnToA src/Dodge/Creature/Action.hs 149;" f performTurnToA src/Dodge/Creature/Action.hs 152;" f
perspectiveMatrixb src/MatrixHelper.hs 11;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f
pickUpItem src/Dodge/Inventory/Add.hs 72;" f pickUpItem src/Dodge/Inventory/Add.hs 82;" f
pickUpItemAt src/Dodge/Inventory/Add.hs 77;" f pickUpItemAt src/Dodge/Inventory/Add.hs 87;" f
pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 830;" f pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 830;" f
pincerP src/Dodge/Creature/Boid.hs 63;" f pincerP src/Dodge/Creature/Boid.hs 63;" f
pincerP' src/Dodge/Creature/Boid.hs 96;" f pincerP' src/Dodge/Creature/Boid.hs 96;" f
@@ -4586,7 +4587,7 @@ placeSpotID src/Dodge/Placement/PlaceSpot.hs 99;" f
placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 84;" f placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 84;" f
placeSpotUsingRoomPos src/Dodge/Placement/PlaceSpot.hs 62;" f placeSpotUsingRoomPos src/Dodge/Placement/PlaceSpot.hs 62;" f
placeWallPoly src/Dodge/Placement/PlaceSpot.hs 157;" f placeWallPoly src/Dodge/Placement/PlaceSpot.hs 157;" f
plainRegex src/Dodge/DisplayInventory.hs 193;" f plainRegex src/Dodge/DisplayInventory.hs 194;" f
playIfFree src/Sound.hs 139;" f playIfFree src/Sound.hs 139;" f
playPositionalSoundQueue src/Sound.hs 147;" f playPositionalSoundQueue src/Sound.hs 147;" f
playSoundAndUpdate src/Sound.hs 55;" f playSoundAndUpdate src/Sound.hs 55;" f
@@ -4830,8 +4831,8 @@ reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 20;" f
reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 65;" f reflectPulseLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 65;" f
refract src/Dodge/Item/Weapon/LaserPath.hs 39;" f refract src/Dodge/Item/Weapon/LaserPath.hs 39;" f
refreshOptionsSelectionList src/Dodge/Menu/Option.hs 35;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 35;" f
regexCombs src/Dodge/DisplayInventory.hs 72;" f regexCombs src/Dodge/DisplayInventory.hs 73;" f
regexList src/Dodge/DisplayInventory.hs 312;" f regexList src/Dodge/DisplayInventory.hs 313;" f
reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 754;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 754;" f
reloadFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 860;" f reloadFailS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 860;" f
reloadLevelStart src/Dodge/Save.hs 71;" f reloadLevelStart src/Dodge/Save.hs 71;" f
@@ -5005,20 +5006,20 @@ seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 808;" f
seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f
searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 304;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 304;" f
secondColumnLDP src/Dodge/ListDisplayParams.hs 45;" f secondColumnLDP src/Dodge/ListDisplayParams.hs 45;" f
sectionsDesiredLines src/Dodge/DisplayInventory.hs 202;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 203;" f
sectionsSizes src/Dodge/DisplayInventory.hs 205;" f sectionsSizes src/Dodge/DisplayInventory.hs 206;" f
seedStartMenu src/Dodge/Menu.hs 85;" f seedStartMenu src/Dodge/Menu.hs 85;" f
seedStartOptions src/Dodge/Menu.hs 88;" f seedStartOptions src/Dodge/Menu.hs 88;" f
segOnCirc src/Geometry.hs 113;" f segOnCirc src/Geometry.hs 113;" f
segmentArea src/Dodge/Creature/Update.hs 355;" f segmentArea src/Dodge/Creature/Update.hs 355;" f
selNumPos src/Dodge/Render/HUD.hs 459;" f selNumPos src/Dodge/Render/HUD.hs 458;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 476;" f selNumPosCardinal src/Dodge/Render/HUD.hs 475;" f
selSecDrawCursor src/Dodge/Render/List.hs 101;" f selSecDrawCursor src/Dodge/Render/List.hs 101;" f
selSecSelCol src/Dodge/Render/HUD.hs 496;" f selSecSelCol src/Dodge/Render/HUD.hs 495;" f
selSecSelSize src/Dodge/SelectionSections.hs 178;" f selSecSelSize src/Dodge/SelectionSections.hs 178;" f
selSecYint src/Dodge/SelectionSections.hs 187;" f selSecYint src/Dodge/SelectionSections.hs 187;" f
selectedItemScroll src/Dodge/Update/Scroll.hs 49;" f selectedItemScroll src/Dodge/Update/Scroll.hs 49;" f
selectionSet src/Dodge/Update/Input/InGame.hs 162;" f selectionSet src/Dodge/Update/Input/InGame.hs 161;" f
semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 846;" f semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 846;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 68;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 68;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 77;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 77;" f
@@ -5053,7 +5054,7 @@ setOutLinksByType src/Dodge/RoomLink.hs 76;" f
setOutLinksPD src/Dodge/RoomLink.hs 96;" f setOutLinksPD src/Dodge/RoomLink.hs 96;" f
setPixelOffsetBounded src/Dodge/Update/Input/InGame.hs 123;" f setPixelOffsetBounded src/Dodge/Update/Input/InGame.hs 123;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 318;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 318;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 351;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 349;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f
setShaderSource src/Shader/Compile.hs 121;" f setShaderSource src/Shader/Compile.hs 121;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f setShadowLimits src/Dodge/Shadows.hs 11;" f
@@ -5096,7 +5097,7 @@ shiftByV2 src/Dodge/PlacementSpot.hs 257;" f
shiftChildren src/Dodge/Tree/Compose.hs 45;" f shiftChildren src/Dodge/Tree/Compose.hs 45;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 111;" f shiftDraw src/Dodge/Render/ShapePicture.hs 111;" f
shiftInBy src/Dodge/PlacementSpot.hs 254;" f shiftInBy src/Dodge/PlacementSpot.hs 254;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 319;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 317;" f
shiftInvItemsDown src/Dodge/Inventory.hs 186;" f shiftInvItemsDown src/Dodge/Inventory.hs 186;" f
shiftInvItemsUp src/Dodge/Inventory.hs 196;" f shiftInvItemsUp src/Dodge/Inventory.hs 196;" f
shiftLinkBy src/Dodge/Room/Link.hs 89;" f shiftLinkBy src/Dodge/Room/Link.hs 89;" f
@@ -5230,7 +5231,7 @@ soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 89;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 89;" f
spPos src/ShapePicture/Data.hs 11;" f spPos src/ShapePicture/Data.hs 11;" f
spaceAction src/Dodge/Update/Input/InGame.hs 579;" f spaceAction src/Dodge/Update/Input/InGame.hs 573;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 162;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 162;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 155;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 155;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 147;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 147;" f
@@ -5294,7 +5295,7 @@ stackedInventory src/Dodge/Creature.hs 318;" f
startCr src/Dodge/Creature.hs 83;" f startCr src/Dodge/Creature.hs 83;" f
startCrafts src/Dodge/Room/Start.hs 94;" f startCrafts src/Dodge/Room/Start.hs 94;" f
startDeathTimer src/Dodge/Creature/Update.hs 495;" f startDeathTimer src/Dodge/Creature/Update.hs 495;" f
startDrag src/Dodge/Update/Input/InGame.hs 304;" f startDrag src/Dodge/Update/Input/InGame.hs 302;" f
startInvList src/Dodge/Creature.hs 97;" f startInvList src/Dodge/Creature.hs 97;" f
startInventory src/Dodge/Creature.hs 100;" f startInventory src/Dodge/Creature.hs 100;" f
startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f
@@ -5338,7 +5339,7 @@ swapItemWith src/Dodge/Inventory.hs 280;" f
swapSelSet src/Dodge/Inventory.hs 160;" f swapSelSet src/Dodge/Inventory.hs 160;" f
swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f
swarmUsingCenter src/Dodge/Creature/Boid.hs 174;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 174;" f
symmetricDifference src/Dodge/Update/Input/InGame.hs 228;" f symmetricDifference src/Dodge/Update/Input/InGame.hs 226;" f
t src/ShortShow.hs 48;" f t src/ShortShow.hs 48;" f
tEast src/Dodge/Room/Corridor.hs 96;" f tEast src/Dodge/Room/Corridor.hs 96;" f
tToBTree src/Dodge/Tree/Compose.hs 93;" f tToBTree src/Dodge/Tree/Compose.hs 93;" f
@@ -5419,7 +5420,7 @@ thingsHitZ' src/Dodge/WorldEvent/ThingsHit.hs 65;" f
threeLineDecoration src/Dodge/Placement/TopDecoration.hs 67;" f threeLineDecoration src/Dodge/Placement/TopDecoration.hs 67;" f
throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 862;" f throb1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 862;" f
throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 820;" f throbC4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 820;" f
throwItem src/Dodge/Creature/Action.hs 209;" f throwItem src/Dodge/Creature/Action.hs 222;" f
tileTexCoords src/Tile.hs 11;" f tileTexCoords src/Tile.hs 11;" f
tilesFromRooms src/Dodge/Layout.hs 221;" f tilesFromRooms src/Dodge/Layout.hs 221;" f
tilesToLine src/Shader/AuxAddition.hs 66;" f tilesToLine src/Shader/AuxAddition.hs 66;" f
@@ -5456,7 +5457,7 @@ toV2 src/Geometry/Data.hs 54;" f
toV3 src/Geometry/Data.hs 57;" f toV3 src/Geometry/Data.hs 57;" f
toV4 src/Geometry/Data.hs 60;" f toV4 src/Geometry/Data.hs 60;" f
tocrs src/Dodge/TestString.hs 40;" f tocrs src/Dodge/TestString.hs 40;" f
toggleCombineInv src/Dodge/DisplayInventory.hs 315;" f toggleCombineInv src/Dodge/DisplayInventory.hs 316;" f
toggleCommands src/Dodge/Terminal.hs 86;" f toggleCommands src/Dodge/Terminal.hs 86;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 68;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 68;" f
toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 106;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 106;" f
@@ -5524,17 +5525,17 @@ truncate src/Polyhedra/Geodesic.hs 39;" f
trunkDepth src/TreeHelp.hs 164;" f trunkDepth src/TreeHelp.hs 164;" f
tryAttachItems src/Dodge/Item/Grammar.hs 35;" f tryAttachItems src/Dodge/Item/Grammar.hs 35;" f
tryClickUse src/Dodge/Creature/YourControl.hs 207;" f tryClickUse src/Dodge/Creature/YourControl.hs 207;" f
tryCombine src/Dodge/Update/Input/InGame.hs 596;" f tryCombine src/Dodge/Update/Input/InGame.hs 590;" f
tryDrawToCapacitor src/Dodge/Creature/State.hs 179;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 179;" f
tryDropSelected src/Dodge/Update/Input/InGame.hs 147;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 147;" f
tryEvadeSideways src/Dodge/Creature/Action.hs 101;" f tryEvadeSideways src/Dodge/Creature/Action.hs 104;" f
tryGetChannel src/Sound.hs 99;" f tryGetChannel src/Sound.hs 99;" f
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f
tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 42;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 42;" f
tryPickupSelected src/Dodge/Update/Input/InGame.hs 174;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 173;" f
tryPlay src/Sound.hs 85;" f tryPlay src/Sound.hs 85;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 25;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 25;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 56;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 66;" f
trySeedFromClipboard src/Dodge/Menu.hs 94;" f trySeedFromClipboard src/Dodge/Menu.hs 94;" f
trySpin src/Dodge/Projectile/Update.hs 120;" f trySpin src/Dodge/Projectile/Update.hs 120;" f
trySynthBullet src/Dodge/Creature/State.hs 195;" f trySynthBullet src/Dodge/Creature/State.hs 195;" f
@@ -5584,7 +5585,7 @@ updateAggroBee src/Dodge/Creature/Update.hs 129;" f
updateAimPos src/Dodge/Update.hs 400;" f updateAimPos src/Dodge/Update.hs 400;" f
updateAllNodes src/TreeHelp.hs 88;" f updateAllNodes src/TreeHelp.hs 88;" f
updateArc src/Dodge/Tesla.hs 44;" f updateArc src/Dodge/Tesla.hs 44;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 491;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 489;" f
updateBarrel src/Dodge/Barreloid.hs 43;" f updateBarrel src/Dodge/Barreloid.hs 43;" f
updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f
@@ -5604,8 +5605,8 @@ updateChaseCrit src/Dodge/Creature/Update.hs 371;" f
updateCloseObjects src/Dodge/Inventory.hs 129;" f updateCloseObjects src/Dodge/Inventory.hs 129;" f
updateCloud src/Dodge/Update.hs 920;" f updateCloud src/Dodge/Update.hs 920;" f
updateClouds src/Dodge/Update.hs 784;" f updateClouds src/Dodge/Update.hs 784;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 41;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 42;" f
updateCombineSections src/Dodge/DisplayInventory.hs 48;" f updateCombineSections src/Dodge/DisplayInventory.hs 49;" f
updateCreature src/Dodge/Creature/Update.hs 50;" f updateCreature src/Dodge/Creature/Update.hs 50;" f
updateCreatureGroups src/Dodge/Update.hs 645;" f updateCreatureGroups src/Dodge/Update.hs 645;" f
updateCreatureSoundPositions src/Dodge/Update.hs 624;" f updateCreatureSoundPositions src/Dodge/Update.hs 624;" f
@@ -5615,7 +5616,7 @@ updateDebris src/Dodge/Update.hs 687;" f
updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f updateDebrisChunk src/Dodge/Prop/Moving.hs 16;" f
updateDebugMessageOffset src/Dodge/Update.hs 104;" f updateDebugMessageOffset src/Dodge/Update.hs 104;" f
updateDelayedEvents src/Dodge/Update.hs 1117;" f updateDelayedEvents src/Dodge/Update.hs 1117;" f
updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f updateDisplaySections src/Dodge/DisplayInventory.hs 117;" f
updateDistortion src/Dodge/Distortion.hs 8;" f updateDistortion src/Dodge/Distortion.hs 8;" f
updateDistortions src/Dodge/Update.hs 666;" f updateDistortions src/Dodge/Update.hs 666;" f
updateDoor src/Dodge/Door.hs 22;" f updateDoor src/Dodge/Door.hs 22;" f
@@ -5628,14 +5629,14 @@ updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f
updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f
updateEnergyBall src/Dodge/EnergyBall.hs 32;" f updateEnergyBall src/Dodge/EnergyBall.hs 32;" f
updateEnergyBalls src/Dodge/Update.hs 775;" f updateEnergyBalls src/Dodge/Update.hs 775;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 536;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 534;" f
updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f
updateFlame src/Dodge/Flame.hs 19;" f updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 772;" f updateFlames src/Dodge/Update.hs 772;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 38;" f updateFloatingCamera src/Dodge/Update/Camera.hs 38;" f
updateFoodSearchChaseCrit src/Dodge/Creature/Update.hs 381;" f updateFoodSearchChaseCrit src/Dodge/Creature/Update.hs 381;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 366;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 362;" f
updateGas src/Dodge/Update.hs 942;" f updateGas src/Dodge/Update.hs 942;" f
updateGusts src/Dodge/Update.hs 904;" f updateGusts src/Dodge/Update.hs 904;" f
updateHiveCrit src/Dodge/Creature/Update.hs 82;" f updateHiveCrit src/Dodge/Creature/Update.hs 82;" f
@@ -5643,30 +5644,30 @@ updateHoverCrit src/Dodge/Humanoid.hs 25;" f
updateIMl src/Dodge/Update.hs 639;" f updateIMl src/Dodge/Update.hs 639;" f
updateIMl' src/Dodge/Update.hs 642;" f updateIMl' src/Dodge/Update.hs 642;" f
updateInGameCamera src/Dodge/Update/Camera.hs 86;" f updateInGameCamera src/Dodge/Update/Camera.hs 86;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 441;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 439;" f
updateInt2Map src/Dodge/Zoning/Base.hs 94;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f
updateItemTargeting src/Dodge/Creature/State.hs 288;" f updateItemTargeting src/Dodge/Creature/State.hs 288;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 401;" f updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 399;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 435;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 433;" f
updateKeysInGame src/Dodge/Update/Input/InGame.hs 81;" f updateKeysInGame src/Dodge/Update/Input/InGame.hs 81;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 387;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 385;" f
updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 410;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 408;" f
updateLampoid src/Dodge/Lampoid.hs 13;" f updateLampoid src/Dodge/Lampoid.hs 13;" f
updateLaser src/Dodge/Laser/Update.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 12;" f
updateLasers src/Dodge/Update.hs 517;" f updateLasers src/Dodge/Update.hs 517;" f
updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLivingCreature src/Dodge/Creature/Update.hs 61;" f updateLivingCreature src/Dodge/Creature/Update.hs 61;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 454;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 452;" f
updateMachine src/Dodge/Machine/Update.hs 24;" f updateMachine src/Dodge/Machine/Update.hs 24;" f
updateMagnets src/Dodge/Update.hs 408;" f updateMagnets src/Dodge/Update.hs 408;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 231;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 229;" f
updateMouseContext src/Dodge/Update.hs 421;" f updateMouseContext src/Dodge/Update.hs 421;" f
updateMouseContextGame src/Dodge/Update.hs 426;" f updateMouseContextGame src/Dodge/Update.hs 426;" f
updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 94;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 94;" f
updateMouseInGame src/Dodge/Update/Input/InGame.hs 84;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 84;" f
updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 200;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 198;" f
updateObjCatMaybes src/Dodge/Update.hs 657;" f updateObjCatMaybes src/Dodge/Update.hs 657;" f
updateObjMapMaybe src/Dodge/Update.hs 650;" f updateObjMapMaybe src/Dodge/Update.hs 650;" f
updatePastWorlds src/Dodge/Update.hs 506;" f updatePastWorlds src/Dodge/Update.hs 506;" f
@@ -5689,8 +5690,8 @@ updateRightParentSF src/Dodge/Item/Grammar.hs 190;" f
updateRootItemID src/Dodge/Inventory/Location.hs 42;" f updateRootItemID src/Dodge/Inventory/Location.hs 42;" f
updateScopeZoom src/Dodge/Update/Scroll.hs 77;" f updateScopeZoom src/Dodge/Update/Scroll.hs 77;" f
updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f
updateSection src/Dodge/DisplayInventory.hs 261;" f updateSection src/Dodge/DisplayInventory.hs 262;" f
updateSectionsPositioning src/Dodge/DisplayInventory.hs 241;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 242;" f
updateShockwave src/Dodge/Shockwave/Update.hs 8;" f updateShockwave src/Dodge/Shockwave/Update.hs 8;" f
updateShockwaves src/Dodge/Update.hs 769;" f updateShockwaves src/Dodge/Update.hs 769;" f
updateSingleNodes src/TreeHelp.hs 100;" f updateSingleNodes src/TreeHelp.hs 100;" f
@@ -5879,7 +5880,7 @@ yIntercepts src/Dodge/Zoning/Base.hs 78;" f
yV2 src/Geometry/Vector.hs 213;" f yV2 src/Geometry/Vector.hs 213;" f
yellow src/Color.hs 44;" f yellow src/Color.hs 44;" f
you src/Dodge/Base/You.hs 17;" f you src/Dodge/Base/You.hs 17;" f
youDropItem src/Dodge/Creature/Action.hs 195;" f youDropItem src/Dodge/Creature/Action.hs 208;" f
yourAugmentedItem src/Dodge/Render/HUD.hs 233;" f yourAugmentedItem src/Dodge/Render/HUD.hs 233;" f
yourControl src/Dodge/Creature/YourControl.hs 26;" f yourControl src/Dodge/Creature/YourControl.hs 26;" f
yourDefaultStrideLength src/Dodge/Default/Creature.hs 109;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 109;" f