Corpses fall down cliff edges

This commit is contained in:
2026-02-10 23:19:44 +00:00
parent 1d85ee6330
commit ed86d310d5
2 changed files with 104 additions and 68 deletions
+64 -28
View File
@@ -1,15 +1,9 @@
module Dodge.Creature.Update (updateCreature) where module Dodge.Creature.Update (updateCreature) where
import Dodge.Update.Camera.Rotate
import SDL (MouseButton (..))
import Dodge.Creature.Vocalization
import RandomHelp
import Data.Maybe
import Linear
import NewInt
import Color import Color
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import qualified Data.List as List import qualified Data.List as List
import Data.Maybe
import Dodge.Barreloid import Dodge.Barreloid
-- import Dodge.Base.NewID -- import Dodge.Base.NewID
import Dodge.Corpse.Make import Dodge.Corpse.Make
@@ -17,6 +11,7 @@ import Dodge.Creature.Action
import Dodge.Creature.Radius import Dodge.Creature.Radius
import Dodge.Creature.State import Dodge.Creature.State
import Dodge.Creature.State.WalkCycle import Dodge.Creature.State.WalkCycle
import Dodge.Creature.Vocalization
import Dodge.Creature.YourControl import Dodge.Creature.YourControl
import Dodge.Damage import Dodge.Damage
import Dodge.Data.Damage.Type import Dodge.Data.Damage.Type
@@ -26,9 +21,14 @@ import Dodge.Inventory
import Dodge.Lampoid import Dodge.Lampoid
import Dodge.Prop.Gib import Dodge.Prop.Gib
import Dodge.SoundLogic import Dodge.SoundLogic
import Dodge.Update.Camera.Rotate
import FoldableHelp import FoldableHelp
import Geometry import Geometry
import LensHelp import LensHelp
import Linear
import NewInt
import RandomHelp
import SDL (MouseButton (..))
import Shape import Shape
import ShapePicture.Data import ShapePicture.Data
@@ -36,24 +36,27 @@ import ShapePicture.Data
-- allow for knockbacks etc to be determined as well as intended movements -- allow for knockbacks etc to be determined as well as intended movements
updateCreature :: Creature -> World -> World updateCreature :: Creature -> World -> World
updateCreature cr updateCreature cr
| null (cr ^? crHP . _HP) = id
| cr ^. crPos . _z < negate 100 = (tocr . crHP .~ CrIsPitted) . destroyAllInvItems cr | cr ^. crPos . _z < negate 100 = (tocr . crHP .~ CrIsPitted) . destroyAllInvItems cr
| CrIsCorpse _ <- cr ^. crHP = chasmTestCorpse cr
| null (cr ^? crHP . _HP) = id
| cr ^. crPos . _z < 0 = (tocr . crZVel -~ 0.5) . (tocr . crPos . _z +~ _crZVel cr) | cr ^. crPos . _z < 0 = (tocr . crZVel -~ 0.5) . (tocr . crPos . _z +~ _crZVel cr)
| otherwise = updateCreature' cr | otherwise = updateLivingCreature cr
where where
tocr = cWorld . lWorld . creatures . ix (_crID cr) tocr = cWorld . lWorld . creatures . ix (_crID cr)
updateCreature' :: Creature -> World -> World updateLivingCreature :: Creature -> World -> World
updateCreature' cr = updateLivingCreature cr =
chasmTest cr . case _crType cr of chasmTestLiving cr . case _crType cr of
Avatar{} -> Avatar{} ->
(cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse) (cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse)
. crUpdate cid . yourControl cr . crUpdate cid
. yourControl cr
LampCrit{} -> updateLampoid cr LampCrit{} -> updateLampoid cr
BarrelCrit bt -> updateBarreloid bt cr BarrelCrit bt -> updateBarreloid bt cr
AvatarDead -> id AvatarDead -> id
ChaseCrit {} -> \w -> crUpdate cid . performActions cid ChaseCrit{} -> \w ->
$ over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w crUpdate cid . performActions cid $
over (cWorld . lWorld . creatures . ix cid) (chaseCritInternal w) w
_ -> crUpdate cid _ -> crUpdate cid
where where
cid = cr ^. crID cid = cr ^. crID
@@ -78,10 +81,13 @@ checkDeath cid w = maybe id checkDeath' (w ^? cWorld . lWorld . creatures . ix c
checkDeath' :: Creature -> World -> World checkDeath' :: Creature -> World -> World
checkDeath' cr w = case cr ^. crHP of checkDeath' cr w = case cr ^. crHP of
HP x | x > 0 -> w & tocr . crDamage .~ [] HP x | x > 0 -> w & tocr . crDamage .~ []
HP x | x > -200 && _crDeathTimer cr < 5 -> w HP x
| x > -200 && _crDeathTimer cr < 5 ->
w
& tocr . crDamage .~ [] & tocr . crDamage .~ []
& tocr . crDeathTimer +~ 1 & tocr . crDeathTimer +~ 1
HP _ -> w HP _ ->
w
& dropAll cr -- the order of these is possibly important & dropAll cr -- the order of these is possibly important
& stopSoundFrom (CrWeaponSound (_crID cr) 0) & stopSoundFrom (CrWeaponSound (_crID cr) 0)
& corpseOrGib cr & corpseOrGib cr
@@ -92,22 +98,30 @@ checkDeath' cr w = case cr ^. crHP of
-- could look at the amount of damage here (given by maxDamage) too -- could look at the amount of damage here (given by maxDamage) too
corpseOrGib :: Creature -> World -> World corpseOrGib :: Creature -> World -> World
corpseOrGib cr = case cr ^? crDamage . to maxDamageType . _Just . _1 of corpseOrGib cr = case cr ^? crDamage . to maxDamageType . _Just . _1 of
Just CookingDamage -> sethp (CrIsCorpse $ scorchSPic thecorpse) Just CookingDamage ->
sethp (CrIsCorpse $ scorchSPic thecorpse)
. dodeathsound CookDeath . dodeathsound CookDeath
Just PoisonDamage -> sethp (CrIsCorpse $ poisonSPic thecorpse) Just PoisonDamage ->
sethp (CrIsCorpse $ poisonSPic thecorpse)
. dodeathsound PoisonDeath . dodeathsound PoisonDeath
Just PhysicalDamage | _crPain cr > 200 Just PhysicalDamage
-> addCrGibs cr . sethp CrIsGibs | _crPain cr > 200 ->
addCrGibs cr
. sethp CrIsGibs
. dodeathsound GibsDeath . dodeathsound GibsDeath
_ -> sethp (CrIsCorpse thecorpse) _ ->
sethp (CrIsCorpse thecorpse)
. dodeathsound PlainDeath . dodeathsound PlainDeath
where where
dodeathsound dt = f dt . stopSoundFrom (CrMouth cid) dodeathsound dt = f dt . stopSoundFrom (CrMouth cid)
f dt w = fromMaybe w $ do f dt w = fromMaybe w $ do
let (msid, g) = runState (maybeTakeOne (crDeathSounds cr dt)) (_randGen w) let (msid, g) = runState (maybeTakeOne (crDeathSounds cr dt)) (_randGen w)
sid <- msid sid <- msid
return $ w & soundStart (CrMouth cid) (cr ^. crPos . _xy) sid Nothing return $
& randGen .~ g w
& soundStart (CrMouth cid) (cr ^. crPos . _xy) sid Nothing
& randGen
.~ g
cid = cr ^. crID cid = cr ^. crID
sethp x = cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ x sethp x = cWorld . lWorld . creatures . ix (_crID cr) . crHP .~ x
thecorpse = makeCorpse cr thecorpse = makeCorpse cr
@@ -122,12 +136,15 @@ poisonSPic = _1 %~ overColSH (mixColors 0.5 0.5 green . normalizeColor)
dropAll :: Creature -> World -> World dropAll :: Creature -> World -> World
dropAll cr w = foldl' (flip (dropItem cr)) w . reverse . IM.keys . _unNIntMap $ _crInv cr dropAll cr w = foldl' (flip (dropItem cr)) w . reverse . IM.keys . _unNIntMap $ _crInv cr
chasmTest :: Creature -> World -> World chasmTestLiving :: Creature -> World -> World
chasmTest cr w chasmTestLiving cr w
| _crZVel cr < 0 = w & tocr . crZVel -~ 0.5 | _crZVel cr < 0 =
w
& tocr . crZVel -~ 0.5
& tocr . crPos . _z +~ _crZVel cr & tocr . crPos . _z +~ _crZVel cr
-- | Just (x, y) <- List.find g (foldMap loopPairs $ w ^. cWorld . chasms') = w -- | Just (x, y) <- List.find g (foldMap loopPairs $ w ^. cWorld . chasms') = w
| Just (x, y) <- List.find g (w ^. cWorld . cliffs) = w | Just (x, y) <- List.find g (w ^. cWorld . cliffs) =
w
& soundContinue (CrChasm (_crID cr)) (cr ^. crPos . _xy) debrisS (Just 100) & soundContinue (CrChasm (_crID cr)) (cr ^. crPos . _xy) debrisS (Just 100)
& tocr . crPos . _xy -~ normalizeV (vNormal (x - y)) & tocr . crPos . _xy -~ normalizeV (vNormal (x - y))
& chasmRotate cr (x - y) & chasmRotate cr (x - y)
@@ -138,6 +155,25 @@ chasmTest cr w
g = uncurry $ circOnSeg (cr ^. crPos . _xy) (crRad $ cr ^. crType) g = uncurry $ circOnSeg (cr ^. crPos . _xy) (crRad $ cr ^. crType)
f = circInPolygon (cr ^. crPos . _xy) (crRad $ cr ^. crType) f = circInPolygon (cr ^. crPos . _xy) (crRad $ cr ^. crType)
chasmTestCorpse :: Creature -> World -> World
chasmTestCorpse cr w
| _crZVel cr < 0 =
w
& tocr . crZVel -~ 0.5
& tocr . crPos . _z +~ _crZVel cr
-- | Just (x, y) <- List.find g (foldMap loopPairs $ w ^. cWorld . chasms') = w
| Just (x, y) <- List.find g (w ^. cWorld . cliffs) =
w
& soundContinue (CrChasm (_crID cr)) (cr ^. crPos . _xy) debrisS (Just 100)
& tocr . crPos . _xy +~ normalizeV (vNormal (x - y))
& chasmRotate cr (x - y)
| any f (w ^. cWorld . chasms) = w & tocr . crZVel -~ 0.5
| otherwise = w
where
tocr = cWorld . lWorld . creatures . ix (_crID cr)
g = uncurry $ circOnSeg (cr ^. crPos . _xy) (crRad $ cr ^. crType)
f = circInPolygon (cr ^. crPos . _xy) (crRad $ cr ^. crType)
chasmRotate :: Creature -> Point2 -> World -> World chasmRotate :: Creature -> Point2 -> World -> World
chasmRotate cr v w chasmRotate cr v w
| t = rotateTo8 (argV v) w | t = rotateTo8 (argV v) w
+31 -31
View File
@@ -2800,15 +2800,15 @@ chaseCritInternal src/Dodge/Humanoid.hs 8;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 121;" f chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 121;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f
chasmRotate src/Dodge/Creature/Update.hs 140;" f chasmRotate src/Dodge/Creature/Update.hs 161;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 294;" f chasmSimpleMaze src/Dodge/Room/Tutorial.hs 294;" f
chasmSpitTerminal src/Dodge/Room/Tutorial.hs 265;" f chasmSpitTerminal src/Dodge/Room/Tutorial.hs 265;" f
chasmTest src/Dodge/Creature/Update.hs 124;" f chasmTest src/Dodge/Creature/Update.hs 142;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f chasmWallToSurface src/Dodge/Base/Collide.hs 118;" 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 74;" f checkDeath src/Dodge/Creature/Update.hs 77;" f
checkDeath' src/Dodge/Creature/Update.hs 77;" f checkDeath' src/Dodge/Creature/Update.hs 80;" f
checkEndGame src/Dodge/Update.hs 807;" f checkEndGame src/Dodge/Update.hs 807;" 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
@@ -2854,7 +2854,7 @@ cleatSide src/Dodge/Cleat.hs 27;" f
click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" f click1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 783;" f
clicker src/Dodge/Item/Scope.hs 88;" f clicker src/Dodge/Item/Scope.hs 88;" f
clipV src/Geometry/Vector.hs 48;" f clipV src/Geometry/Vector.hs 48;" f
clipZoom src/Dodge/Update/Camera.hs 239;" f clipZoom src/Dodge/Update/Camera.hs 240;" f
clockCycle src/Dodge/Clock.hs 7;" f clockCycle src/Dodge/Clock.hs 7;" f
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 205;" f
@@ -2927,7 +2927,7 @@ copierItemUpdate src/Dodge/Creature/State.hs 131;" f
copyItemToFloor src/Dodge/FloorItem.hs 14;" f copyItemToFloor src/Dodge/FloorItem.hs 14;" f
corDoor src/Dodge/Room/Room.hs 398;" f corDoor src/Dodge/Room/Room.hs 398;" f
cornerList src/Preload/Render.hs 236;" f cornerList src/Preload/Render.hs 236;" f
corpseOrGib src/Dodge/Creature/Update.hs 92;" f corpseOrGib src/Dodge/Creature/Update.hs 102;" 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 57;" f corridorN src/Dodge/Room/Corridor.hs 57;" f
@@ -2972,7 +2972,7 @@ crShape src/Dodge/Creature/Shape.hs 8;" f
crSpring src/Dodge/Update.hs 914;" f crSpring src/Dodge/Update.hs 914;" f
crStratConMatches src/Dodge/Creature/Test.hs 80;" f crStratConMatches src/Dodge/Creature/Test.hs 80;" f
crStrength src/Dodge/Creature/Statistics.hs 29;" f crStrength src/Dodge/Creature/Statistics.hs 29;" f
crUpdate src/Dodge/Creature/Update.hs 67;" f crUpdate src/Dodge/Creature/Update.hs 70;" f
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f crUpdateInvidLocations src/Dodge/Inventory/Location.hs 66;" f
crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f crUpdateItemLocations src/Dodge/Inventory/Location.hs 48;" f
crVocalizationSound src/Dodge/Creature/Vocalization.hs 15;" f crVocalizationSound src/Dodge/Creature/Vocalization.hs 15;" f
@@ -3260,7 +3260,7 @@ doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
doThrust src/Dodge/Projectile/Update.hs 132;" f doThrust src/Dodge/Projectile/Update.hs 132;" f
doTimeScroll src/Dodge/Update.hs 212;" f doTimeScroll src/Dodge/Update.hs 212;" f
doTmWdWd src/Dodge/WorldEffect.hs 104;" f doTmWdWd src/Dodge/WorldEffect.hs 104;" f
doWallRotate src/Dodge/Update/Camera.hs 228;" f doWallRotate src/Dodge/Update/Camera.hs 229;" f
doWdBl src/Dodge/WorldBool.hs 10;" f doWdBl src/Dodge/WorldBool.hs 10;" f
doWdCrBl src/Dodge/CreatureEffect.hs 18;" f doWdCrBl src/Dodge/CreatureEffect.hs 18;" f
doWdP2f src/Dodge/WdP2f.hs 10;" f doWdP2f src/Dodge/WdP2f.hs 10;" f
@@ -3403,7 +3403,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 121;" f dropAll src/Dodge/Creature/Update.hs 139;" f
dropInventoryPath src/Dodge/HeldUse.hs 1346;" f dropInventoryPath src/Dodge/HeldUse.hs 1346;" f
dropItem src/Dodge/Creature/Action.hs 155;" f dropItem src/Dodge/Creature/Action.hs 155;" f
dropper src/Dodge/Item/Scope.hs 82;" f dropper src/Dodge/Item/Scope.hs 82;" f
@@ -3491,13 +3491,13 @@ extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f
faceEdges src/Polyhedra.hs 62;" f 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 250;" f farWallDistDirection src/Dodge/Update/Camera.hs 251;" f
fdiv src/ShortShow.hs 41;" f fdiv src/ShortShow.hs 41;" f
feet src/Dodge/Creature/Picture.hs 51;" f feet src/Dodge/Creature/Picture.hs 51;" 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
findBoundDists src/Dodge/Update/Camera.hs 257;" f findBoundDists src/Dodge/Update/Camera.hs 258;" f
findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f findClosePoint src/Dodge/LevelGen/StaticWalls.hs 155;" f
findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f
findIndex src/IntMapHelp.hs 86;" f findIndex src/IntMapHelp.hs 86;" f
@@ -3593,7 +3593,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
getAimZoom src/Dodge/Update/Camera.hs 150;" f getAimZoom src/Dodge/Update/Camera.hs 151;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f getAmmoLinks src/Dodge/Item/Grammar.hs 104;" f
getAttachedSFLink src/Dodge/HeldUse.hs 786;" f getAttachedSFLink src/Dodge/HeldUse.hs 786;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f
@@ -3711,7 +3711,7 @@ healthAnalyserByDoor src/Dodge/Room/LasTurret.hs 90;" f
healthTest src/Dodge/Room/LasTurret.hs 111;" f healthTest src/Dodge/Room/LasTurret.hs 111;" f
heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f heightWallPS src/Dodge/Placement/Instance/Wall.hs 24;" f
heldAimStance src/Dodge/Item/AimStance.hs 24;" f heldAimStance src/Dodge/Item/AimStance.hs 24;" f
heldAimZoom src/Dodge/Update/Camera.hs 156;" f heldAimZoom src/Dodge/Update/Camera.hs 157;" f
heldEffect src/Dodge/HeldUse.hs 62;" f heldEffect src/Dodge/HeldUse.hs 62;" f
heldEffectMuzzles src/Dodge/HeldUse.hs 133;" f heldEffectMuzzles src/Dodge/HeldUse.hs 133;" f
heldHandlePos src/Dodge/Item/HeldOffset.hs 84;" f heldHandlePos src/Dodge/Item/HeldOffset.hs 84;" f
@@ -4234,7 +4234,7 @@ moveToSideNthOutLink src/Dodge/Room/Warning.hs 102;" f
moveWall src/Dodge/Wall/Move.hs 23;" f moveWall src/Dodge/Wall/Move.hs 23;" f
moveWallID src/Dodge/Wall/Move.hs 18;" f moveWallID src/Dodge/Wall/Move.hs 18;" f
moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f
moveZoomCamera src/Dodge/Update/Camera.hs 92;" f moveZoomCamera src/Dodge/Update/Camera.hs 93;" f
mtTopLabels src/Dodge/Tree/Compose.hs 51;" f mtTopLabels src/Dodge/Tree/Compose.hs 51;" f
mtUnderLabels src/Dodge/Tree/Compose.hs 54;" f mtUnderLabels src/Dodge/Tree/Compose.hs 54;" f
muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f
@@ -4424,7 +4424,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 35;" f pointsToPoly src/Geometry/ConvexPoly.hs 35;" f
poisonSPic src/Dodge/Creature/Update.hs 117;" f poisonSPic src/Dodge/Creature/Update.hs 135;" 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
@@ -4739,15 +4739,15 @@ rotate3 src/Geometry/Vector3D.hs 48;" f
rotate3x src/Geometry/Vector3D.hs 60;" f rotate3x src/Geometry/Vector3D.hs 60;" f
rotate3y src/Geometry/Vector3D.hs 66;" f rotate3y src/Geometry/Vector3D.hs 66;" f
rotate3z src/Geometry/Vector3D.hs 54;" f rotate3z src/Geometry/Vector3D.hs 54;" f
rotateCamera src/Dodge/Update/Camera.hs 204;" f rotateCamera src/Dodge/Update/Camera.hs 205;" f
rotateList src/Padding.hs 49;" f rotateList src/Padding.hs 49;" f
rotateSH src/Shape.hs 254;" f rotateSH src/Shape.hs 254;" f
rotateSHq src/Shape.hs 163;" f rotateSHq src/Shape.hs 163;" f
rotateSHx src/Shape.hs 262;" f rotateSHx src/Shape.hs 262;" f
rotateSP src/ShapePicture.hs 57;" f rotateSP src/ShapePicture.hs 57;" f
rotateTo src/Polyhedra/Geodesic.hs 65;" f rotateTo src/Polyhedra/Geodesic.hs 65;" f
rotateTo8 src/Dodge/Update/Camera/Rotate.hs 5;" f rotateTo8 src/Dodge/Update/Camera/Rotate.hs 6;" f
rotateToOverlappingWall src/Dodge/Update/Camera.hs 216;" f rotateToOverlappingWall src/Dodge/Update/Camera.hs 217;" f
rotateToZ src/Quaternion.hs 35;" f rotateToZ src/Quaternion.hs 35;" f
rotateV src/Geometry/Vector.hs 106;" f rotateV src/Geometry/Vector.hs 106;" f
rotateVAround src/Geometry/Vector.hs 113;" f rotateVAround src/Geometry/Vector.hs 113;" f
@@ -4792,7 +4792,7 @@ scaleSH src/Shape.hs 266;" f
scalp src/Dodge/Creature/Picture.hs 93;" f scalp src/Dodge/Creature/Picture.hs 93;" f
scancodeToHotkey src/Dodge/Creature/YourControl.hs 102;" f scancodeToHotkey src/Dodge/Creature/YourControl.hs 102;" f
scodeToChar src/Dodge/ScodeToChar.hs 6;" f scodeToChar src/Dodge/ScodeToChar.hs 6;" f
scorchSPic src/Dodge/Creature/Update.hs 114;" f scorchSPic src/Dodge/Creature/Update.hs 132;" 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
@@ -4871,7 +4871,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 83;" f
setTile src/Dodge/Layout.hs 70;" f setTile src/Dodge/Layout.hs 70;" f
setTiles src/Dodge/Layout.hs 67;" f setTiles src/Dodge/Layout.hs 67;" f
setTreeInts src/Dodge/Room/Tutorial.hs 93;" f setTreeInts src/Dodge/Room/Tutorial.hs 93;" f
setViewDistance src/Dodge/Update/Camera.hs 245;" f setViewDistance src/Dodge/Update/Camera.hs 246;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 448;" f setViewport src/Dodge/Render.hs 448;" f
setVol src/Dodge/Config.hs 47;" f setVol src/Dodge/Config.hs 47;" f
@@ -5260,8 +5260,8 @@ transMat src/MatrixHelper.hs 87;" f
transToHandle src/Dodge/Item/HeldOffset.hs 27;" f transToHandle src/Dodge/Item/HeldOffset.hs 27;" f
translate src/Picture/Base.hs 108;" f translate src/Picture/Base.hs 108;" f
translate3 src/Picture/Base.hs 112;" f translate3 src/Picture/Base.hs 112;" f
translateFloatingCamera src/Dodge/Update/Camera.hs 48;" f translateFloatingCamera src/Dodge/Update/Camera.hs 49;" f
translateFloatingCameraKeys src/Dodge/Update/Camera.hs 66;" f translateFloatingCameraKeys src/Dodge/Update/Camera.hs 67;" f
translateH src/Picture/Base.hs 104;" f translateH src/Picture/Base.hs 104;" f
translatePointToLeftHand src/Dodge/Creature/HandPos.hs 76;" f translatePointToLeftHand src/Dodge/Creature/HandPos.hs 76;" f
translatePointToRightHand src/Dodge/Creature/HandPos.hs 37;" f translatePointToRightHand src/Dodge/Creature/HandPos.hs 37;" f
@@ -5360,18 +5360,18 @@ updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 484;" f
updateBarrel src/Dodge/Barreloid.hs 44;" f updateBarrel src/Dodge/Barreloid.hs 44;" f
updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f
updateBounds src/Dodge/Update/Camera.hs 267;" f updateBounds src/Dodge/Update/Camera.hs 268;" f
updateBulVel src/Dodge/Bullet.hs 57;" f updateBulVel src/Dodge/Bullet.hs 57;" f
updateBullet src/Dodge/Bullet.hs 22;" f updateBullet src/Dodge/Bullet.hs 22;" f
updateBullets src/Dodge/Update.hs 601;" f updateBullets src/Dodge/Update.hs 601;" f
updateCamera src/Dodge/Update/Camera.hs 31;" f updateCamera src/Dodge/Update/Camera.hs 32;" f
updateCloseObjects src/Dodge/Inventory.hs 115;" f updateCloseObjects src/Dodge/Inventory.hs 115;" f
updateCloud src/Dodge/Update.hs 836;" f updateCloud src/Dodge/Update.hs 836;" f
updateClouds src/Dodge/Update.hs 705;" f updateClouds src/Dodge/Update.hs 705;" 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
updateCreature' src/Dodge/Creature/Update.hs 45;" f updateCreature' src/Dodge/Creature/Update.hs 46;" f
updateCreatureGroups src/Dodge/Update.hs 573;" f updateCreatureGroups src/Dodge/Update.hs 573;" f
updateCreatureSoundPositions src/Dodge/Update.hs 552;" f updateCreatureSoundPositions src/Dodge/Update.hs 552;" f
updateCreatureStride src/Dodge/Update.hs 347;" f updateCreatureStride src/Dodge/Update.hs 347;" f
@@ -5397,7 +5397,7 @@ updateEnterRegex src/Dodge/Update/Input/InGame.hs 511;" f
updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f
updateFlame src/Dodge/Flame.hs 19;" f updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 693;" f updateFlames src/Dodge/Update.hs 693;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f updateFloatingCamera src/Dodge/Update/Camera.hs 37;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f
updateGas src/Dodge/Update.hs 858;" f updateGas src/Dodge/Update.hs 858;" f
@@ -5405,7 +5405,7 @@ updateGasses src/Dodge/Update.hs 708;" f
updateGusts src/Dodge/Update.hs 820;" f updateGusts src/Dodge/Update.hs 820;" f
updateIMl src/Dodge/Update.hs 567;" f updateIMl src/Dodge/Update.hs 567;" f
updateIMl' src/Dodge/Update.hs 570;" f updateIMl' src/Dodge/Update.hs 570;" f
updateInGameCamera src/Dodge/Update/Camera.hs 84;" f updateInGameCamera src/Dodge/Update/Camera.hs 85;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 434;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 434;" f
updateInt2Map src/Dodge/Zoning/Base.hs 94;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 86;" f
@@ -5434,7 +5434,7 @@ updateObjMapMaybe src/Dodge/Update.hs 578;" f
updatePastWorlds src/Dodge/Update.hs 459;" f updatePastWorlds src/Dodge/Update.hs 459;" 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 147;" f updatePulse src/Dodge/Creature/Update.hs 168;" f
updatePulseBall src/Dodge/Update.hs 484;" f updatePulseBall src/Dodge/Update.hs 484;" f
updatePulseLaser src/Dodge/Update.hs 648;" f updatePulseLaser src/Dodge/Update.hs 648;" f
updatePulseLasers src/Dodge/Update.hs 479;" f updatePulseLasers src/Dodge/Update.hs 479;" f
@@ -5534,7 +5534,7 @@ verticalWire src/Dodge/Wire.hs 23;" f
vgunMuzzles src/Dodge/HeldUse.hs 344;" f vgunMuzzles src/Dodge/HeldUse.hs 344;" f
viewBoundaries src/Dodge/Debug/Picture.hs 332;" f viewBoundaries src/Dodge/Debug/Picture.hs 332;" f
viewClipBounds src/Dodge/Debug/Picture.hs 341;" f viewClipBounds src/Dodge/Debug/Picture.hs 341;" f
viewDistanceFromItems src/Dodge/Update/Camera.hs 201;" f viewDistanceFromItems src/Dodge/Update/Camera.hs 202;" f
viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f viewTarget src/Dodge/Creature/ReaderUpdate.hs 155;" f
violet src/Color.hs 48;" f violet src/Color.hs 48;" f
visibleWalls src/Dodge/Base/Collide.hs 216;" f visibleWalls src/Dodge/Base/Collide.hs 216;" f
@@ -5674,7 +5674,7 @@ zonePn src/Dodge/Zoning/Pathing.hs 32;" f
zoneWall src/Dodge/Zoning/Wall.hs 65;" f zoneWall src/Dodge/Zoning/Wall.hs 65;" f
zonesAroundPoint src/Dodge/Zoning/Base.hs 98;" f zonesAroundPoint src/Dodge/Zoning/Base.hs 98;" f
zonesExtract src/Dodge/Zoning/Base.hs 62;" f zonesExtract src/Dodge/Zoning/Base.hs 62;" f
zoomFloatingCamera src/Dodge/Update/Camera.hs 76;" f zoomFloatingCamera src/Dodge/Update/Camera.hs 77;" f
zoomInLongGun src/Dodge/Update/Scroll.hs 101;" f zoomInLongGun src/Dodge/Update/Scroll.hs 101;" f
zoomOutLongGun src/Dodge/Update/Scroll.hs 109;" f zoomOutLongGun src/Dodge/Update/Scroll.hs 109;" f
zoomScope src/Dodge/Item/Scope.hs 32;" f zoomScope src/Dodge/Item/Scope.hs 32;" f