Remove SelectionSections

This commit is contained in:
2024-10-25 22:19:04 +01:00
parent a20fc48eaa
commit d93c548d3c
15 changed files with 202 additions and 195 deletions
+1 -15
View File
@@ -1,15 +1 @@
/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:211:9-11: warning: [-Wunused-matches] All good (595 modules, at 22:15:48)
Defined but not used: sss
|
211 | sss <- he ^? diSections
| ^^^
/home/justin/Haskell/loop/src/Dodge/Update/Input/InGame.hs:219:9-11: warning: [-Wunused-matches]
Defined but not used: sss
|
219 | sss <- ci ^? ciSections
| ^^^
/home/justin/Haskell/loop/src/Dodge/InputFocus.hs:14:1-31: warning: [-Wunused-imports]
The import of Dodge.Data.SelectionList is redundant
|
14 | import Dodge.Data.SelectionList
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+1 -1
View File
@@ -185,7 +185,7 @@ youDropItem :: World -> World
youDropItem w = fromMaybe w $ do youDropItem w = fromMaybe w $ do
curpos <- curpos <-
you w ^? crManipulation . manObject . imSelectedItem you w ^? crManipulation . manObject . imSelectedItem
<|> fmap fst (IM.lookupMax =<< w ^? hud . hudElement . diSections . sssSections . ix 0 . ssItems) <|> fmap fst (IM.lookupMax =<< w ^? hud . hudElement . diSections . ix 0 . ssItems)
guard $ not $ _crInvLock (you w) guard $ not $ _crInvLock (you w)
return $ return $
w w
+2 -2
View File
@@ -16,7 +16,7 @@ import Geometry.Data
data HUDElement data HUDElement
= DisplayInventory = DisplayInventory
{ _subInventory :: SubInventory { _subInventory :: SubInventory
, _diSections :: SelectionSections () , _diSections :: IntMap (SelectionSection ())
, _diSelection :: Maybe (Int, Int) , _diSelection :: Maybe (Int, Int)
, _diFilters :: IntMap (Maybe String) , _diFilters :: IntMap (Maybe String)
, _diSelectionExtra :: Int , _diSelectionExtra :: Int
@@ -36,7 +36,7 @@ data SubInventory
} }
| ExamineInventory | ExamineInventory
| CombineInventory | CombineInventory
{ _ciSections :: SelectionSections CombinableItem { _ciSections :: IntMap (SelectionSection CombinableItem)
, _ciSelection :: Maybe (Int, Int) , _ciSelection :: Maybe (Int, Int)
, _ciFilters :: IntMap (Maybe String) , _ciFilters :: IntMap (Maybe String)
} }
+4 -13
View File
@@ -33,17 +33,9 @@ data SelectionList a = SelectionList
, _slSelPos :: Maybe Int , _slSelPos :: Maybe Int
} }
data SelectionSections a = SelectionSections --data SelectionSections a = SelectionSections
{ _sssSections :: IntMap (SelectionSection a) -- { _sssSections :: IntMap (SelectionSection a)
-- , _sssExtra :: SSSExtra -- }
}
-- note that filters are arbitrary: the sssFilters point to the lower of
-- a pair of ints (i,i+1) such that the lower is the regex section, the higher
-- is the items section.
newtype SSSExtra = SSSExtra
{ _sssFilters :: IntMap (Maybe String)
}
data SectionCursor = SectionCursor data SectionCursor = SectionCursor
{ _scurPos :: Int { _scurPos :: Int
@@ -87,8 +79,7 @@ makeLenses ''ListDisplayParams
makeLenses ''SelectionList makeLenses ''SelectionList
makeLenses ''SelectionItem makeLenses ''SelectionItem
makeLenses ''SelectionSection makeLenses ''SelectionSection
makeLenses ''SelectionSections --makeLenses ''SelectionSections
makeLenses ''SSSExtra
makeLenses ''SectionCursor makeLenses ''SectionCursor
makeLenses ''CursorDisplay makeLenses ''CursorDisplay
+2 -7
View File
@@ -177,11 +177,8 @@ defaultDisplayInventory =
-- { _sssFilters = IM.fromList [(-1, mempty), (2, mempty)] -- { _sssFilters = IM.fromList [(-1, mempty), (2, mempty)]
-- } -- }
defaultInvSections :: SelectionSections () defaultInvSections :: IM.IntMap (SelectionSection ())
defaultInvSections = defaultInvSections = IM.fromDistinctAscList $
SelectionSections
{ _sssSections =
IM.fromDistinctAscList $
zip zip
[-1 ..] [-1 ..]
[ defaultFiltSection [ defaultFiltSection
@@ -191,8 +188,6 @@ defaultInvSections =
& ssDescriptor .~ "NEARBY" & ssDescriptor .~ "NEARBY"
, defaultCOSection , defaultCOSection
] ]
-- , _sssExtra = defaultSSSExtra
}
defaultSS :: SelectionSection a defaultSS :: SelectionSection a
defaultSS = defaultSS =
+20 -15
View File
@@ -36,10 +36,13 @@ updateCombinePositioning u =
u & uvWorld . hud . hudElement . subInventory . ciSections u & uvWorld . hud . hudElement . subInventory . ciSections
%~ updateCombineSections (_uvWorld u) (_uvConfig u) %~ updateCombineSections (_uvWorld u) (_uvConfig u)
updateCombineSections :: World -> Configuration -> SelectionSections CombinableItem -> SelectionSections CombinableItem updateCombineSections ::
World ->
Configuration ->
IM.IntMap (SelectionSection CombinableItem) ->
IM.IntMap (SelectionSection CombinableItem)
updateCombineSections w cfig = updateCombineSections w cfig =
sssSections updateSectionsPositioning
%~ updateSectionsPositioning
mselpos mselpos
availablelines availablelines
[(0, showncombs), (-1, filtinv)] [(0, showncombs), (-1, filtinv)]
@@ -49,11 +52,12 @@ updateCombineSections w cfig =
allcombs = IM.fromDistinctAscList $ zip [0 ..] $ combineList w allcombs = IM.fromDistinctAscList $ zip [0 ..] $ combineList w
filtcombs = fromMaybe allcombs $ do filtcombs = fromMaybe allcombs $ do
str <- mstr str <- mstr
invitms <- w ^? hud . hudElement . diSections . sssSections . ix 0 . ssItems invitms <- w ^? hud . hudElement . diSections . ix 0 . ssItems
return $ IM.filter (flip (andOrRegex $ regexCombs invitms) str) allcombs return $ IM.filter (flip (andOrRegex $ regexCombs invitms) str) allcombs
showncombs showncombs
| null filtcombs = IM.singleton 0 | null filtcombs =
$ SelectionInfo ["No possible combinations"] 1 False white 0 IM.singleton 0 $
SelectionInfo ["No possible combinations"] 1 False white 0
| otherwise = filtcombs | otherwise = filtcombs
filtinv = fromMaybe mempty $ do filtinv = fromMaybe mempty $ do
str <- mstr str <- mstr
@@ -90,14 +94,14 @@ updateInventoryPositioning u =
updateDisplaySections :: updateDisplaySections ::
World -> World ->
Configuration -> Configuration ->
SelectionSections () -> IM.IntMap (SelectionSection ()) ->
SelectionSections () IM.IntMap (SelectionSection ())
updateDisplaySections w cfig sss = updateDisplaySections w cfig sss =
sss & sssSections updateSectionsPositioning
%~ updateSectionsPositioning
mselpos mselpos
availablelines availablelines
addorder addorder
sss
where where
mselpos = w ^? hud . hudElement . diSelection . _Just mselpos = w ^? hud . hudElement . diSelection . _Just
addorder = case mselpos of addorder = case mselpos of
@@ -246,17 +250,18 @@ listSelectionColorPicture = foldMap f
g str = (_siColor si, translate indent 0 . color (_siColor si) $ text str) g str = (_siColor si, translate indent 0 . color (_siColor si) $ text str)
enterCombineInv :: Configuration -> World -> World enterCombineInv :: Configuration -> World -> World
enterCombineInv cfig w = w & hud . hudElement . subInventory .~ CombineInventory sss selpos enterCombineInv cfig w =
w & hud . hudElement . subInventory
.~ CombineInventory
sss
selpos
(IM.singleton (-1) Nothing) (IM.singleton (-1) Nothing)
where where
cm' = IM.fromDistinctAscList . zip [0 ..] $ combineList w cm' = IM.fromDistinctAscList . zip [0 ..] $ combineList w
cm cm
| null cm' = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0 | null cm' = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0
| otherwise = cm' | otherwise = cm'
sss = sss = IM.fromDistinctAscList [(-1, filtsection), (0, combsection)]
SelectionSections
{ _sssSections = IM.fromDistinctAscList [(-1, filtsection), (0, combsection)]
}
selpos selpos
| null cm' = Nothing | null cm' = Nothing
| otherwise = Just (0, 0) | otherwise = Just (0, 0)
-1
View File
@@ -11,7 +11,6 @@ module Dodge.InputFocus (
import Control.Monad import Control.Monad
import Data.Maybe import Data.Maybe
import Dodge.Data.SelectionList
import Dodge.Data.World import Dodge.Data.World
import LensHelp import LensHelp
+4 -4
View File
@@ -122,7 +122,7 @@ updateCloseObjects w =
case w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseObject of case w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseObject of
Just i Just i
| i >= length newcloseobjects -> scrollAugInvSel 1 | i >= length newcloseobjects -> scrollAugInvSel 1
| isNothing (w ^? hud . hudElement . diSections . sssSections . ix 3 . ssItems . ix i) -> | isNothing (w ^? hud . hudElement . diSections . ix 3 . ssItems . ix i) ->
scrollAugInvSel (-1) scrollAugInvSel (-1)
_ -> id _ -> id
filt = filter $ \obj -> dist ypos (closeObjPos obj) < 40 && hasButtonLOS ypos (closeObjPos obj) w filt = filter $ \obj -> dist ypos (closeObjPos obj) < 40 && hasButtonLOS ypos (closeObjPos obj) w
@@ -159,7 +159,7 @@ changeSwapClose ::
World -> World ->
World World
changeSwapClose f i w = fromMaybe w $ do changeSwapClose f i w = fromMaybe w $ do
ss <- w ^? hud . hudElement . diSections . sssSections . ix 3 . ssItems ss <- w ^? hud . hudElement . diSections . ix 3 . ssItems
k <- f i ss k <- f i ss
return $ return $
w w
@@ -176,7 +176,7 @@ swapInvItems ::
World -> World ->
World World
swapInvItems f i w = fromMaybe w $ do swapInvItems f i w = fromMaybe w $ do
ss <- w ^? hud . hudElement . diSections . sssSections . ix 0 . ssItems ss <- w ^? hud . hudElement . diSections . ix 0 . ssItems
k <- f i ss k <- f i ss
let updateselection = case w ^? hud . hudElement . diSelection . _Just of let updateselection = case w ^? hud . hudElement . diSelection . _Just of
Just (0, j) | j == k -> hud . hudElement . diSelection . _Just . _2 .~ i Just (0, j) | j == k -> hud . hudElement . diSelection . _Just . _2 .~ i
@@ -239,5 +239,5 @@ selectedCloseObject :: World -> Maybe (Either FloorItem Button)
selectedCloseObject w = do selectedCloseObject w = do
i <- i <-
you w ^? crManipulation . manObject . ispCloseObject you w ^? crManipulation . manObject . ispCloseObject
<|> fmap fst (IM.lookupMin =<< w ^? hud . hudElement . diSections . sssSections . ix 3 . ssItems) <|> fmap fst (IM.lookupMin =<< w ^? hud . hudElement . diSections . ix 3 . ssItems)
w ^? hud . closeObjects . ix i w ^? hud . closeObjects . ix i
+21 -11
View File
@@ -56,7 +56,7 @@ drawHP cfig =
. show . show
. (^?! cWorld . lWorld . creatures . ix 0 . crHP) . (^?! cWorld . lWorld . creatures . ix 0 . crHP)
drawInventory :: SelectionSections () -> World -> Configuration -> Picture drawInventory :: IM.IntMap (SelectionSection ()) -> World -> Configuration -> Picture
drawInventory sss w cfig = drawInventory sss w cfig =
drawSelectionSections sss ldp cfig drawSelectionSections sss ldp cfig
<> drawSSCursor sss (w ^? hud . hudElement . diSelection . _Just) ldp curs cfig <> drawSSCursor sss (w ^? hud . hudElement . diSelection . _Just) ldp curs cfig
@@ -123,7 +123,11 @@ drawSubInventory subinv cfig w = case subinv of
DisplayTerminal tid -> displayTerminal tid cfig (w ^. cWorld . lWorld) DisplayTerminal tid -> displayTerminal tid cfig (w ^. cWorld . lWorld)
CombineInventory{_ciSections = sss} -> drawCombineInventory cfig sss w CombineInventory{_ciSections = sss} -> drawCombineInventory cfig sss w
drawCombineInventory :: Configuration -> SelectionSections CombinableItem -> World -> Picture drawCombineInventory ::
Configuration ->
IM.IntMap (SelectionSection CombinableItem) ->
World ->
Picture
drawCombineInventory cfig sss w = drawCombineInventory cfig sss w =
invHead cfig "COMBINE" invHead cfig "COMBINE"
<> drawSelectionSections sss secondColumnParams cfig <> drawSelectionSections sss secondColumnParams cfig
@@ -249,7 +253,7 @@ equipAllocString = \case
RemoveEquipment{} -> "TAKE OFF" RemoveEquipment{} -> "TAKE OFF"
inventoryExtra :: inventoryExtra ::
SelectionSections () -> IM.IntMap (SelectionSection ()) ->
Configuration -> Configuration ->
World -> World ->
IM.IntMap (Maybe (Int, Int), [Int], [Int]) -> IM.IntMap (Maybe (Int, Int), [Int], [Int]) ->
@@ -259,7 +263,13 @@ inventoryExtra sss cfig w =
. IM.foldMapWithKey (inventoryExtraH sss cfig w) . IM.foldMapWithKey (inventoryExtraH sss cfig w)
. fmap (\(_, a, b) -> a <> b) . fmap (\(_, a, b) -> a <> b)
inventoryExtraH :: SelectionSections () -> Configuration -> World -> Int -> [Int] -> Picture inventoryExtraH ::
IM.IntMap (SelectionSection ()) ->
Configuration ->
World ->
Int ->
[Int] ->
Picture
inventoryExtraH sss cfig w i is = fromMaybe mempty $ do inventoryExtraH sss cfig w i is = fromMaybe mempty $ do
p <- snum i p <- snum i
let ps = mapMaybe snum is let ps = mapMaybe snum is
@@ -268,7 +278,7 @@ inventoryExtraH sss cfig w i is = fromMaybe mempty $ do
snum = selNumPos cfig (invDisplayParams w) sss 0 snum = selNumPos cfig (invDisplayParams w) sss 0
combineInventoryExtra :: combineInventoryExtra ::
SelectionSections CombinableItem -> IM.IntMap (SelectionSection CombinableItem) ->
Maybe (Int, Int) -> Maybe (Int, Int) ->
Configuration -> Configuration ->
World -> World ->
@@ -276,7 +286,7 @@ combineInventoryExtra ::
combineInventoryExtra sss msel cfig w = fromMaybe mempty $ do combineInventoryExtra sss msel cfig w = fromMaybe mempty $ do
(i, j) <- msel (i, j) <- msel
cpos <- selSecYint i j sss cpos <- selSecYint i j sss
si <- sss ^? sssSections . ix i . ssItems . ix j si <- sss ^? ix i . ssItems . ix j
let col = _siColor si let col = _siColor si
mconcat mconcat
[ do [ do
@@ -403,7 +413,7 @@ invHead cfig =
selNumPos :: selNumPos ::
Configuration -> Configuration ->
ListDisplayParams -> ListDisplayParams ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Int -> Int ->
Int -> Int ->
Maybe Point2 Maybe Point2
@@ -427,14 +437,14 @@ selNumPosCardinal ::
CardinalEightPoint -> CardinalEightPoint ->
Configuration -> Configuration ->
ListDisplayParams -> ListDisplayParams ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Int -> Int ->
Int -> Int ->
Maybe Point2 Maybe Point2
selNumPosCardinal card cfig ldp sss i j = do selNumPosCardinal card cfig ldp sss i j = do
ipos <- selSecYint i j sss ipos <- selSecYint i j sss
size <- selSecSelSize i j sss size <- selSecSelSize i j sss
indent <- sss ^? sssSections . ix i . ssItems . ix j . siOffX indent <- sss ^? ix i . ssItems . ix j . siOffX
let offset = cardEightVec card * V2 0 (fromIntegral size * 0.5 * 20 * s) let offset = cardEightVec card * V2 0 (fromIntegral size * 0.5 * 20 * s)
return $ return $
screenPosAbs cfig (ldp ^. ldpPos) screenPosAbs cfig (ldp ^. ldpPos)
@@ -446,5 +456,5 @@ selNumPosCardinal card cfig ldp sss i j = do
s = _ldpScale ldp s = _ldpScale ldp
ygap = _ldpVerticalGap ldp ygap = _ldpVerticalGap ldp
selSecSelCol :: Int -> Int -> SelectionSections a -> Maybe Color selSecSelCol :: Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe Color
selSecSelCol i j sss = sss ^? sssSections . ix i . ssItems . ix j . siColor selSecSelCol i j sss = sss ^? ix i . ssItems . ix j . siColor
+5 -4
View File
@@ -14,6 +14,7 @@ module Dodge.Render.List (
selSecDrawCursorAt, selSecDrawCursorAt,
) where ) where
import qualified Data.IntMap.Strict as IM
import Data.Maybe import Data.Maybe
import Dodge.Base.Window import Dodge.Base.Window
import Dodge.Data.CardinalPoint import Dodge.Data.CardinalPoint
@@ -86,13 +87,13 @@ selSecDrawCursorAt ::
Int -> Int ->
ListDisplayParams -> ListDisplayParams ->
CursorDisplay -> CursorDisplay ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
(Int, Int) -> (Int, Int) ->
Picture Picture
selSecDrawCursorAt xsize ldp curs sss (i, j) = fromMaybe mempty $ do selSecDrawCursorAt xsize ldp curs sss (i, j) = fromMaybe mempty $ do
yint <- selSecYint i j sss yint <- selSecYint i j sss
xint <- sss ^? sssSections . ix i . ssIndent xint <- sss ^? ix i . ssIndent
si <- sss ^? sssSections . ix i . ssItems . ix j si <- sss ^? ix i . ssItems . ix j
return $ return $
listCursorChooseBorderScale listCursorChooseBorderScale
(ldp ^. ldpVerticalGap) (ldp ^. ldpVerticalGap)
@@ -108,7 +109,7 @@ selSecDrawCursor ::
Int -> Int ->
ListDisplayParams -> ListDisplayParams ->
CursorDisplay -> CursorDisplay ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) -> Maybe (Int, Int) ->
Picture Picture
selSecDrawCursor xsize ldp curs = maybe mempty . selSecDrawCursorAt xsize ldp curs selSecDrawCursor xsize ldp curs = maybe mempty . selSecDrawCursorAt xsize ldp curs
+60 -41
View File
@@ -17,17 +17,17 @@ import Control.Applicative
import qualified Control.Foldl as L import qualified Control.Foldl as L
import Control.Lens import Control.Lens
import Control.Monad import Control.Monad
import Data.Foldable
import qualified Data.IntMap.Strict as IM import qualified Data.IntMap.Strict as IM
import Data.Maybe import Data.Maybe
import Dodge.Data.Config import Dodge.Data.Config
import Dodge.Data.SelectionList import Dodge.Data.SelectionList
import Dodge.ScreenPos import Dodge.ScreenPos
import Geometry.Data import Geometry.Data
import Data.Foldable
scrollSelectionSections :: scrollSelectionSections ::
Int -> Int ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) -> Maybe (Int, Int) ->
Maybe (Int, Int) Maybe (Int, Int)
scrollSelectionSections yi sss msel scrollSelectionSections yi sss msel
@@ -41,18 +41,18 @@ scrollSelectionSections yi sss msel
-- return $ sss & sssExtra . sssSelPos ?~ (i, j) -- return $ sss & sssExtra . sssSelPos ?~ (i, j)
ssScrollUsing :: ssScrollUsing ::
(Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a)) -> (Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) -> Maybe (Int, Int) ->
Maybe (Int, Int) Maybe (Int, Int)
ssScrollUsing g = ssScrollUsing g =
ssScrollMinOnFail ssScrollMinOnFail
g g
. (sssSections %~ fmap (ssItems %~ IM.filter _siIsSelectable)) . fmap (ssItems %~ IM.filter _siIsSelectable)
ssScrollMinOnFail :: ssScrollMinOnFail ::
(Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a)) -> (Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) -> Maybe (Int, Int) ->
Maybe (Int, Int) Maybe (Int, Int)
ssScrollMinOnFail f sss msel = fmap (\(i, j, _) -> (i, j)) $ l <|> ssLookupMin sss ssScrollMinOnFail f sss msel = fmap (\(i, j, _) -> (i, j)) $ l <|> ssLookupMin sss
@@ -62,76 +62,95 @@ ssScrollMinOnFail f sss msel = fmap (\(i, j, _) -> (i, j)) $ l <|> ssLookupMin s
f i j sss f i j sss
ssSetCursor :: ssSetCursor ::
(SelectionSections a -> Maybe (Int, Int, SelectionItem a)) -> (IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) -> Maybe (Int, Int) ->
Maybe (Int, Int) Maybe (Int, Int)
ssSetCursor f sss msel = fromMaybe msel $ do ssSetCursor f sss msel = fromMaybe msel $ do
(i, j, _) <- f sss (i, j, _) <- f sss
return $ Just (i, j) return $ Just (i, j)
ssLookupMax :: SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupMax :: IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)
ssLookupMax sss = do ssLookupMax sss = do
(i, _) <- IM.lookupMax (sss ^. sssSections) (i, _) <- IM.lookupMax sss
ssLookupLE' i sss ssLookupLE' i sss
ssLookupUp :: Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupUp ::
Int ->
Int ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int, SelectionItem a)
ssLookupUp i j sss = case ssLookupLT i j sss of ssLookupUp i j sss = case ssLookupLT i j sss of
Nothing -> ssLookupMax sss Nothing -> ssLookupMax sss
x -> x x -> x
ssLookupDown :: Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupDown ::
Int ->
Int ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int, SelectionItem a)
ssLookupDown i j sss = case ssLookupGT i j sss of ssLookupDown i j sss = case ssLookupGT i j sss of
Nothing -> ssLookupMin sss Nothing -> ssLookupMin sss
x -> x x -> x
ssLookupLT :: Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupLT ::
Int ->
Int ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int, SelectionItem a)
ssLookupLT i j sss = fromMaybe (ssLookupLT' i sss) $ do ssLookupLT i j sss = fromMaybe (ssLookupLT' i sss) $ do
ss <- sss ^? sssSections . ix i ss <- sss ^? ix i
(j', si) <- IM.lookupLT j (ss ^. ssItems) (j', si) <- IM.lookupLT j (ss ^. ssItems)
return $ Just (i, j', si) return $ Just (i, j', si)
ssLookupLT' :: Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupLT' ::
Int ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int, SelectionItem a)
ssLookupLT' i sss = do ssLookupLT' i sss = do
(i', ss) <- IM.lookupLT i (sss ^. sssSections) (i', ss) <- IM.lookupLT i sss
case IM.lookupMax (ss ^. ssItems) of case IM.lookupMax (ss ^. ssItems) of
Just (j', si) -> return (i', j', si) Just (j', si) -> return (i', j', si)
Nothing -> ssLookupLT' i' sss Nothing -> ssLookupLT' i' sss
ssLookupLE' :: Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupLE' :: Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)
ssLookupLE' i sss = do ssLookupLE' i sss = do
(i', ss) <- IM.lookupLE i (sss ^. sssSections) (i', ss) <- IM.lookupLE i sss
case IM.lookupMax (ss ^. ssItems) of case IM.lookupMax (ss ^. ssItems) of
Just (j', si) -> return (i', j', si) Just (j', si) -> return (i', j', si)
Nothing -> ssLookupLT' i' sss Nothing -> ssLookupLT' i' sss
ssLookupMin :: SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupMin :: IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)
ssLookupMin sss = do ssLookupMin sss = do
(i, _) <- IM.lookupMin (sss ^. sssSections) (i, _) <- IM.lookupMin sss
ssLookupGE' i sss ssLookupGE' i sss
ssLookupGT :: Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupGT ::
Int ->
Int ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int, SelectionItem a)
ssLookupGT i j sss = fromMaybe (ssLookupGT' i sss) $ do ssLookupGT i j sss = fromMaybe (ssLookupGT' i sss) $ do
ss <- sss ^? sssSections . ix i ss <- sss ^? ix i
(j', si) <- IM.lookupGT j (ss ^. ssItems) (j', si) <- IM.lookupGT j (ss ^. ssItems)
return $ Just (i, j', si) return $ Just (i, j', si)
ssLookupGT' :: Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupGT' :: Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)
ssLookupGT' i sss = do ssLookupGT' i sss = do
(i', ss) <- IM.lookupGT i (sss ^. sssSections) (i', ss) <- IM.lookupGT i sss
case IM.lookupMin (ss ^. ssItems) of case IM.lookupMin (ss ^. ssItems) of
Just (j', si) -> return (i', j', si) Just (j', si) -> return (i', j', si)
Nothing -> ssLookupGT' i' sss Nothing -> ssLookupGT' i' sss
ssLookupGE' :: Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a) ssLookupGE' :: Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)
ssLookupGE' i sss = do ssLookupGE' i sss = do
(i', ss) <- IM.lookupGE i (sss ^. sssSections) (i', ss) <- IM.lookupGE i sss
case IM.lookupMin (ss ^. ssItems) of case IM.lookupMin (ss ^. ssItems) of
Just (j', si) -> return (i', j', si) Just (j', si) -> return (i', j', si)
Nothing -> ssLookupGT' i' sss Nothing -> ssLookupGT' i' sss
selSecSelSize :: Int -> Int -> SelectionSections a -> Maybe Int selSecSelSize :: Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe Int
selSecSelSize i j sss = fmap length $ sss ^? sssSections . ix i . ssItems . ix j . siPictures selSecSelSize i j = fmap length . (^? ix i . ssItems . ix j . siPictures)
-- need to check that the vertical gap is correctly put in here -- need to check that the vertical gap is correctly put in here
posSelSecYint :: Configuration -> ListDisplayParams -> Float -> Int posSelSecYint :: Configuration -> ListDisplayParams -> Float -> Int
@@ -139,9 +158,9 @@ posSelSecYint cfig ldp y = floor $ (y0 - y) / (20 / ldp ^. ldpScale + ldp ^. ldp
where where
V2 _ y0 = screenPosAbs cfig (ldp ^. ldpPos) V2 _ y0 = screenPosAbs cfig (ldp ^. ldpPos)
selSecYint :: Int -> Int -> SelectionSections a -> Maybe Int selSecYint :: Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe Int
selSecYint i j sss = do selSecYint i j sss = do
ss <- sss ^? sssSections . ix i ss <- sss ^? ix i
return . (secpos +) return . (secpos +)
. subtract (ss ^. ssOffset) . subtract (ss ^. ssOffset)
. sum . sum
@@ -149,16 +168,16 @@ selSecYint i j sss = do
. fst . fst
$ IM.split j (ss ^. ssItems) $ IM.split j (ss ^. ssItems)
where where
secpos = sum . fmap (length . _ssShownItems) . fst $ IM.split i $ sss ^. sssSections secpos = sum . fmap (length . _ssShownItems) . fst $ IM.split i $ sss
-- it is annoying that Control.Foldl doesn't seem to allow for scans to be done -- it is annoying that Control.Foldl doesn't seem to allow for scans to be done
-- at the same time as folds -- at the same time as folds
inverseSelSecYint :: Int -> SelectionSections a -> Maybe (Int, Int) inverseSelSecYint :: Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int)
inverseSelSecYint yint sss = do inverseSelSecYint yint sss = do
((i, ss), othersss) <- IM.minViewWithKey (_sssSections sss) ((i, ss), othersss) <- IM.minViewWithKey sss
let l = length $ _ssShownItems ss let l = length $ _ssShownItems ss
if l <= yint if l <= yint
then inverseSelSecYint (yint - l) (sss & sssSections .~ othersss) then inverseSelSecYint (yint - l) othersss
else do else do
let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss) let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss)
j <- L.fold (L.findIndex (\x -> x - _ssOffset ss > yint)) ls j <- L.fold (L.findIndex (\x -> x - _ssOffset ss > yint)) ls
@@ -169,15 +188,15 @@ inverseSelSecYintXPosCheck ::
ListDisplayParams -> ListDisplayParams ->
Float -> Float ->
Int -> Int ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) Maybe (Int, Int)
inverseSelSecYintXPosCheck cfig ldp x yint sss = do inverseSelSecYintXPosCheck cfig ldp x yint sss = do
((i, ss), othersss) <- IM.minViewWithKey (_sssSections sss) ((i, ss), othersss) <- IM.minViewWithKey sss
let l = length $ _ssShownItems ss let l = length $ _ssShownItems ss
V2 x0 _ = screenPosAbs cfig (ldp ^. ldpPos) V2 x0 _ = screenPosAbs cfig (ldp ^. ldpPos)
guard (x - x0 < 150) -- HACK, should determine selection item width and offset below guard (x - x0 < 150) -- HACK, should determine selection item width and offset below
if l <= yint if l <= yint
then inverseSelSecYint (yint - l) (sss & sssSections .~ othersss) then inverseSelSecYint (yint - l) othersss
else do else do
let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss) let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss)
j <- L.fold (L.findIndex (\val -> val - _ssOffset ss > yint)) ls j <- L.fold (L.findIndex (\val -> val - _ssOffset ss > yint)) ls
@@ -186,7 +205,7 @@ inverseSelSecYintXPosCheck cfig ldp x yint sss = do
inverseSelNumPos :: inverseSelNumPos ::
Configuration -> Configuration ->
ListDisplayParams -> ListDisplayParams ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Point2 -> Point2 ->
Maybe (Int, Int) Maybe (Int, Int)
inverseSelNumPos cfig ldp sss (V2 x y) = inverseSelNumPos cfig ldp sss (V2 x y) =
@@ -195,7 +214,7 @@ inverseSelNumPos cfig ldp sss (V2 x y) =
inverseSelBoundaryUp :: inverseSelBoundaryUp ::
Configuration -> Configuration ->
ListDisplayParams -> ListDisplayParams ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Point2 -> Point2 ->
Maybe (Int, Int) Maybe (Int, Int)
inverseSelBoundaryUp cfig ldp sss (V2 _ y) = do inverseSelBoundaryUp cfig ldp sss (V2 _ y) = do
@@ -208,7 +227,7 @@ inverseSelBoundaryUp cfig ldp sss (V2 _ y) = do
inverseSelBoundaryDown :: inverseSelBoundaryDown ::
Configuration -> Configuration ->
ListDisplayParams -> ListDisplayParams ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Point2 -> Point2 ->
Maybe (Int, Int) Maybe (Int, Int)
inverseSelBoundaryDown cfig ldp sss (V2 _ y) = do inverseSelBoundaryDown cfig ldp sss (V2 _ y) = do
+4 -3
View File
@@ -9,9 +9,10 @@ import Dodge.Data.SelectionList
import Dodge.Render.List import Dodge.Render.List
import Dodge.ScreenPos import Dodge.ScreenPos
import Picture.Base import Picture.Base
import qualified Data.IntMap.Strict as IM
drawSelectionSections drawSelectionSections
:: SelectionSections a :: IM.IntMap (SelectionSection a)
-> ListDisplayParams -> ListDisplayParams
-> Configuration -> Configuration
-> Picture -> Picture
@@ -21,10 +22,10 @@ drawSelectionSections sss ldp cfig =
(_ldpVerticalGap ldp) (_ldpVerticalGap ldp)
(_ldpScale ldp) (_ldpScale ldp)
0 0
(foldMap _ssShownItems (_sssSections sss)) (foldMap _ssShownItems sss)
drawSSCursor drawSSCursor
:: SelectionSections a :: IM.IntMap (SelectionSection a)
-> Maybe (Int,Int) -> Maybe (Int,Int)
-> ListDisplayParams -> ListDisplayParams
-> CursorDisplay -> CursorDisplay
+7 -3
View File
@@ -301,7 +301,11 @@ updateMouseInventorySelection cfig w = fromMaybe w $ do
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . hudElement . diSections
return $ updateMouseInventorySelection' sss cfig w return $ updateMouseInventorySelection' sss cfig w
updateMouseInventorySelection' :: SelectionSections a -> Configuration -> World -> World updateMouseInventorySelection' ::
IM.IntMap (SelectionSection a) ->
Configuration ->
World ->
World
updateMouseInventorySelection' sss cfig w updateMouseInventorySelection' sss cfig w
| leftclickstart = case msel of | leftclickstart = case msel of
Nothing -> fromMaybe w $ do Nothing -> fromMaybe w $ do
@@ -350,7 +354,7 @@ shiftInvItems ::
Configuration -> Configuration ->
Point2 -> Point2 ->
ListDisplayParams -> ListDisplayParams ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
World -> World ->
World World
shiftInvItems topsel x cfig mpos ldp sss w = case inverseSelBoundaryUp cfig ldp sss mpos of shiftInvItems topsel x cfig mpos ldp sss w = case inverseSelBoundaryUp cfig ldp sss mpos of
@@ -368,7 +372,7 @@ shiftInvItemsUp (_, i) x w = foldl' f w [i .. i + x]
shiftInvItemsDown :: (Int, Int) -> Int -> World -> World shiftInvItemsDown :: (Int, Int) -> Int -> World -> World
shiftInvItemsDown (_, i) x w = fromMaybe w $ do shiftInvItemsDown (_, i) x w = fromMaybe w $ do
guard . isJust $ guard . isJust $
w ^? hud . hudElement . diSections . sssSections . ix 0 . ssItems . ix (i + x + 1) w ^? hud . hudElement . diSections . ix 0 . ssItems . ix (i + x + 1)
return $ foldl' f w $ reverse [i .. i + x] return $ foldl' f w $ reverse [i .. i + x]
where where
f w' i' = swapInvItems g i' w' f w' i' = swapInvItems g i' w'
+14 -11
View File
@@ -156,10 +156,10 @@ updateLongPressInGame uv sc = case sc of
doRegexInput :: doRegexInput ::
Input -> Input ->
Int -> Int ->
SelectionSections a -> IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) -> Maybe (Int, Int) ->
IM.IntMap (Maybe String) -> IM.IntMap (Maybe String) ->
(SelectionSections a, Maybe (Int, Int), IM.IntMap (Maybe String)) (IM.IntMap (SelectionSection a), Maybe (Int, Int), IM.IntMap (Maybe String))
doRegexInput inp i sss msel filts doRegexInput inp i sss msel filts
| backspacetonothing || escapekey = endregex i 0 | backspacetonothing || escapekey = endregex i 0
| endkeys || endmouse = endregex (i + 1) (j -1) | endkeys || endmouse = endregex (i + 1) (j -1)
@@ -170,13 +170,12 @@ doRegexInput inp i sss msel filts
) )
where where
endregex a b = endregex a b =
( sss ( sss & ix i . ssItems .~ mempty
& sssSections . ix i . ssItems .~ mempty
, msel & ssSetCursor (ssLookupDown a b) sss , msel & ssSetCursor (ssLookupDown a b) sss
, filts & ix i .~ Nothing , filts & ix i .~ Nothing
) )
j = fromMaybe 0 $ do j = fromMaybe 0 $ do
itms <- sss ^? sssSections . ix (i + 1) . ssItems itms <- sss ^? ix (i + 1) . ssItems
fst <$> IM.lookupMin itms fst <$> IM.lookupMin itms
escapekey = ScancodeEscape `M.lookup` pkeys == Just InitialPress escapekey = ScancodeEscape `M.lookup` pkeys == Just InitialPress
endkeys = endkeys =
@@ -208,7 +207,6 @@ updateBackspaceRegex w = case di ^? subInventory of
i <- di ^? diSelection . _Just . _1 i <- di ^? diSelection . _Just . _1
return $ i == a || i == b return $ i == a || i == b
trybackspace x he = fromMaybe he $ do trybackspace x he = fromMaybe he $ do
sss <- he ^? diSections
str <- he ^? diFilters . ix x . _Just str <- he ^? diFilters . ix x . _Just
return $ case str of return $ case str of
(_ : _) -> (_ : _) ->
@@ -216,7 +214,6 @@ updateBackspaceRegex w = case di ^? subInventory of
& diSelection ?~ (x, 0) & diSelection ?~ (x, 0)
[] -> he & diFilters . ix x .~ Nothing [] -> he & diFilters . ix x .~ Nothing
trybackspace' x ci = fromMaybe ci $ do trybackspace' x ci = fromMaybe ci $ do
sss <- ci ^? ciSections
str <- ci ^? ciFilters . ix x . _Just str <- ci ^? ciFilters . ix x . _Just
return $ case str of return $ case str of
(_ : _) -> (_ : _) ->
@@ -288,7 +285,8 @@ toggleMap u = case u ^. uvWorld . hud . hudElement of
toggleTweakInv :: World -> World toggleTweakInv :: World -> World
toggleTweakInv w = case w ^? hud . hudElement . subInventory of toggleTweakInv w = case w ^? hud . hudElement . subInventory of
Just ExamineInventory{} -> w Just ExamineInventory{} ->
w
& thepointer .~ NoSubInventory MouseInvNothing Nothing & thepointer .~ NoSubInventory MouseInvNothing Nothing
_ -> w & thepointer .~ ExamineInventory -- mi _ -> w & thepointer .~ ExamineInventory -- mi
where where
@@ -296,10 +294,14 @@ toggleTweakInv w = case w ^? hud . hudElement . subInventory of
-- mi = 0 <$ (yourSelectedItem w >>= (^? itTweaks . tweakParams . ix 0)) -- mi = 0 <$ (yourSelectedItem w >>= (^? itTweaks . tweakParams . ix 0))
tryCombine :: SelectionSections CombinableItem -> Maybe (Int, Int) -> World -> World tryCombine ::
IM.IntMap (SelectionSection CombinableItem) ->
Maybe (Int, Int) ->
World ->
World
tryCombine sss msel w = fromMaybe w $ do tryCombine sss msel w = fromMaybe w $ do
(i, j) <- msel (i, j) <- msel
CombinableItem is it _ <- sss ^? sssSections . ix i . ssItems . ix j . siPayload CombinableItem is it _ <- sss ^? ix i . ssItems . ix j . siPayload
return $ return $
snd (createItemYou it (foldr (destroyInvItem 0) w (sort is))) snd (createItemYou it (foldr (destroyInvItem 0) w (sort is)))
& cWorld . lWorld . creatures . ix 0 . crHammerPosition .~ HammerDown & cWorld . lWorld . creatures . ix 0 . crHammerPosition .~ HammerDown
@@ -307,5 +309,6 @@ tryCombine sss msel w = fromMaybe w $ do
maybeExitCombine :: Universe -> Universe maybeExitCombine :: Universe -> Universe
maybeExitCombine u maybeExitCombine u
| ButtonRight `M.member` (u ^. uvWorld . input . mouseButtons) = u | ButtonRight `M.member` (u ^. uvWorld . input . mouseButtons) = u
| otherwise = u & uvWorld . hud . hudElement . subInventory | otherwise =
u & uvWorld . hud . hudElement . subInventory
.~ NoSubInventory MouseInvNothing Nothing .~ NoSubInventory MouseInvNothing Nothing
+53 -60
View File
@@ -691,7 +691,7 @@ FetchItem src/Dodge/Data/Scenario.hs 11;" C
Fixated src/Dodge/Data/Creature/Perception.hs 62;" C Fixated src/Dodge/Data/Creature/Perception.hs 62;" C
FixedCoordLayer src/Picture/Data.hs 28;" C FixedCoordLayer src/Picture/Data.hs 28;" C
FixedRate src/Dodge/Data/Item/HeldDelay.hs 15;" C FixedRate src/Dodge/Data/Item/HeldDelay.hs 15;" C
FixedSelectionWidth src/Dodge/Data/SelectionList.hs 65;" C FixedSelectionWidth src/Dodge/Data/SelectionList.hs 57;" C
FlIt src/Dodge/Data/FloorItem.hs 16;" C FlIt src/Dodge/Data/FloorItem.hs 16;" C
Flame src/Dodge/Data/Flame.hs 14;" t Flame src/Dodge/Data/Flame.hs 14;" t
Flame src/Dodge/Data/Flame.hs 6;" m Flame src/Dodge/Data/Flame.hs 6;" m
@@ -1637,7 +1637,6 @@ SPRING src/Dodge/Data/Item/Combine.hs 31;" C
SPic src/ShapePicture/Data.hs 7;" t SPic src/ShapePicture/Data.hs 7;" t
SPic src/Dodge/Item/Draw/SPic.hs 3;" m SPic src/Dodge/Item/Draw/SPic.hs 3;" m
SQUARE src/Dodge/Data/GenParams.hs 20;" C SQUARE src/Dodge/Data/GenParams.hs 20;" C
SSSExtra src/Dodge/Data/SelectionList.hs 44;" t
ST src/Dodge/Tree/Compose/Data.hs 12;" C ST src/Dodge/Tree/Compose/Data.hs 12;" C
STEELDRUM src/Dodge/Data/Item/Combine.hs 36;" C STEELDRUM src/Dodge/Data/Item/Combine.hs 36;" C
STOPWATCH src/Dodge/Data/Item/Combine.hs 121;" C STOPWATCH src/Dodge/Data/Item/Combine.hs 121;" C
@@ -1660,7 +1659,7 @@ ScreenPos src/Dodge/ScreenPos.hs 1;" m
Scroll src/Dodge/Update/Scroll.hs 1;" m Scroll src/Dodge/Update/Scroll.hs 1;" m
ScrollValue src/Dodge/ScrollValue.hs 1;" m ScrollValue src/Dodge/ScrollValue.hs 1;" m
SecretCabal src/Dodge/Data/Scenario.hs 44;" C SecretCabal src/Dodge/Data/Scenario.hs 44;" C
SectionCursor src/Dodge/Data/SelectionList.hs 48;" t SectionCursor src/Dodge/Data/SelectionList.hs 40;" t
SeeAbove src/Dodge/Data/Wall.hs 40;" C SeeAbove src/Dodge/Data/Wall.hs 40;" C
SeeThrough src/Dodge/Data/Wall.hs 39;" C SeeThrough src/Dodge/Data/Wall.hs 39;" C
SelCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" C SelCloseObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 30;" C
@@ -1668,17 +1667,16 @@ SelNothing src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 28;" C
SelectUse src/Dodge/SelectUse.hs 1;" m SelectUse src/Dodge/SelectUse.hs 1;" m
Select_creature src/Dodge/Data/Config.hs 92;" C Select_creature src/Dodge/Data/Config.hs 92;" C
SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" C SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" C
SelectionInfo src/Dodge/Data/SelectionList.hs 78;" C SelectionInfo src/Dodge/Data/SelectionList.hs 70;" C
SelectionItem src/Dodge/Data/SelectionList.hs 69;" t SelectionItem src/Dodge/Data/SelectionList.hs 61;" t
SelectionList src/Dodge/Data/SelectionList.hs 31;" t SelectionList src/Dodge/Data/SelectionList.hs 31;" t
SelectionList src/Dodge/Data/SelectionList.hs 6;" m SelectionList src/Dodge/Data/SelectionList.hs 6;" m
SelectionList src/Dodge/Default/SelectionList.hs 1;" m SelectionList src/Dodge/Default/SelectionList.hs 1;" m
SelectionList src/Dodge/Inventory/SelectionList.hs 2;" m SelectionList src/Dodge/Inventory/SelectionList.hs 2;" m
SelectionList src/Dodge/SelectionList.hs 1;" m SelectionList src/Dodge/SelectionList.hs 1;" m
SelectionSection src/Dodge/Data/SelectionList.hs 54;" t SelectionSection src/Dodge/Data/SelectionList.hs 46;" t
SelectionSections src/Dodge/Data/SelectionList.hs 36;" t
SelectionSections src/Dodge/SelectionSections.hs 1;" m SelectionSections src/Dodge/SelectionSections.hs 1;" m
SelectionWidth src/Dodge/Data/SelectionList.hs 64;" t SelectionWidth src/Dodge/Data/SelectionList.hs 56;" t
SelfTree src/Dodge/Tree/Compose/Data.hs 12;" 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 16;" t
Sensor src/Dodge/Data/Machine/Sensor.hs 6;" m Sensor src/Dodge/Data/Machine/Sensor.hs 6;" m
@@ -2020,7 +2018,7 @@ UseHeld src/Dodge/Data/Item/Use.hs 36;" C
UseHotkey src/Dodge/Data/Item/Use.hs 44;" C UseHotkey src/Dodge/Data/Item/Use.hs 44;" C
UseItem src/Dodge/Data/ActionPlan.hs 37;" C UseItem src/Dodge/Data/ActionPlan.hs 37;" C
UseItem src/Dodge/Creature/Impulse/UseItem.hs 1;" m UseItem src/Dodge/Creature/Impulse/UseItem.hs 1;" m
UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 67;" C UseMaxSelectionItemWidth src/Dodge/Data/SelectionList.hs 59;" C
UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C UseMvTargetPos src/Dodge/Data/ActionPlan.hs 163;" C
UseScope src/Dodge/Data/Item/Use.hs 60;" C UseScope src/Dodge/Data/Item/Use.hs 60;" C
UseSelf src/Dodge/Data/ActionPlan.hs 157;" C UseSelf src/Dodge/Data/ActionPlan.hs 157;" C
@@ -2034,7 +2032,7 @@ VBO src/Shader/Data.hs 81;" t
VF src/Polyhedra/Data.hs 21;" t VF src/Polyhedra/Data.hs 21;" t
VIOLET src/Color/Data.hs 22;" C VIOLET src/Color/Data.hs 22;" C
VOLLEYGUN src/Dodge/Data/Item/Combine.hs 139;" C VOLLEYGUN src/Dodge/Data/Item/Combine.hs 139;" C
VariableSelectionWidth src/Dodge/Data/SelectionList.hs 66;" C VariableSelectionWidth src/Dodge/Data/SelectionList.hs 58;" C
Vector src/Geometry/Vector.hs 3;" m Vector src/Geometry/Vector.hs 3;" m
Vector3D src/Geometry/Vector3D.hs 2;" m Vector3D src/Geometry/Vector3D.hs 2;" m
VertexAttribute src/Shader/Data.hs 68;" t VertexAttribute src/Shader/Data.hs 68;" t
@@ -2992,9 +2990,9 @@ _scrollSmoothing src/Dodge/Data/World.hs 63;" f
_scrollSmoothing src/Dodge/Data/World.hs 69;" f _scrollSmoothing src/Dodge/Data/World.hs 69;" f
_scrollTestFloat src/Dodge/Data/Input.hs 31;" f _scrollTestFloat src/Dodge/Data/Input.hs 31;" f
_scrollTestInt src/Dodge/Data/Input.hs 32;" f _scrollTestInt src/Dodge/Data/Input.hs 32;" f
_scurColor src/Dodge/Data/SelectionList.hs 51;" f _scurColor src/Dodge/Data/SelectionList.hs 43;" f
_scurPos src/Dodge/Data/SelectionList.hs 49;" f _scurPos src/Dodge/Data/SelectionList.hs 41;" f
_scurSize src/Dodge/Data/SelectionList.hs 50;" f _scurSize src/Dodge/Data/SelectionList.hs 42;" f
_seenLocations src/Dodge/Data/LWorld.hs 139;" f _seenLocations src/Dodge/Data/LWorld.hs 139;" f
_seenWalls src/Dodge/Data/CWorld.hs 29;" f _seenWalls src/Dodge/Data/CWorld.hs 29;" f
_selLocation src/Dodge/Data/LWorld.hs 140;" f _selLocation src/Dodge/Data/LWorld.hs 140;" f
@@ -3020,17 +3018,17 @@ _shapeHalfSize src/Shape/Data.hs 18;" f
_shapeShader src/Data/Preload/Render.hs 25;" f _shapeShader src/Data/Preload/Render.hs 25;" f
_shockwaves src/Dodge/Data/LWorld.hs 114;" f _shockwaves src/Dodge/Data/LWorld.hs 114;" f
_shrinkGunStatus src/Dodge/Data/Item/Params.hs 18;" f _shrinkGunStatus src/Dodge/Data/Item/Params.hs 18;" f
_siColor src/Dodge/Data/SelectionList.hs 66;" f
_siColor src/Dodge/Data/SelectionList.hs 74;" f _siColor src/Dodge/Data/SelectionList.hs 74;" f
_siColor src/Dodge/Data/SelectionList.hs 82;" f _siHeight src/Dodge/Data/SelectionList.hs 64;" f
_siHeight src/Dodge/Data/SelectionList.hs 72;" f _siHeight src/Dodge/Data/SelectionList.hs 72;" f
_siHeight src/Dodge/Data/SelectionList.hs 80;" f _siIsSelectable src/Dodge/Data/SelectionList.hs 65;" f
_siIsSelectable src/Dodge/Data/SelectionList.hs 73;" f _siIsSelectable src/Dodge/Data/SelectionList.hs 73;" f
_siIsSelectable src/Dodge/Data/SelectionList.hs 81;" f _siOffX src/Dodge/Data/SelectionList.hs 67;" f
_siOffX src/Dodge/Data/SelectionList.hs 75;" f _siOffX src/Dodge/Data/SelectionList.hs 75;" f
_siOffX src/Dodge/Data/SelectionList.hs 83;" f _siPayload src/Dodge/Data/SelectionList.hs 68;" f
_siPayload src/Dodge/Data/SelectionList.hs 76;" f _siPictures src/Dodge/Data/SelectionList.hs 63;" f
_siPictures src/Dodge/Data/SelectionList.hs 71;" f _siPictures src/Dodge/Data/SelectionList.hs 71;" f
_siPictures src/Dodge/Data/SelectionList.hs 79;" f
_sideEffect src/Loop/Data.hs 13;" f _sideEffect src/Loop/Data.hs 13;" f
_sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f _sideImpulses src/Dodge/Data/ActionPlan.hs 170;" f
_sidePush src/Dodge/Data/Item/Use.hs 87;" f _sidePush src/Dodge/Data/Item/Use.hs 87;" f
@@ -3062,15 +3060,13 @@ _spPixelOff src/Dodge/Data/ScreenPos.hs 11;" f
_spScreenOff src/Dodge/Data/ScreenPos.hs 10;" f _spScreenOff src/Dodge/Data/ScreenPos.hs 10;" f
_sparks src/Dodge/Data/LWorld.hs 110;" f _sparks src/Dodge/Data/LWorld.hs 110;" f
_spawnEBT src/Dodge/Data/Bullet.hs 43;" f _spawnEBT src/Dodge/Data/Bullet.hs 43;" f
_ssCursor src/Dodge/Data/SelectionList.hs 56;" f _ssCursor src/Dodge/Data/SelectionList.hs 48;" f
_ssDescriptor src/Dodge/Data/SelectionList.hs 61;" f _ssDescriptor src/Dodge/Data/SelectionList.hs 53;" f
_ssIndent src/Dodge/Data/SelectionList.hs 60;" f _ssIndent src/Dodge/Data/SelectionList.hs 52;" f
_ssItems src/Dodge/Data/SelectionList.hs 55;" f _ssItems src/Dodge/Data/SelectionList.hs 47;" f
_ssMinSize src/Dodge/Data/SelectionList.hs 57;" f _ssMinSize src/Dodge/Data/SelectionList.hs 49;" f
_ssOffset src/Dodge/Data/SelectionList.hs 58;" f _ssOffset src/Dodge/Data/SelectionList.hs 50;" f
_ssShownItems src/Dodge/Data/SelectionList.hs 59;" f _ssShownItems src/Dodge/Data/SelectionList.hs 51;" f
_sssFilters src/Dodge/Data/SelectionList.hs 45;" f
_sssSections src/Dodge/Data/SelectionList.hs 37;" f
_strength src/Dodge/Data/Creature/Misc.hs 21;" f _strength src/Dodge/Data/Creature/Misc.hs 21;" f
_strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f _strideAmount src/Dodge/Data/Creature/Stance.hs 22;" f
_strideLength src/Dodge/Data/Creature/Stance.hs 16;" f _strideLength src/Dodge/Data/Creature/Stance.hs 16;" f
@@ -3852,7 +3848,7 @@ defaultBounds src/Dodge/Data/Bounds.hs 20;" f
defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f
defaultBulletWeapon src/Dodge/Default/Item.hs 47;" f defaultBulletWeapon src/Dodge/Default/Item.hs 47;" f
defaultButton src/Dodge/Default.hs 51;" f defaultButton src/Dodge/Default.hs 51;" f
defaultCOSection src/Dodge/Default/World.hs 208;" f defaultCOSection src/Dodge/Default/World.hs 204;" f
defaultCWCam src/Dodge/Default/World.hs 65;" f defaultCWCam src/Dodge/Default/World.hs 65;" f
defaultCWGen src/Dodge/Default/World.hs 55;" f defaultCWGen src/Dodge/Default/World.hs 55;" f
defaultCWorld src/Dodge/Default/World.hs 80;" f defaultCWorld src/Dodge/Default/World.hs 80;" f
@@ -3876,7 +3872,7 @@ defaultDrawButton src/Dodge/Button/Draw.hs 28;" f
defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f
defaultEquipUse src/Dodge/Default/Item/Use.hs 23;" f defaultEquipUse src/Dodge/Default/Item/Use.hs 23;" f
defaultEquipment src/Dodge/Default.hs 27;" f defaultEquipment src/Dodge/Default.hs 27;" f
defaultFiltSection src/Dodge/Default/World.hs 214;" f defaultFiltSection src/Dodge/Default/World.hs 210;" f
defaultFlIt src/Dodge/Default.hs 30;" f defaultFlIt src/Dodge/Default.hs 30;" f
defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" f
defaultHUD src/Dodge/Default/World.hs 151;" f defaultHUD src/Dodge/Default/World.hs 151;" f
@@ -3886,8 +3882,8 @@ defaultImpulsive src/Dodge/Humanoid.hs 190;" f
defaultInanimate src/Dodge/Default/Creature.hs 69;" f defaultInanimate src/Dodge/Default/Creature.hs 69;" f
defaultInput src/Dodge/Default/World.hs 14;" f defaultInput src/Dodge/Default/World.hs 14;" f
defaultIntention src/Dodge/Default/Creature.hs 105;" f defaultIntention src/Dodge/Default/Creature.hs 105;" f
defaultInvSection src/Dodge/Default/World.hs 221;" f defaultInvSection src/Dodge/Default/World.hs 217;" f
defaultInvSections src/Dodge/Default/World.hs 179;" f defaultInvSections src/Dodge/Default/World.hs 180;" f
defaultInvSize src/Dodge/Default/Creature.hs 79;" f defaultInvSize src/Dodge/Default/Creature.hs 79;" f
defaultItEffect src/Dodge/Default/Item.hs 55;" f defaultItEffect src/Dodge/Default/Item.hs 55;" f
defaultItEffect src/Dodge/Default/Item/Effect.hs 5;" f defaultItEffect src/Dodge/Default/Item/Effect.hs 5;" f
@@ -3906,8 +3902,7 @@ defaultPerceptionState src/Dodge/Default/Creature.hs 82;" f
defaultProp src/Dodge/Default/Prop.hs 6;" f defaultProp src/Dodge/Default/Prop.hs 6;" f
defaultProximitySensor src/Dodge/Default.hs 80;" f defaultProximitySensor src/Dodge/Default.hs 80;" f
defaultRoom src/Dodge/Default/Room.hs 9;" f defaultRoom src/Dodge/Default/Room.hs 9;" f
defaultSS src/Dodge/Default/World.hs 196;" f defaultSS src/Dodge/Default/World.hs 192;" f
defaultSSSExtra src/Dodge/Default/World.hs 173;" f
defaultSelectionList src/Dodge/Default/SelectionList.hs 5;" f defaultSelectionList src/Dodge/Default/SelectionList.hs 5;" f
defaultSensorWall src/Dodge/Default/Wall.hs 58;" f defaultSensorWall src/Dodge/Default/Wall.hs 58;" f
defaultState src/Dodge/Default/Creature.hs 140;" f defaultState src/Dodge/Default/Creature.hs 140;" f
@@ -3919,7 +3914,7 @@ defaultVision src/Dodge/Default/Creature.hs 92;" f
defaultWall src/Dodge/Default/Wall.hs 10;" f defaultWall src/Dodge/Default/Wall.hs 10;" f
defaultWindow src/Dodge/Default/Wall.hs 74;" f defaultWindow src/Dodge/Default/Wall.hs 74;" f
defaultWorld src/Dodge/Default/World.hs 32;" f defaultWorld src/Dodge/Default/World.hs 32;" f
defaultYouSection src/Dodge/Default/World.hs 226;" f defaultYouSection src/Dodge/Default/World.hs 222;" f
defocusTerminalInput src/Dodge/Terminal/LeftButton.hs 20;" f defocusTerminalInput src/Dodge/Terminal/LeftButton.hs 20;" f
degToRad src/Geometry/Vector.hs 117;" f degToRad src/Geometry/Vector.hs 117;" f
deleteIMInZone src/Dodge/Base.hs 70;" f deleteIMInZone src/Dodge/Base.hs 70;" f
@@ -4019,7 +4014,7 @@ doPropUpdates src/Dodge/Prop/Update.hs 36;" f
doQuickload src/Dodge/Save.hs 82;" f doQuickload src/Dodge/Save.hs 82;" f
doQuicksave src/Dodge/Save.hs 77;" f doQuicksave src/Dodge/Save.hs 77;" f
doRandImpulse src/Dodge/RandImpulse.hs 7;" f doRandImpulse src/Dodge/RandImpulse.hs 7;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 152;" f doRegexInput src/Dodge/Update/Input/InGame.hs 156;" f
doRoomInPlacements src/Dodge/Layout.hs 97;" f doRoomInPlacements src/Dodge/Layout.hs 97;" f
doRoomOutPlacements src/Dodge/Layout.hs 107;" f doRoomOutPlacements src/Dodge/Layout.hs 107;" f
doRoomPlacements src/Dodge/Layout.hs 122;" f doRoomPlacements src/Dodge/Layout.hs 122;" f
@@ -4485,14 +4480,14 @@ icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f
ifConfigWallRotate src/Dodge/Update/Camera.hs 171;" f ifConfigWallRotate src/Dodge/Update/Camera.hs 171;" f
ildtPropagate src/Dodge/DoubleTree.hs 57;" f ildtPropagate src/Dodge/DoubleTree.hs 57;" f
impulsiveAIBefore src/Dodge/Creature/Impulse.hs 22;" f impulsiveAIBefore src/Dodge/Creature/Impulse.hs 22;" f
inCloseRegex src/Dodge/InputFocus.hs 96;" f inCloseRegex src/Dodge/InputFocus.hs 95;" f
inInputFocus src/Dodge/InputFocus.hs 60;" f inInputFocus src/Dodge/InputFocus.hs 59;" f
inInvRegex src/Dodge/InputFocus.hs 93;" f inInvRegex src/Dodge/InputFocus.hs 92;" f
inLink src/Dodge/RoomLink.hs 113;" f inLink src/Dodge/RoomLink.hs 113;" f
inSegArea src/Geometry/Intersect.hs 298;" f inSegArea src/Geometry/Intersect.hs 298;" f
inSubInvRegex src/Dodge/InputFocus.hs 99;" f inSubInvRegex src/Dodge/InputFocus.hs 98;" f
inTermFocus src/Dodge/InputFocus.hs 18;" f inTermFocus src/Dodge/InputFocus.hs 17;" f
inTopRegex src/Dodge/InputFocus.hs 88;" f inTopRegex src/Dodge/InputFocus.hs 87;" f
incBallAt src/Dodge/EnergyBall.hs 54;" f incBallAt src/Dodge/EnergyBall.hs 54;" f
incidenceToFunction src/Dodge/Graph.hs 26;" f incidenceToFunction src/Dodge/Graph.hs 26;" f
indefiniteExceptions src/StringHelp.hs 29;" f indefiniteExceptions src/StringHelp.hs 29;" f
@@ -4519,8 +4514,8 @@ initializeOptionMenu src/Dodge/Menu/Option.hs 14;" f
initializeOptionMenuBO src/Dodge/Menu/Option.hs 29;" f initializeOptionMenuBO src/Dodge/Menu/Option.hs 29;" f
initializeTexture2D src/Framebuffer/Update.hs 221;" f initializeTexture2D src/Framebuffer/Update.hs 221;" f
inorderNumberTree src/TreeHelp.hs 189;" f inorderNumberTree src/TreeHelp.hs 189;" f
inputFocus src/Dodge/InputFocus.hs 66;" f inputFocus src/Dodge/InputFocus.hs 65;" f
inputFocusI src/Dodge/InputFocus.hs 63;" f inputFocusI src/Dodge/InputFocus.hs 62;" f
insertAt src/Padding.hs 60;" f insertAt src/Padding.hs 60;" f
insertIMInZone src/Dodge/Base.hs 59;" f insertIMInZone src/Dodge/Base.hs 59;" f
insertInTrie src/SimpleTrie.hs 23;" f insertInTrie src/SimpleTrie.hs 23;" f
@@ -4858,7 +4853,7 @@ maybeClearPath src/Dodge/Block.hs 77;" f
maybeClearPaths src/Dodge/Block.hs 74;" f maybeClearPaths src/Dodge/Block.hs 74;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 31;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 299;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 307;" f
maybeOpenTerminal src/Dodge/Update.hs 116;" f maybeOpenTerminal src/Dodge/Update.hs 116;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 111;" f maybeTakeOne src/RandomHelp.hs 111;" f
@@ -5087,7 +5082,7 @@ parseNum src/Dodge/Debug/Terminal.hs 73;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f pathConnected src/Dodge/Room/CheckConsistency.hs 14;" f
pathEdgeObstructed src/Dodge/Path.hs 43;" f pathEdgeObstructed src/Dodge/Path.hs 43;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 242;" f pauseGame src/Dodge/Update/Input/InGame.hs 249;" f
pauseMenu src/Dodge/Menu.hs 53;" f pauseMenu src/Dodge/Menu.hs 53;" f
pauseMenuOptions src/Dodge/Menu.hs 58;" f pauseMenuOptions src/Dodge/Menu.hs 58;" f
pauseSound src/Dodge/SoundLogic.hs 41;" f pauseSound src/Dodge/SoundLogic.hs 41;" f
@@ -5373,11 +5368,9 @@ reflectLaserAlong src/Dodge/Item/Weapon/LaserPath.hs 13;" f
refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f refract src/Dodge/Item/Weapon/LaserPath.hs 40;" f
refreshOptionsSelectionList src/Dodge/Menu/Option.hs 34;" f refreshOptionsSelectionList src/Dodge/Menu/Option.hs 34;" f
regexCombs src/Dodge/DisplayInventory.hs 67;" f regexCombs src/Dodge/DisplayInventory.hs 67;" f
regexFocus src/Dodge/InputFocus.hs 43;" f
regexIn src/Regex.hs 4;" f regexIn src/Regex.hs 4;" f
regexList src/Dodge/DisplayInventory.hs 291;" f regexList src/Dodge/DisplayInventory.hs 291;" f
regexList src/Regex.hs 7;" f regexList src/Regex.hs 7;" f
regexScope src/Dodge/InputFocus.hs 25;" f
reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f
reloadLevelStart src/Dodge/Save.hs 71;" f reloadLevelStart src/Dodge/Save.hs 71;" f
reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f reloadS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 426;" f
@@ -5745,7 +5738,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
soundWithStatus src/Dodge/SoundLogic.hs 98;" f soundWithStatus src/Dodge/SoundLogic.hs 98;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 85;" f
spaceAction src/Dodge/Update/Input/InGame.hs 245;" f spaceAction src/Dodge/Update/Input/InGame.hs 252;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 186;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 186;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 179;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 179;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 171;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 171;" f
@@ -5936,8 +5929,8 @@ toggleCombineInv src/Dodge/DisplayInventory.hs 27;" f
toggleCommand src/Dodge/Terminal.hs 194;" f toggleCommand src/Dodge/Terminal.hs 194;" f
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 75;" f toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 75;" f
toggleJust src/MaybeHelp.hs 41;" f toggleJust src/MaybeHelp.hs 41;" f
toggleMap src/Dodge/Update/Input/InGame.hs 269;" f toggleMap src/Dodge/Update/Input/InGame.hs 276;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 281;" f toggleTweakInv src/Dodge/Update/Input/InGame.hs 289;" f
togglesToEffects src/Dodge/Terminal.hs 245;" f togglesToEffects src/Dodge/Terminal.hs 245;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" f tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" f
tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 430;" f tone440sawtoothS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 430;" f
@@ -6008,7 +6001,7 @@ trunkDepth src/TreeHelp.hs 161;" f
tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f tryAssignHotkey src/Dodge/Creature/YourControl.hs 85;" f
tryAttachBulletBelt src/Dodge/Euse.hs 40;" f tryAttachBulletBelt src/Dodge/Euse.hs 40;" f
tryChargeBattery src/Dodge/Euse.hs 43;" f tryChargeBattery src/Dodge/Euse.hs 43;" f
tryCombine src/Dodge/Update/Input/InGame.hs 291;" f tryCombine src/Dodge/Update/Input/InGame.hs 299;" f
tryGetChannel src/Sound.hs 96;" f tryGetChannel src/Sound.hs 96;" f
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 19;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 19;" f
tryGetRootItemInvID src/Dodge/Inventory/Location.hs 28;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 28;" f
@@ -6054,7 +6047,7 @@ updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla/Arc.hs 86;" f updateArc src/Dodge/Tesla/Arc.hs 86;" f
updateAttachedItems src/Dodge/Creature/State.hs 173;" f updateAttachedItems src/Dodge/Creature/State.hs 173;" f
updateAutoRecharge src/Dodge/Creature/State.hs 324;" f updateAutoRecharge src/Dodge/Creature/State.hs 324;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 185;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 192;" f
updateBarrel src/Dodge/Barreloid.hs 45;" f updateBarrel src/Dodge/Barreloid.hs 45;" f
updateBarreloid src/Dodge/Barreloid.hs 13;" f updateBarreloid src/Dodge/Barreloid.hs 13;" f
updateBounds src/Dodge/Update/Camera.hs 245;" f updateBounds src/Dodge/Update/Camera.hs 245;" f
@@ -6077,7 +6070,7 @@ updateDistortion src/Dodge/Distortion.hs 5;" f
updateDistortions src/Dodge/Update.hs 513;" f updateDistortions src/Dodge/Update.hs 513;" f
updateEnergyBall src/Dodge/EnergyBall.hs 46;" f updateEnergyBall src/Dodge/EnergyBall.hs 46;" f
updateEnergyBalls src/Dodge/Update.hs 540;" f updateEnergyBalls src/Dodge/Update.hs 540;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 221;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 228;" f
updateExpBarrel src/Dodge/Barreloid.hs 19;" f updateExpBarrel src/Dodge/Barreloid.hs 19;" f
updateFBOTO src/Framebuffer/Update.hs 97;" f updateFBOTO src/Framebuffer/Update.hs 97;" f
updateFBOTO3 src/Framebuffer/Update.hs 131;" f updateFBOTO3 src/Framebuffer/Update.hs 131;" f
@@ -6091,20 +6084,20 @@ updateHumanoid src/Dodge/Humanoid.hs 12;" f
updateIMl src/Dodge/Update.hs 482;" f updateIMl src/Dodge/Update.hs 482;" f
updateIMl' src/Dodge/Update.hs 487;" f updateIMl' src/Dodge/Update.hs 487;" f
updateInGameCamera src/Dodge/Update/Camera.hs 70;" f updateInGameCamera src/Dodge/Update/Camera.hs 70;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 126;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 130;" f
updateInstantBullets src/Dodge/Update.hs 629;" f updateInstantBullets src/Dodge/Update.hs 629;" f
updateInv src/Dodge/Creature/State.hs 152;" f updateInv src/Dodge/Creature/State.hs 152;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 85;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 85;" f
updateItemTargeting src/Dodge/Creature/State.hs 268;" f updateItemTargeting src/Dodge/Creature/State.hs 268;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 120;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 124;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 109;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 113;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f updateLampoid src/Dodge/Lampoid.hs 12;" f
updateLaser src/Dodge/Laser/Update.hs 13;" f updateLaser src/Dodge/Laser/Update.hs 13;" f
updateLasers src/Dodge/Update.hs 411;" f updateLasers src/Dodge/Update.hs 411;" f
updateLightSources src/Dodge/Update.hs 516;" f updateLightSources src/Dodge/Update.hs 516;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 146;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 150;" f
updateMIM src/Dodge/Update.hs 642;" f updateMIM src/Dodge/Update.hs 642;" f
updateMachine src/Dodge/Machine/Update.hs 16;" f updateMachine src/Dodge/Machine/Update.hs 16;" f
updateMouseInventorySelection src/Dodge/Update.hs 299;" f updateMouseInventorySelection src/Dodge/Update.hs 299;" f
@@ -6117,8 +6110,8 @@ updatePastWorlds src/Dodge/Update.hs 399;" f
updatePosEvent src/Dodge/PosEvent.hs 11;" f updatePosEvent src/Dodge/PosEvent.hs 11;" f
updatePosEvents src/Dodge/Update.hs 549;" f updatePosEvents src/Dodge/Update.hs 549;" f
updatePreload src/Preload/Update.hs 20;" f updatePreload src/Preload/Update.hs 20;" f
updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 84;" f updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 88;" f
updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 87;" f updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 91;" f
updateProjectile src/Dodge/Projectile/Update.hs 23;" f updateProjectile src/Dodge/Projectile/Update.hs 23;" f
updateProp src/Dodge/Prop/Update.hs 11;" f updateProp src/Dodge/Prop/Update.hs 11;" f
updateRBList src/Dodge/Inventory/RBList.hs 16;" f updateRBList src/Dodge/Inventory/RBList.hs 16;" f