Work on what happens when creatures fall down chasms

This commit is contained in:
2025-08-05 21:39:44 +01:00
parent df443744db
commit f69956750a
9 changed files with 112 additions and 109 deletions
+1 -3
View File
@@ -1,7 +1,5 @@
--{-# LANGUAGE TupleSections #-} --{-# LANGUAGE TupleSections #-}
module Dodge.Combine ( module Dodge.Combine (combineList) where
combineList,
) where
import Dodge.Data.CombAmount import Dodge.Data.CombAmount
import Dodge.Item.InvSize import Dodge.Item.InvSize
+2 -4
View File
@@ -119,11 +119,9 @@ scorchSPic = _1 %~ overColSH (mixColors 0.9 0.1 black . normalizeColor)
poisonSPic :: SPic -> SPic poisonSPic :: SPic -> SPic
poisonSPic = _1 %~ overColSH (mixColors 0.5 0.5 green . normalizeColor) poisonSPic = _1 %~ overColSH (mixColors 0.5 0.5 green . normalizeColor)
{- | Drop items according to the creature state. -- reverse keys, otherwise two or more inv items will cause errors
TODO make sure this doesn't mess up any ItemPosition
-}
dropAll :: Creature -> World -> World dropAll :: Creature -> World -> World
dropAll cr w = foldl' (flip (dropItem cr)) w $ IM.keys $ _crInv cr dropAll cr w = foldl' (flip (dropItem cr)) w . reverse . IM.keys $ _crInv cr
doDamage :: Creature -> World -> World doDamage :: Creature -> World -> World
doDamage cr = applyPastDamages cr . applyCreatureDamage (cr ^. crDamage) cr doDamage cr = applyPastDamages cr . applyCreatureDamage (cr ^. crDamage) cr
+12 -1
View File
@@ -14,8 +14,19 @@ import Dodge.Humanoid
import Dodge.Lampoid import Dodge.Lampoid
import qualified Data.List as List import qualified Data.List as List
-- Should separate out creature movement from other parts here
updateCreature :: Creature -> World -> World updateCreature :: Creature -> World -> World
updateCreature cr = chasmTest cr . case _crType cr of updateCreature cr
| _crZ cr < negate 100 = id -- can remove creature and all items
| _crZ cr < 0 = (tocr . crZVel -~ 0.5)
. (tocr . crZ +~ _crZVel cr)
| otherwise = updateCreature' cr
where
tocr = cWorld . lWorld . creatures . ix (_crID cr)
updateCreature' :: Creature -> World -> World
updateCreature' cr = chasmTest cr . case _crType cr of
Avatar{} -> (cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse) Avatar{} -> (cWorld . lWorld . creatures . ix 0 . crType . avatarPulse %~ updatePulse)
. crUpdate yourControl cr . crUpdate yourControl cr
LampCrit{} -> updateLampoid cr LampCrit{} -> updateLampoid cr
+4 -5
View File
@@ -6,22 +6,21 @@ module Dodge.EnergyBall (
makeMovingEB, makeMovingEB,
) where ) where
import Dodge.Damage
import Data.Maybe import Data.Maybe
import Dodge.Base.Collide import Dodge.Base.Collide
import Dodge.Damage
import Dodge.Data.World import Dodge.Data.World
import Dodge.SoundLogic import Dodge.SoundLogic
import Dodge.Spark import Dodge.Spark
import Geometry import Geometry
import LensHelp import LensHelp
import Linear.V3
import Picture import Picture
import RandomHelp import RandomHelp
import Linear.V3
makeFlamelet :: Point3 -> Point3 -> Float -> Int -> World -> World makeFlamelet :: Point3 -> Point3 -> Float -> Int -> World -> World
makeFlamelet p v s t w = makeFlamelet p v s t =
w cWorld . lWorld . energyBalls
& cWorld . lWorld . energyBalls
.:~ EnergyBall .:~ EnergyBall
{ _ebVel = v { _ebVel = v
, _ebPos = p , _ebPos = p
+2 -8
View File
@@ -2,16 +2,10 @@ module Dodge.Event.Test (
testEvent, testEvent,
) where ) where
import Dodge.SoundLogic.ExternallyGeneratedSounds --import Dodge.Creature.State
import Dodge.Data.World import Dodge.Data.World
import Control.Lens --import Control.Lens
import Geometry
testEvent :: World -> World testEvent :: World -> World
testEvent w = w testEvent w = w
& cWorld . lWorld . worldEvents .~ SoundStart BackgroundSound (V2 0 0) foamSprayFadeOutS Nothing :
--[MakeStartCloudAt (V3 (cx + x) (cy + y) 5) | x <- [-5, -4 .. 5], y <- [-5, -4 .. 5]]
[MakeStartCloudAt (V3 (cx + x) (cy + y) 200) | x <- [0], y <- [0]]
where
V2 cx cy = w ^?! cWorld . lWorld . creatures . ix 0 . crPos
+13 -8
View File
@@ -13,6 +13,7 @@ module Dodge.Inventory (
swapInvItems, swapInvItems,
scrollAugNextInSection, scrollAugNextInSection,
swapItemWith, swapItemWith,
destroyItem,
) where ) where
import Dodge.Equipment import Dodge.Equipment
@@ -60,14 +61,18 @@ destroyInvItem cid invid w =
(cWorld . lWorld . imHotkeys . unNIntMap . at itid .~ Nothing) (cWorld . lWorld . imHotkeys . unNIntMap . at itid .~ Nothing)
. (cWorld . lWorld . hotkeys . at hk .~ Nothing) . (cWorld . lWorld . hotkeys . at hk .~ Nothing)
-- | after this the item at the inventory position will no longer exist destroyItem :: Int -> World -> World
rmInvItem :: destroyItem itid w = case w ^? cWorld . lWorld . itemLocations . ix itid of
-- | Creature id Nothing -> error $ "Tried to destroy item that does not exist; item id: "++ show itid
Int -> Just (InInv {_ilCrID = cid, _ilInvID = invid}) -> destroyInvItem cid invid w
-- | Inventory position Just (OnTurret{}) -> error "need to write code for destroying items on turrets"
Int -> Just (OnFloor (NInt i)) -> w & cWorld . lWorld . itemLocations . at itid .~ Nothing
World -> & cWorld . lWorld . floorItems . unNIntMap . at i .~ Nothing
World Just InVoid -> w & cWorld . lWorld . itemLocations . at itid .~ Nothing
-- note rmInvItem does not fully destroy the item, other updates to the item
-- location are required
rmInvItem :: Int -> Int -> World -> World
rmInvItem cid invid w = rmInvItem cid invid w =
w w
& dounequipfunction --the ordering of these is & dounequipfunction --the ordering of these is
+9 -10
View File
@@ -1,15 +1,13 @@
module Dodge.Prop.Gib ( module Dodge.Prop.Gib (addCrGibs) where
addCrGibs,
) where
import Dodge.WorldEvent.Cloud
import Dodge.Creature.Shape
import Color import Color
import Control.Monad import Control.Monad
import Data.Foldable import Data.Foldable
import Data.List (zip4) import Data.List (zip4)
import Dodge.Creature.Shape
import Dodge.Damage import Dodge.Damage
import Dodge.Data.World import Dodge.Data.World
import Dodge.WorldEvent.Cloud
import Geometry import Geometry
import LensHelp import LensHelp
import qualified Quaternion as Q import qualified Quaternion as Q
@@ -25,8 +23,8 @@ addCrGibs cr = case damageDirection $ _crDamage cr of
. makeDustAt Flesh 50 (addZ 20 cpos) . makeDustAt Flesh 50 (addZ 20 cpos)
. makeDustAt Flesh 50 (addZ 20 cpos) . makeDustAt Flesh 50 (addZ 20 cpos)
. makeDustAt Flesh 50 (addZ 20 cpos) . makeDustAt Flesh 50 (addZ 20 cpos)
Just d -> (testFloat +~ 1) Just d ->
. addGibsAtDir (pi/4) d 3 7 (_skinLower skin) cpos addGibsAtDir (pi / 4) d 3 7 (_skinLower skin) cpos
. addGibsAtDir (pi / 4) d 13 20 (_skinUpper skin) cpos . addGibsAtDir (pi / 4) d 13 20 (_skinUpper skin) cpos
. addGibAtDir d 25 (_skinHead skin) cpos . addGibAtDir d 25 (_skinHead skin) cpos
. makeDustAt Flesh 50 (addZ 20 cpos) . makeDustAt Flesh 50 (addZ 20 cpos)
@@ -48,11 +46,11 @@ addGibsAtDir spread dir minh maxh col p w =
dirs = unitVectorAtAngle <$> (randsSpread (dir - spread, dir + spread) 4 & evalState $ _randGen w) dirs = unitVectorAtAngle <$> (randsSpread (dir - spread, dir + spread) 4 & evalState $ _randGen w)
vels = zipWith (*.*) speeds dirs vels = zipWith (*.*) speeds dirs
zspeeds = replicateM 4 (state (randomR (-8, 8))) & evalState $ _randGen w zspeeds = replicateM 4 (state (randomR (-8, 8))) & evalState $ _randGen w
quats :: [Q.Quaternion Float]
quats = replicateM 4 (Q.vToQuat (V3 0 0 1) <$> randOnUnitSphere) & evalState $ _randGen w quats = replicateM 4 (Q.vToQuat (V3 0 0 1) <$> randOnUnitSphere) & evalState $ _randGen w
addGib4 :: Point2 -> Color -> (Point2, Float, QFloat, Float) -> World -> World addGib4 :: Point2 -> Color -> (Point2, Float, QFloat, Float) -> World -> World
addGib4 p col (v, zs, q, h) = cWorld . lWorld . debris addGib4 p col (v, zs, q, h) =
cWorld . lWorld . debris
.:~ DebrisChunk .:~ DebrisChunk
{ _dbPos = p `v2z` h { _dbPos = p `v2z` h
, _dbType = Gib 3 col , _dbType = Gib 3 col
@@ -78,7 +76,8 @@ addGibAtDir dir h col p w =
zs <- state $ randomR (-4, 4) zs <- state $ randomR (-4, 4)
q <- Q.vToQuat (V3 0 0 1) <$> randOnUnitSphere q <- Q.vToQuat (V3 0 0 1) <$> randOnUnitSphere
let v = s *.* unitVectorAtAngle dir let v = s *.* unitVectorAtAngle dir
return $ DebrisChunk return $
DebrisChunk
{ _dbPos = p `v2z` h { _dbPos = p `v2z` h
, _dbType = Gib 3 col , _dbType = Gib 3 col
, _dbVel = v `v2z` zs , _dbVel = v `v2z` zs
+1 -1
View File
@@ -33,7 +33,7 @@ import Shader.Poke.Cloud
doDrawing :: SDL.Window -> Universe -> IO () doDrawing :: SDL.Window -> Universe -> IO ()
doDrawing window u doDrawing window u
| SDL.ScancodeT `M.member` (u ^. uvWorld . input . pressedKeys) = doTestDrawing rdata u | SDL.ScancodeY `M.member` (u ^. uvWorld . input . pressedKeys) = doTestDrawing rdata u
| otherwise = doDrawing' window rdata u | otherwise = doDrawing' window rdata u
where where
rdata = u ^. preloadData . renderData rdata = u ^. preloadData . renderData
+53 -54
View File
@@ -114,8 +114,8 @@ BarrelHiss src/Dodge/Data/SoundOrigin.hs 33;" C
BarrelType src/Dodge/Data/Creature/Misc.hs 87;" t BarrelType src/Dodge/Data/Creature/Misc.hs 87;" t
Barreloid src/Dodge/Data/Creature/Misc.hs 83;" C Barreloid src/Dodge/Data/Creature/Misc.hs 83;" C
BasicBeamDraw src/Dodge/Data/Beam.hs 34;" C BasicBeamDraw src/Dodge/Data/Beam.hs 34;" C
BasicBulletTrajectory src/Dodge/Data/Bullet.hs 44;" C BasicBulletTrajectory src/Dodge/Data/Bullet.hs 43;" C
BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 51;" C BasicBulletTrajectoryType src/Dodge/Data/Bullet.hs 50;" C
BasicFlare src/Dodge/Data/Muzzle.hs 26;" C BasicFlare src/Dodge/Data/Muzzle.hs 26;" C
Beam src/Dodge/Data/Beam.hs 18;" t Beam src/Dodge/Data/Beam.hs 18;" t
BeamCombine src/Dodge/Data/Beam.hs 47;" C BeamCombine src/Dodge/Data/Beam.hs 47;" C
@@ -126,8 +126,8 @@ BeamSimple src/Dodge/Data/Beam.hs 50;" C
BeamType src/Dodge/Data/Beam.hs 46;" t BeamType src/Dodge/Data/Beam.hs 46;" t
BecomePowerful src/Dodge/Data/Scenario.hs 9;" C BecomePowerful src/Dodge/Data/Scenario.hs 9;" C
BeltBulletAmmo src/Dodge/Data/AmmoType.hs 8;" C BeltBulletAmmo src/Dodge/Data/AmmoType.hs 8;" C
BezierTrajectory src/Dodge/Data/Bullet.hs 45;" C BezierTrajectory src/Dodge/Data/Bullet.hs 44;" C
BezierTrajectoryType src/Dodge/Data/Bullet.hs 52;" C BezierTrajectoryType src/Dodge/Data/Bullet.hs 51;" C
Biome src/Dodge/Data/Scenario.hs 71;" t Biome src/Dodge/Data/Scenario.hs 71;" t
BlBl src/Dodge/Data/BlBl.hs 11;" t BlBl src/Dodge/Data/BlBl.hs 11;" t
BlConst src/Dodge/Data/BlBl.hs 13;" C BlConst src/Dodge/Data/BlBl.hs 13;" C
@@ -152,27 +152,27 @@ BloomNoZWrite src/Picture/Data.hs 26;" C
Blunt src/Dodge/Data/Damage.hs 21;" C Blunt src/Dodge/Data/Damage.hs 21;" C
Boosting src/Dodge/Data/Creature/Stance.hs 28;" C Boosting src/Dodge/Data/Creature/Stance.hs 28;" C
BottomEscapeMenuOption src/Dodge/Data/Universe.hs 77;" C BottomEscapeMenuOption src/Dodge/Data/Universe.hs 77;" C
BounceBullet src/Dodge/Data/Bullet.hs 31;" C BounceBullet src/Dodge/Data/Bullet.hs 30;" C
Bound_box_screen src/Dodge/Data/Config.hs 81;" C Bound_box_screen src/Dodge/Data/Config.hs 81;" C
BoundaryCursor src/Dodge/Data/SelectionList.hs 20;" C BoundaryCursor src/Dodge/Data/SelectionList.hs 20;" C
Bounds src/Dodge/Data/Bounds.hs 12;" t Bounds src/Dodge/Data/Bounds.hs 12;" t
BrigSS src/Dodge/Data/Scenario.hs 102;" C BrigSS src/Dodge/Data/Scenario.hs 102;" C
Brute src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" C Brute src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" C
BulBall src/Dodge/Data/Bullet.hs 36;" C BulBall src/Dodge/Data/Bullet.hs 35;" C
BulFlak src/Dodge/Data/Bullet.hs 38;" C BulFlak src/Dodge/Data/Bullet.hs 37;" C
BulFrag src/Dodge/Data/Bullet.hs 39;" C BulFrag src/Dodge/Data/Bullet.hs 38;" C
BulGas src/Dodge/Data/Bullet.hs 40;" C BulGas src/Dodge/Data/Bullet.hs 39;" C
BulPlain src/Dodge/Data/Bullet.hs 37;" C BulPlain src/Dodge/Data/Bullet.hs 36;" C
Bullet src/Dodge/Data/Bullet.hs 18;" t Bullet src/Dodge/Data/Bullet.hs 18;" t
BulletAmmo src/Dodge/Data/AmmoType.hs 7;" C BulletAmmo src/Dodge/Data/AmmoType.hs 7;" C
BulletEffect src/Dodge/Data/Bullet.hs 29;" t BulletEffect src/Dodge/Data/Bullet.hs 28;" t
BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t BulletMod src/Dodge/Data/Item/BulletMod.hs 10;" t
BulletModEffect src/Dodge/Data/Item/BulletMod.hs 12;" C BulletModEffect src/Dodge/Data/Item/BulletMod.hs 12;" C
BulletModPayload src/Dodge/Data/Item/BulletMod.hs 11;" C BulletModPayload src/Dodge/Data/Item/BulletMod.hs 11;" C
BulletParams src/Dodge/Data/Item/Use.hs 52;" C BulletParams src/Dodge/Data/Item/Use.hs 52;" C
BulletPayload src/Dodge/Data/Bullet.hs 35;" t BulletPayload src/Dodge/Data/Bullet.hs 34;" t
BulletTrajectory src/Dodge/Data/Bullet.hs 43;" t BulletTrajectory src/Dodge/Data/Bullet.hs 42;" t
BulletTrajectoryType src/Dodge/Data/Bullet.hs 50;" t BulletTrajectoryType src/Dodge/Data/Bullet.hs 49;" t
BurstTrigger src/Dodge/Data/TriggerType.hs 12;" C BurstTrigger src/Dodge/Data/TriggerType.hs 12;" C
Button src/Dodge/Data/Button.hs 30;" t Button src/Dodge/Data/Button.hs 30;" t
ButtonAccessTerminal src/Dodge/Data/Button.hs 28;" C ButtonAccessTerminal src/Dodge/Data/Button.hs 28;" C
@@ -340,7 +340,7 @@ DefaultLightSourceDraw src/Dodge/Data/LightSource.hs 13;" C
DefaultRoomType src/Dodge/Data/Room.hs 31;" C DefaultRoomType src/Dodge/Data/Room.hs 31;" C
DefaultTerminal src/Dodge/Data/Terminal.hs 55;" C DefaultTerminal src/Dodge/Data/Terminal.hs 55;" C
DestroyBeing src/Dodge/Data/Scenario.hs 8;" C DestroyBeing src/Dodge/Data/Scenario.hs 8;" C
DestroyBullet src/Dodge/Data/Bullet.hs 30;" C DestroyBullet src/Dodge/Data/Bullet.hs 29;" C
DestroyItem src/Dodge/Data/Scenario.hs 7;" C DestroyItem src/Dodge/Data/Scenario.hs 7;" C
Detector src/Dodge/Data/Item/Combine.hs 183;" t Detector src/Dodge/Data/Item/Combine.hs 183;" t
Dirt src/Dodge/Data/Material.hs 11;" C Dirt src/Dodge/Data/Material.hs 11;" C
@@ -461,8 +461,8 @@ FlashBall src/Dodge/Data/EnergyBall/Type.hs 17;" C
Flashing src/Dodge/Data/Damage.hs 27;" C Flashing src/Dodge/Data/Damage.hs 27;" C
FlatFaces src/Shape/Data.hs 17;" C FlatFaces src/Shape/Data.hs 17;" C
FlatShieldParams src/Dodge/Data/Item/Params.hs 16;" C FlatShieldParams src/Dodge/Data/Item/Params.hs 16;" C
FlechetteTrajectory src/Dodge/Data/Bullet.hs 46;" C FlechetteTrajectory src/Dodge/Data/Bullet.hs 45;" C
FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 53;" C FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 52;" C
Flee src/Dodge/Data/ActionPlan.hs 191;" C Flee src/Dodge/Data/ActionPlan.hs 191;" C
Flesh src/Dodge/Data/Material.hs 11;" C Flesh src/Dodge/Data/Material.hs 11;" C
FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 16;" C FloatAbsCheckGreaterLess src/Dodge/Data/FloatFunction.hs 16;" C
@@ -749,8 +749,8 @@ MagnetAttract src/Dodge/Data/Magnet.hs 19;" C
MagnetBuBu src/Dodge/Data/Magnet.hs 16;" t MagnetBuBu src/Dodge/Data/Magnet.hs 16;" t
MagnetDeflect src/Dodge/Data/Magnet.hs 18;" C MagnetDeflect src/Dodge/Data/Magnet.hs 18;" C
MagnetRepulse src/Dodge/Data/Magnet.hs 20;" C MagnetRepulse src/Dodge/Data/Magnet.hs 20;" C
MagnetTrajectory src/Dodge/Data/Bullet.hs 47;" C MagnetTrajectory src/Dodge/Data/Bullet.hs 46;" C
MagnetTrajectoryType src/Dodge/Data/Bullet.hs 54;" C MagnetTrajectoryType src/Dodge/Data/Bullet.hs 53;" C
MagnetUpdate src/Dodge/Data/Magnet.hs 13;" t MagnetUpdate src/Dodge/Data/Magnet.hs 13;" t
MagnetUpdateTimer src/Dodge/Data/Magnet.hs 13;" C MagnetUpdateTimer src/Dodge/Data/Magnet.hs 13;" C
MakeAutoSF src/Dodge/Data/ComposedItem.hs 35;" C MakeAutoSF src/Dodge/Data/ComposedItem.hs 35;" C
@@ -1004,7 +1004,7 @@ Pathing src/Dodge/Data/Config.hs 76;" C
Patrol src/Dodge/Data/ActionPlan.hs 180;" C Patrol src/Dodge/Data/ActionPlan.hs 180;" C
PausedTimeFlow src/Dodge/Data/World.hs 77;" C PausedTimeFlow src/Dodge/Data/World.hs 77;" C
Payload src/Dodge/Data/Payload.hs 11;" t Payload src/Dodge/Data/Payload.hs 11;" t
PenetrateBullet src/Dodge/Data/Bullet.hs 32;" C PenetrateBullet src/Dodge/Data/Bullet.hs 31;" C
Perception src/Dodge/Data/Creature/Perception.hs 32;" t Perception src/Dodge/Data/Creature/Perception.hs 32;" t
PhysicalDamage src/Dodge/Data/Damage/Type.hs 4;" C PhysicalDamage src/Dodge/Data/Damage/Type.hs 4;" C
PhysicalSensor src/Dodge/Data/Machine/Sensor/Type.hs 14;" C PhysicalSensor src/Dodge/Data/Machine/Sensor/Type.hs 14;" C
@@ -1629,7 +1629,7 @@ _btOn src/Dodge/Data/Button.hs 26;" f
_btPos src/Dodge/Data/Button.hs 31;" f _btPos src/Dodge/Data/Button.hs 31;" f
_btRot src/Dodge/Data/Button.hs 32;" f _btRot src/Dodge/Data/Button.hs 32;" f
_btTermMID src/Dodge/Data/Button.hs 35;" f _btTermMID src/Dodge/Data/Button.hs 35;" f
_buDam src/Dodge/Data/Bullet.hs 37;" f _buDam src/Dodge/Data/Bullet.hs 36;" f
_buDrag src/Dodge/Data/Bullet.hs 22;" f _buDrag src/Dodge/Data/Bullet.hs 22;" f
_buEffect src/Dodge/Data/Bullet.hs 19;" f _buEffect src/Dodge/Data/Bullet.hs 19;" f
_buOldPos src/Dodge/Data/Bullet.hs 24;" f _buOldPos src/Dodge/Data/Bullet.hs 24;" f
@@ -1861,7 +1861,6 @@ _eboName src/Shader/Data.hs 89;" f
_eboPtr src/Shader/Data.hs 90;" f _eboPtr src/Shader/Data.hs 90;" f
_emoMenuOption src/Dodge/Data/Universe.hs 77;" f _emoMenuOption src/Dodge/Data/Universe.hs 77;" f
_energyBalls src/Dodge/Data/LWorld.hs 111;" f _energyBalls src/Dodge/Data/LWorld.hs 111;" f
_fbRot src/Dodge/Data/EnergyBall/Type.hs 14;" f
_fbSize src/Dodge/Data/EnergyBall/Type.hs 14;" f _fbSize src/Dodge/Data/EnergyBall/Type.hs 14;" f
_fbo2 src/Data/Preload/Render.hs 29;" f _fbo2 src/Data/Preload/Render.hs 29;" f
_fbo3 src/Data/Preload/Render.hs 30;" f _fbo3 src/Data/Preload/Render.hs 30;" f
@@ -2393,7 +2392,7 @@ _soundsToInvestigate src/Dodge/Data/Creature/Memory.hs 14;" f
_spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f
_spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f
_sparks src/Dodge/Data/LWorld.hs 113;" f _sparks src/Dodge/Data/LWorld.hs 113;" f
_spawnEBT src/Dodge/Data/Bullet.hs 36;" f _spawnEBT src/Dodge/Data/Bullet.hs 35;" f
_ssIndent src/Dodge/Data/SelectionList.hs 34;" f _ssIndent src/Dodge/Data/SelectionList.hs 34;" f
_ssItems src/Dodge/Data/SelectionList.hs 30;" f _ssItems src/Dodge/Data/SelectionList.hs 30;" f
_ssOffset src/Dodge/Data/SelectionList.hs 31;" f _ssOffset src/Dodge/Data/SelectionList.hs 31;" f
@@ -2786,7 +2785,7 @@ bfsNodePoints src/Dodge/Path.hs 58;" f
bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 218;" f bfsThenReturn src/Dodge/Creature/ReaderUpdate.hs 218;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 115;" f
bgunSound src/Dodge/HeldUse.hs 530;" f bgunSound src/Dodge/HeldUse.hs 530;" f
bindFBO src/Render.hs 244;" f bindFBO src/Render.hs 245;" f
bingate src/Dodge/Item/Scope.hs 109;" f bingate src/Dodge/Item/Scope.hs 109;" f
black src/Color.hs 27;" f black src/Color.hs 27;" f
blank src/Picture/Base.hs 59;" f blank src/Picture/Base.hs 59;" f
@@ -3257,7 +3256,7 @@ destroyMatS src/Dodge/Material/Sound.hs 7;" f
destroyMcType src/Dodge/Machine/Destroy.hs 22;" f destroyMcType src/Dodge/Machine/Destroy.hs 22;" f
destroyMount src/Dodge/Block.hs 100;" f destroyMount src/Dodge/Block.hs 100;" f
destroyMounts src/Dodge/Block.hs 97;" f destroyMounts src/Dodge/Block.hs 97;" f
destroyProjectile src/Dodge/Projectile/Update.hs 162;" f destroyProjectile src/Dodge/Projectile/Update.hs 161;" f
detV src/Geometry/Vector.hs 93;" f detV src/Geometry/Vector.hs 93;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 465;" f detectorColor src/Dodge/Item/Draw/SPic.hs 465;" f
@@ -3295,7 +3294,7 @@ doAfterPlacements src/Dodge/Layout.hs 83;" f
doAimTwist src/Dodge/Creature/YourControl.hs 140;" f doAimTwist src/Dodge/Creature/YourControl.hs 140;" f
doAnyEquipmentEffect src/Dodge/Creature/State.hs 223;" f doAnyEquipmentEffect src/Dodge/Creature/State.hs 223;" f
doBackspace src/Dodge/Update/Input/Text.hs 31;" f doBackspace src/Dodge/Update/Input/Text.hs 31;" f
doBarrelSpin src/Dodge/Projectile/Update.hs 213;" f doBarrelSpin src/Dodge/Projectile/Update.hs 215;" f
doBlBl src/Dodge/BlBl.hs 5;" f doBlBl src/Dodge/BlBl.hs 5;" f
doBlSh src/Dodge/Block/Draw.hs 14;" f doBlSh src/Dodge/Block/Draw.hs 14;" f
doBounce src/Dodge/Base/Collide.hs 66;" f doBounce src/Dodge/Base/Collide.hs 66;" f
@@ -3322,8 +3321,8 @@ doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 48;" f
doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 56;" f doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 56;" f
doDrWdWd src/Dodge/DrWdWd.hs 16;" f doDrWdWd src/Dodge/DrWdWd.hs 16;" f
doDrag src/Dodge/Update/Input/InGame.hs 107;" f doDrag src/Dodge/Update/Input/InGame.hs 107;" f
doDrawing src/Dodge/Render.hs 35;" f doDrawing src/Dodge/Render.hs 34;" f
doDrawing' src/Dodge/Render.hs 46;" f doDrawing' src/Dodge/Render.hs 45;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 1212;" f doGenFloat src/Dodge/HeldUse.hs 1212;" f
doGravityPU src/Dodge/Projectile/Update.hs 37;" f doGravityPU src/Dodge/Projectile/Update.hs 37;" f
@@ -3359,10 +3358,10 @@ doSideEffects appDodge/Main.hs 120;" f
doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 166;" f doStrategyActions src/Dodge/Creature/ReaderUpdate.hs 166;" f
doTerminalBootProgram src/Dodge/WorldEffect.hs 94;" f doTerminalBootProgram src/Dodge/WorldEffect.hs 94;" f
doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f doTerminalCommandEffect src/Dodge/Terminal.hs 135;" f
doTestDrawing src/Dodge/Render.hs 42;" f doTestDrawing src/Dodge/Render.hs 41;" f
doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f doTextInputOver src/Dodge/Update/Input/Text.hs 15;" f
doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f doTextInputOverUniverse src/Dodge/Update/Input/Text.hs 12;" f
doThrust src/Dodge/Projectile/Update.hs 184;" f doThrust src/Dodge/Projectile/Update.hs 183;" f
doTimeScroll src/Dodge/Update.hs 208;" f doTimeScroll src/Dodge/Update.hs 208;" f
doTmTm src/Dodge/TmTm.hs 6;" f doTmTm src/Dodge/TmTm.hs 6;" f
doTmWdWd src/Dodge/WorldEffect.hs 99;" f doTmWdWd src/Dodge/WorldEffect.hs 99;" f
@@ -3538,11 +3537,11 @@ dtToUpDownAdj src/Dodge/DoubleTree.hs 158;" f
dummyMenuOption src/Dodge/Menu/Option.hs 74;" f dummyMenuOption src/Dodge/Menu/Option.hs 74;" f
dustColor src/Shader/Poke/Cloud.hs 71;" f dustColor src/Shader/Poke/Cloud.hs 71;" f
dustSpringVel src/Dodge/Update.hs 880;" f dustSpringVel src/Dodge/Update.hs 880;" f
ebColor src/Dodge/EnergyBall.hs 81;" f ebColor src/Dodge/EnergyBall.hs 78;" f
ebDamage src/Dodge/EnergyBall.hs 89;" f ebDamage src/Dodge/EnergyBall.hs 86;" f
ebEffect src/Dodge/EnergyBall.hs 49;" f ebEffect src/Dodge/EnergyBall.hs 46;" f
ebFlicker src/Dodge/EnergyBall.hs 74;" f ebFlicker src/Dodge/EnergyBall.hs 71;" f
ebtToDamage src/Dodge/EnergyBall.hs 97;" f ebtToDamage src/Dodge/EnergyBall.hs 94;" f
edgeFormatting src/Dodge/Combine/Graph.hs 131;" f edgeFormatting src/Dodge/Combine/Graph.hs 131;" f
edgeToPic src/Dodge/Debug/Picture.hs 436;" f edgeToPic src/Dodge/Debug/Picture.hs 436;" f
effectOnEquip src/Dodge/Equipment.hs 32;" f effectOnEquip src/Dodge/Equipment.hs 32;" f
@@ -3591,7 +3590,7 @@ expandPolyByFixed src/Dodge/LevelGen/StaticWalls.hs 97;" f
expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f expandPolyCorners src/Dodge/LevelGen/StaticWalls.hs 103;" f
expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f expandToSquare src/Dodge/LevelGen/StaticWalls/Deprecated.hs 83;" f
expireAndDamage src/Dodge/Bullet.hs 184;" f expireAndDamage src/Dodge/Bullet.hs 184;" f
explodeShell src/Dodge/Projectile/Update.hs 283;" f explodeShell src/Dodge/Projectile/Update.hs 285;" f
explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f
explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
@@ -3727,7 +3726,7 @@ getCommands src/Dodge/Terminal.hs 117;" f
getCommandsHelp src/Dodge/Terminal.hs 75;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f
getDamageCoding src/Dodge/Terminal.hs 177;" f getDamageCoding src/Dodge/Terminal.hs 177;" f
getDistortions src/Dodge/Render.hs 424;" f getDistortions src/Dodge/Render.hs 435;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1324;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1324;" f
getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f
@@ -4209,7 +4208,7 @@ makeFragBullets src/Dodge/Bullet.hs 128;" f
makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f makeGasCloud src/Dodge/WorldEvent/SpawnParticle.hs 11;" f
makeGrid src/Grid.hs 46;" f makeGrid src/Grid.hs 46;" f
makeIntInterval src/Dodge/Zoning/Base.hs 35;" f makeIntInterval src/Dodge/Zoning/Base.hs 35;" f
makeMovingEB src/Dodge/EnergyBall.hs 64;" f makeMovingEB src/Dodge/EnergyBall.hs 61;" f
makeMuzzleFlare src/Dodge/HeldUse.hs 664;" f makeMuzzleFlare src/Dodge/HeldUse.hs 664;" f
makeParagraph src/Justify.hs 6;" f makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f makePathBetween src/Dodge/Path.hs 35;" f
@@ -4339,10 +4338,10 @@ moveCombineSel src/Dodge/Update/Scroll.hs 114;" f
moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 44;" f
moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f
movePenBullet src/Dodge/Bullet.hs 199;" f movePenBullet src/Dodge/Bullet.hs 199;" f
moveProjectile src/Dodge/Projectile/Update.hs 261;" f moveProjectile src/Dodge/Projectile/Update.hs 263;" f
moveRoomBy src/Dodge/Room/Link.hs 53;" f moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 13;" f moveShockwave src/Dodge/Shockwave/Update.hs 13;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 247;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 249;" f
moveToSideFirstOutLink src/Dodge/Room/Warning.hs 55;" f moveToSideFirstOutLink src/Dodge/Room/Warning.hs 55;" f
moveWall src/Dodge/Wall/Move.hs 29;" f moveWall src/Dodge/Wall/Move.hs 29;" f
moveWallID src/Dodge/Wall/Move.hs 24;" f moveWallID src/Dodge/Wall/Move.hs 24;" f
@@ -4501,12 +4500,12 @@ pincerP src/Dodge/Creature/Boid.hs 61;" f
pincerP' src/Dodge/Creature/Boid.hs 94;" f pincerP' src/Dodge/Creature/Boid.hs 94;" f
pincerP'' src/Dodge/Creature/Boid.hs 104;" f pincerP'' src/Dodge/Creature/Boid.hs 104;" f
pincerP''' src/Dodge/Creature/Boid.hs 75;" f pincerP''' src/Dodge/Creature/Boid.hs 75;" f
pingPongBetween src/Render.hs 220;" f pingPongBetween src/Render.hs 221;" f
pipe src/Dodge/Item/Craftable.hs 32;" f pipe src/Dodge/Item/Craftable.hs 32;" f
pistol src/Dodge/Item/Held/Stick.hs 40;" f pistol src/Dodge/Item/Held/Stick.hs 40;" f
pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f pistolCrit src/Dodge/Creature/PistolCrit.hs 12;" f
pistolerRoom src/Dodge/Room/Room.hs 321;" f pistolerRoom src/Dodge/Room/Room.hs 321;" f
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 226;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 228;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 18;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 22;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 50;" f
@@ -4794,7 +4793,7 @@ renderDataResizeUpdate src/Preload/Update.hs 26;" f
renderFlatLighting src/Render.hs 104;" f renderFlatLighting src/Render.hs 104;" f
renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f
renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f
renderLayer src/Render.hs 233;" f renderLayer src/Render.hs 234;" f
renderLightingNoShadows src/Render.hs 48;" f renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 192;" f renderListAt src/Dodge/Render/List.hs 192;" f
renderShadows src/Render.hs 117;" f renderShadows src/Render.hs 117;" f
@@ -5007,7 +5006,7 @@ setTiles src/Dodge/Layout.hs 65;" f
setToggle src/Dodge/Prop/Update.hs 44;" f setToggle src/Dodge/Prop/Update.hs 44;" f
setViewDistance src/Dodge/Update/Camera.hs 229;" f setViewDistance src/Dodge/Update/Camera.hs 229;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 429;" f setViewport src/Dodge/Render.hs 440;" f
setVol src/Dodge/Config/Update.hs 30;" f setVol src/Dodge/Config/Update.hs 30;" f
setWristShieldPos src/Dodge/Equipment.hs 49;" f setWristShieldPos src/Dodge/Equipment.hs 49;" f
setWristShieldPos src/Dodge/Euse.hs 35;" f setWristShieldPos src/Dodge/Euse.hs 35;" f
@@ -5037,10 +5036,10 @@ shapeVerxSize src/Shape/Parameters.hs 10;" f
shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f
shatterGunSPic src/Dodge/Item/Draw/SPic.hs 324;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 324;" f
shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f
shellExplosionCheck src/Dodge/Projectile/Update.hs 55;" f shellExplosionCheck src/Dodge/Projectile/Update.hs 57;" f
shellHitCreature src/Dodge/Projectile/Update.hs 87;" f shellHitCreature src/Dodge/Projectile/Update.hs 85;" f
shellHitFloor src/Dodge/Projectile/Update.hs 102;" f shellHitFloor src/Dodge/Projectile/Update.hs 101;" f
shellHitWall src/Dodge/Projectile/Update.hs 66;" f shellHitWall src/Dodge/Projectile/Update.hs 68;" f
shellMag src/Dodge/Item/Ammo.hs 49;" f shellMag src/Dodge/Item/Ammo.hs 49;" f
shellModule src/Dodge/Item/Scope.hs 123;" f shellModule src/Dodge/Item/Scope.hs 123;" f
shellShape src/Dodge/Projectile/Draw.hs 35;" f shellShape src/Dodge/Projectile/Draw.hs 35;" f
@@ -5093,9 +5092,9 @@ showEquipItem src/Dodge/Item/Display.hs 107;" f
showInt src/Dodge/Item/Info.hs 75;" f showInt src/Dodge/Item/Info.hs 75;" f
showIntsString src/Dodge/Tree/Compose.hs 129;" f showIntsString src/Dodge/Tree/Compose.hs 129;" f
showInventoryPathing src/Dodge/Item/Display.hs 86;" f showInventoryPathing src/Dodge/Item/Display.hs 86;" f
showManObj src/Dodge/TestString.hs 65;" f showManObj src/Dodge/TestString.hs 67;" f
showTerminalError src/Dodge/Debug/Terminal.hs 78;" f showTerminalError src/Dodge/Debug/Terminal.hs 78;" f
showTimeFlow src/Dodge/TestString.hs 88;" f showTimeFlow src/Dodge/TestString.hs 90;" f
shrinkPolyOnEdges src/Geometry/Polygon.hs 142;" f shrinkPolyOnEdges src/Geometry/Polygon.hs 142;" f
shrinkVert src/Geometry/Polygon.hs 146;" f shrinkVert src/Geometry/Polygon.hs 146;" f
shuffle src/RandomHelp.hs 49;" f shuffle src/RandomHelp.hs 49;" f
@@ -5361,7 +5360,7 @@ tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 448;" f
topInvW src/Dodge/ListDisplayParams.hs 51;" f topInvW src/Dodge/ListDisplayParams.hs 51;" f
topPrismEdgeIndices src/Shader/Poke.hs 335;" f topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" f topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 61;" f topTestPart src/Dodge/TestString.hs 63;" f
torch src/Dodge/Item/Held/Utility.hs 23;" f torch src/Dodge/Item/Held/Utility.hs 23;" f
torchShape src/Dodge/Item/Draw/SPic.hs 290;" f torchShape src/Dodge/Item/Draw/SPic.hs 290;" f
torqueAmount src/Dodge/HeldUse.hs 597;" f torqueAmount src/Dodge/HeldUse.hs 597;" f
@@ -5438,9 +5437,9 @@ tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 32;" f
trySeedFromClipboard src/Dodge/Menu.hs 91;" f trySeedFromClipboard src/Dodge/Menu.hs 91;" f
trySpin src/Dodge/Projectile/Update.hs 172;" f trySpin src/Dodge/Projectile/Update.hs 171;" f
trySynthBullet src/Dodge/Creature/State.hs 249;" f trySynthBullet src/Dodge/Creature/State.hs 249;" f
tryThrust src/Dodge/Projectile/Update.hs 178;" f tryThrust src/Dodge/Projectile/Update.hs 177;" f
tryUseParent src/Dodge/Creature/State.hs 227;" f tryUseParent src/Dodge/Creature/State.hs 227;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 35;" f turret src/Dodge/Placement/Instance/Turret.hs 35;" f
@@ -5505,7 +5504,7 @@ updateDistortions src/Dodge/Update.hs 587;" f
updateDoor src/Dodge/Update.hs 326;" f updateDoor src/Dodge/Update.hs 326;" f
updateDust src/Dodge/Update.hs 850;" f updateDust src/Dodge/Update.hs 850;" f
updateDusts src/Dodge/Update.hs 701;" f updateDusts src/Dodge/Update.hs 701;" f
updateEnergyBall src/Dodge/EnergyBall.hs 35;" f updateEnergyBall src/Dodge/EnergyBall.hs 32;" f
updateEnergyBalls src/Dodge/Update.hs 689;" f updateEnergyBalls src/Dodge/Update.hs 689;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 480;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 480;" f
updateExpBarrel src/Dodge/Barreloid.hs 20;" f updateExpBarrel src/Dodge/Barreloid.hs 20;" f