diff --git a/src/Dodge/Data/GenWorld.hs b/src/Dodge/Data/GenWorld.hs index 89d46ef21..14dfac8aa 100644 --- a/src/Dodge/Data/GenWorld.hs +++ b/src/Dodge/Data/GenWorld.hs @@ -53,6 +53,7 @@ data PSType } | PutWall {_pwPoly :: [Point2], _pwWall :: Wall} | PutSlideDr Door Wall Float Point2 Point2 + | PutDoor' Door Wall | PutDoor WdBl Float Point2A Point2A | RandPS (State StdGen PSType) | PutForeground ForegroundShape @@ -80,6 +81,7 @@ instance ShortShow PSType where shortShow PutWall {} = "PutWall" shortShow PutSlideDr {} = "PutSlideDr" shortShow PutDoor {} = "PutDoor" + shortShow PutDoor' {} = "PutDoor'" shortShow RandPS {} = "RandPS" shortShow PutForeground {} = "PutForeground" shortShow PutWorldUpdate {} = "PutWorldUpdate" diff --git a/src/Dodge/DrWdWd.hs b/src/Dodge/DrWdWd.hs index 0d2caa273..85c8c98c8 100644 --- a/src/Dodge/DrWdWd.hs +++ b/src/Dodge/DrWdWd.hs @@ -1,5 +1,6 @@ module Dodge.DrWdWd (updateDoor) where +import Dodge.Door.DoorLerp import Dodge.LightSource import Data.Foldable import Dodge.Wall.Delete @@ -49,9 +50,6 @@ doorLerp speed dr w = fromMaybe (mempty,w) $ do soundContinue (WallSound drid) (fst $ doDoorLerp dr x) slideDoorS (Just 1) | otherwise = id -doDoorLerp :: Door -> Float -> Point2A -doDoorLerp dr = lerpP2A (dr ^. drZeroPos) (dr ^. drOnePos) - destroyDoor :: Door -> World -> (S.Set Int2, World) destroyDoor dr w = (is,w diff --git a/src/Dodge/Placement/PlaceSpot.hs b/src/Dodge/Placement/PlaceSpot.hs index f51fe5dfc..2a35d8850 100644 --- a/src/Dodge/Placement/PlaceSpot.hs +++ b/src/Dodge/Placement/PlaceSpot.hs @@ -135,9 +135,9 @@ placeSpotID rid ps pt w = case pt of 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 PutDoor f l p1 p2 -> plDoor f l (pashift p1) (pashift p2) w + PutDoor' dr wl -> plDoor' (dr & drZeroPos %~ pashift & drOnePos %~ pashift) wl w + PutSlideDr wl dr off a b -> plSlideDoor wl dr off (doShift a) (doShift b) w PutCoord cp -> plNewID (gwWorld . coordinates) (doShift cp) w - PutSlideDr wl dr off a b -> - plSlideDoor wl dr off (doShift a) (doShift b) w PutBlock bl wl ps' -> plBlock (map doShift ps') diff --git a/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs b/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs index 425fe96d6..76efce36f 100644 --- a/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs +++ b/src/Dodge/Placement/PlaceSpot/TriggerDoor.hs @@ -1,8 +1,10 @@ module Dodge.Placement.PlaceSpot.TriggerDoor ( + plDoor', plDoor, plSlideDoor, ) where +import Dodge.Door.DoorLerp import Dodge.Data.GenWorld import Dodge.Default.Door import Dodge.Default.Wall @@ -14,11 +16,35 @@ import qualified IntMapHelp as IM import LensHelp import Linear +plDoor' :: + Door -> + Wall -> + GenWorld -> + (Int, GenWorld) +plDoor' dr wl gw = + ( drid + , over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors . at drid ?~ newdr + -- carefull with the ordering of addWalls + ) + where + isauto = case dr ^. drTrigger of + WdBlCrFilterNearPoint{} -> True + _ -> False + drid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . doors + wlid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . walls + pps = IM.elems $ dr ^. drFootPrint + newdr = dr & drID .~ drid & drFootPrint .~ IM.fromList (zip [wlid ..] pps) + lerposa = doDoorLerp dr (dr ^. drLerp) + addWalls = + insertStructureWalls + (`DoorPart` isauto) + wl + (map fst pps & each %~ shiftPointBy lerposa) + drid + wlid + plDoor :: - -- | Opening condition WdBl -> - -- | Door positions, closed to open. - -- Bumped out up and down by 9, not widened Float -> Point2A -> Point2A -> @@ -55,32 +81,6 @@ plDoor cond l p1 p2 gw = drid wlid ---addWalls w' = foldl' (addDoorWall eo drid $ switchWallCol col) w' $ zip wlids --- foldl' (addDoorWall isauto eo drid defaultDoorWall) w' $ --- zip wlids $ --- wlps' & each . each %~ shiftPointBy p1 - ---addDoorWall :: --- Bool -> --- S.Set EdgeObstacle -> --- Int -> --- Wall -> --- World -> --- (Int, (Point2, Point2)) -> --- World ---addDoorWall isauto eo drid wl w (wlid, wlps) = --- w' --- & cWorld . lWorld . walls --- %~ IM.insert --- wlid --- wl --- { _wlLine = wlps --- , _wlID = wlid --- , _wlStructure = DoorPart drid isauto --- } --- where --- w' = uncurry (obstructPathsCrossing eo) wlps w - plSlideDoor :: Door -> Wall -> @@ -90,7 +90,6 @@ plSlideDoor :: GenWorld -> (Int, GenWorld) plSlideDoor dr wl shiftOffset a b gw = - --(drid, over gwWorld addDoorWalls $ gw & gwWorld . cWorld . lWorld . doors %~ addDoor) (drid, over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors %~ addDoor) where isauto = case dr ^. drTrigger of @@ -118,4 +117,3 @@ plSlideDoor dr wl shiftOffset a b gw = (map fst pairs) drid wlid --- addDoorWalls w' = foldl' (addDoorWall isauto eo drid wl) w' $ zip wlids pairs diff --git a/src/Dodge/Room/Airlock.hs b/src/Dodge/Room/Airlock.hs index 6e595d0c3..a8c356bff 100644 --- a/src/Dodge/Room/Airlock.hs +++ b/src/Dodge/Room/Airlock.hs @@ -3,6 +3,9 @@ {- Rooms that contain two doors and a switch alternating both. -} module Dodge.Room.Airlock where +import Dodge.LevelGen.DoorPane +import Dodge.Default.Door +import qualified Data.IntMap.Strict as IM import Dodge.Default.Wall import Dodge.Room.Path import Control.Lens @@ -107,8 +110,20 @@ airlockDoubleDoor :: Point2A -> Maybe Placement airlockDoubleDoor p1 p2 cond l1 x1 y1 l2 x2 y2 = - jspsJ p1 0 (PutDoor cond l1 x1 y1) $ - sPS p2 0 (PutDoor cond l2 x2 y2) + jspsJ p1 0 (putDoor cond l1 x1 y1) $ + sPS p2 0 (putDoor cond l2 x2 y2) + +putDoor :: WdBl -> Float -> Point2A -> Point2A -> PSType +putDoor cond l p1 p2 = PutDoor' dr wl + where + wl = defaultDoorWall + dr = defaultDoor + & drTrigger .~ cond + & drUpdate .~ DoorLerp 0.01 + & drZeroPos .~ p1 + & drOnePos .~ p2 + & drFootPrint .~ IM.fromList (zip [0..] $ wlps') + wlps' = rectanglePairs 9 0 (V2 l 0) airlockSimple :: Room airlockSimple = diff --git a/src/Dodge/Room/Tutorial.hs b/src/Dodge/Room/Tutorial.hs index 1c0f41be7..b715d2334 100644 --- a/src/Dodge/Room/Tutorial.hs +++ b/src/Dodge/Room/Tutorial.hs @@ -48,10 +48,11 @@ tutAnoTree = do -- , tToBTree "lastun" . return . cleatOnward <$> tanksRoom [] [] -- , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor - , tToBTree "lastun" . return . cleatOnward <$> cenLasTur +-- , tToBTree "lastun" . return . cleatOnward <$> cenLasTur -- , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor +-- , return $ tToBTree "cor" $ return $ cleatOnward airlockSimple , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor -- , return $ tToBTree "cor" $ return $ cleatOnward corridor diff --git a/tags b/tags index 931faffaa..5449e1caf 100644 --- a/tags +++ b/tags @@ -939,10 +939,10 @@ POISONSPRAYER src/Dodge/Data/Item/Combine.hs 172;" C PORTABLEFUSION src/Dodge/Data/Item/Combine.hs 87;" C POWERLEGS src/Dodge/Data/Item/Combine.hs 128;" C PRISM src/Dodge/Data/Item/Combine.hs 65;" C -PS src/Dodge/Data/GenWorld.hs 94;" C -PSNoShiftCont src/Dodge/Data/GenWorld.hs 95;" C -PSPos src/Dodge/Data/GenWorld.hs 96;" C -PSRoomRand src/Dodge/Data/GenWorld.hs 101;" C +PS src/Dodge/Data/GenWorld.hs 96;" C +PSNoShiftCont src/Dodge/Data/GenWorld.hs 97;" C +PSPos src/Dodge/Data/GenWorld.hs 98;" C +PSRoomRand src/Dodge/Data/GenWorld.hs 103;" C PSType src/Dodge/Data/GenWorld.hs 31;" t PUMP src/Dodge/Data/Item/Combine.hs 62;" C 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 Piercing src/Dodge/Data/Damage.hs 16;" C PistolAI src/Dodge/Data/Creature/Misc.hs 41;" C -Placement src/Dodge/Data/GenWorld.hs 107;" t -PlacementSpot src/Dodge/Data/GenWorld.hs 93;" t +Placement src/Dodge/Data/GenWorld.hs 109;" t +PlacementSpot src/Dodge/Data/GenWorld.hs 95;" t PlainBarrel src/Dodge/Data/Creature/Misc.hs 86;" C PlantNurserySS src/Dodge/Data/Scenario.hs 96;" C PlayStatus src/Sound/Data.hs 21;" t @@ -1029,26 +1029,27 @@ PushedBy src/Dodge/Data/Door.hs 25;" C PushesItself src/Dodge/Data/Door.hs 24;" C PutBlock src/Dodge/Data/GenWorld.hs 44;" C PutButton src/Dodge/Data/GenWorld.hs 40;" C -PutChasm src/Dodge/Data/GenWorld.hs 62;" C +PutChasm src/Dodge/Data/GenWorld.hs 63;" C PutCoord src/Dodge/Data/GenWorld.hs 45;" C PutCrit src/Dodge/Data/GenWorld.hs 32;" C -PutDoor src/Dodge/Data/GenWorld.hs 56;" 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 -PutForeground src/Dodge/Data/GenWorld.hs 58;" C -PutID src/Dodge/Data/GenWorld.hs 61;" C +PutForeground src/Dodge/Data/GenWorld.hs 59;" C +PutID src/Dodge/Data/GenWorld.hs 62;" C PutLS src/Dodge/Data/GenWorld.hs 39;" C -PutLabel src/Dodge/Data/GenWorld.hs 63;" C +PutLabel src/Dodge/Data/GenWorld.hs 64;" C PutLineBlock src/Dodge/Data/GenWorld.hs 48;" C PutMachine src/Dodge/Data/GenWorld.hs 33;" C PutMod src/Dodge/Data/GenWorld.hs 46;" C -PutNothing src/Dodge/Data/GenWorld.hs 60;" C +PutNothing src/Dodge/Data/GenWorld.hs 61;" C PutOnEquipment src/Dodge/Data/RightButtonOptions.hs 19;" C PutProp src/Dodge/Data/GenWorld.hs 41;" C PutSlideDr src/Dodge/Data/GenWorld.hs 55;" C PutTerminal src/Dodge/Data/GenWorld.hs 42;" C PutTrigger src/Dodge/Data/GenWorld.hs 47;" C PutWall src/Dodge/Data/GenWorld.hs 54;" C -PutWorldUpdate src/Dodge/Data/GenWorld.hs 59;" C +PutWorldUpdate src/Dodge/Data/GenWorld.hs 60;" C QFloat src/Geometry/Data.hs 50;" t QuarterRes src/Dodge/Data/Config.hs 98;" C QuicksaveSlot src/Dodge/Data/SaveSlot.hs 8;" C @@ -1072,7 +1073,7 @@ RadialDistortion src/Dodge/Data/Distortion.hs 11;" C RandImpulse src/Dodge/Data/ActionPlan.hs 49;" t RandImpulseCircMove src/Dodge/Data/ActionPlan.hs 51;" C RandImpulseList src/Dodge/Data/ActionPlan.hs 50;" C -RandPS src/Dodge/Data/GenWorld.hs 57;" C +RandPS src/Dodge/Data/GenWorld.hs 58;" C RandomImpulse src/Dodge/Data/ActionPlan.hs 31;" C RandomTurn src/Dodge/Data/ActionPlan.hs 30;" C ReactorSS src/Dodge/Data/Scenario.hs 111;" C @@ -1108,7 +1109,7 @@ Rocket src/Dodge/Data/Projectile.hs 32;" C RocketHoming src/Dodge/Data/Projectile.hs 39;" t RocketSmoke src/Dodge/Data/Projectile.hs 52;" t RocketSmoke src/Dodge/Data/Cloud.hs 22;" C -Room src/Dodge/Data/GenWorld.hs 122;" t +Room src/Dodge/Data/GenWorld.hs 124;" t RoomClipping src/Dodge/Data/Config.hs 108;" t RoomInt src/Dodge/Tree/Shift.hs 26;" t RoomLink src/Dodge/Data/Room.hs 24;" t @@ -2074,11 +2075,11 @@ _pjSpin src/Dodge/Data/Projectile.hs 19;" f _pjTimer src/Dodge/Data/Projectile.hs 22;" f _pjType src/Dodge/Data/Projectile.hs 24;" f _pjVel src/Dodge/Data/Projectile.hs 17;" f -_plExternalID src/Dodge/Data/GenWorld.hs 111;" f -_plIDCont src/Dodge/Data/GenWorld.hs 112;" f -_plMID src/Dodge/Data/GenWorld.hs 110;" f -_plSpot src/Dodge/Data/GenWorld.hs 108;" f -_plType src/Dodge/Data/GenWorld.hs 109;" f +_plExternalID src/Dodge/Data/GenWorld.hs 113;" f +_plIDCont src/Dodge/Data/GenWorld.hs 114;" f +_plMID src/Dodge/Data/GenWorld.hs 112;" f +_plSpot src/Dodge/Data/GenWorld.hs 110;" f +_plType src/Dodge/Data/GenWorld.hs 111;" f _playStatus src/Sound/Data.hs 15;" f _playingSounds src/Dodge/Data/World.hs 40;" f _posture src/Dodge/Data/Creature/Stance.hs 17;" f @@ -2099,24 +2100,24 @@ _proxReqEquipment src/Dodge/Data/Machine/Sensor.hs 36;" f _proxReqMinHealth src/Dodge/Data/Machine/Sensor.hs 35;" f _proxSensorType src/Dodge/Data/Machine/Sensor.hs 26;" f _proxToggle src/Dodge/Data/Machine/Sensor.hs 27;" f -_psFallback src/Dodge/Data/GenWorld.hs 99;" f -_psPos src/Dodge/Data/GenWorld.hs 94;" f -_psRandShift src/Dodge/Data/GenWorld.hs 103;" f -_psRoomEff src/Dodge/Data/GenWorld.hs 98;" f -_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 102;" f -_psRot src/Dodge/Data/GenWorld.hs 94;" f -_psSelect src/Dodge/Data/GenWorld.hs 97;" f +_psFallback src/Dodge/Data/GenWorld.hs 101;" f +_psPos src/Dodge/Data/GenWorld.hs 96;" f +_psRandShift src/Dodge/Data/GenWorld.hs 105;" f +_psRoomEff src/Dodge/Data/GenWorld.hs 100;" f +_psRoomRandPointNum src/Dodge/Data/GenWorld.hs 104;" f +_psRot src/Dodge/Data/GenWorld.hs 96;" f +_psSelect src/Dodge/Data/GenWorld.hs 99;" f _pulseBalls src/Dodge/Data/LWorld.hs 113;" f _pulseLasers src/Dodge/Data/LWorld.hs 112;" f _pulseProgress src/Dodge/Data/Creature/Misc.hs 54;" f _pulseRate src/Dodge/Data/Creature/Misc.hs 53;" f _putBlock src/Dodge/Data/GenWorld.hs 44;" f _putButton src/Dodge/Data/GenWorld.hs 40;" f -_putChasmPoly src/Dodge/Data/GenWorld.hs 62;" f +_putChasmPoly src/Dodge/Data/GenWorld.hs 63;" f _putEndPoint src/Dodge/Data/GenWorld.hs 52;" f -_putID src/Dodge/Data/GenWorld.hs 61;" f +_putID src/Dodge/Data/GenWorld.hs 62;" f _putItem src/Dodge/Data/GenWorld.hs 43;" f -_putLabel src/Dodge/Data/GenWorld.hs 63;" f +_putLabel src/Dodge/Data/GenWorld.hs 64;" f _putMachineMachine src/Dodge/Data/GenWorld.hs 35;" f _putMachineMaybeItem src/Dodge/Data/GenWorld.hs 37;" f _putMachinePoly src/Dodge/Data/GenWorld.hs 34;" f @@ -2154,28 +2155,28 @@ _rkSmoke src/Dodge/Data/Projectile.hs 34;" f _rlDir src/Dodge/Data/Room.hs 27;" f _rlPos src/Dodge/Data/Room.hs 26;" f _rlType src/Dodge/Data/Room.hs 25;" f -_rmBound src/Dodge/Data/GenWorld.hs 137;" f -_rmChildren src/Dodge/Data/GenWorld.hs 148;" f -_rmClusterStatus src/Dodge/Data/GenWorld.hs 150;" f -_rmConnectsTo src/Dodge/Data/GenWorld.hs 145;" f -_rmEndWires src/Dodge/Data/GenWorld.hs 144;" f -_rmFloor src/Dodge/Data/GenWorld.hs 138;" f +_rmBound src/Dodge/Data/GenWorld.hs 139;" f +_rmChildren src/Dodge/Data/GenWorld.hs 150;" f +_rmClusterStatus src/Dodge/Data/GenWorld.hs 152;" f +_rmConnectsTo src/Dodge/Data/GenWorld.hs 147;" f +_rmEndWires src/Dodge/Data/GenWorld.hs 146;" f +_rmFloor src/Dodge/Data/GenWorld.hs 140;" f _rmHeight src/Dodge/Data/Room.hs 39;" f -_rmInPmnt src/Dodge/Data/GenWorld.hs 136;" f -_rmLinkEff src/Dodge/Data/GenWorld.hs 126;" f -_rmLinks src/Dodge/Data/GenWorld.hs 124;" f -_rmMID src/Dodge/Data/GenWorld.hs 146;" f -_rmMParent src/Dodge/Data/GenWorld.hs 147;" f -_rmName src/Dodge/Data/GenWorld.hs 139;" f -_rmPath src/Dodge/Data/GenWorld.hs 134;" f -_rmPmnts src/Dodge/Data/GenWorld.hs 135;" f -_rmPolys src/Dodge/Data/GenWorld.hs 123;" f -_rmPos src/Dodge/Data/GenWorld.hs 133;" f -_rmRandPSs src/Dodge/Data/GenWorld.hs 142;" f -_rmShift src/Dodge/Data/GenWorld.hs 140;" f -_rmStartWires src/Dodge/Data/GenWorld.hs 143;" f -_rmType src/Dodge/Data/GenWorld.hs 149;" f -_rmViewpoints src/Dodge/Data/GenWorld.hs 141;" f +_rmInPmnt src/Dodge/Data/GenWorld.hs 138;" f +_rmLinkEff src/Dodge/Data/GenWorld.hs 128;" f +_rmLinks src/Dodge/Data/GenWorld.hs 126;" f +_rmMID src/Dodge/Data/GenWorld.hs 148;" f +_rmMParent src/Dodge/Data/GenWorld.hs 149;" f +_rmName src/Dodge/Data/GenWorld.hs 141;" f +_rmPath src/Dodge/Data/GenWorld.hs 136;" f +_rmPmnts src/Dodge/Data/GenWorld.hs 137;" f +_rmPolys src/Dodge/Data/GenWorld.hs 125;" f +_rmPos src/Dodge/Data/GenWorld.hs 135;" f +_rmRandPSs src/Dodge/Data/GenWorld.hs 144;" f +_rmShift src/Dodge/Data/GenWorld.hs 142;" f +_rmStartWires src/Dodge/Data/GenWorld.hs 145;" f +_rmType src/Dodge/Data/GenWorld.hs 151;" f +_rmViewpoints src/Dodge/Data/GenWorld.hs 143;" f _rmWidth src/Dodge/Data/Room.hs 38;" f _rpDir src/Dodge/Data/Room.hs 17;" f _rpFlags src/Dodge/Data/Room.hs 18;" f @@ -2515,12 +2516,11 @@ aimStanceInfo src/Dodge/Item/Info.hs 243;" f aimTurn src/Dodge/Creature/YourControl.hs 181;" f airlock src/Dodge/Room/Airlock.hs 24;" f airlock0 src/Dodge/Room/Airlock.hs 72;" f -airlock90 src/Dodge/Room/Airlock.hs 199;" f -airlockCrystal src/Dodge/Room/Airlock.hs 244;" f -airlockDoor src/Dodge/Room/Airlock.hs 98;" f -airlockDoubleDoor src/Dodge/Room/Airlock.hs 101;" f -airlockSimple src/Dodge/Room/Airlock.hs 116;" f -airlockZ src/Dodge/Room/Airlock.hs 154;" f +airlock90 src/Dodge/Room/Airlock.hs 196;" f +airlockCrystal src/Dodge/Room/Airlock.hs 241;" f +airlockDoubleDoor src/Dodge/Room/Airlock.hs 98;" f +airlockSimple src/Dodge/Room/Airlock.hs 113;" f +airlockZ src/Dodge/Room/Airlock.hs 151;" f allVisibleWalls src/Dodge/Base/Collide.hs 223;" f alongSegBy src/Geometry.hs 40;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f @@ -3105,7 +3105,7 @@ deleteWallIDs src/Dodge/Wall/Delete.hs 28;" f denormalEdges src/Polyhedra.hs 136;" f destroyAllInvItems src/Dodge/Inventory.hs 53;" f destroyBlock src/Dodge/Block.hs 17;" f -destroyDoor src/Dodge/DrWdWd.hs 55;" f +destroyDoor src/Dodge/DrWdWd.hs 53;" f destroyInvItem src/Dodge/Inventory.hs 40;" f destroyItem src/Dodge/Inventory.hs 62;" f destroyLS src/Dodge/LightSource.hs 32;" f @@ -3113,8 +3113,8 @@ destroyLSFlashAt src/Dodge/LightSource.hs 42;" f destroyMachine src/Dodge/Machine/Destroy.hs 13;" f destroyMatS src/Dodge/Material/Sound.hs 7;" f destroyMcType src/Dodge/Machine/Destroy.hs 22;" f -destroyMount src/Dodge/DrWdWd.hs 73;" f -destroyMounts src/Dodge/DrWdWd.hs 70;" f +destroyMount src/Dodge/DrWdWd.hs 71;" f +destroyMounts src/Dodge/DrWdWd.hs 68;" f destroyProjectile src/Dodge/Projectile/Update.hs 108;" f detV src/Geometry/Vector.hs 94;" f detector src/Dodge/Item/Held/Utility.hs 27;" f @@ -3171,7 +3171,7 @@ doDebugTestF12 src/Dodge/Update/Input/DebugTest.hs 84;" f doDebugTestF6 src/Dodge/Update/Input/DebugTest.hs 41;" f doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 51;" f doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 59;" f -doDoorLerp src/Dodge/DrWdWd.hs 52;" f +doDoorLerp src/Dodge/Door/DoorLerp.hs 5;" f doDrag src/Dodge/Update/Input/InGame.hs 127;" f doDrawing src/Dodge/Render.hs 34;" f doDrawing' src/Dodge/Render.hs 45;" f @@ -4347,7 +4347,8 @@ pistol src/Dodge/Item/Held/Stick.hs 40;" f pistolerRoom src/Dodge/Room/Room.hs 330;" f pjRemoteSetDirection src/Dodge/Projectile/Update.hs 172;" f plBlock src/Dodge/Placement/PlaceSpot/Block.hs 20;" f -plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 17;" f +plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 46;" f +plDoor' src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 19;" f plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 54;" f plMachine src/Dodge/Placement/PlaceSpot.hs 203;" f plNew src/Dodge/Base/NewID.hs 19;" f @@ -4355,7 +4356,7 @@ plNewID src/Dodge/Base/NewID.hs 7;" f plNewUpID src/Dodge/Base/NewID.hs 13;" f plNewUsing src/Dodge/Base/NewID.hs 27;" f plRRpt src/Dodge/LevelGen/PlacementHelper.hs 33;" f -plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 83;" f +plSlideDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 84;" f placeChasm src/Dodge/Placement/PlaceSpot.hs 161;" f placeMachineWalls src/Dodge/Placement/PlaceSpot.hs 230;" f placePlainPSSpot src/Dodge/Placement/PlaceSpot.hs 43;" f @@ -5055,7 +5056,7 @@ stone4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 484;" f stone5S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 626;" f stopAllSounds src/Sound.hs 125;" f stopBulletAt src/Dodge/Bullet.hs 200;" f -stopPushing src/Dodge/DrWdWd.hs 78;" f +stopPushing src/Dodge/DrWdWd.hs 76;" f stopSoundFrom src/Dodge/SoundLogic.hs 220;" f strFromEquipment src/Dodge/Creature/Statistics.hs 53;" f strFromHeldItem src/Dodge/Creature/Statistics.hs 67;" f