Handle machine damage/destruction during wall damage

This commit is contained in:
2026-02-11 17:59:08 +00:00
parent 38eef8fd54
commit af8f803404
3 changed files with 66 additions and 46 deletions
+6 -4
View File
@@ -24,11 +24,13 @@ import Sound.Data
updateMachine :: Machine -> World -> World updateMachine :: Machine -> World -> World
updateMachine mc updateMachine mc
| _mcHP mc < 1 = destroyMachine mc = mcPlaySound mc
| otherwise =
mcApplyDamage (_mcDamage mc) mc
. mcPlaySound mc
. mcTypeUpdate mc (_mcType mc) . mcTypeUpdate mc (_mcType mc)
-- | _mcHP mc < 1 = destroyMachine mc
-- | otherwise =
-- mcApplyDamage (_mcDamage mc) mc
-- . mcPlaySound mc
-- . mcTypeUpdate mc (_mcType mc)
mcTypeUpdate :: Machine -> MachineType -> World -> World mcTypeUpdate :: Machine -> MachineType -> World -> World
mcTypeUpdate mc = \case mcTypeUpdate mc = \case
+18 -2
View File
@@ -25,14 +25,17 @@ import Dodge.Zoning.Pathing
import Geometry.Data import Geometry.Data
import LensHelp import LensHelp
import Linear import Linear
import qualified Data.IntSet as IS
import Dodge.Machine.Destroy
damageWall :: Int -> Damage -> World -> (S.Set Int2, World) damageWall :: Int -> Damage -> World -> (S.Set Int2, World)
damageWall wlid dt w = fromMaybe (mempty,w) $ do damageWall wlid dt w = fromMaybe (mempty,w) $ do
wl <- w ^? cWorld . lWorld . walls . ix wlid wl <- w ^? cWorld . lWorld . walls . ix wlid
let (dmam, w') = damMatSideEffect dt (_wlMaterial wl) (Right wl) w let (dmam, w') = damMatSideEffect dt (_wlMaterial wl) (Right wl) w
return $ case wl ^. wlStructure of return $ case wl ^. wlStructure of
MachinePart mcid -> (,) mempty MachinePart mcid -> -- (,) mempty
$ w' & cWorld . lWorld . machines . ix mcid . mcDamage .:~ dt -- $ w' & cWorld . lWorld . machines . ix mcid . mcDamage .:~ dt
w' & damageMachine dmam mcid
BlockPart blid -> BlockPart blid ->
w' & damageBlock (wl ^. wlMaterial) dmam blid w' & damageBlock (wl ^. wlMaterial) dmam blid
DoorPart drid _ -> DoorPart drid _ ->
@@ -40,6 +43,19 @@ damageWall wlid dt w = fromMaybe (mempty,w) $ do
& maybeDestroyDoor drid & maybeDestroyDoor drid
_ -> (mempty, w') _ -> (mempty, w')
damageMachine :: Int -> Int -> World -> (S.Set Int2, World)
damageMachine x mcid w = case w ^? cWorld . lWorld . machines . ix mcid of
Just mc | _mcHP mc < x -> destroyMachine' mc w
_ -> (mempty, w & cWorld . lWorld . machines . ix mcid . mcHP -~ x)
destroyMachine' :: Machine -> World -> (S.Set Int2, World)
destroyMachine' mc w = (js, destroyMachine mc w)
where
wlids = IS.toList $ mc ^. mcWallIDs
f wlid = w ^?! cWorld . lWorld . walls . ix wlid . wlLine
js = foldMap (S.fromList . uncurry (zoneOfSeg peZoneSize) . f) wlids
-- block destruction is convoluted... -- block destruction is convoluted...
damageBlock :: Material -> Int -> Int -> World -> (S.Set Int2, World) damageBlock :: Material -> Int -> Int -> World -> (S.Set Int2, World)
damageBlock = \case damageBlock = \case
+42 -40
View File
@@ -2680,7 +2680,7 @@ 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 405;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 405;" f
baseSMGShape src/Dodge/Item/Draw/SPic.hs 393;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 393;" f
baseShoulder src/Dodge/Creature/Picture.hs 117;" f baseShoulder src/Dodge/Creature/Picture.hs 114;" 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 322;" f baseStickSpread src/Dodge/HeldUse.hs 322;" f
@@ -2800,11 +2800,11 @@ 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 177;" f chasmRotate src/Dodge/Creature/Update.hs 173;" 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
chasmTestCorpse src/Dodge/Creature/Update.hs 158;" f chasmTestCorpse src/Dodge/Creature/Update.hs 155;" f
chasmTestLiving src/Dodge/Creature/Update.hs 139;" f chasmTestLiving src/Dodge/Creature/Update.hs 137;" 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
@@ -2928,7 +2928,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 99;" f corpseOrGib src/Dodge/Creature/Update.hs 98;" 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
@@ -2940,7 +2940,7 @@ crCamouflage src/Dodge/Creature/Picture.hs 33;" f
crCanSeeCr src/Dodge/Creature/Test.hs 52;" f crCanSeeCr src/Dodge/Creature/Test.hs 52;" f
crCrSpring src/Dodge/Update.hs 919;" f crCrSpring src/Dodge/Update.hs 919;" f
crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f crCurrentEquipment src/Dodge/Creature/Statistics.hs 62;" f
crDeathSounds src/Dodge/Creature/Vocalization.hs 44;" f crDeathSounds src/Dodge/Creature/Vocalization.hs 45;" f
crDexterity src/Dodge/Creature/Statistics.hs 19;" f crDexterity src/Dodge/Creature/Statistics.hs 19;" f
crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 39;" f
crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 53;" f
@@ -2976,8 +2976,8 @@ crStrength src/Dodge/Creature/Statistics.hs 29;" f
crUpdate src/Dodge/Creature/Update.hs 71;" f crUpdate src/Dodge/Creature/Update.hs 71;" 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 16;" f
crWarningSounds src/Dodge/Creature/Vocalization.hs 25;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 26;" f
crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 59;" f crWlPbHit src/Dodge/WorldEvent/ThingsHit.hs 59;" f
crZoneSize src/Dodge/Zoning/Creature.hs 43;" f crZoneSize src/Dodge/Zoning/Creature.hs 43;" f
craftInfo src/Dodge/Item/Info.hs 169;" f craftInfo src/Dodge/Item/Info.hs 169;" f
@@ -3042,7 +3042,7 @@ dShadCol src/Dodge/Render/List.hs 208;" f
damMatSideEffect src/Dodge/Material/Damage.hs 20;" f damMatSideEffect src/Dodge/Material/Damage.hs 20;" f
damThingHitWith src/Dodge/Damage.hs 72;" f damThingHitWith src/Dodge/Damage.hs 72;" f
damToExpBarrel src/Dodge/Barreloid.hs 53;" f damToExpBarrel src/Dodge/Barreloid.hs 53;" f
damageBlock src/Dodge/Wall/Damage.hs 44;" f damageBlock src/Dodge/Wall/Damage.hs 59;" f
damageCodeCommand src/Dodge/Terminal.hs 67;" f damageCodeCommand src/Dodge/Terminal.hs 67;" f
damageCrWl src/Dodge/Damage.hs 29;" f damageCrWl src/Dodge/Damage.hs 29;" f
damageCrWlID src/Dodge/Damage.hs 23;" f damageCrWlID src/Dodge/Damage.hs 23;" f
@@ -3051,15 +3051,16 @@ damageDirection src/Dodge/Damage.hs 35;" f
damageDirt src/Dodge/Material/Damage.hs 130;" f damageDirt src/Dodge/Material/Damage.hs 130;" f
damageFlesh src/Dodge/Material/Damage.hs 97;" f damageFlesh src/Dodge/Material/Damage.hs 97;" f
damageGlass src/Dodge/Material/Damage.hs 156;" f damageGlass src/Dodge/Material/Damage.hs 156;" f
damageGlassBlock src/Dodge/Wall/Damage.hs 49;" f damageGlassBlock src/Dodge/Wall/Damage.hs 64;" f
damageHP src/Dodge/Creature/Damage.hs 37;" f damageHP src/Dodge/Creature/Damage.hs 37;" f
damageInCircle src/Dodge/Damage.hs 61;" f damageInCircle src/Dodge/Damage.hs 61;" f
damageMachine src/Dodge/Wall/Damage.hs 45;" f
damageMetal src/Dodge/Material/Damage.hs 65;" f damageMetal src/Dodge/Material/Damage.hs 65;" f
damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f
damageStone src/Dodge/Material/Damage.hs 33;" f damageStone src/Dodge/Material/Damage.hs 33;" f
damageThingHit src/Dodge/Bullet.hs 180;" f damageThingHit src/Dodge/Bullet.hs 180;" f
damageTypeThreshold src/Dodge/Machine/Update.hs 132;" f damageTypeThreshold src/Dodge/Machine/Update.hs 132;" f
damageWall src/Dodge/Wall/Damage.hs 29;" f damageWall src/Dodge/Wall/Damage.hs 30;" f
damsToExpBarrel src/Dodge/Barreloid.hs 50;" f damsToExpBarrel src/Dodge/Barreloid.hs 50;" f
dark src/Color.hs 135;" f dark src/Color.hs 135;" f
darkenBackground src/Dodge/Render/MenuScreen.hs 46;" f darkenBackground src/Dodge/Render/MenuScreen.hs 46;" f
@@ -3070,9 +3071,9 @@ deZoneIX src/Dodge/Zoning/Base.hs 91;" f
deZoneWall src/Dodge/Zoning/Wall.hs 70;" f deZoneWall src/Dodge/Zoning/Wall.hs 70;" f
deadEndRoom src/Dodge/Room/Room.hs 259;" f deadEndRoom src/Dodge/Room/Room.hs 259;" f
deadFeet src/Dodge/Creature/Picture.hs 68;" f deadFeet src/Dodge/Creature/Picture.hs 68;" f
deadRot src/Dodge/Creature/Picture.hs 84;" f deadRot src/Dodge/Creature/Picture.hs 86;" f
deadScalp src/Dodge/Creature/Picture.hs 81;" f deadScalp src/Dodge/Creature/Picture.hs 81;" f
deadUpperBody src/Dodge/Creature/Picture.hs 114;" f deadUpperBody src/Dodge/Creature/Picture.hs 111;" f
debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f debrisS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 725;" f
debrisSPic src/Dodge/Prop/Draw.hs 16;" f debrisSPic src/Dodge/Prop/Draw.hs 16;" f
debrisSize src/Dodge/Block/Debris.hs 83;" f debrisSize src/Dodge/Block/Debris.hs 83;" f
@@ -3108,8 +3109,8 @@ defHeldItem src/Dodge/Default/Item.hs 9;" f
defLSPic src/Dodge/LightSource/Draw.hs 10;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f
defSPic src/Dodge/Item/Draw/SPic.hs 310;" f defSPic src/Dodge/Item/Draw/SPic.hs 310;" f
defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f
defaultAimingCrit src/Dodge/Default/Creature.hs 107;" f defaultAimingCrit src/Dodge/Default/Creature.hs 108;" f
defaultAudition src/Dodge/Default/Creature.hs 92;" f defaultAudition src/Dodge/Default/Creature.hs 93;" f
defaultAutoWall src/Dodge/Default/Wall.hs 32;" f defaultAutoWall src/Dodge/Default/Wall.hs 32;" f
defaultBlock src/Dodge/Default/Block.hs 5;" f defaultBlock src/Dodge/Default/Block.hs 5;" f
defaultBounds src/Dodge/Data/Bounds.hs 18;" f defaultBounds src/Dodge/Data/Bounds.hs 18;" f
@@ -3122,9 +3123,9 @@ defaultChaseMvType src/Dodge/Creature/MoveType.hs 25;" f
defaultClusterStatus src/Dodge/Default/Room.hs 37;" f defaultClusterStatus src/Dodge/Default/Room.hs 37;" f
defaultConfig src/Dodge/Data/Config.hs 151;" f defaultConfig src/Dodge/Data/Config.hs 151;" f
defaultCreature src/Dodge/Default/Creature.hs 12;" f defaultCreature src/Dodge/Default/Creature.hs 12;" f
defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f defaultCreatureMemory src/Dodge/Default/Creature.hs 66;" f
defaultCrystalWall src/Dodge/Default/Wall.hs 35;" f defaultCrystalWall src/Dodge/Default/Wall.hs 35;" f
defaultDeathSounds src/Dodge/Creature/Vocalization.hs 54;" f defaultDeathSounds src/Dodge/Creature/Vocalization.hs 55;" f
defaultDirtBlock src/Dodge/Default/Block.hs 17;" f defaultDirtBlock src/Dodge/Default/Block.hs 17;" f
defaultDirtWall src/Dodge/Default/Wall.hs 47;" f defaultDirtWall src/Dodge/Default/Wall.hs 47;" f
defaultDoor src/Dodge/Default/Door.hs 5;" f defaultDoor src/Dodge/Default/Door.hs 5;" f
@@ -3133,19 +3134,19 @@ defaultDrawButton src/Dodge/Button/Draw.hs 29;" f
defaultFlIt src/Dodge/Default.hs 27;" f defaultFlIt src/Dodge/Default.hs 27;" f
defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f
defaultHUD src/Dodge/Default/World.hs 170;" f defaultHUD src/Dodge/Default/World.hs 170;" f
defaultInanimate src/Dodge/Default/Creature.hs 62;" f defaultInanimate src/Dodge/Default/Creature.hs 63;" f
defaultInput src/Dodge/Default/World.hs 12;" f defaultInput src/Dodge/Default/World.hs 12;" f
defaultIntention src/Dodge/Default/Creature.hs 98;" f defaultIntention src/Dodge/Default/Creature.hs 99;" f
defaultInvSize src/Dodge/Default/Creature.hs 72;" f defaultInvSize src/Dodge/Default/Creature.hs 73;" f
defaultLDP src/Dodge/ListDisplayParams.hs 19;" f defaultLDP src/Dodge/ListDisplayParams.hs 19;" f
defaultLWorld src/Dodge/Default/World.hs 105;" f defaultLWorld src/Dodge/Default/World.hs 105;" f
defaultMachine src/Dodge/Default.hs 30;" f defaultMachine src/Dodge/Default.hs 30;" f
defaultMachineWall src/Dodge/Default/Wall.hs 38;" f defaultMachineWall src/Dodge/Default/Wall.hs 38;" f
defaultPerceptionState src/Dodge/Default/Creature.hs 75;" f defaultPerceptionState src/Dodge/Default/Creature.hs 76;" f
defaultProximitySensor src/Dodge/Default.hs 52;" f defaultProximitySensor src/Dodge/Default.hs 52;" f
defaultRoom src/Dodge/Default/Room.hs 9;" f defaultRoom src/Dodge/Default/Room.hs 9;" f
defaultTerminal src/Dodge/Default/Terminal.hs 8;" f defaultTerminal src/Dodge/Default/Terminal.hs 8;" f
defaultVision src/Dodge/Default/Creature.hs 85;" f defaultVision src/Dodge/Default/Creature.hs 86;" f
defaultWall src/Dodge/Default/Wall.hs 15;" f defaultWall src/Dodge/Default/Wall.hs 15;" f
defaultWindow src/Dodge/Default/Wall.hs 54;" f defaultWindow src/Dodge/Default/Wall.hs 54;" f
defaultWorld src/Dodge/Default/World.hs 32;" f defaultWorld src/Dodge/Default/World.hs 32;" f
@@ -3157,15 +3158,16 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f
denormalEdges src/Polyhedra.hs 128;" f denormalEdges src/Polyhedra.hs 128;" f
destroyAllInvItems src/Dodge/Inventory.hs 53;" f destroyAllInvItems src/Dodge/Inventory.hs 53;" f
destroyBlock src/Dodge/Block.hs 17;" f destroyBlock src/Dodge/Block.hs 17;" f
destroyDoor src/Dodge/Wall/Damage.hs 69;" f destroyDoor src/Dodge/Wall/Damage.hs 84;" f
destroyInvItem src/Dodge/Inventory.hs 40;" f destroyInvItem src/Dodge/Inventory.hs 40;" f
destroyItem src/Dodge/Inventory.hs 62;" f destroyItem src/Dodge/Inventory.hs 62;" f
destroyLSFlashAt src/Dodge/LightSource.hs 44;" f destroyLSFlashAt src/Dodge/LightSource.hs 44;" f
destroyMachine src/Dodge/Machine/Destroy.hs 13;" f destroyMachine src/Dodge/Machine/Destroy.hs 13;" f
destroyMachine' src/Dodge/Wall/Damage.hs 50;" f
destroyMatS src/Dodge/Material/Sound.hs 7;" f 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/Wall/Damage.hs 90;" f destroyMount src/Dodge/Wall/Damage.hs 105;" f
destroyMounts src/Dodge/Wall/Damage.hs 87;" f destroyMounts src/Dodge/Wall/Damage.hs 102;" f
destroyProjectile src/Dodge/Projectile/Update.hs 112;" f destroyProjectile src/Dodge/Projectile/Update.hs 112;" f
detV src/Geometry/Vector.hs 94;" f detV src/Geometry/Vector.hs 94;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f detector src/Dodge/Item/Held/Utility.hs 27;" f
@@ -3317,7 +3319,7 @@ drawDragSelected src/Dodge/Render/HUD.hs 144;" f
drawDragSelecting src/Dodge/Render/HUD.hs 162;" f drawDragSelecting src/Dodge/Render/HUD.hs 162;" f
drawEmptySet src/Dodge/Render/Picture.hs 151;" f drawEmptySet src/Dodge/Render/Picture.hs 151;" f
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
drawEquipment src/Dodge/Creature/Picture.hs 128;" f drawEquipment src/Dodge/Creature/Picture.hs 125;" 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
@@ -3404,7 +3406,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 136;" f dropAll src/Dodge/Creature/Update.hs 134;" 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
@@ -4129,8 +4131,8 @@ maxInvSlots src/Dodge/Inventory/CheckSlots.hs 30;" f
maxViewDistance src/Dodge/Viewpoints.hs 26;" f maxViewDistance src/Dodge/Viewpoints.hs 26;" f
maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 59;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 74;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 64;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 79;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 568;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 568;" f
maybeOpenConsole src/Dodge/Update.hs 134;" f maybeOpenConsole src/Dodge/Update.hs 134;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f
@@ -4425,7 +4427,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 132;" f poisonSPic src/Dodge/Creature/Update.hs 130;" 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
@@ -4664,7 +4666,7 @@ renderListAt src/Dodge/Render/List.hs 177;" f
renderShadows src/Render.hs 116;" f renderShadows src/Render.hs 116;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 168;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 168;" f
replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 81;" f
resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 66;" f resetCrVocCoolDown src/Dodge/Creature/Vocalization.hs 67;" f
resetPLUse src/Dodge/PlacementSpot.hs 94;" f resetPLUse src/Dodge/PlacementSpot.hs 94;" f
resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f resetStride src/Dodge/Creature/State/WalkCycle.hs 25;" f
resetTerminal src/Dodge/WorldEffect.hs 160;" f resetTerminal src/Dodge/WorldEffect.hs 160;" f
@@ -4790,10 +4792,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 93;" f scalp src/Dodge/Creature/Picture.hs 95;" 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 129;" f scorchSPic src/Dodge/Creature/Update.hs 127;" 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
@@ -4940,7 +4942,7 @@ shortPoint2 src/Dodge/ShortShow.hs 4;" f
shortShow src/ShortShow.hs 7;" f shortShow src/ShortShow.hs 7;" f
shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 527;" f shotgunS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 527;" f
shoulderHeight src/Dodge/Item/HeldOffset.hs 63;" f shoulderHeight src/Dodge/Item/HeldOffset.hs 63;" f
shoulderSH src/Dodge/Creature/Picture.hs 125;" f shoulderSH src/Dodge/Creature/Picture.hs 122;" f
showAttachItem src/Dodge/Item/Display.hs 92;" f showAttachItem src/Dodge/Item/Display.hs 92;" f
showEquipItem src/Dodge/Item/Display.hs 107;" f showEquipItem src/Dodge/Item/Display.hs 107;" f
showInt src/Dodge/Item/Info.hs 75;" f showInt src/Dodge/Item/Info.hs 75;" f
@@ -5097,7 +5099,7 @@ stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 543;" f
stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 657;" f stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 657;" f
stopAllSounds src/Sound.hs 127;" f stopAllSounds src/Sound.hs 127;" f
stopBulletAt src/Dodge/Bullet.hs 200;" f stopBulletAt src/Dodge/Bullet.hs 200;" f
stopPushing src/Dodge/Wall/Damage.hs 95;" f stopPushing src/Dodge/Wall/Damage.hs 110;" f
stopSoundFrom src/Dodge/SoundLogic.hs 220;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f
storageShape src/Dodge/Machine/Draw.hs 31;" f storageShape src/Dodge/Machine/Draw.hs 31;" f
strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f
@@ -5248,7 +5250,7 @@ topTestPart src/Dodge/TestString.hs 50;" f
torchShape src/Dodge/Item/Draw/SPic.hs 277;" f torchShape src/Dodge/Item/Draw/SPic.hs 277;" f
torqueAmount src/Dodge/HeldUse.hs 584;" f torqueAmount src/Dodge/HeldUse.hs 584;" f
torqueCr src/Dodge/WorldEffect.hs 87;" f torqueCr src/Dodge/WorldEffect.hs 87;" f
torso src/Dodge/Creature/Picture.hs 103;" f torso src/Dodge/Creature/Picture.hs 100;" 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 831;" f tractorBeamAt src/Dodge/HeldUse.hs 831;" f
@@ -5435,7 +5437,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 184;" f updatePulse src/Dodge/Creature/Update.hs 180;" 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
@@ -5477,7 +5479,7 @@ updateWheelEvent src/Dodge/Update/Scroll.hs 21;" f
updateWheelEvents src/Dodge/Update.hs 449;" f updateWheelEvents src/Dodge/Update.hs 449;" f
updateWorldEventFlag src/Dodge/Update.hs 128;" f updateWorldEventFlag src/Dodge/Update.hs 128;" f
updateWorldEventFlags src/Dodge/Update.hs 116;" f updateWorldEventFlags src/Dodge/Update.hs 116;" f
upperBody src/Dodge/Creature/Picture.hs 121;" f upperBody src/Dodge/Creature/Picture.hs 118;" 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
@@ -5540,7 +5542,7 @@ 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
visionCheck src/Dodge/Creature/Perception.hs 152;" f visionCheck src/Dodge/Creature/Perception.hs 152;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 61;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 62;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 355;" f
walkNozzle src/Dodge/HeldUse.hs 807;" f walkNozzle src/Dodge/HeldUse.hs 807;" f
@@ -5635,7 +5637,7 @@ you src/Dodge/Base/You.hs 13;" f
youDropItem src/Dodge/Creature/Action.hs 177;" f youDropItem src/Dodge/Creature/Action.hs 177;" f
yourAugmentedItem src/Dodge/Render/HUD.hs 240;" f yourAugmentedItem src/Dodge/Render/HUD.hs 240;" f
yourControl src/Dodge/Creature/YourControl.hs 28;" f yourControl src/Dodge/Creature/YourControl.hs 28;" f
yourDefaultStrideLength src/Dodge/Default/Creature.hs 110;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 111;" f
yourInfo src/Dodge/Creature/Info.hs 10;" f yourInfo src/Dodge/Creature/Info.hs 10;" f
yourInv src/Dodge/Base/You.hs 28;" f yourInv src/Dodge/Base/You.hs 28;" f
yourRootItem src/Dodge/Base/You.hs 22;" f yourRootItem src/Dodge/Base/You.hs 22;" f