Improve some door placement

This commit is contained in:
2025-10-24 20:30:36 +01:00
parent 95b4105f52
commit b0d519c69d
9 changed files with 92 additions and 115 deletions
-13
View File
@@ -1,13 +0,0 @@
--{-# LANGUAGE LambdaCase #-}
module Dodge.Block.Draw () where
--
--import Dodge.Data.Block
--import Shape
--import ShapePicture
--drawBlock :: BlockDraw -> SPic
--drawBlock = \case
-- BlockDrawMempty -> mempty
---- BlockDraws bds -> foldMap drawBlock bds
---- BlockDrawColHeightPoss col h ps -> noPic $ colorSH col (upperBox Medium Typical h ps)
-- BlockDrawBlSh x -> noPic x
+2 -16
View File
@@ -22,27 +22,13 @@ data Block = Block
, _blWallIDs :: IS.IntSet
, _blHP :: Int
, _blShadows :: [Int] -- a list of walls that are not shown when this block exists
, _blFootprint :: [Point2] -- TODO check whether this should be clockwise/anticlockwise
, _blFootprint :: [Point2] -- TODO check whether this should be clockwise/anticlockwise
, _blPos :: Point2
, _blDir :: Float
, _blHeight :: Float
-- , _blDraw :: BlockDraw
, _blDraw :: Shape
, _blDraw :: Shape -- should probably make a data type for instances of these...
}
deriving (Eq, Ord, Show, Read) --Generic, Flat)
--data BlockDraw
-- = BlockDrawMempty
-- | BlockDrawBlSh Shape
---- | BlockDraws [BlockDraw]
---- | BlockDrawColHeightPoss Color Float [Point2]
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
--
--data BlSh
-- = BlShConst Shape
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''Block
--deriveJSON defaultOptions ''BlSh
--deriveJSON defaultOptions ''BlockDraw
deriveJSON defaultOptions ''Block
+1 -1
View File
@@ -54,7 +54,7 @@ data PSType
| PutWall {_pwPoly :: [Point2], _pwWall :: Wall}
| PutSlideDr Bool Door Wall (S.Set EdgeObstacle) Float Point2 Point2
-- | PutDoor Color EdgeObstacle WdBl [(Point2, Point2)]
| PutDoor Bool (S.Set EdgeObstacle) WdBl Float Point2A Point2A -- [(Point2, Point2)]
| PutDoor Bool WdBl Float Point2A Point2A
| RandPS (State StdGen PSType)
| PutForeground ForegroundShape
| PutWorldUpdate (Int -> PlacementSpot -> GenWorld -> GenWorld)
+9 -14
View File
@@ -6,6 +6,7 @@
-}
module Dodge.Placement.PlaceSpot (placeSpot) where
import Dodge.Placement.PlaceSpot.Block
import Control.Monad.State
import Data.Bifunctor
import Data.Foldable
@@ -16,7 +17,6 @@ import Dodge.Base.NewID
import Dodge.Data.GenWorld
import Dodge.Default.Wall
import Dodge.Path
import Dodge.Placement.PlaceSpot.Block
import Dodge.Placement.PlaceSpot.TriggerDoor
import Dodge.Placement.Shift
import Dodge.ShiftPoint
@@ -134,7 +134,7 @@ placeSpotID rid ps pt w = case pt of
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
RandPS _ -> error "RandPS should not be reachable here" --evaluateRandPS rid rgn ps w
PutDoor isauto eo f l p1 p2 -> plDoor isauto eo f l (pashift p1) (pashift p2) w
PutDoor isauto f l p1 p2 -> plDoor isauto f l (pashift p1) (pashift p2) w
PutCoord cp -> plNewID (gwWorld . coordinates) (doShift cp) w
PutSlideDr isauto wl dr eo off a b ->
plSlideDoor isauto wl dr eo off (doShift a) (doShift b) w
@@ -180,9 +180,9 @@ placeWallPoly qs wl w
| otherwise = error "tried to place wall poly with too few points"
addPane :: Wall -> World -> (Point2, Point2) -> World
addPane wl w l =
w & plNew (cWorld . lWorld . walls) wlID (wl & wlLine .~ l)
& uncurry (obstructPathsCrossing (S.fromList [WallObstacle WallNotAutoOpen])) l
addPane wl w l = insertWall (wl & wlLine .~ l & wlID .~ i) w
where
i = IM.newKey $ w ^. cWorld . lWorld . walls
mvProp :: Point2 -> Float -> Prop -> Prop
mvProp p a = (prRot +~ a) . (prPos %~ ((p +.+) . rotateV a))
@@ -211,7 +211,7 @@ plMachine ::
plMachine wallpoly mc mitm p rot gw =
( mcid
, gw & tolw . machines . at mcid ?~ themc
& tolw . walls %~ placeMachineWalls wallpoly mcid wlid
& gwWorld %~ placeMachineWalls wallpoly mcid wlid
& tolw %~ maybe id placeturretitm mitm
)
where
@@ -227,15 +227,10 @@ plMachine wallpoly mc mitm p rot gw =
itid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . items
itm' = itm & itID .~ NInt itid & itLocation .~ OnTurret mcid
-- TODO correctly remove/shift pathfinding lines (removePathsCrossing)
placeMachineWalls :: [Point2] -> Int -> Int -> IM.IntMap Wall -> IM.IntMap Wall
placeMachineWalls poly mcid wlid = flip (foldr f) $ zip [wlid ..] $ loopPairs poly
placeMachineWalls :: [Point2] -> Int -> Int -> World -> World
placeMachineWalls poly mcid = insertStructureWalls MachinePart baseWall poly mcid
where
f (wid, l) = IM.insert wid baseWall{_wlID = wid, _wlLine = l}
baseWall =
defaultMachineWall
& wlStructure . wsMachine .~ mcid
& wlTouchThrough .~ True
baseWall = defaultMachineWall & wlStructure . wsMachine .~ mcid
mvLS :: Point3 -> Float -> LightSource -> LightSource
mvLS (V3 x y z) rot ls = ls & lsParam . lsPos .~ V3 x y z +.+.+ startPos
+21 -7
View File
@@ -2,16 +2,18 @@
module Dodge.Placement.PlaceSpot.Block (
plBlock,
plLineBlock,
insertWall,
insertStructureWalls,
) where
import Dodge.Wall.Pathing
import qualified Data.Set as S
import Control.Lens
import qualified Data.IntSet as IS
import Data.List
import qualified Data.Set as S
import Dodge.Base
import Dodge.Data.GenWorld
import Dodge.Path
import Dodge.Wall.Pathing
import Geometry
import qualified IntMapHelp as IM
@@ -26,15 +28,26 @@ plBlock ps bl wl w =
, _blShadows = []
, _blFootprint = ps
}
& gwWorld %~ insertWalls wls
& gwWorld %~ insertStructureWalls BlockPart wl ps blid i
where
blid = IM.newKey $ w ^. gwWorld . cWorld . lWorld . blocks
i = IM.newKey $ w ^. gwWorld . cWorld . lWorld . walls
is = take (length ps) [i .. ]
is = take (length ps) [i ..]
insertStructureWalls ::
(Int -> WallStructure) ->
Wall ->
[Point2] ->
Int ->
Int ->
World ->
World
insertStructureWalls f wl ps sid wid = insertWalls wls
where
wls =
zipWith
(\j ln -> wl & wlLine .~ ln & wlID .~ j & wlStructure .~ BlockPart blid)
is
(\i xy -> wl & wlLine .~ xy & wlID .~ i & wlStructure .~ f sid)
[wid ..]
(loopPairs ps)
-- | Splits a line into many four cornered blocks.
@@ -107,6 +120,7 @@ insertWalls wls w = foldl' (flip insertWall) w wls
insertWall :: Wall -> World -> World
insertWall wl =
uncurry (obstructPathsCrossing (S.map WallObstacle $ getWallPathing wl))
uncurry
(obstructPathsCrossing (S.map WallObstacle $ getWallPathing wl))
(_wlLine wl)
. (cWorld . lWorld . walls . at (_wlID wl) ?~ wl)
+9 -7
View File
@@ -4,6 +4,7 @@ module Dodge.Placement.PlaceSpot.TriggerDoor (
updateDoorEdges,
) where
import Dodge.Placement.PlaceSpot.Block
import Data.List
import qualified Data.Set as S
import Dodge.Data.GenWorld
@@ -19,7 +20,6 @@ import Linear
plDoor ::
Bool ->
S.Set EdgeObstacle ->
-- | Opening condition
WdBl ->
-- | Door positions, closed to open.
@@ -29,7 +29,7 @@ plDoor ::
Point2A ->
GenWorld ->
(Int, GenWorld)
plDoor isauto eo cond l p1 p2 gw = (drid, over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors %~ addDoor) -- carefull with the ordering of addWalls
plDoor isauto cond l p1 p2 gw = (drid, over gwWorld addWalls $ gw & gwWorld . cWorld . lWorld . doors %~ addDoor) -- carefull with the ordering of addWalls
where
drid = IM.newKey $ _doors (_lWorld (_cWorld $ _gwWorld gw))
addDoor =
@@ -43,13 +43,15 @@ plDoor isauto eo cond l p1 p2 gw = (drid, over gwWorld addWalls $ gw & gwWorld .
, _drLerp = 0
, _drFootPrint = IM.fromList . zip wlids $ wlps'
}
wlids = take 4 [IM.newKey $ _walls (_lWorld (_cWorld $ _gwWorld gw)) ..]
wlids = take 4 [wlid..]
wlid = IM.newKey $ gw ^. gwWorld . cWorld . lWorld . walls
wlps' = rectanglePairs 9 0 (V2 l 0)
addWalls = insertStructureWalls (`DoorPart` isauto) defaultDoorWall
(map fst wlps' & each %~ shiftPointBy p1) drid wlid
--addWalls w' = foldl' (addDoorWall eo drid $ switchWallCol col) w' $ zip wlids
addWalls w' =
foldl' (addDoorWall isauto eo drid defaultDoorWall) w' $
zip wlids $
wlps' & each . each %~ shiftPointBy p1
-- foldl' (addDoorWall isauto eo drid defaultDoorWall) w' $
-- zip wlids $
-- wlps' & each . each %~ shiftPointBy p1
addDoorWall ::
Bool ->
+1 -2
View File
@@ -96,9 +96,8 @@ airlock0 =
]
col = dim $ dim $ bright red
--airlockDoor :: Color -> WdBl -> [(Point2, Point2)] -> PSType
airlockDoor :: WdBl -> Float -> Point2A -> Point2A -> PSType
airlockDoor = PutDoor False switchWallObs
airlockDoor = PutDoor False
airlockDoubleDoor ::
Point2 ->
+3 -2
View File
@@ -1,3 +1,4 @@
{-# OPTIONS_GHC -Wno-unused-imports #-}
module Dodge.Room.Tutorial where
import Dodge.Room.Tanks
@@ -44,10 +45,10 @@ tutAnoTree = do
foldMTRS
[ tToBTree "TutStartRez" . return . cleatOnward <$> tutRezBox
, corDoor
, tToBTree "lastun" . return . cleatOnward <$> tanksRoom [] []
-- , 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
+46 -53
View File
@@ -126,16 +126,9 @@ BlBl src/Dodge/Data/BlBl.hs 9;" t
BlConst src/Dodge/Data/BlBl.hs 11;" C
BlId src/Dodge/Data/BlBl.hs 12;" C
BlNegate src/Dodge/Data/BlBl.hs 10;" C
BlSh src/Dodge/Data/Block.hs 40;" t
BlShConst src/Dodge/Data/Block.hs 41;" C
Block src/Dodge/Data/Block.hs 20;" t
BlockDebris src/Dodge/Data/Prop.hs 29;" C
BlockDegradeSound src/Dodge/Data/SoundOrigin.hs 30;" C
BlockDraw src/Dodge/Data/Block.hs 33;" t
BlockDrawBlSh src/Dodge/Data/Block.hs 35;" C
BlockDrawColHeightPoss src/Dodge/Data/Block.hs 37;" C
BlockDrawMempty src/Dodge/Data/Block.hs 34;" C
BlockDraws src/Dodge/Data/Block.hs 36;" C
BlockPart src/Dodge/Data/Wall/Structure.hs 14;" C
BlockedLink src/Dodge/Data/Room.hs 50;" C
BloomLayer src/Picture/Data.hs 23;" C
@@ -2628,7 +2621,7 @@ bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 668;" f
bangStick src/Dodge/Item/Held/Stick.hs 15;" f
barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 78;" f
barrelShape src/Dodge/Render/ShapePicture.hs 80;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 406;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 98;" f
baseCI src/Dodge/Item/Grammar.hs 158;" f
@@ -2711,7 +2704,7 @@ branchRectWith src/Dodge/Room/Branch.hs 15;" f
branchWith src/Dodge/Room/Room.hs 69;" f
bright src/Color.hs 120;" f
brightX src/Color.hs 116;" f
btSPic src/Dodge/Render/ShapePicture.hs 127;" f
btSPic src/Dodge/Render/ShapePicture.hs 129;" f
btText src/Dodge/Inventory/SelectionList.hs 237;" f
bufferEBO src/Shader/Bind.hs 28;" f
bufferPokedVBO src/Shader/Bind.hs 19;" f
@@ -2725,7 +2718,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 134;" f
cChasm src/Dodge/Room/Tutorial.hs 135;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
@@ -2760,7 +2753,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 201;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 202;" f
chasmTest src/Dodge/Creature/Update.hs 132;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 118;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
@@ -2980,7 +2973,7 @@ crsNearRect src/Dodge/Zoning/Creature.hs 39;" f
crsNearSeg src/Dodge/Zoning/Creature.hs 24;" f
crystalLine src/Dodge/Placement/Instance/Wall.hs 66;" f
cubeShape src/Dodge/Block/Debris.hs 113;" f
cullPoint src/Dodge/Render/ShapePicture.hs 94;" f
cullPoint src/Dodge/Render/ShapePicture.hs 96;" f
cullPretty src/AesonHelp.hs 14;" f
cutPoly src/Dodge/LevelGen/StaticWalls.hs 77;" f
cutWall src/Dodge/LevelGen/StaticWalls.hs 124;" f
@@ -3243,14 +3236,13 @@ drawArrowDown src/Dodge/Render/Picture.hs 221;" f
drawBaseMachine src/Dodge/Machine/Draw.hs 68;" f
drawBeam src/Dodge/Beam/Draw.hs 6;" f
drawBlip src/Dodge/RadarBlip.hs 16;" f
drawBlock src/Dodge/Block/Draw.hs 7;" f
drawBoundingBox src/Dodge/Debug/Picture.hs 354;" f
drawBullet src/Dodge/Render/ShapePicture.hs 133;" f
drawBullet src/Dodge/Render/ShapePicture.hs 135;" f
drawButton src/Dodge/Button/Draw.hs 10;" f
drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
drawChasm src/Dodge/Render/ShapePicture.hs 50;" f
drawChasm src/Dodge/Render/ShapePicture.hs 52;" f
drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f
drawCliff src/Dodge/Render/ShapePicture.hs 53;" f
drawCliff src/Dodge/Render/ShapePicture.hs 55;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 269;" f
drawCombineInventory src/Dodge/Render/HUD.hs 182;" f
@@ -3258,7 +3250,7 @@ drawConcurrentMessage src/Dodge/Render/Picture.hs 74;" f
drawCoord src/Dodge/Debug/Picture.hs 382;" f
drawCrInfo src/Dodge/Debug.hs 135;" f
drawCrInfo' src/Dodge/Debug.hs 130;" f
drawCreature src/Dodge/Render/ShapePicture.hs 69;" f
drawCreature src/Dodge/Render/ShapePicture.hs 71;" f
drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 198;" f
drawCross src/Dodge/Render/Label.hs 24;" f
drawCrossCol src/Dodge/Render/Label.hs 21;" f
@@ -3322,7 +3314,7 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f
drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
drawProp src/Dodge/Prop/Draw.hs 26;" f
drawProxSensor src/Dodge/Machine/Draw.hs 37;" f
drawPulseBall src/Dodge/Render/ShapePicture.hs 61;" f
drawPulseBall src/Dodge/Render/ShapePicture.hs 63;" f
drawQuitTerminal src/Dodge/Render/Picture.hs 147;" f
drawRBOptions src/Dodge/Render/HUD.hs 251;" f
drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f
@@ -3449,7 +3441,7 @@ explosionS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 556;" f
explosiveBarrel src/Dodge/Creature/Inanimate.hs 25;" f
extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f
extraPics src/Dodge/Render/ShapePicture.hs 99;" f
extraPics src/Dodge/Render/ShapePicture.hs 101;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 90;" f
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 99;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f
@@ -3502,11 +3494,11 @@ flockArmourChaseCrit src/Dodge/Creature/ArmourChase.hs 14;" f
flockChaseTarget src/Dodge/Creature/Boid.hs 188;" f
flockPointTarget src/Dodge/Creature/Boid.hs 204;" f
floorItemPickupInfo src/Dodge/Render/HUD.hs 231;" f
floorItemSPic src/Dodge/Render/ShapePicture.hs 120;" f
floorItemSPic src/Dodge/Render/ShapePicture.hs 122;" 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 79;" f
foldMTRS src/Dodge/Room/Tutorial.hs 80;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 24;" f
@@ -3567,8 +3559,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 350;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 337;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 351;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 338;" f
getDebugMouseOver src/Dodge/Update.hs 376;" f
getDistortions src/Dodge/Render.hs 435;" f
getEdgesCrossing src/Dodge/Path.hs 49;" f
@@ -3585,7 +3577,7 @@ getNodePos src/Dodge/Path.hs 38;" 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 333;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 334;" f
getRootItemBounds src/Dodge/Render/HUD.hs 100;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3735,9 +3727,10 @@ insertNewKey src/IntMapHelp.hs 65;" f
insertOneS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 514;" f
insertOver src/ListHelp.hs 47;" f
insertS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 446;" f
insertWall src/Dodge/Placement/PlaceSpot/Block.hs 108;" f
insertStructureWalls src/Dodge/Placement/PlaceSpot/Block.hs 43;" f
insertWall src/Dodge/Placement/PlaceSpot/Block.hs 127;" f
insertWallInZones src/Dodge/Wall/Zone.hs 20;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 105;" f
insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 124;" f
insertWithNewKeys src/IntMapHelp.hs 71;" f
intAnno src/Dodge/Floor.hs 111;" f
interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f
@@ -3900,14 +3893,14 @@ 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 143;" f
lChasm src/Dodge/Room/Tutorial.hs 144;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f
lConnectMulti src/Dodge/Render/Connectors.hs 46;" f
lShape src/Dodge/Placement/Instance/LightSource.hs 89;" f
lamp src/Dodge/Creature/Lamp.hs 21;" f
lampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 8;" f
lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 83;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 85;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 141;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 412;" f
lasPulseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 526;" f
@@ -4013,7 +4006,7 @@ lookupTrie src/SimpleTrie.hs 30;" f
loopPairs src/ListHelp.hs 30;" f
lootRoom src/Dodge/Room/Treasure.hs 58;" f
lorem src/Lorem.hs 3;" f
lowBlock src/Dodge/Placement/Instance/Block.hs 25;" f
lowBlock src/Dodge/Placement/Instance/Block.hs 26;" f
lsColPos src/Dodge/LightSource.hs 23;" f
lsColPosID src/Dodge/LightSource.hs 20;" f
lsColPosRad src/Dodge/LightSource.hs 29;" f
@@ -4115,7 +4108,7 @@ mcProxSensorTriggerUpdate src/Dodge/Machine/Update.hs 104;" f
mcProxSensorUpdate src/Dodge/Machine/Update.hs 139;" f
mcProxTest src/Dodge/Machine/Update.hs 203;" f
mcProximitySensorUpdate src/Dodge/Machine/Update.hs 171;" f
mcSPic src/Dodge/Render/ShapePicture.hs 130;" f
mcSPic src/Dodge/Render/ShapePicture.hs 132;" f
mcShootAuto src/Dodge/HeldUse.hs 1169;" f
mcShootLaser src/Dodge/HeldUse.hs 1162;" f
mcTriggerVal src/Dodge/Machine/Update.hs 110;" f
@@ -4150,7 +4143,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 164;" f
midChasm src/Dodge/Room/Tutorial.hs 165;" f
midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 83;" f
@@ -4215,7 +4208,7 @@ mvButton src/Dodge/Placement/PlaceSpot.hs 190;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 193;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 200;" f
mvGust src/Dodge/Update.hs 784;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 240;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 239;" f
mvPointAlongAtSpeed src/Dodge/Base.hs 121;" f
mvPointMeleeTarg src/Dodge/Creature/Boid.hs 327;" f
mvPointToward src/Dodge/Base.hs 136;" f
@@ -4354,9 +4347,9 @@ pipe src/Dodge/Item/Craftable.hs 32;" f
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 18;" f
plBlock src/Dodge/Placement/PlaceSpot/Block.hs 20;" f
plDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 20;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 41;" f
plLineBlock src/Dodge/Placement/PlaceSpot/Block.hs 60;" f
plMachine src/Dodge/Placement/PlaceSpot.hs 203;" f
plNew src/Dodge/Base/NewID.hs 19;" f
plNewID src/Dodge/Base/NewID.hs 7;" f
@@ -4441,8 +4434,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 185;" f
polyChasmC src/Dodge/Room/Tutorial.hs 194;" f
polyChasm src/Dodge/Room/Tutorial.hs 186;" f
polyChasmC src/Dodge/Room/Tutorial.hs 195;" f
polyCirc src/Shape.hs 46;" f
polyCircx src/Shape.hs 51;" f
polyCornerDist src/Geometry/Polygon.hs 61;" f
@@ -4561,8 +4554,8 @@ randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f
randC1 src/Dodge/Placement/Instance/Creature.hs 8;" f
randDirPS src/Dodge/PlacementSpot.hs 56;" f
randDirSpark src/Dodge/Spark.hs 55;" f
randEdgeTank src/Dodge/Room/Tanks.hs 33;" f
randEdgeTanks src/Dodge/Room/Tanks.hs 62;" f
randEdgeTank src/Dodge/Room/Tanks.hs 34;" f
randEdgeTanks src/Dodge/Room/Tanks.hs 52;" f
randFirstWeapon src/Dodge/Placement/Random.hs 8;" f
randFromPair src/RandomHelp.hs 141;" f
randInArc src/RandomHelp.hs 81;" f
@@ -4589,7 +4582,7 @@ randomPath src/TreeHelp.hs 145;" f
randomPoints bench/Bench.hs 37;" f
randomRanges src/RandomHelp.hs 16;" f
randomSelectionFromList src/RandomHelp.hs 65;" f
randomTank src/Dodge/Room/Tanks.hs 19;" f
randomTank src/Dodge/Room/Tanks.hs 20;" f
randomTreeStructure src/Dodge/Layout/Generate.hs 18;" f
randsOnCirc src/RandomHelp.hs 127;" f
randsSpread src/RandomHelp.hs 120;" f
@@ -4628,7 +4621,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 250;" f
removeLights src/Dodge/Room/Tutorial.hs 251;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 26;" f
@@ -4807,7 +4800,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 359;" f
sensorTut src/Dodge/Room/Tutorial.hs 360;" 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
@@ -4834,7 +4827,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 86;" f
setRoomInt src/Dodge/Room/Tutorial.hs 87;" 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
@@ -4844,7 +4837,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 93;" f
setTreeInts src/Dodge/Room/Tutorial.hs 94;" f
setViewDistance src/Dodge/Update/Camera.hs 236;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 69;" f
setViewport src/Dodge/Render.hs 440;" f
@@ -4886,7 +4879,7 @@ shellShape src/Dodge/Projectile/Draw.hs 35;" f
shieldWall src/Dodge/Item/BackgroundEffect.hs 77;" f
shiftByV2 src/Dodge/PlacementSpot.hs 250;" f
shiftChildren src/Dodge/Tree/Compose.hs 44;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 88;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 90;" f
shiftInBy src/Dodge/PlacementSpot.hs 247;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f
@@ -5102,8 +5095,8 @@ takeWhileArb src/ListHelp.hs 99;" f
takeWhileArb' src/ListHelp.hs 107;" f
tankShape src/Dodge/Placement/Instance/Tank.hs 22;" f
tankSquareDec src/Dodge/Placement/Instance/Tank.hs 15;" f
tanksPipesRoom src/Dodge/Room/Tanks.hs 90;" f
tanksRoom src/Dodge/Room/Tanks.hs 98;" f
tanksPipesRoom src/Dodge/Room/Tanks.hs 69;" f
tanksRoom src/Dodge/Room/Tanks.hs 77;" f
tap1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 630;" f
tap2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 562;" f
tap3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 610;" f
@@ -5278,13 +5271,13 @@ tryUseParent src/Dodge/Creature/State.hs 145;" f
turnTo src/Dodge/Movement/Turn.hs 8;" f
turret src/Dodge/Placement/Instance/Turret.hs 35;" f
turretItemOffset src/Dodge/Item/HeldOffset.hs 21;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 42;" f
tutDrop src/Dodge/Room/Tutorial.hs 98;" f
tutHub src/Dodge/Room/Tutorial.hs 257;" f
tutLight src/Dodge/Room/Tutorial.hs 222;" f
tutRezBox src/Dodge/Room/Tutorial.hs 370;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 43;" f
tutDrop src/Dodge/Room/Tutorial.hs 99;" f
tutHub src/Dodge/Room/Tutorial.hs 258;" f
tutLight src/Dodge/Room/Tutorial.hs 223;" f
tutRezBox src/Dodge/Room/Tutorial.hs 371;" f
tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 394;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 395;" f
tweenAngles src/Geometry/Vector.hs 190;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 83;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 30;" f
@@ -5600,7 +5593,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 152;" f
zChasm src/Dodge/Room/Tutorial.hs 153;" 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