Cleanup, display more information for floor items

This commit is contained in:
2026-05-16 14:11:16 +01:00
parent ec969c924a
commit 16def12959
5 changed files with 57 additions and 101 deletions
-3
View File
@@ -29,9 +29,6 @@ data ItemLocation
= InInv = InInv
{ _ilCrID :: Int { _ilCrID :: Int
, _ilInvID :: NewInt InvInt , _ilInvID :: NewInt InvInt
-- , _ilIsRoot :: Bool -- of any item
-- , _ilIsSelected :: Bool
--- , _ilIsAttached :: Bool -- to selected item. question: downwards and upwards?
, _ilEquipSite :: Maybe EquipSite , _ilEquipSite :: Maybe EquipSite
} }
| OnTurret {_ilTuID :: Int} | OnTurret {_ilTuID :: Int}
+3 -23
View File
@@ -4,12 +4,9 @@ module Dodge.Inventory.Location (
) where ) where
import Control.Lens import Control.Lens
import Data.Foldable
import qualified Data.IntSet as IS import qualified Data.IntSet as IS
import Data.Maybe import Data.Maybe
import Dodge.Base.You import Dodge.Base.You
import Dodge.Data.ComposedItem
import Dodge.Data.DoubleTree
import Dodge.Data.Item.Use.Consumption.LoadAction import Dodge.Data.Item.Use.Consumption.LoadAction
import Dodge.Data.World import Dodge.Data.World
import Dodge.Item.AimStance import Dodge.Item.AimStance
@@ -28,28 +25,14 @@ tryGetRootAttachedFromInvID (NInt invid) im = do
t <- imroots ^? ix theroot . _2 t <- imroots ^? ix theroot . _2
return (theroot, foldMap (IS.singleton . (^?! itLocation . ilInvID . unNInt)) t) return (theroot, foldMap (IS.singleton . (^?! itLocation . ilInvID . unNInt)) t)
-- the following assumes that the crManipulation is correct
crUpdateItemLocations :: World -> World crUpdateItemLocations :: World -> World
crUpdateItemLocations lw = fromMaybe lw $ do crUpdateItemLocations lw = fromMaybe lw $ do
mo <- lw ^? hud . manObject
cinv <- lw ^? cWorld . lWorld . creatures . ix 0 . crInv cinv <- lw ^? cWorld . lWorld . creatures . ix 0 . crInv
let crinv = fmap (\k -> lw ^?! cWorld . lWorld . items . ix k) cinv let crinv = fmap (\k -> lw ^?! cWorld . lWorld . items . ix k) cinv
return $ crSetRoots $ IM.foldlWithKey' (crUpdateInvidLocations mo) lw $ _unNIntMap crinv return $ IM.foldlWithKey' crUpdateInvidLocations lw $ _unNIntMap crinv
crSetRoots :: World -> World crUpdateInvidLocations :: World -> Int -> Item -> World
crSetRoots w = fromMaybe w Nothing crUpdateInvidLocations w invid itm =
-- $ do
-- inv <- w ^? cWorld . lWorld . creatures . ix 0 . crInv
-- let cinv = invIMDT $ fmap (\i -> w ^?! cWorld . lWorld . items . ix i) inv
-- return $ foldl' f (foldl' g w inv) cinv
-- where
-- g w' i = w' & cWorld . lWorld . items . ix i . itLocation . ilIsRoot .~ False
-- f :: World -> DTree OItem -> World
-- f w' x =
-- w' & cWorld . lWorld . items . ix (x ^. dtValue . _1 . itID . unNInt) . itLocation . ilIsRoot .~ True
crUpdateInvidLocations :: ManipulatedObject -> World -> Int -> Item -> World
crUpdateInvidLocations mo w invid itm =
w w
& cWorld . lWorld . creatures . ix 0 . crInv . ix (NInt invid) .~ itid & cWorld . lWorld . creatures . ix 0 . crInv . ix (NInt invid) .~ itid
& cWorld . lWorld . items . ix itid .~ (itm & itLocation .~ newloc) & cWorld . lWorld . items . ix itid .~ (itm & itLocation .~ newloc)
@@ -59,9 +42,6 @@ crUpdateInvidLocations mo w invid itm =
InInv InInv
{ _ilCrID = 0 { _ilCrID = 0
, _ilInvID = NInt invid , _ilInvID = NInt invid
-- , _ilIsRoot = Just (NInt invid) == mo ^? hiRootSelectedItem
-- , _ilIsSelected = Just (Sel 0 invid) == w ^? hud . diSelection . _Just
-- , _ilIsAttached = invid `IS.member` (mo ^. hiAttachedItems)
, _ilEquipSite = w ^? cWorld . lWorld . items . ix itid . itLocation . ilEquipSite . _Just , _ilEquipSite = w ^? cWorld . lWorld . items . ix itid . itLocation . ilEquipSite . _Just
} }
+10 -13
View File
@@ -33,9 +33,9 @@ import Picture.Base
invSelectionItem :: World -> Int -> LocationDT OItem -> SelectionItem () invSelectionItem :: World -> Int -> LocationDT OItem -> SelectionItem ()
invSelectionItem w indent loc = invSelectionItem w indent loc =
SelItem SelItem
{ _siPictures = itemDisplay w cr ci { _siPictures = itemDisplay w (Just cr) $ ci ^. _1
, _siHeight = itInvHeight $ ci ^. _1 , _siHeight = itInvHeight $ ci ^. _1
, _siWidth = maximum (15 : (length <$> itemDisplay w cr ci)) , _siWidth = maximum (15 : (length <$> itemDisplay w (Just cr) (ci^._1)))
, _siIsSelectable = True , _siIsSelectable = True
, _siColor = itemInvColor ci , _siColor = itemInvColor ci
, _siOffX = indent , _siOffX = indent
@@ -51,10 +51,9 @@ invSelectionItem w indent loc =
-- note the convoluted display of the hotkey/equipment, this was done to avoid a -- note the convoluted display of the hotkey/equipment, this was done to avoid a
-- space leak -- space leak
itemDisplay :: World -> Creature -> CItem -> [String] itemDisplay :: World -> Maybe Creature -> Item -> [String]
itemDisplay w cr ci = basicItemDisplay itm `g` anyextra itemDisplay w mcr itm = basicItemDisplay itm `g` anyextra
where where
itm = ci ^. _1
NInt itid = itm ^. itID NInt itid = itm ^. itID
g (x:xs) (Just y) = (x <> y) : xs g (x:xs) (Just y) = (x <> y) : xs
g xs _ = xs g xs _ = xs
@@ -62,11 +61,11 @@ itemDisplay w cr ci = basicItemDisplay itm `g` anyextra
anyhotkey = fmap hotkeyToString anyhotkey = fmap hotkeyToString
(w ^? cWorld . lWorld . imHotkeys . unNIntMap . ix itid) (w ^? cWorld . lWorld . imHotkeys . unNIntMap . ix itid)
anyequippos = do anyequippos = do
_ <- ci ^? _1 . itType . ibtEquip _ <- itm ^? itType . ibtEquip
epText <$> ci ^? _1 . itLocation . ilEquipSite epText <$> itm ^? itLocation . ilEquipSite
anyscroll = fmap absurround $ itemScrollDisplay =<< (ci ^? _1) anyscroll = fmap absurround $ itemScrollDisplay =<< Just itm
absurround str = " <" ++ str ++ ">" absurround str = " <" ++ str ++ ">"
anyexternal = fae <$> itemExternalValue itm w cr anyexternal = fae <$> (itemExternalValue itm w =<< mcr)
-- will probably want to remote the ! -- will probably want to remote the !
fae (Left i) = " !"++shortShow i fae (Left i) = " !"++shortShow i
fae (Right s) = " !" ++ s fae (Right s) = " !" ++ s
@@ -221,7 +220,8 @@ hotkeyToChar = \case
closeItemToSelectionItem :: World -> Int -> Maybe (SelectionItem ()) closeItemToSelectionItem :: World -> Int -> Maybe (SelectionItem ())
closeItemToSelectionItem w i = do closeItemToSelectionItem w i = do
e <- w ^? cWorld . lWorld . items . ix i e <- w ^? cWorld . lWorld . items . ix i
let (pics, col) = closeItemToTextPictures e let pics = itemDisplay w Nothing e
col = itemInvColor (baseCI e)
return return
SelItem SelItem
{ _siPictures = pics { _siPictures = pics
@@ -260,6 +260,3 @@ btText bt = case _btEvent bt of
ButtonSwitch {} -> "SWITCH" ButtonSwitch {} -> "SWITCH"
ButtonDumbSwitch {} -> "SWITCH" -- do we want to show switch status? ButtonDumbSwitch {} -> "SWITCH" -- do we want to show switch status?
ButtonAccessTerminal i -> "TERMINAL " ++ show i ButtonAccessTerminal i -> "TERMINAL " ++ show i
closeItemToTextPictures :: Item -> ([String], Color)
closeItemToTextPictures it = (basicItemDisplay it, itemInvColor $ baseCI it)
+2 -14
View File
@@ -600,24 +600,12 @@ getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut
tryCombine :: (Int, Int) -> World -> World tryCombine :: (Int, Int) -> World -> World
tryCombine (i, j) w = fromMaybe w $ do tryCombine (i, j) w = fromMaybe w $ do
CombItem is it <- CombItem is it <-
w w ^? hud . subInventory . ciSections . ix i . ssItems . ix j . siPayload . _Just
^? hud
. subInventory
. ciSections
. ix i
. ssItems
. ix j
. siPayload
. _Just
p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos . _xy p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos . _xy
return $ return $
createItemYou it (foldr (destroyInvItem 0 . NInt) w (sort is)) createItemYou it (foldr (destroyInvItem 0 . NInt) w (sort is))
& soundStart InventorySound p wrench1S Nothing & soundStart InventorySound p wrench1S Nothing
& hud & hud . diSections . ix 1 . ssSet .~ mempty
. diSections
. ix 1
. ssSet
.~ mempty
-- & hud . diSelection . _Just . slSet .~ mempty -- & hud . diSelection . _Just . slSet .~ mempty
+42 -48
View File
@@ -583,7 +583,7 @@ InLink src/Dodge/Data/Room.hs 49;" C
InParallelUniverse src/Dodge/Data/Scenario.hs 21;" C InParallelUniverse src/Dodge/Data/Scenario.hs 21;" C
InRealWorld src/Dodge/Data/Scenario.hs 18;" C InRealWorld src/Dodge/Data/Scenario.hs 18;" C
InSimulation src/Dodge/Data/Scenario.hs 20;" C InSimulation src/Dodge/Data/Scenario.hs 20;" C
InVoid src/Dodge/Data/Item/Location.hs 39;" C InVoid src/Dodge/Data/Item/Location.hs 36;" C
Inanimate src/Dodge/Data/ActionPlan.hs 15;" C Inanimate src/Dodge/Data/ActionPlan.hs 15;" C
IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 11;" C IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 11;" C
Inertial src/Dodge/Data/Damage.hs 28;" C Inertial src/Dodge/Data/Damage.hs 28;" C
@@ -931,14 +931,14 @@ ObjectType src/Dodge/Data/ObjectType.hs 9;" t
OnBack src/Dodge/Data/Equipment/Misc.hs 22;" C OnBack src/Dodge/Data/Equipment/Misc.hs 22;" C
OnChest src/Dodge/Data/Equipment/Misc.hs 21;" C OnChest src/Dodge/Data/Equipment/Misc.hs 21;" C
OnEdge src/Dodge/Data/Room.hs 52;" C OnEdge src/Dodge/Data/Room.hs 52;" C
OnFloor src/Dodge/Data/Item/Location.hs 38;" C OnFloor src/Dodge/Data/Item/Location.hs 35;" C
OnGround src/Dodge/Data/Creature/Stance.hs 30;" C OnGround src/Dodge/Data/Creature/Stance.hs 30;" C
OnHead src/Dodge/Data/Equipment/Misc.hs 20;" C OnHead src/Dodge/Data/Equipment/Misc.hs 20;" C
OnLeftLeg src/Dodge/Data/Equipment/Misc.hs 25;" C OnLeftLeg src/Dodge/Data/Equipment/Misc.hs 25;" C
OnLeftWrist src/Dodge/Data/Equipment/Misc.hs 23;" C OnLeftWrist src/Dodge/Data/Equipment/Misc.hs 23;" C
OnRightLeg src/Dodge/Data/Equipment/Misc.hs 26;" C OnRightLeg src/Dodge/Data/Equipment/Misc.hs 26;" C
OnRightWrist src/Dodge/Data/Equipment/Misc.hs 24;" C OnRightWrist src/Dodge/Data/Equipment/Misc.hs 24;" C
OnTurret src/Dodge/Data/Item/Location.hs 37;" C OnTurret src/Dodge/Data/Item/Location.hs 34;" C
OnceSound src/Dodge/Data/SoundOrigin.hs 14;" C OnceSound src/Dodge/Data/SoundOrigin.hs 14;" C
OneHand src/Dodge/Data/AimStance.hs 13;" C OneHand src/Dodge/Data/AimStance.hs 13;" C
OnwardCluster src/Dodge/Data/RoomCluster.hs 13;" C OnwardCluster src/Dodge/Data/RoomCluster.hs 13;" C
@@ -1932,12 +1932,9 @@ _ibtIntroScanType src/Dodge/Data/Item/Combine.hs 32;" f
_ibtPathing src/Dodge/Data/Item/Combine.hs 28;" f _ibtPathing src/Dodge/Data/Item/Combine.hs 28;" f
_ibtTargeting src/Dodge/Data/Item/Combine.hs 21;" f _ibtTargeting src/Dodge/Data/Item/Combine.hs 21;" f
_ilCrID src/Dodge/Data/Item/Location.hs 30;" f _ilCrID src/Dodge/Data/Item/Location.hs 30;" f
_ilEquipSite src/Dodge/Data/Item/Location.hs 35;" f _ilEquipSite src/Dodge/Data/Item/Location.hs 32;" f
_ilInvID src/Dodge/Data/Item/Location.hs 31;" f _ilInvID src/Dodge/Data/Item/Location.hs 31;" f
_ilIsAttached src/Dodge/Data/Item/Location.hs 34;" f _ilTuID src/Dodge/Data/Item/Location.hs 34;" f
_ilIsRoot src/Dodge/Data/Item/Location.hs 32;" f
_ilIsSelected src/Dodge/Data/Item/Location.hs 33;" f
_ilTuID src/Dodge/Data/Item/Location.hs 37;" f
_imHotkeys src/Dodge/Data/LWorld.hs 147;" f _imHotkeys src/Dodge/Data/LWorld.hs 147;" f
_immediateEffect src/Loop/Data.hs 9;" f _immediateEffect src/Loop/Data.hs 9;" f
_immediateUpdate src/Loop/Data.hs 12;" f _immediateUpdate src/Loop/Data.hs 12;" f
@@ -2600,7 +2597,7 @@ aShape src/Dodge/Placement/Instance/LightSource.hs 95;" f
aSound src/Dodge/SoundLogic.hs 74;" f aSound src/Dodge/SoundLogic.hs 74;" f
aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f aTreeStrut src/Dodge/Tree/GenerateStructure.hs 42;" f
accessTerminal src/Dodge/WorldEffect.hs 64;" f accessTerminal src/Dodge/WorldEffect.hs 64;" f
activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 77;" f activateDetonator src/Dodge/Creature/Impulse/UseItem.hs 69;" f
activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f activeTargetCursorPic src/Dodge/Targeting/Draw.hs 31;" f
addArmour src/Dodge/Creature.hs 75;" f addArmour src/Dodge/Creature.hs 75;" f
addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f addBranchAt src/Dodge/Tree/GenerateStructure.hs 18;" f
@@ -2861,7 +2858,7 @@ calcTexCoord src/Tile.hs 19;" f
canSee src/Dodge/Base/Collide.hs 333;" f canSee src/Dodge/Base/Collide.hs 333;" f
canSeeIndirect src/Dodge/Base/Collide.hs 340;" f canSeeIndirect src/Dodge/Base/Collide.hs 340;" f
canSpring src/Dodge/Update.hs 1007;" f canSpring src/Dodge/Update.hs 1007;" f
cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 23;" f cancelExamineInventory src/Dodge/Item/BackgroundEffect.hs 26;" f
capacitor src/Dodge/Item/Ammo.hs 67;" f capacitor src/Dodge/Item/Ammo.hs 67;" f
card8Vec src/Dodge/Base/CardinalPoint.hs 32;" f card8Vec src/Dodge/Base/CardinalPoint.hs 32;" f
cardList src/Dodge/Base/CardinalPoint.hs 7;" f cardList src/Dodge/Base/CardinalPoint.hs 7;" f
@@ -3018,10 +3015,10 @@ 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
convexPolysOverlapWitness src/Geometry/ConvexPoly.hs 55;" f convexPolysOverlapWitness src/Geometry/ConvexPoly.hs 55;" f
coolMachinePistol src/Dodge/Creature/State.hs 130;" f coolMachinePistol src/Dodge/Creature/State.hs 135;" f
coolMinigun src/Dodge/Creature/State.hs 123;" f coolMinigun src/Dodge/Creature/State.hs 128;" f
copier src/Dodge/Item/Scope.hs 94;" f copier src/Dodge/Item/Scope.hs 94;" f
copierItemUpdate src/Dodge/Creature/State.hs 159;" f copierItemUpdate src/Dodge/Creature/State.hs 164;" f
copyItemToFloor src/Dodge/FloorItem.hs 14;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f
corDoor src/Dodge/Room/Room.hs 411;" f corDoor src/Dodge/Room/Room.hs 411;" f
cornerList src/Preload/Render.hs 236;" f cornerList src/Preload/Render.hs 236;" f
@@ -3067,19 +3064,18 @@ crNearPoint src/Dodge/Creature/Test.hs 125;" f
crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 25;" f 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 51;" f
crPathing src/Dodge/Creature/Action.hs 127;" 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
crSetRoots src/Dodge/Inventory/Location.hs 39;" f
crShape src/Dodge/Creature/Shape.hs 8;" f crShape src/Dodge/Creature/Shape.hs 8;" f
crSpring src/Dodge/Update.hs 1002;" f crSpring src/Dodge/Update.hs 1002;" f
crStratConMatches src/Dodge/Creature/Test.hs 77;" f crStratConMatches src/Dodge/Creature/Test.hs 77;" f
crStrength src/Dodge/Creature/Statistics.hs 30;" f crStrength src/Dodge/Creature/Statistics.hs 30;" f
crUpdate src/Dodge/Creature/Update.hs 454;" f crUpdate src/Dodge/Creature/Update.hs 454;" f
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 50;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 34;" f
crUpdateItemLocations src/Dodge/Inventory/Location.hs 32;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 28;" f
crVocalResetTime src/Dodge/Creature/Vocalization.hs 69;" f crVocalResetTime src/Dodge/Creature/Vocalization.hs 69;" f
crWalk src/Dodge/Creature/Impulse/Movement.hs 32;" f crWalk src/Dodge/Creature/Impulse/Movement.hs 32;" f
crWalkAbsolute src/Dodge/Creature/Impulse/Movement.hs 47;" f crWalkAbsolute src/Dodge/Creature/Impulse/Movement.hs 47;" f
@@ -3105,7 +3101,7 @@ 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
createShell src/Dodge/Projectile/Create.hs 21;" f createShell src/Dodge/Projectile/Create.hs 21;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 53;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 69;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 130;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 130;" f
createWall src/Dodge/Wall/Create.hs 8;" f createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 12;" f
@@ -3330,7 +3326,7 @@ divideLineExact src/Geometry.hs 276;" f
divideLineOddNumPoints src/Geometry.hs 261;" f divideLineOddNumPoints src/Geometry.hs 261;" f
dmType src/Dodge/Damage.hs 38;" f dmType src/Dodge/Damage.hs 38;" f
doAimTwist src/Dodge/Creature/YourControl.hs 130;" f doAimTwist src/Dodge/Creature/YourControl.hs 130;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 169;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 174;" f
doBackspace src/Dodge/Update/Input/Text.hs 31;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f
doBarrelSpin src/Dodge/Projectile/Update.hs 169;" f doBarrelSpin src/Dodge/Projectile/Update.hs 169;" f
doBlBl src/Dodge/BlBl.hs 5;" f doBlBl src/Dodge/BlBl.hs 5;" f
@@ -3341,7 +3337,7 @@ doConLoop' src/Loop.hs 230;" f
doCrBl src/Dodge/CreatureEffect.hs 30;" f doCrBl src/Dodge/CreatureEffect.hs 30;" f
doCrGroupUpdate src/Dodge/CrGroupUpdate.hs 5;" f doCrGroupUpdate src/Dodge/CrGroupUpdate.hs 5;" f
doCrImp src/Dodge/CreatureEffect.hs 13;" f doCrImp src/Dodge/CreatureEffect.hs 13;" f
doDamage src/Dodge/Creature/State.hs 44;" f doDamage src/Dodge/Creature/State.hs 45;" f
doDeathToggle src/Dodge/WorldEffect.hs 99;" f doDeathToggle src/Dodge/WorldEffect.hs 99;" f
doDeathTriggers src/Dodge/WorldEffect.hs 92;" f doDeathTriggers src/Dodge/WorldEffect.hs 92;" f
doDebugGet src/Dodge/Debug.hs 160;" f doDebugGet src/Dodge/Debug.hs 160;" f
@@ -3409,7 +3405,7 @@ doublePair src/Geometry.hs 162;" f
doublePairSet src/Geometry.hs 166;" f doublePairSet src/Geometry.hs 166;" f
doubleTreeToIndentList src/Dodge/DoubleTree.hs 28;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 28;" f
doubleV2 src/Geometry.hs 169;" f doubleV2 src/Geometry.hs 169;" f
drawARHUD src/Dodge/Creature/State.hs 221;" f drawARHUD src/Dodge/Creature/State.hs 226;" f
drawAimSweep src/Dodge/Render/Picture.hs 302;" f drawAimSweep src/Dodge/Render/Picture.hs 302;" f
drawAllShadows src/Dodge/Shadows.hs 5;" f drawAllShadows src/Dodge/Shadows.hs 5;" f
drawAnySelectionBox src/Dodge/Render/Picture.hs 136;" f drawAnySelectionBox src/Dodge/Render/Picture.hs 136;" f
@@ -3884,7 +3880,7 @@ hit1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 660;" f
hitEffFromBul src/Dodge/Bullet.hs 158;" f hitEffFromBul src/Dodge/Bullet.hs 158;" f
hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 812;" f hitS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 812;" f
hiveCrit src/Dodge/Creature/ChaseCrit.hs 101;" f hiveCrit src/Dodge/Creature/ChaseCrit.hs 101;" f
hivePainEffect src/Dodge/Creature/State.hs 65;" f hivePainEffect src/Dodge/Creature/State.hs 66;" f
holdForm src/Dodge/Creature/Boid.hs 139;" f holdForm src/Dodge/Creature/Boid.hs 139;" f
holsterWeapon src/Dodge/Creature/Volition.hs 14;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f
homingModule src/Dodge/Item/Scope.hs 50;" f homingModule src/Dodge/Item/Scope.hs 50;" f
@@ -3896,7 +3892,7 @@ hoverCrit src/Dodge/Creature/ChaseCrit.hs 83;" f
hoverCritHoverSound src/Dodge/Creature/Update.hs 437;" f hoverCritHoverSound src/Dodge/Creature/Update.hs 437;" f
hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 228;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 228;" f
hoverDeathSounds src/Dodge/Creature/Vocalization.hs 62;" f hoverDeathSounds src/Dodge/Creature/Vocalization.hs 62;" f
hoverPainEffect src/Dodge/Creature/State.hs 57;" f hoverPainEffect src/Dodge/Creature/State.hs 58;" f
iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f iShape src/Dodge/Placement/Instance/LightSource.hs 58;" f
icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f
icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f
@@ -3971,8 +3967,8 @@ invDimColor src/Dodge/DisplayInventory.hs 191;" f
invHead src/Dodge/Render/HUD.hs 421;" f invHead src/Dodge/Render/HUD.hs 421;" 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 92;" f
invItemLocUpdate src/Dodge/Creature/State.hs 99;" f invItemLocUpdate src/Dodge/Creature/State.hs 100;" f
invRootMap src/Dodge/Item/Grammar.hs 237;" f invRootMap src/Dodge/Item/Grammar.hs 237;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 33;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 33;" f
invSetSelection src/Dodge/Inventory.hs 269;" f invSetSelection src/Dodge/Inventory.hs 269;" f
@@ -4021,8 +4017,8 @@ isWalkable src/Dodge/WorldEvent/ThingsHit.hs 243;" f
isoMatrix src/MatrixHelper.hs 35;" f isoMatrix src/MatrixHelper.hs 35;" f
isotriBWH src/Geometry/Polygon.hs 30;" f isotriBWH src/Geometry/Polygon.hs 30;" f
itDim src/Dodge/Item/InvSize.hs 21;" f itDim src/Dodge/Item/InvSize.hs 21;" f
itEffectOnDrop src/Dodge/Item/BackgroundEffect.hs 81;" f itEffectOnDrop src/Dodge/Item/BackgroundEffect.hs 97;" f
itEffectOnPickup src/Dodge/Item/BackgroundEffect.hs 78;" f itEffectOnPickup src/Dodge/Item/BackgroundEffect.hs 94;" f
itInvHeight src/Dodge/Item/InvSize.hs 11;" f itInvHeight src/Dodge/Item/InvSize.hs 11;" f
itUseCondition src/Dodge/ItemUseCondition.hs 6;" f itUseCondition src/Dodge/ItemUseCondition.hs 6;" f
itemAboveAttachables src/Dodge/Item/Grammar.hs 38;" f itemAboveAttachables src/Dodge/Item/Grammar.hs 38;" f
@@ -4073,7 +4069,7 @@ itmEquipSiteInfo src/Dodge/Item/Info.hs 249;" f
itmSpaceInfo src/Dodge/Item/Info.hs 25;" f itmSpaceInfo src/Dodge/Item/Info.hs 25;" f
itmUsageInfo src/Dodge/Item/Info.hs 230;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f
jShape src/Dodge/Placement/Instance/LightSource.hs 73;" f jShape src/Dodge/Placement/Instance/LightSource.hs 73;" f
jitterPain src/Dodge/Creature/State.hs 77;" f jitterPain src/Dodge/Creature/State.hs 78;" f
joinItemsInList src/Dodge/Item/Grammar.hs 217;" f joinItemsInList src/Dodge/Item/Grammar.hs 217;" f
joystick src/Dodge/Item/Scope.hs 158;" f joystick src/Dodge/Item/Scope.hs 158;" f
jps0' src/Dodge/LevelGen/PlacementHelper.hs 61;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 61;" f
@@ -4457,7 +4453,6 @@ normalizeColor src/Color.hs 103;" f
normalizeV src/Geometry/Vector.hs 44;" f normalizeV src/Geometry/Vector.hs 44;" f
normalizeV3 src/Geometry/Vector3D.hs 85;" f normalizeV3 src/Geometry/Vector3D.hs 85;" f
notLink src/Dodge/Data/Room.hs 76;" f notLink src/Dodge/Data/Room.hs 76;" f
note src/Dodge/Creature/Impulse/UseItem.hs 23;" f
nulgate src/Dodge/Item/Scope.hs 101;" f nulgate src/Dodge/Item/Scope.hs 101;" f
numDrawableVertices src/Shader/Parameters.hs 34;" f numDrawableVertices src/Shader/Parameters.hs 34;" f
numGLuint src/Shader/Parameters.hs 29;" f numGLuint src/Shader/Parameters.hs 29;" f
@@ -4832,7 +4827,7 @@ removeAmmoFromMag src/Dodge/HeldUse.hs 941;" f
removeDot src/ShortShow.hs 44;" f removeDot src/ShortShow.hs 44;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Modify.hs 34;" f removeLights src/Dodge/Room/Modify.hs 34;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 71;" f removeShieldWall src/Dodge/Item/BackgroundEffect.hs 87;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 27;" f renderDataResizeUpdate src/Preload/Update.hs 27;" f
renderFlatLighting src/Render.hs 102;" f renderFlatLighting src/Render.hs 102;" f
@@ -4908,8 +4903,8 @@ roomTileZeroShift src/Dodge/Layout.hs 73;" f
roomTwistCross src/Dodge/Room/Boss.hs 147;" f roomTwistCross src/Dodge/Room/Boss.hs 147;" f
roomsContaining src/Dodge/Room/Containing.hs 20;" f roomsContaining src/Dodge/Room/Containing.hs 20;" f
roomsContaining' src/Dodge/Room/Containing.hs 25;" f roomsContaining' src/Dodge/Room/Containing.hs 25;" f
rootAndAttNotEff src/Dodge/Item/BackgroundEffect.hs 40;" f rootAndAttNotEff src/Dodge/Item/BackgroundEffect.hs 48;" f
rootNotrootEff src/Dodge/Item/BackgroundEffect.hs 29;" f rootNotrootEff src/Dodge/Item/BackgroundEffect.hs 32;" f
rose src/Color.hs 47;" f rose src/Color.hs 47;" f
rotD src/Padding.hs 44;" f rotD src/Padding.hs 44;" f
rotMatr src/MatrixHelper.hs 79;" f rotMatr src/MatrixHelper.hs 79;" f
@@ -5030,7 +5025,7 @@ setFallback src/Dodge/PlacementSpot.hs 127;" f
setInLinks src/Dodge/RoomLink.hs 52;" f setInLinks src/Dodge/RoomLink.hs 52;" f
setInLinksByType src/Dodge/RoomLink.hs 73;" f setInLinksByType src/Dodge/RoomLink.hs 73;" f
setInLinksPD src/Dodge/RoomLink.hs 93;" f setInLinksPD src/Dodge/RoomLink.hs 93;" f
setInvPosFromSS src/Dodge/Inventory/Location.hs 67;" f setInvPosFromSS src/Dodge/Inventory/Location.hs 48;" f
setLayer src/Picture/Base.hs 131;" f setLayer src/Picture/Base.hs 131;" f
setLinkType src/Dodge/RoomLink.hs 79;" f setLinkType src/Dodge/RoomLink.hs 79;" f
setLinkTypePD src/Dodge/RoomLink.hs 86;" f setLinkTypePD src/Dodge/RoomLink.hs 86;" f
@@ -5041,7 +5036,7 @@ setOutLinks src/Dodge/RoomLink.hs 49;" f
setOutLinksByType src/Dodge/RoomLink.hs 76;" f 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 124;" f setPixelOffsetBounded src/Dodge/Update/Input/InGame.hs 124;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 318;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 326;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 368;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 368;" 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
@@ -5080,7 +5075,7 @@ shellHitWall src/Dodge/Projectile/Update.hs 60;" f
shellMag src/Dodge/Item/Ammo.hs 47;" f shellMag src/Dodge/Item/Ammo.hs 47;" f
shellModule src/Dodge/Item/Scope.hs 128;" f shellModule src/Dodge/Item/Scope.hs 128;" f
shellShape src/Dodge/Projectile/Draw.hs 35;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f
shieldWall src/Dodge/Item/BackgroundEffect.hs 91;" f shieldWall src/Dodge/Item/BackgroundEffect.hs 107;" f
shiftByV2 src/Dodge/PlacementSpot.hs 257;" f 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
@@ -5102,8 +5097,8 @@ shiftRoomShiftToLink src/Dodge/Room/Link.hs 74;" f
shiftSetDown src/Dodge/Inventory.hs 161;" f shiftSetDown src/Dodge/Inventory.hs 161;" f
shiftSetUp src/Dodge/Inventory.hs 155;" f shiftSetUp src/Dodge/Inventory.hs 155;" f
shiftTile src/Dodge/Room/Link.hs 49;" f shiftTile src/Dodge/Room/Link.hs 49;" f
shineTargetLaser src/Dodge/Creature/State.hs 229;" f shineTargetLaser src/Dodge/Creature/State.hs 234;" f
shineTorch src/Dodge/Creature/State.hs 266;" f shineTorch src/Dodge/Creature/State.hs 271;" f
shootBullet src/Dodge/HeldUse.hs 1004;" f shootBullet src/Dodge/HeldUse.hs 1004;" f
shootBullets src/Dodge/HeldUse.hs 997;" f shootBullets src/Dodge/HeldUse.hs 997;" f
shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f shootFirstMiss src/Dodge/Creature/Volition.hs 33;" f
@@ -5447,10 +5442,10 @@ 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 316;" 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 82;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 74;" f
toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 120;" f toggleExamineInv src/Dodge/Creature/Impulse/UseItem.hs 112;" f
toggleJust src/MaybeHelp.hs 39;" f toggleJust src/MaybeHelp.hs 39;" f
toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 125;" f toggleMapperInv src/Dodge/Creature/Impulse/UseItem.hs 117;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 744;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 744;" f
tone440_30sS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 682;" f tone440_30sS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 682;" f
tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f tone440raiseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 646;" f
@@ -5514,11 +5509,11 @@ 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 205;" f tryClickUse src/Dodge/Creature/YourControl.hs 205;" f
tryCombine src/Dodge/Update/Input/InGame.hs 600;" f tryCombine src/Dodge/Update/Input/InGame.hs 600;" f
tryDrawToCapacitor src/Dodge/Creature/State.hs 179;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 184;" f
tryDropSelected src/Dodge/Update/Input/InGame.hs 154;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 154;" f
tryEvadeSideways src/Dodge/Creature/Action.hs 104;" 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 21;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 18;" f
tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 42;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 42;" f
tryPickupSelected src/Dodge/Update/Input/InGame.hs 181;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 181;" f
tryPlay src/Sound.hs 85;" f tryPlay src/Sound.hs 85;" f
@@ -5526,9 +5521,9 @@ tryPutItemInInv src/Dodge/Inventory/Add.hs 25;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 65;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 65;" 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 200;" f
tryThrust src/Dodge/Projectile/Update.hs 126;" f tryThrust src/Dodge/Projectile/Update.hs 126;" f
tryUseParent src/Dodge/Creature/State.hs 173;" f tryUseParent src/Dodge/Creature/State.hs 178;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f turnTo src/Dodge/Movement/Turn.hs 8;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 55;" f tutAnoTree src/Dodge/Room/Tutorial.hs 55;" f
@@ -5635,7 +5630,7 @@ updateInGameCamera src/Dodge/Update/Camera.hs 87;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 459;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 459;" f
updateInt2Map src/Dodge/Zoning/Base.hs 94;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f
updateItemTargeting src/Dodge/Creature/State.hs 288;" f updateItemTargeting src/Dodge/Creature/State.hs 293;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 419;" f updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 419;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 453;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 453;" f
updateKeysInGame src/Dodge/Update/Input/InGame.hs 81;" f updateKeysInGame src/Dodge/Update/Input/InGame.hs 81;" f
@@ -5728,9 +5723,8 @@ useBulletPayload src/Dodge/Bullet.hs 117;" f
useGasParams src/Dodge/HeldUse.hs 1120;" f useGasParams src/Dodge/HeldUse.hs 1120;" f
useHotkey src/Dodge/Creature/YourControl.hs 57;" f useHotkey src/Dodge/Creature/YourControl.hs 57;" f
useInventoryPath src/Dodge/HeldUse.hs 1411;" f useInventoryPath src/Dodge/HeldUse.hs 1411;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 18;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 22;" f
useItem' src/Dodge/Creature/Impulse/UseItem.hs 26;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 29;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 40;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 262;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 262;" f
useLoadedAmmo src/Dodge/HeldUse.hs 741;" f useLoadedAmmo src/Dodge/HeldUse.hs 741;" f
useMagShield src/Dodge/Euse.hs 33;" f useMagShield src/Dodge/Euse.hs 33;" f