Work on crab corpse

This commit is contained in:
2026-04-10 09:48:06 +01:00
parent 8faaf54f2c
commit a29cb8565a
4 changed files with 113 additions and 108 deletions
-67
View File
@@ -1,67 +0,0 @@
module Dodge.Corpse.Make (makeCorpse) where
import qualified Quaternion as Q
import Linear
import Control.Lens
import Dodge.Creature.Picture
import Dodge.Creature.Radius
import Dodge.Creature.Shape
--import Dodge.Data.Corpse
import Dodge.Data.Creature
import Geometry
import Shape
import ShapePicture
import RandomHelp
makeCorpse :: StdGen -> Creature -> SPic
makeCorpse g cr = case cr ^. crType of
HoverCrit{} -> noPic $ drawHoverCrit cr
ChaseCrit{} -> noPic $ chaseCorpse g cr
CrabCrit{} -> noPic $ crabCorpse g cr
_ ->
noPic
. scaleSH (V3 crsize crsize crsize)
$ mconcat
[ colorSH (_skinHead cskin) $ deadScalp cr
, colorSH (_skinUpper cskin) $ deadUpperBody cr
, rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr
]
where
cskin = crShape $ _crType cr -- this should be fixed
crsize = 0.1 * crRad (cr ^. crType)
rotmdir = rotateSH (_crMvDir cr - _crDir cr)
chaseCorpse :: StdGen -> Creature -> Shape
chaseCorpse g cr = mconcat
[colorSH (_skinUpper cskin) . upperPrismPolyHalfMI 0 $ polyCirc 3 12
& each %~ vNormal
& each . _y *~ 0.6
, colorSH (_skinUpper cskin) . overPosSH (Q.apply neckq) $
upperPrismPolyHalfMI 3 ((+ V2 8 0) . vNormal <$> trapTBH 2 5 8)
, colorSH (_skinHead cskin)
(overPosSH (Q.apply headq) (upperBox Medium Important 2 [V2 0 (-4), V2 9 0, V2 0 4]))
, rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr
]
where
neckq = (V3 6 0 0, Q.qz a)
(a,g') = randomR (-2,2) g
b = fst $ randomR (-2,2) g'
cskin = crShape $ _crType cr -- this should be fixed
rotmdir = rotateSH (_crMvDir cr - _crDir cr)
headq = neckq `Q.comp` (V3 16 0 0, Q.qz b )
crabCorpse :: StdGen -> Creature -> Shape
crabCorpse g cr = mconcat
[ colorSH (_skinUpper cskin) $ overPosSH (Q.apply torsoq) (upperPrismPolyHalfMI 5 $ polyCirc 4 10
& each . _x *~ 0.6)
, colorSH (_skinUpper cskin) $ overPosSH (Q.apply lclawq) (upperPrismPolyHalfMI 4 $ rectNSWE 20 0 (-2) 2)
<> overPosSH (Q.apply rclawq) (upperPrismPolyHalfMI 4 $ rectNSWE 0 (-20) (-2) 2)
]
where
torsoq = (V3 0 0 0,Q.qid)
-- not sure which rotation is done first
lclawq = torsoq `Q.comp` (V3 2 8 1, Q.axisAngle (V3 1 0 0) (-0.1) * Q.qz la)
(la,g') = randomR (-2,2) g
ra = fst $ randomR (-2,2) g'
rclawq = torsoq `Q.comp` (V3 2 (-8) 1, Q.axisAngle (V3 1 0 0) (0.1) * Q.qz ra)
cskin = crShape $ _crType cr -- this should be fixed
+72 -1
View File
@@ -10,8 +10,10 @@ module Dodge.Creature.Picture (
drawChaseCrit, drawChaseCrit,
drawHoverCrit, drawHoverCrit,
drawCrabCrit, drawCrabCrit,
makeCorpse,
) where ) where
import RandomHelp
import Dodge.Base.Collide import Dodge.Base.Collide
import Control.Monad import Control.Monad
import Data.Maybe import Data.Maybe
@@ -107,7 +109,7 @@ crabUpperBody _ cr = colorSH (_skinUpper cskin)
ratck = Q.axisAngle (V3 0 0 1) (0.5 * pi) ratck = Q.axisAngle (V3 0 0 1) (0.5 * pi)
rrest = Q.axisAngle (V3 1 0 0) (-1) rrest = Q.axisAngle (V3 1 0 0) (-1)
rcool = 1 - min 10 (fromIntegral . _meleeCooldownR $ _crType cr) / 10 rcool = 1 - min 10 (fromIntegral . _meleeCooldownR $ _crType cr) / 10
headq = torsoq `Q.comp` (V3 0 0 5, Q.qid) headq = torsoq `Q.comp` (V3 3 0 4, Q.qid)
-- headq = torsoq `Q.comp` (V3 0 0 5, (Q.qz aimrot )) -- headq = torsoq `Q.comp` (V3 0 0 5, (Q.qz aimrot ))
-- cxy = cr ^. crPos . _xy -- cxy = cr ^. crPos . _xy
-- aimrot = fromMaybe pi $ do -- aimrot = fromMaybe pi $ do
@@ -221,6 +223,75 @@ spiderJoint' p l1 l2 q = (f $ Q.axisAngle (V3 0 (-1) 0) (pi - (a+b)), f . Q.axis
c = argV $ (p-q) ^. _xy c = argV $ (p-q) ^. _xy
f x = Q.qz c * x f x = Q.qz c * x
makeCorpse :: StdGen -> Creature -> SPic
makeCorpse g cr = case cr ^. crType of
HoverCrit{} -> noPic $ drawHoverCrit cr
ChaseCrit{} -> noPic $ chaseCorpse g cr
CrabCrit{} -> noPic $ crabCorpse g cr
_ ->
noPic
. scaleSH (V3 crsize crsize crsize)
$ mconcat
[ colorSH (_skinHead cskin) $ deadScalp cr
, colorSH (_skinUpper cskin) $ deadUpperBody cr
, rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr
]
where
cskin = crShape $ _crType cr -- this should be fixed
crsize = 0.1 * crRad (cr ^. crType)
rotmdir = rotateSH (_crMvDir cr - _crDir cr)
chaseCorpse :: StdGen -> Creature -> Shape
chaseCorpse g cr = mconcat
[colorSH (_skinUpper cskin) . upperPrismPolyHalfMI 0 $ polyCirc 3 12
& each %~ vNormal
& each . _y *~ 0.6
, colorSH (_skinUpper cskin) . overPosSH (Q.apply neckq) $
upperPrismPolyHalfMI 3 ((+ V2 8 0) . vNormal <$> trapTBH 2 5 8)
, colorSH (_skinHead cskin)
(overPosSH (Q.apply headq) (upperBox Medium Important 2 [V2 0 (-4), V2 9 0, V2 0 4]))
, rotmdir $ colorSH (_skinLower cskin) $ deadFeet cr
]
where
neckq = (V3 6 0 0, Q.qz a)
(a,g') = randomR (-2,2) g
b = fst $ randomR (-2,2) g'
cskin = crShape $ _crType cr -- this should be fixed
rotmdir = rotateSH (_crMvDir cr - _crDir cr)
headq = neckq `Q.comp` (V3 16 0 0, Q.qz b )
crabCorpse :: StdGen -> Creature -> Shape
crabCorpse g cr = mconcat
[ colorSH (_skinUpper cskin) $ overPosSH (Q.apply torsoq) (upperPrismPolyHalfMI 5 $ polyCirc 4 10
& each . _x *~ 0.6)
, colorSH (_skinUpper cskin) $ overPosSH (Q.apply lclawq) (upperPrismPolyHalfMI 4 $ rectNSWE 20 0 (-2) 2)
<> overPosSH (Q.apply rclawq) (upperPrismPolyHalfMI 4 $ rectNSWE 0 (-20) (-2) 2)
, colorSH (cskin ^?! skinLower) $
(foldMap (mkfoot 5) [p1,p2])
<> (foldMap (mkfoot (-5)) [p3,p4])
, colorSH (_skinHead cskin)
--(overPosSH (Q.apply headq) (upperPrismPolyHalfMI 2 $ [V2 0 (-4), V2 2 (-2), 2, V2 0 4]))
(overPosSH (Q.apply headq) (upperPrismPolyHalfMI 1 $ square 2))
]
where
headq = torsoq `Q.comp` (V3 3 0 4, Q.qid)
torsoq = (V3 0 0 0,Q.qid)
-- not sure which rotation is done first
lclawq = torsoq `Q.comp` (V3 2 8 1, Q.axisAngle (V3 1 0 0) (-0.1) * Q.qz la)
(la,g') = randomR (-2,2) g
ra = fst $ randomR (-2,2) g'
p1 = 0 & _xy .~ p1' + V2 0 15
p2 = 0 & _xy .~ p2' + V2 0 15
p3 = 0 & _xy .~ p3' - V2 0 15
p4 = 0 & _xy .~ p4' - V2 0 15
(p1':p2':p3':p4':_) = evalState (replicateM 4 (randInCirc 9)) g
mkfoot y p = let (q1,q2) = spiderJoint (V3 0 y 0) p
in (afoot & each . sfVs . each %~ Q.apply (V3 0 y 0, q1))
<> (afoot & each . sfVs . each %~ Q.apply (p,q2))
afoot = upperPrismPolyST 10 $ polyCirc 3 2
rclawq = torsoq `Q.comp` (V3 2 (-8) 1, Q.axisAngle (V3 1 0 0) (0.1) * Q.qz ra)
cskin = crShape $ _crType cr -- this should be fixed
deadFeet :: Creature -> Shape deadFeet :: Creature -> Shape
{-# INLINE deadFeet #-} {-# INLINE deadFeet #-}
deadFeet = feet deadFeet = feet
+2 -2
View File
@@ -1,6 +1,7 @@
{-# LANGUAGE LambdaCase #-} {-# LANGUAGE LambdaCase #-}
module Dodge.Creature.Update (updateCreature) where module Dodge.Creature.Update (updateCreature) where
import Dodge.Creature.Picture
import Dodge.Base.You import Dodge.Base.You
import Control.Monad import Control.Monad
import Color import Color
@@ -8,7 +9,6 @@ import qualified Data.IntMap.Strict as IM
import Data.Maybe import Data.Maybe
import Dodge.Barreloid import Dodge.Barreloid
-- import Dodge.Base.NewID -- import Dodge.Base.NewID
import Dodge.Corpse.Make
import Dodge.Creature.Action import Dodge.Creature.Action
import Dodge.Creature.State import Dodge.Creature.State
import Dodge.Creature.State.WalkCycle import Dodge.Creature.State.WalkCycle
@@ -56,7 +56,7 @@ updateLivingCreature cr =
over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w
CrabCrit{} -> \w -> CrabCrit{} -> \w ->
crUpdate cid . performActions cid $ crUpdate cid . performActions cid $
(crabCritInternal cid) w crabCritInternal cid w
AutoCrit {} -> crUpdate cid AutoCrit {} -> crUpdate cid
SwarmCrit {} -> crUpdate cid SwarmCrit {} -> crUpdate cid
HoverCrit {} -> \w -> HoverCrit {} -> \w ->
+39 -38
View File
@@ -2651,7 +2651,7 @@ argV src/Geometry/Vector.hs 89;" f
armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f armourChaseCrit src/Dodge/Creature/ArmourChase.hs 34;" f
armouredChasers src/Dodge/Room/Boss.hs 58;" f armouredChasers src/Dodge/Room/Boss.hs 58;" f
armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f armouredCorridor src/Dodge/Room/RoadBlock.hs 20;" f
arms src/Dodge/Creature/Picture.hs 219;" f arms src/Dodge/Creature/Picture.hs 295;" f
arrow src/Picture/Composite.hs 19;" f arrow src/Picture/Composite.hs 19;" f
arrowPath src/Picture/Composite.hs 8;" f arrowPath src/Picture/Composite.hs 8;" f
assignHotkey src/Dodge/AssignHotkey.hs 9;" f assignHotkey src/Dodge/AssignHotkey.hs 9;" f
@@ -2703,14 +2703,14 @@ baseItemTriggerType src/Dodge/BaseTriggerType.hs 21;" f
baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 324;" f
baseRodShape src/Dodge/Item/Draw/SPic.hs 407;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 407;" f
baseSMGShape src/Dodge/Item/Draw/SPic.hs 395;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 395;" f
baseShoulder src/Dodge/Creature/Picture.hs 257;" f baseShoulder src/Dodge/Creature/Picture.hs 333;" f
baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 301;" f
baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 293;" f
baseStickSpread src/Dodge/HeldUse.hs 346;" f baseStickSpread src/Dodge/HeldUse.hs 346;" f
basicAttentionUpdate src/Dodge/Creature/Perception.hs 137;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 137;" f
basicAwarenessUpdate src/Dodge/Creature/Perception.hs 31;" f basicAwarenessUpdate src/Dodge/Creature/Perception.hs 31;" f
basicCrPict src/Dodge/Creature/Picture.hs 38;" f basicCrPict src/Dodge/Creature/Picture.hs 40;" f
basicCrShape src/Dodge/Creature/Picture.hs 44;" f basicCrShape src/Dodge/Creature/Picture.hs 46;" f
basicItemDisplay src/Dodge/Item/Display.hs 23;" f basicItemDisplay src/Dodge/Item/Display.hs 23;" f
basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f basicMachineApplyDamage src/Dodge/Machine/Damage.hs 6;" f
basicMuzFlare src/Dodge/HeldUse.hs 731;" f basicMuzFlare src/Dodge/HeldUse.hs 731;" f
@@ -2825,11 +2825,11 @@ changeSwapWith src/Dodge/Inventory.hs 283;" f
charToTuple src/Picture/Base.hs 312;" f charToTuple src/Picture/Base.hs 312;" f
charToTupleGrad src/Picture/Text.hs 18;" f charToTupleGrad src/Picture/Text.hs 18;" f
chartreuse src/Color.hs 51;" f chartreuse src/Color.hs 51;" f
chaseCorpse src/Dodge/Corpse/Make.hs 34;" f chaseCorpse src/Dodge/Creature/Picture.hs 244;" f
chaseCrit src/Dodge/Creature/ChaseCrit.hs 30;" f chaseCrit src/Dodge/Creature/ChaseCrit.hs 30;" f
chaseCritInternal src/Dodge/Humanoid.hs 12;" f chaseCritInternal src/Dodge/Humanoid.hs 12;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 194;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 194;" f
chaseUpperBody src/Dodge/Creature/Picture.hs 120;" f chaseUpperBody src/Dodge/Creature/Picture.hs 122;" f
chasmRotate src/Dodge/Creature/State/WalkCycle.hs 117;" f chasmRotate src/Dodge/Creature/State/WalkCycle.hs 117;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 379;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 379;" f
chasmSpitTerminal src/Dodge/Room/Tutorial.hs 311;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 311;" f
@@ -2837,8 +2837,8 @@ chasmTestCliffPush src/Dodge/Creature/State/WalkCycle.hs 102;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 121;" f chasmWallToSurface src/Dodge/Base/Collide.hs 121;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
checkConnection src/Dodge/Inventory/Swap.hs 66;" f checkConnection src/Dodge/Inventory/Swap.hs 66;" f
checkDeath src/Dodge/Creature/Update.hs 98;" f checkDeath src/Dodge/Creature/Update.hs 99;" f
checkDeath' src/Dodge/Creature/Update.hs 101;" f checkDeath' src/Dodge/Creature/Update.hs 102;" f
checkEndGame src/Dodge/Update.hs 875;" f checkEndGame src/Dodge/Update.hs 875;" f
checkErrorGL src/Shader/Compile.hs 86;" f checkErrorGL src/Shader/Compile.hs 86;" f
checkFBO src/Framebuffer/Check.hs 6;" f checkFBO src/Framebuffer/Check.hs 6;" f
@@ -2961,7 +2961,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 136;" 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
corpseOrGib src/Dodge/Creature/Update.hs 135;" f corpseOrGib src/Dodge/Creature/Update.hs 136;" f
corridor src/Dodge/Room/Corridor.hs 17;" f corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 135;" f corridorBoss src/Dodge/LockAndKey.hs 135;" f
corridorN src/Dodge/Room/Corridor.hs 58;" f corridorN src/Dodge/Room/Corridor.hs 58;" f
@@ -2969,7 +2969,7 @@ corridorWallN src/Dodge/Room/Corridor.hs 77;" f
crAdd src/Dodge/Room/RezBox.hs 116;" f crAdd src/Dodge/Room/RezBox.hs 116;" f
crAwayFromPost src/Dodge/Creature/Test.hs 83;" f crAwayFromPost src/Dodge/Creature/Test.hs 83;" f
crBlips src/Dodge/RadarSweep.hs 88;" f crBlips src/Dodge/RadarSweep.hs 88;" f
crCamouflage src/Dodge/Creature/Picture.hs 41;" f crCamouflage src/Dodge/Creature/Picture.hs 43;" f
crCanSeeCr src/Dodge/Creature/Test.hs 50;" f crCanSeeCr src/Dodge/Creature/Test.hs 50;" f
crCrSpring src/Dodge/Update.hs 997;" f crCrSpring src/Dodge/Update.hs 997;" f
crCurrentEquipment src/Dodge/Creature/Statistics.hs 65;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 65;" f
@@ -3010,7 +3010,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f
crSpring src/Dodge/Update.hs 984;" f crSpring src/Dodge/Update.hs 984;" f
crStratConMatches src/Dodge/Creature/Test.hs 78;" f crStratConMatches src/Dodge/Creature/Test.hs 78;" f
crStrength src/Dodge/Creature/Statistics.hs 30;" f crStrength src/Dodge/Creature/Statistics.hs 30;" f
crUpdate src/Dodge/Creature/Update.hs 91;" f crUpdate src/Dodge/Creature/Update.hs 92;" f
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 67;" f
crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 49;" f
crVocalResetTime src/Dodge/Creature/Vocalization.hs 61;" f crVocalResetTime src/Dodge/Creature/Vocalization.hs 61;" f
@@ -3021,12 +3021,12 @@ crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 62;" f
crWlPbHitZ src/Dodge/WorldEvent/ThingsHit.hs 72;" f crWlPbHitZ src/Dodge/WorldEvent/ThingsHit.hs 72;" f
crZoneSize src/Dodge/Zoning/Creature.hs 43;" f crZoneSize src/Dodge/Zoning/Creature.hs 43;" f
crabActionUpdate src/Dodge/Creature/ReaderUpdate.hs 124;" f crabActionUpdate src/Dodge/Creature/ReaderUpdate.hs 124;" f
crabCorpse src/Dodge/Corpse/Make.hs 53;" f crabCorpse src/Dodge/Creature/Picture.hs 263;" f
crabCrit src/Dodge/Creature/ChaseCrit.hs 37;" f crabCrit src/Dodge/Creature/ChaseCrit.hs 37;" f
crabCritInternal src/Dodge/Humanoid.hs 29;" f crabCritInternal src/Dodge/Humanoid.hs 29;" f
crabFeet src/Dodge/Creature/Picture.hs 172;" f crabFeet src/Dodge/Creature/Picture.hs 174;" f
crabRoom src/Dodge/Room/Tutorial.hs 433;" f crabRoom src/Dodge/Room/Tutorial.hs 433;" f
crabUpperBody src/Dodge/Creature/Picture.hs 86;" f crabUpperBody src/Dodge/Creature/Picture.hs 88;" f
craftInfo src/Dodge/Item/Info.hs 168;" f craftInfo src/Dodge/Item/Info.hs 168;" f
craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 40;" f
crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 603;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 603;" f
@@ -3123,10 +3123,10 @@ deZoneIX src/Dodge/Zoning/Base.hs 91;" f
deZoneWall src/Dodge/Zoning/Wall.hs 69;" f deZoneWall src/Dodge/Zoning/Wall.hs 69;" f
deadEndPSType src/Dodge/Room/Room.hs 264;" f deadEndPSType src/Dodge/Room/Room.hs 264;" f
deadEndRoom src/Dodge/Room/Room.hs 267;" f deadEndRoom src/Dodge/Room/Room.hs 267;" f
deadFeet src/Dodge/Creature/Picture.hs 215;" f deadFeet src/Dodge/Creature/Picture.hs 291;" f
deadRot src/Dodge/Creature/Picture.hs 233;" f deadRot src/Dodge/Creature/Picture.hs 309;" f
deadScalp src/Dodge/Creature/Picture.hs 228;" f deadScalp src/Dodge/Creature/Picture.hs 304;" f
deadUpperBody src/Dodge/Creature/Picture.hs 254;" f deadUpperBody src/Dodge/Creature/Picture.hs 330;" f
debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 733;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 733;" f
debrisSPic src/Dodge/Prop/Draw.hs 17;" f debrisSPic src/Dodge/Prop/Draw.hs 17;" f
debrisSize src/Dodge/Block/Debris.hs 131;" f debrisSize src/Dodge/Block/Debris.hs 131;" f
@@ -3349,7 +3349,7 @@ drawBoundingBox src/Dodge/Debug/Picture.hs 368;" f
drawBullet src/Dodge/Render/ShapePicture.hs 180;" f drawBullet src/Dodge/Render/ShapePicture.hs 180;" f
drawButton src/Dodge/Button/Draw.hs 11;" f drawButton src/Dodge/Button/Draw.hs 11;" f
drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
drawChaseCrit src/Dodge/Creature/Picture.hs 77;" f drawChaseCrit src/Dodge/Creature/Picture.hs 79;" f
drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f
drawCliff src/Dodge/Render/ShapePicture.hs 87;" f drawCliff src/Dodge/Render/ShapePicture.hs 87;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
@@ -3360,7 +3360,7 @@ drawCoord src/Dodge/Debug/Picture.hs 396;" f
drawCountMod src/Render.hs 231;" f drawCountMod src/Render.hs 231;" f
drawCrInfo src/Dodge/Debug.hs 215;" f drawCrInfo src/Dodge/Debug.hs 215;" f
drawCrInfo' src/Dodge/Debug.hs 210;" f drawCrInfo' src/Dodge/Debug.hs 210;" f
drawCrabCrit src/Dodge/Creature/Picture.hs 69;" f drawCrabCrit src/Dodge/Creature/Picture.hs 71;" f
drawCreature src/Dodge/Render/ShapePicture.hs 111;" f drawCreature src/Dodge/Render/ShapePicture.hs 111;" f
drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 199;" f
drawCross src/Dodge/Render/Label.hs 25;" f drawCross src/Dodge/Render/Label.hs 25;" f
@@ -3379,7 +3379,7 @@ drawDragSelecting src/Dodge/Render/HUD.hs 162;" f
drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f
drawEmptySet src/Dodge/Render/Picture.hs 153;" f drawEmptySet src/Dodge/Render/Picture.hs 153;" f
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
drawEquipment src/Dodge/Creature/Picture.hs 266;" f drawEquipment src/Dodge/Creature/Picture.hs 342;" f
drawExamineInventory src/Dodge/Render/HUD.hs 199;" f drawExamineInventory src/Dodge/Render/HUD.hs 199;" f
drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f
drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f
@@ -3389,7 +3389,7 @@ drawForceField src/Dodge/Wall/Draw.hs 15;" f
drawGapPlus src/Dodge/Render/Picture.hs 284;" f drawGapPlus src/Dodge/Render/Picture.hs 284;" f
drawGib src/Dodge/Prop/Draw.hs 31;" f drawGib src/Dodge/Prop/Draw.hs 31;" f
drawHUD src/Dodge/Render/HUD.hs 53;" f drawHUD src/Dodge/Render/HUD.hs 53;" f
drawHoverCrit src/Dodge/Creature/Picture.hs 59;" f drawHoverCrit src/Dodge/Creature/Picture.hs 61;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 33;" f drawInputMenu src/Dodge/Render/MenuScreen.hs 33;" f
drawInspectWall src/Dodge/Debug/Picture.hs 256;" f drawInspectWall src/Dodge/Debug/Picture.hs 256;" f
drawInspectWalls src/Dodge/Debug/Picture.hs 244;" f drawInspectWalls src/Dodge/Debug/Picture.hs 244;" f
@@ -3469,7 +3469,7 @@ drawZone src/Dodge/Debug/Picture.hs 152;" f
drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f drawZoneCirc src/Dodge/Debug/Picture.hs 293;" f
drawZoneCol src/Dodge/Debug/Picture.hs 149;" f drawZoneCol src/Dodge/Debug/Picture.hs 149;" f
drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 286;" f
dropAll src/Dodge/Creature/Update.hs 171;" f dropAll src/Dodge/Creature/Update.hs 172;" f
dropInventoryPath src/Dodge/HeldUse.hs 1371;" f dropInventoryPath src/Dodge/HeldUse.hs 1371;" f
dropItem src/Dodge/Creature/Action.hs 169;" f dropItem src/Dodge/Creature/Action.hs 169;" f
dropper src/Dodge/Item/Scope.hs 82;" f dropper src/Dodge/Item/Scope.hs 82;" f
@@ -3559,7 +3559,7 @@ faceEdges src/Polyhedra.hs 62;" f
facesToVF src/Polyhedra/Geodesic.hs 70;" f facesToVF src/Polyhedra/Geodesic.hs 70;" f
farWallDistDirection src/Dodge/Update/Camera.hs 245;" f farWallDistDirection src/Dodge/Update/Camera.hs 245;" f
fdiv src/ShortShow.hs 41;" f fdiv src/ShortShow.hs 41;" f
feet src/Dodge/Creature/Picture.hs 158;" f feet src/Dodge/Creature/Picture.hs 160;" f
filter3 src/FoldableHelp.hs 76;" f filter3 src/FoldableHelp.hs 76;" f
filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f filterSectionsPair src/Dodge/DisplayInventory.hs 160;" f
findBlips src/Dodge/RadarSweep.hs 63;" f findBlips src/Dodge/RadarSweep.hs 63;" f
@@ -3810,7 +3810,7 @@ hotkeyToChar src/Dodge/Inventory/SelectionList.hs 185;" f
hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f
hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 182;" f
hoverCrit src/Dodge/Creature/ChaseCrit.hs 51;" f hoverCrit src/Dodge/Creature/ChaseCrit.hs 51;" f
hoverCritHoverSound src/Dodge/Creature/Update.hs 68;" f hoverCritHoverSound src/Dodge/Creature/Update.hs 69;" f
hoverCritInternal src/Dodge/Humanoid.hs 46;" f hoverCritInternal src/Dodge/Humanoid.hs 46;" f
hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 229;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 229;" f
hoverDeathSounds src/Dodge/Creature/Vocalization.hs 54;" f hoverDeathSounds src/Dodge/Creature/Vocalization.hs 54;" f
@@ -4140,7 +4140,7 @@ makeButton src/Dodge/LevelGen/Switch.hs 16;" f
makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f makeCloudAt src/Dodge/WorldEvent/Cloud.hs 7;" f
makeColorTermLine src/Dodge/Terminal.hs 124;" f makeColorTermLine src/Dodge/Terminal.hs 124;" f
makeColorTermPara src/Dodge/Terminal.hs 121;" f makeColorTermPara src/Dodge/Terminal.hs 121;" f
makeCorpse src/Dodge/Corpse/Make.hs 16;" f makeCorpse src/Dodge/Creature/Picture.hs 226;" f
makeCrGibs src/Dodge/Prop/Gib.hs 19;" f makeCrGibs src/Dodge/Prop/Gib.hs 19;" f
makeDebris src/Dodge/Block/Debris.hs 75;" f makeDebris src/Dodge/Block/Debris.hs 75;" f
makeDebrisDirected src/Dodge/Block/Debris.hs 101;" f makeDebrisDirected src/Dodge/Block/Debris.hs 101;" f
@@ -4386,7 +4386,7 @@ oldMachineBootS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 641;" f
onEquipWristShield src/Dodge/Euse.hs 89;" f onEquipWristShield src/Dodge/Euse.hs 89;" f
onRemoveWristShield src/Dodge/Euse.hs 79;" f onRemoveWristShield src/Dodge/Euse.hs 79;" f
oneH src/Dodge/Creature/Test.hs 95;" f oneH src/Dodge/Creature/Test.hs 95;" f
oneSmooth src/Dodge/Creature/Picture.hs 155;" f oneSmooth src/Dodge/Creature/Picture.hs 157;" f
openConsole src/Dodge/Update.hs 140;" f openConsole src/Dodge/Update.hs 140;" f
optionMenu src/Dodge/Menu.hs 110;" f optionMenu src/Dodge/Menu.hs 110;" f
optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 62;" f
@@ -4506,7 +4506,7 @@ pointerToItemID src/Dodge/Item/Location.hs 42;" f
pointerYourRootItem src/Dodge/Item/Location.hs 33;" f pointerYourRootItem src/Dodge/Item/Location.hs 33;" f
pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f pointerYourSelectedItem src/Dodge/Item/Location.hs 26;" f
pointsToPoly src/Geometry/ConvexPoly.hs 37;" f pointsToPoly src/Geometry/ConvexPoly.hs 37;" f
poisonSPic src/Dodge/Creature/Update.hs 167;" f poisonSPic src/Dodge/Creature/Update.hs 168;" f
poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f poisonSprayer src/Dodge/Item/Held/SprayGuns.hs 17;" f
poke34 src/Shader/Poke.hs 509;" f poke34 src/Shader/Poke.hs 509;" f
pokeArrayOff src/Shader/Poke.hs 521;" f pokeArrayOff src/Shader/Poke.hs 521;" f
@@ -4870,10 +4870,10 @@ scale3 src/Picture/Base.hs 137;" f
scaleMat src/MatrixHelper.hs 71;" f scaleMat src/MatrixHelper.hs 71;" f
scaleMatrix src/MatrixHelper.hs 68;" f scaleMatrix src/MatrixHelper.hs 68;" f
scaleSH src/Shape.hs 266;" f scaleSH src/Shape.hs 266;" f
scalp src/Dodge/Creature/Picture.hs 242;" f scalp src/Dodge/Creature/Picture.hs 318;" f
scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 82;" f
scodeToChar src/Dodge/ScodeToChar.hs 6;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f
scorchSPic src/Dodge/Creature/Update.hs 164;" f scorchSPic src/Dodge/Creature/Update.hs 165;" f
screenBox src/Dodge/Base/Window.hs 54;" f screenBox src/Dodge/Base/Window.hs 54;" f
screenPolygon src/Dodge/Base/Window.hs 18;" f screenPolygon src/Dodge/Base/Window.hs 18;" f
screenPolygonBord src/Dodge/Base/Window.hs 28;" f screenPolygonBord src/Dodge/Base/Window.hs 28;" f
@@ -5123,7 +5123,8 @@ spawnAt src/Dodge/SpawnAt.hs 14;" f
spawnerCrit src/Dodge/Creature.hs 54;" f spawnerCrit src/Dodge/Creature.hs 54;" f
spawnerRoom src/Dodge/Room/Room.hs 390;" f spawnerRoom src/Dodge/Room/Room.hs 390;" f
speedLegs src/Dodge/Item/Equipment.hs 74;" f speedLegs src/Dodge/Item/Equipment.hs 74;" f
spiderJoint src/Dodge/Creature/Picture.hs 206;" f spiderJoint src/Dodge/Creature/Picture.hs 208;" f
spiderJoint' src/Dodge/Creature/Picture.hs 217;" f
splashMenu src/Dodge/Menu.hs 31;" f splashMenu src/Dodge/Menu.hs 31;" f
splashMenuOptions src/Dodge/Menu.hs 36;" f splashMenuOptions src/Dodge/Menu.hs 36;" f
splashScreen src/Dodge/Initialisation.hs 10;" f splashScreen src/Dodge/Initialisation.hs 10;" f
@@ -5167,7 +5168,7 @@ stackText src/Picture/Base.hs 180;" f
stackedInventory src/Dodge/Creature.hs 326;" f stackedInventory src/Dodge/Creature.hs 326;" f
startCr src/Dodge/Creature.hs 90;" f startCr src/Dodge/Creature.hs 90;" f
startCrafts src/Dodge/Room/Start.hs 94;" f startCrafts src/Dodge/Room/Start.hs 94;" f
startDeathTimer src/Dodge/Creature/Update.hs 122;" f startDeathTimer src/Dodge/Creature/Update.hs 123;" f
startDrag src/Dodge/Update/Input/InGame.hs 319;" f startDrag src/Dodge/Update/Input/InGame.hs 319;" f
startInvList src/Dodge/Creature.hs 105;" f startInvList src/Dodge/Creature.hs 105;" f
startInventory src/Dodge/Creature.hs 108;" f startInventory src/Dodge/Creature.hs 108;" f
@@ -5318,7 +5319,7 @@ toBinary src/Dodge/Inventory/SelectionList.hs 138;" f
toBothLnk src/Dodge/RoomLink.hs 136;" f toBothLnk src/Dodge/RoomLink.hs 136;" f
toClosestMultiple src/HelpNum.hs 3;" f toClosestMultiple src/HelpNum.hs 3;" f
toColor8 src/Color.hs 158;" f toColor8 src/Color.hs 158;" f
toDeathCarriage src/Dodge/Creature/Update.hs 128;" f toDeathCarriage src/Dodge/Creature/Update.hs 129;" f
toFloatVAs src/Shader/Compile.hs 66;" f toFloatVAs src/Shader/Compile.hs 66;" f
toLabel src/Dodge/Cleat.hs 16;" f toLabel src/Dodge/Cleat.hs 16;" f
toMultiset src/Multiset.hs 64;" f toMultiset src/Multiset.hs 64;" f
@@ -5346,7 +5347,7 @@ topTestPart src/Dodge/TestString.hs 96;" f
torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f
torqueAmount src/Dodge/HeldUse.hs 606;" f torqueAmount src/Dodge/HeldUse.hs 606;" f
torqueCr src/Dodge/WorldEffect.hs 85;" f torqueCr src/Dodge/WorldEffect.hs 85;" f
torso src/Dodge/Creature/Picture.hs 247;" f torso src/Dodge/Creature/Picture.hs 323;" f
tractCr src/Dodge/TractorBeam/Update.hs 28;" f tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
tractorBeamAt src/Dodge/HeldUse.hs 850;" f tractorBeamAt src/Dodge/HeldUse.hs 850;" f
@@ -5471,7 +5472,7 @@ updateCloud src/Dodge/Update.hs 904;" f
updateClouds src/Dodge/Update.hs 773;" f updateClouds src/Dodge/Update.hs 773;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 40;" f
updateCombineSections src/Dodge/DisplayInventory.hs 47;" f updateCombineSections src/Dodge/DisplayInventory.hs 47;" f
updateCreature src/Dodge/Creature/Update.hs 36;" f updateCreature src/Dodge/Creature/Update.hs 37;" f
updateCreatureGroups src/Dodge/Update.hs 634;" f updateCreatureGroups src/Dodge/Update.hs 634;" f
updateCreatureSoundPositions src/Dodge/Update.hs 613;" f updateCreatureSoundPositions src/Dodge/Update.hs 613;" f
updateCreatureStride src/Dodge/Update.hs 376;" f updateCreatureStride src/Dodge/Update.hs 376;" f
@@ -5520,7 +5521,7 @@ updateLaser src/Dodge/Laser/Update.hs 12;" f
updateLasers src/Dodge/Update.hs 513;" f updateLasers src/Dodge/Update.hs 513;" f
updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 177;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLivingCreature src/Dodge/Creature/Update.hs 45;" f updateLivingCreature src/Dodge/Creature/Update.hs 46;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 451;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 451;" f
updateMachine src/Dodge/Machine/Update.hs 24;" f updateMachine src/Dodge/Machine/Update.hs 24;" f
updateMagnets src/Dodge/Update.hs 405;" f updateMagnets src/Dodge/Update.hs 405;" f
@@ -5537,7 +5538,7 @@ updatePlasmaBall src/Dodge/Update.hs 527;" f
updatePlasmaBalls src/Dodge/Update.hs 669;" f updatePlasmaBalls src/Dodge/Update.hs 669;" f
updatePreload src/Preload/Update.hs 21;" f updatePreload src/Preload/Update.hs 21;" f
updateProjectile src/Dodge/Projectile/Update.hs 26;" f updateProjectile src/Dodge/Projectile/Update.hs 26;" f
updatePulse src/Dodge/Creature/Update.hs 179;" f updatePulse src/Dodge/Creature/Update.hs 180;" f
updatePulseBall src/Dodge/Update.hs 547;" f updatePulseBall src/Dodge/Update.hs 547;" f
updatePulseLaser src/Dodge/Update.hs 716;" f updatePulseLaser src/Dodge/Update.hs 716;" f
updatePulseLasers src/Dodge/Update.hs 522;" f updatePulseLasers src/Dodge/Update.hs 522;" f
@@ -5579,7 +5580,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f
updateWheelEvents src/Dodge/Update.hs 492;" f updateWheelEvents src/Dodge/Update.hs 492;" f
updateWorldEventFlag src/Dodge/Update.hs 129;" f updateWorldEventFlag src/Dodge/Update.hs 129;" f
updateWorldEventFlags src/Dodge/Update.hs 117;" f updateWorldEventFlags src/Dodge/Update.hs 117;" f
upperBody src/Dodge/Creature/Picture.hs 262;" f upperBody src/Dodge/Creature/Picture.hs 338;" f
upperBox src/Shape.hs 153;" f upperBox src/Shape.hs 153;" f
upperBoxHalf src/Shape.hs 219;" f upperBoxHalf src/Shape.hs 219;" f
upperBoxMT src/Shape.hs 144;" f upperBoxMT src/Shape.hs 144;" f