diff --git a/src/Dodge/Combine.hs b/src/Dodge/Combine.hs index 0f076dccc..0482dd30c 100644 --- a/src/Dodge/Combine.hs +++ b/src/Dodge/Combine.hs @@ -3,6 +3,7 @@ module Dodge.Combine ( combineList, ) where +import Dodge.Item.InvSize import Dodge.Item.Grammar import Data.Bifunctor import Data.Foldable @@ -23,7 +24,7 @@ combineList = map f . combineItemListYouX f (is, itm) = SelectionItem { _siPictures = basicItemDisplay itm - , _siHeight = _itInvSize itm + , _siHeight = itInvHeight itm , _siWidth = 15 , _siIsSelectable = True , _siColor = itemInvColor . pciToCI $ basePCI itm diff --git a/src/Dodge/Data/Item.hs b/src/Dodge/Data/Item.hs index 3809f0727..f419f9e05 100644 --- a/src/Dodge/Data/Item.hs +++ b/src/Dodge/Data/Item.hs @@ -36,8 +36,6 @@ data Item = Item , _itEffect :: ItEffect , _itTargeting :: ItemTargeting , _itAmmoSlots :: IM.IntMap AmmoType - , _itInvSize :: Int - , _itDimension :: ItemDimension , _itParams :: ItemParams } diff --git a/src/Dodge/Default/Item.hs b/src/Dodge/Default/Item.hs index e6edb2ee0..948974789 100644 --- a/src/Dodge/Default/Item.hs +++ b/src/Dodge/Default/Item.hs @@ -14,13 +14,6 @@ import Dodge.Data.Item import Dodge.Default.Item.Use import Geometry.Data -defaultItemDimension :: ItemDimension -defaultItemDimension = ItemDimension - { _dimRad = 2 - , _dimCenter = 0 - , _dimAttachPos = V3 10 (-5) 3 - } - defaultHeldItem :: Item defaultHeldItem = Item { _itType = HELD PISTOL @@ -28,9 +21,7 @@ defaultHeldItem = Item , _itID = 0 -- should this return an error ? const $ error "itID not correctly initialised" ? , _itTargeting = NoItTargeting , _itAmmoSlots = mempty - , _itInvSize = 1 , _itLocation = InVoid - , _itDimension = defaultItemDimension , _itUse = defaultHeldUse , _itParams = NoParams } diff --git a/src/Dodge/FloorItem.hs b/src/Dodge/FloorItem.hs index ca4a6e452..69f761821 100644 --- a/src/Dodge/FloorItem.hs +++ b/src/Dodge/FloorItem.hs @@ -3,6 +3,7 @@ module Dodge.FloorItem ( copyItemToFloorID, ) where +import Dodge.Item.InvSize import NewInt import Control.Lens import Data.Maybe @@ -28,7 +29,7 @@ copyItemToFloorID pos it w = -- & hud . hudElement . diSections . ix 3 . ssOffset .~ 0 -- ensures dropped item is at the top of the close item selection list where - (p', w') = findWallFreeDropPoint (_dimRad $ _itDimension it) pos w + (p', w') = findWallFreeDropPoint (_dimRad $ itDim it) pos w rot = fst . randomR (- pi, pi) $ _randGen w flid = IM.newKey . _unNIntMap . _floorItems . _lWorld $ _cWorld w theflit = diff --git a/src/Dodge/Inventory/CheckSlots.hs b/src/Dodge/Inventory/CheckSlots.hs index e7af293ae..d85dc30ed 100644 --- a/src/Dodge/Inventory/CheckSlots.hs +++ b/src/Dodge/Inventory/CheckSlots.hs @@ -4,6 +4,7 @@ module Dodge.Inventory.CheckSlots ( crInvSize, ) where +import Dodge.Item.InvSize import Control.Lens import Data.Monoid import Dodge.Base.You @@ -15,7 +16,7 @@ import qualified IntMapHelp as IM -} checkInvSlotsYou :: Item -> World -> Maybe Int checkInvSlotsYou it w - | crNumFreeSlots ycr >= _itInvSize it = + | crNumFreeSlots ycr >= itInvHeight it = Just . IM.newKey $ _crInv ycr | otherwise = Nothing where @@ -28,5 +29,5 @@ crInvSize :: Creature -> Int crInvSize = invSize . _crInv invSize :: IM.IntMap Item -> Int -invSize = alaf Sum foldMap _itInvSize +invSize = alaf Sum foldMap itInvHeight --invSize = sum . fmap _itInvSize diff --git a/src/Dodge/Inventory/SelectionList.hs b/src/Dodge/Inventory/SelectionList.hs index 182d14eb6..bb8979ac1 100644 --- a/src/Dodge/Inventory/SelectionList.hs +++ b/src/Dodge/Inventory/SelectionList.hs @@ -6,6 +6,7 @@ module Dodge.Inventory.SelectionList ( closeButtonToSelectionItem, ) where +import Dodge.Item.InvSize import Dodge.Data.ComposedItem import Dodge.Data.SelectionList import Dodge.Data.World @@ -22,7 +23,7 @@ invSelectionItem :: Int -> Creature -> Int -> ComposedItem -> SelectionItem () invSelectionItem indent cr i ci = SelectionItem { _siPictures = pics & ix 0 %~ (++ anyequippos ++ anyhotkey) - , _siHeight = _itInvSize $ _cItem ci + , _siHeight = itInvHeight $ _cItem ci , _siWidth = 15 , _siIsSelectable = True , _siColor = col diff --git a/src/Dodge/Item/Craftable.hs b/src/Dodge/Item/Craftable.hs index 3e60f6d4b..624e4e886 100644 --- a/src/Dodge/Item/Craftable.hs +++ b/src/Dodge/Item/Craftable.hs @@ -7,7 +7,6 @@ import Dodge.Data.Item makeTypeCraftNum :: Int -> CraftType -> [Item] makeTypeCraftNum i ct = replicate i $ defaultCraftItem - & itInvSize .~ 1 & itType .~ CRAFT ct makeTypeCraft :: CraftType -> Item @@ -28,16 +27,16 @@ makeTypeCraft = head . makeTypeCraftNum 1 --bounceModule = bulletBodyCraft BounceBullet teleportModule :: Item -teleportModule = makeTypeCraft TELEPORTMODULE & itInvSize .~ 1 +teleportModule = makeTypeCraft TELEPORTMODULE timeModule :: Item -timeModule = makeTypeCraft TIMEMODULE & itInvSize .~ 1 +timeModule = makeTypeCraft TIMEMODULE sizeModule :: Item -sizeModule = makeTypeCraft SIZEMODULE & itInvSize .~ 1 +sizeModule = makeTypeCraft SIZEMODULE gravityModule :: Item -gravityModule = makeTypeCraft GRAVITYMODULE & itInvSize .~ 1 +gravityModule = makeTypeCraft GRAVITYMODULE pipe :: Item pipe = makeTypeCraft PIPE diff --git a/src/Dodge/Item/Display.hs b/src/Dodge/Item/Display.hs index 1d4eb1bca..0438090f7 100644 --- a/src/Dodge/Item/Display.hs +++ b/src/Dodge/Item/Display.hs @@ -5,6 +5,7 @@ module Dodge.Item.Display ( basicItemDisplay, ) where +import Dodge.Item.InvSize import Dodge.Data.ComposedItem import ShortShow import Data.Maybe @@ -32,7 +33,7 @@ itemDisplayPad ls rs basicItemDisplay :: Item -> [String] basicItemDisplay itm = - Prelude.take (_itInvSize itm) $ + Prelude.take (itInvHeight itm) $ itemBaseName itm : --catMaybes [maybeWarmupStatus itm, maybeRateStatus itm] catMaybes [maybeWarmupStatus itm] diff --git a/src/Dodge/Item/Held/BatteryGuns.hs b/src/Dodge/Item/Held/BatteryGuns.hs index 8f9c95be6..c19df094d 100644 --- a/src/Dodge/Item/Held/BatteryGuns.hs +++ b/src/Dodge/Item/Held/BatteryGuns.hs @@ -22,8 +22,6 @@ teslaGun :: Item teslaGun = defaultHeldItem & itUse . heldParams .~ BeamShooterParams (Just (elecCrackleS,2)) - & itDimension . dimRad .~ 9 - & itDimension . dimCenter .~ V3 4 0 0 & itParams .~ teslaParams & itUse . heldDelay .~ NoDelay & itUse . heldAim . aimWeight .~ 6 @@ -53,8 +51,6 @@ laser = , _itTgID = Nothing , _itTgActive = False } - & itDimension . dimRad .~ 10 - & itDimension . dimCenter .~ V3 15 0 0 & itUse . heldAim . aimWeight .~ 6 & itUse . heldAim . aimRange .~ 1 & itUse . heldAim . aimStance .~ TwoHandFlat @@ -74,8 +70,6 @@ tractorGun = , _itTgID = Nothing , _itTgActive = False } - & itDimension . dimRad .~ 10 - & itDimension . dimCenter .~ V3 15 0 0 & itUse . heldAim . aimWeight .~ 6 & itUse . heldAim . aimRange .~ 1 & itUse . heldAim . aimStance .~ TwoHandUnder diff --git a/src/Dodge/Item/Held/Cane.hs b/src/Dodge/Item/Held/Cane.hs index b94f4a55b..8fa59ecb9 100644 --- a/src/Dodge/Item/Held/Cane.hs +++ b/src/Dodge/Item/Held/Cane.hs @@ -22,8 +22,6 @@ defaultBangCane = & itUse . heldParams . rifling .~ ConstFloat 0.9 & itUse . heldParams . recoil .~ 50 & itUse . heldParams . torqueAfter .~ 0.1 - & itDimension . dimRad .~ 8 - & itDimension . dimCenter .~ V3 5 0 0 & itUse . heldDelay . rateMax .~ 6 -- & itUse . heldMods .~ BangCaneMod & itUse . heldAim . aimStance .~ OneHand @@ -57,7 +55,6 @@ rifle = & itUse . heldAim . aimRange .~ 1 & itUse . heldAim . aimZoom .~ defaultItZoom{_izFac = 1.5} & itUse . heldAim . aimMuzzles . ix 0 . mzPos .~ V2 25 0 --- & itType . iyModules . at ModHeldAttach ?~ EMPTYMODULE --repeater :: Item --repeater = @@ -97,8 +94,4 @@ miniGunX i = & itUse . heldParams . sidePush .~ 10 * fromIntegral i & itUse . heldParams . randomOffset .~ 10 & itUse . heldParams . rifling .~ UniRandFloat 0.8 0.9 - & itInvSize .~ (i + 3) `div` 2 - & itDimension . dimRad .~ 20 - & itDimension . dimCenter .~ V3 5 0 0 - & itDimension . dimAttachPos .~ V3 5 (-5) 0 & itType .~ HELD (MINIGUNX i) diff --git a/src/Dodge/Item/Held/Cone.hs b/src/Dodge/Item/Held/Cone.hs index 15e2f25d9..cc1dcbd53 100644 --- a/src/Dodge/Item/Held/Cone.hs +++ b/src/Dodge/Item/Held/Cone.hs @@ -11,11 +11,7 @@ import Linear bangCone :: Item bangCone = defaultBulletWeapon - & itDimension . dimRad .~ 8 - & itDimension . dimCenter .~ V3 5 0 0 & itUse . heldDelay . rateMax .~ 20 --- & itUse . heldMods .~ PistolMod - -- & itUse . heldAim . aimHandlePos .~ 5 & itUse . heldAim . aimMuzzles .~ replicate 15 (Muzzle (V2 15 0) 0 0.5 0 DefaultFlareType MuzzleShootBullet) & itUse . heldParams . muzVel .~ UniRandFloat 0.5 0.8 diff --git a/src/Dodge/Item/Held/Launcher.hs b/src/Dodge/Item/Held/Launcher.hs index 0e2c44184..7c53aeb84 100644 --- a/src/Dodge/Item/Held/Launcher.hs +++ b/src/Dodge/Item/Held/Launcher.hs @@ -12,9 +12,6 @@ import Geometry.Data launcher :: Item launcher = defaultHeldItem - & itInvSize .~ 3 - & itDimension . dimRad .~ 9 - & itDimension . dimCenter .~ V3 10 0 0 & itUse . heldDelay . rateMax .~ 20 & itUse . heldAim . aimWeight .~ 8 & itUse . heldAim . aimRange .~ 0.5 diff --git a/src/Dodge/Item/Held/Rod.hs b/src/Dodge/Item/Held/Rod.hs index 04987ffb5..0709241f2 100644 --- a/src/Dodge/Item/Held/Rod.hs +++ b/src/Dodge/Item/Held/Rod.hs @@ -23,8 +23,6 @@ bangRod = & itUse . heldParams . torqueAfter .~ 0.3 & itUse . heldParams . bulGunSound ?~ (bangEchoS,0) & itUse . heldDelay . rateMax .~ 12 - & itDimension . dimRad .~ 12 - & itDimension . dimCenter .~ V3 5 0 0 & itType .~ HELD BANGROD & itUse . heldAim . aimWeight .~ 8 & itUse . heldAim . aimRange .~ 1 diff --git a/src/Dodge/Item/Held/SprayGuns.hs b/src/Dodge/Item/Held/SprayGuns.hs index ab2f55a74..33eaa4bcf 100644 --- a/src/Dodge/Item/Held/SprayGuns.hs +++ b/src/Dodge/Item/Held/SprayGuns.hs @@ -73,12 +73,7 @@ flameThrower :: Item flameThrower = defaultHeldItem & itParams .~ NoParams - & itDimension . dimRad .~ 7 - & itDimension . dimCenter .~ V3 9 0 0 --- & itUse . heldUse .~ HeldOverNozzlesUseGasParams -- overNozzles useGasParams & itUse . heldDelay .~ NoDelay --- & itUse . heldMods .~ FlameThrowerMod --- & itUse . heldMods .~ PistolMod & itUse . heldAim . aimWeight .~ 5 & itUse . heldAim . aimZoom .~ defaultItZoom{_izMax = 5, _izMin = 1.5} & itUse . heldAim . aimStance .~ TwoHandUnder diff --git a/src/Dodge/Item/Held/Stick.hs b/src/Dodge/Item/Held/Stick.hs index 67104f9fe..f7460afee 100644 --- a/src/Dodge/Item/Held/Stick.hs +++ b/src/Dodge/Item/Held/Stick.hs @@ -20,12 +20,7 @@ bangStick i = & itUse . heldParams . recoil .~ 25 & itUse . heldParams . torqueAfter .~ 0.18 + 0.02 * fromIntegral i & itType .~ HELD (BANGSTICK i) - & itInvSize .~ max 1 (i `div` 2) - & itDimension . dimRad .~ 5 - & itDimension . dimCenter .~ V3 5 0 0 & itUse . heldDelay . rateMax .~ 8 --- & itUse . heldMods .~ BangStickMod --- & itUse . heldMods .~ PistolMod & itUse . heldAim . aimMuzzles .~ [Muzzle (V2 10 0) a 0.01 0 DefaultFlareType MuzzleShootBullet | a <- spreadAroundCenter i baseStickSpread] diff --git a/src/Dodge/Item/Held/Utility.hs b/src/Dodge/Item/Held/Utility.hs index 4471dccae..2c546b044 100644 --- a/src/Dodge/Item/Held/Utility.hs +++ b/src/Dodge/Item/Held/Utility.hs @@ -14,7 +14,6 @@ flatShield = & itUse . heldAim . aimTurnSpeed .~ 0.5 & itUse . heldAim . aimStance .~ TwoHandFlat -- & itUse . heldAim . aimHandlePos .~ 0 - & itInvSize .~ 3 & itType .~ HELD FLATSHIELD keyCard :: Int -> Item diff --git a/src/Dodge/Item/Info.hs b/src/Dodge/Item/Info.hs index 1f814284a..fceb7c993 100644 --- a/src/Dodge/Item/Info.hs +++ b/src/Dodge/Item/Info.hs @@ -2,6 +2,7 @@ module Dodge.Item.Info ( itemInfo ) where +import Dodge.Item.InvSize import Data.Char --import qualified Data.Map.Strict as M import Dodge.Data.Item @@ -15,7 +16,7 @@ itemInfo itm = ++ itmSpaceInfo itm itmSpaceInfo :: Item -> String -itmSpaceInfo itm = case _itInvSize itm of +itmSpaceInfo itm = case itInvHeight itm of 1 -> " It takes up one inventory slot. " x -> " It takes up " ++ showInt x ++ " inventory slots. " diff --git a/src/Dodge/Item/InvSize.hs b/src/Dodge/Item/InvSize.hs new file mode 100644 index 000000000..38e2a1f2a --- /dev/null +++ b/src/Dodge/Item/InvSize.hs @@ -0,0 +1,53 @@ +{-# LANGUAGE LambdaCase #-} +module Dodge.Item.InvSize ( + itInvHeight, + itDim, +) where + +import Control.Lens +import Dodge.Data.Item +import Linear.V3 + +itInvHeight :: Item -> Int +itInvHeight x = case x ^. itType of + HELD (MINIGUNX i) -> (i + 3) `div` 2 + HELD LAUNCHER -> 3 + HELD FLATSHIELD -> 3 + HELD (BANGSTICK i) -> max 1 (i `div` 2) + _ -> 1 + +itDim :: Item -> ItemDimension +itDim x = case x ^. itType of + HELD TESLAGUN -> ItemDimension 9 (V3 4 0 0) (V3 10 (-5) 3) + HELD LASER -> did & dimRad .~ 10 + & dimCenter .~ V3 15 0 0 + HELD TRACTORGUN -> did & dimRad .~ 10 + & dimCenter .~ V3 15 0 0 + HELD FLAMETHROWER -> did & dimRad .~ 7 + & dimCenter .~ V3 9 0 0 + HELD y | hasCaneGunDim y -> did & dimRad .~ 8 + & dimCenter .~ V3 5 0 0 + HELD (MINIGUNX {}) -> did & dimRad .~ 20 + & dimCenter .~ V3 5 0 0 + & dimAttachPos .~ V3 5 (-5) 0 + HELD LAUNCHER -> did & dimRad .~ 9 + & dimCenter .~ V3 10 0 0 + HELD BANGSTICK{} -> did + & dimRad .~ 5 + & dimCenter .~ V3 5 0 0 + HELD BANGROD -> did + & dimRad .~ 12 + & dimCenter .~ V3 5 0 0 + HELD BANGCONE -> did + & dimRad .~ 8 + & dimCenter .~ V3 5 0 0 + _ -> did + +hasCaneGunDim :: HeldItemType -> Bool +hasCaneGunDim = \case + VOLLEYGUN {} -> True -- this shouldn't really be the case + RIFLE -> True + _ -> False + +did :: ItemDimension +did = ItemDimension 2 0 (V3 10 (-5) 3) diff --git a/src/Dodge/Render/HUD.hs b/src/Dodge/Render/HUD.hs index d71904566..f81964c59 100644 --- a/src/Dodge/Render/HUD.hs +++ b/src/Dodge/Render/HUD.hs @@ -4,6 +4,7 @@ module Dodge.Render.HUD ( drawHUD, ) where +import Dodge.Item.InvSize import Control.Applicative import Control.Lens import Control.Monad @@ -215,7 +216,7 @@ closeObjectInfo n x = case x of floorItemPickupInfo :: Int -> Item -> String floorItemPickupInfo n itm - | n >= _itInvSize itm = ", but you have space to pick it up." + | n >= itInvHeight itm = ", but you have space to pick it up." | otherwise = ", and you don't have space to pick it up." -- note the use of ^?! diff --git a/src/Dodge/Render/List.hs b/src/Dodge/Render/List.hs index 6381277b5..1775e2761 100644 --- a/src/Dodge/Render/List.hs +++ b/src/Dodge/Render/List.hs @@ -67,8 +67,7 @@ makeSelectionListPictures = concatMap f where f si = map (color (_siColor si) . text) $ _siPictures si --- note this does not take into account any selectionsection indent, nor the LDP --- selection width +-- note this does not take into account any selectionsection indent drawCursorAt :: Maybe Int -> [SelectionItem a] -> @@ -125,13 +124,11 @@ selSecDrawCursorAt ldp curs sss (i, j) = fold $ do (_siHeight si) selSecDrawCursor :: --- Int -> ListDisplayParams -> CursorDisplay -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int) -> Picture ---selSecDrawCursor xsize ldp curs = maybe mempty . selSecDrawCursorAt xsize ldp curs selSecDrawCursor ldp curs = maybe mempty . selSecDrawCursorAt ldp curs -- displays a cursor that should match up to list text pictures diff --git a/src/Dodge/Update/Input/InGame.hs b/src/Dodge/Update/Input/InGame.hs index 2868af7b4..0edd28413 100644 --- a/src/Dodge/Update/Input/InGame.hs +++ b/src/Dodge/Update/Input/InGame.hs @@ -4,6 +4,7 @@ module Dodge.Update.Input.InGame ( updateMouseInGame, ) where +import Dodge.Item.InvSize import Data.Monoid import NewInt import Control.Applicative @@ -125,7 +126,7 @@ tryPickupSelected k mpos w = do let nfreeslots = crNumFreeSlots cr xs <- w ^? hud . hudElement . diSelection . _Just . _3 let itmstopickup = mapMaybe g $ IS.toList xs - let slotsneeded = alaf Sum foldMap (_itInvSize . _flIt) itmstopickup + let slotsneeded = alaf Sum foldMap (itInvHeight . _flIt) itmstopickup guard $ nfreeslots >= slotsneeded return $ case mpos of Just (0,j) -> foldr (pickUpItemAt j 0) w itmstopickup @@ -507,7 +508,7 @@ 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 -- case Left <$> selectedCloseItem w of + return $ case cobj of (Left flit) -> pickUpItem 0 flit w & worldEventFlags . at InventoryChange ?~ () (Right but) -> doButtonEvent (_btEvent but) but w diff --git a/tags b/tags index 5f7d9c23f..8d81f21df 100644 --- a/tags +++ b/tags @@ -128,7 +128,7 @@ BULLETBELTPACK src/Dodge/Data/Item/Combine.hs 113;" C BULLETMOD src/Dodge/Data/Item/Combine.hs 24;" C BULLETSYNTHESIZER src/Dodge/Data/Item/Combine.hs 80;" C BURSTRIFLE src/Dodge/Data/Item/Combine.hs 142;" C -BackdropCursor src/Dodge/Data/SelectionList.hs 22;" C +BackdropCursor src/Dodge/Data/SelectionList.hs 21;" C BackgroundSound src/Dodge/Data/SoundOrigin.hs 15;" C Ball src/Dodge/Tesla/Ball.hs 1;" m Bark src/Dodge/Data/ActionPlan.hs 40;" C @@ -197,7 +197,7 @@ BottomEscapeMenuOption src/Dodge/Data/Universe.hs 73;" C BounceBullet src/Dodge/Data/Bullet.hs 38;" C Bound src/Bound.hs 1;" m Bound_box_screen src/Dodge/Data/Config.hs 81;" C -BoundaryCursor src/Dodge/Data/SelectionList.hs 21;" C +BoundaryCursor src/Dodge/Data/SelectionList.hs 20;" C Bounds src/Dodge/Data/Bounds.hs 12;" t Bounds src/Dodge/Data/Bounds.hs 6;" m Branch src/Dodge/Room/Branch.hs 4;" m @@ -432,7 +432,7 @@ CryostatisSS src/Dodge/Data/Scenario.hs 91;" C Crystal src/Dodge/Data/Material.hs 11;" C Cull_more_lights src/Dodge/Data/Config.hs 78;" C CumulativeMuzzleEffect src/Dodge/Data/MuzzleEffect.hs 11;" t -CursorDisplay src/Dodge/Data/SelectionList.hs 20;" t +CursorDisplay src/Dodge/Data/SelectionList.hs 19;" t Cuse src/Dodge/Data/Item/HeldUse.hs 15;" t Cuse src/Dodge/Cuse.hs 1;" m Cylinder src/Shape/Data.hs 19;" C @@ -686,7 +686,7 @@ FetchItem src/Dodge/Data/Scenario.hs 11;" C Fixated src/Dodge/Data/Creature/Perception.hs 62;" C FixedCoordLayer src/Picture/Data.hs 28;" C FixedRate src/Dodge/Data/Item/HeldDelay.hs 15;" C -FixedSelectionWidth src/Dodge/Data/SelectionList.hs 40;" C +FixedSelectionWidth src/Dodge/Data/SelectionList.hs 39;" C FlIt src/Dodge/Data/FloorItem.hs 16;" C Flame src/Dodge/Data/Flame.hs 14;" t Flame src/Dodge/Data/Flame.hs 6;" m @@ -857,7 +857,7 @@ Humanoid src/Dodge/Data/Creature/Misc.hs 65;" C Humanoid src/Dodge/Humanoid.hs 1;" m HumanoidAI src/Dodge/Data/Creature/Misc.hs 48;" t ILink src/Dodge/Data/ComposedItem.hs 52;" C -IMSS src/Dodge/Data/SelectionList.hs 37;" t +IMSS src/Dodge/Data/SelectionList.hs 36;" t INVISIBILITYEQUIPMENT src/Dodge/Data/Item/Combine.hs 105;" C IRONBAR src/Dodge/Data/Item/Combine.hs 57;" C ITEMDETECTOR src/Dodge/Data/Item/Combine.hs 169;" C @@ -912,6 +912,7 @@ Intention src/Dodge/Creature/Intention.hs 1;" m Intersect src/Geometry/Intersect.hs 5;" m IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 105;" C InvInt src/Dodge/Data/Item/Location.hs 18;" t +InvSize src/Dodge/Item/InvSize.hs 1;" m Inventory src/Dodge/Inventory.hs 2;" m InventoryChange src/Dodge/Data/World.hs 33;" C InventoryColor src/Dodge/Item/InventoryColor.hs 1;" m @@ -1658,7 +1659,7 @@ ScreenPos src/Dodge/ScreenPos.hs 1;" m Scroll src/Dodge/Update/Scroll.hs 1;" m ScrollValue src/Dodge/ScrollValue.hs 1;" m SecretCabal src/Dodge/Data/Scenario.hs 44;" C -SectionCursor src/Dodge/Data/SelectionList.hs 24;" t +SectionCursor src/Dodge/Data/SelectionList.hs 23;" t SeeAbove src/Dodge/Data/Wall.hs 40;" C SeeThrough src/Dodge/Data/Wall.hs 39;" C SelCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" C @@ -1667,14 +1668,14 @@ 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 92;" C SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" C -SelectionInfo src/Dodge/Data/SelectionList.hs 54;" C -SelectionItem src/Dodge/Data/SelectionList.hs 44;" t +SelectionInfo src/Dodge/Data/SelectionList.hs 53;" C +SelectionItem src/Dodge/Data/SelectionList.hs 43;" t SelectionList src/Dodge/Data/SelectionList.hs 4;" m SelectionList src/Dodge/Inventory/SelectionList.hs 3;" m SelectionList src/Dodge/SelectionList.hs 1;" m -SelectionSection src/Dodge/Data/SelectionList.hs 30;" t +SelectionSection src/Dodge/Data/SelectionList.hs 29;" t SelectionSections src/Dodge/SelectionSections.hs 1;" m -SelectionWidth src/Dodge/Data/SelectionList.hs 39;" t +SelectionWidth src/Dodge/Data/SelectionList.hs 38;" t SelfTree src/Dodge/Tree/Compose/Data.hs 12;" t Sensor src/Dodge/Data/Machine/Sensor.hs 16;" t Sensor src/Dodge/Data/Machine/Sensor.hs 6;" m @@ -2009,7 +2010,7 @@ UseHeld src/Dodge/Data/Item/Use.hs 36;" C UseHotkey src/Dodge/Data/Item/Use.hs 44;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Creature/Impulse/UseItem.hs 1;" m -UseItemWidth src/Dodge/Data/SelectionList.hs 42;" C +UseItemWidth src/Dodge/Data/SelectionList.hs 41;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C UseScope src/Dodge/Data/Item/Use.hs 60;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C @@ -2380,7 +2381,7 @@ _ctPos src/Dodge/Data/Creature.hs 85;" f _ctType src/Dodge/Data/Creature.hs 86;" f _currentArc src/Dodge/Data/Item/Params.hs 22;" f _currentFoot src/Dodge/Data/Creature/Stance.hs 23;" f -_cursSides src/Dodge/Data/SelectionList.hs 21;" f +_cursSides src/Dodge/Data/SelectionList.hs 20;" f _cwGen src/Dodge/Data/CWorld.hs 27;" f _cwTiles src/Dodge/Data/CWorld.hs 30;" f _cwgGameRooms src/Dodge/Data/CWorld.hs 38;" f @@ -2613,10 +2614,8 @@ _isLooping src/Sound/Data.hs 19;" f _ispCloseButton src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 31;" f _ispCloseItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 29;" f _itAmmoSlots src/Dodge/Data/Item.hs 38;" f -_itDimension src/Dodge/Data/Item.hs 40;" f _itEffect src/Dodge/Data/Item.hs 36;" f _itID src/Dodge/Data/Item.hs 34;" f -_itInvSize src/Dodge/Data/Item.hs 39;" f _itLocation src/Dodge/Data/Item.hs 35;" f _itParams src/Dodge/Data/Item.hs 41;" f _itTargeting src/Dodge/Data/Item.hs 37;" f @@ -2644,7 +2643,6 @@ _lasersToDraw src/Dodge/Data/LWorld.hs 116;" f _ldpPos src/Dodge/Data/SelectionList.hs 14;" f _ldpScale src/Dodge/Data/SelectionList.hs 15;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f -_ldpWidth src/Dodge/Data/SelectionList.hs 17;" f _ldtLeft src/Dodge/Data/DoubleTree.hs 39;" f _ldtRight src/Dodge/Data/DoubleTree.hs 40;" f _ldtValue src/Dodge/Data/DoubleTree.hs 39;" f @@ -2981,9 +2979,9 @@ _scrollSmoothing src/Dodge/Data/World.hs 63;" f _scrollSmoothing src/Dodge/Data/World.hs 69;" f _scrollTestFloat src/Dodge/Data/Input.hs 55;" f _scrollTestInt src/Dodge/Data/Input.hs 56;" f -_scurColor src/Dodge/Data/SelectionList.hs 27;" f -_scurPos src/Dodge/Data/SelectionList.hs 25;" f -_scurSize src/Dodge/Data/SelectionList.hs 26;" f +_scurColor src/Dodge/Data/SelectionList.hs 26;" f +_scurPos src/Dodge/Data/SelectionList.hs 24;" f +_scurSize src/Dodge/Data/SelectionList.hs 25;" f _seenLocations src/Dodge/Data/LWorld.hs 138;" f _seenWalls src/Dodge/Data/CWorld.hs 29;" f _selLocation src/Dodge/Data/LWorld.hs 139;" f @@ -3009,19 +3007,19 @@ _shapeHalfSize src/Shape/Data.hs 18;" f _shapeShader src/Data/Preload/Render.hs 25;" f _shockwaves src/Dodge/Data/LWorld.hs 114;" f _shrinkGunStatus src/Dodge/Data/Item/Params.hs 18;" f -_siColor src/Dodge/Data/SelectionList.hs 50;" f -_siColor src/Dodge/Data/SelectionList.hs 59;" f -_siHeight src/Dodge/Data/SelectionList.hs 47;" f -_siHeight src/Dodge/Data/SelectionList.hs 56;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 49;" f -_siIsSelectable src/Dodge/Data/SelectionList.hs 58;" f -_siOffX src/Dodge/Data/SelectionList.hs 51;" f -_siOffX src/Dodge/Data/SelectionList.hs 60;" f -_siPayload src/Dodge/Data/SelectionList.hs 52;" f -_siPictures src/Dodge/Data/SelectionList.hs 46;" f -_siPictures src/Dodge/Data/SelectionList.hs 55;" f -_siWidth src/Dodge/Data/SelectionList.hs 48;" f -_siWidth src/Dodge/Data/SelectionList.hs 57;" 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 +_siHeight src/Dodge/Data/SelectionList.hs 55;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 48;" f +_siIsSelectable src/Dodge/Data/SelectionList.hs 57;" f +_siOffX src/Dodge/Data/SelectionList.hs 50;" f +_siOffX src/Dodge/Data/SelectionList.hs 59;" f +_siPayload src/Dodge/Data/SelectionList.hs 51;" f +_siPictures src/Dodge/Data/SelectionList.hs 45;" f +_siPictures src/Dodge/Data/SelectionList.hs 54;" f +_siWidth src/Dodge/Data/SelectionList.hs 47;" f +_siWidth src/Dodge/Data/SelectionList.hs 56;" f _sideEffect src/Loop/Data.hs 13;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f _sidePush src/Dodge/Data/Item/Use.hs 87;" f @@ -3051,10 +3049,10 @@ _spPixelOff src/Dodge/Data/ScreenPos.hs 14;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 13;" f _sparks src/Dodge/Data/LWorld.hs 110;" f _spawnEBT src/Dodge/Data/Bullet.hs 43;" f -_ssIndent src/Dodge/Data/SelectionList.hs 34;" f -_ssItems src/Dodge/Data/SelectionList.hs 31;" f -_ssOffset src/Dodge/Data/SelectionList.hs 32;" f -_ssShownItems src/Dodge/Data/SelectionList.hs 33;" f +_ssIndent src/Dodge/Data/SelectionList.hs 33;" f +_ssItems src/Dodge/Data/SelectionList.hs 30;" f +_ssOffset src/Dodge/Data/SelectionList.hs 31;" f +_ssShownItems src/Dodge/Data/SelectionList.hs 32;" f _strength src/Dodge/Data/Creature/Misc.hs 21;" f _strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f _strideLength src/Dodge/Data/Creature/Stance.hs 16;" f @@ -3557,7 +3555,7 @@ checkWallLeft src/Dodge/LevelGen/StaticWalls/Deprecated.hs 29;" f checkWallRight src/Dodge/LevelGen/StaticWalls.hs 54;" f checkWallRight src/Dodge/LevelGen/StaticWalls/Deprecated.hs 59;" f chemFuelPouch src/Dodge/Item/Ammo.hs 110;" f -chooseCursorBorders src/Dodge/Render/List.hs 166;" f +chooseCursorBorders src/Dodge/Render/List.hs 156;" f chooseEquipmentPosition src/Dodge/Inventory/RBList.hs 36;" f chooseFootSound src/Dodge/Creature/State/WalkCycle.hs 39;" f chooseFreeSite src/Dodge/Inventory/RBList.hs 42;" f @@ -3594,7 +3592,7 @@ clockCycle src/Dodge/Clock.hs 9;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 68;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 53;" f closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 82;" f -closeObjectInfo src/Dodge/Render/HUD.hs 215;" f +closeObjectInfo src/Dodge/Render/HUD.hs 211;" f closestCreatureID src/Dodge/Debug.hs 92;" f closestPointOnLine src/Geometry/Intersect.hs 251;" f closestPointOnLineParam src/Geometry/Intersect.hs 267;" f @@ -3613,7 +3611,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 282;" f +collectInvItems src/Dodge/Update/Input/InGame.hs 279;" f collideCircWalls src/Dodge/Base/Collide.hs 149;" f collidePoint src/Dodge/Base/Collide.hs 48;" f collidePointTestFilter src/Dodge/Base/Collide.hs 93;" f @@ -3628,7 +3626,7 @@ combinationsOf src/Multiset.hs 46;" f combinationsTrie src/Dodge/Combine.hs 42;" f combineAwareness src/Dodge/Creature/Perception.hs 109;" f combineFloors src/Dodge/Room/Procedural.hs 172;" f -combineInventoryExtra src/Dodge/Render/HUD.hs 333;" f +combineInventoryExtra src/Dodge/Render/HUD.hs 327;" f combineItemListYouX src/Dodge/Combine.hs 34;" f combineList src/Dodge/Combine.hs 20;" f combineRooms src/Dodge/Room/Procedural.hs 152;" f @@ -3647,7 +3645,7 @@ composeTree src/Dodge/Tree/Compose.hs 46;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 472;" f conEffects src/Dodge/Concurrent.hs 13;" f concBall src/Dodge/WorldEvent/SpawnParticle.hs 27;" f -concurrentIS src/Dodge/Update/Input/InGame.hs 274;" f +concurrentIS src/Dodge/Update/Input/InGame.hs 271;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 532;" f connectionBlurb src/Dodge/Terminal.hs 102;" f connectionBlurbLines src/Dodge/Terminal.hs 47;" f @@ -3760,7 +3758,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 225;" f +dShadCol src/Dodge/Render/List.hs 215;" f damThingHitWith src/Dodge/WorldEvent/Damage.hs 10;" f damToExpBarrel src/Dodge/Barreloid.hs 57;" f damageBlocksBy src/Dodge/Wall/Damage.hs 36;" f @@ -3874,7 +3872,7 @@ defaultLWorld src/Dodge/Default/World.hs 94;" 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 -defaultListDisplayParams src/Dodge/ListDisplayParams.hs 19;" f +defaultListDisplayParams src/Dodge/ListDisplayParams.hs 18;" f defaultMachine src/Dodge/Default.hs 31;" f defaultMachineWall src/Dodge/Default/Wall.hs 48;" f defaultPP src/Dodge/Default.hs 64;" f @@ -3914,7 +3912,6 @@ detV src/Geometry/Vector.hs 93;" f detectorColor src/Dodge/Item/Draw/SPic.hs 391;" f 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 489;" f diagonalLinesRect src/Dodge/Room/Foreground.hs 52;" f diffAngles src/Geometry.hs 196;" f @@ -3964,7 +3961,7 @@ doDamagesFL src/Dodge/Flame.hs 57;" f doDeathToggle src/Dodge/WorldEffect.hs 96;" f doDeathTriggers src/Dodge/WorldEffect.hs 91;" f doDrWdWd src/Dodge/DrWdWd.hs 16;" f -doDrag src/Dodge/Update/Input/InGame.hs 99;" f +doDrag src/Dodge/Update/Input/InGame.hs 97;" f doDrawing src/Dodge/Render.hs 35;" f doDrawing' src/Dodge/Render.hs 46;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f @@ -3992,7 +3989,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 422;" f +doRegexInput src/Dodge/Update/Input/InGame.hs 419;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomPlacements src/Dodge/Layout.hs 122;" f @@ -4045,7 +4042,7 @@ drawCPUShadows src/Dodge/Render/Shadow.hs 19;" f drawCarte src/Dodge/Render/HUD/Carte.hs 14;" f drawCollisionTest src/Dodge/Debug/Picture.hs 103;" f drawCombFilter src/Dodge/Render/Picture.hs 220;" f -drawCombineInventory src/Dodge/Render/HUD.hs 171;" f +drawCombineInventory src/Dodge/Render/HUD.hs 167;" f drawConcurrentMessage src/Dodge/Render/Picture.hs 62;" f drawCorpse src/Dodge/Corpse/Draw.hs 6;" f drawCrInfo src/Dodge/Debug/Picture.hs 342;" f @@ -4053,7 +4050,7 @@ drawCreature src/Dodge/Render/ShapePicture.hs 41;" f drawCreatureDisplayTexts src/Dodge/Debug/Picture.hs 165;" f drawCross src/Dodge/Render/Label.hs 24;" f drawCrossCol src/Dodge/Render/Label.hs 21;" f -drawCursorAt src/Dodge/Render/List.hs 72;" f +drawCursorAt src/Dodge/Render/List.hs 71;" f drawDDATest src/Dodge/Debug/Picture.hs 256;" f drawDoorPaths src/Dodge/Debug/Picture.hs 217;" f drawDoubleLampCover src/Dodge/Prop/Draw.hs 81;" f @@ -4061,12 +4058,12 @@ drawDrag src/Dodge/Render/Picture.hs 170;" f drawDragDrop src/Dodge/Render/Picture.hs 181;" f drawDragPickup src/Dodge/Render/Picture.hs 190;" f drawDragSelect src/Dodge/Render/Picture.hs 167;" f -drawDragSelected src/Dodge/Render/HUD.hs 133;" f -drawDragSelecting src/Dodge/Render/HUD.hs 151;" f +drawDragSelected src/Dodge/Render/HUD.hs 131;" f +drawDragSelecting src/Dodge/Render/HUD.hs 148;" f drawEmptySet src/Dodge/Render/Picture.hs 117;" f drawEnergyBall src/Dodge/EnergyBall/Draw.hs 8;" f drawEquipment src/Dodge/Creature/Picture.hs 140;" f -drawExamineInventory src/Dodge/Render/HUD.hs 187;" f +drawExamineInventory src/Dodge/Render/HUD.hs 183;" f drawFarWallDetect src/Dodge/Debug/Picture.hs 234;" f drawFlame src/Dodge/Flame/Draw.hs 7;" f drawFlamelet src/Dodge/EnergyBall/Draw.hs 23;" f @@ -4079,18 +4076,18 @@ drawInputMenu src/Dodge/Render/MenuScreen.hs 21;" f drawInspectWall src/Dodge/Debug/Picture.hs 209;" f drawInspectWalls src/Dodge/Debug/Picture.hs 197;" f drawInventory src/Dodge/Render/HUD.hs 54;" f -drawItemChildrenConnect src/Dodge/Render/HUD.hs 319;" f -drawItemConnections src/Dodge/Render/HUD.hs 308;" f +drawItemChildrenConnect src/Dodge/Render/HUD.hs 314;" f +drawItemConnections src/Dodge/Render/HUD.hs 304;" f drawJumpDown src/Dodge/Render/Picture.hs 163;" f drawLabCrossCol src/Dodge/Render/Label.hs 8;" f 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 219;" f -drawListElement src/Dodge/Render/List.hs 197;" f -drawListYgapScaleYoff src/Dodge/Render/List.hs 102;" f -drawListYoff src/Dodge/Render/List.hs 99;" f +drawList src/Dodge/Render/List.hs 209;" f +drawListElement src/Dodge/Render/List.hs 187;" f +drawListYgapScaleYoff src/Dodge/Render/List.hs 95;" f +drawListYoff src/Dodge/Render/List.hs 92;" f drawMachine src/Dodge/Machine/Draw.hs 17;" f drawMapWall src/Dodge/Render/HUD/Carte.hs 33;" f drawMenuClick src/Dodge/Render/Picture.hs 137;" f @@ -4098,7 +4095,7 @@ drawMenuCursor src/Dodge/Render/Picture.hs 150;" 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 -drawMouseOver src/Dodge/Render/HUD.hs 103;" f +drawMouseOver src/Dodge/Render/HUD.hs 102;" f drawMousePosition src/Dodge/Debug/Picture.hs 319;" f drawMovingShape src/Dodge/Prop/Draw.hs 67;" f drawMovingShapeCol src/Dodge/Prop/Draw.hs 73;" f @@ -4111,11 +4108,11 @@ drawPointLabel src/Dodge/Render/Label.hs 13;" f drawProjectile src/Dodge/Projectile/Draw.hs 13;" f drawProp src/Dodge/Prop/Draw.hs 15;" f drawProp' src/Dodge/Prop/Draw.hs 12;" f -drawRBOptions src/Dodge/Render/HUD.hs 241;" f +drawRBOptions src/Dodge/Render/HUD.hs 237;" f drawRadarSweep src/Dodge/RadarSweep/Draw.hs 7;" f drawRemoteShell src/Dodge/Projectile/Draw.hs 30;" f drawReturn src/Dodge/Render/Picture.hs 123;" f -drawRootCursor src/Dodge/Render/HUD.hs 71;" f +drawRootCursor src/Dodge/Render/HUD.hs 70;" f drawSSCursor src/Dodge/SelectionSections/Draw.hs 31;" f drawSSMultiCursor src/Dodge/SelectionSections/Draw.hs 42;" f drawSelect src/Dodge/Render/Picture.hs 209;" f @@ -4130,12 +4127,12 @@ drawShell src/Dodge/Projectile/Draw.hs 20;" f 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 163;" f +drawSubInventory src/Dodge/Render/HUD.hs 159;" f drawSweep src/Dodge/Render/Picture.hs 246;" f drawSwitch src/Dodge/Button/Draw.hs 15;" f drawSwitchWire src/Dodge/LevelGen/Switch.hs 28;" f drawTargeting src/Dodge/Targeting/Draw.hs 13;" f -drawTerminalDisplay src/Dodge/Render/HUD.hs 358;" f +drawTerminalDisplay src/Dodge/Render/HUD.hs 351;" f drawTeslaArc src/Dodge/Tesla/Arc/Draw.hs 7;" f drawText src/Picture/Base.hs 220;" f drawTitle src/Dodge/Render/MenuScreen.hs 58;" f @@ -4180,12 +4177,12 @@ 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 247;" f -endRegex src/Dodge/Update/Input/InGame.hs 236;" f +endCombineRegex src/Dodge/Update/Input/InGame.hs 244;" f +endRegex src/Dodge/Update/Input/InGame.hs 233;" f enterCombineInv src/Dodge/DisplayInventory.hs 359;" f eqConstr src/SameConstr.hs 17;" f eqPosText src/Dodge/Equipment/Text.hs 6;" f -equipAllocString src/Dodge/Render/HUD.hs 299;" f +equipAllocString src/Dodge/Render/HUD.hs 295;" f equipInfo src/Dodge/Item/Info.hs 103;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 65;" f equipPosition src/Dodge/Item/Draw.hs 30;" f @@ -4275,7 +4272,7 @@ flockPointTarget src/Dodge/Creature/Boid.hs 199;" f flockPointTargetR src/Dodge/Creature/Boid.hs 266;" f flockToPointUsing src/Dodge/Creature/Boid.hs 214;" f flockToPointUsing' src/Dodge/Creature/Boid.hs 227;" f -floorItemPickupInfo src/Dodge/Render/HUD.hs 220;" f +floorItemPickupInfo src/Dodge/Render/HUD.hs 216;" f floorItemSPic src/Dodge/Render/ShapePicture.hs 119;" f floorWire src/Dodge/Wire.hs 13;" f foamSprayFadeOutS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 412;" f @@ -4348,7 +4345,6 @@ getDamageCoding src/Dodge/Terminal.hs 177;" 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 93;" f getLaserColor src/Dodge/HeldUse.hs 199;" f getLaserDamage src/Dodge/HeldUse.hs 196;" f getLaserPhaseV src/Dodge/HeldUse.hs 193;" f @@ -4359,7 +4355,7 @@ getNodePos src/Dodge/Path.hs 31;" f getPretty src/AesonHelp.hs 7;" f getPrettyShort src/AesonHelp.hs 10;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f -getRootItemBounds src/Dodge/Render/HUD.hs 94;" f +getRootItemBounds src/Dodge/Render/HUD.hs 93;" f getSensor src/Dodge/Terminal.hs 189;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 17;" f getSplitString src/Dodge/Debug/Terminal.hs 123;" f @@ -4536,10 +4532,10 @@ intervalList src/Geometry.hs 315;" f interweave src/Justify.hs 17;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f invAdj src/Dodge/Item/Grammar.hs 189;" f -invCursorParams src/Dodge/ListDisplayParams.hs 38;" f +invCursorParams src/Dodge/ListDisplayParams.hs 36;" f +invDP src/Dodge/ListDisplayParams.hs 30;" f invDimColor src/Dodge/DisplayInventory.hs 219;" f -invDisplayParams src/Dodge/ListDisplayParams.hs 32;" f -invHead src/Dodge/Render/HUD.hs 398;" f +invHead src/Dodge/Render/HUD.hs 391;" f invLDT src/Dodge/Item/Grammar.hs 172;" f invRootMap src/Dodge/Item/Grammar.hs 181;" f invRootTrees src/Dodge/Item/Grammar.hs 211;" f @@ -4567,7 +4563,7 @@ isConnected src/Dodge/Inventory/Swap.hs 90;" f isElectrical src/Dodge/Data/Damage.hs 42;" f isFrictionless src/Dodge/Creature/State.hs 341;" f isGas src/Dodge/Euse.hs 63;" f -isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 170;" f +isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 168;" f isInLnk src/Dodge/PlacementSpot.hs 160;" f isJust' src/MaybeHelp.hs 29;" f isLHS src/Geometry/LHS.hs 8;" f @@ -4587,6 +4583,8 @@ isVowel src/StringHelp.hs 8;" f isWalkable src/Dodge/Base/Collide.hs 222;" f isoMatrix src/MatrixHelper.hs 30;" f isotriBWH src/Geometry/Polygon.hs 20;" f +itDim src/Dodge/Item/InvSize.hs 13;" f +itInvHeight src/Dodge/Item/InvSize.hs 9;" f itUseCharge src/Dodge/Item/Weapon/TriggerType.hs 82;" f itemBaseName src/Dodge/Item/Display.hs 44;" f itemBlips src/Dodge/RadarSweep.hs 75;" f @@ -4704,7 +4702,7 @@ linksAndPath' src/Dodge/Room/Path.hs 44;" f linksOnPath src/Dodge/Room/CheckConsistency.hs 7;" f listConfig src/Dodge/Menu.hs 199;" f listControls src/Dodge/Menu.hs 212;" f -listCursorChooseBorderScale src/Dodge/Render/List.hs 145;" f +listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 188;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 351;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f @@ -4712,7 +4710,7 @@ llleft src/Dodge/Item/Grammar.hs 107;" f llright src/Dodge/Item/Grammar.hs 114;" f lmt src/MatrixHelper.hs 43;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f -lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 387;" f +lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 380;" f lnkPosDir src/Dodge/RoomLink.hs 97;" f loadDodgeConfig src/Dodge/Config/Load.hs 9;" f loadMusic src/Dodge/SoundLogic/LoadSound.hs 21;" f @@ -4838,7 +4836,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 585;" f +maybeExitCombine src/Dodge/Update/Input/InGame.hs 582;" f maybeOpenTerminal src/Dodge/Update.hs 123;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeTakeOne src/RandomHelp.hs 111;" f @@ -5009,7 +5007,7 @@ onRemoveWristShield src/Dodge/Euse.hs 91;" f onXY src/Geometry/Vector3D.hs 130;" f oneH src/Dodge/Creature/Test.hs 95;" f openCursorAt src/Dodge/Render/HUD/Carte.hs 54;" f -optionListDisplayParams src/Dodge/ListDisplayParams.hs 69;" f +optionListDisplayParams src/Dodge/ListDisplayParams.hs 54;" f optionMenu src/Dodge/Menu.hs 105;" f optionScreenDefaultEffect src/Dodge/Update/Input/ScreenLayer.hs 50;" f optionScreenUpdate src/Dodge/Update/Input/ScreenLayer.hs 41;" f @@ -5062,7 +5060,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 505;" f +pauseGame src/Dodge/Update/Input/InGame.hs 502;" f pauseMenu src/Dodge/Menu.hs 53;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseSound src/Dodge/SoundLogic.hs 41;" f @@ -5367,7 +5365,7 @@ renderInfoListAt src/Dodge/Render/InfoBox.hs 17;" f renderInfoListsAt src/Dodge/Render/InfoBox.hs 44;" f renderLayer src/Render.hs 233;" f renderLightingNoShadows src/Render.hs 48;" f -renderListAt src/Dodge/Render/List.hs 202;" f +renderListAt src/Dodge/Render/List.hs 192;" f renderShadows src/Render.hs 117;" f replaceNullWith src/Dodge/Creature/ReaderUpdate.hs 160;" f replacePutID src/Dodge/Placement/Instance/Wall.hs 102;" f @@ -5515,18 +5513,18 @@ seagullCryS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 432;" f seagullWhistle1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 372;" f seagullWhistleS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 530;" f searchIfDamaged src/Dodge/Creature/ReaderUpdate.hs 203;" f -secondColumnParams src/Dodge/ListDisplayParams.hs 45;" f +secondColumnParams src/Dodge/ListDisplayParams.hs 43;" f sectionsDesiredLines src/Dodge/DisplayInventory.hs 231;" f 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 528;" f -selNumPos src/Dodge/Render/HUD.hs 447;" f -selNumPosCardinal src/Dodge/Render/HUD.hs 470;" f -selSecDrawCursor src/Dodge/Render/List.hs 134;" f -selSecDrawCursorAt src/Dodge/Render/List.hs 111;" f -selSecSelCol src/Dodge/Render/HUD.hs 499;" f +selCloseObj src/Dodge/Update/Input/InGame.hs 525;" f +selNumPos src/Dodge/Render/HUD.hs 440;" f +selNumPosCardinal src/Dodge/Render/HUD.hs 463;" f +selSecDrawCursor src/Dodge/Render/List.hs 126;" f +selSecDrawCursorAt src/Dodge/Render/List.hs 104;" f +selSecSelCol src/Dodge/Render/HUD.hs 492;" f selSecSelSize src/Dodge/SelectionSections.hs 180;" f selSecYint src/Dodge/SelectionSections.hs 189;" f selectCreatureDebugItem src/Dodge/Debug.hs 39;" f @@ -5566,7 +5564,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 292;" f -setSelWhileDragging src/Dodge/Update/Input/InGame.hs 318;" f +setSelWhileDragging src/Dodge/Update/Input/InGame.hs 315;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 85;" f setShaderSource src/Shader/Compile.hs 290;" f setShadowLimits src/Dodge/Shadows.hs 11;" f @@ -5617,9 +5615,9 @@ shiftChildren src/Dodge/Tree/Compose.hs 43;" f shiftDraw src/Dodge/Render/ShapePicture.hs 66;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 72;" f shiftInBy src/Dodge/PlacementSpot.hs 236;" f -shiftInvItems src/Dodge/Update/Input/InGame.hs 292;" f -shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 331;" f -shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 325;" f +shiftInvItems src/Dodge/Update/Input/InGame.hs 289;" f +shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 328;" f +shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 322;" 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 @@ -5718,7 +5716,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 508;" f +spaceAction src/Dodge/Update/Input/InGame.hs 505;" 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 @@ -5768,13 +5766,13 @@ ssScrollMinOnFail src/Dodge/SelectionSections.hs 57;" f ssScrollUsing src/Dodge/SelectionSections.hs 47;" f ssSetCursor src/Dodge/SelectionSections.hs 72;" f ssfold src/FoldableHelp.hs 105;" f -stackPicturesAt src/Dodge/Render/List.hs 105;" f -stackPicturesAtOff src/Dodge/Render/List.hs 108;" f +stackPicturesAt src/Dodge/Render/List.hs 98;" f +stackPicturesAtOff src/Dodge/Render/List.hs 101;" f stackText src/Picture/Base.hs 188;" f stackedInventory src/Dodge/Creature.hs 281;" f startCr src/Dodge/Creature.hs 91;" f startCrafts src/Dodge/Room/Start.hs 92;" f -startDrag src/Dodge/Update/Input/InGame.hs 258;" f +startDrag src/Dodge/Update/Input/InGame.hs 255;" f startInvList src/Dodge/Creature.hs 109;" f startInventory src/Dodge/Creature.hs 112;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f @@ -5801,7 +5799,7 @@ strideRot src/Dodge/Item/HeldOffset.hs 64;" f stringToList src/Picture/Base.hs 313;" f stringToListGrad src/Picture/Text.hs 12;" f stripZ src/Geometry/Vector3D.hs 97;" f -subInvX src/Dodge/ListDisplayParams.hs 50;" f +subInvX src/Dodge/ListDisplayParams.hs 48;" f subMap src/TreeHelp.hs 118;" f subZipWith src/Dodge/Placement/Instance/Wall.hs 115;" f swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 71;" f @@ -5904,7 +5902,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 229;" f +toTopLeft src/Dodge/Render/List.hs 219;" f toV2 src/Geometry/Data.hs 36;" f toV3 src/Geometry/Data.hs 38;" f toV4 src/Geometry/Data.hs 40;" f @@ -5912,13 +5910,13 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 35;" f toggleCommand src/Dodge/Terminal.hs 196;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 79;" f toggleJust src/MaybeHelp.hs 41;" f -toggleMap src/Dodge/Update/Input/InGame.hs 549;" f -toggleTweakInv src/Dodge/Update/Input/InGame.hs 562;" f +toggleMap src/Dodge/Update/Input/InGame.hs 546;" f +toggleTweakInv src/Dodge/Update/Input/InGame.hs 559;" f togglesToEffects src/Dodge/Terminal.hs 248;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 474;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 444;" f tone440sawtoothquietS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 332;" f -topInvW src/Dodge/ListDisplayParams.hs 53;" f +topInvW src/Dodge/ListDisplayParams.hs 51;" f topPrismEdgeIndices src/Shader/Poke.hs 327;" f topPrismIndices src/Shader/Poke.hs 402;" f topTestPart src/Dodge/TestString.hs 68;" f @@ -5984,13 +5982,13 @@ trunkDepth src/TreeHelp.hs 161;" f tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f tryAttachBulletBelt src/Dodge/Euse.hs 39;" f tryChargeBattery src/Dodge/Euse.hs 42;" f -tryCombine src/Dodge/Update/Input/InGame.hs 571;" f -tryDropSelected src/Dodge/Update/Input/InGame.hs 115;" f +tryCombine src/Dodge/Update/Input/InGame.hs 568;" f +tryDropSelected src/Dodge/Update/Input/InGame.hs 113;" 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 122;" f +tryPickupSelected src/Dodge/Update/Input/InGame.hs 120;" f tryPlay src/Sound.hs 83;" f tryPutFloorItemIDInInv src/Dodge/Inventory/Add.hs 26;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 42;" f @@ -6033,7 +6031,7 @@ updateAllNodes src/TreeHelp.hs 85;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f updateAttachedItems src/Dodge/Creature/State.hs 172;" f updateAutoRecharge src/Dodge/Creature/State.hs 324;" f -updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 457;" f +updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 454;" f updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBounds src/Dodge/Update/Camera.hs 245;" f @@ -6056,42 +6054,42 @@ updateDistortion src/Dodge/Distortion.hs 5;" f updateDistortions src/Dodge/Update.hs 529;" f updateEnergyBall src/Dodge/EnergyBall.hs 45;" f updateEnergyBalls src/Dodge/Update.hs 553;" f -updateEnterRegex src/Dodge/Update/Input/InGame.hs 484;" f +updateEnterRegex src/Dodge/Update/Input/InGame.hs 481;" 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 550;" f updateFloatingCamera src/Dodge/Update/Camera.hs 36;" f -updateFunctionKey src/Dodge/Update/Input/InGame.hs 348;" f -updateFunctionKeys src/Dodge/Update/Input/InGame.hs 341;" f +updateFunctionKey src/Dodge/Update/Input/InGame.hs 345;" f +updateFunctionKeys src/Dodge/Update/Input/InGame.hs 338;" f updateGusts src/Dodge/Update.hs 704;" f updateHeldRootItem src/Dodge/Creature/State.hs 166;" f updateHumanoid src/Dodge/Humanoid.hs 12;" f updateIMl src/Dodge/Update.hs 498;" f updateIMl' src/Dodge/Update.hs 503;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f -updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 401;" f +updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 398;" f updateInstantBullets src/Dodge/Update.hs 642;" f updateInv src/Dodge/Creature/State.hs 151;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 89;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemWithOrientation src/Dodge/Creature/State.hs 193;" f -updateKeyInGame src/Dodge/Update/Input/InGame.hs 395;" f -updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 383;" f +updateKeyInGame src/Dodge/Update/Input/InGame.hs 392;" f +updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 380;" f updateLampoid src/Dodge/Lampoid.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 13;" f updateLasers src/Dodge/Update.hs 427;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f -updateLongPressInGame src/Dodge/Update/Input/InGame.hs 416;" f +updateLongPressInGame src/Dodge/Update/Input/InGame.hs 413;" f updateMIM src/Dodge/Update.hs 655;" f updateMachine src/Dodge/Machine/Update.hs 19;" f -updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 176;" f +updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 174;" f updateMouseContext src/Dodge/Update.hs 310;" f updateMouseContextGame src/Dodge/Update.hs 315;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 86;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 78;" f -updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 143;" f +updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 141;" f updateMovement src/Dodge/Creature/State.hs 331;" f updateObjCatMaybes src/Dodge/Update.hs 520;" f updateObjMapMaybe src/Dodge/Update.hs 513;" f @@ -6099,8 +6097,8 @@ updatePastWorlds src/Dodge/Update.hs 415;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvents src/Dodge/Update.hs 562;" f updatePreload src/Preload/Update.hs 20;" f -updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 358;" f -updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 361;" f +updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 355;" f +updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 358;" 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 @@ -6293,7 +6291,7 @@ yV2 src/Geometry/Vector.hs 203;" f yellow src/Color.hs 17;" f you src/Dodge/Base/You.hs 18;" f youDropItem src/Dodge/Creature/Action.hs 190;" f -yourAugmentedItem src/Dodge/Render/HUD.hs 227;" f +yourAugmentedItem src/Dodge/Render/HUD.hs 223;" f yourControl src/Dodge/Creature/YourControl.hs 22;" f yourDefaultSpeed src/Dodge/Default/Creature.hs 134;" f yourDefaultStrideLength src/Dodge/Default/Creature.hs 137;" f