Partially working mounts on lerp doors

This commit is contained in:
2025-10-22 11:03:46 +01:00
parent f8073381ee
commit af245fb5bf
10 changed files with 78 additions and 150 deletions
+3 -1
View File
@@ -7,6 +7,7 @@ module Dodge.Block.Debris (
makeDebrisDirected,
) where
import Dodge.ShiftPoint
import Color
import Data.Foldable
import qualified Data.IntSet as IS
@@ -24,7 +25,8 @@ import Shape
makeDoorDebris :: Door -> World -> World
makeDoorDebris dr w = w & makeDebris mt col p
where
p = uncurry midPoint (_drPos dr)
p2a = lerpP2A (dr ^. drZeroPos) (dr ^. drOnePos) (dr ^. drLerp)
p = centroid . fmap fst $ (dr ^. drFootPrint) & each . each %~ shiftPointBy p2a
(mt, col) = fromMaybe (Stone, greyN 0.5) $ do
wlids <- w ^? cWorld . lWorld . doors . ix (_drID dr) . drWallIDs
(wlid, _) <- IS.minView wlids
+3 -7
View File
@@ -18,8 +18,8 @@ import Dodge.Data.WorldEffect
import Geometry.Data
import qualified Data.IntMap.Strict as IM
data DoorStatus = DoorOpen | DoorClosed | DoorHalfway | DoorInt Int
deriving Eq
--data DoorStatus = DoorOpen | DoorClosed | DoorHalfway | DoorInt Int
-- deriving Eq
data PushSource
= PushesItself
@@ -30,12 +30,8 @@ data PushSource
data Door = Door
{ _drID :: Int
, _drWallIDs :: IS.IntSet
, _drStatus :: DoorStatus
, _drTrigger :: WdBl
, _drMech :: DrWdWd
, _drPos :: (Point2, Point2)
, _drOpenPos :: (Point2, Point2)
, _drClosePos :: (Point2, Point2)
, _drZeroPos :: (Point2,Float)
, _drOnePos :: (Point2,Float)
, _drLerp :: Float
@@ -51,6 +47,6 @@ data Door = Door
}
makeLenses ''Door
deriveJSON defaultOptions ''DoorStatus
--deriveJSON defaultOptions ''DoorStatus
deriveJSON defaultOptions ''PushSource
deriveJSON defaultOptions ''Door
+4 -4
View File
@@ -31,12 +31,12 @@ defaultDoor =
Door
{ _drID = 0
, _drWallIDs = mempty
, _drStatus = DoorClosed
-- , _drStatus = DoorClosed
, _drTrigger = WdBlConst False
, _drMech = DrWdId
, _drPos = (0, 0)
, _drOpenPos = (0, 0)
, _drClosePos = (0, 0)
-- , _drPos = (0, 0)
-- , _drOpenPos = (0, 0)
-- , _drClosePos = (0, 0)
, _drZeroPos = (0,0)
, _drOnePos = (0,0)
, _drLerp = 0
+14 -32
View File
@@ -1,15 +1,13 @@
module Dodge.DrWdWd (doDrWdWd) where
import Dodge.Wall.Move
import Dodge.ShiftPoint
import Linear
import Data.IntMap.Merge.Strict
import Control.Lens
import Data.Maybe
import Dodge.Block.Debris
import Dodge.Data.World
import Dodge.ShiftPoint
import Dodge.SoundLogic
import Dodge.Wall.Move
import Dodge.WorldBool
import Geometry
doDrWdWd :: DrWdWd -> Door -> World -> World
doDrWdWd dww = case dww of
@@ -18,20 +16,15 @@ doDrWdWd dww = case dww of
DoorLerp -> doorLerp
doorLerp :: Door -> World -> World
doorLerp dr w = case newlerp of
Just x ->
w' x
-- & cWorld . lWorld . walls %~ merge dropMissing preserveMissing f
-- (wlposs x)
& moveUpdate
doorLerp dr w = fromMaybe w $ do
x <- newlerp
return $
f x
& playSound x
& cWorld . lWorld . doors . ix drid . drLerp .~ x
Nothing -> w
where
w' = ifoldl' (\i v p -> moveWallID i p v) w . wlposs
-- f = zipWithMatched $ \_ l wl -> wl & wlLine .~ l
(zp,za) = dr^. drZeroPos
(yp,ya) = dr^. drOnePos
p2a x = (zp + x *^ (yp - zp) , za + x * diffAngles ya za)
f = ifoldl' (flip . moveWallID) w . wlposs
p2a = lerpP2A (dr ^. drZeroPos) (dr ^. drOnePos)
wlposs x = (dr ^. drFootPrint) & each . each %~ shiftPointBy (p2a x)
clerp = dr ^. drLerp
newlerp
@@ -39,21 +32,10 @@ doorLerp dr w = case newlerp of
| clerp > 0 && not toOpen = Just . max 0 $ clerp - speed
| otherwise = Nothing
toOpen = doWdBl (_drTrigger dr) w
-- mvDir
-- | toOpen && _drStatus dr == DoorOpen = Nothing -- Not sure why necessary
-- | toOpen && dist dpos dop > 0.5 = Just $ vecBetweenSpeed speed dpos dop
-- | dist dpos dcp > 0.5 = Just $ vecBetweenSpeed speed dpos dcp
-- | otherwise = Nothing
speed = _drSpeed dr
drid = _drID dr
moveUpdate = playSound . setStatus
playSound
| _drPushedBy dr == PushesItself = soundContinue (WallSound drid) dpos slideDoorS (Just 1)
playSound x
| _drPushedBy dr == PushesItself =
soundContinue (WallSound drid) (fst $ p2a x) slideDoorS (Just 1)
| otherwise = id
dpos = snd $ _drPos dr
dop = snd $ _drOpenPos dr
dcp = snd $ _drClosePos dr
setStatus
| dist dpos dop < 1 = cWorld . lWorld . doors . ix drid . drStatus .~ DoorOpen
| dist dpos dcp < 1 = cWorld . lWorld . doors . ix drid . drStatus .~ DoorClosed
| otherwise = cWorld . lWorld . doors . ix drid . drStatus .~ DoorHalfway
-- dpos = snd $ _drPos dr
@@ -37,13 +37,8 @@ plDoor col eo cond l p1 p2 gw = (drid, over gwWorld addWalls $ gw & gwWorld . cW
defaultDoor
{ _drID = drid
, _drWallIDs = IS.fromList wlids
, _drStatus = DoorInt 0
, _drTrigger = cond
--, _drMech = DrWdMechanismStepwise nsteps wlids pss
, _drMech = DoorLerp
-- , _drPos = head pss
-- , _drOpenPos = head pss
-- , _drClosePos = last pss
, _drZeroPos = p1
, _drOnePos = p2
, _drLerp = 0
@@ -102,12 +97,7 @@ plSlideDoor dr wl eo shiftOffset a b gw =
dr
{ _drID = drid
, _drWallIDs = IS.fromList wlids
, _drStatus = DoorClosed
-- , _drMech = DoorMechanism
, _drMech = DoorLerp
, _drPos = (a, b)
, _drOpenPos = (shiftLeft a, shiftLeft b)
, _drClosePos = (a, b)
, _drZeroPos = (a, 0)
, _drOnePos = (shiftLeft a, 0)
, _drLerp = 0
+4
View File
@@ -3,6 +3,7 @@
module Dodge.ShiftPoint where
import Geometry
import Linear
shiftPointBy :: Point2A -> Point2 -> Point2
shiftPointBy (pos, rot) !p = pos +.+ rotateV rot p
@@ -10,6 +11,9 @@ shiftPointBy (pos, rot) !p = pos +.+ rotateV rot p
compP2A :: Point2A -> Point2A -> Point2A
compP2A (p1,r1) (p2,r2) = (p1 +.+ rotateV r1 p2, r1 + r2)
lerpP2A :: Point2A -> Point2A -> Float -> Point2A
lerpP2A (p1,a1) (p2,a2) x = (p1 + x *^ (p2 - p1), a1 + x * diffAngles a2 a1)
invShiftPointBy :: (Point2, Float) -> Point2 -> Point2
invShiftPointBy (p1, r) p2 = rotateV (- r) $ p2 -.- p1
-31
View File
@@ -3,15 +3,9 @@
module Dodge.Wall.Move (
moveWallID,
moveWallIDUnsafe,
moveWall,
moveWallIDToward,
translateWallID,
mvPs,
) where
import Control.Lens
import Data.Maybe
import Dodge.Base
import Dodge.Data.World
import Dodge.Wall.Zone
import Geometry
@@ -33,28 +27,3 @@ moveWall wlid wl wlline w =
& insertWallInZones newwl
where
newwl = wl{_wlLine = wlline}
translateWallID :: Int -> Point2 -> World -> World
translateWallID wlid p w = fromMaybe w $ do
oldwl <- w ^? cWorld . lWorld . walls . ix wlid
let newwl = oldwl & wlLine . each +~ p
return $
w
& cWorld . lWorld . walls . ix wlid .~ newwl
& deleteWallFromZones oldwl
& insertWallInZones newwl
moveWallIDToward :: Int -> Float -> (Point2, Point2) -> World -> World
moveWallIDToward wlid speed ep w = moveWall wlid wl newwlline w
where
--wl = _walls (_cWorld w) IM.! wlid
wl = w ^?! cWorld . lWorld . walls . ix wlid
newwlline = mvPs speed ep (_wlLine wl)
mvP :: Float -> Point2 -> Point2 -> Point2
{-# INLINE mvP #-}
mvP !speed !ep !p = mvPointTowardAtSpeed speed ep p
mvPs :: Float -> (Point2, Point2) -> (Point2, Point2) -> (Point2, Point2)
{-# INLINE mvPs #-}
mvPs !speed (!ex, !ey) (!sx, !sy) = (mvP speed ex sx, mvP speed ey sy)
+3 -3
View File
@@ -1,15 +1,15 @@
{-# OPTIONS -Wno-incomplete-uni-patterns #-}
module Dodge.WdP2f (doWdP2f) where
import Dodge.ShiftPoint
import Control.Lens
import Dodge.Data.World
import Geometry.Data
import Geometry.Vector
-- # OPTIONS -Wno-incomplete-uni-patterns #-}
doWdP2f :: WdP2f -> World -> (Point2, Float)
doWdP2f x = case x of
WdP2f0 -> const (0, 0)
WdP2fDoorPosition drid -> \w ->
let Just (a, b) = w ^? cWorld . lWorld . doors . ix drid . drPos
in (b, argV (a -.- b))
let dr = w ^?! cWorld . lWorld . doors . ix drid
in lerpP2A (dr ^. drZeroPos) (dr ^. drOnePos) (dr ^. drLerp)
+2 -1
View File
@@ -13,7 +13,8 @@ doWdBl wb w = case wb of
WdTrig i -> fromMaybe False $ w ^? cWorld . lWorld . triggers . ix i
WdBlDoorMoving i -> fromMaybe False $ do
dr <- w ^? cWorld . lWorld . doors . ix i
return (DoorHalfway == _drStatus dr)
--return (DoorHalfway == _drStatus dr)
return (0 /= _drLerp dr && 1 /= _drLerp dr)
WdBlCrFilterNearPoint r p t -> any (crNearPoint r p) (IM.filter (doCrBl t) (w ^. cWorld . lWorld . creatures))
WdBlBtOn btid -> w ^?! cWorld . lWorld . buttons . ix btid . btEvent . btOn -- unsafe
WdBlNegate x -> not $ doWdBl x w
+45 -61
View File
@@ -350,21 +350,14 @@ DoReplicate src/Dodge/Data/ActionPlan.hs 106;" C
DoReplicatePartial src/Dodge/Data/ActionPlan.hs 110;" C
DockingBaySS src/Dodge/Data/Scenario.hs 92;" C
Door src/Dodge/Data/Door.hs 30;" t
DoorClosed src/Dodge/Data/Door.hs 21;" C
DoorHalfway src/Dodge/Data/Door.hs 21;" C
DoorInt src/Dodge/Data/Door.hs 21;" C
DoorLerp src/Dodge/Data/WorldEffect.hs 70;" C
DoorMechanism src/Dodge/Data/WorldEffect.hs 69;" C
DoorLerp src/Dodge/Data/WorldEffect.hs 66;" C
DoorObstacle src/Dodge/Data/PathGraph.hs 50;" C
DoorOpen src/Dodge/Data/Door.hs 21;" C
DoorPart src/Dodge/Data/Wall/Structure.hs 12;" C
DoorStatus src/Dodge/Data/Door.hs 21;" t
DoubleRes src/Dodge/Data/Config.hs 98;" C
DoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 14;" t
DrWdId src/Dodge/Data/WorldEffect.hs 66;" C
DrWdMakeDoorDebris src/Dodge/Data/WorldEffect.hs 67;" C
DrWdMechanismStepwise src/Dodge/Data/WorldEffect.hs 68;" C
DrWdWd src/Dodge/Data/WorldEffect.hs 65;" t
DrWdId src/Dodge/Data/WorldEffect.hs 64;" C
DrWdMakeDoorDebris src/Dodge/Data/WorldEffect.hs 65;" C
DrWdWd src/Dodge/Data/WorldEffect.hs 63;" t
DrawForceField src/Dodge/Data/Wall.hs 45;" C
DrawnWall src/Dodge/Data/Wall.hs 41;" C
DroneAmmo src/Dodge/Data/AmmoType.hs 10;" C
@@ -1480,9 +1473,9 @@ WdCrSafeDistFromTarget src/Dodge/Data/CreatureEffect.hs 17;" C
WdCrTrue src/Dodge/Data/CreatureEffect.hs 13;" C
WdP2 src/Dodge/Data/WorldEffect.hs 38;" t
WdP2Const src/Dodge/Data/WorldEffect.hs 39;" C
WdP2f src/Dodge/Data/WorldEffect.hs 60;" t
WdP2f0 src/Dodge/Data/WorldEffect.hs 61;" C
WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 62;" C
WdP2f src/Dodge/Data/WorldEffect.hs 59;" t
WdP2f0 src/Dodge/Data/WorldEffect.hs 60;" C
WdP2fDoorPosition src/Dodge/Data/WorldEffect.hs 61;" C
WdTrig src/Dodge/Data/WorldEffect.hs 51;" C
WdWd src/Dodge/Data/WorldEffect.hs 20;" t
WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 34;" C
@@ -1765,7 +1758,6 @@ _doReplicateAction src/Dodge/Data/ActionPlan.hs 113;" f
_doReplicateTimes src/Dodge/Data/ActionPlan.hs 107;" f
_doReplicateTimes src/Dodge/Data/ActionPlan.hs 112;" f
_doors src/Dodge/Data/LWorld.hs 118;" f
_drClosePos src/Dodge/Data/Door.hs 38;" f
_drDeath src/Dodge/Data/Door.hs 44;" f
_drFootPrint src/Dodge/Data/Door.hs 42;" f
_drHP src/Dodge/Data/Door.hs 43;" f
@@ -1775,12 +1767,9 @@ _drMech src/Dodge/Data/Door.hs 35;" f
_drMounts src/Dodge/Data/Door.hs 48;" f
_drObstacleType src/Dodge/Data/Door.hs 50;" f
_drOnePos src/Dodge/Data/Door.hs 40;" f
_drOpenPos src/Dodge/Data/Door.hs 37;" f
_drPos src/Dodge/Data/Door.hs 36;" f
_drPushedBy src/Dodge/Data/Door.hs 46;" f
_drPushes src/Dodge/Data/Door.hs 47;" f
_drSpeed src/Dodge/Data/Door.hs 45;" f
_drStatus src/Dodge/Data/Door.hs 33;" f
_drTrigger src/Dodge/Data/Door.hs 34;" f
_drWallIDs src/Dodge/Data/Door.hs 32;" f
_drZeroPos src/Dodge/Data/Door.hs 39;" f
@@ -2559,13 +2548,13 @@ aimDelaySweep src/Dodge/Render/Picture.hs 287;" f
aimStanceInfo src/Dodge/Item/Info.hs 243;" f
aimTurn src/Dodge/Creature/YourControl.hs 181;" f
airlock src/Dodge/Room/Airlock.hs 23;" f
airlock0 src/Dodge/Room/Airlock.hs 67;" f
airlock90 src/Dodge/Room/Airlock.hs 179;" f
airlockCrystal src/Dodge/Room/Airlock.hs 221;" f
airlockDoor src/Dodge/Room/Airlock.hs 94;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 97;" f
airlockSimple src/Dodge/Room/Airlock.hs 109;" f
airlockZ src/Dodge/Room/Airlock.hs 141;" f
airlock0 src/Dodge/Room/Airlock.hs 71;" f
airlock90 src/Dodge/Room/Airlock.hs 208;" f
airlockCrystal src/Dodge/Room/Airlock.hs 253;" f
airlockDoor src/Dodge/Room/Airlock.hs 98;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 101;" f
airlockSimple src/Dodge/Room/Airlock.hs 117;" f
airlockZ src/Dodge/Room/Airlock.hs 159;" f
allVisibleWalls src/Dodge/Base/Collide.hs 225;" f
alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
@@ -2763,7 +2752,7 @@ bulletWeapons src/Dodge/Combine/Combinations.hs 248;" f
burstRifle src/Dodge/Item/Held/Cane.hs 30;" f
buttonFlip src/Dodge/Button/Event.hs 17;" f
buzzS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 702;" f
cChasm src/Dodge/Room/Tutorial.hs 115;" f
cChasm src/Dodge/Room/Tutorial.hs 121;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
@@ -2798,7 +2787,7 @@ chaseCritInternal src/Dodge/Humanoid.hs 7;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 120;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 32;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 36;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 182;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 188;" f
chasmTest src/Dodge/Creature/Update.hs 132;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 120;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
@@ -2904,7 +2893,7 @@ combineTree src/Dodge/Tree/Compose.hs 67;" f
commandColor src/Dodge/Terminal.hs 114;" f
commonPrefix src/Dodge/Debug/Terminal.hs 149;" f
comp src/Quaternion.hs 61;" f
compP2A src/Dodge/ShiftPoint.hs 10;" f
compP2A src/Dodge/ShiftPoint.hs 11;" f
compactDraw src/Dodge/LevelGen.hs 94;" f
compactDraw' src/Dodge/LevelGen.hs 105;" f
compactDrawTree src/Dodge/LevelGen.hs 88;" f
@@ -3221,7 +3210,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
doDrWdWd src/Dodge/DrWdWd.hs 19;" f
doDrWdWd src/Dodge/DrWdWd.hs 14;" f
doDrag src/Dodge/Update/Input/InGame.hs 127;" f
doDrawing src/Dodge/Render.hs 34;" f
doDrawing' src/Dodge/Render.hs 45;" f
@@ -3258,15 +3247,13 @@ doTmWdWd src/Dodge/WorldEffect.hs 89;" f
doWallRotate src/Dodge/Update/Camera.hs 220;" f
doWdBl src/Dodge/WorldBool.hs 10;" f
doWdCrBl src/Dodge/CreatureEffect.hs 18;" f
doWdP2f src/Dodge/WdP2f.hs 12;" f
doWdP2f src/Dodge/WdP2f.hs 10;" f
doWdWd src/Dodge/WorldEffect.hs 28;" f
doWorldEvents src/Dodge/Update.hs 428;" f
doWorldPos src/Dodge/WorldPos.hs 10;" f
door src/Dodge/Room/Door.hs 14;" f
doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f
doorLerp src/Dodge/DrWdWd.hs 58;" f
doorMechanism src/Dodge/DrWdWd.hs 28;" f
doorMechanismStepwise src/Dodge/DrWdWd.hs 103;" f
doorLerp src/Dodge/DrWdWd.hs 20;" f
dotV src/Geometry/Vector.hs 76;" f
dotV3 src/Geometry/Vector3D.hs 119;" f
doubleCorridorBarrels src/Dodge/Room/Room.hs 276;" f
@@ -3552,7 +3539,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 120;" f
floorWire src/Dodge/Wire.hs 13;" f
foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
foamSprayLoopS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 554;" f
foldMTRS src/Dodge/Room/Tutorial.hs 60;" f
foldMTRS src/Dodge/Room/Tutorial.hs 66;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 24;" f
@@ -3613,8 +3600,8 @@ getCloseObj src/Dodge/Update/Input/InGame.hs 533;" f
getCommand src/Dodge/Terminal.hs 52;" f
getCommands src/Dodge/Terminal.hs 49;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 50;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 331;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 318;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 337;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 324;" f
getDebugMouseOver src/Dodge/Update.hs 376;" f
getDistortions src/Dodge/Render.hs 435;" f
getEdgesCrossing src/Dodge/Path.hs 43;" f
@@ -3631,7 +3618,7 @@ getNodePos src/Dodge/Path.hs 40;" f
getPJStabiliser src/Dodge/HeldUse.hs 1251;" f
getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 314;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 320;" f
getRootItemBounds src/Dodge/Render/HUD.hs 100;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3828,7 +3815,7 @@ invRootMap src/Dodge/Item/Grammar.hs 226;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f
invSetSelection src/Dodge/Inventory.hs 180;" f
invSetSelectionPos src/Dodge/Inventory.hs 188;" f
invShiftPointBy src/Dodge/ShiftPoint.hs 13;" f
invShiftPointBy src/Dodge/ShiftPoint.hs 17;" f
invSize src/Dodge/Inventory/CheckSlots.hs 33;" f
inventoryX src/Dodge/Creature.hs 113;" f
inverseSelNumPos src/Dodge/SelectionSections.hs 193;" f
@@ -3945,7 +3932,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 459;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
lChasm src/Dodge/Room/Tutorial.hs 124;" f
lChasm src/Dodge/Room/Tutorial.hs 130;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f
lConnectMulti src/Dodge/Render/Connectors.hs 46;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 90;" f
@@ -3987,6 +3974,7 @@ leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 197;" f
leftWristPQ src/Dodge/Creature/HandPos.hs 81;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 468;" f
lerpP2A src/Dodge/ShiftPoint.hs 14;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 112;" f
light src/Color.hs 104;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 51;" f
@@ -4195,7 +4183,7 @@ mglCreate src/GLHelp.hs 8;" f
mglDelete src/GLHelp.hs 14;" f
midBarDecoration src/Dodge/Placement/TopDecoration.hs 16;" f
midBounds src/Dodge/Room/Foreground.hs 151;" f
midChasm src/Dodge/Room/Tutorial.hs 145;" f
midChasm src/Dodge/Room/Tutorial.hs 151;" f
midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 83;" f
@@ -4240,10 +4228,9 @@ moveRoomBy src/Dodge/Room/Link.hs 53;" f
moveShockwave src/Dodge/Shockwave/Update.hs 13;" f
moveStuckGrenade src/Dodge/Projectile/Update.hs 196;" f
moveToSideNthOutLink src/Dodge/Room/Warning.hs 69;" f
moveWall src/Dodge/Wall/Move.hs 29;" f
moveWallID src/Dodge/Wall/Move.hs 24;" f
moveWallIDToward src/Dodge/Wall/Move.hs 47;" f
moveWallIDUnsafe src/Dodge/Wall/Move.hs 19;" f
moveWall src/Dodge/Wall/Move.hs 23;" f
moveWallID src/Dodge/Wall/Move.hs 18;" f
moveWallIDUnsafe src/Dodge/Wall/Move.hs 13;" f
moveZoomCamera src/Dodge/Update/Camera.hs 87;" f
mtTopLabels src/Dodge/Tree/Compose.hs 50;" f
mtUnderLabels src/Dodge/Tree/Compose.hs 53;" f
@@ -4262,13 +4249,11 @@ mvCr src/Dodge/Placement/PlaceSpot.hs 196;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 203;" f
mvGust src/Dodge/Update.hs 784;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 275;" f
mvP src/Dodge/Wall/Move.hs 54;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f
mvPointToward src/Dodge/Base.hs 136;" f
mvPointTowardAtSpeed src/Dodge/Base.hs 105;" f
mvProp src/Dodge/Placement/PlaceSpot.hs 190;" f
mvPs src/Dodge/Wall/Move.hs 58;" f
myIntersectLineLine src/Geometry/Intersect.hs 198;" f
myIntersectSegSeg src/Geometry/Intersect.hs 176;" f
myParams src/Dodge/Combine/Graph.hs 101;" f
@@ -4491,8 +4476,8 @@ pokeWall src/Shader/Poke.hs 78;" f
pokeWallsWindows src/Shader/Poke.hs 50;" f
poly3 src/Picture/Base.hs 84;" f
poly3Col src/Picture/Base.hs 88;" f
polyChasm src/Dodge/Room/Tutorial.hs 166;" f
polyChasmC src/Dodge/Room/Tutorial.hs 175;" f
polyChasm src/Dodge/Room/Tutorial.hs 172;" f
polyChasmC src/Dodge/Room/Tutorial.hs 181;" f
polyCirc src/Shape.hs 46;" f
polyCircx src/Shape.hs 51;" f
polyCornerDist src/Geometry/Polygon.hs 61;" f
@@ -4680,7 +4665,7 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 159;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 907;" f
removeDot src/ShortShow.hs 44;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Tutorial.hs 231;" f
removeLights src/Dodge/Room/Tutorial.hs 237;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 58;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 26;" f
@@ -4859,7 +4844,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 197;" f
sensorRoom src/Dodge/Room/SensorDoor.hs 26;" f
sensorRoomRunPast src/Dodge/Room/SensorDoor.hs 46;" f
sensorSPic src/Dodge/Machine/Draw.hs 81;" f
sensorTut src/Dodge/Room/Tutorial.hs 340;" f
sensorTut src/Dodge/Room/Tutorial.hs 346;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 234;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 81;" f
@@ -4886,7 +4871,7 @@ setOutLinks src/Dodge/RoomLink.hs 50;" f
setOutLinksByType src/Dodge/RoomLink.hs 75;" f
setOutLinksPD src/Dodge/RoomLink.hs 95;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 290;" f
setRoomInt src/Dodge/Room/Tutorial.hs 67;" f
setRoomInt src/Dodge/Room/Tutorial.hs 73;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 290;" f
@@ -4896,7 +4881,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 82;" f
setTile src/Dodge/Layout.hs 70;" f
setTiles src/Dodge/Layout.hs 67;" f
setToggle src/Dodge/Prop/Update.hs 44;" f
setTreeInts src/Dodge/Room/Tutorial.hs 74;" f
setTreeInts src/Dodge/Room/Tutorial.hs 80;" f
setViewDistance src/Dodge/Update/Camera.hs 236;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 440;" f
@@ -4948,8 +4933,8 @@ shiftLinkBy src/Dodge/Room/Link.hs 87;" f
shiftPSBy src/Dodge/Placement/Shift.hs 12;" f
shiftPathBy src/Dodge/Room/Link.hs 92;" f
shiftPlacement src/Dodge/Placement/Shift.hs 21;" f
shiftPoint3By src/Dodge/ShiftPoint.hs 16;" f
shiftPointBy src/Dodge/ShiftPoint.hs 7;" f
shiftPoint3By src/Dodge/ShiftPoint.hs 20;" f
shiftPointBy src/Dodge/ShiftPoint.hs 8;" f
shiftPosDirBy src/Dodge/Room/Link.hs 84;" f
shiftRelativeToPS src/Dodge/Placement/Shift.hs 18;" f
shiftRoomBy src/Dodge/Room/Link.hs 37;" f
@@ -5294,7 +5279,6 @@ translateToLeftHand src/Dodge/Creature/HandPos.hs 78;" f
translateToLeftLeg src/Dodge/Creature/HandPos.hs 97;" f
translateToRightHand src/Dodge/Creature/HandPos.hs 54;" f
translateToRightLeg src/Dodge/Creature/HandPos.hs 112;" f
translateWallID src/Dodge/Wall/Move.hs 37;" f
translateXY src/Polyhedra.hs 26;" f
trapezionBWHW src/Geometry/Polygon.hs 26;" f
treeAttachDeep src/TreeHelp.hs 193;" f
@@ -5335,12 +5319,12 @@ turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 37;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 41;" f
tutDrop src/Dodge/Room/Tutorial.hs 79;" f
tutHub src/Dodge/Room/Tutorial.hs 238;" f
tutLight src/Dodge/Room/Tutorial.hs 203;" f
tutRezBox src/Dodge/Room/Tutorial.hs 351;" f
tutDrop src/Dodge/Room/Tutorial.hs 85;" f
tutHub src/Dodge/Room/Tutorial.hs 244;" f
tutLight src/Dodge/Room/Tutorial.hs 209;" f
tutRezBox src/Dodge/Room/Tutorial.hs 357;" f
tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 375;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 381;" f
tweenAngles src/Geometry/Vector.hs 190;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f
@@ -5653,7 +5637,7 @@ yourInv src/Dodge/Base/You.hs 28;" f
yourRootItem src/Dodge/Base/You.hs 22;" f
yourSelectedItem src/Dodge/Base/You.hs 16;" f
yourStatsInfo src/Dodge/Creature/Info.hs 27;" f
zChasm src/Dodge/Room/Tutorial.hs 133;" f
zChasm src/Dodge/Room/Tutorial.hs 139;" f
zConnect src/Dodge/Render/Connectors.hs 17;" f
zConnectCol src/Dodge/Render/Connectors.hs 28;" f
zConnectColMidX src/Dodge/Render/Connectors.hs 31;" f