diff --git a/ghcidOutput b/ghcidOutput index cea4b38be..6770677a1 100644 --- a/ghcidOutput +++ b/ghcidOutput @@ -1,3 +1,13 @@ +/home/justin/Haskell/loop/src/Dodge/Update.hs:306:1-27: warning: [-Wunused-top-binds] + Defined but not used: ‘updateMouseInventoryEffects’ + | +306 | updateMouseInventoryEffects cfig w = w + | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ +/home/justin/Haskell/loop/src/Dodge/Update.hs:306:29-32: warning: [-Wunused-matches] + Defined but not used: ‘cfig’ + | +306 | updateMouseInventoryEffects cfig w = w + | ^^^^ /home/justin/Haskell/loop/src/Dodge/Render/Picture.hs:106:21-24: warning: [-Wunused-matches] Defined but not used: ‘tmid’ | @@ -13,13 +23,3 @@ | 113 | drawWireRectCursor = scale 0.1 0.1 $ text [cWireRect] | ^^^^^^^^^^^^^^^^^^ -/home/justin/Haskell/loop/src/Dodge/Update.hs:306:1-27: warning: [-Wunused-top-binds] - Defined but not used: ‘updateMouseInventoryEffects’ - | -306 | updateMouseInventoryEffects cfig w = w - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ -/home/justin/Haskell/loop/src/Dodge/Update.hs:306:29-32: warning: [-Wunused-matches] - Defined but not used: ‘cfig’ - | -306 | updateMouseInventoryEffects cfig w = w - | ^^^^ diff --git a/src/Dodge/Data/HUD.hs b/src/Dodge/Data/HUD.hs index 1071f9ea3..ff43be4c0 100644 --- a/src/Dodge/Data/HUD.hs +++ b/src/Dodge/Data/HUD.hs @@ -21,7 +21,6 @@ data HUDElement , _diInvFilter :: Maybe String , _diCloseFilter :: Maybe String , _diSelectionExtra :: Int - , _diMouseOver :: Maybe (Int, Int) } | DisplayCarte @@ -40,7 +39,6 @@ data SubInventory { _ciSections :: IntMap (SelectionSection CombinableItem) , _ciSelection :: Maybe (Int, Int) , _ciFilter :: Maybe String - , _ciMouseOver :: Maybe (Int,Int) } | LockedInventory | DisplayTerminal {_termID :: Int} diff --git a/src/Dodge/Data/Input.hs b/src/Dodge/Data/Input.hs index c0b686ed5..9fe9b3394 100644 --- a/src/Dodge/Data/Input.hs +++ b/src/Dodge/Data/Input.hs @@ -18,8 +18,8 @@ data PressType data MouseContext = NoMouseContext - | OverInv (Int,Int) - | OverCombInv (Int,Int) + | OverInv { _mcoInv :: (Int,Int)} + | OverCombInv { _mcoCombInv :: (Int,Int)} | OverTerminalScreen data Input = Input @@ -51,3 +51,4 @@ data TermSignal | TSdown makeLenses ''Input +makeLenses ''MouseContext diff --git a/src/Dodge/Default/World.hs b/src/Dodge/Default/World.hs index 20419ef0c..20e01b866 100644 --- a/src/Dodge/Default/World.hs +++ b/src/Dodge/Default/World.hs @@ -169,7 +169,6 @@ defaultDisplayInventory = , _diSelectionExtra = 0 , _diInvFilter = mempty , _diCloseFilter = mempty - , _diMouseOver = Nothing } defaultInvSections :: IM.IntMap (SelectionSection ()) diff --git a/src/Dodge/DisplayInventory.hs b/src/Dodge/DisplayInventory.hs index 3789f301f..85e851c18 100644 --- a/src/Dodge/DisplayInventory.hs +++ b/src/Dodge/DisplayInventory.hs @@ -285,7 +285,6 @@ enterCombineInv cfig w = { _ciSections = sss , _ciSelection = selpos , _ciFilter = Nothing - , _ciMouseOver = Nothing } & hud . hudElement . diInvFilter .~ Nothing diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index 386938482..693b42a6c 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -6,6 +6,7 @@ module Dodge.Render.HUD ( selNumPosCardinal, -- this shoud probably be pushed back here ) where +import Control.Applicative import Dodge.Terminal.Type import Dodge.CharacterEnums import Dodge.Creature.Test @@ -67,10 +68,11 @@ drawInventory sss w cfig = <> drawSSCursor sss (w ^? hud . hudElement . diSelection . _Just) ldp curs cfig <> drawRootCursor w sss (w ^? hud . hudElement . diSelection . _Just) ldp cfig <> iextra + <> drawMouseOver cfig w <> translateScreenPos cfig (ldp ^. ldpPos) - (drawDIMouseOver w <> drawDISelections w) + (drawDISelections w) where ldp = invDisplayParams w curs = invCursorParams w @@ -104,23 +106,22 @@ getRootItemBounds i inv = do y <- locLeftmost root ^? locLDT . ldtValue . cItem . itLocation . ilInvID return (x,y) -drawDIMouseOver :: World -> Picture -drawDIMouseOver w = fromMaybe mempty $ do - (j, i) <- w ^? hud . hudElement . diMouseOver . _Just - sss <- w ^? hud . hudElement . diSections - let idp = invDisplayParams w - return . color (withAlpha 0.2 white) $ selSecDrawCursorAt 15 idp curs sss (j, i) - where - curs = BackdropCursor - -drawCIMouseOver :: World -> Picture -drawCIMouseOver w = fromMaybe mempty $ do - (j, i) <- w ^? hud . hudElement . subInventory . ciMouseOver . _Just - sss <- w ^? hud . hudElement . subInventory . ciSections - let idp = invDisplayParams w - return . color (withAlpha 0.2 white) $ selSecDrawCursorAt 15 idp curs sss (j, i) - where +drawMouseOver :: Configuration -> World -> Picture +drawMouseOver cfig w = fromMaybe mempty $ invsel <|> combinvsel + where + invsel = do + (j, i) <- w ^? input . mouseContext . mcoInv + sss <- w ^? hud . hudElement . diSections + let idp = invDisplayParams w + return . translateScreenPos cfig (invDisplayParams w ^. ldpPos) + . color (withAlpha 0.2 white) $ selSecDrawCursorAt 15 idp curs sss (j, i) curs = BackdropCursor + combinvsel = do + (j, i) <- w ^? input . mouseContext . mcoCombInv + sss <- w ^? hud . hudElement . subInventory . ciSections + let idp = invDisplayParams w + return . translateScreenPos cfig (secondColumnParams ^. ldpPos) + . color (withAlpha 0.2 white) $ selSecDrawCursorAt 15 idp curs sss (j, i) getMouseInvSel :: World -> Maybe ((Int, Int), (Int, Int)) getMouseInvSel w = case w ^? hud . hudElement . subInventory . nsSelected of @@ -158,10 +159,6 @@ drawCombineInventory cfig sss w = <> drawSelectionSections sss secondColumnParams cfig <> drawSSCursor sss msel secondColumnParams curs cfig <> combineInventoryExtra sss msel cfig w - <> translateScreenPos - cfig - (secondColumnParams ^. ldpPos) - (drawCIMouseOver w) where curs = BoundaryCursor [North, South, West] msel = w ^? hud . hudElement . subInventory . ciSelection . _Just diff --git a/src/Dodge/Render/Picture.hs b/src/Dodge/Render/Picture.hs index ab34434ee..6467c8c44 100644 --- a/src/Dodge/Render/Picture.hs +++ b/src/Dodge/Render/Picture.hs @@ -82,10 +82,10 @@ mouseCursorType u | isselect = drawPlus 5 | Just tmid <- u ^? uvWorld . hud . hudElement . subInventory . termID = determineTermCursor tmid u | Just csel <- u ^? uvWorld . hud . hudElement . subInventory . ciSelection = - if ( csel == u ^? uvWorld . hud . hudElement . subInventory . ciMouseOver . _Just - || null (u ^? uvWorld . hud . hudElement . subInventory . ciMouseOver . _Just) + if ( csel == u ^? uvWorld . input . mouseContext . mcoCombInv + || null (u ^? uvWorld . input . mouseContext . mcoCombInv) ) - && null (u ^? uvWorld . hud . hudElement . diMouseOver . _Just) + && null (u ^? uvWorld . input . mouseContext . mcoInv) && fmap fst csel /= Just (-1) && fromMaybe True (u ^? uvWorld . hud . hudElement . subInventory . ciSections . ix 0 . ssItems . ix 0 . siIsSelectable) --HACK to check there is something creatable then drawGapPlus 5 @@ -94,7 +94,7 @@ mouseCursorType u where isselect = not (null $ u ^. uvScreenLayers) - || not (null $ u ^? uvWorld . hud . hudElement . diMouseOver . _Just) + || not (null $ u ^? uvWorld . input . mouseContext . mcoInv) w = u ^. uvWorld a = fromMaybe 0 $ do cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos diff --git a/src/Dodge/Update.hs b/src/Dodge/Update.hs index ef067151b..a5ea4cefe 100644 --- a/src/Dodge/Update.hs +++ b/src/Dodge/Update.hs @@ -6,6 +6,7 @@ Description : Simulation update -} module Dodge.Update (updateUniverse) where +import Control.Applicative import Color import Control.Monad import Data.List @@ -283,8 +284,7 @@ functionalUpdate u = . over uvWorld updateCloseObjects . over uvWorld updateWheelEvents . over uvWorld (updateMouseInventorySelection (u ^. uvConfig)) - . over uvWorld (updateMouseOverInventory (u ^. uvConfig)) - . over uvWorld (updateMouseOverCombineInventory (u ^. uvConfig)) + . over uvWorld (updateMouseContext (u ^. uvConfig)) . over uvWorld zoneClouds . over uvWorld zoneCreatures -- . over uvWorld updateInventorySelectionList @@ -387,24 +387,21 @@ shiftInvItemsDown (_, i) x w = fromMaybe w $ do f w' i' = swapInvItems g i' w' g i' m = fst <$> IM.lookupGT i' m -updateMouseOverInventory :: Configuration -> World -> World -updateMouseOverInventory cfig w = - w & hud . hudElement . diMouseOver .~ newmouseover +updateMouseContext :: Configuration -> World -> World +updateMouseContext cfig w = + w & input . mouseContext .~ fromMaybe NoMouseContext + (overinv <|> overcomb <|> overterm) where - newmouseover = do + overinv = do sss <- w ^? hud . hudElement . diSections guard $ ButtonRight `M.notMember` (w ^. input . mouseButtons) || not (null $ w ^? hud . hudElement . subInventory . ciSelection) - inverseSelNumPos cfig (invDisplayParams w) sss (w ^. input . mousePos) - -updateMouseOverCombineInventory :: Configuration -> World -> World -updateMouseOverCombineInventory cfig w = - w & hud . hudElement . subInventory . ciMouseOver .~ newmouseover - where - newmouseover = do + fmap OverInv $ inverseSelNumPos cfig (invDisplayParams w) sss (w ^. input . mousePos) + overcomb = do sss <- w ^? hud . hudElement . subInventory . ciSections - inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos) + fmap OverCombInv $ inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos) + overterm = Nothing updateWheelEvents :: World -> World updateWheelEvents w diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index ca3854b94..6cd1eec60 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -108,7 +108,7 @@ updateCombineInvClick :: World -> World updateCombineInvClick msel sss w = fromMaybe trydocombination $ do - (i,j) <- w ^? hud . hudElement . diMouseOver . _Just + (i,j) <- w ^? input . mouseContext . mcoInv guard $ i == 0 str <- fmap (take 5) $ w ^? hud . hudElement . diSections . ix i . ssItems . ix j . siPictures . ix 0 @@ -118,7 +118,7 @@ updateCombineInvClick msel sss w = fromMaybe trydocombination $ do & hud . hudElement . subInventory . ciFilter .~ Nothing _ -> w & hud . hudElement . subInventory . ciFilter ?~ ("<" ++ str) where - trydocombination = case w ^? hud . hudElement . subInventory . ciMouseOver . _Just of + trydocombination = case w ^? input . mouseContext . mcoCombInv of x@(Just (i,_)) | x /= msel -> w & hud . hudElement . subInventory . ciSelection .~ x & worldEventFlags . at CombineInventoryChange ?~ () @@ -330,7 +330,6 @@ toggleMap u = case u ^. uvWorld . hud . hudElement of , -- , _diFilters = IM.fromList [(-1, mempty), (2, mempty)] _diInvFilter = mempty , _diCloseFilter = mempty - , _diMouseOver = Nothing } _ -> u & uvWorld . hud . hudElement .~ DisplayCarte diff --git a/tags b/tags index 56ff9f5ac..fdd781582 100644 --- a/tags +++ b/tags @@ -335,7 +335,7 @@ Combinations src/Dodge/Combine/Combinations.hs 3;" m Combine src/Dodge/Combine.hs 2;" m Combine src/Dodge/Data/Combine.hs 2;" m Combine src/Dodge/Data/Item/Combine.hs 6;" m -CombineInventory src/Dodge/Data/HUD.hs 39;" C +CombineInventory src/Dodge/Data/HUD.hs 38;" C CombineInventoryChange src/Dodge/Data/World.hs 34;" C Common src/Dodge/Zoning/Common.hs 1;" m Compile src/Shader/Compile.hs 1;" m @@ -513,10 +513,10 @@ Detector src/Dodge/Data/Item/Combine.hs 168;" t Dirt src/Dodge/Data/Material.hs 11;" C DisasterType src/Dodge/Data/Scenario.hs 24;" t Display src/Dodge/Item/Display.hs 1;" m -DisplayCarte src/Dodge/Data/HUD.hs 26;" C +DisplayCarte src/Dodge/Data/HUD.hs 25;" C DisplayInventory src/Dodge/Data/HUD.hs 17;" C DisplayInventory src/Dodge/DisplayInventory.hs 2;" m -DisplayTerminal src/Dodge/Data/HUD.hs 46;" C +DisplayTerminal src/Dodge/Data/HUD.hs 45;" C Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 6;" m Distortion src/Dodge/Distortion.hs 1;" m @@ -662,7 +662,7 @@ Euse src/Dodge/Data/Item/HeldUse.hs 20;" t Euse src/Dodge/Euse.hs 1;" m Event src/Dodge/Button/Event.hs 1;" m Event src/Dodge/Event.hs 14;" m -ExamineInventory src/Dodge/Data/HUD.hs 38;" C +ExamineInventory src/Dodge/Data/HUD.hs 37;" C Explore src/Dodge/Data/Scenario.hs 4;" C Explosion src/Dodge/Data/SoundOrigin.hs 37;" C Explosion src/Dodge/WorldEvent/Explosion.hs 4;" m @@ -820,7 +820,7 @@ HELD src/Dodge/Data/Item/Combine.hs 16;" C HELDDETECTOR src/Dodge/Data/Item/Combine.hs 162;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 82;" C HOSE src/Dodge/Data/Item/Combine.hs 32;" C -HUD src/Dodge/Data/HUD.hs 48;" t +HUD src/Dodge/Data/HUD.hs 47;" t HUD src/Dodge/Data/HUD.hs 6;" m HUD src/Dodge/Render/HUD.hs 3;" m HUDElement src/Dodge/Data/HUD.hs 16;" t @@ -904,7 +904,7 @@ InheritFloor src/Data/Tile.hs 11;" C InitialPress src/Dodge/Data/Input.hs 14;" C Initialisation src/Dodge/Initialisation.hs 1;" m Initialize src/Dodge/Item/Location/Initialize.hs 1;" m -Input src/Dodge/Data/Input.hs 19;" t +Input src/Dodge/Data/Input.hs 25;" t Input src/Dodge/Data/Input.hs 6;" m Input src/Dodge/Event/Input.hs 3;" m Input src/Dodge/Update/Input.hs 1;" m @@ -1079,7 +1079,7 @@ Location src/Dodge/Item/Location.hs 1;" m LocationLDT src/Dodge/Data/DoubleTree.hs 62;" t Lock src/Dodge/Inventory/Lock.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m -LockedInventory src/Dodge/Data/HUD.hs 45;" C +LockedInventory src/Dodge/Data/HUD.hs 44;" C LoneWolf src/Dodge/Data/Creature/State.hs 46;" C LongAI src/Dodge/Data/Creature/Misc.hs 60;" C LongDoor src/Dodge/Room/LongDoor.hs 2;" m @@ -1191,10 +1191,11 @@ MountedLS src/Dodge/Data/MountedObject.hs 12;" C MountedObject src/Dodge/Data/MountedObject.hs 11;" t MountedObject src/Dodge/Data/MountedObject.hs 6;" m MountedProp src/Dodge/Data/MountedObject.hs 13;" C -MouseInvDrag src/Dodge/Data/HUD.hs 31;" C -MouseInvNothing src/Dodge/Data/HUD.hs 32;" C -MouseInvSelect src/Dodge/Data/HUD.hs 29;" C -MouseInventorySelection src/Dodge/Data/HUD.hs 28;" t +MouseContext src/Dodge/Data/Input.hs 19;" t +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 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 @@ -1260,6 +1261,7 @@ NoIntImp src/Dodge/Data/CreatureEffect.hs 20;" C NoInvEffect src/Dodge/Data/Item/Effect.hs 20;" C NoItTargeting src/Dodge/Data/Item.hs 44;" C NoLighting src/Dodge/Data/Config.hs 102;" C +NoMouseContext src/Dodge/Data/Input.hs 20;" C NoMvType src/Dodge/Data/Creature/Misc.hs 38;" C NoNeedWeapon src/Dodge/Room/NoNeedWeapon.hs 2;" m NoObjShads src/Dodge/Data/Config.hs 100;" C @@ -1270,7 +1272,7 @@ NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C NoShadowFidelity src/Shape/Data.hs 25;" C NoShadows src/Dodge/Data/Config.hs 101;" C -NoSubInventory src/Dodge/Data/HUD.hs 35;" C +NoSubInventory src/Dodge/Data/HUD.hs 34;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 24;" C Noclip src/Dodge/Data/Config.hs 70;" C NodeMTree src/Dodge/Tree/Compose/Data.hs 9;" C @@ -1351,6 +1353,9 @@ OutLink src/Dodge/Data/Room.hs 43;" C OutPlacement src/Dodge/Data/GenWorld.hs 126;" t Outline src/Dodge/Render/Outline.hs 1;" m OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C +OverCombInv src/Dodge/Data/Input.hs 22;" C +OverInv src/Dodge/Data/Input.hs 21;" C +OverTerminalScreen src/Dodge/Data/Input.hs 23;" C OverreachingAI src/Dodge/Data/Scenario.hs 31;" C Overstrung src/Dodge/Data/Creature/Perception.hs 57;" C P2Ac src/Dodge/Data/CreatureEffect.hs 53;" t @@ -1812,7 +1817,7 @@ Strategy src/Dodge/Creature/Strategy.hs 1;" m StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C StrictHelp src/StrictHelp.hs 1;" m StringHelp src/StringHelp.hs 1;" m -SubInventory src/Dodge/Data/HUD.hs 34;" t +SubInventory src/Dodge/Data/HUD.hs 33;" t Superfluous src/Shape/Data.hs 38;" C Surface src/Shape/Data.hs 41;" t Survive src/Dodge/Data/Scenario.hs 5;" C @@ -1842,15 +1847,15 @@ TORCH src/Dodge/Data/Item/Combine.hs 163;" C TRACTORGUN src/Dodge/Data/Item/Combine.hs 156;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 42;" C TRANSMITTER src/Dodge/Data/Item/Combine.hs 48;" C -TSbackspace src/Dodge/Data/Input.hs 38;" C -TSdelete src/Dodge/Data/Input.hs 39;" C -TSdown src/Dodge/Data/Input.hs 44;" C -TSescape src/Dodge/Data/Input.hs 36;" C -TSleft src/Dodge/Data/Input.hs 41;" C -TSreturn src/Dodge/Data/Input.hs 37;" C -TSright src/Dodge/Data/Input.hs 42;" C -TStab src/Dodge/Data/Input.hs 40;" C -TSup src/Dodge/Data/Input.hs 43;" C +TSbackspace src/Dodge/Data/Input.hs 45;" C +TSdelete src/Dodge/Data/Input.hs 46;" C +TSdown src/Dodge/Data/Input.hs 51;" C +TSescape src/Dodge/Data/Input.hs 43;" C +TSleft src/Dodge/Data/Input.hs 48;" C +TSreturn src/Dodge/Data/Input.hs 44;" C +TSright src/Dodge/Data/Input.hs 49;" C +TStab src/Dodge/Data/Input.hs 47;" C +TSup src/Dodge/Data/Input.hs 50;" C TUBE src/Dodge/Data/Item/Combine.hs 29;" C Tank src/Dodge/Placement/Instance/Tank.hs 1;" m Tanks src/Dodge/Room/Tanks.hs 1;" m @@ -1864,7 +1869,7 @@ TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t TeleSound src/Dodge/Data/SoundOrigin.hs 35;" C Teleport src/Dodge/Room/Teleport.hs 2;" m TempLightSource src/Dodge/Data/LightSource.hs 42;" t -TermSignal src/Dodge/Data/Input.hs 35;" t +TermSignal src/Dodge/Data/Input.hs 42;" t Terminal src/Dodge/Data/Terminal.hs 32;" t Terminal src/Dodge/Data/Terminal.hs 6;" m Terminal src/Dodge/Debug/Terminal.hs 3;" m @@ -2279,18 +2284,18 @@ _camViewDistance src/Dodge/Data/Camera.hs 30;" f _camViewFrom src/Dodge/Data/Camera.hs 29;" f _camZoom src/Dodge/Data/Camera.hs 26;" f _carriage src/Dodge/Data/Creature/Stance.hs 14;" f -_carteCenter src/Dodge/Data/HUD.hs 50;" f -_carteRot src/Dodge/Data/HUD.hs 52;" f -_carteZoom src/Dodge/Data/HUD.hs 51;" f +_carteCenter src/Dodge/Data/HUD.hs 49;" f +_carteRot src/Dodge/Data/HUD.hs 51;" f +_carteZoom src/Dodge/Data/HUD.hs 50;" f _ceSideEffect src/Dodge/Data/Universe.hs 62;" f _ceString src/Dodge/Data/Universe.hs 63;" f -_ciFilter src/Dodge/Data/HUD.hs 42;" f +_ciFilter src/Dodge/Data/HUD.hs 41;" f _ciInfo src/Dodge/Data/Combine.hs 8;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciItem src/Dodge/Data/Combine.hs 7;" f -_ciMouseOver src/Dodge/Data/HUD.hs 43;" f -_ciSections src/Dodge/Data/HUD.hs 40;" f -_ciSelection src/Dodge/Data/HUD.hs 41;" f +_ciMouseOver src/Dodge/Data/HUD.hs 42;" f +_ciSections src/Dodge/Data/HUD.hs 39;" f +_ciSelection src/Dodge/Data/HUD.hs 40;" f _cigType src/Dodge/Data/Camera.hs 19;" f _clAlt src/Dodge/Data/Cloud.hs 23;" f _clPict src/Dodge/Data/Cloud.hs 21;" f @@ -2312,9 +2317,9 @@ _cldtParent src/Dodge/Data/DoubleTree.hs 48;" f _cldtParent src/Dodge/Data/DoubleTree.hs 57;" f _cldtUp src/Dodge/Data/DoubleTree.hs 46;" f _cldtUp src/Dodge/Data/DoubleTree.hs 54;" f -_clickPos src/Dodge/Data/Input.hs 26;" f -_clickWorldPos src/Dodge/Data/Input.hs 28;" f -_closeObjects src/Dodge/Data/HUD.hs 53;" f +_clickPos src/Dodge/Data/Input.hs 33;" f +_clickWorldPos src/Dodge/Data/Input.hs 35;" f +_closeObjects src/Dodge/Data/HUD.hs 52;" f _cloudEBO src/Data/Preload/Render.hs 49;" f _cloudShader src/Data/Preload/Render.hs 48;" f _cloudVBO src/Data/Preload/Render.hs 47;" f @@ -2426,7 +2431,6 @@ _delayedEvents src/Dodge/Data/LWorld.hs 131;" f _dexterity src/Dodge/Data/Creature/Misc.hs 22;" f _diCloseFilter src/Dodge/Data/HUD.hs 22;" f _diInvFilter src/Dodge/Data/HUD.hs 21;" f -_diMouseOver src/Dodge/Data/HUD.hs 24;" f _diSections src/Dodge/Data/HUD.hs 19;" f _diSelection src/Dodge/Data/HUD.hs 20;" f _diSelectionExtra src/Dodge/Data/HUD.hs 23;" f @@ -2594,11 +2598,11 @@ _heldAim src/Dodge/Data/Item/Use.hs 39;" f _heldDelay src/Dodge/Data/Item/Use.hs 37;" f _heldHammer src/Dodge/Data/Item/Use.hs 38;" f _heldParams src/Dodge/Data/Item/Use.hs 41;" f -_heldPos src/Dodge/Data/Input.hs 27;" f +_heldPos src/Dodge/Data/Input.hs 34;" f _heldTriggerType src/Dodge/Data/Item/Use.hs 42;" f -_heldWorldPos src/Dodge/Data/Input.hs 29;" f +_heldWorldPos src/Dodge/Data/Input.hs 36;" f _hud src/Dodge/Data/World.hs 47;" f -_hudElement src/Dodge/Data/HUD.hs 49;" f +_hudElement src/Dodge/Data/HUD.hs 48;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 69;" f _iaLoaded src/Dodge/Data/Item/Use/Consumption.hs 22;" f _iaMax src/Dodge/Data/Item/Use/Consumption.hs 21;" f @@ -2736,6 +2740,8 @@ _mcPos src/Dodge/Data/Machine.hs 35;" f _mcType src/Dodge/Data/Machine.hs 40;" f _mcWallIDs src/Dodge/Data/Machine.hs 33;" f _mcWidth src/Dodge/Data/Machine.hs 44;" f +_mcoCombInv src/Dodge/Data/Input.hs 22;" f +_mcoInv src/Dodge/Data/Input.hs 21;" f _mdBool src/Dodge/Data/Modification.hs 21;" f _mdExternalID src/Dodge/Data/Modification.hs 17;" f _mdExternalID1 src/Dodge/Data/Modification.hs 25;" f @@ -2751,8 +2757,8 @@ _mgField src/Dodge/Data/Magnet.hs 25;" f _mgID src/Dodge/Data/Magnet.hs 22;" f _mgPos src/Dodge/Data/Magnet.hs 24;" f _mgUpdate src/Dodge/Data/Magnet.hs 23;" f -_misMaybeEnd src/Dodge/Data/HUD.hs 30;" f -_misSelStart src/Dodge/Data/HUD.hs 30;" f +_misMaybeEnd src/Dodge/Data/HUD.hs 29;" f +_misSelStart src/Dodge/Data/HUD.hs 29;" f _moEff src/Dodge/Data/Universe.hs 101;" f _moEff1 src/Dodge/Data/Universe.hs 105;" f _moEff2 src/Dodge/Data/Universe.hs 106;" f @@ -2761,9 +2767,10 @@ _moString src/Dodge/Data/Universe.hs 107;" f _modOption src/Dodge/Data/Universe.hs 97;" f _modString src/Dodge/Data/Universe.hs 95;" f _modifications src/Dodge/Data/LWorld.hs 129;" f -_mouseButtons src/Dodge/Data/Input.hs 23;" f -_mouseMoving src/Dodge/Data/Input.hs 21;" f -_mousePos src/Dodge/Data/Input.hs 20;" f +_mouseButtons src/Dodge/Data/Input.hs 30;" f +_mouseContext src/Dodge/Data/Input.hs 27;" f +_mouseMoving src/Dodge/Data/Input.hs 28;" f +_mousePos src/Dodge/Data/Input.hs 26;" f _mtBranches src/Dodge/Tree/Compose/Data.hs 8;" f _mtLabel src/Dodge/Tree/Compose/Data.hs 8;" f _mtTree src/Dodge/Tree/Compose/Data.hs 8;" f @@ -2784,7 +2791,7 @@ _newArcStep src/Dodge/Data/Item/Params.hs 25;" f _nodeMetaTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodeTree src/Dodge/Tree/Compose/Data.hs 9;" f _nodesSearched src/Dodge/Data/Creature/Memory.hs 15;" f -_nsSelected src/Dodge/Data/HUD.hs 36;" f +_nsSelected src/Dodge/Data/HUD.hs 35;" f _numLinkEW src/Dodge/Data/Room.hs 33;" f _numLinkNS src/Dodge/Data/Room.hs 34;" f _numberFloorVerxs src/Dodge/Data/CWorld.hs 32;" f @@ -2868,7 +2875,7 @@ _prVel src/Dodge/Data/Prop.hs 24;" f _prVelZ src/Dodge/Data/Prop.hs 27;" f _preloadData src/Dodge/Data/Universe.hs 32;" f _pressPlates src/Dodge/Data/LWorld.hs 132;" f -_pressedKeys src/Dodge/Data/Input.hs 22;" f +_pressedKeys src/Dodge/Data/Input.hs 29;" f _previousArcEffect src/Dodge/Data/Item/Params.hs 26;" f _prjAcc src/Dodge/Data/Projectile.hs 19;" f _prjDir src/Dodge/Data/Projectile.hs 20;" f @@ -2990,14 +2997,14 @@ _scPositionedMenuOption src/Dodge/Data/Universe.hs 82;" f _scSelectionList src/Dodge/Data/Universe.hs 84;" f _scTitle src/Dodge/Data/Universe.hs 79;" f _screenTextureVAO src/Data/Preload/Render.hs 50;" f -_scrollAmount src/Dodge/Data/Input.hs 24;" f +_scrollAmount src/Dodge/Data/Input.hs 31;" f _scrollItemID src/Dodge/Data/World.hs 66;" f _scrollItemID src/Dodge/Data/World.hs 75;" f _scrollItemID src/Dodge/Data/World.hs 79;" f _scrollSmoothing src/Dodge/Data/World.hs 63;" f _scrollSmoothing src/Dodge/Data/World.hs 69;" f -_scrollTestFloat src/Dodge/Data/Input.hs 31;" f -_scrollTestInt src/Dodge/Data/Input.hs 32;" f +_scrollTestFloat src/Dodge/Data/Input.hs 38;" f +_scrollTestInt src/Dodge/Data/Input.hs 39;" f _scurColor src/Dodge/Data/SelectionList.hs 32;" f _scurPos src/Dodge/Data/SelectionList.hs 30;" f _scurSize src/Dodge/Data/SelectionList.hs 31;" f @@ -3053,7 +3060,7 @@ _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 25;" f +_smoothScrollAmount src/Dodge/Data/Input.hs 32;" f _soundAngDist src/Sound/Data.hs 53;" f _soundChannel src/Sound/Data.hs 52;" f _soundChunkID src/Sound/Data.hs 57;" f @@ -3104,11 +3111,11 @@ _tcEffect src/Dodge/Data/Terminal.hs 122;" f _tcHelp src/Dodge/Data/Terminal.hs 121;" f _tcString src/Dodge/Data/Terminal.hs 119;" f _tempLightSources src/Dodge/Data/LWorld.hs 137;" f -_termID src/Dodge/Data/HUD.hs 46;" f +_termID src/Dodge/Data/HUD.hs 45;" f _terminals src/Dodge/Data/LWorld.hs 123;" f _teslaArcs src/Dodge/Data/LWorld.hs 113;" f _testFloat src/Dodge/Data/World.hs 45;" f -_textInput src/Dodge/Data/Input.hs 30;" f +_textInput src/Dodge/Data/Input.hs 37;" f _textureObject src/Shader/Data.hs 95;" f _tiFocus src/Dodge/Data/Terminal.hs 21;" f _tiSel src/Dodge/Data/Terminal.hs 22;" f @@ -3332,7 +3339,7 @@ adjustIMZone src/Dodge/Base.hs 77;" f advanceScrollAmount src/Dodge/Update.hs 416;" f advanceSmoothScroll src/Dodge/SmoothScroll.hs 29;" f advanceStepCounter src/Dodge/Creature/Impulse/Movement.hs 45;" f -aimDelaySweep src/Dodge/Render/Picture.hs 130;" f +aimDelaySweep src/Dodge/Render/Picture.hs 134;" 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 @@ -3863,9 +3870,9 @@ defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f defaultBulletWeapon src/Dodge/Default/Item.hs 47;" f defaultButton src/Dodge/Default.hs 51;" f defaultCOSection src/Dodge/Default/World.hs 197;" f -defaultCWCam src/Dodge/Default/World.hs 65;" f -defaultCWGen src/Dodge/Default/World.hs 55;" f -defaultCWorld src/Dodge/Default/World.hs 80;" f +defaultCWCam src/Dodge/Default/World.hs 66;" f +defaultCWGen src/Dodge/Default/World.hs 56;" f +defaultCWorld src/Dodge/Default/World.hs 81;" f defaultChaseMvType src/Dodge/Default/Creature.hs 113;" f defaultClusterStatus src/Dodge/Default/Room.hs 38;" f defaultConfig src/Dodge/Data/Config.hs 125;" f @@ -3879,7 +3886,7 @@ defaultCreatureTargeting src/Dodge/Default/Creature.hs 63;" f defaultCrystalWall src/Dodge/Default/Wall.hs 40;" f defaultDirtBlock src/Dodge/Default/Block.hs 19;" f defaultDirtWall src/Dodge/Default/Wall.hs 61;" f -defaultDisplayInventory src/Dodge/Default/World.hs 160;" f +defaultDisplayInventory src/Dodge/Default/World.hs 161;" f defaultDoor src/Dodge/Default/Door.hs 29;" f defaultDoorWall src/Dodge/Default/Wall.hs 32;" f defaultDrawButton src/Dodge/Button/Draw.hs 28;" f @@ -3889,7 +3896,7 @@ defaultEquipment src/Dodge/Default.hs 27;" f defaultFiltSection src/Dodge/Default/World.hs 203;" f defaultFlIt src/Dodge/Default.hs 30;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f -defaultHUD src/Dodge/Default/World.hs 150;" f +defaultHUD src/Dodge/Default/World.hs 151;" f defaultHeldItem src/Dodge/Default/Item.hs 24;" f defaultHeldUse src/Dodge/Default/Item/Use.hs 28;" f defaultImpulsive src/Dodge/Humanoid.hs 190;" f @@ -3904,7 +3911,7 @@ defaultItEffect src/Dodge/Default/Item/Effect.hs 5;" f defaultItZoom src/Dodge/Default/Item/Use/AimParams.hs 30;" f defaultItemDimension src/Dodge/Default/Item.hs 17;" f defaultLS src/Dodge/Default/LightSource.hs 6;" f -defaultLWorld src/Dodge/Default/World.hs 92;" f +defaultLWorld src/Dodge/Default/World.hs 93;" f defaultLeftItem src/Dodge/Default/Item.hs 38;" f defaultLeftLoadable src/Dodge/Default/Item/Use/Consumption.hs 8;" f defaultLeftUse src/Dodge/Default/Item/Use.hs 14;" f @@ -3927,7 +3934,7 @@ defaultTerminalInput src/Dodge/Default/Terminal.hs 33;" f defaultVision src/Dodge/Default/Creature.hs 92;" f defaultWall src/Dodge/Default/Wall.hs 10;" f defaultWindow src/Dodge/Default/Wall.hs 74;" f -defaultWorld src/Dodge/Default/World.hs 32;" f +defaultWorld src/Dodge/Default/World.hs 33;" f defaultYouSection src/Dodge/Default/World.hs 215;" f defocusTerminalInput src/Dodge/Terminal.hs 304;" f defocusTerminalInput src/Dodge/Terminal/LeftButton.hs 21;" f @@ -3956,6 +3963,7 @@ detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorInfo src/Dodge/Item/Info.hs 190;" f determineInvSelCursorWidth src/Dodge/ListDisplayParams.hs 56;" f determineProjectileTracking src/Dodge/HeldUse.hs 485;" f +determineTermCursor src/Dodge/Render/Picture.hs 105;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f diffAngles src/Geometry.hs 196;" f difference src/Geometry.hs 130;" f @@ -4107,7 +4115,7 @@ drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f drawFlare src/Dodge/Flare.hs 12;" f drawFooterText src/Dodge/Render/MenuScreen.hs 65;" f drawForceField src/Dodge/Wall/Draw.hs 11;" f -drawGapPlus src/Dodge/Render/Picture.hs 121;" f +drawGapPlus src/Dodge/Render/Picture.hs 125;" f drawGib src/Dodge/Prop/Draw.hs 28;" f drawHP src/Dodge/Render/HUD.hs 55;" f drawHUD src/Dodge/Render/HUD.hs 47;" f @@ -4137,7 +4145,7 @@ drawOptions src/Dodge/Render/MenuScreen.hs 32;" 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 112;" f +drawPlus src/Dodge/Render/Picture.hs 116;" 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 @@ -4145,7 +4153,7 @@ drawProp' src/Dodge/Prop/Draw.hs 12;" f drawRBOptions src/Dodge/Render/HUD.hs 217;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f -drawReturn src/Dodge/Render/Picture.hs 105;" f +drawReturn src/Dodge/Render/Picture.hs 109;" f drawRootCursor src/Dodge/Render/HUD.hs 82;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 30;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 41;" f @@ -4161,7 +4169,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 143;" f -drawSweep src/Dodge/Render/Picture.hs 137;" f +drawSweep src/Dodge/Render/Picture.hs 141;" 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 @@ -4180,7 +4188,7 @@ drawWallSearchRays src/Dodge/Debug/Picture.hs 265;" f drawWallsNearCursor src/Dodge/Debug/Picture.hs 189;" f drawWallsNearYou src/Dodge/Debug/Picture.hs 180;" f drawWeapon src/Dodge/Creature/Volition.hs 14;" f -drawWireRectCursor src/Dodge/Render/Picture.hs 108;" f +drawWireRectCursor src/Dodge/Render/Picture.hs 112;" f drawWlIDs src/Dodge/Debug/Picture.hs 329;" f drawZoneCol src/Dodge/Debug/Picture.hs 117;" f drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 249;" f @@ -4889,7 +4897,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 360;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 359;" f maybeOpenTerminal src/Dodge/Update.hs 120;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5587,7 +5595,7 @@ selSecSelCol src/Dodge/Render/HUD.hs 491;" f selSecSelSize src/Dodge/SelectionSections.hs 182;" f selSecYint src/Dodge/SelectionSections.hs 191;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f -selectUse src/Dodge/SelectUse.hs 11;" f +selectUse src/Dodge/SelectUse.hs 10;" f selectedCloseObject src/Dodge/Inventory.hs 287;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 63;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 69;" f @@ -5972,7 +5980,7 @@ 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 321;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 337;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 336;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f @@ -6043,7 +6051,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 346;" f +tryCombine src/Dodge/Update/Input/InGame.hs 345;" f tryGetChannel src/Sound.hs 96;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 20;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 29;" f