This commit is contained in:
2025-12-26 15:43:21 +00:00
parent 3c07069adc
commit 3f7eeb871c
5 changed files with 44 additions and 61 deletions
-1
View File
@@ -19,7 +19,6 @@ data SensorType
data DamageSensor = DamSensor data DamageSensor = DamSensor
{ _sensAmount :: Int { _sensAmount :: Int
, _sensType :: SensorType , _sensType :: SensorType
, _sensThreshold :: Int
} }
data ProximitySensor = ProxSensor data ProximitySensor = ProxSensor
+9 -4
View File
@@ -120,7 +120,7 @@ mcUseItem mc w = fromMaybe w $ do
mcDamSensorTriggerUpdate :: DamageSensor -> Machine -> World -> World mcDamSensorTriggerUpdate :: DamageSensor -> Machine -> World -> World
mcDamSensorTriggerUpdate se mc = fromMaybe id $ do mcDamSensorTriggerUpdate se mc = fromMaybe id $ do
trid <- mc ^? mcMounts . ix OTTrigger trid <- mc ^? mcMounts . ix OTTrigger
bval <- mcTriggerVal se let bval = se ^. sensAmount > damageTypeThreshold (se ^. sensType)
return $ cWorld . lWorld . triggers . ix trid ||~ bval return $ cWorld . lWorld . triggers . ix trid ||~ bval
mcProxSensorTriggerUpdate :: ProximitySensor -> Machine -> World -> World mcProxSensorTriggerUpdate :: ProximitySensor -> Machine -> World -> World
@@ -129,8 +129,13 @@ mcProxSensorTriggerUpdate se mc = fromMaybe id $ do
bval <- se ^? proxToggle . _Just bval <- se ^? proxToggle . _Just
return $ cWorld . lWorld . triggers . at trid ?~ bval return $ cWorld . lWorld . triggers . at trid ?~ bval
mcTriggerVal :: DamageSensor -> Maybe Bool damageTypeThreshold :: SensorType -> Int
mcTriggerVal se = Just $ _sensAmount se > _sensThreshold se damageTypeThreshold = \case
LaserSensor -> 1000
ElectricSensor -> 500
ThermalSensor -> 1000
PhysicalSensor -> 1000
mcPlaySound :: Machine -> World -> World mcPlaySound :: Machine -> World -> World
mcPlaySound mc w = fromMaybe w $ do mcPlaySound mc w = fromMaybe w $ do
@@ -167,7 +172,7 @@ mcApplyDamage ds mc = case mc ^? mcType . _McDamSensor of
mcpointer = cWorld . lWorld . machines . ix (_mcID mc) mcpointer = cWorld . lWorld . machines . ix (_mcID mc)
mcDamSensorUpdate :: DamageSensor -> Machine -> World -> World mcDamSensorUpdate :: DamageSensor -> Machine -> World -> World
mcDamSensorUpdate se = senseDamage (_sensThreshold se) (_sensType se) mcDamSensorUpdate se = senseDamage (damageTypeThreshold (se ^. sensType)) (se ^. sensType)
mcProxSensorUpdate :: ProximitySensor -> Machine -> World -> World mcProxSensorUpdate :: ProximitySensor -> Machine -> World -> World
mcProxSensorUpdate se mc = case se ^. proxSensorType of mcProxSensorUpdate se mc = case se ^. proxSensorType of
+3 -19
View File
@@ -1,3 +1,4 @@
{-# LANGUAGE LambdaCase #-}
module Dodge.Placement.Instance.Sensor ( module Dodge.Placement.Instance.Sensor (
lightSensor, lightSensor,
damageSensor, damageSensor,
@@ -17,29 +18,12 @@ damageSensor dt wdth mtrid ps = pContID ps (PutLS $ lsPosCol (V3 0 0 30) 0.1) $
PutMachine PutMachine
(reverse $ square wdth) (reverse $ square wdth)
( defaultMachine ( defaultMachine
-- & mcColor .~ yellow
& mcMounts . at OTTrigger .~ mtrid & mcMounts . at OTTrigger .~ mtrid
& mcMounts . at OTLightSource ?~ lsid & mcMounts . at OTLightSource ?~ lsid
& mcType & mcType
.~ McDamSensor .~ McDamSensor ( DamSensor 0 dt)
( DamSensor
0
dt
(damageTypeThreshold dt)
)
) )
Nothing Nothing
damageTypeThreshold :: SensorType -> Int lightSensor :: Float -> Maybe Int -> PlacementSpot -> Placement
damageTypeThreshold dt = case dt of
LaserSensor -> 1000
ElectricSensor -> 500
ThermalSensor -> 1000
PhysicalSensor -> 1000
lightSensor ::
Float ->
Maybe Int ->
PlacementSpot ->
Placement
lightSensor = damageSensor LaserSensor lightSensor = damageSensor LaserSensor
+5 -10
View File
@@ -51,16 +51,11 @@ putTerminalFull f mc tm =
putTerminal :: Machine -> Terminal -> Placement putTerminal :: Machine -> Terminal -> Placement
putTerminal = putTerminalFull (\_ _ _ -> Nothing) putTerminal = putTerminalFull (\_ _ _ -> Nothing)
tmMachine :: Machine
tmMachine = defaultMachine & mcType .~ McTerminal & mcHP .~ 100
putMessageTerminal :: Terminal -> Placement putMessageTerminal :: Terminal -> Placement
putMessageTerminal = putMessageTerminal = putTerminal tmMachine
putTerminal $
defaultMachine
& mcType .~ McTerminal
& mcHP .~ 100
putImmediateMessageTerminal :: Terminal -> Placement putImmediateMessageTerminal :: Terminal -> Placement
putImmediateMessageTerminal = putImmediateMessageTerminal = putTerminalImediateAccess tmMachine
putTerminalImediateAccess $
defaultMachine
& mcType .~ McTerminal
& mcHP .~ 100
+27 -27
View File
@@ -2257,7 +2257,6 @@ _seObstacles src/Dodge/Data/PathGraph.hs 45;" f
_seenLocations src/Dodge/Data/LWorld.hs 136;" f _seenLocations src/Dodge/Data/LWorld.hs 136;" f
_selLocation src/Dodge/Data/LWorld.hs 137;" f _selLocation src/Dodge/Data/LWorld.hs 137;" f
_sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f _sensAmount src/Dodge/Data/Machine/Sensor.hs 20;" f
_sensThreshold src/Dodge/Data/Machine/Sensor.hs 22;" f
_sensType src/Dodge/Data/Machine/Sensor.hs 21;" f _sensType src/Dodge/Data/Machine/Sensor.hs 21;" f
_sensorCoding src/Dodge/Data/GenParams.hs 14;" f _sensorCoding src/Dodge/Data/GenParams.hs 14;" f
_sentinelDir src/Dodge/Data/ActionPlan.hs 152;" f _sentinelDir src/Dodge/Data/ActionPlan.hs 152;" f
@@ -2521,7 +2520,7 @@ addButtonSlowDoor src/Dodge/Room/LongDoor.hs 96;" f
addCrGibs src/Dodge/Prop/Gib.hs 17;" f addCrGibs src/Dodge/Prop/Gib.hs 17;" f
addDepth src/Picture/Base.hs 136;" f addDepth src/Picture/Base.hs 136;" f
addDoorAtNthLinkToggleInterrupt src/Dodge/Room/Warning.hs 41;" f addDoorAtNthLinkToggleInterrupt src/Dodge/Room/Warning.hs 41;" f
addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 65;" f addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 66;" f
addDoorToggleTerminal src/Dodge/Room/Warning.hs 38;" f addDoorToggleTerminal src/Dodge/Room/Warning.hs 38;" f
addGib4 src/Dodge/Prop/Gib.hs 52;" f addGib4 src/Dodge/Prop/Gib.hs 52;" f
addGibAt src/Dodge/Prop/Gib.hs 63;" f addGibAt src/Dodge/Prop/Gib.hs 63;" f
@@ -2548,7 +2547,7 @@ addSideEffect src/Dodge/Concurrent.hs 29;" f
addSouthPillars src/Dodge/Room/LongDoor.hs 88;" f addSouthPillars src/Dodge/Room/LongDoor.hs 88;" f
addTermSignal src/Dodge/Event/Input.hs 31;" f addTermSignal src/Dodge/Event/Input.hs 31;" f
addToTrunk src/TreeHelp.hs 157;" f addToTrunk src/TreeHelp.hs 157;" f
addWarningTerminal src/Dodge/Room/Warning.hs 87;" f addWarningTerminal src/Dodge/Room/Warning.hs 88;" f
addZ src/Geometry/Vector3D.hs 89;" f addZ src/Geometry/Vector3D.hs 89;" f
adjustIMZone src/Dodge/Base.hs 81;" f adjustIMZone src/Dodge/Base.hs 81;" f
advanceScrollAmount src/Dodge/Update.hs 422;" f advanceScrollAmount src/Dodge/Update.hs 422;" f
@@ -3047,10 +3046,10 @@ damageGlassBlock src/Dodge/Wall/Damage.hs 49;" 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
damageMetal src/Dodge/Material/Damage.hs 64;" f damageMetal src/Dodge/Material/Damage.hs 64;" f
damageSensor src/Dodge/Placement/Instance/Sensor.hs 13;" f damageSensor src/Dodge/Placement/Instance/Sensor.hs 14;" 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/Placement/Instance/Sensor.hs 33;" f damageTypeThreshold src/Dodge/Machine/Update.hs 135;" f
damageWall src/Dodge/Wall/Damage.hs 29;" f damageWall src/Dodge/Wall/Damage.hs 29;" 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
@@ -3601,8 +3600,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 539;" f
getCommand src/Dodge/Terminal.hs 52;" f getCommand src/Dodge/Terminal.hs 52;" f
getCommands src/Dodge/Terminal.hs 49;" f getCommands src/Dodge/Terminal.hs 49;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 346;" f getCrsFromRooms src/Dodge/Room/Tutorial.hs 349;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 333;" f getCrsFromRooms' src/Dodge/Room/Tutorial.hs 336;" f
getDebugMouseOver src/Dodge/Update.hs 392;" f getDebugMouseOver src/Dodge/Update.hs 392;" f
getDistortions src/Dodge/Render.hs 441;" f getDistortions src/Dodge/Render.hs 441;" f
getEdgesCrossing src/Dodge/Path.hs 37;" f getEdgesCrossing src/Dodge/Path.hs 37;" f
@@ -3619,7 +3618,7 @@ getNodePos src/Dodge/Path.hs 34;" f
getPJStabiliser src/Dodge/HeldUse.hs 1243;" f getPJStabiliser src/Dodge/HeldUse.hs 1243;" f
getPretty src/AesonHelp.hs 8;" f getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 329;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 332;" f
getRootItemBounds src/Dodge/Render/HUD.hs 102;" f getRootItemBounds src/Dodge/Render/HUD.hs 102;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3985,7 +3984,7 @@ liShape src/Dodge/Placement/Instance/LightSource.hs 79;" f
light src/Color.hs 131;" f light src/Color.hs 131;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 60;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 60;" f
lightSensInsideDoor src/Dodge/Room/LasTurret.hs 48;" f lightSensInsideDoor src/Dodge/Room/LasTurret.hs 48;" f
lightSensor src/Dodge/Placement/Instance/Sensor.hs 40;" f lightSensor src/Dodge/Placement/Instance/Sensor.hs 28;" f
lightsToRender src/Dodge/Render/Lights.hs 14;" f lightsToRender src/Dodge/Render/Lights.hs 14;" f
lightx4 src/Color.hs 155;" f lightx4 src/Color.hs 155;" f
linGrad src/Geometry/Intersect.hs 241;" f linGrad src/Geometry/Intersect.hs 241;" f
@@ -3994,7 +3993,7 @@ lineCol src/Picture/Base.hs 245;" f
lineGeom src/Dodge/Base.hs 32;" f lineGeom src/Dodge/Base.hs 32;" f
lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f lineOnScreenCone src/Dodge/Debug/Picture.hs 60;" f
lineOrth src/Dodge/Creature/Boid.hs 128;" f lineOrth src/Dodge/Creature/Boid.hs 128;" f
lineOutputTerminal src/Dodge/Room/Warning.hs 92;" f lineOutputTerminal src/Dodge/Room/Warning.hs 93;" f
lineSplit src/Justify.hs 26;" f lineSplit src/Justify.hs 26;" f
lineThick src/Picture/Base.hs 249;" f lineThick src/Picture/Base.hs 249;" f
lineUp src/Dodge/Creature/Boid.hs 150;" f lineUp src/Dodge/Creature/Boid.hs 150;" f
@@ -4136,19 +4135,19 @@ maybeOpenConsole src/Dodge/Update.hs 127;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 116;" f maybeTakeOne src/RandomHelp.hs 116;" f
maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f maybeWarmupStatus src/Dodge/Item/Display.hs 45;" f
mcApplyDamage src/Dodge/Machine/Update.hs 162;" f mcApplyDamage src/Dodge/Machine/Update.hs 170;" f
mcBackgroundSound src/Dodge/Machine/Update.hs 151;" f mcBackgroundSound src/Dodge/Machine/Update.hs 159;" f
mcColor src/Dodge/Machine/Draw.hs 82;" f mcColor src/Dodge/Machine/Draw.hs 82;" f
mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 120;" f mcDamSensorTriggerUpdate src/Dodge/Machine/Update.hs 120;" f
mcDamSensorUpdate src/Dodge/Machine/Update.hs 169;" f mcDamSensorUpdate src/Dodge/Machine/Update.hs 177;" f
mcKillBut src/Dodge/Machine/Destroy.hs 38;" f mcKillBut src/Dodge/Machine/Destroy.hs 38;" f
mcKillTerm src/Dodge/Machine/Destroy.hs 30;" f mcKillTerm src/Dodge/Machine/Destroy.hs 30;" f
mcNoItemsTest src/Dodge/Machine/Update.hs 177;" f mcNoItemsTest src/Dodge/Machine/Update.hs 185;" f
mcPlaySound src/Dodge/Machine/Update.hs 135;" f mcPlaySound src/Dodge/Machine/Update.hs 143;" f
mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 126;" f mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 126;" f
mcProxSensorUpdate src/Dodge/Machine/Update.hs 172;" f mcProxSensorUpdate src/Dodge/Machine/Update.hs 180;" f
mcProxTest src/Dodge/Machine/Update.hs 253;" f mcProxTest src/Dodge/Machine/Update.hs 261;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 214;" f mcProximitySensorUpdate src/Dodge/Machine/Update.hs 222;" f
mcSPic src/Dodge/Render/ShapePicture.hs 134;" f mcSPic src/Dodge/Render/ShapePicture.hs 134;" f
mcShootAuto src/Dodge/HeldUse.hs 1161;" f mcShootAuto src/Dodge/HeldUse.hs 1161;" f
mcShootLaser src/Dodge/HeldUse.hs 1154;" f mcShootLaser src/Dodge/HeldUse.hs 1154;" f
@@ -4230,7 +4229,7 @@ moveProjectile src/Dodge/Projectile/Update.hs 210;" 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 197;" f moveStuckGrenade src/Dodge/Projectile/Update.hs 197;" f
moveToSideNthOutLink src/Dodge/Room/Warning.hs 95;" f moveToSideNthOutLink src/Dodge/Room/Warning.hs 96;" 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
@@ -4546,13 +4545,13 @@ putBlockV src/Dodge/Placement/Instance/Wall.hs 114;" f
putDoor src/Dodge/Room/Airlock.hs 114;" f putDoor src/Dodge/Room/Airlock.hs 114;" f
putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f putDoubleDoor src/Dodge/Placement/Instance/Door.hs 17;" f
putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 21;" f
putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 61;" f putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 60;" f
putLamp src/Dodge/Placement/Instance/LightSource.hs 199;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 199;" f
putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f putLitButOnPos src/Dodge/Placement/Instance/Button.hs 65;" f
putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 98;" f putLitButOnPosExtTrig src/Dodge/Placement/Instance/Button.hs 98;" f
putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 101;" f putLitButOnPosExtTrig' src/Dodge/Placement/Instance/Button.hs 101;" f
putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 54;" f putMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 57;" f
putShape src/Dodge/Room/Foreground.hs 134;" f putShape src/Dodge/Room/Foreground.hs 134;" f
putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f putSlideDr src/Dodge/Door/PutSlideDoor.hs 12;" f
putStrLnAppend src/Dodge/LevelGen.hs 82;" f putStrLnAppend src/Dodge/LevelGen.hs 82;" f
@@ -4822,13 +4821,13 @@ selSecYint src/Dodge/SelectionSections.hs 152;" f
selectedItemScroll src/Dodge/Update/Scroll.hs 51;" f selectedItemScroll src/Dodge/Update/Scroll.hs 51;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 53;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 53;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 59;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 59;" f
senseDamage src/Dodge/Machine/Update.hs 269;" f senseDamage src/Dodge/Machine/Update.hs 277;" f
sensorReqToString src/Dodge/Machine/Update.hs 247;" f sensorReqToString src/Dodge/Machine/Update.hs 255;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f
sensorSPic src/Dodge/Machine/Draw.hs 99;" f sensorSPic src/Dodge/Machine/Draw.hs 99;" f
sensorTut src/Dodge/Room/Tutorial.hs 355;" f sensorTut src/Dodge/Room/Tutorial.hs 358;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 293;" f sensorTypeDamages src/Dodge/Machine/Update.hs 301;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 82;" f
sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f sentinelFireType src/Dodge/Creature/SentinelAI.hs 49;" f
@@ -5192,6 +5191,7 @@ tlDoEffect src/Dodge/Terminal.hs 109;" f
tlSetStatus src/Dodge/Terminal.hs 106;" f tlSetStatus src/Dodge/Terminal.hs 106;" f
tmDistributeAmmo src/Dodge/WorldEffect.hs 117;" f tmDistributeAmmo src/Dodge/WorldEffect.hs 117;" f
tmDistributeLines src/Dodge/Room/Room.hs 449;" f tmDistributeLines src/Dodge/Room/Room.hs 449;" f
tmMachine src/Dodge/Placement/Instance/Terminal.hs 54;" f
tmUpdate src/Dodge/Update.hs 490;" f tmUpdate src/Dodge/Update.hs 490;" f
toBinary src/Dodge/Inventory/SelectionList.hs 144;" f toBinary src/Dodge/Inventory/SelectionList.hs 144;" f
toBothLnk src/Dodge/RoomLink.hs 136;" f toBothLnk src/Dodge/RoomLink.hs 136;" f
@@ -5294,9 +5294,9 @@ tutAnoTree src/Dodge/Room/Tutorial.hs 47;" f
tutDrop src/Dodge/Room/Tutorial.hs 94;" f tutDrop src/Dodge/Room/Tutorial.hs 94;" f
tutHub src/Dodge/Room/Tutorial.hs 254;" f tutHub src/Dodge/Room/Tutorial.hs 254;" f
tutLight src/Dodge/Room/Tutorial.hs 219;" f tutLight src/Dodge/Room/Tutorial.hs 219;" f
tutRezBox src/Dodge/Room/Tutorial.hs 366;" f tutRezBox src/Dodge/Room/Tutorial.hs 369;" f
tutRoomTree src/Dodge/Floor.hs 21;" f tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 389;" f tutorialMessage1 src/Dodge/Room/Tutorial.hs 392;" f
tweenAngles src/Geometry/Vector.hs 190;" f tweenAngles src/Geometry/Vector.hs 190;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 79;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 34;" f