Automatically determine automatic doors

This commit is contained in:
2025-10-24 21:08:41 +01:00
parent f94b914ceb
commit 6457f00ba7
8 changed files with 100 additions and 105 deletions
+2 -2
View File
@@ -52,8 +52,8 @@ data PSType
, _putEndPoint :: Point2 , _putEndPoint :: Point2
} }
| PutWall {_pwPoly :: [Point2], _pwWall :: Wall} | PutWall {_pwPoly :: [Point2], _pwWall :: Wall}
| PutSlideDr Bool Door Wall Float Point2 Point2 | PutSlideDr Door Wall Float Point2 Point2
| PutDoor Bool WdBl Float Point2A Point2A | PutDoor WdBl Float Point2A Point2A
| RandPS (State StdGen PSType) | RandPS (State StdGen PSType)
| PutForeground ForegroundShape | PutForeground ForegroundShape
| PutWorldUpdate (Int -> PlacementSpot -> GenWorld -> GenWorld) | PutWorldUpdate (Int -> PlacementSpot -> GenWorld -> GenWorld)
+6 -4
View File
@@ -4,6 +4,7 @@ module Dodge.Placement.Instance.Door (
putDoubleDoorThen, putDoubleDoorThen,
) where ) where
import Linear
import Control.Lens import Control.Lens
import Dodge.Data.CreatureEffect import Dodge.Data.CreatureEffect
import Dodge.Data.GenWorld import Dodge.Data.GenWorld
@@ -52,7 +53,7 @@ doorBetween ::
(Placement -> Maybe Placement) -> (Placement -> Maybe Placement) ->
Placement Placement
doorBetween isauto wl cond soff pa pb speed g = case divideLine 40 pa pb of doorBetween isauto wl cond soff pa pb speed g = case divideLine 40 pa pb of
[x, y] -> ptCont (PutSlideDr isauto adoor wl soff x y) g [x, y] -> ptCont (PutSlideDr adoor wl soff x y) g
(x : y : zs) -> divideDoorPane isauto Nothing wl cond (soff - dist y pb) speed (zip (x : y : zs) (y : zs)) g (x : y : zs) -> divideDoorPane isauto Nothing wl cond (soff - dist y pb) speed (zip (x : y : zs) (y : zs)) g
_ -> undefined _ -> undefined
where where
@@ -76,7 +77,7 @@ divideDoorPane isauto mid wl cond soff speed ppairs g = case ppairs of
(p : ps) -> ptCont (adoor p) $ \pl -> Just $ divideDoorPane isauto (_plMID pl) wl cond soff speed ps g (p : ps) -> ptCont (adoor p) $ \pl -> Just $ divideDoorPane isauto (_plMID pl) wl cond soff speed ps g
_ -> undefined _ -> undefined
where where
adoor (x, y) = PutSlideDr isauto thedoor wl soff x y adoor (x, y) = PutSlideDr thedoor wl soff x y
thedoor = thedoor =
defaultDoor & drUpdate . drLerpSpeed .~ speed & drTrigger .~ cond defaultDoor & drUpdate . drLerpSpeed .~ speed & drTrigger .~ cond
& drPushedBy .~ maybe PushesItself PushedBy mid & drPushedBy .~ maybe PushesItself PushedBy mid
@@ -88,9 +89,10 @@ putAutoDoor a b = Placement (PS 0 0) (PutCoord a) Nothing Nothing $ \_ apl ->
let x = w ^?! gwWorld . coordinates . ix (apl ^?! plMID . _Just) let x = w ^?! gwWorld . coordinates . ix (apl ^?! plMID . _Just)
y = w ^?! gwWorld . coordinates . ix (bpl ^?! plMID . _Just) y = w ^?! gwWorld . coordinates . ix (bpl ^?! plMID . _Just)
in Just $ in Just $
putDoubleDoor True putDoubleDoor
True
defaultAutoWall defaultAutoWall
(WdBlCrFilterNearPoint 40 (0.5 *.* (x + y)) CrIsAnimate) (WdBlCrFilterNearPoint 40 (0.5 *^ (x + y)) CrIsAnimate)
a a
b b
3 3
+3 -3
View File
@@ -134,10 +134,10 @@ placeSpotID rid ps pt w = case pt of
PutMachine pps mc mitm -> plMachine (map doShift pps) mc mitm p rot w PutMachine pps mc mitm -> plMachine (map doShift pps) mc mitm p rot w
PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p' rot ls) w PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p' rot ls) w
RandPS _ -> error "RandPS should not be reachable here" --evaluateRandPS rid rgn ps w RandPS _ -> error "RandPS should not be reachable here" --evaluateRandPS rid rgn ps w
PutDoor isauto f l p1 p2 -> plDoor isauto f l (pashift p1) (pashift p2) w PutDoor f l p1 p2 -> plDoor f l (pashift p1) (pashift p2) w
PutCoord cp -> plNewID (gwWorld . coordinates) (doShift cp) w PutCoord cp -> plNewID (gwWorld . coordinates) (doShift cp) w
PutSlideDr isauto wl dr off a b -> PutSlideDr wl dr off a b ->
plSlideDoor isauto wl dr off (doShift a) (doShift b) w plSlideDoor wl dr off (doShift a) (doShift b) w
PutBlock bl wl ps' -> PutBlock bl wl ps' ->
plBlock plBlock
(map doShift ps') (map doShift ps')
+8 -7
View File
@@ -3,12 +3,10 @@ module Dodge.Placement.PlaceSpot.TriggerDoor (
plSlideDoor, plSlideDoor,
) where ) where
--import Data.List
import Dodge.Data.GenWorld import Dodge.Data.GenWorld
import Dodge.Default.Door import Dodge.Default.Door
import Dodge.Default.Wall import Dodge.Default.Wall
import Dodge.LevelGen.DoorPane import Dodge.LevelGen.DoorPane
--import Dodge.Path
import Dodge.Placement.PlaceSpot.Block import Dodge.Placement.PlaceSpot.Block
import Dodge.ShiftPoint import Dodge.ShiftPoint
import Geometry import Geometry
@@ -17,8 +15,6 @@ import LensHelp
import Linear import Linear
plDoor :: plDoor ::
-- | Is door automatic?
Bool ->
-- | Opening condition -- | Opening condition
WdBl -> WdBl ->
-- | Door positions, closed to open. -- | Door positions, closed to open.
@@ -28,12 +24,15 @@ plDoor ::
Point2A -> Point2A ->
GenWorld -> GenWorld ->
(Int, GenWorld) (Int, GenWorld)
plDoor isauto cond l p1 p2 gw = plDoor cond l p1 p2 gw =
( drid ( drid
, over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors . at drid ?~ addDoor , over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors . at drid ?~ addDoor
-- carefull with the ordering of addWalls -- carefull with the ordering of addWalls
) )
where where
isauto = case cond of
WdBlCrFilterNearPoint{} -> True
_ -> False
drid = IM.newKey $ _doors (_lWorld (_cWorld $ _gwWorld gw)) drid = IM.newKey $ _doors (_lWorld (_cWorld $ _gwWorld gw))
addDoor = addDoor =
defaultDoor defaultDoor
@@ -83,7 +82,6 @@ plDoor isauto cond l p1 p2 gw =
-- w' = uncurry (obstructPathsCrossing eo) wlps w -- w' = uncurry (obstructPathsCrossing eo) wlps w
plSlideDoor :: plSlideDoor ::
Bool ->
Door -> Door ->
Wall -> Wall ->
Float -> Float ->
@@ -91,10 +89,13 @@ plSlideDoor ::
Point2 -> Point2 ->
GenWorld -> GenWorld ->
(Int, GenWorld) (Int, GenWorld)
plSlideDoor isauto dr wl shiftOffset a b gw = plSlideDoor dr wl shiftOffset a b gw =
--(drid, over gwWorld addDoorWalls $ gw & gwWorld . cWorld . lWorld . doors %~ addDoor) --(drid, over gwWorld addDoorWalls $ gw & gwWorld . cWorld . lWorld . doors %~ addDoor)
(drid, over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors %~ addDoor) (drid, over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors %~ addDoor)
where where
isauto = case dr ^. drTrigger of
WdBlCrFilterNearPoint{} -> True
_ -> False
drid = IM.newKey $ _doors (_lWorld (_cWorld $ _gwWorld gw)) drid = IM.newKey $ _doors (_lWorld (_cWorld $ _gwWorld gw))
addDoor = addDoor =
IM.insert drid $ IM.insert drid $
+4 -7
View File
@@ -95,9 +95,6 @@ airlock0 =
] ]
col = dim $ dim $ bright red col = dim $ dim $ bright red
airlockDoor :: WdBl -> Float -> Point2A -> Point2A -> PSType
airlockDoor = PutDoor False
airlockDoubleDoor :: airlockDoubleDoor ::
Point2 -> Point2 ->
Point2 -> Point2 ->
@@ -110,8 +107,8 @@ airlockDoubleDoor ::
Point2A -> Point2A ->
Maybe Placement Maybe Placement
airlockDoubleDoor p1 p2 cond l1 x1 y1 l2 x2 y2 = airlockDoubleDoor p1 p2 cond l1 x1 y1 l2 x2 y2 =
jspsJ p1 0 (airlockDoor cond l1 x1 y1) $ jspsJ p1 0 (PutDoor cond l1 x1 y1) $
sPS p2 0 (airlockDoor cond l2 x2 y2) sPS p2 0 (PutDoor cond l2 x2 y2)
airlockSimple :: Room airlockSimple :: Room
airlockSimple = airlockSimple =
@@ -217,7 +214,7 @@ airlock90 =
[ pContID [ pContID
(PS (V2 120 120) (3 * pi / 4)) (PS (V2 120 120) (3 * pi / 4))
(PutButton $ makeSwitch col red NoWorldEffect NoWorldEffect) (PutButton $ makeSwitch col red NoWorldEffect NoWorldEffect)
$ \btid -> jsps (V2 5 5) 0 $ airlockDoor (WdBlBtOn btid) l1 x1 y1 $ \btid -> jsps (V2 5 5) 0 $ PutDoor (WdBlBtOn btid) l1 x1 y1
, mntLS vShape (V2 35 35) (V3 70 70 50) , mntLS vShape (V2 35 35) (V3 70 70 50)
] ]
, _rmBound = , _rmBound =
@@ -251,7 +248,7 @@ airlockCrystal =
[ pContID [ pContID
(PS (V2 145 70) (pi / 2)) (PS (V2 145 70) (pi / 2))
(PutButton $ makeSwitch col red NoWorldEffect NoWorldEffect) (PutButton $ makeSwitch col red NoWorldEffect NoWorldEffect)
$ \btid -> jsps (V2 40 70) 0 $ airlockDoor (WdBlBtOn btid) l1 x1 y1 $ \btid -> jsps (V2 40 70) 0 $ PutDoor (WdBlBtOn btid) l1 x1 y1
, crystalLine (V2 0 70) (V2 40 70) , crystalLine (V2 0 70) (V2 40 70)
, mntLS vShape (V2 150 70) (V3 110 70 70) , mntLS vShape (V2 150 70) (V3 110 70 70)
] ]
+2 -2
View File
@@ -48,8 +48,8 @@ twinSlowDoorRoom w h x =
, _rmPath = mempty , _rmPath = mempty
, _rmPmnts = , _rmPmnts =
[ pContID (PS (V2 0 (h -5)) pi) (PutButton $ makeButton col NoWorldEffect) $ [ pContID (PS (V2 0 (h -5)) pi) (PutButton $ makeButton col NoWorldEffect) $
\btid -> jsps0J (PutSlideDr False (thedoor btid) thewall 1 (V2 x 1) (V2 x h)) $ \btid -> jsps0J (PutSlideDr (thedoor btid) thewall 1 (V2 x 1) (V2 x h)) $
ps0 (PutSlideDr False (thedoor btid) thewall 1 (V2 (- x) 1) (V2 (- x) h)) $ ps0 (PutSlideDr (thedoor btid) thewall 1 (V2 (- x) 1) (V2 (- x) h)) $
\did -> jps0' (PutLS (lsColPos (V3 0.75 0 0) (V3 0 (h -1) lampheight))) $ \did -> jps0' (PutLS (lsColPos (V3 0.75 0 0) (V3 0 (h -1) lampheight))) $
\lspl -> jsps0 $ PutProp $ addColorChange (fromJust $ _plMID lspl) did $ lampCoverWhen (WdBlDoorMoving did) (V2 0 (h -1)) lampheight \lspl -> jsps0 $ PutProp $ addColorChange (fromJust $ _plMID lspl) did $ lampCoverWhen (WdBlDoorMoving did) (V2 0 (h -1)) lampheight
] ]
+2 -2
View File
@@ -328,8 +328,8 @@ centerVaultRoom w h d =
theDoor = theDoor =
[ pContID (PS (V2 35 (d + 4)) 0) (PutButton $ makeSwitch col red NoWorldEffect NoWorldEffect) $ [ pContID (PS (V2 35 (d + 4)) 0) (PutButton $ makeSwitch col red NoWorldEffect NoWorldEffect) $
\btid -> \btid ->
jspsJ (V2 0 (d -10)) 0 (PutSlideDr False (thedoor btid) thewall 1 (V2 (-21) 0) (V2 0 0)) $ jspsJ (V2 0 (d -10)) 0 (PutSlideDr (thedoor btid) thewall 1 (V2 (-21) 0) (V2 0 0)) $
sPS (V2 0 (d -10)) 0 (PutSlideDr False (thedoor btid) thewall 1 (V2 21 0) (V2 0 0)) sPS (V2 0 (d -10)) 0 (PutSlideDr (thedoor btid) thewall 1 (V2 21 0) (V2 0 0))
] ]
--thewall = switchWallCol col --thewall = switchWallCol col
thewall = defaultDoorWall thewall = defaultDoorWall
+73 -78
View File
@@ -939,10 +939,10 @@ POISONSPRAYER src/Dodge/Data/Item/Combine.hs 172;" C
PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 87;" C PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 87;" C
POWERLEGS src/Dodge/Data/Item/Combine.hs 128;" C POWERLEGS src/Dodge/Data/Item/Combine.hs 128;" C
PRISM src/Dodge/Data/Item/Combine.hs 65;" C PRISM src/Dodge/Data/Item/Combine.hs 65;" C
PS src/Dodge/Data/GenWorld.hs 95;" C PS src/Dodge/Data/GenWorld.hs 94;" C
PSNoShiftCont src/Dodge/Data/GenWorld.hs 96;" C PSNoShiftCont src/Dodge/Data/GenWorld.hs 95;" C
PSPos src/Dodge/Data/GenWorld.hs 97;" C PSPos src/Dodge/Data/GenWorld.hs 96;" C
PSRoomRand src/Dodge/Data/GenWorld.hs 102;" C PSRoomRand src/Dodge/Data/GenWorld.hs 101;" C
PSType src/Dodge/Data/GenWorld.hs 31;" t PSType src/Dodge/Data/GenWorld.hs 31;" t
PUMP src/Dodge/Data/Item/Combine.hs 62;" C PUMP src/Dodge/Data/Item/Combine.hs 62;" C
PaletteColor src/Color/Data.hs 11;" t PaletteColor src/Color/Data.hs 11;" t
@@ -962,8 +962,8 @@ PhysicalSensor src/Dodge/Data/Machine/Sensor.hs 16;" C
Picture src/Picture/Data.hs 44;" t Picture src/Picture/Data.hs 44;" t
Piercing src/Dodge/Data/Damage.hs 16;" C Piercing src/Dodge/Data/Damage.hs 16;" C
PistolAI src/Dodge/Data/Creature/Misc.hs 41;" C PistolAI src/Dodge/Data/Creature/Misc.hs 41;" C
Placement src/Dodge/Data/GenWorld.hs 108;" t Placement src/Dodge/Data/GenWorld.hs 107;" t
PlacementSpot src/Dodge/Data/GenWorld.hs 94;" t PlacementSpot src/Dodge/Data/GenWorld.hs 93;" t
PlainBarrel src/Dodge/Data/Creature/Misc.hs 86;" C PlainBarrel src/Dodge/Data/Creature/Misc.hs 86;" C
PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C
PlayStatus src/Sound/Data.hs 21;" t PlayStatus src/Sound/Data.hs 21;" t
@@ -1029,26 +1029,26 @@ PushedBy src/Dodge/Data/Door.hs 25;" C
PushesItself src/Dodge/Data/Door.hs 24;" C PushesItself src/Dodge/Data/Door.hs 24;" C
PutBlock src/Dodge/Data/GenWorld.hs 44;" C PutBlock src/Dodge/Data/GenWorld.hs 44;" C
PutButton src/Dodge/Data/GenWorld.hs 40;" C PutButton src/Dodge/Data/GenWorld.hs 40;" C
PutChasm src/Dodge/Data/GenWorld.hs 63;" C PutChasm src/Dodge/Data/GenWorld.hs 62;" C
PutCoord src/Dodge/Data/GenWorld.hs 45;" C PutCoord src/Dodge/Data/GenWorld.hs 45;" C
PutCrit src/Dodge/Data/GenWorld.hs 32;" C PutCrit src/Dodge/Data/GenWorld.hs 32;" C
PutDoor src/Dodge/Data/GenWorld.hs 57;" C PutDoor src/Dodge/Data/GenWorld.hs 56;" C
PutFlIt src/Dodge/Data/GenWorld.hs 43;" C PutFlIt src/Dodge/Data/GenWorld.hs 43;" C
PutForeground src/Dodge/Data/GenWorld.hs 59;" C PutForeground src/Dodge/Data/GenWorld.hs 58;" C
PutID src/Dodge/Data/GenWorld.hs 62;" C PutID src/Dodge/Data/GenWorld.hs 61;" C
PutLS src/Dodge/Data/GenWorld.hs 39;" C PutLS src/Dodge/Data/GenWorld.hs 39;" C
PutLabel src/Dodge/Data/GenWorld.hs 64;" C PutLabel src/Dodge/Data/GenWorld.hs 63;" C
PutLineBlock src/Dodge/Data/GenWorld.hs 48;" C PutLineBlock src/Dodge/Data/GenWorld.hs 48;" C
PutMachine src/Dodge/Data/GenWorld.hs 33;" C PutMachine src/Dodge/Data/GenWorld.hs 33;" C
PutMod src/Dodge/Data/GenWorld.hs 46;" C PutMod src/Dodge/Data/GenWorld.hs 46;" C
PutNothing src/Dodge/Data/GenWorld.hs 61;" C PutNothing src/Dodge/Data/GenWorld.hs 60;" C
PutOnEquipment src/Dodge/Data/RightButtonOptions.hs 19;" C PutOnEquipment src/Dodge/Data/RightButtonOptions.hs 19;" C
PutProp src/Dodge/Data/GenWorld.hs 41;" C PutProp src/Dodge/Data/GenWorld.hs 41;" C
PutSlideDr src/Dodge/Data/GenWorld.hs 55;" C PutSlideDr src/Dodge/Data/GenWorld.hs 55;" C
PutTerminal src/Dodge/Data/GenWorld.hs 42;" C PutTerminal src/Dodge/Data/GenWorld.hs 42;" C
PutTrigger src/Dodge/Data/GenWorld.hs 47;" C PutTrigger src/Dodge/Data/GenWorld.hs 47;" C
PutWall src/Dodge/Data/GenWorld.hs 54;" C PutWall src/Dodge/Data/GenWorld.hs 54;" C
PutWorldUpdate src/Dodge/Data/GenWorld.hs 60;" C PutWorldUpdate src/Dodge/Data/GenWorld.hs 59;" C
QFloat src/Geometry/Data.hs 50;" t QFloat src/Geometry/Data.hs 50;" t
QuarterRes src/Dodge/Data/Config.hs 98;" C QuarterRes src/Dodge/Data/Config.hs 98;" C
QuicksaveSlot src/Dodge/Data/SaveSlot.hs 8;" C QuicksaveSlot src/Dodge/Data/SaveSlot.hs 8;" C
@@ -1072,7 +1072,7 @@ RadialDistortion src/Dodge/Data/Distortion.hs 11;" C
RandImpulse src/Dodge/Data/ActionPlan.hs 49;" t RandImpulse src/Dodge/Data/ActionPlan.hs 49;" t
RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 51;" C RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 51;" C
RandImpulseList src/Dodge/Data/ActionPlan.hs 50;" C RandImpulseList src/Dodge/Data/ActionPlan.hs 50;" C
RandPS src/Dodge/Data/GenWorld.hs 58;" C RandPS src/Dodge/Data/GenWorld.hs 57;" C
RandomImpulse src/Dodge/Data/ActionPlan.hs 31;" C RandomImpulse src/Dodge/Data/ActionPlan.hs 31;" C
RandomTurn src/Dodge/Data/ActionPlan.hs 30;" C RandomTurn src/Dodge/Data/ActionPlan.hs 30;" C
ReactorSS src/Dodge/Data/Scenario.hs 111;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C
@@ -1108,7 +1108,7 @@ Rocket src/Dodge/Data/Projectile.hs 32;" C
RocketHoming src/Dodge/Data/Projectile.hs 39;" t RocketHoming src/Dodge/Data/Projectile.hs 39;" t
RocketSmoke src/Dodge/Data/Projectile.hs 52;" t RocketSmoke src/Dodge/Data/Projectile.hs 52;" t
RocketSmoke src/Dodge/Data/Cloud.hs 22;" C RocketSmoke src/Dodge/Data/Cloud.hs 22;" C
Room src/Dodge/Data/GenWorld.hs 123;" t Room src/Dodge/Data/GenWorld.hs 122;" t
RoomClipping src/Dodge/Data/Config.hs 108;" t RoomClipping src/Dodge/Data/Config.hs 108;" t
RoomInt src/Dodge/Tree/Shift.hs 26;" t RoomInt src/Dodge/Tree/Shift.hs 26;" t
RoomLink src/Dodge/Data/Room.hs 24;" t RoomLink src/Dodge/Data/Room.hs 24;" t
@@ -2074,11 +2074,11 @@ _pjSpin src/Dodge/Data/Projectile.hs 19;" f
_pjTimer src/Dodge/Data/Projectile.hs 22;" f _pjTimer src/Dodge/Data/Projectile.hs 22;" f
_pjType src/Dodge/Data/Projectile.hs 24;" f _pjType src/Dodge/Data/Projectile.hs 24;" f
_pjVel src/Dodge/Data/Projectile.hs 17;" f _pjVel src/Dodge/Data/Projectile.hs 17;" f
_plExternalID src/Dodge/Data/GenWorld.hs 112;" f _plExternalID src/Dodge/Data/GenWorld.hs 111;" f
_plIDCont src/Dodge/Data/GenWorld.hs 113;" f _plIDCont src/Dodge/Data/GenWorld.hs 112;" f
_plMID src/Dodge/Data/GenWorld.hs 111;" f _plMID src/Dodge/Data/GenWorld.hs 110;" f
_plSpot src/Dodge/Data/GenWorld.hs 109;" f _plSpot src/Dodge/Data/GenWorld.hs 108;" f
_plType src/Dodge/Data/GenWorld.hs 110;" f _plType src/Dodge/Data/GenWorld.hs 109;" f
_playStatus src/Sound/Data.hs 15;" f _playStatus src/Sound/Data.hs 15;" f
_playingSounds src/Dodge/Data/World.hs 40;" f _playingSounds src/Dodge/Data/World.hs 40;" f
_posture src/Dodge/Data/Creature/Stance.hs 17;" f _posture src/Dodge/Data/Creature/Stance.hs 17;" f
@@ -2099,24 +2099,24 @@ _proxReqEquipment src/Dodge/Data/Machine/Sensor.hs 36;" f
_proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 35;" f _proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 35;" f
_proxSensorType src/Dodge/Data/Machine/Sensor.hs 26;" f _proxSensorType src/Dodge/Data/Machine/Sensor.hs 26;" f
_proxToggle src/Dodge/Data/Machine/Sensor.hs 27;" f _proxToggle src/Dodge/Data/Machine/Sensor.hs 27;" f
_psFallback src/Dodge/Data/GenWorld.hs 100;" f _psFallback src/Dodge/Data/GenWorld.hs 99;" f
_psPos src/Dodge/Data/GenWorld.hs 95;" f _psPos src/Dodge/Data/GenWorld.hs 94;" f
_psRandShift src/Dodge/Data/GenWorld.hs 104;" f _psRandShift src/Dodge/Data/GenWorld.hs 103;" f
_psRoomEff src/Dodge/Data/GenWorld.hs 99;" f _psRoomEff src/Dodge/Data/GenWorld.hs 98;" f
_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 103;" f _psRoomRandPointNum src/Dodge/Data/GenWorld.hs 102;" f
_psRot src/Dodge/Data/GenWorld.hs 95;" f _psRot src/Dodge/Data/GenWorld.hs 94;" f
_psSelect src/Dodge/Data/GenWorld.hs 98;" f _psSelect src/Dodge/Data/GenWorld.hs 97;" f
_pulseBalls src/Dodge/Data/LWorld.hs 113;" f _pulseBalls src/Dodge/Data/LWorld.hs 113;" f
_pulseLasers src/Dodge/Data/LWorld.hs 112;" f _pulseLasers src/Dodge/Data/LWorld.hs 112;" f
_pulseProgress src/Dodge/Data/Creature/Misc.hs 54;" f _pulseProgress src/Dodge/Data/Creature/Misc.hs 54;" f
_pulseRate src/Dodge/Data/Creature/Misc.hs 53;" f _pulseRate src/Dodge/Data/Creature/Misc.hs 53;" f
_putBlock src/Dodge/Data/GenWorld.hs 44;" f _putBlock src/Dodge/Data/GenWorld.hs 44;" f
_putButton src/Dodge/Data/GenWorld.hs 40;" f _putButton src/Dodge/Data/GenWorld.hs 40;" f
_putChasmPoly src/Dodge/Data/GenWorld.hs 63;" f _putChasmPoly src/Dodge/Data/GenWorld.hs 62;" f
_putEndPoint src/Dodge/Data/GenWorld.hs 52;" f _putEndPoint src/Dodge/Data/GenWorld.hs 52;" f
_putID src/Dodge/Data/GenWorld.hs 62;" f _putID src/Dodge/Data/GenWorld.hs 61;" f
_putItem src/Dodge/Data/GenWorld.hs 43;" f _putItem src/Dodge/Data/GenWorld.hs 43;" f
_putLabel src/Dodge/Data/GenWorld.hs 64;" f _putLabel src/Dodge/Data/GenWorld.hs 63;" f
_putMachineMachine src/Dodge/Data/GenWorld.hs 35;" f _putMachineMachine src/Dodge/Data/GenWorld.hs 35;" f
_putMachineMaybeItem src/Dodge/Data/GenWorld.hs 37;" f _putMachineMaybeItem src/Dodge/Data/GenWorld.hs 37;" f
_putMachinePoly src/Dodge/Data/GenWorld.hs 34;" f _putMachinePoly src/Dodge/Data/GenWorld.hs 34;" f
@@ -2154,28 +2154,28 @@ _rkSmoke src/Dodge/Data/Projectile.hs 34;" f
_rlDir src/Dodge/Data/Room.hs 27;" f _rlDir src/Dodge/Data/Room.hs 27;" f
_rlPos src/Dodge/Data/Room.hs 26;" f _rlPos src/Dodge/Data/Room.hs 26;" f
_rlType src/Dodge/Data/Room.hs 25;" f _rlType src/Dodge/Data/Room.hs 25;" f
_rmBound src/Dodge/Data/GenWorld.hs 138;" f _rmBound src/Dodge/Data/GenWorld.hs 137;" f
_rmChildren src/Dodge/Data/GenWorld.hs 149;" f _rmChildren src/Dodge/Data/GenWorld.hs 148;" f
_rmClusterStatus src/Dodge/Data/GenWorld.hs 151;" f _rmClusterStatus src/Dodge/Data/GenWorld.hs 150;" f
_rmConnectsTo src/Dodge/Data/GenWorld.hs 146;" f _rmConnectsTo src/Dodge/Data/GenWorld.hs 145;" f
_rmEndWires src/Dodge/Data/GenWorld.hs 145;" f _rmEndWires src/Dodge/Data/GenWorld.hs 144;" f
_rmFloor src/Dodge/Data/GenWorld.hs 139;" f _rmFloor src/Dodge/Data/GenWorld.hs 138;" f
_rmHeight src/Dodge/Data/Room.hs 39;" f _rmHeight src/Dodge/Data/Room.hs 39;" f
_rmInPmnt src/Dodge/Data/GenWorld.hs 137;" f _rmInPmnt src/Dodge/Data/GenWorld.hs 136;" f
_rmLinkEff src/Dodge/Data/GenWorld.hs 127;" f _rmLinkEff src/Dodge/Data/GenWorld.hs 126;" f
_rmLinks src/Dodge/Data/GenWorld.hs 125;" f _rmLinks src/Dodge/Data/GenWorld.hs 124;" f
_rmMID src/Dodge/Data/GenWorld.hs 147;" f _rmMID src/Dodge/Data/GenWorld.hs 146;" f
_rmMParent src/Dodge/Data/GenWorld.hs 148;" f _rmMParent src/Dodge/Data/GenWorld.hs 147;" f
_rmName src/Dodge/Data/GenWorld.hs 140;" f _rmName src/Dodge/Data/GenWorld.hs 139;" f
_rmPath src/Dodge/Data/GenWorld.hs 135;" f _rmPath src/Dodge/Data/GenWorld.hs 134;" f
_rmPmnts src/Dodge/Data/GenWorld.hs 136;" f _rmPmnts src/Dodge/Data/GenWorld.hs 135;" f
_rmPolys src/Dodge/Data/GenWorld.hs 124;" f _rmPolys src/Dodge/Data/GenWorld.hs 123;" f
_rmPos src/Dodge/Data/GenWorld.hs 134;" f _rmPos src/Dodge/Data/GenWorld.hs 133;" f
_rmRandPSs src/Dodge/Data/GenWorld.hs 143;" f _rmRandPSs src/Dodge/Data/GenWorld.hs 142;" f
_rmShift src/Dodge/Data/GenWorld.hs 141;" f _rmShift src/Dodge/Data/GenWorld.hs 140;" f
_rmStartWires src/Dodge/Data/GenWorld.hs 144;" f _rmStartWires src/Dodge/Data/GenWorld.hs 143;" f
_rmType src/Dodge/Data/GenWorld.hs 150;" f _rmType src/Dodge/Data/GenWorld.hs 149;" f
_rmViewpoints src/Dodge/Data/GenWorld.hs 142;" f _rmViewpoints src/Dodge/Data/GenWorld.hs 141;" f
_rmWidth src/Dodge/Data/Room.hs 38;" f _rmWidth src/Dodge/Data/Room.hs 38;" f
_rpDir src/Dodge/Data/Room.hs 17;" f _rpDir src/Dodge/Data/Room.hs 17;" f
_rpFlags src/Dodge/Data/Room.hs 18;" f _rpFlags src/Dodge/Data/Room.hs 18;" f
@@ -2479,7 +2479,6 @@ addCrGibs src/Dodge/Prop/Gib.hs 17;" f
addDepth src/Picture/Base.hs 133;" f addDepth src/Picture/Base.hs 133;" f
addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 40;" f addDoorAtNthLinkToggleTerminal src/Dodge/Room/Warning.hs 40;" f
addDoorToggleTerminal src/Dodge/Room/Warning.hs 37;" f addDoorToggleTerminal src/Dodge/Room/Warning.hs 37;" f
addDoorWall src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 54;" 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
addGibAtDir src/Dodge/Prop/Gib.hs 69;" f addGibAtDir src/Dodge/Prop/Gib.hs 69;" f
@@ -2515,13 +2514,13 @@ aimDelaySweep src/Dodge/Render/Picture.hs 287;" f
aimStanceInfo src/Dodge/Item/Info.hs 243;" f aimStanceInfo src/Dodge/Item/Info.hs 243;" f
aimTurn src/Dodge/Creature/YourControl.hs 181;" f aimTurn src/Dodge/Creature/YourControl.hs 181;" f
airlock src/Dodge/Room/Airlock.hs 24;" f airlock src/Dodge/Room/Airlock.hs 24;" f
airlock0 src/Dodge/Room/Airlock.hs 73;" f airlock0 src/Dodge/Room/Airlock.hs 72;" f
airlock90 src/Dodge/Room/Airlock.hs 201;" f airlock90 src/Dodge/Room/Airlock.hs 199;" f
airlockCrystal src/Dodge/Room/Airlock.hs 246;" f airlockCrystal src/Dodge/Room/Airlock.hs 244;" f
airlockDoor src/Dodge/Room/Airlock.hs 100;" f airlockDoor src/Dodge/Room/Airlock.hs 98;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 103;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 101;" f
airlockSimple src/Dodge/Room/Airlock.hs 118;" f airlockSimple src/Dodge/Room/Airlock.hs 116;" f
airlockZ src/Dodge/Room/Airlock.hs 156;" f airlockZ src/Dodge/Room/Airlock.hs 154;" f
allVisibleWalls src/Dodge/Base/Collide.hs 223;" f allVisibleWalls src/Dodge/Base/Collide.hs 223;" f
alongSegBy src/Geometry.hs 40;" f alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
@@ -3142,7 +3141,7 @@ dist src/Geometry/Vector.hs 185;" f
dist3 src/Geometry/Vector3D.hs 101;" f dist3 src/Geometry/Vector3D.hs 101;" f
divTo src/Geometry/Zone.hs 6;" f divTo src/Geometry/Zone.hs 6;" f
divideCircle src/Geometry.hs 321;" f divideCircle src/Geometry.hs 321;" f
divideDoorPane src/Dodge/Placement/Instance/Door.hs 71;" f divideDoorPane src/Dodge/Placement/Instance/Door.hs 65;" f
divideLine src/Geometry.hs 248;" f divideLine src/Geometry.hs 248;" f
divideLineExact src/Geometry.hs 276;" f divideLineExact src/Geometry.hs 276;" f
divideLineOddNumPoints src/Geometry.hs 261;" f divideLineOddNumPoints src/Geometry.hs 261;" f
@@ -3214,7 +3213,7 @@ doWdWd src/Dodge/WorldEffect.hs 28;" f
doWorldEvents src/Dodge/Update.hs 428;" f doWorldEvents src/Dodge/Update.hs 428;" f
doWorldPos src/Dodge/WorldPos.hs 10;" f doWorldPos src/Dodge/WorldPos.hs 10;" f
door src/Dodge/Room/Door.hs 13;" f door src/Dodge/Room/Door.hs 13;" f
doorBetween src/Dodge/Placement/Instance/Door.hs 50;" f doorBetween src/Dodge/Placement/Instance/Door.hs 45;" f
doorLerp src/Dodge/DrWdWd.hs 26;" f doorLerp src/Dodge/DrWdWd.hs 26;" f
dotV src/Geometry/Vector.hs 76;" f dotV src/Geometry/Vector.hs 76;" f
dotV3 src/Geometry/Vector3D.hs 119;" f dotV3 src/Geometry/Vector3D.hs 119;" f
@@ -3727,10 +3726,10 @@ insertNewKey src/IntMapHelp.hs 65;" f
insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f
insertOver src/ListHelp.hs 47;" f insertOver src/ListHelp.hs 47;" f
insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f
insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 43;" f insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 37;" f
insertWall src/Dodge/Placement/PlaceSpot/Block.hs 127;" f insertWall src/Dodge/Placement/PlaceSpot/Block.hs 121;" f
insertWallInZones src/Dodge/Wall/Zone.hs 20;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 124;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 118;" f
insertWithNewKeys src/IntMapHelp.hs 71;" f insertWithNewKeys src/IntMapHelp.hs 71;" f
intAnno src/Dodge/Floor.hs 111;" f intAnno src/Dodge/Floor.hs 111;" f
interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f
@@ -4208,7 +4207,7 @@ mvButton src/Dodge/Placement/PlaceSpot.hs 190;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 193;" f mvCr src/Dodge/Placement/PlaceSpot.hs 193;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 200;" f mvFS src/Dodge/Placement/PlaceSpot.hs 200;" f
mvGust src/Dodge/Update.hs 784;" f mvGust src/Dodge/Update.hs 784;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 239;" f mvLS src/Dodge/Placement/PlaceSpot.hs 235;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f
mvPointToward src/Dodge/Base.hs 136;" f mvPointToward src/Dodge/Base.hs 136;" f
@@ -4348,17 +4347,17 @@ pistol src/Dodge/Item/Held/Stick.hs 40;" f
pistolerRoom src/Dodge/Room/Room.hs 330;" f pistolerRoom src/Dodge/Room/Room.hs 330;" f
pjRemoteSetDirection src/Dodge/Projectile/Update.hs 172;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 172;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 20;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 20;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 20;" f plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 17;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 60;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 54;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 203;" f plMachine src/Dodge/Placement/PlaceSpot.hs 203;" f
plNew src/Dodge/Base/NewID.hs 19;" f plNew src/Dodge/Base/NewID.hs 19;" f
plNewID src/Dodge/Base/NewID.hs 7;" f plNewID src/Dodge/Base/NewID.hs 7;" f
plNewUpID src/Dodge/Base/NewID.hs 13;" f plNewUpID src/Dodge/Base/NewID.hs 13;" f
plNewUsing src/Dodge/Base/NewID.hs 27;" f plNewUsing src/Dodge/Base/NewID.hs 27;" f
plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f
plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 87;" f plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 83;" f
placeChasm src/Dodge/Placement/PlaceSpot.hs 161;" f placeChasm src/Dodge/Placement/PlaceSpot.hs 161;" f
placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 231;" f placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 230;" f
placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 43;" f placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 43;" f
placeSpot src/Dodge/Placement/PlaceSpot.hs 34;" f placeSpot src/Dodge/Placement/PlaceSpot.hs 34;" f
placeSpotID src/Dodge/Placement/PlaceSpot.hs 105;" f placeSpotID src/Dodge/Placement/PlaceSpot.hs 105;" f
@@ -4516,12 +4515,12 @@ pushOutFromWall src/Dodge/WallCreatureCollisions.hs 101;" f
pushOutFromWalls src/Dodge/WallCreatureCollisions.hs 64;" f pushOutFromWalls src/Dodge/WallCreatureCollisions.hs 64;" f
pushR src/DoubleStack.hs 24;" f pushR src/DoubleStack.hs 24;" f
pushScreen src/Dodge/Menu/PushPop.hs 9;" f pushScreen src/Dodge/Menu/PushPop.hs 9;" f
putAutoDoor src/Dodge/Placement/Instance/Door.hs 91;" f putAutoDoor src/Dodge/Placement/Instance/Door.hs 85;" f
putBlockN src/Dodge/Placement/Instance/Wall.hs 169;" f putBlockN src/Dodge/Placement/Instance/Wall.hs 169;" f
putBlockRect src/Dodge/Placement/Instance/Wall.hs 148;" f putBlockRect src/Dodge/Placement/Instance/Wall.hs 148;" f
putBlockV src/Dodge/Placement/Instance/Wall.hs 156;" f putBlockV src/Dodge/Placement/Instance/Wall.hs 156;" f
putDoubleDoor src/Dodge/Placement/Instance/Door.hs 19;" f putDoubleDoor src/Dodge/Placement/Instance/Door.hs 16;" f
putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 31;" f putDoubleDoorThen src/Dodge/Placement/Instance/Door.hs 27;" f
putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 65;" f putImmediateMessageTerminal src/Dodge/Placement/Instance/Terminal.hs 65;" f
putLamp src/Dodge/Placement/Instance/LightSource.hs 222;" f putLamp src/Dodge/Placement/Instance/LightSource.hs 222;" f
putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f putLasTurret src/Dodge/Placement/Instance/Turret.hs 23;" f
@@ -4948,8 +4947,8 @@ slap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 670;" f
slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f slapS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 604;" f
slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f slideDoorS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 688;" f
slideWindow src/ListHelp.hs 80;" f slideWindow src/ListHelp.hs 80;" f
slowDoorRoom src/Dodge/Room/LongDoor.hs 158;" f slowDoorRoom src/Dodge/Room/LongDoor.hs 157;" f
slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 175;" f slowDoorRoomRunPast src/Dodge/Room/LongDoor.hs 174;" f
smallBattery src/Dodge/Item/Ammo.hs 60;" f smallBattery src/Dodge/Item/Ammo.hs 60;" f
smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f smallBranch src/Dodge/Tree/GenerateStructure.hs 32;" f
smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f smallChaseCrit src/Dodge/Creature/ChaseCrit.hs 14;" f
@@ -5077,8 +5076,6 @@ swapInvItems src/Dodge/Inventory/Swap.hs 22;" f
swapItemWith src/Dodge/Inventory.hs 164;" f swapItemWith src/Dodge/Inventory.hs 164;" f
swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f
swarmUsingCenter src/Dodge/Creature/Boid.hs 174;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 174;" f
switchDoor src/Dodge/Placement/Instance/Door.hs 120;" f
switchWallObs src/Dodge/Data/PathGraph.hs 54;" f
t src/ShortShow.hs 48;" f t src/ShortShow.hs 48;" f
tEast src/Dodge/Room/Corridor.hs 90;" f tEast src/Dodge/Room/Corridor.hs 90;" f
tToBTree src/Dodge/Tree/Compose.hs 92;" f tToBTree src/Dodge/Tree/Compose.hs 92;" f
@@ -5337,8 +5334,6 @@ updateDisplaySections src/Dodge/DisplayInventory.hs 116;" f
updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortion src/Dodge/Distortion.hs 5;" f
updateDistortions src/Dodge/Update.hs 558;" f updateDistortions src/Dodge/Update.hs 558;" f
updateDoor src/Dodge/DrWdWd.hs 20;" f updateDoor src/Dodge/DrWdWd.hs 20;" f
updateDoorEdge src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 78;" f
updateDoorEdges src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 75;" f
updateDoors src/Dodge/Update.hs 310;" f updateDoors src/Dodge/Update.hs 310;" f
updateDust src/Dodge/Update.hs 822;" f updateDust src/Dodge/Update.hs 822;" f
updateDusts src/Dodge/Update.hs 672;" f updateDusts src/Dodge/Update.hs 672;" f