Move towards removing functionality associated with ItemLinks

This commit is contained in:
2025-07-10 23:08:59 +01:00
parent f8595d353b
commit 918f970ca8
5 changed files with 87 additions and 74 deletions
+5 -4
View File
@@ -293,7 +293,8 @@ drawARHUD (LocLDT con _) w = fromMaybe w $ do
shineTargetLaser :: Creature -> LocationLDT ItemLink OItem -> World -> World shineTargetLaser :: Creature -> LocationLDT ItemLink OItem -> World -> World
shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do
guard (crIsAiming cr) guard (crIsAiming cr)
(_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) -- (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft)
(_, mag) <- find (isammolink . (^. _2 . ldtValue . _2)) (itmtree ^. ldtLeft)
i <- mag ^. ldtValue . _1 . itConsumables i <- mag ^. ldtValue . _1 . itConsumables
guard $ i >= x guard $ i >= x
maginvid <- mag ^? ldtValue . _1 . itLocation . ilInvID maginvid <- mag ^? ldtValue . _1 . itLocation . ilInvID
@@ -319,7 +320,7 @@ shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ d
itmtree = loc ^. locLDT itmtree = loc ^. locLDT
(p, q) = o `Q.comp` (V3 5 0 0, Q.qID) (p, q) = o `Q.comp` (V3 5 0 0, Q.qID)
x = 1 x = 1
isammolink AmmoInLink{} = True isammolink AmmoMagSF{} = True
isammolink _ = False isammolink _ = False
pos = _crPos cr + xyV3 (rotate3 cdir p) pos = _crPos cr + xyV3 (rotate3 cdir p)
cdir = _crDir cr cdir = _crDir cr
@@ -331,7 +332,7 @@ shineTargetLaser cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ d
shineTorch :: Creature -> LocationLDT ItemLink OItem -> World -> World shineTorch :: Creature -> LocationLDT ItemLink OItem -> World -> World
shineTorch cr loc = fromMaybe id $ do shineTorch cr loc = fromMaybe id $ do
(_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) (_, mag) <- find (isammolink . (^. _2 . ldtValue . _2)) (itmtree ^. ldtLeft)
i <- mag ^. ldtValue . _1 . itConsumables i <- mag ^. ldtValue . _1 . itConsumables
guard $ crIsAiming cr guard $ crIsAiming cr
guard $ i >= x guard $ i >= x
@@ -343,7 +344,7 @@ shineTorch cr loc = fromMaybe id $ do
itmtree = loc ^. locLDT itmtree = loc ^. locLDT
(p, q) = locOrient (locLDTToLocDT loc) cr (p, q) = locOrient (locLDTToLocDT loc) cr
x = 10 x = 10
isammolink AmmoInLink{} = True isammolink AmmoMagSF{} = True
isammolink _ = False isammolink _ = False
pos = _crPos cr `v2z` 0 + rotate3 cdir (p + Q.rotate q (V3 8 0 1.5)) pos = _crPos cr `v2z` 0 + rotate3 cdir (p + Q.rotate q (V3 8 0 1.5))
cdir = _crDir cr cdir = _crDir cr
+1 -1
View File
@@ -46,7 +46,7 @@ data ItemStructuralFunction
| IntroScanSF | IntroScanSF
| TriggerSF | TriggerSF
| ARHUDSF | ARHUDSF
| AmmoMagSF AmmoType | AmmoMagSF Int AmmoType
| RemoteScreenSF | RemoteScreenSF
| JoystickSF | JoystickSF
| RemoteDetonatorSF | RemoteDetonatorSF
+4 -4
View File
@@ -99,7 +99,7 @@ hammerCheck f pt loc cr w = case itemTriggerType loc of
& randGen .~ gen & randGen .~ gen
HammerTrigger t HammerTrigger t
| w ^. cWorld . lWorld . lClock - t > timelastused | w ^. cWorld . lWorld . lClock - t > timelastused
, isNothing $ lookup MakeAutoLink (tree ^. ldtRight) -- , isNothing $ lookup MakeAutoLink (tree ^. ldtRight)
, pt == InitialPress -> , pt == InitialPress ->
f loc cr w f loc cr w
AutoTrigger t AutoTrigger t
@@ -675,7 +675,7 @@ loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do
-- guard $ mz ^? mzFrame == t ^? ldtValue . itUse . heldFrame -- guard $ mz ^? mzFrame == t ^? ldtValue . itUse . heldFrame
let as = _mzAmmoSlot mz let as = _mzAmmoSlot mz
amamount = _mzAmmoPerShot mz amamount = _mzAmmoPerShot mz
(i, (_, mag)) <- findWithIx (isAmmoIntLink as . fst) l (i, (_, mag)) <- findWithIx (isAmmoIntLink as . (^. _2 . ldtValue . _2)) l
availableammo <- mag ^. ldtValue . _1 . itConsumables availableammo <- mag ^. ldtValue . _1 . itConsumables
let usedammo = case amamount of let usedammo = case amamount of
UseUpTo x -> min x availableammo UseUpTo x -> min x availableammo
@@ -754,8 +754,8 @@ basicMuzFlare pos dir =
. muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir . muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
. muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir . muzFlareAt (V4 10 10 1 3) (pos `v2z` 20) dir
isAmmoIntLink :: Int -> ItemLink -> Bool isAmmoIntLink :: Int -> ItemStructuralFunction -> Bool
isAmmoIntLink i (AmmoInLink j _) = i == j isAmmoIntLink i (AmmoMagSF j _) = i == j
isAmmoIntLink _ _ = False isAmmoIntLink _ _ = False
useLoadedAmmo :: useLoadedAmmo ::
+39 -28
View File
@@ -57,13 +57,22 @@ itemToBreakLists ::
Item -> Item ->
ItemStructuralFunction -> ItemStructuralFunction ->
([(ItemStructuralFunction, ItemLink)], [(ItemStructuralFunction, ItemLink)]) ([(ItemStructuralFunction, ItemLink)], [(ItemStructuralFunction, ItemLink)])
itemToBreakLists itm itmf = case (itm ^. itType, itmf) of itemToBreakLists itm itmf = (fmap f l, fmap f r)
where
f x = (x, SFLink x)
(l,r) = itemToBreakLists' itm itmf
itemToBreakLists' ::
Item ->
ItemStructuralFunction ->
([(ItemStructuralFunction)], [(ItemStructuralFunction)])
itemToBreakLists' itm itmf = case (itm ^. itType, itmf) of
(HELD TORCH, _) -> (getAmmoLinks itm, []) (HELD TORCH, _) -> (getAmmoLinks itm, [])
(ATTACH UNDERBARRELSLOT, _) -> ([(UnderBarrelPlatformSF, UnderBarrelPlatformLink)], []) (ATTACH UNDERBARRELSLOT, _) -> ([(UnderBarrelPlatformSF)], [])
(_, HeldPlatformSF) -> (_, HeldPlatformSF) ->
( getAmmoLinks itm ( getAmmoLinks itm
<> extraWeaponLinksBelow itm <> extraWeaponLinksBelow itm
, [(WeaponTargetingSF, WeaponTargetingLink), (WeaponScopeSF, WeaponScopeLink)] , [(WeaponTargetingSF), (WeaponScopeSF)]
<> getAutoSpringLinks itm <> getAutoSpringLinks itm
<> extraWeaponLinks itm <> extraWeaponLinks itm
) )
@@ -71,69 +80,69 @@ itemToBreakLists itm itmf = case (itm ^. itType, itmf) of
( getAmmoLinks itm,[]) ( getAmmoLinks itm,[])
(DETECTOR {}, _) -> (DETECTOR {}, _) ->
( getAmmoLinks itm ( getAmmoLinks itm
, [(ARHUDSF,SFLink ARHUDSF),(TriggerSF, TriggerLink),(MapperSF,SFLink MapperSF)] , [(ARHUDSF),(TriggerSF),(MapperSF)]
) )
(CRAFT TRANSFORMER, _) -> ([],[(LaserWeaponSF,SFLink LaserWeaponSF)]) (CRAFT TRANSFORMER, _) -> ([],[(LaserWeaponSF)])
(MAPPER, _) -> (MAPPER, _) ->
( [] ( []
, [(ARHUDSF,SFLink ARHUDSF)] , [(ARHUDSF)]
) )
(_, GadgetPlatformSF) -> (_, GadgetPlatformSF) ->
( getAmmoLinks itm ( getAmmoLinks itm
, [(TriggerSF, TriggerLink), (WeaponTargetingSF, WeaponTargetingLink), (WeaponScopeSF, WeaponScopeLink)] , [(TriggerSF), (WeaponTargetingSF), (WeaponScopeSF)]
) )
(_, AmmoMagSF{}) -> fromMaybe ([], []) $ do (_, AmmoMagSF{}) -> fromMaybe ([], []) $ do
atype <- magAmmoType itm atype <- magAmmoType itm
let screenanddet = case atype of let screenanddet = case atype of
LauncherAmmo -> LauncherAmmo ->
[ (RemoteScreenSF, RemoteScreenLink) [ (RemoteScreenSF)
, (RemoteDetonatorSF, RemoteDetonatorLink) , (RemoteDetonatorSF)
] ]
_ -> [] _ -> []
return return
( [ (AmmoModifierSF atype, AmmoModLink) ( [ (AmmoModifierSF atype)
, (AmmoTargetingSF atype, AmmoTargetingLink) , (AmmoTargetingSF atype)
, (AmmoPayloadSF atype, AmmoPayloadLink) , (AmmoPayloadSF atype)
, (AmmoEffectSF atype, AmmoEffectLink) , (AmmoEffectSF atype)
, (SmokeReducerSF, SmokeReducerLink) , (SmokeReducerSF)
] ]
<> screenanddet <> screenanddet
, [] , []
) )
(_, RemoteScreenSF) -> (_, RemoteScreenSF) ->
( [(JoystickSF, JoystickLink)] ( [(JoystickSF)]
, [] , []
) )
(_, WeaponTargetingSF) -> (getAmmoLinks itm ++ [(ARHUDSF, SFLink ARHUDSF)], []) (_, WeaponTargetingSF) -> (getAmmoLinks itm ++ [(ARHUDSF)], [])
(ATTACH BULLETSYNTH, _) -> (ATTACH BULLETSYNTH, _) ->
([(AmmoMagSF ElectricalAmmo, AmmoInLink 0 ElectricalAmmo)], []) ([(AmmoMagSF 0 ElectricalAmmo)], [])
_ -> ([], []) _ -> ([], [])
getAutoSpringLinks :: Item -> [(ItemStructuralFunction, ItemLink)] getAutoSpringLinks :: Item -> [(ItemStructuralFunction)]
getAutoSpringLinks itm = case baseItemTriggerType itm of getAutoSpringLinks itm = case baseItemTriggerType itm of
HammerTrigger _ -> [(MakeAutoSF, MakeAutoLink)] HammerTrigger _ -> [(MakeAutoSF)]
_ -> [] _ -> []
extraWeaponLinks :: Item -> [(ItemStructuralFunction, ItemLink)] extraWeaponLinks :: Item -> [(ItemStructuralFunction)]
extraWeaponLinks itm = case itm ^. itType of extraWeaponLinks itm = case itm ^. itType of
HELD GLAUNCHER -> launcherlinks <> [(GrenadeHitEffectSF,GrenadeHitEffectLink)] HELD GLAUNCHER -> launcherlinks <> [(GrenadeHitEffectSF)]
HELD RLAUNCHER -> launcherlinks HELD RLAUNCHER -> launcherlinks
HELD RLAUNCHERX{} -> launcherlinks HELD RLAUNCHERX{} -> launcherlinks
_ -> [] _ -> []
where where
launcherlinks = [(ProjectileStabiliserSF,ProjectileStabiliserLink)] launcherlinks = [(ProjectileStabiliserSF)]
extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction, ItemLink)] extraWeaponLinksBelow :: Item -> [(ItemStructuralFunction)]
extraWeaponLinksBelow itm extraWeaponLinksBelow itm
-- | Just TwoHandUnder <- itm ^? itUse . heldAim . aimStance -- | Just TwoHandUnder <- itm ^? itUse . heldAim . aimStance
| TwoHandUnder <- itemBaseStance itm | TwoHandUnder <- itemBaseStance itm
= [(UnderBarrelSlotSF,UnderBarrelSlotLink)] = [(UnderBarrelSlotSF)]
| otherwise = [] | otherwise = []
getAmmoLinks :: Item -> [(ItemStructuralFunction, ItemLink)] getAmmoLinks :: Item -> [(ItemStructuralFunction)]
getAmmoLinks itm = getAmmoLinks itm =
map map
(\(i, a) -> (AmmoMagSF a, AmmoInLink i a)) (\(i, a) -> (AmmoMagSF i a))
(IM.toList $ itemAmmoSlots itm) (IM.toList $ itemAmmoSlots itm)
itemToFunction :: Item -> ItemStructuralFunction itemToFunction :: Item -> ItemStructuralFunction
@@ -149,8 +158,8 @@ itemToFunction itm = case itm ^. itType of
_ _
| Just amtype <- magAmmoType itm-- ^? itConsumables . magType | Just amtype <- magAmmoType itm-- ^? itConsumables . magType
, Just _ <- itm ^? itLocation . ilEquipSite . _Just -> , Just _ <- itm ^? itLocation . ilEquipSite . _Just ->
AmmoMagSF amtype AmmoMagSF 0 amtype
AMMOMAG{} -> maybe NoSF AmmoMagSF $ magAmmoType itm -- ^? itConsumables . magType AMMOMAG{} -> maybe NoSF (AmmoMagSF 0) $ magAmmoType itm -- ^? itConsumables . magType
ATTACH REMOTESCREEN -> RemoteScreenSF ATTACH REMOTESCREEN -> RemoteScreenSF
ATTACH JOYSTICK -> JoystickSF ATTACH JOYSTICK -> JoystickSF
ATTACH REMOTEDETONATOR -> RemoteDetonatorSF ATTACH REMOTEDETONATOR -> RemoteDetonatorSF
@@ -178,6 +187,8 @@ treeToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of
HELD GLAUNCHER -> S.singleton UnderBarrelPlatformSF HELD GLAUNCHER -> S.singleton UnderBarrelPlatformSF
HELD BURSTRIFLE -> S.singleton UnderBarrelPlatformSF HELD BURSTRIFLE -> S.singleton UnderBarrelPlatformSF
HELD LASER -> S.fromList [WeaponTargetingSF,LaserWeaponSF] HELD LASER -> S.fromList [WeaponTargetingSF,LaserWeaponSF]
-- following limits items to ten ammo slots
_ | AmmoMagSF _ x <- ldt ^. ldtValue . _2 -> S.fromList [AmmoMagSF i x | i <- [0..9]]
_ -> S.singleton (ldt ^. ldtValue . _2) _ -> S.singleton (ldt ^. ldtValue . _2)
baseCI :: Item -> CItem baseCI :: Item -> CItem
+38 -37
View File
@@ -977,7 +977,7 @@ Kill src/Dodge/Data/ActionPlan.hs 198;" C
LASER src/Dodge/Data/Item/Combine.hs 168;" C LASER src/Dodge/Data/Item/Combine.hs 168;" C
LDT src/Dodge/Data/DoubleTree.hs 34;" C LDT src/Dodge/Data/DoubleTree.hs 34;" C
LDTBottomNode src/Dodge/Data/DoubleTree.hs 29;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 29;" C
LDTComb src/Dodge/Item/Grammar.hs 186;" t LDTComb src/Dodge/Item/Grammar.hs 197;" t
LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 27;" C LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 27;" C
LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 28;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 28;" C
LDTRootNode src/Dodge/Data/DoubleTree.hs 25;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 25;" C
@@ -3366,8 +3366,8 @@ airlockDoor src/Dodge/Room/Airlock.hs 51;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f
airlockSimple src/Dodge/Room/Airlock.hs 66;" f airlockSimple src/Dodge/Room/Airlock.hs 66;" f
airlockZ src/Dodge/Room/Airlock.hs 91;" f airlockZ src/Dodge/Room/Airlock.hs 91;" f
allInvLocs src/Dodge/Item/Grammar.hs 289;" f allInvLocs src/Dodge/Item/Grammar.hs 300;" f
allInvLocs' src/Dodge/Item/Grammar.hs 310;" f allInvLocs' src/Dodge/Item/Grammar.hs 321;" f
allVisibleWalls src/Dodge/Base/Collide.hs 132;" f allVisibleWalls src/Dodge/Base/Collide.hs 132;" f
alongSegBy src/Geometry.hs 40;" f alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
@@ -3468,7 +3468,7 @@ barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 46;" f barrelShape src/Dodge/Render/ShapePicture.hs 46;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 405;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 405;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCI src/Dodge/Item/Grammar.hs 183;" f baseCI src/Dodge/Item/Grammar.hs 194;" f
baseCaneShape src/Dodge/Item/Draw/SPic.hs 311;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 311;" f
baseDebris src/Dodge/Block/Debris.hs 122;" f baseDebris src/Dodge/Block/Debris.hs 122;" f
baseFloorTileSize src/Tile.hs 45;" f baseFloorTileSize src/Tile.hs 45;" f
@@ -3699,7 +3699,7 @@ commandColor src/Dodge/Terminal.hs 132;" f
commandFutureLines src/Dodge/Terminal.hs 256;" f commandFutureLines src/Dodge/Terminal.hs 256;" f
commandsCommand src/Dodge/Terminal.hs 93;" f commandsCommand src/Dodge/Terminal.hs 93;" f
commonPrefix src/Dodge/Debug/Terminal.hs 146;" f commonPrefix src/Dodge/Debug/Terminal.hs 146;" f
comp src/Quaternion.hs 63;" f comp src/Quaternion.hs 64;" f
compactDraw src/Dodge/LevelGen.hs 91;" f compactDraw src/Dodge/LevelGen.hs 91;" f
compactDraw' src/Dodge/LevelGen.hs 102;" f compactDraw' src/Dodge/LevelGen.hs 102;" f
compactDrawTree src/Dodge/LevelGen.hs 85;" f compactDrawTree src/Dodge/LevelGen.hs 85;" f
@@ -4326,8 +4326,8 @@ extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f
extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f
extraPics src/Dodge/Render/ShapePicture.hs 73;" f extraPics src/Dodge/Render/ShapePicture.hs 73;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 117;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 126;" f
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 126;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 135;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f
faceEdges src/Polyhedra.hs 65;" f faceEdges src/Polyhedra.hs 65;" f
facesToVF src/Polyhedra/Geodesic.hs 69;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f
@@ -4446,11 +4446,11 @@ geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 135;" f getAimZoom src/Dodge/Update/Camera.hs 135;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 133;" f getAmmoLinks src/Dodge/Item/Grammar.hs 142;" f
getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments src/Dodge/Update/Scroll.hs 178;" f
getArguments' src/Dodge/Update/Scroll.hs 166;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f
getAttachedSFLink src/Dodge/HeldUse.hs 803;" f getAttachedSFLink src/Dodge/HeldUse.hs 803;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 112;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 121;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 171;" f getBulHitDams src/Dodge/Bullet.hs 171;" f
getBulletType src/Dodge/HeldUse.hs 928;" f getBulletType src/Dodge/HeldUse.hs 928;" f
@@ -4532,7 +4532,7 @@ halfHeight src/Dodge/Base/Window.hs 48;" f
halfWidth src/Dodge/Base/Window.hs 48;" f halfWidth src/Dodge/Base/Window.hs 48;" f
haltSound src/Dodge/SoundLogic.hs 38;" f haltSound src/Dodge/SoundLogic.hs 38;" f
hammerCheck src/Dodge/HeldUse.hs 64;" f hammerCheck src/Dodge/HeldUse.hs 64;" f
handHandleOrient src/Dodge/Item/HeldOffset.hs 67;" f handHandleOrient src/Dodge/Item/HeldOffset.hs 62;" f
handOrient src/Dodge/Item/HeldOffset.hs 38;" f handOrient src/Dodge/Item/HeldOffset.hs 38;" f
handleEvent src/Dodge/Event.hs 27;" f handleEvent src/Dodge/Event.hs 27;" f
handleHotkeys src/Dodge/Creature/YourControl.hs 45;" f handleHotkeys src/Dodge/Creature/YourControl.hs 45;" f
@@ -4541,7 +4541,7 @@ handleMouseButtonEvent src/Dodge/Event/Input.hs 63;" f
handleMouseMotionEvent src/Dodge/Event/Input.hs 47;" f handleMouseMotionEvent src/Dodge/Event/Input.hs 47;" f
handleMouseWheelEvent src/Dodge/Event/Input.hs 58;" f handleMouseWheelEvent src/Dodge/Event/Input.hs 58;" f
handleOrient src/Dodge/Item/HeldOffset.hs 32;" f handleOrient src/Dodge/Item/HeldOffset.hs 32;" f
handlePos src/Dodge/Item/HeldOffset.hs 89;" f handlePos src/Dodge/Item/HeldOffset.hs 84;" f
handleResizeEvent src/Dodge/Event.hs 53;" f handleResizeEvent src/Dodge/Event.hs 53;" f
handleTextInput src/Dodge/Event/Input.hs 18;" f handleTextInput src/Dodge/Event/Input.hs 18;" f
handleWindowMoveEvent src/Dodge/Event.hs 44;" f handleWindowMoveEvent src/Dodge/Event.hs 44;" f
@@ -4566,14 +4566,13 @@ heldAimStance src/Dodge/Item/AimStance.hs 23;" f
heldAimZoom src/Dodge/Update/Camera.hs 140;" f heldAimZoom src/Dodge/Update/Camera.hs 140;" f
heldEffect src/Dodge/HeldUse.hs 61;" f heldEffect src/Dodge/HeldUse.hs 61;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 128;" f heldEffectMuzzles src/Dodge/HeldUse.hs 128;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 94;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 89;" f
heldInfo src/Dodge/Item/Info.hs 90;" f heldInfo src/Dodge/Item/Info.hs 90;" f
heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 18;" f heldItemAmmoSlots src/Dodge/Item/AmmoSlots.hs 18;" f
heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" f heldItemBulkiness src/Dodge/Creature/YourControl.hs 177;" f
heldItemInvLock src/Dodge/HeldUse.hs 479;" f heldItemInvLock src/Dodge/HeldUse.hs 479;" f
heldItemMuzVel src/Dodge/HeldUse.hs 1025;" f heldItemMuzVel src/Dodge/HeldUse.hs 1025;" f
heldItemMuzzles src/Dodge/HeldUse.hs 157;" f heldItemMuzzles src/Dodge/HeldUse.hs 157;" f
heldItemOffset src/Dodge/Item/HeldOffset.hs 62;" f
heldItemRifling src/Dodge/HeldUse.hs 1069;" f heldItemRifling src/Dodge/HeldUse.hs 1069;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 223;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 223;" f
heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f
@@ -4666,19 +4665,19 @@ interweave src/Justify.hs 17;" f
introScan src/Dodge/Item/Scope.hs 57;" f introScan src/Dodge/Item/Scope.hs 57;" f
introScanValue src/Dodge/Inventory/SelectionList.hs 79;" f introScanValue src/Dodge/Inventory/SelectionList.hs 79;" f
intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f
invAdj src/Dodge/Item/Grammar.hs 266;" f invAdj src/Dodge/Item/Grammar.hs 277;" f
invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f
invDP src/Dodge/ListDisplayParams.hs 30;" f invDP src/Dodge/ListDisplayParams.hs 30;" f
invDT src/Dodge/Item/Grammar.hs 243;" f invDT src/Dodge/Item/Grammar.hs 254;" f
invDimColor src/Dodge/DisplayInventory.hs 192;" f invDimColor src/Dodge/DisplayInventory.hs 192;" f
invHead src/Dodge/Render/HUD.hs 405;" f invHead src/Dodge/Render/HUD.hs 405;" f
invItemLocUpdate src/Dodge/Creature/State.hs 153;" f invItemLocUpdate src/Dodge/Creature/State.hs 153;" f
invLDT src/Dodge/Item/Grammar.hs 238;" f invLDT src/Dodge/Item/Grammar.hs 249;" f
invLDT' src/Dodge/Item/Grammar.hs 248;" f invLDT' src/Dodge/Item/Grammar.hs 259;" f
invRootItemEffs src/Dodge/Creature/State.hs 146;" f invRootItemEffs src/Dodge/Creature/State.hs 146;" f
invRootMap src/Dodge/Item/Grammar.hs 255;" f invRootMap src/Dodge/Item/Grammar.hs 266;" f
invRootTrees src/Dodge/Item/Grammar.hs 276;" f invRootTrees src/Dodge/Item/Grammar.hs 287;" f
invRootTrees' src/Dodge/Item/Grammar.hs 282;" f invRootTrees' src/Dodge/Item/Grammar.hs 293;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f
invSetSelection src/Dodge/Inventory.hs 185;" f invSetSelection src/Dodge/Inventory.hs 185;" f
invSetSelectionPos src/Dodge/Inventory.hs 193;" f invSetSelectionPos src/Dodge/Inventory.hs 193;" f
@@ -4756,7 +4755,8 @@ itemScrollValue src/Dodge/Inventory/SelectionList.hs 147;" f
itemSidePush src/Dodge/HeldUse.hs 420;" f itemSidePush src/Dodge/HeldUse.hs 420;" f
itemString src/Dodge/Item/Display.hs 56;" f itemString src/Dodge/Item/Display.hs 56;" f
itemToBreakLists src/Dodge/Item/Grammar.hs 56;" f itemToBreakLists src/Dodge/Item/Grammar.hs 56;" f
itemToFunction src/Dodge/Item/Grammar.hs 139;" f itemToBreakLists' src/Dodge/Item/Grammar.hs 65;" f
itemToFunction src/Dodge/Item/Grammar.hs 148;" f
itemTreeSPic src/Dodge/Item/Draw/SPic.hs 24;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 24;" f
itemTriggerType src/Dodge/BaseTriggerType.hs 15;" f itemTriggerType src/Dodge/BaseTriggerType.hs 15;" f
itemWeight src/Dodge/Creature/Statistics.hs 66;" f itemWeight src/Dodge/Creature/Statistics.hs 66;" f
@@ -4768,7 +4768,7 @@ 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 85;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f
jaggedShape src/Dodge/Block/Debris.hs 191;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f
joinItemsInList src/Dodge/Item/Grammar.hs 228;" f joinItemsInList src/Dodge/Item/Grammar.hs 239;" f
joystick src/Dodge/Item/Scope.hs 149;" f joystick src/Dodge/Item/Scope.hs 149;" f
jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f
jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f
@@ -4818,10 +4818,10 @@ ldtToIM src/Dodge/DoubleTree.hs 219;" f
ldtToIndentList src/Dodge/DoubleTree.hs 222;" f ldtToIndentList src/Dodge/DoubleTree.hs 222;" f
ldtToLoc src/Dodge/DoubleTree.hs 268;" f ldtToLoc src/Dodge/DoubleTree.hs 268;" f
left src/DoubleStack.hs 16;" f left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 202;" f leftChildList src/Dodge/Item/Grammar.hs 213;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 188;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 199;" f
leftPad src/Padding.hs 15;" f leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 214;" f leftRightCombine src/Dodge/Item/Grammar.hs 225;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 475;" f legsSPic src/Dodge/Item/Draw/SPic.hs 475;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
light src/Color.hs 104;" f light src/Color.hs 104;" f
@@ -5369,6 +5369,7 @@ ppDraw src/Dodge/Render/ShapePicture.hs 96;" f
ppEvents src/Dodge/Update.hs 696;" f ppEvents src/Dodge/Update.hs 696;" f
ppLevelReset src/Dodge/PressPlate.hs 13;" f ppLevelReset src/Dodge/PressPlate.hs 13;" f
preCritStart src/Dodge/Room/Start.hs 82;" f preCritStart src/Dodge/Room/Start.hs 82;" f
prePos src/Quaternion.hs 67;" f
preloadRender src/Preload/Render.hs 30;" f preloadRender src/Preload/Render.hs 30;" f
premapMaybe src/FoldlHelp.hs 26;" f premapMaybe src/FoldlHelp.hs 26;" f
prependTwo src/Geometry.hs 176;" f prependTwo src/Geometry.hs 176;" f
@@ -5439,10 +5440,10 @@ putTerminal src/Dodge/Placement/Instance/Terminal.hs 16;" f
putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f putTurret src/Dodge/Placement/Instance/Turret.hs 11;" f
putWireEnd src/Dodge/Wire.hs 31;" f putWireEnd src/Dodge/Wire.hs 31;" f
putWireStart src/Dodge/Wire.hs 34;" f putWireStart src/Dodge/Wire.hs 34;" f
qID src/Quaternion.hs 60;" f qID src/Quaternion.hs 61;" f
qToAng src/Quaternion.hs 57;" f qToAng src/Quaternion.hs 58;" f
qToV2 src/Quaternion.hs 54;" f qToV2 src/Quaternion.hs 55;" f
qToV3 src/Quaternion.hs 51;" f qToV3 src/Quaternion.hs 52;" f
quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f quarterRoomSquare src/Dodge/Room/Procedural.hs 213;" f
quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f quarterRoomTri src/Dodge/Room/Procedural.hs 177;" f
quitCommand src/Dodge/Terminal.hs 57;" f quitCommand src/Dodge/Terminal.hs 57;" f
@@ -5562,8 +5563,8 @@ rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 72;" f rhombus src/Polyhedra.hs 72;" f
rifle src/Dodge/Item/Held/Cane.hs 19;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f
right src/DoubleStack.hs 16;" f right src/DoubleStack.hs 16;" f
rightChildList src/Dodge/Item/Grammar.hs 208;" f rightChildList src/Dodge/Item/Grammar.hs 219;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 195;" f rightIsParentCombine src/Dodge/Item/Grammar.hs 206;" f
rightPad src/Padding.hs 19;" f rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f rightPadNoSquash src/Padding.hs 23;" f
rlPosDir src/Dodge/RoomLink.hs 94;" f rlPosDir src/Dodge/RoomLink.hs 94;" f
@@ -5611,7 +5612,7 @@ rotateSHx src/Shape.hs 265;" f
rotateSP src/ShapePicture.hs 57;" f rotateSP src/ShapePicture.hs 57;" f
rotateTo src/Polyhedra/Geodesic.hs 64;" f rotateTo src/Polyhedra/Geodesic.hs 64;" f
rotateToOverlappingWall src/Dodge/Update/Camera.hs 201;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 201;" f
rotateToZ src/Quaternion.hs 37;" f rotateToZ src/Quaternion.hs 38;" f
rotateV src/Geometry/Vector.hs 105;" f rotateV src/Geometry/Vector.hs 105;" f
rotateVAround src/Geometry/Vector.hs 112;" f rotateVAround src/Geometry/Vector.hs 112;" f
rotateXY src/Polyhedra.hs 31;" f rotateXY src/Polyhedra.hs 31;" f
@@ -5814,7 +5815,7 @@ shootingRange src/Dodge/Room/Room.hs 332;" f
shortPoint2 src/Dodge/ShortShow.hs 4;" f shortPoint2 src/Dodge/ShortShow.hs 4;" f
shortShow src/ShortShow.hs 9;" f shortShow src/ShortShow.hs 9;" f
shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 693;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 74;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 69;" f
shoulderSH src/Dodge/Creature/Picture.hs 133;" f shoulderSH src/Dodge/Creature/Picture.hs 133;" f
shoulderSP src/Dodge/Creature/HandPos.hs 170;" f shoulderSP src/Dodge/Creature/HandPos.hs 170;" f
showAttachItem src/Dodge/Item/Display.hs 91;" f showAttachItem src/Dodge/Item/Display.hs 91;" f
@@ -5964,7 +5965,7 @@ strFromEquipment src/Dodge/Creature/Statistics.hs 48;" f
strFromHeldItem src/Dodge/Creature/Statistics.hs 60;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 60;" f
strengthFactor src/Dodge/Creature/Impulse/Movement.hs 35;" f strengthFactor src/Dodge/Creature/Impulse/Movement.hs 35;" f
strictify src/MaybeHelp.hs 37;" f strictify src/MaybeHelp.hs 37;" f
strideRot src/Dodge/Item/HeldOffset.hs 77;" f strideRot src/Dodge/Item/HeldOffset.hs 72;" f
stringToList src/Picture/Base.hs 313;" f stringToList src/Picture/Base.hs 313;" f
stringToListGrad src/Picture/Text.hs 12;" f stringToListGrad src/Picture/Text.hs 12;" f
stripZ src/Geometry/Vector3D.hs 97;" f stripZ src/Geometry/Vector3D.hs 97;" f
@@ -6153,7 +6154,7 @@ treeMaxDepthFromTrunk src/Dodge/Layout/Generate.hs 21;" f
treePath src/Dodge/Tree/GenerateStructure.hs 13;" f treePath src/Dodge/Tree/GenerateStructure.hs 13;" f
treePaths src/TreeHelp.hs 138;" f treePaths src/TreeHelp.hs 138;" f
treePost src/TreeHelp.hs 45;" f treePost src/TreeHelp.hs 45;" f
treeToPotentialFunction src/Dodge/Item/Grammar.hs 173;" f treeToPotentialFunction src/Dodge/Item/Grammar.hs 182;" f
triLootRoom src/Dodge/Room/Treasure.hs 22;" f triLootRoom src/Dodge/Room/Treasure.hs 22;" f
triggerDoorRoom src/Dodge/Room/Door.hs 30;" f triggerDoorRoom src/Dodge/Room/Door.hs 30;" f
triggerSwitch src/Dodge/Placement/Instance/Button.hs 47;" f triggerSwitch src/Dodge/Placement/Instance/Button.hs 47;" f
@@ -6188,7 +6189,7 @@ twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 80;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 28;" f
twists src/Dodge/Creature/Test.hs 110;" f twists src/Dodge/Creature/Test.hs 110;" f
twoFlat src/Dodge/Creature/Test.hs 107;" f twoFlat src/Dodge/Creature/Test.hs 107;" f
twoFlatHRot src/Dodge/Item/HeldOffset.hs 86;" f twoFlatHRot src/Dodge/Item/HeldOffset.hs 81;" f
twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f twoHandTwistAmount src/Dodge/Creature/YourControl.hs 150;" f
twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f twoRoomPoss src/Dodge/PlacementSpot.hs 147;" f
twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 533;" f
@@ -6375,7 +6376,7 @@ vNormal src/Geometry/Vector.hs 148;" f
vNormaly src/Geometry/Vector3D.hs 72;" f vNormaly src/Geometry/Vector3D.hs 72;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 113;" f vShape src/Dodge/Placement/Instance/LightSource.hs 113;" f
vToL src/MatrixHelper.hs 46;" f vToL src/MatrixHelper.hs 46;" f
vToQuat src/Quaternion.hs 44;" f vToQuat src/Quaternion.hs 45;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 134;" f validTerminalCommands src/Dodge/Debug/Terminal.hs 134;" f
vasTightStride src/Shader/Compile.hs 297;" f vasTightStride src/Shader/Compile.hs 297;" f
vecBetweenSpeed src/Dodge/Base.hs 146;" f vecBetweenSpeed src/Dodge/Base.hs 146;" f