This commit is contained in:
2025-10-03 20:14:41 +01:00
parent 2d44809900
commit cba3ca784a
13 changed files with 181 additions and 193 deletions
+24 -30
View File
@@ -1,14 +1,14 @@
Seed: 7114951007332849727
Room layout (compact):
0,1,2,3,4,5,6
0,1,2,3
|
+- 7,8
+- 4,5
|
+- 9,10
+- 6,7
|
+- 11,12,13
+- 8,9,10
|
14,15,16,17,18,19,20,21,22,23,24
11,12,13,14,15,16,17,18,19,20,21
Layout with room names:
tutRezBox-0
@@ -17,47 +17,41 @@ autoDoor-1
|
Corridor-2
|
glass8gon-3
doorToggle-6gon-3
|
autoDoor-4
|
Corridor-5
|
doorToggle-6gon-6
|
+- triggerDoorRoom-7
+- triggerDoorRoom-4
| |
| autoRect-8
| autoRect-5
|
+- triggerDoorRoom-9
+- triggerDoorRoom-6
| |
| autoRect-10
| autoRect-7
|
+- Corridor-11
+- Corridor-8
| |
| autoDoor-12
| autoDoor-9
| |
| autoRect-13
| roomCenterPillar-10
|
triggerDoorRoom-14
triggerDoorRoom-11
|
autoRect-15
6gon-12
|
Corridor-16
Corridor-13
|
autoRect-17
autoRect-14
|
Corridor-18
Corridor-15
|
autoRect-19
autoRect-16
|
Corridor-20
Corridor-17
|
6gon-21
6gon-18
|
defaultRoom-22
defaultRoom-19
|
autoRect-23
autoRect-20
|
Corridor-24
Corridor-21
+1 -1
View File
@@ -1,4 +1,4 @@
Generating level with seed 7114951007332849727
After 1 attempt(s), Successful generation of level with seed 7114951007332849727
25 rooms in total
22 rooms in total
+37 -51
View File
@@ -3,17 +3,13 @@ Seed: 7114951007332849727
|
1:corDoor
|
2:octo
2:DoorTest
|
3:corDoor
3:TutLight
|
4:DoorTest
4:TutDrop
|
5:TutLight
|
6:TutDrop
|
7:cor
5:cor
0:0:TutStartRez
@@ -25,57 +21,47 @@ Seed: 7114951007332849727
|
1:0:1:Corridor
2:0:octo
2:0:DoorTest
2:0:0:glass8gon
2:0:0:doorToggle-6gon
|
+- 2:0:1:triggerDoorRoom
| |
| 2:0:2:autoRect
|
+- 2:0:3:triggerDoorRoom
| |
| 2:0:4:autoRect
|
+- 2:0:5:Corridor
| |
| 2:0:6:autoDoor
| |
| 2:0:7:roomCenterPillar
|
2:0:8:triggerDoorRoom
3:0:corDoor
3:0:TutLight
3:0:0:autoDoor
3:0:0:6gon
|
3:0:1:Corridor
|
3:0:2:autoRect
|
3:0:3:Corridor
|
3:0:4:autoRect
|
3:0:5:Corridor
4:0:DoorTest
4:0:TutDrop
4:0:0:doorToggle-6gon
4:0:0:6gon
|
+- 4:0:1:triggerDoorRoom
| |
| 4:0:2:autoRect
4:0:1:defaultRoom
|
+- 4:0:3:triggerDoorRoom
| |
| 4:0:4:autoRect
|
+- 4:0:5:Corridor
| |
| 4:0:6:autoDoor
| |
| 4:0:7:autoRect
|
4:0:8:triggerDoorRoom
4:0:2:autoRect
5:0:TutLight
5:0:0:autoRect
|
5:0:1:Corridor
|
5:0:2:autoRect
|
5:0:3:Corridor
|
5:0:4:autoRect
|
5:0:5:Corridor
6:0:TutDrop
6:0:0:6gon
|
6:0:1:defaultRoom
|
6:0:2:autoRect
7:0:Corridor
5:0:Corridor
+1 -1
View File
File diff suppressed because one or more lines are too long
+40 -18
View File
@@ -6,12 +6,12 @@
-}
module Dodge.Placement.PlaceSpot (placeSpot) where
import Data.Maybe
import Color
import Control.Monad.State
import Data.Bifunctor
import Data.Foldable
import qualified Data.IntSet as IS
import Data.Maybe
import Dodge.Base.NewID
import Dodge.Data.GenWorld
import Dodge.Path
@@ -23,6 +23,7 @@ import Geometry
import qualified IntMapHelp as IM
import LensHelp
import NewInt
--import System.Random
-- when placing a placement, we update the world and the room and assign an id
@@ -40,14 +41,17 @@ placeSpot rid w plmnt = case plmnt of
placePlainPSSpot :: GenWorld -> Int -> Placement -> DPoint2 -> GenWorld
placePlainPSSpot w rid plmnt shift = case plmnt ^. plType of
RandPS rgn ->
RandPS rgn ->
let (x, g) = runState rgn (w ^. gwWorld . randGen)
in placePlainPSSpot (w & gwWorld . randGen .~ g) rid (plmnt & plType .~ x) shift
in placePlainPSSpot (w & gwWorld . randGen .~ g) rid (plmnt & plType .~ x) shift
_ ->
let (i, w') = placeSpotID rid (shiftPSBy shift (_plSpot plmnt)) (_plType plmnt) w
newplmnt = plmnt & plMID ?~ i
gw = maybe (w' & genRooms . ix rid . rmPmnts .:~ newplmnt)
(recrPlace newplmnt w') (_plIDCont plmnt w' newplmnt)
gw =
maybe
(w' & genRooms . ix rid . rmPmnts .:~ newplmnt)
(recrPlace newplmnt w')
(_plIDCont plmnt w' newplmnt)
in f newplmnt gw
where
f x gw = fromMaybe gw $ do
@@ -65,7 +69,11 @@ placeSpotUsingLink ::
Maybe Placement ->
GenWorld
placeSpotUsingLink w rid plmnt extract eff fallback = case searchedPoss (w ^?! genRooms . ix rid . rmPos) of
Just (ps, rmposs) -> placeSpot rid (w & genRooms . ix rid %~ eff (head rmposs) . (rmPos .~ rmposs)) (plmnt & plSpot .~ ps)
Just (ps, rmposs) ->
placeSpot
rid
(w & genRooms . ix rid %~ eff (head rmposs) . (rmPos .~ rmposs))
(plmnt & plSpot .~ ps)
Nothing -> case fallback of
Nothing -> w
Just plmnt' -> placeSpot rid w plmnt'
@@ -86,15 +94,18 @@ placeSpotRoomRand rid i f plmnt w =
let (ps, g) = runState (_rmRandPSs (w ^?! genRooms . ix rid) !! i) $ w ^. gwWorld . randGen
in placeSpot rid (w & gwWorld . randGen .~ g) (plmnt & plSpot .~ f ps)
-- the Int here is some id that is assigned when the placement is placed
placeSpotID :: Int -> PlacementSpot -> PSType -> GenWorld -> (Int, GenWorld)
placeSpotID rid ps pt w = case pt of
PutTrigger cnd -> plNewID (gwWorld . cWorld . lWorld . triggers) cnd w
PutMod mdi -> plNewUpID (gwWorld . cWorld . lWorld . modifications) mdID mdi w
PutProp prp -> plNewUpID (gwWorld . cWorld . lWorld . props) prID (mvProp p rot prp) w
PutButton bt -> plNewUpID (gwWorld . cWorld . lWorld . buttons) btID
(mvButton p rot bt) w
PutButton bt ->
plNewUpID
(gwWorld . cWorld . lWorld . buttons)
btID
(mvButton p rot bt)
w
PutTerminal tm -> plNewUpID (gwWorld . cWorld . lWorld . terminals) tmID tm w
PutFlIt itm ->
let i = IM.newKey (w ^. gwWorld . cWorld . lWorld . items)
@@ -107,8 +118,12 @@ placeSpotID rid ps pt w = case pt of
)
)
PutCrit cr -> plNewUpID (gwWorld . cWorld . lWorld . creatures) crID (mvCr p rot cr) w
PutForeground fs -> plNewUpID (gwWorld . cWorld . lWorld . foregroundShapes) fsID
(mvFS p rot fs) w
PutForeground fs ->
plNewUpID
(gwWorld . cWorld . lWorld . foregroundShapes)
fsID
(mvFS p rot fs)
w
PutMachine pps mc wl mitm -> plMachine (map doShift pps) mc wl mitm p rot w
PutLS ls -> plNewUpID (gwWorld . cWorld . lWorld . lightSources) lsID (mvLS p' rot ls) w
PutPPlate pp -> plNewUpID (gwWorld . cWorld . lWorld . pressPlates) ppID (mvPP p rot pp) w
@@ -129,16 +144,16 @@ placeSpotID rid ps pt w = case pt of
PutID i -> (i, w)
PutWorldUpdate f -> (0, w & f rid ps)
PutChasm ps' -> (0, w & gwWorld . cWorld . chasms .:~ map doShift ps')
PutLabel {} -> (0, w)
PutLabel{} -> (0, w)
where
p@(V2 px py) = _psPos ps
p' = V3 px py 0
rot = _psRot ps
doShift = shiftPointBy (p, rot)
--evaluateRandPS
--evaluateRandPS
-- :: Int -> State StdGen PSType -> PlacementSpot -> GenWorld -> (Int, GenWorld)
--evaluateRandPS rid rgen ps w = placeSpotID rid ps evaluatedType
--evaluateRandPS rid rgen ps w = placeSpotID rid ps evaluatedType
-- $ set (gwWorld . randGen) g w
-- where
-- (evaluatedType, g) = runState rgen (_randGen $ _gwWorld w)
@@ -177,8 +192,15 @@ plMachine wallpoly mc wl = \case
Nothing -> plMachine' wallpoly mc wl
Just itm -> plTurret wallpoly mc wl itm
plTurret :: [Point2] -> Machine -> Wall -> Item -> Point2 -> Float -> GenWorld
-> (Int, GenWorld)
plTurret ::
[Point2] ->
Machine ->
Wall ->
Item ->
Point2 ->
Float ->
GenWorld ->
(Int, GenWorld)
plTurret wallpoly mc wl itm p rot gw =
( mcid
, gw & gwWorld . cWorld . lWorld . machines %~ addMc
@@ -215,8 +237,8 @@ plMachine' wallpoly mc wl p rot gw =
addMc = IM.insert mcid (mc{_mcPos = p, _mcDir = rot, _mcID = mcid, _mcWallIDs = wlids})
-- TODO correctly remove/shift pathfinding lines (removePathsCrossing)
placeMachineWalls
:: Wall -> Color -> [Point2] -> Int -> Int -> IM.IntMap Wall -> IM.IntMap Wall
placeMachineWalls ::
Wall -> Color -> [Point2] -> Int -> Int -> IM.IntMap Wall -> IM.IntMap Wall
placeMachineWalls wl col poly mcid wlid = flip (foldr f) $ zip [wlid ..] $ loopPairs poly
where
f (wid, l) = IM.insert wid baseWall{_wlID = wid, _wlLine = l}
+1 -1
View File
@@ -31,7 +31,7 @@ roomGlassOctogon x =
]
, _rmLinks = lnks'
, _rmPath =
linksAndPath'
linksGridToPath
lnks'
[ (V2 0 x, V2 0 (- (x + 40)))
, (V2 0 (- (x + 40)), V2 0 x)
-1
View File
@@ -2,7 +2,6 @@ module Dodge.Room.CheckConsistency where
import Dodge.Data.GenWorld
import Dodge.Graph
import Dodge.RoomLink
linksOnPath :: Room -> Bool
linksOnPath r = all pointOnPath linkPoints
+1
View File
@@ -29,6 +29,7 @@ roomNgon n x = do
rot = 2 * pi / fromIntegral n
rots = map ((rot *) . fromIntegral) [0 .. n -1]
poly = polyOrthDist n x
path1 = polyOrthDist n (x-10)
lnks =
sortOn ((\(V2 a b) -> (negate b, a)) . fst . snd)
. zip [0 ..]
+6 -16
View File
@@ -1,6 +1,6 @@
module Dodge.Room.Path (
gridPoints,
linksAndPath',
linksGridToPath,
makeGrid,
createPathGrid,
gridPoints'',
@@ -14,17 +14,14 @@ import Data.Maybe
import qualified Data.Set as S
import Dodge.Data.GenWorld
import Dodge.LevelGen.StaticWalls
import Dodge.RoomLink
import Geometry
import Grid
createPathGrid :: Room -> Room
createPathGrid rm =
rm
{ _rmPath = linksAndPath' (_rmLinks rm) filterGrid
}
createPathGrid rm = rm & rmPath .~ linksGridToPath (_rmLinks rm) filterGrid
where
filterGrid = filter (\p -> pairInPolys (_rmPolys rm) p && testCrossWalls outerWalls p) grid
filterGrid = filter
(\p -> pairInPolys (_rmPolys rm) p && testCrossWalls outerWalls p) grid
grid = fromMaybe [] $ shiftedGrid <$> minx <*> maxx <*> miny <*> maxy
outerWalls = foldr cutPoly [] $ _rmPolys rm
outerPoints = map fst outerWalls
@@ -36,17 +33,10 @@ createPathGrid rm =
<*> L.premap sndV2 L.minimum
<*> L.premap sndV2 L.maximum
--linksAndPath :: [(Point2, Float)] -> [(Point2, Point2)] -> S.Set (Point2, Point2)
--linksAndPath lnks subpth = S.fromList subpth <> foldMap linkClosest lnks
-- where
-- linkClosest (p, _) = doublePairSet (p, minimumBy (compare `on` dist p) $ map fst subpth)
linksAndPath' :: [RoomLink] -> [(Point2, Point2)] -> S.Set (Point2, Point2)
linksAndPath' lnks subpth = S.fromList subpth
<> foldMap (linkClosest . (^. rlPos) ) lnks
linksGridToPath :: [RoomLink] -> [(Point2, Point2)] -> S.Set (Point2, Point2)
linksGridToPath lnks subpth = S.fromList subpth <> foldMap (linkClosest . (^. rlPos)) lnks
where
linkClosest p = doublePairSet (p, minimumBy (compare `on` dist p) $ map fst subpth)
--linksAndPath' = linksAndPath . map lnkPosDir
testCrossWalls :: [(Point2, Point2)] -> (Point2, Point2) -> Bool
testCrossWalls wls (a, b) = not $ any (isJust . uncurry (intersectSegSeg a b)) wls
+2 -1
View File
@@ -95,7 +95,8 @@ roomRect x y xn yn =
m edge edgefrom1 edgefrom2 =
zipWith (lnkBothAnd (OnEdge edge) edgefrom1 edgefrom2) [0 ..]
. zipCountDown
pth = linksAndPath' lnks $ map (bimap (+.+ V2 20 20) (+.+ V2 20 20)) (makeGrid xd xn yd yn)
pth = linksGridToPath lnks
$ map (bimap (+.+ V2 20 20) (+.+ V2 20 20)) (makeGrid xd xn yd yn)
makeonpos (p, a) = RoomPos p 0 (S.singleton $ RoomPosOnPath $ makerpedges a)
NotLink mempty
makerpedges (a, b) =
-4
View File
@@ -5,7 +5,6 @@ module Dodge.RoomLink (
inLink,
restrictLinkType,
overLnkType,
-- lnkPosDir,
overLnkPosDir,
toBothLnk,
rmInLinks,
@@ -113,9 +112,6 @@ overLnkType lt f = rmLinks %~ g
rlPosDir :: RoomLink -> (Point2, Float)
rlPosDir rl = (_rlPos rl, _rlDir rl)
lnkPosDir :: RoomLink -> (Point2, Float)
lnkPosDir rl = (_rlPos rl, _rlDir rl)
overLnkPosDir :: ((Point2, Float) -> (Point2, Float)) -> RoomLink -> RoomLink
overLnkPosDir f rl = rl & rlPos .~ p & rlDir .~ a
where
+2 -1
View File
@@ -49,7 +49,8 @@ posRms ::
IO (Maybe PosRooms)
posRms prs roomi [] st = case st of
Empty -> return $ Just $ prs & prRooms .:~ roomi
Node nextroomi ts Seq.:<| tseq -> posRms (prs & prRooms .:~ roomi) nextroomi (zipCount ts) tseq
Node nextroomi ts Seq.:<| tseq
-> posRms (prs & prRooms .:~ roomi) nextroomi (zipCount ts) tseq
_ -> error "unexpected outcome in posRms"
posRms prs parenti@(parent, _) ((numChild, t@(Node childi _)) : its) tseq = do
printInfoCheckNum parenti numChild childi
+66 -68
View File
@@ -2811,7 +2811,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 121;" f
cChasm src/Dodge/Room/Tutorial.hs 108;" f
cFilledRect src/Dodge/CharacterEnums.hs 6;" f
cWireRect src/Dodge/CharacterEnums.hs 10;" f
calcSmoothScroll src/Dodge/SmoothScroll.hs 11;" f
@@ -2845,7 +2845,7 @@ chaseCritAwarenessUpdate src/Dodge/Creature/Perception.hs 70;" f
chaseCritMv src/Dodge/Creature/ReaderUpdate.hs 114;" f
chaseCritPerceptionUpdate src/Dodge/Creature/Perception.hs 31;" f
chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 37;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 188;" f
chasmSimpleMaze src/Dodge/Room/Tutorial.hs 175;" f
chasmTest src/Dodge/Creature/Update.hs 131;" f
chasmWallToSurface src/Dodge/Base/Collide.hs 110;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 100;" f
@@ -2986,7 +2986,7 @@ corridor src/Dodge/Room/Corridor.hs 17;" f
corridorBoss src/Dodge/LockAndKey.hs 133;" f
corridorN src/Dodge/Room/Corridor.hs 52;" f
corridorWallN src/Dodge/Room/Corridor.hs 71;" f
crAdd src/Dodge/Room/RezBox.hs 115;" f
crAdd src/Dodge/Room/RezBox.hs 116;" f
crAwayFromPost src/Dodge/Creature/Test.hs 82;" f
crBlips src/Dodge/RadarSweep.hs 87;" f
crCamouflage src/Dodge/Creature/Picture.hs 33;" f
@@ -3037,12 +3037,12 @@ createGas src/Dodge/Gas.hs 8;" f
createHeadLamp src/Dodge/Euse.hs 55;" f
createItemYou src/Dodge/Inventory/Add.hs 60;" f
createLightMap src/Render.hs 26;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f
createPathGrid src/Dodge/Room/Path.hs 20;" f
createProjectile src/Dodge/HeldUse.hs 1308;" f
createProjectileR src/Dodge/HeldUse.hs 1257;" f
createShell src/Dodge/Projectile/Create.hs 21;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 124;" f
createWall src/Dodge/Wall/Create.hs 8;" f
creatureDisplayText src/Dodge/Creature/Picture/Awareness.hs 11;" f
creatureShootLaser src/Dodge/HeldUse.hs 815;" f
@@ -3614,7 +3614,7 @@ floorItemSPic src/Dodge/Render/ShapePicture.hs 117;" 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 66;" f
foldMTRS src/Dodge/Room/Tutorial.hs 53;" f
foldPairs src/ListHelp.hs 37;" f
foldrWhileArb src/ListHelp.hs 110;" f
followImpulse src/Dodge/Creature/Impulse.hs 39;" f
@@ -3679,8 +3679,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 323;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 310;" f
getCrsFromRooms src/Dodge/Room/Tutorial.hs 310;" f
getCrsFromRooms' src/Dodge/Room/Tutorial.hs 297;" f
getDistortions src/Dodge/Render.hs 435;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1296;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
@@ -3688,14 +3688,14 @@ getItemValue src/Dodge/Inventory/SelectionList.hs 147;" f
getLaserColor src/Dodge/HeldUse.hs 703;" f
getLaserDamage src/Dodge/HeldUse.hs 700;" f
getLaserPhaseV src/Dodge/HeldUse.hs 697;" f
getLinksOfType src/Dodge/RoomLink.hs 42;" f
getLinksOfType src/Dodge/RoomLink.hs 41;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 6;" f
getMenuMouseContext src/Dodge/Update.hs 372;" f
getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1283;" f
getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 306;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 293;" f
getRootItemBounds src/Dodge/Render/HUD.hs 100;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
@@ -3820,7 +3820,7 @@ icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f
icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f
ildtPropagate src/Dodge/DoubleTree.hs 111;" f
impulsiveAIBefore src/Dodge/Creature/Impulse.hs 24;" f
inLink src/Dodge/RoomLink.hs 132;" f
inLink src/Dodge/RoomLink.hs 128;" f
inSegArea src/Geometry/Intersect.hs 328;" f
inTextInputFocus src/Dodge/InputFocus.hs 8;" f
incidenceToFunction src/Dodge/Graph.hs 26;" f
@@ -3908,7 +3908,7 @@ isAmmoIntLink src/Dodge/HeldUse.hs 713;" f
isAnimate src/Dodge/Creature/Test.hs 130;" f
isCognizant src/Dodge/Creature/Perception.hs 106;" f
isConnected src/Dodge/Inventory/Swap.hs 76;" f
isCornerLink src/Dodge/RoomLink.hs 66;" f
isCornerLink src/Dodge/RoomLink.hs 65;" f
isElectrical src/Dodge/Machine/Update.hs 83;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f
isInLnk src/Dodge/PlacementSpot.hs 168;" f
@@ -3916,7 +3916,7 @@ isJust' src/MaybeHelp.hs 29;" f
isLHS src/Geometry/LHS.hs 8;" f
isLeftOf src/Geometry.hs 202;" f
isLeftOfA src/Geometry.hs 196;" f
isMidEdgeLink src/Dodge/RoomLink.hs 57;" f
isMidEdgeLink src/Dodge/RoomLink.hs 56;" f
isNHS src/Geometry/Intersect.hs 51;" f
isNothing' src/MaybeHelp.hs 33;" f
isOnSeg src/Geometry.hs 240;" f
@@ -4001,7 +4001,7 @@ keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 474;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 638;" f
lChasm src/Dodge/Room/Tutorial.hs 130;" f
lChasm src/Dodge/Room/Tutorial.hs 117;" 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
@@ -4059,9 +4059,7 @@ lineOutputTerminal src/Dodge/Room/Warning.hs 66;" f
lineSplit src/Justify.hs 26;" f
lineThick src/Picture/Base.hs 234;" f
lineUp src/Dodge/Creature/Boid.hs 148;" f
linksAndPath src/Dodge/Room/Path.hs 39;" f
linksAndPath' src/Dodge/Room/Path.hs 44;" f
linksOnPath src/Dodge/Room/CheckConsistency.hs 7;" f
linksOnPath src/Dodge/Room/CheckConsistency.hs 6;" f
listConfig src/Dodge/Menu.hs 216;" f
listControls src/Dodge/Menu.hs 228;" f
listCursorChooseBorderScale src/Dodge/Render/List.hs 134;" f
@@ -4071,7 +4069,6 @@ litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
lmt src/MatrixHelper.hs 43;" f
lnkBothAnd src/Dodge/Room/Procedural.hs 123;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f
lnkPosDir src/Dodge/RoomLink.hs 116;" f
loadDodgeConfig src/Dodge/Config/Load.hs 9;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
loadMuzzle src/Dodge/HeldUse.hs 622;" f
@@ -4165,6 +4162,7 @@ makeMuzzleFlare src/Dodge/HeldUse.hs 648;" f
makeParagraph src/Justify.hs 6;" f
makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f
makePathFromLinksGrid src/Dodge/Room/Path.hs 41;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 25;" f
makeRect src/Grid.hs 82;" f
makeSelectionListPictures src/Dodge/Render/List.hs 65;" f
@@ -4251,7 +4249,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 151;" f
midChasm src/Dodge/Room/Tutorial.hs 138;" f
midPad src/Padding.hs 27;" f
midPadL src/Padding.hs 33;" f
midPoint src/Geometry.hs 84;" f
@@ -4304,12 +4302,12 @@ moveZoomCamera src/Dodge/Update/Camera.hs 87;" f
mtTopLabels src/Dodge/Tree/Compose.hs 50;" f
mtUnderLabels src/Dodge/Tree/Compose.hs 53;" f
muchWlDustAt src/Dodge/Wall/Dust.hs 10;" f
muin src/Dodge/RoomLink.hs 151;" f
muin src/Dodge/RoomLink.hs 147;" f
multGunCrit src/Dodge/Creature.hs 77;" f
multiArrow src/Picture/Composite.hs 11;" f
multiLookupTrie src/SimpleTrie.hs 57;" f
multiLookupTrieI src/SimpleTrie.hs 66;" f
muout src/Dodge/RoomLink.hs 148;" f
muout src/Dodge/RoomLink.hs 144;" f
muzFlareAt src/Dodge/HeldUse.hs 674;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 162;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 168;" f
@@ -4390,14 +4388,14 @@ orientAttachment src/Dodge/Item/Orientation.hs 31;" f
orientByParentChSF src/Dodge/Item/Orientation.hs 24;" f
orientChild src/Dodge/Item/Orientation.hs 13;" f
orthogonalPointOnSeg src/Geometry/Intersect.hs 321;" f
outLink src/Dodge/RoomLink.hs 124;" f
outLink src/Dodge/RoomLink.hs 120;" f
outsideScreenPolygon src/Dodge/Debug/Picture.hs 43;" f
outwardIntegers src/Dodge/Base.hs 181;" f
overCol src/Picture/Base.hs 308;" f
overColObj src/Shape.hs 273;" f
overColSH src/Shape.hs 241;" f
overLnkPosDir src/Dodge/RoomLink.hs 119;" f
overLnkType src/Dodge/RoomLink.hs 106;" f
overLnkPosDir src/Dodge/RoomLink.hs 115;" f
overLnkType src/Dodge/RoomLink.hs 105;" f
overPos src/Picture/Base.hs 303;" f
overPosObj src/Shape.hs 277;" f
overPosSH src/Shape.hs 261;" f
@@ -4411,7 +4409,7 @@ overrideMeleeCloseTarget src/Dodge/Creature/ReaderUpdate.hs 35;" f
overwriteLabel src/Dodge/Tree/Compose.hs 31;" f
p src/ShortShow.hs 44;" f
pContID src/Dodge/LevelGen/PlacementHelper.hs 15;" f
pairInPolys src/Dodge/Room/Path.hs 51;" f
pairInPolys src/Dodge/Room/Path.hs 52;" f
pairPolyPointsIntersect src/Geometry/ConvexPoly.hs 70;" f
pairsToGraph src/Dodge/Path.hs 110;" f
pairsToIncidence src/Dodge/Graph.hs 20;" f
@@ -4420,7 +4418,7 @@ paletteToColor src/Color.hs 58;" f
parseItem src/Dodge/Debug/Terminal.hs 62;" f
parseNum src/Dodge/Debug/Terminal.hs 77;" f
passthroughLockKeyLists src/Dodge/Floor.hs 120;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 43;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 525;" f
@@ -4551,8 +4549,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 172;" f
polyChasmC src/Dodge/Room/Tutorial.hs 181;" f
polyChasm src/Dodge/Room/Tutorial.hs 159;" f
polyChasmC src/Dodge/Room/Tutorial.hs 168;" f
polyCirc src/Shape.hs 46;" f
polyCircx src/Shape.hs 51;" f
polyCornerDist src/Geometry/Polygon.hs 60;" f
@@ -4595,11 +4593,11 @@ prettyDT src/Dodge/DoubleTree.hs 258;" f
prettyLDT src/Dodge/DoubleTree.hs 263;" f
prettyShort src/AesonHelp.hs 11;" f
primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 594;" f
printColumnTitles src/Dodge/Tree/Shift.hs 142;" f
printColumns src/Dodge/Tree/Shift.hs 132;" f
printInfo src/Dodge/Tree/Shift.hs 145;" f
printInfoCheckNum src/Dodge/Tree/Shift.hs 154;" f
printPartialColumns src/Dodge/Tree/Shift.hs 135;" f
printColumnTitles src/Dodge/Tree/Shift.hs 149;" f
printColumns src/Dodge/Tree/Shift.hs 139;" f
printInfo src/Dodge/Tree/Shift.hs 152;" f
printInfoCheckNum src/Dodge/Tree/Shift.hs 161;" f
printPartialColumns src/Dodge/Tree/Shift.hs 142;" f
printPoint src/Dodge/Debug/Picture.hs 34;" f
printRotPoint src/Dodge/Debug/Picture.hs 37;" f
prismBox src/Shape.hs 73;" f
@@ -4743,7 +4741,7 @@ removeAimPosture src/Dodge/Creature/YourControl.hs 158;" f
removeAmmoFromMag src/Dodge/HeldUse.hs 920;" f
removeDot src/ShortShow.hs 40;" f
removeInverseWalls src/Dodge/LevelGen/StaticWalls.hs 25;" f
removeLights src/Dodge/Room/Tutorial.hs 224;" f
removeLights src/Dodge/Room/Tutorial.hs 211;" f
removeShieldWall src/Dodge/Item/BackgroundEffect.hs 57;" f
removeWallsInPolygon src/Dodge/LevelGen/StaticWalls.hs 182;" f
renderDataResizeUpdate src/Preload/Update.hs 26;" f
@@ -4764,9 +4762,9 @@ resizeFBOTO src/Framebuffer/Update.hs 203;" f
resizeFBOTO3 src/Framebuffer/Update.hs 175;" f
resizeRBO src/Framebuffer/Update.hs 87;" f
respawn src/Dodge/SpawnAt.hs 11;" f
restrictInLinks src/Dodge/RoomLink.hs 45;" f
restrictLinkType src/Dodge/RoomLink.hs 35;" f
restrictOutLinks src/Dodge/RoomLink.hs 48;" f
restrictInLinks src/Dodge/RoomLink.hs 44;" f
restrictLinkType src/Dodge/RoomLink.hs 34;" f
restrictOutLinks src/Dodge/RoomLink.hs 47;" f
restrictRMInLinksPD src/Dodge/Room/Link.hs 25;" f
restrictSeg src/Dodge/Base/Collide.hs 162;" f
resumeSound src/Dodge/SoundLogic.hs 48;" f
@@ -4778,10 +4776,10 @@ rewinder src/Dodge/Item/Held/Utility.hs 36;" f
rezBox src/Dodge/Room/RezBox.hs 31;" f
rezBox' src/Dodge/Room/RezBox.hs 46;" f
rezBoxStart src/Dodge/Room/Start.hs 78;" f
rezBoxes src/Dodge/Room/RezBox.hs 118;" f
rezBoxes src/Dodge/Room/RezBox.hs 119;" f
rezBoxesWpCrit src/Dodge/Room/RezBox.hs 90;" f
rezColor src/Dodge/Room/RezBox.hs 137;" f
rezInvBox src/Dodge/Room/RezBox.hs 144;" f
rezColor src/Dodge/Room/RezBox.hs 138;" f
rezInvBox src/Dodge/Room/RezBox.hs 145;" f
rezText src/Dodge/Story.hs 4;" f
rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 72;" f
@@ -4794,12 +4792,12 @@ rightLegPQ src/Dodge/Creature/HandPos.hs 100;" f
rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f
rightWristPQ src/Dodge/Creature/HandPos.hs 57;" f
rlPosDir src/Dodge/RoomLink.hs 113;" f
rlPosDir src/Dodge/RoomLink.hs 112;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 412;" f
rmInLinks src/Dodge/RoomLink.hs 157;" f
rmInLinks src/Dodge/RoomLink.hs 153;" f
rmInvItem src/Dodge/Inventory.hs 73;" f
rmLinksOfType src/Dodge/RoomLink.hs 154;" f
rmOutLinks src/Dodge/RoomLink.hs 157;" f
rmLinksOfType src/Dodge/RoomLink.hs 150;" f
rmOutLinks src/Dodge/RoomLink.hs 153;" f
roomC src/Dodge/Room/Room.hs 40;" f
roomCCrits src/Dodge/Room/Room.hs 271;" f
roomCenterPillar src/Dodge/Room/Room.hs 126;" f
@@ -4928,7 +4926,7 @@ sensorReqToString src/Dodge/Machine/Update.hs 196;" 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 332;" f
sensorTut src/Dodge/Room/Tutorial.hs 319;" f
sensorTypeDamages src/Dodge/Machine/Update.hs 233;" f
sentinelAI src/Dodge/Creature/SentinelAI.hs 20;" f
sentinelExtraWatchUpdate src/Dodge/Creature/SentinelAI.hs 83;" f
@@ -4940,21 +4938,21 @@ setClusterID src/Dodge/Combine/Graph.hs 116;" f
setDepth src/Picture/Base.hs 128;" f
setDirPS src/Dodge/PlacementSpot.hs 50;" f
setFallback src/Dodge/PlacementSpot.hs 132;" f
setInLinks src/Dodge/RoomLink.hs 54;" f
setInLinksByType src/Dodge/RoomLink.hs 73;" f
setInLinksPD src/Dodge/RoomLink.hs 93;" f
setInLinks src/Dodge/RoomLink.hs 53;" f
setInLinksByType src/Dodge/RoomLink.hs 72;" f
setInLinksPD src/Dodge/RoomLink.hs 92;" f
setInvPosFromSS src/Dodge/Inventory/Location.hs 92;" f
setLayer src/Picture/Base.hs 139;" f
setLinkType src/Dodge/RoomLink.hs 79;" f
setLinkTypePD src/Dodge/RoomLink.hs 86;" f
setLinkType src/Dodge/RoomLink.hs 78;" f
setLinkTypePD src/Dodge/RoomLink.hs 85;" f
setMusicVolume src/Sound.hs 162;" f
setMvPos src/Dodge/Creature/ReaderUpdate.hs 53;" f
setOldPos src/Dodge/Update.hs 486;" f
setOutLinks src/Dodge/RoomLink.hs 51;" f
setOutLinksByType src/Dodge/RoomLink.hs 76;" f
setOutLinksPD src/Dodge/RoomLink.hs 96;" f
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 288;" f
setRoomInt src/Dodge/Room/Tutorial.hs 73;" f
setRoomInt src/Dodge/Room/Tutorial.hs 60;" 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
@@ -4964,7 +4962,7 @@ setTargetMv src/Dodge/Creature/ReaderUpdate.hs 76;" f
setTile src/Dodge/Layout.hs 66;" f
setTiles src/Dodge/Layout.hs 63;" f
setToggle src/Dodge/Prop/Update.hs 44;" f
setTreeInts src/Dodge/Room/Tutorial.hs 80;" f
setTreeInts src/Dodge/Room/Tutorial.hs 67;" f
setViewDistance src/Dodge/Update/Camera.hs 236;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 63;" f
setViewport src/Dodge/Render.hs 440;" f
@@ -5197,7 +5195,7 @@ subInvX src/Dodge/ListDisplayParams.hs 46;" f
subMap src/TreeHelp.hs 119;" f
subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f
swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 56;" f
swapInOutLinks src/Dodge/RoomLink.hs 99;" f
swapInOutLinks src/Dodge/RoomLink.hs 98;" f
swapIndices src/ListHelp.hs 50;" f
swapInvItems src/Dodge/Inventory/Swap.hs 21;" f
swapItemWith src/Dodge/Inventory.hs 163;" f
@@ -5249,7 +5247,7 @@ terminalWheelEvent src/Dodge/Update/Scroll.hs 131;" f
teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f
teslaGunPic src/Dodge/Item/Draw/SPic.hs 424;" f
teslaParams src/Dodge/Item/Held/BatteryGuns.hs 25;" f
testCrossWalls src/Dodge/Room/Path.hs 47;" f
testCrossWalls src/Dodge/Room/Path.hs 48;" f
testEvent src/Dodge/Event/Test.hs 9;" f
testInventory src/Dodge/Creature.hs 292;" f
testStringInit src/Dodge/TestString.hs 33;" f
@@ -5267,7 +5265,7 @@ tflat2 src/Picture/Data.hs 60;" f
tflat3 src/Picture/Data.hs 64;" f
tflat4 src/Picture/Data.hs 68;" f
theCleanup appDodge/Main.hs 75;" f
theColumns src/Dodge/Tree/Shift.hs 139;" f
theColumns src/Dodge/Tree/Shift.hs 146;" f
theUpdateStep appDodge/Main.hs 107;" f
thickArc src/Picture/Base.hs 298;" f
thickCircle src/Picture/Base.hs 272;" f
@@ -5300,7 +5298,7 @@ tlDoEffect src/Dodge/Terminal.hs 102;" f
tlSetStatus src/Dodge/Terminal.hs 99;" f
tmUpdate src/Dodge/Update.hs 470;" f
toBinary src/Dodge/Inventory/SelectionList.hs 141;" f
toBothLnk src/Dodge/RoomLink.hs 140;" f
toBothLnk src/Dodge/RoomLink.hs 136;" f
toClosestMultiple src/HelpNum.hs 3;" f
toColor8 src/Color.hs 148;" f
toFloatVAs src/Shader/Compile.hs 211;" f
@@ -5399,13 +5397,13 @@ tryUseParent src/Dodge/Creature/State.hs 144;" f
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 51;" f
tutDrop src/Dodge/Room/Tutorial.hs 85;" f
tutHub src/Dodge/Room/Tutorial.hs 231;" f
tutLight src/Dodge/Room/Tutorial.hs 209;" f
tutRezBox src/Dodge/Room/Tutorial.hs 343;" f
tutAnoTree src/Dodge/Room/Tutorial.hs 40;" f
tutDrop src/Dodge/Room/Tutorial.hs 72;" f
tutHub src/Dodge/Room/Tutorial.hs 218;" f
tutLight src/Dodge/Room/Tutorial.hs 196;" f
tutRezBox src/Dodge/Room/Tutorial.hs 330;" f
tutRoomTree src/Dodge/Floor.hs 21;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 367;" f
tutorialMessage1 src/Dodge/Room/Tutorial.hs 354;" f
tweenAngles src/Geometry/Vector.hs 195;" f
twinSlowDoorChasers src/Dodge/Room/LongDoor.hs 81;" f
twinSlowDoorRoom src/Dodge/Room/LongDoor.hs 29;" f
@@ -5691,7 +5689,7 @@ wordsBy src/ListHelp.hs 116;" f
worldPosToScreen src/Dodge/Base/Coordinate.hs 18;" f
worldSPic src/Dodge/Render/ShapePicture.hs 22;" f
worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f
wpAdd src/Dodge/Room/RezBox.hs 147;" f
wpAdd src/Dodge/Room/RezBox.hs 148;" f
wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f
wristArmour src/Dodge/Item/Equipment.hs 43;" f
wristInvisibility src/Dodge/Item/Equipment.hs 96;" f
@@ -5716,13 +5714,13 @@ 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 139;" f
zChasm src/Dodge/Room/Tutorial.hs 126;" 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
zeroZ src/Geometry/Vector.hs 8;" f
zipArcs src/Dodge/Tesla.hs 52;" f
zipCount src/Dodge/Tree/Shift.hs 129;" f
zipCount src/Dodge/Tree/Shift.hs 136;" f
zipCountDown src/Dodge/Room/Procedural.hs 120;" f
zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f
zoneClouds src/Dodge/Update.hs 460;" f