From 03b25565f1b77a29e528ab34d6eec1ddadab847c Mon Sep 17 00:00:00 2001 From: justin Date: Thu, 2 Jan 2025 00:32:45 +0000 Subject: [PATCH] Allow mouse click interaction for nearby objects --- src/Dodge/Creature/YourControl.hs | 10 +- src/Dodge/Update/Input/InGame.hs | 37 ++----- src/Dodge/Update/Scroll.hs | 56 +++------- tags | 170 ++++++++++++++---------------- 4 files changed, 106 insertions(+), 167 deletions(-) diff --git a/src/Dodge/Creature/YourControl.hs b/src/Dodge/Creature/YourControl.hs index 219b28129..9b2f52129 100644 --- a/src/Dodge/Creature/YourControl.hs +++ b/src/Dodge/Creature/YourControl.hs @@ -2,6 +2,7 @@ module Dodge.Creature.YourControl ( yourControl, ) where +import Dodge.SelectedClose import Control.Monad import Data.Foldable import qualified Data.Map.Strict as M @@ -178,13 +179,12 @@ tryClickUse pkeys w = fromMaybe w $ do ltime <- pkeys ^? ix SDL.ButtonLeft rtime <- pkeys ^? ix SDL.ButtonRight guard $ ltime <= rtime - invid <- - w - ^? cWorld . lWorld . creatures . ix 0 + case w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject - . imSelectedItem - useItem invid (f ltime) w + . imSelectedItem of + Just invid -> useItem invid (f ltime) w + Nothing -> interactWithCloseObj <$> getSelectedCloseObj w ?? w where f 0 = InitialPress f _ = ShortPress diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index ba5b05fb9..111c78f9d 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -5,6 +5,7 @@ module Dodge.Update.Input.InGame ( updateMouseInGame, ) where +import Dodge.SelectedClose import Control.Applicative import Control.Monad import Data.Foldable @@ -14,7 +15,6 @@ import Data.List (sort) import qualified Data.Map.Strict as M import Data.Maybe import Data.Monoid -import Dodge.Button.Event import Dodge.Camera import Dodge.Creature.Action import Dodge.Data.Combine @@ -40,7 +40,7 @@ import SDL updateUseInputInGame :: Universe -> Universe updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudElement of --- DisplayCarte -> over uvWorld updatePressedButtonsCarte u + -- DisplayCarte -> over uvWorld updatePressedButtonsCarte u DisplayInventory{_subInventory = si, _diSelection = disel} -> case si of DisplayTerminal tmid -> updateKeysInTerminal tmid u CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (-1, _, _))} -> @@ -437,7 +437,7 @@ updateInitialPressInGame uv sc = case sc of ScancodeSpace -> over uvWorld spaceAction uv ScancodeP -> pauseGame uv ScancodeF -> over uvWorld youDropItem uv --- ScancodeM -> toggleMap uv + -- ScancodeM -> toggleMap uv ScancodeT -> over uvWorld testEvent uv ScancodeC -> toggleCombineInv uv -- the following should be put in a more sensible place @@ -538,40 +538,17 @@ pauseGame u = u & uvScreenLayers .~ [pauseMenu u] spaceAction :: World -> World spaceAction w = case w ^. hud . hudElement of --- DisplayCarte -> w & hud . carteCenter .~ theLoc - DisplayInventory{_subInventory = NoSubInventory{}} -> fromMaybe w $ do - cobj <- selCloseObj w - return $ case cobj of - (Left flit) -> - pickUpItem 0 flit w - & worldEventFlags . at InventoryChange ?~ () - (Right but) -> - doButtonEvent (_btEvent but) but w - & worldEventFlags . at InventoryChange ?~ () + DisplayInventory{_subInventory = NoSubInventory{}} -> + maybe id interactWithCloseObj (getCloseObj w) w DisplayInventory{_subInventory = DisplayTerminal{}} -> w & hud . hudElement . subInventory .~ NoSubInventory & worldEventFlags . at InventoryChange ?~ () _ -> w & hud . hudElement . subInventory .~ NoSubInventory --- where --- theLoc = --- doWorldPos --- (w ^?! cWorld . lWorld . seenLocations . ix (w ^. cWorld . lWorld . selLocation) . _1) --- w -selCloseObj :: World -> Maybe (Either FloorItem Button) -selCloseObj w = selobj <|> firstcitem <|> firstcbut +getCloseObj :: World -> Maybe (Either FloorItem Button) +getCloseObj w = getSelectedCloseObj w <|> firstcitem <|> firstcbut where - selobj = do - (i, j, _) <- w ^? hud . hudElement . diSelection . _Just - case i of - 3 -> do - NInt k <- w ^? hud . closeItems . ix j - fmap Left $ w ^? cWorld . lWorld . floorItems . unNIntMap . ix k - 5 -> do - k <- w ^? hud . closeButtons . ix j - fmap Right $ w ^? cWorld . lWorld . buttons . ix k - _ -> Nothing firstcitem = do k' <- (w ^? hud . hudElement . diSections . ix 3 . ssItems) >>= (fmap fst . IM.lookupMin) NInt k <- w ^? hud . closeItems . ix k' diff --git a/src/Dodge/Update/Scroll.hs b/src/Dodge/Update/Scroll.hs index 7e20ce696..740813437 100644 --- a/src/Dodge/Update/Scroll.hs +++ b/src/Dodge/Update/Scroll.hs @@ -18,7 +18,7 @@ updateWheelEvent :: Int -> World -> World updateWheelEvent yi w = case w ^. hud . hudElement . subInventory of NoSubInventory -> updateBaseWheelEvent yi w ExamineInventory -> updateBaseWheelEvent yi w - CombineInventory{} -> w & moveCombineSel yi + CombineInventory{} -> moveCombineSel yi w DisplayTerminal tmid -> terminalWheelEvent yi tmid w updateBaseWheelEvent :: Int -> World -> World @@ -27,17 +27,15 @@ updateBaseWheelEvent yi w | bdown ButtonRight = case _rbOptions w of EquipOptions{} -> w & rbOptions . opSel %~ scrollRBOption yi rbscrollmax NoRightButtonOptions -> selectedItemScroll yi w - | bdown ButtonLeft = w & wCam . camZoom +~ y - | invKeyDown = changeSwapSel yi w + | bdown ButtonLeft = w & wCam . camZoom +~ fromIntegral yi + | ScancodeCapsLock `M.member` _pressedKeys (_input w) = changeSwapSel yi w | otherwise = scrollAugInvSel yi w where - invKeyDown = ScancodeCapsLock `M.member` _pressedKeys (_input w) - y = fromIntegral yi - bdown b = b `M.member` _mouseButtons (_input w) + bdown b = w & has (input . mouseButtons . ix b) rbscrollmax = fromMaybe 1 $ do invid <- you w ^? crManipulation . manObject . imSelectedItem esite <- you w ^? crInv . ix invid . itUse . uequipEffect . eeType - return $ length $ eqSiteToPositions esite + return . length $ eqSiteToPositions esite selectedItemScroll :: Int -> World -> World selectedItemScroll scrollamount w = fromMaybe w $ do @@ -116,28 +114,15 @@ moveCombineSel yi = sss <- ci ^? ciSections return $ ci & ciSelection %~ scrollSelectionSections yi sss ---moveSubSel :: Int -> Int -> World -> World ---moveSubSel yi maxyi = --- hud . hudElement . subInventory . subInvMSel . _Just --- %~ ((`mod` maxyi) . subtract yi) - -guardDisconnectedID :: Int -> World -> World -> World -guardDisconnectedID tmid w w' = case w ^? cWorld . lWorld . terminals . ix tmid . tmStatus of - Just TerminalReady -> w' - _ -> w - terminalWheelEvent :: Int -> Int -> World -> World terminalWheelEvent yi tmid w - | rbDown = - guardDisconnectedID tmid w $ - w - & cWorld . lWorld . terminals . ix tmid %~ updatetermsubsel - | otherwise = - guardDisconnectedID tmid w $ - w - & cWorld . lWorld . terminals . ix tmid %~ updatetermsel + | w & has (input . mouseButtons . ix ButtonRight) + , Just TerminalReady <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus = + w & cWorld . lWorld . terminals . ix tmid %~ updatetermsubsel + | Just TerminalReady <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus = + w & cWorld . lWorld . terminals . ix tmid %~ updatetermsel + | otherwise = w where - rbDown = ButtonRight `M.member` _mouseButtons (_input w) updatetermsel tm = case tm ^? tmInput . tiSel of Nothing -> tm & tmInput . tiSel .~ (0, 0) Just (i, _) -> @@ -151,7 +136,7 @@ terminalWheelEvent yi tmid w setInput i j tm = tm & tmInput . tiSel .~ (i, j) - & tmInput . tiText .~ (comstr ++ arg) + & tmInput . tiText .~ comstr ++ arg where comstr = scrollCommandStrings w tm !! i tc = scrollCommands tm !! i @@ -163,23 +148,6 @@ scrollRBOption dy ymax | dy > 0 = max 0 . subtract dy | otherwise = id ---moveTweakSel :: Int -> World -> World ---moveTweakSel i w = case yourSelectedItem w ^? _Just . itTweaks . tweakParams of --- Just l -> moveSubSel i (length l) w --- _ -> w - ---changeTweakParam :: Maybe Int -> Int -> World -> World ---changeTweakParam mi i w = fromMaybe w $ do --- curpos <- you w ^? crManipulation . manObject . imSelectedItem --- paramid <- mi --- params <- yourSelectedItem w ^? _Just . itTweaks . tweakParams . ix paramid --- let x = (_tweakVal params + i) `mod` _tweakMax params --- return $ --- w & cWorld . lWorld . creatures . ix 0 . crInv . ix curpos --- %~ ( (itTweaks . tweakParams . ix paramid . tweakVal .~ x) --- . doTweak (_tweakType params) x --- ) - scrollCommands :: Terminal -> [TerminalCommand] scrollCommands = (nullCommand :) . _tmScrollCommands diff --git a/tags b/tags index c38b2e680..ac8a27d1d 100644 --- a/tags +++ b/tags @@ -85,7 +85,7 @@ ArcShad src/Picture/Data.hs 38;" C ArcStep src/Dodge/Data/ArcStep.hs 14;" t ArcStep src/Dodge/ArcStep.hs 1;" m ArcStep src/Dodge/Data/ArcStep.hs 6;" m -Arcing src/Dodge/Data/Item/Params.hs 21;" C +Arcing src/Dodge/Data/Item/Params.hs 19;" C Arithmetic src/Dodge/Base/Arithmetic.hs 1;" m ArmourChase src/Dodge/Creature/ArmourChase.hs 1;" m ArmourySS src/Dodge/Data/Scenario.hs 112;" C @@ -194,7 +194,6 @@ BlockedLink src/Dodge/Data/Room.hs 48;" C BloomLayer src/Picture/Data.hs 25;" C BloomNoZWrite src/Picture/Data.hs 26;" C Boid src/Dodge/Creature/Boid.hs 1;" m -BoostPropIX src/Dodge/Data/Item/Params.hs 29;" C Booster src/Dodge/Item/Equipment/Booster.hs 1;" m Boosting src/Dodge/Data/Creature/Stance.hs 28;" C Boss src/Dodge/Room/Boss.hs 2;" m @@ -686,7 +685,7 @@ Flank src/Dodge/Data/ActionPlan.hs 177;" C FlareType src/Dodge/Data/Item/Use.hs 126;" t FlashBall src/Dodge/Data/Bullet.hs 32;" C FlatFaces src/Shape/Data.hs 17;" C -FlatShieldParams src/Dodge/Data/Item/Params.hs 19;" C +FlatShieldParams src/Dodge/Data/Item/Params.hs 17;" C FlechetteTrajectory src/Dodge/Data/Bullet.hs 52;" C FlechetteTrajectoryType src/Dodge/Data/Bullet.hs 59;" C Flee src/Dodge/Data/ActionPlan.hs 191;" C @@ -728,7 +727,7 @@ FractionLoaded src/Dodge/Item/Weapon/FractionLoaded.hs 1;" m FromEdge src/Dodge/Data/Room.hs 47;" C FullRes src/Dodge/Data/Config.hs 97;" C FullShadowFidelity src/Shape/Data.hs 24;" C -FullSize src/Dodge/Data/Item/Params.hs 31;" C +FullSize src/Dodge/Data/Item/Params.hs 29;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 12;" C FunctionChangeLink src/Dodge/Data/ComposedItem.hs 30;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 60;" C @@ -1069,7 +1068,6 @@ Location src/Dodge/Item/Location.hs 1;" m LocationLDT src/Dodge/Data/DoubleTree.hs 67;" t Lock src/Dodge/Inventory/Lock.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m -LockedInventory src/Dodge/Data/HUD.hs 36;" C LoneWolf src/Dodge/Data/Creature/State.hs 46;" C LongAI src/Dodge/Data/Creature/Misc.hs 59;" C LongDoor src/Dodge/Room/LongDoor.hs 2;" m @@ -1113,7 +1111,6 @@ MachineAltSound src/Dodge/Data/SoundOrigin.hs 22;" C MachinePart src/Dodge/Data/Wall/Structure.hs 15;" C MachineSound src/Dodge/Data/SoundOrigin.hs 21;" C MachineType src/Dodge/Data/Machine.hs 49;" t -MagShieldParams src/Dodge/Data/Item/Params.hs 15;" C Magnet src/Dodge/Data/Magnet.hs 23;" t Magnet src/Dodge/Data/Magnet.hs 6;" m Magnet src/Dodge/Magnet.hs 1;" m @@ -1278,7 +1275,7 @@ NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C NoNeedWeapon src/Dodge/Room/NoNeedWeapon.hs 2;" m NoObjShads src/Dodge/Data/Config.hs 102;" C NoParams src/Dodge/Data/Item/Params.hs 14;" C -NoPreviousArcEffect src/Dodge/Data/Item/Params.hs 34;" C +NoPreviousArcEffect src/Dodge/Data/Item/Params.hs 32;" C NoResurrection src/Dodge/Data/Corpse.hs 14;" C NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C @@ -1406,7 +1403,6 @@ PUMP src/Dodge/Data/Item/Combine.hs 47;" C Padding src/Padding.hs 2;" m Pair src/FoldlHelp.hs 10;" t PaletteColor src/Color/Data.hs 14;" t -ParamMID src/Dodge/Data/Item/Params.hs 28;" C Parameters src/Shader/Parameters.hs 1;" m Parameters src/Shape/Parameters.hs 1;" m Params src/Dodge/Data/Item/Params.hs 6;" m @@ -1429,7 +1425,7 @@ PenetrateBullet src/Dodge/Data/Bullet.hs 38;" C Perception src/Dodge/Data/Creature/Perception.hs 32;" t Perception src/Dodge/Creature/Perception.hs 2;" m Perception src/Dodge/Data/Creature/Perception.hs 6;" m -PerturbTillBreakPreviousArc src/Dodge/Data/Item/Params.hs 34;" C +PerturbTillBreakPreviousArc src/Dodge/Data/Item/Params.hs 32;" C PickOnePlacement src/Dodge/Data/GenWorld.hs 85;" C Picture src/Picture/Data.hs 46;" t Picture src/Dodge/Creature/Picture.hs 5;" m @@ -1483,7 +1479,7 @@ PressPlate src/Dodge/PressPlate.hs 1;" m PressPlateEvent src/Dodge/Data/PressPlate.hs 14;" t PressPlateId src/Dodge/Data/PressPlate.hs 15;" C PressType src/Dodge/Data/Input.hs 13;" t -PreviousArcEffect src/Dodge/Data/Item/Params.hs 34;" t +PreviousArcEffect src/Dodge/Data/Item/Params.hs 32;" t PrimitiveMode src/Shader/Data.hs 99;" t PrintMaterial src/Dodge/Data/Item/Use/Consumption/Ammo.hs 31;" C Prison src/Dodge/Data/Scenario.hs 65;" C @@ -1709,6 +1705,7 @@ SelCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" C SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 27;" C SelectUse src/Dodge/SelectUse.hs 1;" m Select_creature src/Dodge/Data/Config.hs 94;" C +SelectedClose src/Dodge/SelectedClose.hs 1;" m SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" C SelectionInfo src/Dodge/Data/SelectionList.hs 53;" C SelectionItem src/Dodge/Data/SelectionList.hs 43;" t @@ -1773,9 +1770,8 @@ Show_walls_near_point_you src/Dodge/Data/Config.hs 88;" C Show_walls_near_segment src/Dodge/Data/Config.hs 89;" C Show_zone_near_point_cursor src/Dodge/Data/Config.hs 90;" C ShrapnelBomb src/Dodge/Data/Payload.hs 12;" C -ShrinkGunParams src/Dodge/Data/Item/Params.hs 17;" C -ShrinkGunStatus src/Dodge/Data/Item/Params.hs 31;" t -Shrunk src/Dodge/Data/Item/Params.hs 31;" C +ShrinkGunStatus src/Dodge/Data/Item/Params.hs 29;" t +Shrunk src/Dodge/Data/Item/Params.hs 29;" C SideCluster src/Dodge/Data/RoomCluster.hs 14;" C SideEffect src/Dodge/Data/Universe.hs 62;" t SimpleTrie src/SimpleTrie.hs 4;" m @@ -2231,8 +2227,8 @@ _arMax src/Dodge/Data/Item/Use/Consumption.hs 29;" f _arProgress src/Dodge/Data/Item/Use/Consumption.hs 31;" f _arTime src/Dodge/Data/Item/Use/Consumption.hs 30;" f _arbitraryAction src/Dodge/Data/ActionPlan.hs 167;" f -_arcNumber src/Dodge/Data/Item/Params.hs 24;" f -_arcSize src/Dodge/Data/Item/Params.hs 23;" f +_arcNumber src/Dodge/Data/Item/Params.hs 22;" f +_arcSize src/Dodge/Data/Item/Params.hs 21;" f _argList src/Dodge/Data/Terminal.hs 94;" f _argType src/Dodge/Data/Terminal.hs 93;" f _asDir src/Dodge/Data/ArcStep.hs 16;" f @@ -2275,7 +2271,6 @@ _bmRange src/Dodge/Data/Beam.hs 26;" f _bmType src/Dodge/Data/Beam.hs 29;" f _boffEff src/Dodge/Data/Button.hs 42;" f _bonEff src/Dodge/Data/Button.hs 41;" f -_boostPropIX src/Dodge/Data/Item/Params.hs 29;" f _bounceTolerance src/Dodge/Data/Projectile.hs 53;" f _bpEff src/Dodge/Data/Button.hs 28;" f _bpEvent src/Dodge/Data/Button.hs 26;" f @@ -2424,7 +2419,7 @@ _csDropsOnDeath src/Dodge/Data/Creature/State.hs 19;" f _csLinks src/Dodge/Data/RoomCluster.hs 11;" f _csName src/Dodge/Data/RoomCluster.hs 10;" f _csSpState src/Dodge/Data/Creature/State.hs 18;" f -_currentArc src/Dodge/Data/Item/Params.hs 22;" f +_currentArc src/Dodge/Data/Item/Params.hs 20;" f _currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f _cursSides src/Dodge/Data/SelectionList.hs 20;" f _cwGen src/Dodge/Data/CWorld.hs 27;" f @@ -2550,7 +2545,7 @@ _flZ src/Dodge/Data/Flame.hs 20;" f _flames src/Dodge/Data/LWorld.hs 110;" f _flankTarget src/Dodge/Data/ActionPlan.hs 177;" f _flares src/Dodge/Data/LWorld.hs 113;" f -_flatShieldWlMIX src/Dodge/Data/Item/Params.hs 20;" f +_flatShieldWlMIX src/Dodge/Data/Item/Params.hs 18;" f _floorItems src/Dodge/Data/LWorld.hs 130;" f _floorShader src/Data/Preload/Render.hs 44;" f _floorVBO src/Data/Preload/Render.hs 43;" f @@ -2724,7 +2719,6 @@ _lzType src/Dodge/Data/Laser.hs 33;" f _machines src/Dodge/Data/LWorld.hs 123;" f _magLoadStatus src/Dodge/Data/Item.hs 35;" f _magParams src/Dodge/Data/Item.hs 36;" f -_magShieldMgMIX src/Dodge/Data/Item/Params.hs 16;" f _magType src/Dodge/Data/Item.hs 37;" f _magnets src/Dodge/Data/LWorld.hs 126;" f _mainAction src/Dodge/Data/ActionPlan.hs 171;" f @@ -2807,7 +2801,7 @@ _mzFrame src/Dodge/Data/Item/Use.hs 171;" f _mzInaccuracy src/Dodge/Data/Item/Use.hs 166;" f _mzPos src/Dodge/Data/Item/Use.hs 164;" f _mzRot src/Dodge/Data/Item/Use.hs 165;" f -_newArcStep src/Dodge/Data/Item/Params.hs 25;" f +_newArcStep src/Dodge/Data/Item/Params.hs 23;" f _nodeMetaTree src/Dodge/Data/MetaTree.hs 14;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodeTree src/Dodge/Data/MetaTree.hs 13;" f @@ -2831,7 +2825,6 @@ _opTexture src/Dodge/Data/Wall.hs 44;" f _opticDefaultZoom src/Dodge/Data/Item/Scope.hs 20;" f _opticPos src/Dodge/Data/Item/Scope.hs 16;" f _opticZoom src/Dodge/Data/Item/Scope.hs 19;" f -_paramMID src/Dodge/Data/Item/Params.hs 28;" f _partialAction src/Dodge/Data/ActionPlan.hs 145;" f _pastWorlds src/Dodge/Data/World.hs 37;" f _pathGraph src/Dodge/Data/CWorld.hs 31;" f @@ -2907,7 +2900,7 @@ _prVelZ src/Dodge/Data/Prop.hs 27;" f _preloadData src/Dodge/Data/Universe.hs 32;" f _pressPlates src/Dodge/Data/LWorld.hs 134;" f _pressedKeys src/Dodge/Data/Input.hs 45;" f -_previousArcEffect src/Dodge/Data/Item/Params.hs 26;" f +_previousArcEffect src/Dodge/Data/Item/Params.hs 24;" f _projectiles src/Dodge/Data/LWorld.hs 104;" f _props src/Dodge/Data/LWorld.hs 103;" f _proxDist src/Dodge/Data/Machine/Sensor.hs 26;" f @@ -3056,7 +3049,6 @@ _shapeHalfSize src/Shape/Data.hs 18;" f _shapeShader src/Data/Preload/Render.hs 25;" f _shellPayload src/Dodge/Data/Item/Combine.hs 88;" f _shockwaves src/Dodge/Data/LWorld.hs 115;" f -_shrinkGunStatus src/Dodge/Data/Item/Params.hs 18;" f _siColor src/Dodge/Data/SelectionList.hs 49;" f _siColor src/Dodge/Data/SelectionList.hs 58;" f _siHeight src/Dodge/Data/SelectionList.hs 46;" f @@ -3502,7 +3494,7 @@ basicMachineUpdate src/Dodge/Machine.hs 13;" f basicMuzFlare src/Dodge/HeldUse.hs 297;" f basicTerminal src/Dodge/Terminal.hs 35;" f battery src/Dodge/Item/Ammo.hs 92;" f -batteryPack src/Dodge/Item/Equipment.hs 56;" f +batteryPack src/Dodge/Item/Equipment.hs 55;" f belowNumX src/Dodge/Combine/Graph.hs 85;" f beltMag src/Dodge/Item/Ammo.hs 48;" f bfsNodePoints src/Dodge/Path.hs 58;" f @@ -3547,7 +3539,7 @@ boxSurfaces src/Shader/Poke.hs 277;" f boxSurfacesIndices src/Shader/Poke.hs 290;" f boxXYZ src/Polyhedra.hs 94;" f boxXYZnobase src/Polyhedra.hs 80;" f -brainHat src/Dodge/Item/Equipment.hs 128;" f +brainHat src/Dodge/Item/Equipment.hs 127;" f branchRectWith src/Dodge/Room/Branch.hs 15;" f branchWith src/Dodge/Room/Room.hs 67;" f bright src/Color.hs 120;" f @@ -3556,8 +3548,8 @@ btSPic src/Dodge/Render/ShapePicture.hs 127;" f bufferEBO src/Shader/Bind.hs 28;" f bufferPokedVBO src/Shader/Bind.hs 19;" f bufferShaderLayers src/Shader/Bind.hs 36;" f -bulletBeltBracer src/Dodge/Item/Equipment.hs 110;" f -bulletBeltPack src/Dodge/Item/Equipment.hs 92;" f +bulletBeltBracer src/Dodge/Item/Equipment.hs 109;" f +bulletBeltPack src/Dodge/Item/Equipment.hs 91;" f bulletModule src/Dodge/Item/Scope.hs 72;" f bulletPayloadModule src/Dodge/Item/Scope.hs 86;" f bulletSynthesizer src/Dodge/Item/Ammo.hs 122;" f @@ -3667,7 +3659,7 @@ colCrsWalls src/Dodge/WallCreatureCollisions.hs 17;" f colSpark src/Dodge/Spark.hs 47;" f colSparkRandDir src/Dodge/Spark.hs 101;" f collectDamageTypes src/Dodge/Damage.hs 32;" f -collectInvItems src/Dodge/Update/Input/InGame.hs 308;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 309;" f collideCircWalls src/Dodge/Base/Collide.hs 158;" f collidePoint src/Dodge/Base/Collide.hs 49;" f collidePointTestFilter src/Dodge/Base/Collide.hs 93;" f @@ -3701,7 +3693,7 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 480;" f conEffects src/Dodge/Concurrent.hs 13;" f concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f -concurrentIS src/Dodge/Update/Input/InGame.hs 300;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 301;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 542;" f connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f @@ -4030,7 +4022,7 @@ doDebugTestF6 src/Dodge/Update/Input/DebugTest.hs 40;" f doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 48;" f doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 56;" f doDrWdWd src/Dodge/DrWdWd.hs 16;" f -doDrag src/Dodge/Update/Input/InGame.hs 105;" f +doDrag src/Dodge/Update/Input/InGame.hs 106;" f doDrawing src/Dodge/Render.hs 35;" f doDrawing' src/Dodge/Render.hs 46;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f @@ -4062,12 +4054,12 @@ 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 454;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 455;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomShift src/Dodge/Room/Link.hs 33;" f -doScopeZoom src/Dodge/Update/Scroll.hs 83;" f +doScopeZoom src/Dodge/Update/Scroll.hs 77;" f doSectionSize src/Dodge/DisplayInventory.hs 247;" f doSideEffects appDodge/Main.hs 120;" f doStep src/Dodge/ArcStep.hs 9;" f @@ -4254,8 +4246,8 @@ encircle src/Dodge/Creature/Boid.hs 115;" f encircleCloseP src/Dodge/Creature/Boid.hs 35;" f encircleDistP src/Dodge/Creature/Boid.hs 21;" f encircleP src/Dodge/Creature/Boid.hs 27;" f -endCombineRegex src/Dodge/Update/Input/InGame.hs 271;" f -endRegex src/Dodge/Update/Input/InGame.hs 258;" f +endCombineRegex src/Dodge/Update/Input/InGame.hs 272;" f +endRegex src/Dodge/Update/Input/InGame.hs 259;" f enterCombineInv src/Dodge/DisplayInventory.hs 355;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f @@ -4324,7 +4316,7 @@ fixedCoordPictures src/Dodge/Render/Picture.hs 18;" f fixedSizePicClampArrow src/Dodge/Picture/SizeInvariant.hs 57;" f flDamageInArea src/Dodge/Flame.hs 109;" f flFlicker src/Dodge/Flame.hs 123;" f -flameShield src/Dodge/Item/Equipment.hs 35;" f +flameShield src/Dodge/Item/Equipment.hs 34;" f flameSpitter src/Dodge/Item/Held/SprayGuns.hs 29;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 72;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 40;" f @@ -4380,9 +4372,9 @@ fromJust' src/MaybeHelp.hs 24;" f fromListL src/DoubleStack.hs 7;" f fromTopLeft src/Dodge/ScreenPos.hs 9;" f fromV3 src/Geometry/Data.hs 43;" f -frontArmour src/Dodge/Item/Equipment.hs 41;" f +frontArmour src/Dodge/Item/Equipment.hs 40;" f fstV2 src/Geometry/Data.hs 50;" f -fuelPack src/Dodge/Item/Equipment.hs 74;" f +fuelPack src/Dodge/Item/Equipment.hs 73;" f functionalUpdate src/Dodge/Update.hs 255;" f fuseFunc src/Dodge/Path.hs 150;" f fusePairs src/Dodge/Path.hs 153;" f @@ -4410,11 +4402,12 @@ geometryTests test/Spec.hs 17;" f geometryUnitTests test/Spec.hs 22;" f geqConstr src/SameConstr.hs 21;" f getAmmoLinks src/Dodge/Item/Grammar.hs 126;" f -getArguments src/Dodge/Update/Scroll.hs 208;" f -getArguments' src/Dodge/Update/Scroll.hs 196;" f +getArguments src/Dodge/Update/Scroll.hs 171;" f +getArguments' src/Dodge/Update/Scroll.hs 159;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 106;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f getBulletType src/Dodge/HeldUse.hs 436;" f +getCloseObj src/Dodge/Update/Input/InGame.hs 550;" f getCommands src/Dodge/Terminal.hs 117;" f getCommandsHelp src/Dodge/Terminal.hs 75;" f getCrDexterity src/Dodge/Creature/Statistics.hs 11;" f @@ -4435,6 +4428,7 @@ getPJStabiliser src/Dodge/HeldUse.hs 663;" f getPretty src/AesonHelp.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f getRootItemBounds src/Dodge/Render/HUD.hs 93;" f +getSelectedCloseObj src/Dodge/SelectedClose.hs 15;" f getSensor src/Dodge/Terminal.hs 189;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 17;" f getSplitString src/Dodge/Debug/Terminal.hs 123;" f @@ -4479,7 +4473,6 @@ gridPoints'' src/Grid.hs 74;" f gridPointsOff src/Grid.hs 62;" f groupSplitItemAmounts src/Dodge/Combine.hs 51;" f gruntS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 512;" f -guardDisconnectedID src/Dodge/Update/Scroll.hs 129;" f gut1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 546;" f gut2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 394;" f gut3S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 374;" f @@ -4507,9 +4500,9 @@ hasCaneGunDim src/Dodge/Item/InvSize.hs 48;" f hasFrontArmour src/Dodge/Creature/Test.hs 110;" f hasLOS src/Dodge/Base/Collide.hs 203;" f hasLOSIndirect src/Dodge/Base/Collide.hs 218;" f -hat src/Dodge/Item/Equipment.hs 134;" f +hat src/Dodge/Item/Equipment.hs 133;" f head src/DoubleStack.hs 14;" f -headLamp src/Dodge/Item/Equipment.hs 140;" f +headLamp src/Dodge/Item/Equipment.hs 139;" f headLampShape src/Dodge/Item/Draw/SPic.hs 428;" f headMap src/Dodge/DoubleTree.hs 170;" f heal src/Dodge/Item/Consumable.hs 17;" f @@ -4591,6 +4584,7 @@ insertWall src/Dodge/Placement/PlaceSpot/Block.hs 122;" f insertWallInZones src/Dodge/Wall/Zone.hs 20;" f insertWalls src/Dodge/Placement/PlaceSpot/Block.hs 117;" f insertWithNewKeys src/IntMapHelp.hs 70;" f +interactWithCloseObj src/Dodge/SelectedClose.hs 9;" f internalCreatureUpdate src/Dodge/Creature/State.hs 122;" f interpWith src/Dodge/Creature/Boid.hs 10;" f intersectCircSeg src/Geometry/Intersect.hs 305;" f @@ -4645,7 +4639,7 @@ isCognizant src/Dodge/Creature/Perception.hs 105;" f isConnected src/Dodge/Inventory/Swap.hs 74;" f isElectrical src/Dodge/Data/Damage.hs 42;" f isFrictionless src/Dodge/Creature/State.hs 455;" f -isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 189;" f +isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 190;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f isJust' src/MaybeHelp.hs 29;" f isLHS src/Geometry/LHS.hs 8;" f @@ -4688,7 +4682,7 @@ itemRooms src/Dodge/LockAndKey.hs 39;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f itemSPic src/Dodge/Item/Draw/SPic.hs 34;" f itemScan src/Dodge/Item/Scope.hs 59;" f -itemScroll src/Dodge/Update/Scroll.hs 59;" f +itemScroll src/Dodge/Update/Scroll.hs 46;" f itemString src/Dodge/Item/Display.hs 52;" f itemToBreakLists src/Dodge/Item/Grammar.hs 59;" f itemToFunction src/Dodge/Item/Grammar.hs 132;" f @@ -4710,7 +4704,7 @@ jsps src/Dodge/LevelGen/PlacementHelper.hs 36;" f jsps0 src/Dodge/LevelGen/PlacementHelper.hs 39;" f jsps0J src/Dodge/LevelGen/PlacementHelper.hs 48;" f jspsJ src/Dodge/LevelGen/PlacementHelper.hs 45;" f -jumpLegs src/Dodge/Item/Equipment.hs 156;" f +jumpLegs src/Dodge/Item/Equipment.hs 155;" f justify src/Justify.hs 9;" f k src/ShortShow.hs 33;" f k' src/ShortShow.hs 33;" f @@ -4916,7 +4910,7 @@ maybeClearPath src/Dodge/Block.hs 75;" f maybeClearPaths src/Dodge/Block.hs 72;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f -maybeExitCombine src/Dodge/Update/Input/InGame.hs 606;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 584;" f maybeOpenTerminal src/Dodge/Update.hs 122;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 116;" f @@ -5004,7 +4998,7 @@ mouseClickOptionsList src/Dodge/Update/Input/ScreenLayer.hs 58;" f mouseCursorType src/Dodge/Render/Picture.hs 80;" f mouseWorldPos src/Dodge/Base/Coordinate.hs 48;" f moveBullet src/Dodge/Bullet.hs 204;" f -moveCombineSel src/Dodge/Update/Scroll.hs 114;" f +moveCombineSel src/Dodge/Update/Scroll.hs 107;" f moveHammerUp src/Dodge/Hammer.hs 5;" f moveInverseShockwave src/Dodge/Shockwave/Update.hs 53;" f moveLSThen src/Dodge/Placement/Instance/LightSource.hs 30;" f @@ -5066,7 +5060,7 @@ normalizeAnglePi src/Dodge/Base.hs 132;" f normalizeColor src/Color.hs 76;" f normalizeV src/Geometry/Vector.hs 43;" f normalizeV3 src/Geometry/Vector3D.hs 84;" f -nullCommand src/Dodge/Update/Scroll.hs 199;" f +nullCommand src/Dodge/Update/Scroll.hs 162;" f numColor src/Color.hs 128;" f numDrawableVertices src/Shader/Parameters.hs 34;" f numGLushort src/Shader/Parameters.hs 29;" f @@ -5136,7 +5130,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 536;" f +pauseGame src/Dodge/Update/Input/InGame.hs 537;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5287,7 +5281,7 @@ postUniverseLoadSideEffect src/Dodge/WorldLoad.hs 11;" f postWorldLoad src/Dodge/WorldLoad.hs 14;" f powerFakeout src/Dodge/Room/Start.hs 27;" f powerFakeout' src/Dodge/Room/Start.hs 24;" f -powerLegs src/Dodge/Item/Equipment.hs 147;" f +powerLegs src/Dodge/Item/Equipment.hs 146;" f powlist src/Multiset.hs 61;" f powlistUpToN src/Multiset.hs 23;" f powlistUpToN' src/Multiset.hs 12;" f @@ -5333,7 +5327,7 @@ psj src/Dodge/LevelGen/PlacementHelper.hs 70;" f psposAddLabel src/Dodge/PlacementSpot.hs 69;" f pt0 src/Dodge/LevelGen/PlacementHelper.hs 54;" f ptCont src/Dodge/LevelGen/PlacementHelper.hs 21;" f -pulseChecker src/Dodge/Item/Equipment.hs 167;" f +pulseChecker src/Dodge/Item/Equipment.hs 166;" f pushCreatureOutFromWalls src/Dodge/WallCreatureCollisions.hs 53;" f pushL src/DoubleStack.hs 20;" f pushOrCrush src/Dodge/WallCreatureCollisions.hs 72;" f @@ -5579,10 +5573,10 @@ screenPosAbs src/Dodge/ScreenPos.hs 15;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 53;" f scrollAugInvSel src/Dodge/Inventory.hs 187;" f scrollAugNextInSection src/Dodge/Inventory.hs 200;" f -scrollCommandStrings src/Dodge/Update/Scroll.hs 191;" f -scrollCommands src/Dodge/Update/Scroll.hs 188;" f +scrollCommandStrings src/Dodge/Update/Scroll.hs 154;" f +scrollCommands src/Dodge/Update/Scroll.hs 151;" f scrollDebugInfoInt src/Dodge/Debug.hs 71;" f -scrollRBOption src/Dodge/Update/Scroll.hs 165;" f +scrollRBOption src/Dodge/Update/Scroll.hs 145;" f scrollSelectionSections src/Dodge/SelectionSections.hs 26;" f scrollTimeBack src/Dodge/Update.hs 215;" f scrollTimeForward src/Dodge/Update.hs 237;" f @@ -5602,7 +5596,6 @@ sectionsSizes src/Dodge/DisplayInventory.hs 236;" f seedStartMenu src/Dodge/Menu.hs 79;" f seedStartOptions src/Dodge/Menu.hs 82;" f segOnCirc src/Geometry.hs 116;" f -selCloseObj src/Dodge/Update/Input/InGame.hs 562;" f selNumPos src/Dodge/Render/HUD.hs 441;" f selNumPosCardinal src/Dodge/Render/HUD.hs 464;" f selSecDrawCursor src/Dodge/Render/List.hs 126;" f @@ -5612,7 +5605,7 @@ selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 55;" f selectUse src/Dodge/SelectUse.hs 11;" f -selectedItemScroll src/Dodge/Update/Scroll.hs 53;" f +selectedItemScroll src/Dodge/Update/Scroll.hs 40;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f senseDamage src/Dodge/Machine/Update.hs 154;" f @@ -5647,7 +5640,7 @@ 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 405;" f -setSelWhileDragging src/Dodge/Update/Input/InGame.hs 344;" f +setSelWhileDragging src/Dodge/Update/Input/InGame.hs 345;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 85;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5698,9 +5691,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 67;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 73;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 318;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 357;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 351;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 319;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 358;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 352;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f shiftPathBy src/Dodge/Room/Link.hs 92;" f @@ -5800,7 +5793,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 539;" f +spaceAction src/Dodge/Update/Input/InGame.hs 540;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f @@ -5814,7 +5807,7 @@ spawnGun src/Dodge/Item/Weapon/Spawn.hs 12;" f spawnSmokeAtCursor src/Dodge/WorldEvent/Cloud.hs 73;" f spawnerCrit src/Dodge/Creature.hs 55;" f spawnerRoom src/Dodge/Room/Room.hs 360;" f -speedLegs src/Dodge/Item/Equipment.hs 153;" f +speedLegs src/Dodge/Item/Equipment.hs 152;" f splashMenu src/Dodge/Menu.hs 27;" f splashMenuOptions src/Dodge/Menu.hs 32;" f splashScreen src/Dodge/Initialisation.hs 11;" f @@ -5857,7 +5850,7 @@ stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 304;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f -startDrag src/Dodge/Update/Input/InGame.hs 283;" f +startDrag src/Dodge/Update/Input/InGame.hs 284;" f startInvList src/Dodge/Creature.hs 110;" f startInventory src/Dodge/Creature.hs 113;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5937,7 +5930,7 @@ terminalReturnEffect src/Dodge/Terminal.hs 276;" f terminalSPic src/Dodge/Machine/Draw.hs 29;" f terminalScreenGlow src/Dodge/Machine/Update.hs 34;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f -terminalWheelEvent src/Dodge/Update/Scroll.hs 134;" f +terminalWheelEvent src/Dodge/Update/Scroll.hs 117;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 21;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 395;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 37;" f @@ -6071,13 +6064,13 @@ truncate src/Polyhedra/Geodesic.hs 38;" f trunkDepth src/TreeHelp.hs 161;" f tryAttachItems src/Dodge/Item/Grammar.hs 22;" f tryClickUse src/Dodge/Creature/YourControl.hs 176;" f -tryCombine src/Dodge/Update/Input/InGame.hs 596;" f -tryDropSelected src/Dodge/Update/Input/InGame.hs 123;" f +tryCombine src/Dodge/Update/Input/InGame.hs 574;" f +tryDropSelected src/Dodge/Update/Input/InGame.hs 124;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 29;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 36;" f -tryPickupSelected src/Dodge/Update/Input/InGame.hs 130;" f +tryPickupSelected src/Dodge/Update/Input/InGame.hs 131;" f tryPlay src/Sound.hs 83;" f tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f @@ -6124,9 +6117,10 @@ updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla.hs 91;" f updateArc src/Dodge/Tesla/Arc.hs 100;" f updateAttachedItems src/Dodge/Creature/State.hs 263;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 488;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 489;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f +updateBaseWheelEvent src/Dodge/Update/Scroll.hs 24;" f updateBounds src/Dodge/Update/Camera.hs 215;" f updateBulVel src/Dodge/Bullet.hs 61;" f updateBullet src/Dodge/Bullet.hs 22;" f @@ -6147,41 +6141,41 @@ updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 538;" f updateEnergyBall src/Dodge/EnergyBall.hs 45;" f updateEnergyBalls src/Dodge/Update.hs 564;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 515;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 516;" 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 70;" f updateFlames src/Dodge/Update.hs 561;" f updateFloatingCamera src/Dodge/Update/Camera.hs 32;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 374;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 367;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 375;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 368;" f updateGusts src/Dodge/Update.hs 715;" f updateHeldRootItem src/Dodge/Creature/State.hs 257;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f updateIMl src/Dodge/Update.hs 507;" f updateIMl' src/Dodge/Update.hs 512;" f updateInGameCamera src/Dodge/Update/Camera.hs 76;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 435;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 436;" f updateInv src/Dodge/Creature/State.hs 159;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f updateItemTargeting src/Dodge/Creature/State.hs 374;" f updateItemWithOrientation src/Dodge/Creature/State.hs 283;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 429;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 417;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 430;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 418;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f updateLasers src/Dodge/Update.hs 436;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 448;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 449;" f updateMachine src/Dodge/Machine/Update.hs 19;" f updateMagnets src/Dodge/Update.hs 307;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 195;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 196;" f updateMouseContext src/Dodge/Update.hs 319;" f updateMouseContextGame src/Dodge/Update.hs 324;" f -updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 95;" f -updateMouseInGame src/Dodge/Update/Input/InGame.hs 85;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 156;" f +updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 96;" f +updateMouseInGame src/Dodge/Update/Input/InGame.hs 86;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 157;" f updateMovement src/Dodge/Creature/State.hs 445;" f updateObjCatMaybes src/Dodge/Update.hs 529;" f updateObjMapMaybe src/Dodge/Update.hs 522;" f @@ -6200,8 +6194,8 @@ updateRadarSweeps src/Dodge/Update.hs 567;" f updateRandNode src/TreeHelp.hs 108;" f updateRenderSplit appDodge/Main.hs 108;" f updateRootItemID src/Dodge/Inventory/Location.hs 35;" f -updateScopeZoom src/Dodge/Update/Scroll.hs 69;" f -updateScopeZoom' src/Dodge/Update/Scroll.hs 74;" f +updateScopeZoom src/Dodge/Update/Scroll.hs 63;" f +updateScopeZoom' src/Dodge/Update/Scroll.hs 68;" f updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f updateSection src/Dodge/DisplayInventory.hs 300;" f updateSectionsPositioning src/Dodge/DisplayInventory.hs 273;" f @@ -6224,11 +6218,11 @@ updateUniverse src/Dodge/Update.hs 70;" f updateUniverseFirst src/Dodge/Update.hs 82;" f updateUniverseLast src/Dodge/Update.hs 132;" f updateUniverseMid src/Dodge/Update.hs 154;" f -updateUseInputInGame src/Dodge/Update/Input/InGame.hs 41;" f +updateUseInputInGame src/Dodge/Update/Input/InGame.hs 42;" 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 21;" f +updateWheelEvent src/Dodge/Update/Scroll.hs 17;" f updateWheelEvents src/Dodge/Update.hs 411;" f updateWorldEventFlag src/Dodge/Update.hs 116;" f updateWorldEventFlags src/Dodge/Update.hs 104;" f @@ -6370,8 +6364,8 @@ worldSPic src/Dodge/Render/ShapePicture.hs 23;" f worldToGenWorld src/Dodge/LevelGen/LevelStructure.hs 14;" f wpAdd src/Dodge/Room/RezBox.hs 137;" f wrench1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 408;" f -wristArmour src/Dodge/Item/Equipment.hs 47;" f -wristInvisibility src/Dodge/Item/Equipment.hs 159;" f +wristArmour src/Dodge/Item/Equipment.hs 46;" f +wristInvisibility src/Dodge/Item/Equipment.hs 158;" f writeConfig src/Dodge/Menu.hs 159;" f writeSaveSlot src/Dodge/Save.hs 34;" f xCylinder src/Shape.hs 136;" f @@ -6426,7 +6420,7 @@ zonesAroundPoint src/Dodge/Zoning/Base.hs 89;" f zonesExtract src/Dodge/Zoning/Base.hs 54;" f zoomFloatingCamera src/Dodge/Update/Camera.hs 68;" f zoomFromItem src/Dodge/Update/Camera.hs 181;" f -zoomInLongGun src/Dodge/Update/Scroll.hs 97;" f -zoomOutLongGun src/Dodge/Update/Scroll.hs 105;" f +zoomInLongGun src/Dodge/Update/Scroll.hs 91;" f +zoomOutLongGun src/Dodge/Update/Scroll.hs 99;" f zoomScope src/Dodge/Item/Scope.hs 29;" f -zoomSpeed src/Dodge/Update/Scroll.hs 94;" f +zoomSpeed src/Dodge/Update/Scroll.hs 88;" f