Handle menu selection with mouse context, remove wheel scroll control

This commit is contained in:
2024-11-17 12:32:05 +00:00
parent 53d8ca2861
commit 5b6c356bab
9 changed files with 147 additions and 136 deletions
+5 -1
View File
@@ -1 +1,5 @@
All good (595 modules, at 12:18:32)
/home/justin/Haskell/loop/src/Dodge/Menu/Option.hs:53:35-41: warning: [-Wunused-matches]
Defined but not used: mselpos
|
53 | makeOptionsSelectionList maxlines mselpos u mos pmo =
| ^^^^^^^
+1 -1
View File
@@ -23,7 +23,7 @@ data CursorDisplay
data SelectionList a = SelectionList
{ _slItems :: [SelectionItem a]
, _slSelPos :: Maybe Int
-- , _slSelPos :: Maybe Int
}
data SectionCursor = SectionCursor
-1
View File
@@ -5,5 +5,4 @@ import Dodge.Data.SelectionList
defaultSelectionList :: SelectionList a
defaultSelectionList = SelectionList
{_slItems = mempty
, _slSelPos = Nothing
}
+1 -1
View File
@@ -53,7 +53,7 @@ makeOptionsSelectionList ::
makeOptionsSelectionList maxlines mselpos u mos pmo =
defaultSelectionList
{ _slItems = optionsToSelections maxlines u mos pmo
, _slSelPos = mselpos
-- , _slSelPos = mselpos
}
optionsToSelections ::
+6 -5
View File
@@ -14,6 +14,7 @@ module Dodge.Render.List (
listCursorChooseBorderScale,
selSecDrawCursorAt,
drawTitleBackground, -- should be renamed, made sensible
drawCursorAt,
) where
import Dodge.ListDisplayParams
@@ -38,11 +39,11 @@ drawSelectionList ldps cfig sl =
(ldps ^. ldpScale)
0
(makeSelectionListPictures sl)
<> drawCursorAt
(sl ^. slSelPos)
(sl ^. slItems)
ldps
(BoundaryCursor [North, South])
-- <> drawCursorAt
-- (sl ^. slSelPos)
-- (sl ^. slItems)
-- ldps
-- (BoundaryCursor [North, South])
drawTitleBackground :: Configuration -> Picture
drawTitleBackground cfig =
+16 -7
View File
@@ -3,16 +3,19 @@ module Dodge.Render.MenuScreen (
drawMenuScreen,
) where
import Dodge.ScreenPos
import Dodge.Data.CardinalPoint
import Control.Lens
import Dodge.Render.List
import Dodge.Base.Window
import Dodge.Data.SelectionList
import Dodge.Data.Universe
import Dodge.Render.List
import Picture
drawMenuScreen :: Configuration -> ScreenLayer -> Picture
drawMenuScreen cfig screen = case screen of
OptionScreen{_scTitle = titf, _scSelectionList = selpos, _scListDisplayParams = ldps} ->
drawOptions ldps cfig titf selpos
drawMenuScreen :: Configuration -> Maybe Int -> ScreenLayer -> Picture
drawMenuScreen cfig spos screen = case screen of
OptionScreen{_scTitle = titf, _scSelectionList = slist, _scListDisplayParams = ldps} ->
drawOptions ldps cfig titf spos slist
InputScreen inputstr help -> drawInputMenu cfig ('>' : inputstr) help
drawInputMenu ::
@@ -34,13 +37,19 @@ drawOptions ::
Configuration ->
-- | Title
String ->
-- | Select position
Maybe Int ->
SelectionList a ->
Picture
drawOptions ldps cfig title sl =
drawOptions ldps cfig title msel sl =
darkenBackground cfig
<> drawTitle cfig title
<> drawSelectionList ldps cfig sl
<> translateScreenPos cfig (ldps ^. ldpPos) (drawCursorAt
msel
(sl ^. slItems)
ldps
(BoundaryCursor [North, South])
)
darkenBackground :: Configuration -> Picture
darkenBackground = color (withAlpha 0.5 black) . polygon . reverse . screenBox
+1 -1
View File
@@ -57,7 +57,7 @@ fpsText x = color col . text $ "ms/frame " ++ show x
drawMenuOrHUD :: Configuration -> Universe -> Picture
drawMenuOrHUD cfig u = case u ^. uvScreenLayers of
[] -> drawHUD (u ^. uvConfig) (u ^. uvWorld)
(lay : _) -> drawMenuScreen cfig lay
(lay : _) -> drawMenuScreen cfig (u ^? uvWorld . input . mouseContext . mcoMenuClick) lay
drawConcurrentMessage :: Universe -> Picture
drawConcurrentMessage u =
+36 -36
View File
@@ -41,10 +41,10 @@ optionScreenUpdate :: Universe -> Universe
optionScreenUpdate u =
(uvScreenLayers . ix 0 . scDisplayTime +~ 1)
. refreshOptionsSelectionList
. mouseOverSelectionList
-- . mouseOverSelectionList
. optionScreenDefaultEffect
. mouseClickOptionsList
. menuWheelEvents
-- . menuWheelEvents
. over (uvScreenLayers . _head) (setSelectionListRestriction (u ^. uvConfig))
$ u
@@ -61,32 +61,32 @@ mouseClickOptionsList u = fromMaybe u $ do
sl <- u ^? uvScreenLayers . ix 0 . scSelectionList
Just $ case u ^. uvWorld . input . mouseButtons . at ButtonLeft of
Just 0 -> fromMaybe u $ do
i <- sl ^. slSelPos
i <- u ^? uvWorld . input . mouseContext . mcoMenuClick
f <- sl ^? slItems . ix i . siPayload . _1
return $ f u
_ -> case u ^. uvWorld . input . mouseButtons . at ButtonRight of
Just 0 -> fromMaybe u $ do
i <- sl ^. slSelPos
i <- u ^? uvWorld . input . mouseContext . mcoMenuClick
f <- sl ^? slItems . ix i . siPayload . _2
return $ f u
_ -> u
mouseOverSelectionList :: Universe -> Universe
mouseOverSelectionList u = fromMaybe u $ do
screen <- u ^? uvScreenLayers . ix 0
ldps <- screen ^? scListDisplayParams
let ymax = maybe 0 length $ screen ^? scSelectionList . slItems
yi <- ldpVerticalSelection (u ^. uvConfig) ldps (u ^. uvWorld . input . mousePos)
guard $ mmoving || (_scDisplayTime screen <= 1)
let myi = do
guard (yi >= 0 && yi < ymax && isselectable yi)
return yi
return $ u & uvScreenLayers . _head . scSelectionList . slSelPos .~ myi
where
isselectable yi =
fromMaybe False $
u ^? uvScreenLayers . _head . scSelectionList . slItems . ix yi . siIsSelectable
mmoving = u ^. uvWorld . input . mouseMoving
--mouseOverSelectionList :: Universe -> Universe
--mouseOverSelectionList u = fromMaybe u $ do
-- screen <- u ^? uvScreenLayers . ix 0
-- ldps <- screen ^? scListDisplayParams
-- let ymax = maybe 0 length $ screen ^? scSelectionList . slItems
-- yi <- ldpVerticalSelection (u ^. uvConfig) ldps (u ^. uvWorld . input . mousePos)
-- guard $ mmoving || (_scDisplayTime screen <= 1)
-- let myi = do
-- guard (yi >= 0 && yi < ymax && isselectable yi)
-- return yi
-- return $ u & uvScreenLayers . _head . scSelectionList . slSelPos .~ myi
-- where
-- isselectable yi =
-- fromMaybe False $
-- u ^? uvScreenLayers . _head . scSelectionList . slItems . ix yi . siIsSelectable
-- mmoving = u ^. uvWorld . input . mouseMoving
ldpVerticalSelection :: Configuration -> ListDisplayParams -> Point2 -> Maybe Int
ldpVerticalSelection cfig ldp (V2 _ y)
@@ -101,23 +101,23 @@ ldpVerticalSelection cfig ldp (V2 _ y)
yupper = floor $ (top - (y + ygap)) / yoff
ylower = ceiling ((top - y) / yoff) - 1
menuWheelEvents :: Universe -> Universe
menuWheelEvents u = foldr ($) u (replicate (abs y) (menuWheelStep (signum y)))
where
y = u ^. uvWorld . input . scrollAmount
--menuWheelEvents :: Universe -> Universe
--menuWheelEvents u = foldr ($) u (replicate (abs y) (menuWheelStep (signum y)))
-- where
-- y = u ^. uvWorld . input . scrollAmount
-- you probably want i to be 1 or -1
menuWheelStep :: Int -> Universe -> Universe
menuWheelStep i u = fromMaybe u $ do
sl <- u ^? uvScreenLayers . _head . scSelectionList
selpos <- sl ^? slSelPos . _Just
ymax <- fmap length (sl ^? slItems)
let newpos = (selpos - i) `mod` ymax
itm <- sl ^? slItems . ix newpos
let newu = u & uvScreenLayers . _head . scSelectionList . slSelPos . _Just %~ const newpos
if _siIsSelectable itm
then Just newu
else Just $ menuWheelStep i newu
---- you probably want i to be 1 or -1
--menuWheelStep :: Int -> Universe -> Universe
--menuWheelStep i u = fromMaybe u $ do
-- sl <- u ^? uvScreenLayers . _head . scSelectionList
-- selpos <- sl ^? slSelPos . _Just
-- ymax <- fmap length (sl ^? slItems)
-- let newpos = (selpos - i) `mod` ymax
-- itm <- sl ^? slItems . ix newpos
-- let newu = u & uvScreenLayers . _head . scSelectionList . slSelPos . _Just %~ const newpos
-- if _siIsSelectable itm
-- then Just newu
-- else Just $ menuWheelStep i newu
setSelectionListRestriction :: Configuration -> ScreenLayer -> ScreenLayer
setSelectionListRestriction cfig screen = fromMaybe screen $ do
+81 -83
View File
@@ -1199,8 +1199,8 @@ MouseInvDrag src/Dodge/Data/HUD.hs 30;" C
MouseInvNothing src/Dodge/Data/HUD.hs 31;" C
MouseInvSelect src/Dodge/Data/HUD.hs 28;" C
MouseInventorySelection src/Dodge/Data/HUD.hs 27;" t
MouseMenu src/Dodge/Data/Input.hs 24;" C
MouseMenuClick src/Dodge/Data/Input.hs 23;" C
MouseMenuCursor src/Dodge/Data/Input.hs 24;" C
Mouse_position src/Dodge/Data/Config.hs 73;" C
Move src/Dodge/Data/ActionPlan.hs 28;" C
Move src/Dodge/Wall/Move.hs 3;" m
@@ -3071,7 +3071,6 @@ _skinHead src/Dodge/Data/Creature/Misc.hs 66;" f
_skinLower src/Dodge/Data/Creature/Misc.hs 68;" f
_skinUpper src/Dodge/Data/Creature/Misc.hs 67;" f
_slItems src/Dodge/Data/SelectionList.hs 25;" f
_slSelPos src/Dodge/Data/SelectionList.hs 26;" f
_smoothScrollAmount src/Dodge/Data/Input.hs 42;" f
_soundAngDist src/Sound/Data.hs 53;" f
_soundChannel src/Sound/Data.hs 52;" f
@@ -3346,7 +3345,7 @@ addToTrunk src/TreeHelp.hs 156;" f
addWarningTerminal src/Dodge/Room/Warning.hs 37;" f
addZ src/Geometry/Vector3D.hs 89;" f
adjustIMZone src/Dodge/Base.hs 77;" f
advanceScrollAmount src/Dodge/Update.hs 457;" f
advanceScrollAmount src/Dodge/Update.hs 469;" f
advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f
advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f
aimDelaySweep src/Dodge/Render/Picture.hs 181;" f
@@ -3591,7 +3590,7 @@ chaseCritVocalization src/Dodge/Creature/ChaseCrit.hs 46;" f
checkCombineSelectionExists src/Dodge/DisplayInventory.hs 99;" f
checkConnection src/Dodge/Inventory.hs 233;" f
checkDeath src/Dodge/Creature/State.hs 75;" f
checkEndGame src/Dodge/Update.hs 744;" f
checkEndGame src/Dodge/Update.hs 756;" f
checkErrorGL src/Shader/Compile.hs 255;" f
checkFBO src/Framebuffer/Check.hs 6;" f
checkGLError src/GLHelp.hs 17;" f
@@ -3602,7 +3601,7 @@ checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f
checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f
checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f
chemFuelPouch src/Dodge/Item/Ammo.hs 110;" f
chooseCursorBorders src/Dodge/Render/List.hs 156;" f
chooseCursorBorders src/Dodge/Render/List.hs 157;" f
chooseEquipmentPosition src/Dodge/Inventory/RBList.hs 36;" f
chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 39;" f
chooseFreeSite src/Dodge/Inventory/RBList.hs 42;" f
@@ -3618,7 +3617,7 @@ circle src/Picture/Base.hs 180;" f
circleDecoration src/Dodge/Placement/TopDecoration.hs 56;" f
circleSolid src/Picture/Base.hs 164;" f
circleSolidCol src/Picture/Base.hs 168;" f
clClSpringVel src/Dodge/Update.hs 797;" f
clClSpringVel src/Dodge/Update.hs 809;" f
clZoneSize src/Dodge/Zone/Size.hs 3;" f
clZoneSize src/Dodge/Zoning/Cloud.hs 21;" f
clampPath src/Dodge/Room/Procedural.hs 166;" f
@@ -3645,7 +3644,7 @@ closestCreatureID src/Dodge/Debug.hs 92;" f
closestPointOnLine src/Geometry/Intersect.hs 251;" f
closestPointOnLineParam src/Geometry/Intersect.hs 267;" f
closestPointOnSeg src/Geometry/Intersect.hs 282;" f
cloudEffect src/Dodge/Update.hs 767;" f
cloudEffect src/Dodge/Update.hs 779;" f
cloudPoisonDamage src/Dodge/Update/Cloud.hs 9;" f
clsNearCirc src/Dodge/Zoning/Cloud.hs 18;" f
clsNearPoint src/Dodge/Zoning/Cloud.hs 9;" f
@@ -3716,7 +3715,7 @@ crAdd src/Dodge/Room/RezBox.hs 104;" f
crAwayFromPost src/Dodge/Creature/Test.hs 77;" f
crBlips src/Dodge/RadarSweep.hs 69;" f
crCanSeeCr src/Dodge/Creature/Test.hs 48;" f
crCrSpring src/Dodge/Update.hs 815;" f
crCrSpring src/Dodge/Update.hs 827;" f
crCurrentEquipment src/Dodge/Creature/Statistics.hs 28;" f
crDisplayAwareness src/Dodge/Creature/Picture/Awareness.hs 37;" f
crDisplayVigilance src/Dodge/Creature/Picture/Awareness.hs 51;" f
@@ -3737,7 +3736,7 @@ crNumFreeSlots src/Dodge/Inventory/CheckSlots.hs 35;" f
crOnWall src/Dodge/WallCreatureCollisions.hs 84;" f
crSafeDistFromTarg src/Dodge/Creature/Test.hs 67;" f
crSetRoots src/Dodge/Inventory/Location.hs 48;" f
crSpring src/Dodge/Update.hs 810;" f
crSpring src/Dodge/Update.hs 822;" f
crStratConMatches src/Dodge/Creature/Test.hs 72;" f
crUpdate src/Dodge/Creature/State.hs 62;" f
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 61;" f
@@ -3806,7 +3805,7 @@ cylinderIndices src/Shader/Poke.hs 374;" f
cylinderOnSeg src/Geometry.hs 125;" f
cylinderPoly src/Shape.hs 86;" f
cylinderRoundIndices src/Shader/Poke.hs 381;" f
dShadCol src/Dodge/Render/List.hs 213;" f
dShadCol src/Dodge/Render/List.hs 214;" f
damThingHitWith src/Dodge/WorldEvent/Damage.hs 10;" f
damToExpBarrel src/Dodge/Barreloid.hs 57;" f
damageBlocksBy src/Dodge/Wall/Damage.hs 36;" f
@@ -3828,7 +3827,7 @@ damageWlCircle src/Dodge/DamageCircle.hs 26;" f
dampField src/Dodge/Magnet.hs 8;" f
damsToExpBarrel src/Dodge/Barreloid.hs 50;" f
dark src/Color.hs 108;" f
darkenBackground src/Dodge/Render/MenuScreen.hs 45;" f
darkenBackground src/Dodge/Render/MenuScreen.hs 53;" f
dbArg src/Dodge/Base.hs 143;" f
dbArgChain src/Dodge/Base.hs 148;" f
deZoneIX src/Dodge/Zoning/Base.hs 86;" f
@@ -3988,7 +3987,7 @@ displayConfig src/Dodge/Menu.hs 196;" f
displayControls src/Dodge/Menu.hs 206;" f
displayFrameTicks src/Dodge/Render/Picture.hs 39;" f
displayFreeSlots src/Dodge/DisplayInventory.hs 197;" f
displayTerminalLineString src/Dodge/Update.hs 486;" f
displayTerminalLineString src/Dodge/Update.hs 498;" f
dist src/Geometry/Vector.hs 179;" f
dist3 src/Geometry/Vector3D.hs 101;" f
divTo src/Geometry/Zone.hs 6;" f
@@ -4024,7 +4023,7 @@ doFloatFloat src/Dodge/FloatFunction.hs 5;" f
doGenFloat src/Dodge/HeldUse.hs 441;" f
doInPlacements src/Dodge/Layout.hs 92;" f
doIndividualPlacements src/Dodge/Layout.hs 117;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 25;" f
doInputScreenInput src/Dodge/Update/Input/ScreenLayer.hs 26;" f
doIntImp src/Dodge/CreatureEffect.hs 24;" f
doInvEffect src/Dodge/ItEffect.hs 10;" f
doItCrWdWd src/Dodge/WorldEffect.hs 49;" f
@@ -4072,7 +4071,7 @@ doWdCrCr src/Dodge/CreatureEffect.hs 12;" f
doWdP2f src/Dodge/WdP2f.hs 12;" f
doWdWd src/Dodge/WorldEffect.hs 26;" f
doWeaponRepetitions src/Dodge/HeldUse.hs 56;" f
doWorldEvents src/Dodge/Update.hs 468;" f
doWorldEvents src/Dodge/Update.hs 480;" f
doWorldPos src/Dodge/WorldPos.hs 7;" f
door src/Dodge/Room/Door.hs 13;" f
doorBetween src/Dodge/Placement/Instance/Door.hs 39;" f
@@ -4109,7 +4108,7 @@ drawCreature src/Dodge/Render/ShapePicture.hs 41;" f
drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 165;" f
drawCross src/Dodge/Render/Label.hs 24;" f
drawCrossCol src/Dodge/Render/Label.hs 21;" f
drawCursorAt src/Dodge/Render/List.hs 66;" f
drawCursorAt src/Dodge/Render/List.hs 67;" f
drawDDATest src/Dodge/Debug/Picture.hs 256;" f
drawDISelections src/Dodge/Render/HUD.hs 146;" f
drawDoorPaths src/Dodge/Debug/Picture.hs 217;" f
@@ -4122,13 +4121,13 @@ drawFarWallDetect src/Dodge/Debug/Picture.hs 234;" f
drawFlame src/Dodge/Flame/Draw.hs 7;" f
drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f
drawFlare src/Dodge/Flare.hs 12;" f
drawFooterText src/Dodge/Render/MenuScreen.hs 65;" f
drawFooterText src/Dodge/Render/MenuScreen.hs 73;" f
drawForceField src/Dodge/Wall/Draw.hs 11;" f
drawGapPlus src/Dodge/Render/Picture.hs 172;" f
drawGib src/Dodge/Prop/Draw.hs 28;" f
drawHP src/Dodge/Render/HUD.hs 56;" f
drawHUD src/Dodge/Render/HUD.hs 48;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 18;" f
drawInputMenu src/Dodge/Render/MenuScreen.hs 21;" f
drawInspectWall src/Dodge/Debug/Picture.hs 209;" f
drawInspectWalls src/Dodge/Debug/Picture.hs 197;" f
drawInventory src/Dodge/Render/HUD.hs 65;" f
@@ -4137,23 +4136,23 @@ drawLampCover src/Dodge/Prop/Draw.hs 44;" f
drawLaser src/Dodge/Laser/Draw.hs 6;" f
drawLightSource src/Dodge/LightSource/Draw.hs 7;" f
drawLinearShockwave src/Dodge/LinearShockwave/Draw.hs 10;" f
drawList src/Dodge/Render/List.hs 207;" f
drawListElement src/Dodge/Render/List.hs 187;" f
drawListYgapScaleYoff src/Dodge/Render/List.hs 94;" f
drawListYoff src/Dodge/Render/List.hs 91;" f
drawList src/Dodge/Render/List.hs 208;" f
drawListElement src/Dodge/Render/List.hs 188;" f
drawListYgapScaleYoff src/Dodge/Render/List.hs 95;" f
drawListYoff src/Dodge/Render/List.hs 92;" f
drawMachine src/Dodge/Machine/Draw.hs 17;" f
drawMapWall src/Dodge/Render/HUD/Carte.hs 33;" f
drawMenuClick src/Dodge/Render/Picture.hs 122;" f
drawMenuCursor src/Dodge/Render/Picture.hs 135;" f
drawMenuOrHUD src/Dodge/Render/Picture.hs 57;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 12;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 15;" f
drawMouseCursor src/Dodge/Render/Picture.hs 73;" f
drawMouseOver src/Dodge/Render/HUD.hs 116;" f
drawMousePosition src/Dodge/Debug/Picture.hs 319;" f
drawMovingShape src/Dodge/Prop/Draw.hs 67;" f
drawMovingShapeCol src/Dodge/Prop/Draw.hs 73;" f
drawMuzFlare src/Dodge/Flare.hs 17;" f
drawOptions src/Dodge/Render/MenuScreen.hs 32;" f
drawOptions src/Dodge/Render/MenuScreen.hs 35;" f
drawPathBetween src/Dodge/Debug/Picture.hs 168;" f
drawPathEdge src/Dodge/Debug/Picture.hs 222;" f
drawPathing src/Dodge/Debug/Picture.hs 384;" f
@@ -4170,8 +4169,8 @@ drawRootCursor src/Dodge/Render/HUD.hs 84;" f
drawSSCursor src/Dodge/SelectionSections/Draw.hs 30;" f
drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 41;" f
drawSelect src/Dodge/Render/Picture.hs 151;" f
drawSelectionList src/Dodge/Render/List.hs 33;" f
drawSelectionListBackground src/Dodge/Render/List.hs 52;" f
drawSelectionList src/Dodge/Render/List.hs 34;" f
drawSelectionListBackground src/Dodge/Render/List.hs 53;" f
drawSelectionSections src/Dodge/SelectionSections/Draw.hs 17;" f
drawSensor src/Dodge/Machine/Draw.hs 24;" f
drawShader src/Shader.hs 27;" f
@@ -4190,8 +4189,8 @@ drawTargeting src/Dodge/Targeting/Draw.hs 13;" f
drawTerminalDisplay src/Dodge/Render/HUD.hs 351;" f
drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f
drawText src/Picture/Base.hs 220;" f
drawTitle src/Dodge/Render/MenuScreen.hs 48;" f
drawTitleBackground src/Dodge/Render/List.hs 47;" f
drawTitle src/Dodge/Render/MenuScreen.hs 56;" f
drawTitleBackground src/Dodge/Render/List.hs 48;" f
drawTractorBeam src/Dodge/TractorBeam/Draw.hs 7;" f
drawTurret src/Dodge/Machine/Draw.hs 65;" f
drawVerticalLampCover src/Dodge/Prop/Draw.hs 59;" f
@@ -4401,7 +4400,7 @@ getDamageCoding src/Dodge/Terminal.hs 178;" f
getDistortions src/Dodge/Render.hs 382;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f
getItem src/Dodge/Item/Location.hs 15;" f
getLDPWidth src/Dodge/Render/List.hs 86;" f
getLDPWidth src/Dodge/Render/List.hs 87;" f
getLaserColor src/Dodge/HeldUse.hs 196;" f
getLaserDamage src/Dodge/HeldUse.hs 193;" f
getLaserPhaseV src/Dodge/HeldUse.hs 190;" f
@@ -4639,7 +4638,7 @@ isLeftOfA src/Geometry.hs 181;" f
isNothing' src/MaybeHelp.hs 33;" f
isOnSeg src/Geometry.hs 240;" f
isOutLnk src/Dodge/PlacementSpot.hs 164;" f
isOverTerminalScreen src/Dodge/Update.hs 435;" f
isOverTerminalScreen src/Dodge/Update.hs 447;" f
isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f
isRHS src/Geometry/LHS.hs 24;" f
isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f
@@ -4728,7 +4727,7 @@ launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f
launcherPic src/Dodge/Item/Draw/SPic.hs 331;" f
launcherX src/Dodge/Item/Held/Launcher.hs 32;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f
ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 90;" f
ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 91;" f
ldtIL src/Dodge/DoubleTree.hs 149;" f
ldtPropagate src/Dodge/DoubleTree.hs 20;" f
ldtPropagateFold src/Dodge/DoubleTree.hs 29;" f
@@ -4768,7 +4767,7 @@ linksAndPath' src/Dodge/Room/Path.hs 44;" f
linksOnPath src/Dodge/Room/CheckConsistency.hs 7;" f
listConfig src/Dodge/Menu.hs 199;" f
listControls src/Dodge/Menu.hs 212;" f
listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f
listCursorChooseBorderScale src/Dodge/Render/List.hs 136;" f
listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f
listSelectionColorPicture src/Dodge/DisplayInventory.hs 273;" f
litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
@@ -4871,7 +4870,7 @@ makePathBetween src/Dodge/Path.hs 35;" f
makePathBetweenPs src/Dodge/Path.hs 54;" f
makePoisonExplosionAt src/Dodge/WorldEvent/Explosion.hs 26;" f
makeRect src/Grid.hs 82;" f
makeSelectionListPictures src/Dodge/Render/List.hs 61;" f
makeSelectionListPictures src/Dodge/Render/List.hs 62;" f
makeShaderEBO src/Shader/Compile.hs 53;" f
makeShaderProgram src/Shader/Compile.hs 241;" f
makeShaderUsingVAO src/Shader/Compile.hs 146;" f
@@ -4897,7 +4896,7 @@ makeTlsTimeRadColPos src/Dodge/LightSource.hs 88;" f
makeTypeCraft src/Dodge/Item/Craftable.hs 13;" f
makeTypeCraftNum src/Dodge/Item/Craftable.hs 7;" f
mapOverlay src/Dodge/Render/HUD/Carte.hs 24;" f
markWallSeen src/Dodge/Update.hs 729;" f
markWallSeen src/Dodge/Update.hs 741;" f
maxDamageType src/Dodge/Damage.hs 37;" f
maxShowX src/Dodge/Combine/Graph.hs 43;" f
maxViewDistance src/Dodge/Viewpoints.hs 26;" f
@@ -4940,8 +4939,8 @@ memoTopPrismEdgeIndices src/Shader/Poke.hs 321;" f
memoTopPrismIndices src/Shader/Poke.hs 309;" f
menuOptionToSelectionItem src/Dodge/Menu/Option.hs 111;" f
menuOptionToString src/Dodge/Menu/Option.hs 138;" f
menuWheelEvents src/Dodge/Update/Input/ScreenLayer.hs 103;" f
menuWheelStep src/Dodge/Update/Input/ScreenLayer.hs 109;" f
menuWheelEvents src/Dodge/Update/Input/ScreenLayer.hs 104;" f
menuWheelStep src/Dodge/Update/Input/ScreenLayer.hs 110;" f
merge src/ListHelp.hs 83;" f
mergeBy src/ListHelp.hs 86;" f
mergeOn src/ListHelp.hs 93;" f
@@ -4994,9 +4993,8 @@ mntLight src/Dodge/Placement/Instance/LightSource.hs 154;" f
mntLightLnkCond src/Dodge/Placement/Instance/LightSource.hs 159;" f
modTo src/Geometry/Zone.hs 10;" f
mouseActionsCr src/Dodge/Creature/YourControl.hs 153;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 58;" f
mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 59;" f
mouseCursorType src/Dodge/Render/Picture.hs 79;" f
mouseOverSelectionList src/Dodge/Update/Input/ScreenLayer.hs 73;" f
mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f
moveBullet src/Dodge/Bullet.hs 193;" f
moveCombineSel src/Dodge/Update/Scroll.hs 58;" f
@@ -5028,7 +5026,7 @@ mvBullet src/Dodge/Bullet.hs 33;" f
mvButton src/Dodge/Placement/PlaceSpot.hs 176;" f
mvCr src/Dodge/Placement/PlaceSpot.hs 186;" f
mvFS src/Dodge/Placement/PlaceSpot.hs 189;" f
mvGust src/Dodge/Update.hs 758;" f
mvGust src/Dodge/Update.hs 770;" f
mvLS src/Dodge/Placement/PlaceSpot.hs 217;" f
mvP src/Dodge/Wall/Move.hs 54;" f
mvPP src/Dodge/Placement/PlaceSpot.hs 183;" f
@@ -5086,8 +5084,8 @@ oneH src/Dodge/Creature/Test.hs 95;" f
openCursorAt src/Dodge/Render/HUD/Carte.hs 54;" f
optionListDisplayParams src/Dodge/ListDisplayParams.hs 69;" f
optionMenu src/Dodge/Menu.hs 105;" f
optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 50;" f
optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 39;" f
optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 51;" f
optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 40;" f
optionValueOffset src/Dodge/Menu/Option.hs 106;" f
optionsOptions src/Dodge/Menu.hs 108;" f
optionsToSelections src/Dodge/Menu/Option.hs 59;" f
@@ -5192,7 +5190,7 @@ placeSpotID src/Dodge/Placement/PlaceSpot.hs 100;" f
placeSpotID' src/Dodge/Placement/PlaceSpot.hs 106;" f
placeSpotRoomRand src/Dodge/Placement/PlaceSpot.hs 89;" f
placeSpotUsingLink src/Dodge/Placement/PlaceSpot.hs 70;" f
placeString src/Dodge/Render/MenuScreen.hs 54;" f
placeString src/Dodge/Render/MenuScreen.hs 62;" f
placeWallPoly src/Dodge/Placement/PlaceSpot.hs 162;" f
plainRegex src/Dodge/DisplayInventory.hs 194;" f
plateCraft src/Dodge/Item/Craftable.hs 45;" f
@@ -5296,7 +5294,7 @@ powlistUpToN src/Multiset.hs 23;" f
powlistUpToN' src/Multiset.hs 12;" f
powlistUpToN'' src/Multiset.hs 31;" f
ppDraw src/Dodge/Render/ShapePicture.hs 116;" f
ppEvents src/Dodge/Update.hs 721;" f
ppEvents src/Dodge/Update.hs 733;" f
ppLevelReset src/Dodge/PressPlate.hs 13;" f
preCritStart src/Dodge/Room/Start.hs 82;" f
preloadRender src/Preload/Render.hs 30;" f
@@ -5444,7 +5442,7 @@ renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f
renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f
renderLayer src/Render.hs 233;" f
renderLightingNoShadows src/Render.hs 48;" f
renderListAt src/Dodge/Render/List.hs 192;" f
renderListAt src/Dodge/Render/List.hs 193;" f
renderShadows src/Render.hs 117;" f
replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 160;" f
replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f
@@ -5600,8 +5598,8 @@ seedStartOptions src/Dodge/Menu.hs 82;" f
segOnCirc src/Geometry.hs 116;" f
selNumPos src/Dodge/Render/HUD.hs 448;" f
selNumPosCardinal src/Dodge/Render/HUD.hs 471;" f
selSecDrawCursor src/Dodge/Render/List.hs 125;" f
selSecDrawCursorAt src/Dodge/Render/List.hs 103;" f
selSecDrawCursor src/Dodge/Render/List.hs 126;" f
selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f
selSecSelCol src/Dodge/Render/HUD.hs 494;" f
selSecSelSize src/Dodge/SelectionSections.hs 182;" f
selSecYint src/Dodge/SelectionSections.hs 191;" f
@@ -5638,12 +5636,12 @@ setLinkTypePD src/Dodge/RoomLink.hs 67;" f
setMinInvSize src/Dodge/Creature/Action.hs 150;" f
setMusicVolume src/Sound.hs 161;" f
setMvPos src/Dodge/Creature/ReaderUpdate.hs 51;" f
setOldPos src/Dodge/Update.hs 510;" f
setOldPos src/Dodge/Update.hs 522;" f
setOutLinks src/Dodge/RoomLink.hs 48;" f
setOutLinksByType src/Dodge/RoomLink.hs 57;" f
setOutLinksPD src/Dodge/RoomLink.hs 77;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 292;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 121;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 122;" f
setShaderSource src/Shader/Compile.hs 290;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f
setSoundVolume src/Sound.hs 156;" f
@@ -5745,7 +5743,7 @@ shuffleLinks src/Dodge/Room/Link.hs 30;" f
shuffleRoomPos src/Dodge/Layout.hs 78;" f
shuffleTail src/RandomHelp.hs 59;" f
sigmoid src/Dodge/Base.hs 129;" f
simpleCrSprings src/Dodge/Update.hs 806;" f
simpleCrSprings src/Dodge/Update.hs 818;" f
simpleDamFL src/Dodge/Flame.hs 41;" f
simpleTermMessage src/Dodge/Terminal.hs 253;" f
sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f
@@ -5845,8 +5843,8 @@ ssScrollUsing src/Dodge/SelectionSections.hs 51;" f
ssSetCursor src/Dodge/SelectionSections.hs 72;" f
ssTryLookup src/Dodge/SelectionSections.hs 81;" f
ssfold src/FoldableHelp.hs 105;" f
stackPicturesAt src/Dodge/Render/List.hs 97;" f
stackPicturesAtOff src/Dodge/Render/List.hs 100;" f
stackPicturesAt src/Dodge/Render/List.hs 98;" f
stackPicturesAtOff src/Dodge/Render/List.hs 101;" f
stackText src/Picture/Base.hs 188;" f
stackedInventory src/Dodge/Creature.hs 281;" f
startCr src/Dodge/Creature.hs 91;" f
@@ -5973,7 +5971,7 @@ titleOptionsMenu src/Dodge/Menu.hs 99;" f
titleOptionsNoWrite src/Dodge/Menu.hs 102;" f
tlsTimeRadColPos src/Dodge/LightSource.hs 69;" f
tlsTimeRadFunPos src/Dodge/LightSource.hs 26;" f
tmUpdate src/Dodge/Update.hs 490;" f
tmUpdate src/Dodge/Update.hs 502;" f
toBothLnk src/Dodge/RoomLink.hs 121;" f
toClosestMultiple src/HelpNum.hs 3;" f
toColor8 src/Color.hs 148;" f
@@ -5983,7 +5981,7 @@ toLabel src/Dodge/Cleat.hs 16;" f
toLasgunUpdate src/Dodge/Item/Grammar.hs 119;" f
toMultiset src/Multiset.hs 64;" f
toOnward src/Dodge/Tree/Compose.hs 101;" f
toTopLeft src/Dodge/Render/List.hs 217;" f
toTopLeft src/Dodge/Render/List.hs 218;" f
toV2 src/Geometry/Data.hs 36;" f
toV3 src/Geometry/Data.hs 38;" f
toV4 src/Geometry/Data.hs 40;" f
@@ -6115,42 +6113,42 @@ updateBarreloid src/Dodge/Barreloid.hs 13;" f
updateBounds src/Dodge/Update/Camera.hs 245;" f
updateBulVel src/Dodge/Bullet.hs 50;" f
updateBullet src/Dodge/Bullet.hs 28;" f
updateBullets src/Dodge/Update.hs 587;" f
updateBullets src/Dodge/Update.hs 599;" f
updateCamera src/Dodge/Update/Camera.hs 31;" f
updateCloseObjects src/Dodge/Inventory.hs 124;" f
updateCloud src/Dodge/Update.hs 772;" f
updateClouds src/Dodge/Update.hs 616;" f
updateCloud src/Dodge/Update.hs 784;" f
updateClouds src/Dodge/Update.hs 628;" f
updateCombineInvClick src/Dodge/Update/Input/InGame.hs 102;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 38;" f
updateCombineSections src/Dodge/DisplayInventory.hs 44;" f
updateCreature src/Dodge/Creature/Update.hs 10;" f
updateCreatureGroups src/Dodge/Update.hs 556;" f
updateCreatureSoundPositions src/Dodge/Update.hs 532;" f
updateCreatureGroups src/Dodge/Update.hs 568;" f
updateCreatureSoundPositions src/Dodge/Update.hs 544;" f
updateDebugMessageOffset src/Dodge/Update.hs 92;" f
updateDelayedEvents src/Dodge/Update.hs 835;" f
updateDelayedEvents src/Dodge/Update.hs 847;" f
updateDisplaySections src/Dodge/DisplayInventory.hs 112;" f
updateDistortion src/Dodge/Distortion.hs 5;" f
updateDistortions src/Dodge/Update.hs 577;" f
updateDistortions src/Dodge/Update.hs 589;" f
updateEnergyBall src/Dodge/EnergyBall.hs 46;" f
updateEnergyBalls src/Dodge/Update.hs 604;" f
updateEnergyBalls src/Dodge/Update.hs 616;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 283;" f
updateExpBarrel src/Dodge/Barreloid.hs 19;" f
updateFBOTO src/Framebuffer/Update.hs 97;" f
updateFBOTO3 src/Framebuffer/Update.hs 131;" f
updateFlame src/Dodge/Flame.hs 71;" f
updateFlames src/Dodge/Update.hs 601;" f
updateFlames src/Dodge/Update.hs 613;" f
updateFlare src/Dodge/Flare.hs 7;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 92;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 88;" f
updateGusts src/Dodge/Update.hs 755;" f
updateGusts src/Dodge/Update.hs 767;" f
updateHeldRootItem src/Dodge/Creature/State.hs 167;" f
updateHumanoid src/Dodge/Humanoid.hs 12;" f
updateIMl src/Dodge/Update.hs 546;" f
updateIMl' src/Dodge/Update.hs 551;" f
updateIMl src/Dodge/Update.hs 558;" f
updateIMl' src/Dodge/Update.hs 563;" f
updateInGameCamera src/Dodge/Update/Camera.hs 70;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 186;" f
updateInstantBullets src/Dodge/Update.hs 693;" f
updateInstantBullets src/Dodge/Update.hs 705;" f
updateInv src/Dodge/Creature/State.hs 152;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 85;" f
updateItemTargeting src/Dodge/Creature/State.hs 268;" f
@@ -6159,21 +6157,21 @@ updateKeyInGame src/Dodge/Update/Input/InGame.hs 180;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 169;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f
updateLaser src/Dodge/Laser/Update.hs 13;" f
updateLasers src/Dodge/Update.hs 475;" f
updateLightSources src/Dodge/Update.hs 580;" f
updateLasers src/Dodge/Update.hs 487;" f
updateLightSources src/Dodge/Update.hs 592;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 201;" f
updateMIM src/Dodge/Update.hs 706;" f
updateMIM src/Dodge/Update.hs 718;" f
updateMachine src/Dodge/Machine/Update.hs 19;" f
updateMouseContext src/Dodge/Update.hs 391;" f
updateMouseInventorySelection src/Dodge/Update.hs 309;" f
updateMouseInventorySelection' src/Dodge/Update.hs 314;" f
updateMovement src/Dodge/Creature/State.hs 331;" f
updateObjCatMaybes src/Dodge/Update.hs 568;" f
updateObjMapMaybe src/Dodge/Update.hs 561;" f
updatePastWorlds src/Dodge/Update.hs 463;" f
updateObjCatMaybes src/Dodge/Update.hs 580;" f
updateObjMapMaybe src/Dodge/Update.hs 573;" f
updatePastWorlds src/Dodge/Update.hs 475;" f
updatePosEvent src/Dodge/PosEvent.hs 11;" f
updatePosEvents src/Dodge/Update.hs 613;" f
updatePosEvents src/Dodge/Update.hs 625;" f
updatePreload src/Preload/Update.hs 20;" f
updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 144;" f
updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 147;" f
@@ -6181,9 +6179,9 @@ updateProjectile src/Dodge/Projectile/Update.hs 23;" f
updateProp src/Dodge/Prop/Update.hs 11;" f
updateRBList src/Dodge/Inventory/RBList.hs 16;" f
updateRadarBlip src/Dodge/RadarBlip.hs 8;" f
updateRadarBlips src/Dodge/Update.hs 583;" f
updateRadarBlips src/Dodge/Update.hs 595;" f
updateRadarSweep src/Dodge/RadarSweep.hs 25;" f
updateRadarSweeps src/Dodge/Update.hs 607;" f
updateRadarSweeps src/Dodge/Update.hs 619;" f
updateRandNode src/TreeHelp.hs 108;" f
updateRenderSplit appDodge/Main.hs 106;" f
updateRootItemID src/Dodge/Inventory/Location.hs 35;" f
@@ -6192,30 +6190,30 @@ updateScopeZoom' src/Dodge/Update/Camera.hs 132;" f
updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f
updateSection src/Dodge/DisplayInventory.hs 224;" f
updateSectionsPositioning src/Dodge/DisplayInventory.hs 203;" f
updateSeenWalls src/Dodge/Update.hs 724;" f
updateSeenWalls src/Dodge/Update.hs 736;" f
updateShockwave src/Dodge/Shockwave/Update.hs 12;" f
updateShockwaves src/Dodge/Update.hs 598;" f
updateShockwaves src/Dodge/Update.hs 610;" f
updateSingleNodes src/TreeHelp.hs 97;" f
updateSound src/Sound.hs 71;" f
updateSounds src/Sound.hs 66;" f
updateSpark src/Dodge/Spark.hs 19;" f
updateSparks src/Dodge/Update.hs 610;" f
updateSparks src/Dodge/Update.hs 622;" f
updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f
updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f
updateTeslaArcs src/Dodge/Update.hs 592;" f
updateTeslaArcs src/Dodge/Update.hs 604;" f
updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f
updateTractorBeams src/Dodge/Update.hs 595;" f
updateTractorBeams src/Dodge/Update.hs 607;" f
updateTurret src/Dodge/Machine/Update.hs 47;" f
updateUniverse src/Dodge/Update.hs 71;" f
updateUniverseFirst src/Dodge/Update.hs 83;" f
updateUniverseLast src/Dodge/Update.hs 133;" f
updateUniverseMid src/Dodge/Update.hs 154;" f
updateUseInputInGame src/Dodge/Update/Input/InGame.hs 34;" f
updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 20;" f
updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 21;" f
updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 12;" f
updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f
updateWheelEvent src/Dodge/Update/Scroll.hs 19;" f
updateWheelEvents src/Dodge/Update.hs 450;" f
updateWheelEvents src/Dodge/Update.hs 462;" f
updateWorldEventFlag src/Dodge/Update.hs 117;" f
updateWorldEventFlags src/Dodge/Update.hs 105;" f
upperBody src/Dodge/Creature/Picture.hs 133;" f
@@ -6387,9 +6385,9 @@ zipCount src/Dodge/Tree/Shift.hs 129;" f
zipCountDown src/Dodge/Room/Procedural.hs 118;" f
zipWithDefaults src/Dodge/Item/Display.hs 21;" f
zoneCloud src/Dodge/Zoning/Cloud.hs 27;" f
zoneClouds src/Dodge/Update.hs 483;" f
zoneClouds src/Dodge/Update.hs 495;" f
zoneCreature src/Dodge/Zoning/Creature.hs 52;" f
zoneCreatures src/Dodge/Update.hs 527;" f
zoneCreatures src/Dodge/Update.hs 539;" f
zoneExtract src/Dodge/Zoning/Base.hs 50;" f
zoneMonoid src/Dodge/Zoning/Base.hs 80;" f
zoneOfCirc src/Dodge/Zoning/Base.hs 22;" f