Allow determination of attach item relative positions

This commit is contained in:
2024-10-02 10:24:10 +01:00
parent 7ce5225491
commit bac57a702d
6 changed files with 87 additions and 61 deletions
+10 -2
View File
@@ -1,2 +1,10 @@
<no location info>: error: /home/justin/Haskell/loop/src/Dodge/LightSource/Torch.hs:3:1-12: warning: [-Wunused-imports]
module Dodge.Data.Creature.Shape cannot be found locally The import of Color is redundant
|
3 | import Color
| ^^^^^^^^^^^^
/home/justin/Haskell/loop/src/Dodge/LightSource/Torch.hs:4:1-29: warning: [-Wunused-imports]
The import of Dodge.WorldEvent.Flash is redundant
|
4 | import Dodge.WorldEvent.Flash
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1
View File
@@ -280,6 +280,7 @@ testInventory =
stackedInventory :: [Item] stackedInventory :: [Item]
stackedInventory = stackedInventory =
[ torch [ torch
, torch
, remoteScreen , remoteScreen
, megaShellMag , megaShellMag
, targetingScope TARGETLASER , targetingScope TARGETLASER
+5 -2
View File
@@ -266,7 +266,7 @@ chainLinkOrientation
chainLinkOrientation mo par (ILink lt f) child = do chainLinkOrientation mo par (ILink lt f) child = do
(p,q) <- mo (p,q) <- mo
(p1,q1) <- f par lt child (p1,q1) <- f par lt child
return (p + Q.rotate q p1, q * q1) return (p + Q.rotate q1 p1, q * q1)
updateRootItem' :: LabelDoubleTree ItemLink Item -> Creature -> World -> World updateRootItem' :: LabelDoubleTree ItemLink Item -> Creature -> World -> World
updateRootItem' itmtree cr = ldtPropagateFold chainLinkOrientation chainLinkOrientation updateRootItem' itmtree cr = ldtPropagateFold chainLinkOrientation chainLinkOrientation
@@ -280,7 +280,10 @@ updateItemWithOrientation cr m itm = case _itType itm of
_ -> id _ -> id
testtorch :: Creature -> Maybe (Point3, Q.Quaternion Float) -> World -> World testtorch :: Creature -> Maybe (Point3, Q.Quaternion Float) -> World -> World
testtorch cr = maybe id $ \(pos,_) -> muzFlareAt yellow (_crPos cr `v2z` 0 + rotate3z (_crDir cr) pos) (_crDir cr) testtorch cr m = fromMaybe id $ do
(pos,q) <- m
let d = _crDir cr + argV (Q.qToV2 q)
return $ muzFlareAt yellow (_crPos cr `v2z` 0 + rotate3z d pos) d
itemInvSideEffect :: Creature -> Item -> World -> World itemInvSideEffect :: Creature -> Item -> World -> World
itemInvSideEffect cr itm = case _itType itm of itemInvSideEffect cr itm = case _itType itm of
+11 -8
View File
@@ -5,22 +5,25 @@ module Dodge.Item.Orientation
import Dodge.Data.ComposedItem import Dodge.Data.ComposedItem
import Geometry.Data import Geometry.Data
import Dodge.Data.Item import Dodge.Data.Item
import qualified Linear.Quaternion as Q import qualified Quaternion as Q
orientChild :: Item -> (Point3, Q.Quaternion Float) orientChild :: Item -> (Point3, Q.Quaternion Float)
orientChild itm = case _itType itm of orientChild itm = case _itType itm of
HELD TORCH -> (V3 5 0 0,Q.axisAngle (V3 1 0 0) 0) HELD TORCH -> (V3 0 20 0,Q.qID)
_ -> (0,Q.axisAngle (V3 1 0 0) 0) _ -> (0,Q.qID)
orientByLink :: Item -> ComposeLinkType -> (Point3, Q.Quaternion Float) orientByLink :: Item -> ComposeLinkType -> (Point3, Q.Quaternion Float)
orientByLink itm lt = case (_itType itm,lt) of orientByLink itm lt = case (_itType itm,lt) of
(HELD FLAMETHROWER, AmmoInLink{}) -> (V3 4 (-6) 0, Q.axisAngle (V3 1 0 0) 0) (HELD FLAMETHROWER, AmmoInLink{}) -> (V3 4 (-6) 0, Q.qID)
(HELD _,AmmoInLink{}) -> (V3 7 (-2) 0, Q.axisAngle (V3 1 0 0) 0) (HELD _,AmmoInLink{}) -> (V3 7 (-2) 0, Q.qID)
(HELD _,WeaponScopeLink) -> (V3 5 0 5, Q.axisAngle (V3 1 0 0) 0) (HELD _,WeaponScopeLink) -> (V3 5 0 5, Q.qID)
_ -> (0,Q.axisAngle (V3 1 0 0) 0) _ -> (0,Q.qID)
orientAttachment :: Item -> ComposeLinkType -> Item -> Maybe (Point3, Q.Quaternion Float) orientAttachment :: Item -> ComposeLinkType -> Item -> Maybe (Point3, Q.Quaternion Float)
orientAttachment par lnk ch = Just (t1 + Q.rotate q1 t2, q1 * q2) orientAttachment par lnk ch = Just $ case (_itType par,lnk,_itType ch) of
(HELD BURSTRIFLE,_,HELD TORCH) -> (V3 20 0 0, Q.qID)
(HELD LAUNCHER,_,HELD TORCH) -> (V3 0 20 0, Q.qID)
_ -> (t1 + Q.rotate q1 t2, q1 * q2)
where where
(t1,q1) = orientByLink par lnk (t1,q1) = orientByLink par lnk
(t2,q2) = orientChild ch (t2,q2) = orientChild ch
+8
View File
@@ -11,6 +11,8 @@ The warnings have been disabled.
-} -}
module Quaternion ( module Quaternion (
qID, qID,
qToV3,
qToV2,
rotateToZ, rotateToZ,
vToQuat, vToQuat,
module Linear.Quaternion, module Linear.Quaternion,
@@ -43,6 +45,12 @@ vToQuat a b
where where
cprod = crossProd a b cprod = crossProd a b
qToV3 :: Q.Quaternion Float -> Point3
qToV3 q = Q.rotate q (V3 1 0 0)
qToV2 :: Q.Quaternion Float -> Point2
qToV2 = (\(V3 x y _) -> V2 x y) . qToV3
qID :: Q.Quaternion Float qID :: Q.Quaternion Float
qID = Q.axisAngle (V3 1 0 0) 0 qID = Q.axisAngle (V3 1 0 0) 0
+52 -49
View File
@@ -971,7 +971,7 @@ LBlink src/Dodge/Data/Item/HeldUse.hs 53;" C
LBoost src/Dodge/Data/Item/HeldUse.hs 55;" C LBoost src/Dodge/Data/Item/HeldUse.hs 55;" C
LDT src/Dodge/Data/DoubleTree.hs 39;" C LDT src/Dodge/Data/DoubleTree.hs 39;" C
LDTBottomNode src/Dodge/Data/DoubleTree.hs 27;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 27;" C
LDTComb src/Dodge/Item/Grammar.hs 87;" t LDTComb src/Dodge/Item/Grammar.hs 88;" t
LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 25;" C LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 25;" C
LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 26;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 26;" C
LDTRootNode src/Dodge/Data/DoubleTree.hs 23;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 23;" C
@@ -3355,7 +3355,7 @@ applyIndividualDamage' src/Dodge/Creature/Damage.hs 52;" f
applyInvLock src/Dodge/HeldUse.hs 66;" f applyInvLock src/Dodge/HeldUse.hs 66;" f
applyMagnetsToBul src/Dodge/Bullet.hs 46;" f applyMagnetsToBul src/Dodge/Bullet.hs 46;" f
applyNoDamage src/Dodge/Creature/Damage.hs 11;" f applyNoDamage src/Dodge/Creature/Damage.hs 11;" f
applyPastDamages src/Dodge/Creature/State.hs 174;" f applyPastDamages src/Dodge/Creature/State.hs 180;" f
applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f applyPiercingDamage src/Dodge/Creature/Damage.hs 57;" f
applyPosition src/Sound.hs 110;" f applyPosition src/Sound.hs 110;" f
applyRecoil src/Dodge/HeldUse.hs 85;" f applyRecoil src/Dodge/HeldUse.hs 85;" f
@@ -3436,7 +3436,7 @@ baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCaneShape src/Dodge/Item/Draw/SPic.hs 257;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 257;" f
baseDebris src/Dodge/Block/Debris.hs 122;" f baseDebris src/Dodge/Block/Debris.hs 122;" f
baseFloorTileSize src/Tile.hs 38;" f baseFloorTileSize src/Tile.hs 38;" f
basePartiallyComposedItem' src/Dodge/Item/Grammar.hs 84;" f basePartiallyComposedItem' src/Dodge/Item/Grammar.hs 85;" f
baseRifleShape src/Dodge/Item/Draw/SPic.hs 260;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 260;" f
baseRodShape src/Dodge/Item/Draw/SPic.hs 344;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 344;" f
baseSMGShape src/Dodge/Item/Draw/SPic.hs 327;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 327;" f
@@ -3485,7 +3485,7 @@ blood5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 380;" f
blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f blood6S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 500;" f
blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 342;" f blood7S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 342;" f
blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 330;" f blood8S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 330;" f
bloodPuddleAt src/Dodge/Creature/State.hs 137;" f bloodPuddleAt src/Dodge/Creature/State.hs 143;" f
blowTorch src/Dodge/Item/Held/SprayGuns.hs 51;" f blowTorch src/Dodge/Item/Held/SprayGuns.hs 51;" f
blue src/Color.hs 16;" f blue src/Color.hs 16;" f
blunderbuss src/Dodge/Item/Held/Cone.hs 29;" f blunderbuss src/Dodge/Item/Held/Cone.hs 29;" f
@@ -3539,7 +3539,7 @@ centerVaultRoom src/Dodge/Room/Procedural.hs 288;" f
centroid src/Geometry/Polygon.hs 113;" f centroid src/Geometry/Polygon.hs 113;" f
centroidNum src/Geometry/Polygon.hs 116;" f centroidNum src/Geometry/Polygon.hs 116;" f
chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f chainCreatureUpdates src/Dodge/Creature/ChainUpdates.hs 6;" f
chainLinkOrientation src/Dodge/Creature/State.hs 254;" f chainLinkOrientation src/Dodge/Creature/State.hs 260;" f
chainPairs src/Geometry.hs 363;" f chainPairs src/Geometry.hs 363;" f
changeSwapClose src/Dodge/Inventory.hs 230;" f changeSwapClose src/Dodge/Inventory.hs 230;" f
changeSwapInv src/Dodge/Inventory.hs 246;" f changeSwapInv src/Dodge/Inventory.hs 246;" f
@@ -3556,7 +3556,7 @@ chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 112;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 30;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f
checkBlockHP src/Dodge/Block.hs 46;" f checkBlockHP src/Dodge/Block.hs 46;" f
checkDeath src/Dodge/Creature/State.hs 80;" f checkDeath src/Dodge/Creature/State.hs 86;" f
checkEndGame src/Dodge/Update.hs 584;" f checkEndGame src/Dodge/Update.hs 584;" f
checkErrorGL src/Shader/Compile.hs 255;" f checkErrorGL src/Shader/Compile.hs 255;" f
checkFBO src/Framebuffer/Check.hs 6;" f checkFBO src/Framebuffer/Check.hs 6;" f
@@ -3670,7 +3670,7 @@ copyItemToFloor src/Dodge/FloorItem.hs 17;" f
copyItemToFloorID src/Dodge/FloorItem.hs 21;" f copyItemToFloorID src/Dodge/FloorItem.hs 21;" f
corDoor src/Dodge/Room/Room.hs 378;" f corDoor src/Dodge/Room/Room.hs 378;" f
cornerList src/Preload/Render.hs 194;" f cornerList src/Preload/Render.hs 194;" f
corpseOrGib src/Dodge/Creature/State.hs 100;" f corpseOrGib src/Dodge/Creature/State.hs 106;" f
corridor src/Dodge/Room/Corridor.hs 17;" f corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f corridorN src/Dodge/Room/Corridor.hs 52;" f
@@ -3977,7 +3977,7 @@ doCrImp src/Dodge/CreatureEffect.hs 28;" f
doCrWdAc src/Dodge/CreatureEffect.hs 77;" f doCrWdAc src/Dodge/CreatureEffect.hs 77;" f
doCrWdImp src/Dodge/CreatureEffect.hs 16;" f doCrWdImp src/Dodge/CreatureEffect.hs 16;" f
doCrWdWd src/Dodge/CreatureEffect.hs 20;" f doCrWdWd src/Dodge/CreatureEffect.hs 20;" f
doDamage src/Dodge/Creature/State.hs 165;" f doDamage src/Dodge/Creature/State.hs 171;" f
doDamagesFL src/Dodge/Flame.hs 58;" f doDamagesFL src/Dodge/Flame.hs 58;" f
doDeathToggle src/Dodge/WorldEffect.hs 95;" f doDeathToggle src/Dodge/WorldEffect.hs 95;" f
doDeathTriggers src/Dodge/WorldEffect.hs 90;" f doDeathTriggers src/Dodge/WorldEffect.hs 90;" f
@@ -4152,7 +4152,7 @@ drawWlIDs src/Dodge/Debug/Picture.hs 327;" f
drawZoneCol src/Dodge/Debug/Picture.hs 115;" f drawZoneCol src/Dodge/Debug/Picture.hs 115;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 247;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 247;" f
droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f
dropByState src/Dodge/Creature/State.hs 159;" f dropByState src/Dodge/Creature/State.hs 165;" f
dropExcept src/Dodge/Creature/Action.hs 172;" f dropExcept src/Dodge/Creature/Action.hs 172;" f
dropItem src/Dodge/Creature/Action.hs 177;" f dropItem src/Dodge/Creature/Action.hs 177;" f
drumMag src/Dodge/Item/Ammo.hs 36;" f drumMag src/Dodge/Item/Ammo.hs 36;" f
@@ -4189,7 +4189,7 @@ equipPosition src/Dodge/Item/Draw.hs 31;" f
equipSiteInfo src/Dodge/Item/Info.hs 225;" f equipSiteInfo src/Dodge/Item/Info.hs 225;" f
equipSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f equipSiteToPositions src/Dodge/Inventory/RBList.hs 77;" f
equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f equipSpeed src/Dodge/Creature/Impulse/Movement.hs 99;" f
equipmentEffects src/Dodge/Creature/State.hs 233;" f equipmentEffects src/Dodge/Creature/State.hs 239;" f
equipmentStrValue src/Dodge/Creature/Statistics.hs 22;" f equipmentStrValue src/Dodge/Creature/Statistics.hs 22;" f
errorAngleVV src/Geometry.hs 62;" f errorAngleVV src/Geometry.hs 62;" f
errorClosestPointOnLine src/Geometry.hs 74;" f errorClosestPointOnLine src/Geometry.hs 74;" f
@@ -4279,7 +4279,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 169;" f
floorWire src/Dodge/Wire.hs 13;" f floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 398;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 398;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f
foldCr src/Dodge/Creature/State.hs 36;" f foldCr src/Dodge/Creature/State.hs 42;" f
foldPairs src/ListHelp.hs 37;" f foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 37;" f followImpulse src/Dodge/Creature/Impulse.hs 37;" f
@@ -4331,7 +4331,7 @@ geometryQuickCheckTests test/Spec.hs 55;" f
geometryTests test/Spec.hs 17;" f 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
getAmmoLinks src/Dodge/Item/Grammar.hs 60;" f getAmmoLinks src/Dodge/Item/Grammar.hs 61;" f
getArguments src/Dodge/Update/Scroll.hs 151;" f getArguments src/Dodge/Update/Scroll.hs 151;" f
getArguments' src/Dodge/Update/Scroll.hs 139;" f getArguments' src/Dodge/Update/Scroll.hs 139;" f
getAvailableListLines src/Dodge/SelectionList.hs 11;" f getAvailableListLines src/Dodge/SelectionList.hs 11;" f
@@ -4516,7 +4516,7 @@ insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f
insertWallInZones src/Dodge/Wall/Zone.hs 20;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f
insertWithNewKeys src/IntMapHelp.hs 72;" f insertWithNewKeys src/IntMapHelp.hs 72;" f
internalHammerUpdate src/Dodge/Creature/State.hs 148;" f internalHammerUpdate src/Dodge/Creature/State.hs 154;" f
interpWith src/Dodge/Creature/Boid.hs 10;" f interpWith src/Dodge/Creature/Boid.hs 10;" f
intersectCircSeg src/Geometry/Intersect.hs 303;" f intersectCircSeg src/Geometry/Intersect.hs 303;" f
intersectCircSegFirst src/Geometry/Intersect.hs 314;" f intersectCircSegFirst src/Geometry/Intersect.hs 314;" f
@@ -4536,20 +4536,20 @@ intersectSegsSeg src/Geometry/Intersect.hs 232;" f
intervalList src/Geometry.hs 315;" f intervalList src/Geometry.hs 315;" f
interweave src/Justify.hs 17;" f interweave src/Justify.hs 17;" 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 144;" f invAdj src/Dodge/Item/Grammar.hs 145;" f
invDimColor src/Dodge/DisplayInventory.hs 139;" f invDimColor src/Dodge/DisplayInventory.hs 139;" f
invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f
invHead src/Dodge/Render/HUD.hs 266;" f invHead src/Dodge/Render/HUD.hs 266;" f
invIndentIM src/Dodge/Item/Grammar.hs 156;" f invIndentIM src/Dodge/Item/Grammar.hs 157;" f
invLDT src/Dodge/Item/Grammar.hs 128;" f invLDT src/Dodge/Item/Grammar.hs 129;" f
invRootMap src/Dodge/Item/Grammar.hs 137;" f invRootMap src/Dodge/Item/Grammar.hs 138;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 34;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 34;" f
invSelectionItem' src/Dodge/Inventory/SelectionList.hs 16;" f invSelectionItem' src/Dodge/Inventory/SelectionList.hs 16;" f
invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f
invSideEff src/Dodge/Creature/State.hs 238;" f invSideEff src/Dodge/Creature/State.hs 244;" f
invSize src/Dodge/Inventory/CheckSlots.hs 41;" f invSize src/Dodge/Inventory/CheckSlots.hs 41;" f
invTrees src/Dodge/Item/Grammar.hs 164;" f invTrees src/Dodge/Item/Grammar.hs 165;" f
invTrees' src/Dodge/Item/Grammar.hs 173;" f invTrees' src/Dodge/Item/Grammar.hs 174;" f
inventoryExtra src/Dodge/Render/HUD.hs 184;" f inventoryExtra src/Dodge/Render/HUD.hs 184;" f
inventoryExtraH src/Dodge/Render/HUD.hs 195;" f inventoryExtraH src/Dodge/Render/HUD.hs 195;" f
inventoryX src/Dodge/Creature.hs 115;" f inventoryX src/Dodge/Creature.hs 115;" f
@@ -4564,7 +4564,7 @@ isAmmoIntLink src/Dodge/HeldUse.hs 174;" f
isAnimate src/Dodge/Creature/Test.hs 138;" f isAnimate src/Dodge/Creature/Test.hs 138;" f
isCognizant src/Dodge/Creature/Perception.hs 105;" f isCognizant src/Dodge/Creature/Perception.hs 105;" f
isElectrical src/Dodge/Data/Damage.hs 42;" f isElectrical src/Dodge/Data/Damage.hs 42;" f
isFrictionless src/Dodge/Creature/State.hs 420;" f isFrictionless src/Dodge/Creature/State.hs 436;" f
isGas src/Dodge/Euse.hs 64;" f isGas src/Dodge/Euse.hs 64;" f
isInLnk src/Dodge/PlacementSpot.hs 160;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f
isJust' src/MaybeHelp.hs 29;" f isJust' src/MaybeHelp.hs 29;" f
@@ -4602,16 +4602,16 @@ itemFromHeldType src/Dodge/Item/Held.hs 25;" f
itemFromLeftType src/Dodge/Item.hs 77;" f itemFromLeftType src/Dodge/Item.hs 77;" f
itemInfo src/Dodge/Item/Info.hs 12;" f itemInfo src/Dodge/Item/Info.hs 12;" f
itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f itemInvColor src/Dodge/Item/InventoryColor.hs 9;" f
itemInvSideEffect src/Dodge/Creature/State.hs 272;" f itemInvSideEffect src/Dodge/Creature/State.hs 288;" f
itemNumberDisplay src/Dodge/Item/Display.hs 111;" f itemNumberDisplay src/Dodge/Item/Display.hs 111;" f
itemRooms src/Dodge/LockAndKey.hs 39;" f itemRooms src/Dodge/LockAndKey.hs 39;" f
itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f
itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f
itemString src/Dodge/Item/Display.hs 57;" f itemString src/Dodge/Item/Display.hs 57;" f
itemToBreakLists src/Dodge/Item/Grammar.hs 40;" f itemToBreakLists src/Dodge/Item/Grammar.hs 41;" f
itemToFunction src/Dodge/Item/Grammar.hs 65;" f itemToFunction src/Dodge/Item/Grammar.hs 66;" f
itemTreeSPic src/Dodge/Item/Draw/SPic.hs 22;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 22;" f
itemUpdate src/Dodge/Creature/State.hs 360;" f itemUpdate src/Dodge/Creature/State.hs 376;" f
itemUseEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f itemUseEffect src/Dodge/Creature/Impulse/UseItem.hs 35;" f
iterateUntil src/MonadHelp.hs 23;" f iterateUntil src/MonadHelp.hs 23;" f
iterateWhile src/MonadHelp.hs 30;" f iterateWhile src/MonadHelp.hs 30;" f
@@ -4622,7 +4622,7 @@ itmUsageInfo src/Dodge/Item/Info.hs 201;" f
jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f
jaggedShape src/Dodge/Block/Debris.hs 191;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f
jetPack src/Dodge/Item/Equipment.hs 91;" f jetPack src/Dodge/Item/Equipment.hs 91;" f
joinItemsInList src/Dodge/Item/Grammar.hs 119;" f joinItemsInList src/Dodge/Item/Grammar.hs 120;" 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
jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f
@@ -4672,10 +4672,10 @@ ldtToIM src/Dodge/DoubleTree.hs 127;" f
ldtToIndentList src/Dodge/DoubleTree.hs 130;" f ldtToIndentList src/Dodge/DoubleTree.hs 130;" f
left src/DoubleStack.hs 16;" f left src/DoubleStack.hs 16;" f
leftInfo src/Dodge/Item/Info.hs 96;" f leftInfo src/Dodge/Item/Info.hs 96;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 89;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 90;" f
leftItemSPic src/Dodge/Item/Draw/SPic.hs 99;" f leftItemSPic src/Dodge/Item/Draw/SPic.hs 99;" f
leftPad src/Padding.hs 14;" f leftPad src/Padding.hs 14;" f
leftRightCombine src/Dodge/Item/Grammar.hs 103;" f leftRightCombine src/Dodge/Item/Grammar.hs 104;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 428;" f legsSPic src/Dodge/Item/Draw/SPic.hs 428;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f
light src/Color.hs 100;" f light src/Color.hs 100;" f
@@ -4935,7 +4935,7 @@ moveWallID src/Dodge/Wall/Move.hs 24;" f
moveWallIDToward src/Dodge/Wall/Move.hs 47;" f moveWallIDToward src/Dodge/Wall/Move.hs 47;" f
moveWallIDUnsafe src/Dodge/Wall/Move.hs 19;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 19;" f
moveZoomCamera src/Dodge/Update/Camera.hs 80;" f moveZoomCamera src/Dodge/Update/Camera.hs 80;" f
movementSideEff src/Dodge/Creature/State.hs 190;" f movementSideEff src/Dodge/Creature/State.hs 196;" f
mtTopLabels src/Dodge/Tree/Compose.hs 49;" f mtTopLabels src/Dodge/Tree/Compose.hs 49;" f
mtUnderLabels src/Dodge/Tree/Compose.hs 52;" f mtUnderLabels src/Dodge/Tree/Compose.hs 52;" f
muchWlDustAt src/Dodge/Wall/Dust.hs 15;" f muchWlDustAt src/Dodge/Wall/Dust.hs 15;" f
@@ -5151,7 +5151,7 @@ pointerToItemLocation src/Dodge/Item/Location.hs 25;" f
pointerYourRootItem src/Dodge/Item/Location.hs 42;" f pointerYourRootItem src/Dodge/Item/Location.hs 42;" f
pointerYourSelectedItem src/Dodge/Item/Location.hs 36;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 36;" f
pointsToPoly src/Geometry/ConvexPoly.hs 39;" f pointsToPoly src/Geometry/ConvexPoly.hs 39;" f
poisonSPic src/Dodge/Creature/State.hs 125;" f poisonSPic src/Dodge/Creature/State.hs 131;" f
poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f
poke34 src/Shader/Poke.hs 516;" f poke34 src/Shader/Poke.hs 516;" f
pokeArrayOff src/Shader/Poke.hs 527;" f pokeArrayOff src/Shader/Poke.hs 527;" f
@@ -5283,7 +5283,9 @@ putStrLnAppend src/Dodge/LevelGen.hs 79;" f
putTerminal src/Dodge/Placement/Instance/Terminal.hs 16;" f putTerminal src/Dodge/Placement/Instance/Terminal.hs 16;" 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 46;" f qID src/Quaternion.hs 54;" f
qToV2 src/Quaternion.hs 51;" f
qToV3 src/Quaternion.hs 48;" f
quarterRoomSquare src/Dodge/Room/Procedural.hs 212;" f quarterRoomSquare src/Dodge/Room/Procedural.hs 212;" f
quarterRoomTri src/Dodge/Room/Procedural.hs 176;" f quarterRoomTri src/Dodge/Room/Procedural.hs 176;" f
quitCommand src/Dodge/Terminal.hs 55;" f quitCommand src/Dodge/Terminal.hs 55;" f
@@ -5395,7 +5397,7 @@ rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 71;" f rhombus src/Polyhedra.hs 71;" f
rifle src/Dodge/Item/Held/Cane.hs 51;" f rifle src/Dodge/Item/Held/Cane.hs 51;" f
right src/DoubleStack.hs 16;" f right src/DoubleStack.hs 16;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 96;" f rightIsParentCombine src/Dodge/Item/Grammar.hs 97;" f
rightPad src/Padding.hs 22;" f rightPad src/Padding.hs 22;" f
rightPadNoSquash src/Padding.hs 26;" f rightPadNoSquash src/Padding.hs 26;" f
rlPosDir src/Dodge/RoomLink.hs 94;" f rlPosDir src/Dodge/RoomLink.hs 94;" f
@@ -5445,7 +5447,7 @@ rotateSHx src/Shape.hs 261;" f
rotateSP src/ShapePicture.hs 57;" f rotateSP src/ShapePicture.hs 57;" f
rotateTo src/Polyhedra/Geodesic.hs 63;" f rotateTo src/Polyhedra/Geodesic.hs 63;" f
rotateToOverlappingWall src/Dodge/Update/Camera.hs 179;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 179;" f
rotateToZ src/Quaternion.hs 32;" f rotateToZ src/Quaternion.hs 34;" 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 30;" f rotateXY src/Polyhedra.hs 30;" f
@@ -5488,7 +5490,7 @@ scaleSH src/Shape.hs 265;" f
scalp src/Dodge/Creature/Picture.hs 93;" f scalp src/Dodge/Creature/Picture.hs 93;" f
scancodeToHotkey src/Dodge/Creature/YourControl.hs 70;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 70;" f
scodeToChar src/Dodge/ScodeToChar.hs 6;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f
scorchSPic src/Dodge/Creature/State.hs 120;" f scorchSPic src/Dodge/Creature/State.hs 126;" f
screenBox src/Dodge/Base/Window.hs 53;" f screenBox src/Dodge/Base/Window.hs 53;" f
screenPolygon src/Dodge/Base/Window.hs 17;" f screenPolygon src/Dodge/Base/Window.hs 17;" f
screenPolygonBord src/Dodge/Base/Window.hs 27;" f screenPolygonBord src/Dodge/Base/Window.hs 27;" f
@@ -5559,7 +5561,7 @@ setOldPos src/Dodge/Update.hs 351;" f
setOutLinks src/Dodge/RoomLink.hs 48;" f setOutLinks src/Dodge/RoomLink.hs 48;" f
setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f
setOutLinksPD src/Dodge/RoomLink.hs 77;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 339;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 355;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 121;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 121;" f
setShaderSource src/Shader/Compile.hs 290;" f setShaderSource src/Shader/Compile.hs 290;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f setShadowLimits src/Dodge/Shadows.hs 11;" f
@@ -5661,7 +5663,7 @@ shuffleTail src/RandomHelp.hs 55;" f
sigmoid src/Dodge/Base.hs 129;" f sigmoid src/Dodge/Base.hs 129;" f
simpleCrSprings src/Dodge/Update.hs 646;" f simpleCrSprings src/Dodge/Update.hs 646;" f
simpleDamFL src/Dodge/Flame.hs 41;" f simpleDamFL src/Dodge/Flame.hs 41;" f
simplePCI src/Dodge/Item/Grammar.hs 81;" f simplePCI src/Dodge/Item/Grammar.hs 82;" f
simpleTermMessage src/Dodge/Terminal.hs 249;" f simpleTermMessage src/Dodge/Terminal.hs 249;" f
sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 486;" f
sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 340;" f sineRaisePitchTwoSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 340;" f
@@ -5768,7 +5770,7 @@ startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f
startRoom src/Dodge/Room/Start.hs 62;" f startRoom src/Dodge/Room/Start.hs 62;" f
startSeedGame src/Dodge/StartNewGame.hs 20;" f startSeedGame src/Dodge/StartNewGame.hs 20;" f
startSeedGameConc src/Dodge/StartNewGame.hs 27;" f startSeedGameConc src/Dodge/StartNewGame.hs 27;" f
stateUpdate src/Dodge/Creature/State.hs 54;" f stateUpdate src/Dodge/Creature/State.hs 60;" f
statsModifier src/Dodge/Creature/Info.hs 14;" f statsModifier src/Dodge/Creature/Info.hs 14;" f
stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 386;" f stone1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 386;" f
stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f stone2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f
@@ -5845,6 +5847,7 @@ testEvent src/Dodge/Event/Test.hs 10;" f
testInventory src/Dodge/Creature.hs 256;" f testInventory src/Dodge/Creature.hs 256;" f
testPic src/Dodge/Render/ShapePicture.hs 163;" f testPic src/Dodge/Render/ShapePicture.hs 163;" f
testStringInit src/Dodge/TestString.hs 22;" f testStringInit src/Dodge/TestString.hs 22;" f
testtorch src/Dodge/Creature/State.hs 282;" f
text src/Picture/Base.hs 193;" f text src/Picture/Base.hs 193;" f
textGrad src/Picture/Text.hs 5;" f textGrad src/Picture/Text.hs 5;" f
textJustifyCenter src/Picture/Base.hs 212;" f textJustifyCenter src/Picture/Base.hs 212;" f
@@ -6014,7 +6017,7 @@ upHammer src/Dodge/Default.hs 77;" f
upProjectile src/Dodge/Projectile/Update.hs 25;" f upProjectile src/Dodge/Projectile/Update.hs 25;" f
updateAllNodes src/TreeHelp.hs 85;" f updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla/Arc.hs 86;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f
updateAutoRecharge src/Dodge/Creature/State.hs 370;" f updateAutoRecharge src/Dodge/Creature/State.hs 386;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 159;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 159;" f
updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarrel src/Dodge/Barreloid.hs 45;" f
updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f
@@ -6054,11 +6057,11 @@ updateIMl' src/Dodge/Update.hs 391;" f
updateInGameCamera src/Dodge/Update/Camera.hs 71;" f updateInGameCamera src/Dodge/Update/Camera.hs 71;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 108;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 108;" f
updateInstantBullets src/Dodge/Update.hs 535;" f updateInstantBullets src/Dodge/Update.hs 535;" f
updateInv src/Dodge/Creature/State.hs 229;" f updateInv src/Dodge/Creature/State.hs 235;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f
updateInventorySectionItems src/Dodge/DisplayInventory.hs 143;" f updateInventorySectionItems src/Dodge/DisplayInventory.hs 143;" f
updateItemTargeting src/Dodge/Creature/State.hs 288;" f updateItemTargeting src/Dodge/Creature/State.hs 304;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 269;" f updateItemWithOrientation src/Dodge/Creature/State.hs 277;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 102;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 102;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 91;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 91;" f
updateLampoid src/Dodge/Lampoid.hs 13;" f updateLampoid src/Dodge/Lampoid.hs 13;" f
@@ -6069,7 +6072,7 @@ updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 128;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 128;" f
updateMIM src/Dodge/Update.hs 548;" f updateMIM src/Dodge/Update.hs 548;" f
updateMachine src/Dodge/Machine/Update.hs 16;" f updateMachine src/Dodge/Machine/Update.hs 16;" f
updateMovement src/Dodge/Creature/State.hs 409;" f updateMovement src/Dodge/Creature/State.hs 425;" f
updateObjCatMaybes src/Dodge/Update.hs 407;" f updateObjCatMaybes src/Dodge/Update.hs 407;" f
updateObjMapMaybe src/Dodge/Update.hs 400;" f updateObjMapMaybe src/Dodge/Update.hs 400;" f
updatePastWorlds src/Dodge/Update.hs 305;" f updatePastWorlds src/Dodge/Update.hs 305;" f
@@ -6087,8 +6090,8 @@ updateRadarSweep src/Dodge/RadarSweep.hs 25;" f
updateRadarSweeps src/Dodge/Update.hs 449;" f updateRadarSweeps src/Dodge/Update.hs 449;" f
updateRandNode src/TreeHelp.hs 108;" f updateRandNode src/TreeHelp.hs 108;" f
updateRenderSplit appDodge/Main.hs 105;" f updateRenderSplit appDodge/Main.hs 105;" f
updateRootItem src/Dodge/Creature/State.hs 247;" f updateRootItem src/Dodge/Creature/State.hs 253;" f
updateRootItem' src/Dodge/Creature/State.hs 265;" f updateRootItem' src/Dodge/Creature/State.hs 271;" f
updateRootItemID src/Dodge/Inventory/Location.hs 41;" f updateRootItemID src/Dodge/Inventory/Location.hs 41;" f
updateScopeZoom src/Dodge/Update/Camera.hs 128;" f updateScopeZoom src/Dodge/Update/Camera.hs 128;" f
updateScopeZoom' src/Dodge/Update/Camera.hs 133;" f updateScopeZoom' src/Dodge/Update/Camera.hs 133;" f
@@ -6139,13 +6142,13 @@ upperPrismPolyST src/Shape.hs 106;" f
upperPrismPolySU src/Shape.hs 112;" f upperPrismPolySU src/Shape.hs 112;" f
upperPrismPolyTS src/Shape.hs 118;" f upperPrismPolyTS src/Shape.hs 118;" f
upperRounded src/Shape.hs 181;" f upperRounded src/Shape.hs 181;" f
useBreakL' src/Dodge/Item/Grammar.hs 21;" f useBreakL' src/Dodge/Item/Grammar.hs 22;" f
useBreakListsLinkTest src/Dodge/Item/Grammar.hs 28;" f useBreakListsLinkTest src/Dodge/Item/Grammar.hs 29;" f
useBulletPayload src/Dodge/Bullet.hs 105;" f useBulletPayload src/Dodge/Bullet.hs 105;" f
useC src/Dodge/Cuse.hs 8;" f useC src/Dodge/Cuse.hs 8;" f
useC' src/Dodge/Cuse.hs 13;" f useC' src/Dodge/Cuse.hs 13;" f
useE src/Dodge/Euse.hs 24;" f useE src/Dodge/Euse.hs 24;" f
useEquipment src/Dodge/Creature/State.hs 223;" f useEquipment src/Dodge/Creature/State.hs 229;" f
useGasParams src/Dodge/HeldUse.hs 376;" f useGasParams src/Dodge/HeldUse.hs 376;" f
useHotKey src/Dodge/Creature/YourControl.hs 49;" f useHotKey src/Dodge/Creature/YourControl.hs 49;" f
useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 126;" f useItemHotkey src/Dodge/Creature/Impulse/UseItem.hs 126;" f
@@ -6166,7 +6169,7 @@ useStopWatch src/Dodge/Luse.hs 24;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 246;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 246;" f
useTimeScrollGun src/Dodge/Luse.hs 32;" f useTimeScrollGun src/Dodge/Luse.hs 32;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
useUpdate src/Dodge/Creature/State.hs 215;" f useUpdate src/Dodge/Creature/State.hs 221;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f
usedRoomLinkPoss src/Dodge/PlacementSpot.hs 203;" f usedRoomLinkPoss src/Dodge/PlacementSpot.hs 203;" f
v2z src/Geometry/Vector3D.hs 93;" f v2z src/Geometry/Vector3D.hs 93;" f
@@ -6176,7 +6179,7 @@ vNormal src/Geometry/Vector.hs 137;" f
vNormaly src/Geometry/Vector3D.hs 72;" f vNormaly src/Geometry/Vector3D.hs 72;" f
vShape src/Dodge/Placement/Instance/LightSource.hs 114;" f vShape src/Dodge/Placement/Instance/LightSource.hs 114;" f
vToL src/MatrixHelper.hs 46;" f vToL src/MatrixHelper.hs 46;" f
vToQuat src/Quaternion.hs 39;" f vToQuat src/Quaternion.hs 41;" f
validTerminalCommands src/Dodge/Debug/Terminal.hs 130;" f validTerminalCommands src/Dodge/Debug/Terminal.hs 130;" f
vasTightStride src/Shader/Compile.hs 297;" f vasTightStride src/Shader/Compile.hs 297;" f
vecBetweenSpeed src/Dodge/Base.hs 124;" f vecBetweenSpeed src/Dodge/Base.hs 124;" f