Work on selecting

This commit is contained in:
2026-05-13 16:07:44 +01:00
parent 2d731ae1ba
commit 44ecaf409e
6 changed files with 110 additions and 278 deletions
+1 -1
View File
@@ -31,7 +31,7 @@ data SectionCursor = SectionCursor
data SelSection a = SelSection
{ _ssItems :: IntMap (SelectionItem a)
, _ssOffset :: Int
, _ssYOffset :: Int
, _ssShownItems :: [Picture]
, _ssShownLength :: Int
, _ssIndent :: Int
+2 -2
View File
@@ -248,7 +248,7 @@ updateSectionsPositioning ::
updateSectionsPositioning h mselpos allavailablelines lsss sss =
IM.intersectionWithKey (\k -> updateSection (h k) (m k)) lsss ssizes `g` offsets
where
offsets = fmap (\ss -> (_ssOffset ss, ss ^. ssSet)) sss
offsets = fmap (\ss -> (ss^.ssYOffset, ss^.ssSet)) sss
m k = do
Sel k' i <- mselpos
guard $ k == k'
@@ -262,7 +262,7 @@ updateSection :: Int -> Maybe Int -> IMSI a -> Int -> (Int,IS.IntSet) -> SelSect
updateSection indent mcsel sis availablelines (oldoffset,sset) =
SelSection
{ _ssItems = sis
, _ssOffset = offset
, _ssYOffset = offset
, _ssShownItems = shownitems
, _ssShownLength = min aslength availablelines
, _ssIndent = indent
+10 -63
View File
@@ -52,10 +52,9 @@ import SDL (MouseButton (..))
drawHUD :: Config -> World -> Picture
drawHUD cfig w =
drawInventory sections w cfig subinv
drawInventory (w ^. hud . diSections) w cfig subinv
<> drawSubInventory subinv cfig w
where
sections = w ^. hud . diSections
subinv = w ^. hud . subInventory
drawInventory :: IMSS () -> World -> Config -> SubInventory -> Picture
@@ -94,14 +93,7 @@ drawRootCursor w sss msel ldp cfig = fromMaybe mempty $ do
if null (w ^? rbState . opSel)
then BoundCurs [minBound ..]
else BoundCurs [North, South, West]
return $
drawSSMultiCursor
sss
(0, x)
(y - x)
ldp
curs
cfig
return $ drawSSMultiCursor sss (0, x) (y - x) ldp curs cfig
getRootItemBounds :: Int -> IM.IntMap Item -> Maybe (Int, Int)
getRootItemBounds i inv = do
@@ -126,10 +118,7 @@ drawMouseOver cfig w =
return
. translateScreenPos cfig (invDP ^. ldpPos)
. color (0.3 *^ white)
-- . color white
-- $ selSecDrawCursor invDP curs sss (Sel j i mempty)
$ selSecDrawCursor invDP curs sss (Sel j i)
-- curs = BoundaryCursor [West]
curs = BackdropCurs
combinvsel = do
(j, i) <-
@@ -145,8 +134,8 @@ drawMouseOver cfig w =
drawDragSelected :: Config -> World -> Maybe Picture
drawDragSelected cfig w = do
ys0 <- w ^? hud . diSections . ix 0 . ssSet
ys2 <- w ^? hud . diSections . ix 3 . ssSet
ys4 <- w ^? hud . diSections . ix 5 . ssSet
ys3 <- w ^? hud . diSections . ix 3 . ssSet
ys5 <- w ^? hud . diSections . ix 5 . ssSet
guard $ case w ^? hud . subInventory of
Just NoSubInventory -> True
_ -> False
@@ -156,23 +145,8 @@ drawDragSelected cfig w = do
. translateScreenPos cfig (invDP ^. ldpPos)
. color (0.2 *^ white)
$ IS.foldr (f 0) mempty ys0
<> IS.foldr (f 3) mempty ys2
<> IS.foldr (f 5) mempty ys4
-- ys <- w ^? hud . diSelection . _Just . slSet
-- guard $
-- not (IS.null ys)
-- && ( case w ^? hud . subInventory of
-- Just NoSubInventory -> True
-- _ -> False
-- )
-- Sel i _ _ <- w ^? hud . diSelection . _Just
-- sss <- w ^? hud . diSections
-- let f x = (selSecDrawCursor invDP BackdropCurs sss (Sel i x mempty) <>)
-- return
-- . translateScreenPos cfig (invDP ^. ldpPos)
-- . color (0.2 *^ white)
-- . IS.foldr f mempty
-- $ ys
<> IS.foldr (f 3) mempty ys3
<> IS.foldr (f 5) mempty ys5
drawDragSelecting :: Config -> World -> Maybe Picture
drawDragSelecting cfig w = do
@@ -188,23 +162,6 @@ drawDragSelecting cfig w = do
. color (0.2 *^ white)
. IM.foldMapWithKey f
$ sssSelectionSlice sss x y
-- OverInvDragSelect (Just (i, j)) (Just b) <- w ^? input . mouseContext
-- sss <- w ^? hud . diSections
-- let f x = selSecDrawCursor invDP BackdropCurs sss (Sel i x)
-- return
-- . translateScreenPos cfig (invDP ^. ldpPos)
-- . color (0.2 *^ white)
-- . foldMap f
-- $ [min j b .. max j b]
--
-- return $ IM.foldMapWithKey f s
-- where
-- f i ss = IM.foldMapWithKey (g i) (ss ^. ssItems)
-- g i j si
-- | si ^. siIsSelectable = [(i,j)]
-- | otherwise = mempty
drawSubInventory :: SubInventory -> Config -> World -> Picture
drawSubInventory subinv cfig w = case subinv of
@@ -262,7 +219,7 @@ drawExamineInventory cfig w =
}
closeObjectInfo :: Int -> Either Item Button -> String
closeObjectInfo n x = case x of
closeObjectInfo n = \case
Left itm -> itemInfo itm ++ " It is on the floor" ++ floorItemPickupInfo n itm
Right _ -> "Some sort of switch or button."
@@ -316,16 +273,7 @@ drawRBOptions cfig w = fold $ do
<> translate
(120 - xt)
0
( listCursor
0
1
(BoundCurs [North, South])
curpos
0
white
25
1
)
( listCursor 0 1 (BoundCurs [North, South]) curpos 0 white 25 1)
<> translate
(380 - xt)
0
@@ -366,10 +314,9 @@ drawItemConnections sss cfig =
. fmap (\(_, a, b) -> a <> b)
drawItemChildrenConnect :: IMSS () -> Config -> Int -> [Int] -> Picture
drawItemChildrenConnect sss cfig i is = fromMaybe mempty $ do
drawItemChildrenConnect sss cfig i is = fold $ do
p <- snum i
let ps = mapMaybe snum is
return $ color white $ lConnectMulti ps p
return $ color white $ lConnectMulti (mapMaybe snum is) p
where
snum = selNumPos cfig invDP sss 0
+2 -2
View File
@@ -189,7 +189,7 @@ selSecYint i j sss = do
ss <- sss ^? ix i
return
. (secpos +)
. subtract (ss ^. ssOffset)
. subtract (ss ^. ssYOffset)
. sum
. fmap _siHeight
. fst
@@ -207,7 +207,7 @@ inverseSelSecYint yint sss
then return $ inverseSelSecYint (yint - l) othersss
else do
let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss)
(j, _) <- L.fold (L.find (\(_, x) -> x - _ssOffset ss > yint)) $ IM.toList ls
(j, _) <- L.fold (L.find (\(_, x) -> x - _ssYOffset ss > yint)) $ IM.toList ls
return $ NonInf (i, j)
inverseSelSecYintXPosCheck ::
+19 -134
View File
@@ -211,70 +211,7 @@ updateMouseReleaseInGame cfig w = case w ^. input . mouseContext of
& hud . diSections . ix 0 . ssSet .~ mempty
& hud . diSections . ix 3 . ssSet .~ mempty
& doDragSelect cfig ssel
-- OverInvDragSelect (Just ssel) mesel
-- | ScancodeLShift `M.member` (w ^. input . pressedKeys) ->
-- w
-- & input
-- . mouseContext
-- .~ MouseInGame
-- & ( fromMaybe id $ do
-- j <- w ^? hud . diSelection . _Just . slSec
-- return $
-- hud
-- . diSections
-- . ix j
-- . ssSet
-- %~ getuniques
-- ( maybe
-- mempty
-- mempty
-- -- (h ssel)
-- (guard (ssel ^? _1 == w ^? hud . diSelection . _Just . slSec) >> mesel ^? _Just)
-- )
-- )
-- & hud
-- . diSections
-- . ix (fst ssel)
-- . ssSet
-- %~ getuniques
-- ( maybe
-- mempty
-- (h ssel)
-- (guard (ssel ^? _1 == w ^? hud . diSelection . _Just . slSec) >> mesel ^? _Just)
-- )
-- OverInvDragSelect (Just ssel) (Just esel) ->
-- w
-- & input
-- . mouseContext
-- .~ MouseInGame
-- -- & invSetSelection (f (fst ssel, esel) (h ssel esel))
-- & hud
-- . diSections
-- . ix (fst ssel)
-- . ssSet
-- .~ h ssel esel
-- & invSetSelection (f (fst ssel, esel))
-- OverInvDragSelect{} ->
-- w
-- & input
-- . mouseContext
-- .~ MouseInGame
-- -- & hud . diSelection . _Just . slSet %~ const mempty
-- & hud
-- . diSections
-- . each
-- . ssSet
-- %~ const mempty
_ -> w
where
f (x, y) = Sel x y
-- need to set this in OverInvDragSelect (twice)?
h (k, i) j = fold $ do
sss <- w ^? hud . diSections . ix k . ssItems
let (_, xss) = IM.split (min i j - 1) sss
(yss, _) = IM.split (max i j + 1) xss
return . IM.keysSet $ yss
doDragSelect :: Config -> XInfinity (Int,Int) -> World -> World
doDragSelect cfig x w = fromMaybe w $ do
@@ -291,45 +228,20 @@ doDragSelect cfig x w = fromMaybe w $ do
symmetricDifference :: IS.IntSet -> IS.IntSet -> IS.IntSet
symmetricDifference x y = (x `IS.union` y) IS.\\ (x `IS.intersection` y)
isGroupSelectableSection :: Int -> Bool
isGroupSelectableSection = \case
0 -> True
3 -> True
_ -> False
updateMouseClickInGame :: Config -> World -> World
updateMouseClickInGame cfig w = case w ^. input . mouseContext of
MouseInGame -> w & input . mouseContext .~ OverInvDragSelect
(inverseSelSecYint
(posSelSecYint cfig invDP (w ^. input . mousePos . _y))
(w ^. hud . diSections))
-- fromMaybe (w & input . mouseContext .~ OverInvDragSelect Nothing Nothing) $ do
-- let sss = w ^. hud . diSections
-- ysel <-
-- inverseSelSecYint
-- (posSelSecYint cfig invDP (w ^. input . mousePos . _y))
-- sss
-- ^? nonInf
-- guard (isGroupSelectableSection $ fst ysel)
-- return $ w & input . mouseContext .~ OverInvDragSelect (Just ysel) Nothing
OverInvSelect (-1, _)
| selsec == Just (-1) ->
w
& hud
. diSelection
%~ endRegex (-1) w
& hud
. diInvFilter
.~ Nothing
| selsec == Just (-1) -> w
& hud . diSelection %~ endRegex (-1) w
& hud . diInvFilter .~ Nothing
OverInvSelect (2, _)
| selsec == Just 2 ->
w
& hud
. diSelection
%~ endRegex 2 w
& hud
. diCloseFilter
.~ Nothing
| selsec == Just 2 -> w
& hud . diSelection %~ endRegex 2 w
& hud . diCloseFilter .~ Nothing
OverInvSelect (5, j) -> fromMaybe w $ do
k <- w ^? hud . closeButtons . ix j
but <- w ^? cWorld . lWorld . buttons . ix k
@@ -337,52 +249,25 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
OverInvSelect x
| ScancodeLShift `M.member` (w ^. input . pressedKeys)
-> w & input . mouseContext .~ OverInvDragSelect (NonInf x)
-- && isGroupSelectableSection (fst x) ->
-- w & input . mouseContext .~ OverInvDragSelect (Just x) (Just $ snd x)
OverInvSelect x -> startDrag x w
OverTerminal tmid TerminalTextInput{} -> terminalReturnEffect tmid w
OverTerminal tmid TerminalPressTo{} -> continueTerminal tmid w
OutsideTerminal -> w & hud . subInventory .~ NoSubInventory
OverCombSelect x ->
w
& hud
. subInventory
. ciSelection
?~ f x
& worldEventFlags
. at CombineInventoryChange
?~ ()
OverCombFilter ->
w
& hud
. subInventory
. ciFilter
.~ Nothing
& worldEventFlags
. at CombineInventoryChange
?~ ()
& hud
. subInventory
. ciSelection
%~ endCombineRegex w
OverCombCombine x ->
w
OverCombSelect x -> w
& hud . subInventory . ciSelection ?~ f x
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombFilter -> w
& hud . subInventory . ciFilter .~ Nothing
& worldEventFlags . at CombineInventoryChange ?~ ()
& hud . subInventory . ciSelection %~ endCombineRegex w
OverCombCombine x -> w
& tryCombine x
& worldEventFlags
. at CombineInventoryChange
?~ ()
& worldEventFlags
. at InventoryChange
?~ ()
& worldEventFlags . at CombineInventoryChange ?~ ()
& worldEventFlags . at InventoryChange ?~ ()
& maybeExitCombine
OverCombEscape ->
w
& worldEventFlags
. at InventoryChange
?~ ()
& hud
. subInventory
.~ NoSubInventory
OverCombEscape -> w
& worldEventFlags . at InventoryChange ?~ ()
& hud . subInventory .~ NoSubInventory
OverCombFiltInv (0, j) -> fromMaybe w $ do
str <-
fmap (take 5) $
+76 -76
View File
@@ -2963,7 +2963,7 @@ closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 237;" f
closeItemDist src/Dodge/Inventory.hs 152;" f
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 260;" f
closeObjectInfo src/Dodge/Render/HUD.hs 273;" f
closeObjectInfo src/Dodge/Render/HUD.hs 221;" f
closestCrToMouse src/Dodge/Debug.hs 308;" f
closestPointOnLine src/Geometry/Intersect.hs 286;" f
closestPointOnLineParam src/Geometry/Intersect.hs 302;" f
@@ -2998,7 +2998,7 @@ combinationsOf src/Multiset.hs 46;" f
combinationsTrie src/Dodge/Combine.hs 44;" f
combineAwareness src/Dodge/Creature/Perception.hs 119;" f
combineFloors src/Dodge/Room/Procedural.hs 154;" f
combineInventoryExtra src/Dodge/Render/HUD.hs 385;" f
combineInventoryExtra src/Dodge/Render/HUD.hs 324;" f
combineItemListYouX src/Dodge/Combine.hs 36;" f
combineList src/Dodge/Combine.hs 21;" f
combineRooms src/Dodge/Room/Procedural.hs 134;" f
@@ -3025,7 +3025,7 @@ connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 802;" f
constructEdges src/Polyhedra.hs 31;" f
constructEdgesList src/Polyhedra.hs 40;" f
contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f
continueTerminal src/Dodge/Update/Input/InGame.hs 514;" f
continueTerminal src/Dodge/Update/Input/InGame.hs 407;" f
convexHull src/Geometry/Polygon.hs 150;" f
convexHullSafe src/Geometry/Polygon.hs 172;" f
convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f
@@ -3368,7 +3368,7 @@ doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 59;" f
doDoorLerp src/Dodge/Door/DoorLerp.hs 8;" f
doDoorMount src/Dodge/Door.hs 32;" f
doDrag src/Dodge/Update/Input/InGame.hs 136;" f
doDragSelect src/Dodge/Update/Input/InGame.hs 277;" f
doDragSelect src/Dodge/Update/Input/InGame.hs 216;" f
doDrawing src/Dodge/Render.hs 33;" f
doDrawing' src/Dodge/Render.hs 44;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f
@@ -3387,7 +3387,7 @@ doPreload appDodge/Main.hs 133;" f
doQuickload src/Dodge/Save.hs 83;" f
doQuicksave src/Dodge/Save.hs 77;" f
doRandImpulse src/Dodge/RandImpulse.hs 8;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 567;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 460;" f
doRoomPlacements src/Dodge/Layout.hs 121;" f
doRoomShift src/Dodge/Room/Link.hs 34;" f
doScopeZoom src/Dodge/Update/Scroll.hs 89;" f
@@ -3438,7 +3438,7 @@ drawCircCollisionTest src/Dodge/Debug/Picture.hs 118;" f
drawCliff src/Dodge/Render/ShapePicture.hs 87;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 273;" f
drawCombineInventory src/Dodge/Render/HUD.hs 235;" f
drawCombineInventory src/Dodge/Render/HUD.hs 183;" f
drawConcurrentMessage src/Dodge/Render/Picture.hs 72;" f
drawCoord src/Dodge/Debug/Picture.hs 396;" f
drawCountMod src/Render.hs 231;" f
@@ -3459,13 +3459,13 @@ drawDrag src/Dodge/Render/Picture.hs 204;" f
drawDragDrop src/Dodge/Render/Picture.hs 233;" f
drawDragPickup src/Dodge/Render/Picture.hs 242;" f
drawDragSelect src/Dodge/Render/Picture.hs 197;" f
drawDragSelected src/Dodge/Render/HUD.hs 145;" f
drawDragSelecting src/Dodge/Render/HUD.hs 177;" f
drawDragSelected src/Dodge/Render/HUD.hs 134;" f
drawDragSelecting src/Dodge/Render/HUD.hs 151;" f
drawDumbSwitch src/Dodge/Button/Draw.hs 31;" f
drawEmptySet src/Dodge/Render/Picture.hs 153;" f
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 7;" f
drawEquipment src/Dodge/Creature/Picture.hs 426;" f
drawExamineInventory src/Dodge/Render/HUD.hs 244;" f
drawExamineInventory src/Dodge/Render/HUD.hs 192;" f
drawExplosiveBall src/Dodge/EnergyBall/Draw.hs 15;" f
drawFarWallDetect src/Dodge/Debug/Picture.hs 271;" f
drawFlame src/Dodge/Flame/Draw.hs 8;" f
@@ -3479,9 +3479,9 @@ drawHoverCrit src/Dodge/Creature/Picture.hs 100;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 33;" f
drawInspectWall src/Dodge/Debug/Picture.hs 256;" f
drawInspectWalls src/Dodge/Debug/Picture.hs 244;" f
drawInventory src/Dodge/Render/HUD.hs 61;" f
drawItemChildrenConnect src/Dodge/Render/HUD.hs 377;" f
drawItemConnections src/Dodge/Render/HUD.hs 370;" f
drawInventory src/Dodge/Render/HUD.hs 60;" f
drawItemChildrenConnect src/Dodge/Render/HUD.hs 316;" f
drawItemConnections src/Dodge/Render/HUD.hs 309;" f
drawJumpDown src/Dodge/Render/Picture.hs 192;" f
drawLabCrossCol src/Dodge/Render/Label.hs 8;" f
drawLabelledList src/Dodge/Render/List.hs 198;" f
@@ -3495,13 +3495,13 @@ drawListYoff src/Dodge/Render/List.hs 89;" f
drawLoadingScreen src/Dodge/Render/MenuScreen.hs 24;" f
drawMachine src/Dodge/Machine/Draw.hs 18;" f
drawMapperAR src/Dodge/Targeting/Draw.hs 12;" f
drawMapperInventory src/Dodge/Render/HUD.hs 226;" f
drawMapperInventory src/Dodge/Render/HUD.hs 174;" f
drawMenuClick src/Dodge/Render/Picture.hs 168;" f
drawMenuCursor src/Dodge/Render/Picture.hs 180;" f
drawMenuOrHUD src/Dodge/Render/Picture.hs 67;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 18;" f
drawMouseCursor src/Dodge/Render/Picture.hs 83;" f
drawMouseOver src/Dodge/Render/HUD.hs 115;" f
drawMouseOver src/Dodge/Render/HUD.hs 107;" f
drawMousePosition src/Dodge/Debug/Picture.hs 386;" f
drawOptions src/Dodge/Render/MenuScreen.hs 36;" f
drawPathBetween src/Dodge/Debug/Picture.hs 202;" f
@@ -3514,11 +3514,11 @@ drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
drawPulseBall src/Dodge/Render/ShapePicture.hs 95;" f
drawPulseLaser src/Dodge/Laser/Update.hs 42;" f
drawQuitTerminal src/Dodge/Render/Picture.hs 147;" f
drawRBOptions src/Dodge/Render/HUD.hs 298;" f
drawRBOptions src/Dodge/Render/HUD.hs 246;" f
drawRadarSweep src/Dodge/RadarSweep/Draw.hs 14;" f
drawRemoteShell src/Dodge/Projectile/Draw.hs 38;" f
drawReturn src/Dodge/Render/Picture.hs 156;" f
drawRootCursor src/Dodge/Render/HUD.hs 82;" f
drawRootCursor src/Dodge/Render/HUD.hs 81;" f
drawSSCursor src/Dodge/SelectionSections/Draw.hs 32;" f
drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 37;" f
drawSelect src/Dodge/Render/Picture.hs 261;" f
@@ -3532,12 +3532,12 @@ drawSlimeCrit src/Dodge/Creature/Picture.hs 57;" f
drawSlinkCrit src/Dodge/Creature/Picture.hs 86;" f
drawSpark src/Dodge/Spark/Draw.hs 7;" f
drawStaticBall src/Dodge/EnergyBall/Draw.hs 28;" f
drawSubInventory src/Dodge/Render/HUD.hs 218;" f
drawSubInventory src/Dodge/Render/HUD.hs 166;" f
drawSwitch src/Dodge/Button/Draw.hs 18;" f
drawSwitchWire src/Dodge/LevelGen/Switch.hs 24;" f
drawTargetingAR src/Dodge/Targeting/Draw.hs 20;" f
drawTerminalCursorLink src/Dodge/Render/HUD.hs 441;" f
drawTerminalDisplay src/Dodge/Render/HUD.hs 402;" f
drawTerminalCursorLink src/Dodge/Render/HUD.hs 380;" f
drawTerminalDisplay src/Dodge/Render/HUD.hs 341;" f
drawTeslaArc src/Dodge/Tesla/Draw.hs 9;" f
drawText src/Picture/Base.hs 224;" f
drawTitle src/Dodge/Render/MenuScreen.hs 49;" f
@@ -3599,8 +3599,8 @@ encircleCloseP src/Dodge/Creature/Boid.hs 38;" f
encircleDistP src/Dodge/Creature/Boid.hs 24;" f
encircleP src/Dodge/Creature/Boid.hs 30;" f
endArcPos src/Dodge/Tesla.hs 87;" f
endCombineRegex src/Dodge/Update/Input/InGame.hs 402;" f
endRegex src/Dodge/Update/Input/InGame.hs 396;" f
endCombineRegex src/Dodge/Update/Input/InGame.hs 295;" f
endRegex src/Dodge/Update/Input/InGame.hs 289;" f
energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f
enterCombineInv src/Dodge/DisplayInventory.hs 321;" f
enumOption src/Dodge/Menu/OptionType.hs 17;" f
@@ -3608,7 +3608,7 @@ epText src/Dodge/Inventory/SelectionList.hs 74;" f
eqConstr src/SameConstr.hs 17;" f
eqPosText src/Dodge/Equipment/Text.hs 5;" f
eqTypeToSites src/Dodge/Inventory/RBList.hs 77;" f
equipAllocString src/Dodge/Render/HUD.hs 361;" f
equipAllocString src/Dodge/Render/HUD.hs 300;" f
equipAttachPos src/Dodge/Item/Draw.hs 30;" f
equipBackgroundEffect src/Dodge/Euse.hs 22;" f
equipInfo src/Dodge/Item/Info.hs 140;" f
@@ -3691,7 +3691,7 @@ flockACC src/Dodge/Creature/ReaderUpdate.hs 97;" f
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 278;" f
floorItemPickupInfo src/Dodge/Render/HUD.hs 226;" f
floorItemSPic src/Dodge/Render/ShapePicture.hs 143;" f
floorTo src/Geometry/Zone.hs 12;" f
floorWire src/Dodge/Wire.hs 13;" f
@@ -3759,7 +3759,7 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 90;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 175;" f
getBulletType src/Dodge/HeldUse.hs 945;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 691;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 584;" f
getCommand src/Dodge/Terminal.hs 61;" f
getCommands src/Dodge/Terminal.hs 58;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f
@@ -3782,7 +3782,7 @@ getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomFromID src/Dodge/Room/Modify.hs 31;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 611;" f
getRootItemBounds src/Dodge/Render/HUD.hs 106;" f
getRootItemBounds src/Dodge/Render/HUD.hs 98;" f
getRootItemInvID src/Dodge/Inventory/Location.hs 36;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 14;" f
getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f
@@ -3980,7 +3980,7 @@ invDP src/Dodge/ListDisplayParams.hs 32;" f
invDT src/Dodge/Item/Grammar.hs 227;" f
invDT' src/Dodge/Item/Grammar.hs 232;" f
invDimColor src/Dodge/DisplayInventory.hs 190;" f
invHead src/Dodge/Render/HUD.hs 471;" f
invHead src/Dodge/Render/HUD.hs 410;" f
invIMDT src/Dodge/Item/Grammar.hs 256;" f
invIndents src/Dodge/Item/Grammar.hs 263;" f
invItemEffs src/Dodge/Creature/State.hs 91;" f
@@ -3992,9 +3992,9 @@ invSetSelectionPos src/Dodge/Inventory.hs 304;" f
invShiftPointBy src/Dodge/ShiftPoint.hs 17;" f
invSize src/Dodge/Inventory/CheckSlots.hs 33;" f
inventoryX src/Dodge/Creature.hs 103;" f
inverseSelNumPos src/Dodge/SelectionSections.hs 231;" f
inverseSelSecYint src/Dodge/SelectionSections.hs 199;" f
inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 212;" f
inverseSelNumPos src/Dodge/SelectionSections.hs 232;" f
inverseSelSecYint src/Dodge/SelectionSections.hs 200;" f
inverseSelSecYintXPosCheck src/Dodge/SelectionSections.hs 213;" f
inverseShockwaveAt src/Dodge/WorldEvent/Shockwave.hs 44;" f
invertEncircleDistP src/Dodge/Creature/Boid.hs 16;" f
invertIntMap src/IntMapHelp.hs 100;" f
@@ -4010,7 +4010,6 @@ isCognizant src/Dodge/Creature/Perception.hs 115;" f
isConnected src/Dodge/Inventory/Swap.hs 86;" f
isCornerLink src/Dodge/RoomLink.hs 66;" f
isFlyable src/Dodge/WorldEvent/ThingsHit.hs 232;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 286;" f
isInLnk src/Dodge/PlacementSpot.hs 163;" f
isJust' src/MaybeHelp.hs 27;" f
isLHS src/Geometry/LHS.hs 12;" f
@@ -4172,7 +4171,7 @@ listGuard src/Dodge/Creature/ReaderUpdate.hs 287;" f
listSelectionColorPicture src/Dodge/DisplayInventory.hs 299;" f
litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
lmt src/MatrixHelper.hs 53;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 460;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 399;" f
loadAmmoTut src/Dodge/Room/Tutorial.hs 475;" f
loadDodgeConfig src/Dodge/Config.hs 30;" f
loadMusic src/Dodge/SoundLogic/LoadSound.hs 30;" f
@@ -4299,7 +4298,7 @@ maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 136;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 141;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 727;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 620;" f
maybeOpenConsole src/Dodge/Update.hs 135;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 135;" f
@@ -4453,7 +4452,7 @@ newSounds src/Dodge/Creature/Perception.hs 175;" f
newSoundsToPlay src/Dodge/SoundSelection.hs 8;" f
newTextureFramebuffer src/Framebuffer/Setup.hs 16;" f
nextArc src/Dodge/Tesla.hs 61;" f
nextInSectionSS src/Dodge/SelectionSections.hs 35;" f
nextInSectionSS src/Dodge/SelectionSections.hs 36;" f
nextLayoutInt src/Dodge/Data/MetaTree.hs 44;" f
noPic src/ShapePicture.hs 25;" f
noShape src/ShapePicture.hs 29;" f
@@ -4541,7 +4540,7 @@ passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 693;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 87;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 683;" f
pauseGame src/Dodge/Update/Input/InGame.hs 576;" f
pauseMenu src/Dodge/Menu.hs 57;" f
pauseMenuOptions src/Dodge/Menu.hs 64;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f
@@ -4671,7 +4670,7 @@ pop3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 838;" f
popS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 590;" f
popScreen src/Dodge/Menu/PushPop.hs 6;" f
posRms src/Dodge/Tree/Shift.hs 46;" f
posSelSecYint src/Dodge/SelectionSections.hs 181;" f
posSelSecYint src/Dodge/SelectionSections.hs 182;" f
positionRoomsFromTree src/Dodge/Tree/Shift.hs 36;" f
postGenerationProcessing src/Dodge/LevelGen.hs 31;" f
postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 14;" f
@@ -4992,7 +4991,7 @@ screenToWorldPos src/Dodge/Base/Coordinate.hs 45;" f
scrollAugInvSel src/Dodge/Inventory.hs 307;" f
scrollAugNextInSection src/Dodge/Inventory.hs 321;" f
scrollRBOption src/Dodge/Update/Scroll.hs 139;" f
scrollSelectionSections src/Dodge/SelectionSections.hs 29;" f
scrollSelectionSections src/Dodge/SelectionSections.hs 30;" f
scrollTimeBack src/Dodge/Update.hs 245;" f
scrollTimeForward src/Dodge/Update.hs 262;" f
seagullBarkS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 624;" f
@@ -5012,12 +5011,12 @@ seedStartMenu src/Dodge/Menu.hs 85;" f
seedStartOptions src/Dodge/Menu.hs 88;" f
segOnCirc src/Geometry.hs 113;" f
segmentArea src/Dodge/Creature/Update.hs 355;" f
selNumPos src/Dodge/Render/HUD.hs 520;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 537;" f
selNumPos src/Dodge/Render/HUD.hs 459;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 476;" f
selSecDrawCursor src/Dodge/Render/List.hs 101;" f
selSecSelCol src/Dodge/Render/HUD.hs 557;" f
selSecSelSize src/Dodge/SelectionSections.hs 177;" f
selSecYint src/Dodge/SelectionSections.hs 186;" f
selSecSelCol src/Dodge/Render/HUD.hs 496;" f
selSecSelSize src/Dodge/SelectionSections.hs 178;" f
selSecYint src/Dodge/SelectionSections.hs 187;" f
selectedItemScroll src/Dodge/Update/Scroll.hs 49;" f
selectionSet src/Dodge/Update/Input/InGame.hs 162;" f
semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 846;" f
@@ -5054,7 +5053,7 @@ setOutLinksByType src/Dodge/RoomLink.hs 76;" f
setOutLinksPD src/Dodge/RoomLink.hs 96;" f
setPixelOffsetBounded src/Dodge/Update/Input/InGame.hs 123;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 318;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 458;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 351;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f
setShaderSource src/Shader/Compile.hs 121;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f
@@ -5097,7 +5096,7 @@ shiftByV2 src/Dodge/PlacementSpot.hs 257;" f
shiftChildren src/Dodge/Tree/Compose.hs 45;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 111;" f
shiftInBy src/Dodge/PlacementSpot.hs 254;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 426;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 319;" f
shiftInvItemsDown src/Dodge/Inventory.hs 186;" f
shiftInvItemsUp src/Dodge/Inventory.hs 196;" f
shiftLinkBy src/Dodge/Room/Link.hs 89;" f
@@ -5231,7 +5230,7 @@ soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 89;" f
spPos src/ShapePicture/Data.hs 11;" f
spaceAction src/Dodge/Update/Input/InGame.hs 686;" f
spaceAction src/Dodge/Update/Input/InGame.hs 579;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 162;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 155;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 147;" f
@@ -5269,25 +5268,25 @@ square src/Geometry/Polygon.hs 56;" f
squareDecoration src/Dodge/Placement/TopDecoration.hs 48;" f
squashIntersectCirclePoint src/Dodge/WallCreatureCollisions.hs 127;" f
squashNormalizeV src/Geometry/Vector.hs 166;" f
ssLookupDown src/Dodge/SelectionSections.hs 100;" f
ssLookupGE src/Dodge/SelectionSections.hs 154;" f
ssLookupGE' src/Dodge/SelectionSections.hs 170;" f
ssLookupGT src/Dodge/SelectionSections.hs 141;" f
ssLookupGT' src/Dodge/SelectionSections.hs 147;" f
ssLookupLE src/Dodge/SelectionSections.hs 162;" f
ssLookupLE' src/Dodge/SelectionSections.hs 129;" f
ssLookupLT src/Dodge/SelectionSections.hs 116;" f
ssLookupLT' src/Dodge/SelectionSections.hs 122;" f
ssLookupMax src/Dodge/SelectionSections.hs 90;" f
ssLookupMaxInSection src/Dodge/SelectionSections.hs 110;" f
ssLookupMin src/Dodge/SelectionSections.hs 136;" f
ssLookupNextMax src/Dodge/SelectionSections.hs 105;" f
ssLookupUp src/Dodge/SelectionSections.hs 95;" f
ssScrollMinOnFail src/Dodge/SelectionSections.hs 46;" f
ssScrollUsing src/Dodge/SelectionSections.hs 38;" f
ssSetCursor src/Dodge/SelectionSections.hs 74;" f
ssLookupDown src/Dodge/SelectionSections.hs 101;" f
ssLookupGE src/Dodge/SelectionSections.hs 155;" f
ssLookupGE' src/Dodge/SelectionSections.hs 171;" f
ssLookupGT src/Dodge/SelectionSections.hs 142;" f
ssLookupGT' src/Dodge/SelectionSections.hs 148;" f
ssLookupLE src/Dodge/SelectionSections.hs 163;" f
ssLookupLE' src/Dodge/SelectionSections.hs 130;" f
ssLookupLT src/Dodge/SelectionSections.hs 117;" f
ssLookupLT' src/Dodge/SelectionSections.hs 123;" f
ssLookupMax src/Dodge/SelectionSections.hs 91;" f
ssLookupMaxInSection src/Dodge/SelectionSections.hs 111;" f
ssLookupMin src/Dodge/SelectionSections.hs 137;" f
ssLookupNextMax src/Dodge/SelectionSections.hs 106;" f
ssLookupUp src/Dodge/SelectionSections.hs 96;" f
ssScrollMinOnFail src/Dodge/SelectionSections.hs 47;" f
ssScrollUsing src/Dodge/SelectionSections.hs 39;" f
ssSetCursor src/Dodge/SelectionSections.hs 75;" f
ssfold src/FoldableHelp.hs 105;" f
sssSelectionSlice src/Dodge/Render/HUD.hs 200;" f
sssSelectionSlice src/Dodge/SelectionSections.hs 236;" f
stackPicturesAt src/Dodge/Render/List.hs 95;" f
stackPicturesAtOff src/Dodge/Render/List.hs 98;" f
stackText src/Picture/Base.hs 180;" f
@@ -5295,7 +5294,7 @@ stackedInventory src/Dodge/Creature.hs 318;" f
startCr src/Dodge/Creature.hs 83;" f
startCrafts src/Dodge/Room/Start.hs 94;" f
startDeathTimer src/Dodge/Creature/Update.hs 495;" f
startDrag src/Dodge/Update/Input/InGame.hs 411;" f
startDrag src/Dodge/Update/Input/InGame.hs 304;" f
startInvList src/Dodge/Creature.hs 97;" f
startInventory src/Dodge/Creature.hs 100;" f
startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f
@@ -5339,6 +5338,7 @@ swapItemWith src/Dodge/Inventory.hs 280;" f
swapSelSet src/Dodge/Inventory.hs 160;" f
swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f
swarmUsingCenter src/Dodge/Creature/Boid.hs 174;" f
symmetricDifference src/Dodge/Update/Input/InGame.hs 228;" f
t src/ShortShow.hs 48;" f
tEast src/Dodge/Room/Corridor.hs 96;" f
tToBTree src/Dodge/Tree/Compose.hs 93;" f
@@ -5524,7 +5524,7 @@ truncate src/Polyhedra/Geodesic.hs 39;" f
trunkDepth src/TreeHelp.hs 164;" f
tryAttachItems src/Dodge/Item/Grammar.hs 35;" f
tryClickUse src/Dodge/Creature/YourControl.hs 207;" f
tryCombine src/Dodge/Update/Input/InGame.hs 703;" f
tryCombine src/Dodge/Update/Input/InGame.hs 596;" f
tryDrawToCapacitor src/Dodge/Creature/State.hs 179;" f
tryDropSelected src/Dodge/Update/Input/InGame.hs 147;" f
tryEvadeSideways src/Dodge/Creature/Action.hs 101;" f
@@ -5584,7 +5584,7 @@ updateAggroBee src/Dodge/Creature/Update.hs 129;" f
updateAimPos src/Dodge/Update.hs 400;" f
updateAllNodes src/TreeHelp.hs 88;" f
updateArc src/Dodge/Tesla.hs 44;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 598;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 491;" f
updateBarrel src/Dodge/Barreloid.hs 43;" f
updateBarreloid src/Dodge/Barreloid.hs 16;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f
@@ -5628,14 +5628,14 @@ updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f
updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f
updateEnergyBall src/Dodge/EnergyBall.hs 32;" f
updateEnergyBalls src/Dodge/Update.hs 775;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 643;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 536;" f
updateExpBarrel src/Dodge/Barreloid.hs 21;" f
updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 772;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 38;" f
updateFoodSearchChaseCrit src/Dodge/Creature/Update.hs 381;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 475;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 471;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 368;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 364;" f
updateGas src/Dodge/Update.hs 942;" f
updateGusts src/Dodge/Update.hs 904;" f
updateHiveCrit src/Dodge/Creature/Update.hs 82;" f
@@ -5643,25 +5643,25 @@ updateHoverCrit src/Dodge/Humanoid.hs 25;" f
updateIMl src/Dodge/Update.hs 639;" f
updateIMl' src/Dodge/Update.hs 642;" f
updateInGameCamera src/Dodge/Update/Camera.hs 86;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 548;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 441;" f
updateInt2Map src/Dodge/Zoning/Base.hs 94;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 87;" f
updateItemTargeting src/Dodge/Creature/State.hs 288;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 508;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 542;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 401;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 435;" f
updateKeysInGame src/Dodge/Update/Input/InGame.hs 81;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 494;" f
updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 517;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 387;" f
updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 410;" f
updateLampoid src/Dodge/Lampoid.hs 13;" f
updateLaser src/Dodge/Laser/Update.hs 12;" f
updateLasers src/Dodge/Update.hs 517;" f
updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLivingCreature src/Dodge/Creature/Update.hs 61;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 561;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 454;" f
updateMachine src/Dodge/Machine/Update.hs 24;" f
updateMagnets src/Dodge/Update.hs 408;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 292;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 231;" f
updateMouseContext src/Dodge/Update.hs 421;" f
updateMouseContextGame src/Dodge/Update.hs 426;" f
updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 94;" f
@@ -5880,7 +5880,7 @@ yV2 src/Geometry/Vector.hs 213;" f
yellow src/Color.hs 44;" f
you src/Dodge/Base/You.hs 17;" f
youDropItem src/Dodge/Creature/Action.hs 195;" f
yourAugmentedItem src/Dodge/Render/HUD.hs 285;" f
yourAugmentedItem src/Dodge/Render/HUD.hs 233;" f
yourControl src/Dodge/Creature/YourControl.hs 26;" f
yourDefaultStrideLength src/Dodge/Default/Creature.hs 109;" f
yourInfo src/Dodge/Creature/Info.hs 10;" f