Refactor code for initial mouse click in game

This commit is contained in:
2024-11-18 11:00:41 +00:00
parent afddcae6d1
commit 3c5e5b92b1
5 changed files with 217 additions and 139 deletions
+10 -1
View File
@@ -1 +1,10 @@
All good (594 modules, at 19:58:31)
/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:159:1-21: warning: [-Wunused-top-binds]
Defined but not used: updateCombineInvClick
|
159 | updateCombineInvClick sss w = case w ^. input . mouseContext of
| ^^^^^^^^^^^^^^^^^^^^^
/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:159:23-25: warning: [-Wunused-matches]
Defined but not used: sss
|
159 | updateCombineInvClick sss w = case w ^. input . mouseContext of
| ^^^
+10 -6
View File
@@ -294,9 +294,13 @@ runTerminalString s tm w =
)
doTerminalEffectLB :: Terminal -> World -> World
doTerminalEffectLB tm w = fromMaybe w $ do
guard (_tmStatus tm == TerminalReady)
s <- w ^? cWorld . lWorld . terminals . ix (_tmID tm) . tmInput . tiText
return $ if null (words s) && null (_tmPartialCommand tm)
then w
else terminalReturnEffect tm w
doTerminalEffectLB tm w = case w ^. input . mouseContext of
OverTerminalReturn -> fromMaybe w $ do
guard (_tmStatus tm == TerminalReady)
s <- w ^? cWorld . lWorld . terminals . ix (_tmID tm) . tmInput . tiText
return $ if null (words s) && null (_tmPartialCommand tm)
then w
else terminalReturnEffect tm w
OverTerminalEscape -> w
& hud . hudElement . subInventory .~ NoSubInventory MouseInvNothing
_ -> w
+12 -10
View File
@@ -6,7 +6,6 @@ Description : Simulation update
-}
module Dodge.Update (updateUniverse) where
import Dodge.Update.Input.ScreenLayer
import Color
import Control.Applicative
import Control.Monad
@@ -54,6 +53,7 @@ import Dodge.TractorBeam.Update
import Dodge.Update.Camera
import Dodge.Update.Cloud
import Dodge.Update.Input.InGame
import Dodge.Update.Input.ScreenLayer
import Dodge.Update.Scroll
import Dodge.Update.WallDamage
import Dodge.WallCreatureCollisions
@@ -165,7 +165,7 @@ updateUniverseMid u = case _uvScreenLayers u of
. updateClouds
)
(sl : _) -> u & updateUseInputOnScreen sl
[] -> timeFlowUpdate $ updateUseInputInGame u
[] -> timeFlowUpdate . updateUseInputInGame $ over uvWorld updateMouseClickInGame u
timeFlowUpdate :: Universe -> Universe
timeFlowUpdate u = case u ^. uvWorld . timeFlow of
@@ -399,18 +399,19 @@ updateMouseContext cfig u =
screen <- u ^? uvScreenLayers . ix 0
return $ case screen ^. scOptions of
[] -> NoMouseContext
_ -> fromMaybe MouseMenuCursor $ do
_ -> fromMaybe MouseMenuCursor $ do
ldps <- screen ^? scListDisplayParams
let ymax = maybe 0 length $ screen ^? scSelectionList
yi <- ldpVerticalSelection (u ^. uvConfig) ldps (u ^. uvWorld . input . mousePos)
guard (yi >= 0 && yi < ymax)
return $ if isselectable yi
then MouseMenuClick yi
else NoMouseContext
return $
if isselectable yi
then MouseMenuClick yi
else NoMouseContext
isselectable yi =
fromMaybe False $
u ^? uvScreenLayers . _head . scSelectionList . ix yi . siIsSelectable
-- mmoving = u ^. uvWorld . input . mouseMoving
-- mmoving = u ^. uvWorld . input . mouseMoving
w = u ^. uvWorld
aimcontext
| ButtonRight `M.member` (w ^. input . mouseButtons) = MouseAiming
@@ -438,9 +439,10 @@ updateMouseContext cfig u =
tm <- w ^? cWorld . lWorld . terminals . ix tmid
return $
if isOverTerminalScreen cfig tm mpos
then if null $ tm ^. tmInput . tiText
then NoMouseContext
else OverTerminalReturn
then
if null $ tm ^. tmInput . tiText
then NoMouseContext
else OverTerminalReturn
else OverTerminalEscape
isOverTerminalScreen :: Configuration -> Terminal -> Point2 -> Bool
+102 -41
View File
@@ -1,10 +1,10 @@
module Dodge.Update.Input.InGame (
updateUseInputInGame,
updateMouseClickInGame,
) where
import Dodge.Terminal
import Control.Monad
import Control.Applicative
import Control.Monad
import qualified Data.IntMap.Strict as IM
import Data.List (sort)
import qualified Data.Map.Strict as M
@@ -25,6 +25,7 @@ import Dodge.Menu
import Dodge.Save
import Dodge.SelectionSections
import Dodge.SoundLogic
import Dodge.Terminal
import Dodge.Update.Input.Text
import Dodge.WorldPos
import Geometry
@@ -35,30 +36,33 @@ updateUseInputInGame :: Universe -> Universe
updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudElement of
DisplayCarte -> over uvWorld updatePressedButtonsCarte u
DisplayInventory{_subInventory = si} -> case si of
DisplayTerminal tmid
| lbinitialpress -> u & uvWorld
%~ doTerminalEffectLB (w ^?! cWorld . lWorld . terminals . ix tmid)
| otherwise -> updateKeysInTerminal tmid u
CombineInventory{_ciSections = sss, _ciSelection = msel}
| lbinitialpress -> u & uvWorld %~ updateCombineInvClick sss
DisplayTerminal tmid -> updateKeysInTerminal tmid u
-- | lbinitialpress ->
-- u & uvWorld
-- %~ doTerminalEffectLB (w ^?! cWorld . lWorld . terminals . ix tmid)
-- | otherwise -> updateKeysInTerminal tmid u
CombineInventory{_ciSections = sss, _ciSelection = msel}
-- | lbinitialpress -> u & uvWorld %~ updateCombineInvClick sss
| inSubInvRegex (u ^. uvWorld) ->
u
& uvWorld . hud . hudElement . subInventory
%~ docombineregexinput sss msel
& uvWorld . worldEventFlags . at CombineInventoryChange ?~ ()
_ | inInvRegex (u ^. uvWorld) ->
_
| inInvRegex (u ^. uvWorld) ->
u & uvWorld . hud . hudElement %~ dodisplayregexinput (-1)
& uvWorld . worldEventFlags . at InventoryChange ?~ ()
& uvWorld %~ setInvPosFromSS
_ | inCloseRegex (u ^. uvWorld) ->
_
| inCloseRegex (u ^. uvWorld) ->
u & uvWorld . hud . hudElement %~ dodisplayregexinput' 2
& uvWorld . worldEventFlags . at InventoryChange ?~ ()
& uvWorld %~ setInvPosFromSS
_ -> M.foldlWithKey' updateKeyInGame u pkeys
where
w = u ^. uvWorld
-- w = u ^. uvWorld
pkeys = u ^. uvWorld . input . pressedKeys
lbinitialpress = u ^? uvWorld . input . mouseButtons . ix ButtonLeft == Just 0
-- lbinitialpress = u ^? uvWorld . input . mouseButtons . ix ButtonLeft == Just 0
dodisplayregexinput x di = fromMaybe di $ do
sss <- di ^? diSections
msel <- di ^? diSelection
@@ -85,9 +89,58 @@ updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudEleme
& ciSelection .~ msel'
& ciFilter .~ filts'
updateMouseClickInGame :: World -> World
updateMouseClickInGame w = if w ^? input . mouseButtons . ix ButtonLeft == Just 0
then updateMouseClickInGame' w
else w
updateMouseClickInGame' :: World -> World
updateMouseClickInGame' w = case w ^. input . mouseContext of
OverTerminalReturn -> fromMaybe w $ do
tmid <- w ^? hud . hudElement . subInventory . termID
tm <- w ^? cWorld . lWorld . terminals . ix tmid
guard (_tmStatus tm == TerminalReady)
s <- tm ^? tmInput . tiText
return $ if null (words s) && null (_tmPartialCommand tm)
then w
else terminalReturnEffect tm w
OverTerminalEscape -> w
& hud . hudElement . subInventory .~ NoSubInventory MouseInvNothing
OverCombSelect x ->
w & hud . hudElement . subInventory . ciSelection ?~ x
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombFilter ->
w & hud . hudElement . subInventory . ciFilter .~ Nothing
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombCombine (i, j) ->
(worldEventFlags . at InventoryChange ?~ ()) . maybeExitCombine $
tryCombine (i, j) w
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombEscape ->
w
& worldEventFlags . at InventoryChange ?~ ()
& hud . hudElement . subInventory .~ NoSubInventory MouseInvNothing
OverInvFilt (i, j) -> fromMaybe w $ do
guard $ i == 0
str <-
fmap (take 5) $
w
^? hud . hudElement . diSections . ix i . ssItems . ix j . siPictures . ix 0
return . (worldEventFlags . at CombineInventoryChange ?~ ()) $
case w ^? hud . hudElement . subInventory . ciFilter . _Just of
Just (_ : xs)
| str == xs ->
w
& hud . hudElement . subInventory . ciFilter .~ Nothing
_ -> w & hud . hudElement . subInventory . ciFilter ?~ ("<" ++ str)
_ -> w
updateFunctionKeys :: Universe -> Universe
updateFunctionKeys u = M.foldlWithKey' updateFunctionKey u
(u ^. uvWorld . input . pressedKeys)
updateFunctionKeys u =
M.foldlWithKey'
updateFunctionKey
u
(u ^. uvWorld . input . pressedKeys)
updateFunctionKey :: Universe -> Scancode -> PressType -> Universe
updateFunctionKey uv sc InitialPress = case sc of
@@ -103,33 +156,40 @@ updateCombineInvClick ::
IM.IntMap (SelectionSection CombinableItem) ->
World ->
World
updateCombineInvClick sss w = fromMaybe trydocombination $ do
(i,j) <- w ^? input . mouseContext . mcoInvFilt
guard $ i == 0
str <- fmap (take 5) $ w
^? hud . hudElement . diSections . ix i . ssItems . ix j . siPictures . ix 0
return . (worldEventFlags . at CombineInventoryChange ?~ ())
$ case w ^? hud . hudElement . subInventory . ciFilter . _Just of
Just (_:xs) | str == xs -> w
& hud . hudElement . subInventory . ciFilter .~ Nothing
_ -> w & hud . hudElement . subInventory . ciFilter ?~ ("<" ++ str)
where
trydocombination = case w ^. input . mouseContext of
OverCombSelect x -> w & hud . hudElement . subInventory . ciSelection ?~ x
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombFilter -> w & hud . hudElement . subInventory . ciFilter .~ Nothing
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombCombine (i,j) ->
(worldEventFlags . at InventoryChange ?~ ()) . maybeExitCombine $
tryCombine sss (i,j) w
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombEscape -> w
updateCombineInvClick sss w = case w ^. input . mouseContext of
OverCombSelect x ->
w & hud . hudElement . subInventory . ciSelection ?~ x
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombFilter ->
w & hud . hudElement . subInventory . ciFilter .~ Nothing
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombCombine (i, j) ->
(worldEventFlags . at InventoryChange ?~ ()) . maybeExitCombine $
tryCombine (i, j) w
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombEscape ->
w
& worldEventFlags . at InventoryChange ?~ ()
& hud . hudElement . subInventory .~ NoSubInventory MouseInvNothing
x -> error $ "while combining this mouse context should not be possible: "
++ show x
-- x@(Just (i,_))
OverInvFilt (i, j) -> fromMaybe w $ do
guard $ i == 0
str <-
fmap (take 5) $
w
^? hud . hudElement . diSections . ix i . ssItems . ix j . siPictures . ix 0
return . (worldEventFlags . at CombineInventoryChange ?~ ()) $
case w ^? hud . hudElement . subInventory . ciFilter . _Just of
Just (_ : xs)
| str == xs ->
w
& hud . hudElement . subInventory . ciFilter .~ Nothing
_ -> w & hud . hudElement . subInventory . ciFilter ?~ ("<" ++ str)
x ->
error $
"while combining this mouse context should not be possible: "
++ show x
-- x@(Just (i,_))
-- | x /= msel -> w & hud . hudElement . subInventory . ciSelection .~ x
-- & worldEventFlags . at CombineInventoryChange ?~ ()
-- | i == -1 -> w & hud . hudElement . subInventory . ciFilter .~ Nothing
@@ -353,11 +413,12 @@ toggleTweakInv w = case w ^? hud . hudElement . subInventory of
thepointer = hud . hudElement . subInventory
tryCombine ::
IM.IntMap (SelectionSection CombinableItem) ->
-- IM.IntMap (SelectionSection CombinableItem) ->
(Int, Int) ->
World ->
World
tryCombine sss (i,j) w = fromMaybe w $ do
tryCombine (i, j) w = fromMaybe w $ do
sss <- w ^? hud . hudElement . subInventory . ciSections
CombinableItem is it _ <- sss ^? ix i . ssItems . ix j . siPayload
p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos
return $
+83 -81
View File
@@ -3343,10 +3343,10 @@ 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 468;" f
advanceScrollAmount src/Dodge/Update.hs 470;" 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
aimDelaySweep src/Dodge/Render/Picture.hs 182;" f
aimStanceInfo src/Dodge/Item/Info.hs 210;" f
aimTurn src/Dodge/Creature/YourControl.hs 143;" f
aimingMuzzleLength src/Dodge/Creature/HandPos.hs 46;" f
@@ -3587,7 +3587,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 755;" f
checkEndGame src/Dodge/Update.hs 757;" f
checkErrorGL src/Shader/Compile.hs 255;" f
checkFBO src/Framebuffer/Check.hs 6;" f
checkGLError src/GLHelp.hs 17;" f
@@ -3614,7 +3614,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 808;" f
clClSpringVel src/Dodge/Update.hs 810;" 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
@@ -3641,7 +3641,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 778;" f
cloudEffect src/Dodge/Update.hs 780;" 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
@@ -3711,7 +3711,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 826;" f
crCrSpring src/Dodge/Update.hs 828;" 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
@@ -3732,7 +3732,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 821;" f
crSpring src/Dodge/Update.hs 823;" 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
@@ -3801,7 +3801,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 217;" f
dShadCol src/Dodge/Render/List.hs 219;" f
damThingHitWith src/Dodge/WorldEvent/Damage.hs 10;" f
damToExpBarrel src/Dodge/Barreloid.hs 57;" f
damageBlocksBy src/Dodge/Wall/Damage.hs 36;" f
@@ -3983,7 +3983,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 497;" f
displayTerminalLineString src/Dodge/Update.hs 499;" f
dist src/Geometry/Vector.hs 179;" f
dist3 src/Geometry/Vector3D.hs 101;" f
divTo src/Geometry/Zone.hs 6;" f
@@ -4040,7 +4040,7 @@ doPropUpdates src/Dodge/Prop/Update.hs 36;" f
doQuickload src/Dodge/Save.hs 82;" f
doQuicksave src/Dodge/Save.hs 77;" f
doRandImpulse src/Dodge/RandImpulse.hs 7;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 207;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 267;" f
doRoomInPlacements src/Dodge/Layout.hs 97;" f
doRoomOutPlacements src/Dodge/Layout.hs 107;" f
doRoomPlacements src/Dodge/Layout.hs 122;" f
@@ -4067,7 +4067,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 479;" f
doWorldEvents src/Dodge/Update.hs 481;" 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
@@ -4094,8 +4094,8 @@ drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f
drawCarte src/Dodge/Render/HUD/Carte.hs 14;" f
drawCircFlare src/Dodge/Flare.hs 25;" f
drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f
drawCombFilter src/Dodge/Render/Picture.hs 162;" f
drawCombFilterJump src/Dodge/Render/Picture.hs 147;" f
drawCombFilter src/Dodge/Render/Picture.hs 163;" f
drawCombFilterJump src/Dodge/Render/Picture.hs 148;" f
drawCombineInventory src/Dodge/Render/HUD.hs 160;" f
drawConcurrentMessage src/Dodge/Render/Picture.hs 62;" f
drawCorpse src/Dodge/Corpse/Draw.hs 6;" f
@@ -4109,7 +4109,7 @@ drawDDATest src/Dodge/Debug/Picture.hs 256;" f
drawDISelections src/Dodge/Render/HUD.hs 143;" f
drawDoorPaths src/Dodge/Debug/Picture.hs 217;" f
drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f
drawEmptySet src/Dodge/Render/Picture.hs 102;" f
drawEmptySet src/Dodge/Render/Picture.hs 103;" f
drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f
drawEquipment src/Dodge/Creature/Picture.hs 140;" f
drawExamineInventory src/Dodge/Render/HUD.hs 174;" f
@@ -4119,7 +4119,7 @@ drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f
drawFlare src/Dodge/Flare.hs 12;" f
drawFooterText src/Dodge/Render/MenuScreen.hs 74;" f
drawForceField src/Dodge/Wall/Draw.hs 11;" f
drawGapPlus src/Dodge/Render/Picture.hs 172;" f
drawGapPlus src/Dodge/Render/Picture.hs 173;" f
drawGib src/Dodge/Prop/Draw.hs 28;" f
drawHP src/Dodge/Render/HUD.hs 53;" f
drawHUD src/Dodge/Render/HUD.hs 45;" f
@@ -4132,14 +4132,14 @@ 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 211;" f
drawList src/Dodge/Render/List.hs 213;" f
drawListElement src/Dodge/Render/List.hs 191;" f
drawListYgapScaleYoff src/Dodge/Render/List.hs 98;" f
drawListYoff src/Dodge/Render/List.hs 95;" 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
drawMenuClick src/Dodge/Render/Picture.hs 123;" f
drawMenuCursor src/Dodge/Render/Picture.hs 136;" f
drawMenuOrHUD src/Dodge/Render/Picture.hs 57;" f
drawMenuScreen src/Dodge/Render/MenuScreen.hs 15;" f
drawMouseCursor src/Dodge/Render/Picture.hs 73;" f
@@ -4152,7 +4152,7 @@ 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
drawPlus src/Dodge/Render/Picture.hs 119;" f
drawPlus src/Dodge/Render/Picture.hs 120;" f
drawPointLabel src/Dodge/Render/Label.hs 13;" f
drawProjectile src/Dodge/Projectile/Draw.hs 13;" f
drawProp src/Dodge/Prop/Draw.hs 15;" f
@@ -4160,11 +4160,11 @@ drawProp' src/Dodge/Prop/Draw.hs 12;" f
drawRBOptions src/Dodge/Render/HUD.hs 218;" f
drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f
drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f
drawReturn src/Dodge/Render/Picture.hs 108;" f
drawReturn src/Dodge/Render/Picture.hs 109;" f
drawRootCursor src/Dodge/Render/HUD.hs 81;" 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
drawSelect src/Dodge/Render/Picture.hs 152;" f
drawSelectionList src/Dodge/Render/List.hs 35;" f
drawSelectionListBackground src/Dodge/Render/List.hs 51;" f
drawSelectionSections src/Dodge/SelectionSections/Draw.hs 17;" f
@@ -4177,7 +4177,7 @@ drawShockwave src/Dodge/Shockwave/Draw.hs 7;" f
drawSpark src/Dodge/Spark/Draw.hs 6;" f
drawStaticBall src/Dodge/EnergyBall/Draw.hs 14;" f
drawSubInventory src/Dodge/Render/HUD.hs 152;" f
drawSweep src/Dodge/Render/Picture.hs 188;" f
drawSweep src/Dodge/Render/Picture.hs 189;" f
drawSwitch src/Dodge/Button/Draw.hs 15;" f
drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f
drawTargetLaser src/Dodge/Particle/Draw.hs 6;" f
@@ -4393,7 +4393,7 @@ getCrDexterity src/Dodge/Creature/Statistics.hs 13;" f
getCrEquipment src/Dodge/Equipment.hs 7;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 16;" f
getDamageCoding src/Dodge/Terminal.hs 178;" f
getDistortions src/Dodge/Render.hs 382;" f
getDistortions src/Dodge/Render.hs 383;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f
getItem src/Dodge/Item/Location.hs 15;" f
getLDPWidth src/Dodge/Render/List.hs 90;" f
@@ -4634,7 +4634,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 446;" f
isOverTerminalScreen src/Dodge/Update.hs 448;" f
isPutID src/Dodge/Placement/Instance/Wall.hs 129;" f
isRHS src/Geometry/LHS.hs 24;" f
isUnusedLnk src/Dodge/PlacementSpot.hs 61;" f
@@ -4891,7 +4891,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 740;" f
markWallSeen src/Dodge/Update.hs 742;" f
maxDamageType src/Dodge/Damage.hs 37;" f
maxShowX src/Dodge/Combine/Graph.hs 49;" f
maxViewDistance src/Dodge/Viewpoints.hs 26;" f
@@ -4902,7 +4902,7 @@ maybeClearPath src/Dodge/Block.hs 77;" f
maybeClearPaths src/Dodge/Block.hs 74;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 368;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 428;" f
maybeOpenTerminal src/Dodge/Update.hs 123;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 111;" f
@@ -4986,7 +4986,7 @@ 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
mouseCursorType src/Dodge/Render/Picture.hs 79;" f
mouseCursorType src/Dodge/Render/Picture.hs 80;" f
mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f
moveBullet src/Dodge/Bullet.hs 193;" f
moveCombineSel src/Dodge/Update/Scroll.hs 58;" f
@@ -5018,7 +5018,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 769;" f
mvGust src/Dodge/Update.hs 771;" 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
@@ -5127,7 +5127,7 @@ parseNum src/Dodge/Debug/Terminal.hs 73;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f
pathEdgeObstructed src/Dodge/Path.hs 43;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 304;" f
pauseGame src/Dodge/Update/Input/InGame.hs 364;" f
pauseMenu src/Dodge/Menu.hs 53;" f
pauseMenuOptions src/Dodge/Menu.hs 58;" f
pauseSound src/Dodge/SoundLogic.hs 41;" f
@@ -5286,7 +5286,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 732;" f
ppEvents src/Dodge/Update.hs 734;" f
ppLevelReset src/Dodge/PressPlate.hs 13;" f
preCritStart src/Dodge/Room/Start.hs 82;" f
preloadRender src/Preload/Render.hs 30;" f
@@ -5628,7 +5628,7 @@ 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 521;" f
setOldPos src/Dodge/Update.hs 523;" f
setOutLinks src/Dodge/RoomLink.hs 48;" f
setOutLinksByType src/Dodge/RoomLink.hs 57;" f
setOutLinksPD src/Dodge/RoomLink.hs 77;" f
@@ -5643,7 +5643,7 @@ setTiles src/Dodge/Layout.hs 65;" f
setToggle src/Dodge/Prop/Update.hs 46;" f
setViewDistance src/Dodge/Update/Camera.hs 221;" f
setViewPos src/Dodge/Creature/ReaderUpdate.hs 61;" f
setViewport src/Dodge/Render.hs 387;" f
setViewport src/Dodge/Render.hs 388;" f
setVol src/Dodge/Config/Update.hs 30;" f
setWristShieldPos src/Dodge/Euse.hs 100;" f
setupConLoop src/Loop.hs 102;" f
@@ -5735,7 +5735,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 817;" f
simpleCrSprings src/Dodge/Update.hs 819;" f
simpleDamFL src/Dodge/Flame.hs 41;" f
simpleTermMessage src/Dodge/Terminal.hs 253;" f
sineRaisePitchOneSecS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 504;" f
@@ -5784,7 +5784,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
soundWithStatus src/Dodge/SoundLogic.hs 98;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f
spaceAction src/Dodge/Update/Input/InGame.hs 307;" f
spaceAction src/Dodge/Update/Input/InGame.hs 367;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 186;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 179;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 171;" f
@@ -5963,7 +5963,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 501;" f
tmUpdate src/Dodge/Update.hs 503;" f
toBothLnk src/Dodge/RoomLink.hs 121;" f
toClosestMultiple src/HelpNum.hs 3;" f
toColor8 src/Color.hs 148;" f
@@ -5972,7 +5972,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 221;" f
toTopLeft src/Dodge/Render/List.hs 223;" f
toV2 src/Geometry/Data.hs 36;" f
toV3 src/Geometry/Data.hs 38;" f
toV4 src/Geometry/Data.hs 40;" f
@@ -5980,8 +5980,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 31;" f
toggleCommand src/Dodge/Terminal.hs 197;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 79;" f
toggleJust src/MaybeHelp.hs 41;" f
toggleMap src/Dodge/Update/Input/InGame.hs 331;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 346;" f
toggleMap src/Dodge/Update/Input/InGame.hs 391;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 406;" f
togglesToEffects src/Dodge/Terminal.hs 248;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f
tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f
@@ -6052,7 +6052,7 @@ trunkDepth src/TreeHelp.hs 161;" f
tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f
tryAttachBulletBelt src/Dodge/Euse.hs 40;" f
tryChargeBattery src/Dodge/Euse.hs 43;" f
tryCombine src/Dodge/Update/Input/InGame.hs 355;" f
tryCombine src/Dodge/Update/Input/InGame.hs 415;" f
tryGetChannel src/Sound.hs 96;" f
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f
tryGetRootItemInvID src/Dodge/Inventory/Location.hs 29;" f
@@ -6098,81 +6098,83 @@ updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla/Arc.hs 86;" f
updateAttachedItems src/Dodge/Creature/State.hs 173;" f
updateAutoRecharge src/Dodge/Creature/State.hs 324;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 242;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 302;" f
updateBarrel src/Dodge/Barreloid.hs 45;" f
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 598;" f
updateBullets src/Dodge/Update.hs 600;" f
updateCamera src/Dodge/Update/Camera.hs 31;" f
updateCloseObjects src/Dodge/Inventory.hs 124;" f
updateCloud src/Dodge/Update.hs 783;" f
updateClouds src/Dodge/Update.hs 627;" f
updateCombineInvClick src/Dodge/Update/Input/InGame.hs 102;" f
updateCloud src/Dodge/Update.hs 785;" f
updateClouds src/Dodge/Update.hs 629;" f
updateCombineInvClick src/Dodge/Update/Input/InGame.hs 155;" 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 567;" f
updateCreatureSoundPositions src/Dodge/Update.hs 543;" f
updateCreatureGroups src/Dodge/Update.hs 569;" f
updateCreatureSoundPositions src/Dodge/Update.hs 545;" f
updateDebugMessageOffset src/Dodge/Update.hs 92;" f
updateDelayedEvents src/Dodge/Update.hs 846;" f
updateDelayedEvents src/Dodge/Update.hs 848;" f
updateDisplaySections src/Dodge/DisplayInventory.hs 112;" f
updateDistortion src/Dodge/Distortion.hs 5;" f
updateDistortions src/Dodge/Update.hs 588;" f
updateDistortions src/Dodge/Update.hs 590;" f
updateEnergyBall src/Dodge/EnergyBall.hs 46;" f
updateEnergyBalls src/Dodge/Update.hs 615;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 283;" f
updateEnergyBalls src/Dodge/Update.hs 617;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 343;" 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 612;" f
updateFlames src/Dodge/Update.hs 614;" 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 766;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 145;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 138;" f
updateGusts src/Dodge/Update.hs 768;" f
updateHeldRootItem src/Dodge/Creature/State.hs 167;" f
updateHumanoid src/Dodge/Humanoid.hs 12;" f
updateIMl src/Dodge/Update.hs 557;" f
updateIMl' src/Dodge/Update.hs 562;" f
updateIMl src/Dodge/Update.hs 559;" f
updateIMl' src/Dodge/Update.hs 564;" f
updateInGameCamera src/Dodge/Update/Camera.hs 70;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 186;" f
updateInstantBullets src/Dodge/Update.hs 704;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 246;" f
updateInstantBullets src/Dodge/Update.hs 706;" f
updateInv src/Dodge/Creature/State.hs 152;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 85;" f
updateItemTargeting src/Dodge/Creature/State.hs 268;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 180;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 169;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 240;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 229;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f
updateLaser src/Dodge/Laser/Update.hs 13;" f
updateLasers src/Dodge/Update.hs 486;" f
updateLightSources src/Dodge/Update.hs 591;" f
updateLasers src/Dodge/Update.hs 488;" f
updateLightSources src/Dodge/Update.hs 593;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 201;" f
updateMIM src/Dodge/Update.hs 717;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 261;" f
updateMIM src/Dodge/Update.hs 719;" f
updateMachine src/Dodge/Machine/Update.hs 19;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 92;" f
updateMouseClickInGame' src/Dodge/Update/Input/InGame.hs 97;" 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 579;" f
updateObjMapMaybe src/Dodge/Update.hs 572;" f
updatePastWorlds src/Dodge/Update.hs 474;" f
updateObjCatMaybes src/Dodge/Update.hs 581;" f
updateObjMapMaybe src/Dodge/Update.hs 574;" f
updatePastWorlds src/Dodge/Update.hs 476;" f
updatePosEvent src/Dodge/PosEvent.hs 11;" f
updatePosEvents src/Dodge/Update.hs 624;" f
updatePosEvents src/Dodge/Update.hs 626;" 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
updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 204;" f
updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 207;" f
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 594;" f
updateRadarBlips src/Dodge/Update.hs 596;" f
updateRadarSweep src/Dodge/RadarSweep.hs 25;" f
updateRadarSweeps src/Dodge/Update.hs 618;" f
updateRadarSweeps src/Dodge/Update.hs 620;" f
updateRandNode src/TreeHelp.hs 108;" f
updateRenderSplit appDodge/Main.hs 106;" f
updateRootItemID src/Dodge/Inventory/Location.hs 35;" f
@@ -6181,30 +6183,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 735;" f
updateSeenWalls src/Dodge/Update.hs 737;" f
updateShockwave src/Dodge/Shockwave/Update.hs 12;" f
updateShockwaves src/Dodge/Update.hs 609;" f
updateShockwaves src/Dodge/Update.hs 611;" 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 621;" f
updateSparks src/Dodge/Update.hs 623;" f
updateTempLightSource src/Dodge/LightSource/Update.hs 7;" f
updateTeslaArc src/Dodge/Tesla/Arc.hs 29;" f
updateTeslaArcs src/Dodge/Update.hs 603;" f
updateTeslaArcs src/Dodge/Update.hs 605;" f
updateTractorBeam src/Dodge/TractorBeam/Update.hs 9;" f
updateTractorBeams src/Dodge/Update.hs 606;" f
updateTractorBeams src/Dodge/Update.hs 608;" 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
updateUseInputInGame src/Dodge/Update/Input/InGame.hs 35;" 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 461;" f
updateWheelEvents src/Dodge/Update.hs 463;" f
updateWorldEventFlag src/Dodge/Update.hs 117;" f
updateWorldEventFlags src/Dodge/Update.hs 105;" f
upperBody src/Dodge/Creature/Picture.hs 133;" f
@@ -6376,9 +6378,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 494;" f
zoneClouds src/Dodge/Update.hs 496;" f
zoneCreature src/Dodge/Zoning/Creature.hs 52;" f
zoneCreatures src/Dodge/Update.hs 538;" f
zoneCreatures src/Dodge/Update.hs 540;" 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