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]
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
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
All good (595 modules, at 22:15:48)
+1 -1
View File
@@ -185,7 +185,7 @@ youDropItem :: World -> World
youDropItem w = fromMaybe w $ do
curpos <-
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)
return $
w
+2 -2
View File
@@ -16,7 +16,7 @@ import Geometry.Data
data HUDElement
= DisplayInventory
{ _subInventory :: SubInventory
, _diSections :: SelectionSections ()
, _diSections :: IntMap (SelectionSection ())
, _diSelection :: Maybe (Int, Int)
, _diFilters :: IntMap (Maybe String)
, _diSelectionExtra :: Int
@@ -36,7 +36,7 @@ data SubInventory
}
| ExamineInventory
| CombineInventory
{ _ciSections :: SelectionSections CombinableItem
{ _ciSections :: IntMap (SelectionSection CombinableItem)
, _ciSelection :: Maybe (Int, Int)
, _ciFilters :: IntMap (Maybe String)
}
+4 -13
View File
@@ -33,17 +33,9 @@ data SelectionList a = SelectionList
, _slSelPos :: Maybe Int
}
data SelectionSections a = SelectionSections
{ _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 SelectionSections a = SelectionSections
-- { _sssSections :: IntMap (SelectionSection a)
-- }
data SectionCursor = SectionCursor
{ _scurPos :: Int
@@ -87,8 +79,7 @@ makeLenses ''ListDisplayParams
makeLenses ''SelectionList
makeLenses ''SelectionItem
makeLenses ''SelectionSection
makeLenses ''SelectionSections
makeLenses ''SSSExtra
--makeLenses ''SelectionSections
makeLenses ''SectionCursor
makeLenses ''CursorDisplay
+2 -7
View File
@@ -177,11 +177,8 @@ defaultDisplayInventory =
-- { _sssFilters = IM.fromList [(-1, mempty), (2, mempty)]
-- }
defaultInvSections :: SelectionSections ()
defaultInvSections =
SelectionSections
{ _sssSections =
IM.fromDistinctAscList $
defaultInvSections :: IM.IntMap (SelectionSection ())
defaultInvSections = IM.fromDistinctAscList $
zip
[-1 ..]
[ defaultFiltSection
@@ -191,8 +188,6 @@ defaultInvSections =
& ssDescriptor .~ "NEARBY"
, defaultCOSection
]
-- , _sssExtra = defaultSSSExtra
}
defaultSS :: SelectionSection a
defaultSS =
+21 -16
View File
@@ -36,10 +36,13 @@ updateCombinePositioning u =
u & uvWorld . hud . hudElement . subInventory . ciSections
%~ 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 =
sssSections
%~ updateSectionsPositioning
updateSectionsPositioning
mselpos
availablelines
[(0, showncombs), (-1, filtinv)]
@@ -49,11 +52,12 @@ updateCombineSections w cfig =
allcombs = IM.fromDistinctAscList $ zip [0 ..] $ combineList w
filtcombs = fromMaybe allcombs $ do
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
showncombs
| null filtcombs = IM.singleton 0
$ SelectionInfo ["No possible combinations"] 1 False white 0
| null filtcombs =
IM.singleton 0 $
SelectionInfo ["No possible combinations"] 1 False white 0
| otherwise = filtcombs
filtinv = fromMaybe mempty $ do
str <- mstr
@@ -90,14 +94,14 @@ updateInventoryPositioning u =
updateDisplaySections ::
World ->
Configuration ->
SelectionSections () ->
SelectionSections ()
IM.IntMap (SelectionSection ()) ->
IM.IntMap (SelectionSection ())
updateDisplaySections w cfig sss =
sss & sssSections
%~ updateSectionsPositioning
updateSectionsPositioning
mselpos
availablelines
addorder
sss
where
mselpos = w ^? hud . hudElement . diSelection . _Just
addorder = case mselpos of
@@ -246,17 +250,18 @@ listSelectionColorPicture = foldMap f
g str = (_siColor si, translate indent 0 . color (_siColor si) $ text str)
enterCombineInv :: Configuration -> World -> World
enterCombineInv cfig w = w & hud . hudElement . subInventory .~ CombineInventory sss selpos
(IM.singleton (-1) Nothing)
enterCombineInv cfig w =
w & hud . hudElement . subInventory
.~ CombineInventory
sss
selpos
(IM.singleton (-1) Nothing)
where
cm' = IM.fromDistinctAscList . zip [0 ..] $ combineList w
cm
| null cm' = IM.singleton 0 $ SelectionInfo ["No possible combinations"] 1 False white 0
| otherwise = cm'
sss =
SelectionSections
{ _sssSections = IM.fromDistinctAscList [(-1, filtsection), (0, combsection)]
}
sss = IM.fromDistinctAscList [(-1, filtsection), (0, combsection)]
selpos
| null cm' = Nothing
| otherwise = Just (0, 0)
-1
View File
@@ -11,7 +11,6 @@ module Dodge.InputFocus (
import Control.Monad
import Data.Maybe
import Dodge.Data.SelectionList
import Dodge.Data.World
import LensHelp
+4 -4
View File
@@ -122,7 +122,7 @@ updateCloseObjects w =
case w ^? cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . ispCloseObject of
Just i
| 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)
_ -> id
filt = filter $ \obj -> dist ypos (closeObjPos obj) < 40 && hasButtonLOS ypos (closeObjPos obj) w
@@ -159,7 +159,7 @@ changeSwapClose ::
World ->
World
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
return $
w
@@ -176,7 +176,7 @@ swapInvItems ::
World ->
World
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
let updateselection = case w ^? hud . hudElement . diSelection . _Just of
Just (0, j) | j == k -> hud . hudElement . diSelection . _Just . _2 .~ i
@@ -239,5 +239,5 @@ selectedCloseObject :: World -> Maybe (Either FloorItem Button)
selectedCloseObject w = do
i <-
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
+21 -11
View File
@@ -56,7 +56,7 @@ drawHP cfig =
. show
. (^?! cWorld . lWorld . creatures . ix 0 . crHP)
drawInventory :: SelectionSections () -> World -> Configuration -> Picture
drawInventory :: IM.IntMap (SelectionSection ()) -> World -> Configuration -> Picture
drawInventory sss w cfig =
drawSelectionSections sss ldp 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)
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 =
invHead cfig "COMBINE"
<> drawSelectionSections sss secondColumnParams cfig
@@ -249,7 +253,7 @@ equipAllocString = \case
RemoveEquipment{} -> "TAKE OFF"
inventoryExtra ::
SelectionSections () ->
IM.IntMap (SelectionSection ()) ->
Configuration ->
World ->
IM.IntMap (Maybe (Int, Int), [Int], [Int]) ->
@@ -259,7 +263,13 @@ inventoryExtra sss cfig w =
. IM.foldMapWithKey (inventoryExtraH sss cfig w)
. 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
p <- snum i
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
combineInventoryExtra ::
SelectionSections CombinableItem ->
IM.IntMap (SelectionSection CombinableItem) ->
Maybe (Int, Int) ->
Configuration ->
World ->
@@ -276,7 +286,7 @@ combineInventoryExtra ::
combineInventoryExtra sss msel cfig w = fromMaybe mempty $ do
(i, j) <- msel
cpos <- selSecYint i j sss
si <- sss ^? sssSections . ix i . ssItems . ix j
si <- sss ^? ix i . ssItems . ix j
let col = _siColor si
mconcat
[ do
@@ -403,7 +413,7 @@ invHead cfig =
selNumPos ::
Configuration ->
ListDisplayParams ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Int ->
Int ->
Maybe Point2
@@ -427,14 +437,14 @@ selNumPosCardinal ::
CardinalEightPoint ->
Configuration ->
ListDisplayParams ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Int ->
Int ->
Maybe Point2
selNumPosCardinal card cfig ldp sss i j = do
ipos <- selSecYint 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)
return $
screenPosAbs cfig (ldp ^. ldpPos)
@@ -446,5 +456,5 @@ selNumPosCardinal card cfig ldp sss i j = do
s = _ldpScale ldp
ygap = _ldpVerticalGap ldp
selSecSelCol :: Int -> Int -> SelectionSections a -> Maybe Color
selSecSelCol i j sss = sss ^? sssSections . ix i . ssItems . ix j . siColor
selSecSelCol :: Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe Color
selSecSelCol i j sss = sss ^? ix i . ssItems . ix j . siColor
+5 -4
View File
@@ -14,6 +14,7 @@ module Dodge.Render.List (
selSecDrawCursorAt,
) where
import qualified Data.IntMap.Strict as IM
import Data.Maybe
import Dodge.Base.Window
import Dodge.Data.CardinalPoint
@@ -86,13 +87,13 @@ selSecDrawCursorAt ::
Int ->
ListDisplayParams ->
CursorDisplay ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
(Int, Int) ->
Picture
selSecDrawCursorAt xsize ldp curs sss (i, j) = fromMaybe mempty $ do
yint <- selSecYint i j sss
xint <- sss ^? sssSections . ix i . ssIndent
si <- sss ^? sssSections . ix i . ssItems . ix j
xint <- sss ^? ix i . ssIndent
si <- sss ^? ix i . ssItems . ix j
return $
listCursorChooseBorderScale
(ldp ^. ldpVerticalGap)
@@ -108,7 +109,7 @@ selSecDrawCursor ::
Int ->
ListDisplayParams ->
CursorDisplay ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) ->
Picture
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 Control.Lens
import Control.Monad
import Data.Foldable
import qualified Data.IntMap.Strict as IM
import Data.Maybe
import Dodge.Data.Config
import Dodge.Data.SelectionList
import Dodge.ScreenPos
import Geometry.Data
import Data.Foldable
scrollSelectionSections ::
Int ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) ->
Maybe (Int, Int)
scrollSelectionSections yi sss msel
@@ -41,18 +41,18 @@ scrollSelectionSections yi sss msel
-- return $ sss & sssExtra . sssSelPos ?~ (i, j)
ssScrollUsing ::
(Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a)) ->
SelectionSections a ->
(Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) ->
Maybe (Int, Int)
ssScrollUsing g =
ssScrollMinOnFail
g
. (sssSections %~ fmap (ssItems %~ IM.filter _siIsSelectable))
. fmap (ssItems %~ IM.filter _siIsSelectable)
ssScrollMinOnFail ::
(Int -> Int -> SelectionSections a -> Maybe (Int, Int, SelectionItem a)) ->
SelectionSections a ->
(Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) ->
Maybe (Int, Int)
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
ssSetCursor ::
(SelectionSections a -> Maybe (Int, Int, SelectionItem a)) ->
SelectionSections a ->
(IM.IntMap (SelectionSection a) -> Maybe (Int, Int, SelectionItem a)) ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) ->
Maybe (Int, Int)
ssSetCursor f sss msel = fromMaybe msel $ do
(i, j, _) <- f sss
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
(i, _) <- IM.lookupMax (sss ^. sssSections)
(i, _) <- IM.lookupMax 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
Nothing -> ssLookupMax sss
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
Nothing -> ssLookupMin sss
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
ss <- sss ^? sssSections . ix i
ss <- sss ^? ix i
(j', si) <- IM.lookupLT j (ss ^. ssItems)
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
(i', ss) <- IM.lookupLT i (sss ^. sssSections)
(i', ss) <- IM.lookupLT i sss
case IM.lookupMax (ss ^. ssItems) of
Just (j', si) -> return (i', j', si)
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
(i', ss) <- IM.lookupLE i (sss ^. sssSections)
(i', ss) <- IM.lookupLE i sss
case IM.lookupMax (ss ^. ssItems) of
Just (j', si) -> return (i', j', si)
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
(i, _) <- IM.lookupMin (sss ^. sssSections)
(i, _) <- IM.lookupMin 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
ss <- sss ^? sssSections . ix i
ss <- sss ^? ix i
(j', si) <- IM.lookupGT j (ss ^. ssItems)
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
(i', ss) <- IM.lookupGT i (sss ^. sssSections)
(i', ss) <- IM.lookupGT i sss
case IM.lookupMin (ss ^. ssItems) of
Just (j', si) -> return (i', j', si)
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
(i', ss) <- IM.lookupGE i (sss ^. sssSections)
(i', ss) <- IM.lookupGE i sss
case IM.lookupMin (ss ^. ssItems) of
Just (j', si) -> return (i', j', si)
Nothing -> ssLookupGT' i' sss
selSecSelSize :: Int -> Int -> SelectionSections a -> Maybe Int
selSecSelSize i j sss = fmap length $ sss ^? sssSections . ix i . ssItems . ix j . siPictures
selSecSelSize :: Int -> Int -> IM.IntMap (SelectionSection a) -> Maybe Int
selSecSelSize i j = fmap length . (^? ix i . ssItems . ix j . siPictures)
-- need to check that the vertical gap is correctly put in here
posSelSecYint :: Configuration -> ListDisplayParams -> Float -> Int
@@ -139,9 +158,9 @@ posSelSecYint cfig ldp y = floor $ (y0 - y) / (20 / ldp ^. ldpScale + ldp ^. ldp
where
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
ss <- sss ^? sssSections . ix i
ss <- sss ^? ix i
return . (secpos +)
. subtract (ss ^. ssOffset)
. sum
@@ -149,16 +168,16 @@ selSecYint i j sss = do
. fst
$ IM.split j (ss ^. ssItems)
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
-- 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
((i, ss), othersss) <- IM.minViewWithKey (_sssSections sss)
((i, ss), othersss) <- IM.minViewWithKey sss
let l = length $ _ssShownItems ss
if l <= yint
then inverseSelSecYint (yint - l) (sss & sssSections .~ othersss)
then inverseSelSecYint (yint - l) othersss
else do
let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss)
j <- L.fold (L.findIndex (\x -> x - _ssOffset ss > yint)) ls
@@ -169,15 +188,15 @@ inverseSelSecYintXPosCheck ::
ListDisplayParams ->
Float ->
Int ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int)
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
V2 x0 _ = screenPosAbs cfig (ldp ^. ldpPos)
guard (x - x0 < 150) -- HACK, should determine selection item width and offset below
if l <= yint
then inverseSelSecYint (yint - l) (sss & sssSections .~ othersss)
then inverseSelSecYint (yint - l) othersss
else do
let ls = L.postscan (L.premap _siHeight L.sum) (_ssItems ss)
j <- L.fold (L.findIndex (\val -> val - _ssOffset ss > yint)) ls
@@ -186,7 +205,7 @@ inverseSelSecYintXPosCheck cfig ldp x yint sss = do
inverseSelNumPos ::
Configuration ->
ListDisplayParams ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Point2 ->
Maybe (Int, Int)
inverseSelNumPos cfig ldp sss (V2 x y) =
@@ -195,7 +214,7 @@ inverseSelNumPos cfig ldp sss (V2 x y) =
inverseSelBoundaryUp ::
Configuration ->
ListDisplayParams ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Point2 ->
Maybe (Int, Int)
inverseSelBoundaryUp cfig ldp sss (V2 _ y) = do
@@ -208,7 +227,7 @@ inverseSelBoundaryUp cfig ldp sss (V2 _ y) = do
inverseSelBoundaryDown ::
Configuration ->
ListDisplayParams ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Point2 ->
Maybe (Int, Int)
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.ScreenPos
import Picture.Base
import qualified Data.IntMap.Strict as IM
drawSelectionSections
:: SelectionSections a
:: IM.IntMap (SelectionSection a)
-> ListDisplayParams
-> Configuration
-> Picture
@@ -21,10 +22,10 @@ drawSelectionSections sss ldp cfig =
(_ldpVerticalGap ldp)
(_ldpScale ldp)
0
(foldMap _ssShownItems (_sssSections sss))
(foldMap _ssShownItems sss)
drawSSCursor
:: SelectionSections a
:: IM.IntMap (SelectionSection a)
-> Maybe (Int,Int)
-> ListDisplayParams
-> CursorDisplay
+7 -3
View File
@@ -301,7 +301,11 @@ updateMouseInventorySelection cfig w = fromMaybe w $ do
sss <- w ^? hud . hudElement . diSections
return $ updateMouseInventorySelection' sss cfig w
updateMouseInventorySelection' :: SelectionSections a -> Configuration -> World -> World
updateMouseInventorySelection' ::
IM.IntMap (SelectionSection a) ->
Configuration ->
World ->
World
updateMouseInventorySelection' sss cfig w
| leftclickstart = case msel of
Nothing -> fromMaybe w $ do
@@ -350,7 +354,7 @@ shiftInvItems ::
Configuration ->
Point2 ->
ListDisplayParams ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
World ->
World
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 (_, i) x w = fromMaybe w $ do
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]
where
f w' i' = swapInvItems g i' w'
+17 -14
View File
@@ -70,7 +70,7 @@ updateUseInputInGame u = case u ^. uvWorld . hud . hudElement of
sss <- ci ^? ciSections
msel <- ci ^? ciSelection
filts <- ci ^? ciFilters
let (sss', msel',filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts
let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) (-1) sss msel filts
return $
ci & ciSections .~ sss'
& ciSelection .~ msel'
@@ -79,7 +79,7 @@ updateUseInputInGame u = case u ^. uvWorld . hud . hudElement of
sss <- di ^? diSections
msel <- di ^? diSelection
filts <- di ^? diFilters
let (sss', msel',filts') = doRegexInput (u ^. uvWorld . input) x sss msel filts
let (sss', msel', filts') = doRegexInput (u ^. uvWorld . input) x sss msel filts
return $
di & diSections .~ sss'
& diSelection .~ msel'
@@ -156,10 +156,10 @@ updateLongPressInGame uv sc = case sc of
doRegexInput ::
Input ->
Int ->
SelectionSections a ->
IM.IntMap (SelectionSection a) ->
Maybe (Int, Int) ->
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
| backspacetonothing || escapekey = endregex i 0
| endkeys || endmouse = endregex (i + 1) (j -1)
@@ -170,13 +170,12 @@ doRegexInput inp i sss msel filts
)
where
endregex a b =
( sss
& sssSections . ix i . ssItems .~ mempty
( sss & ix i . ssItems .~ mempty
, msel & ssSetCursor (ssLookupDown a b) sss
, filts & ix i .~ Nothing
)
j = fromMaybe 0 $ do
itms <- sss ^? sssSections . ix (i + 1) . ssItems
itms <- sss ^? ix (i + 1) . ssItems
fst <$> IM.lookupMin itms
escapekey = ScancodeEscape `M.lookup` pkeys == Just InitialPress
endkeys =
@@ -208,7 +207,6 @@ updateBackspaceRegex w = case di ^? subInventory of
i <- di ^? diSelection . _Just . _1
return $ i == a || i == b
trybackspace x he = fromMaybe he $ do
sss <- he ^? diSections
str <- he ^? diFilters . ix x . _Just
return $ case str of
(_ : _) ->
@@ -216,7 +214,6 @@ updateBackspaceRegex w = case di ^? subInventory of
& diSelection ?~ (x, 0)
[] -> he & diFilters . ix x .~ Nothing
trybackspace' x ci = fromMaybe ci $ do
sss <- ci ^? ciSections
str <- ci ^? ciFilters . ix x . _Just
return $ case str of
(_ : _) ->
@@ -288,7 +285,8 @@ toggleMap u = case u ^. uvWorld . hud . hudElement of
toggleTweakInv :: World -> World
toggleTweakInv w = case w ^? hud . hudElement . subInventory of
Just ExamineInventory{} -> w
Just ExamineInventory{} ->
w
& thepointer .~ NoSubInventory MouseInvNothing Nothing
_ -> w & thepointer .~ ExamineInventory -- mi
where
@@ -296,10 +294,14 @@ toggleTweakInv w = case w ^? hud . hudElement . subInventory of
-- 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
(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 $
snd (createItemYou it (foldr (destroyInvItem 0) w (sort is)))
& cWorld . lWorld . creatures . ix 0 . crHammerPosition .~ HammerDown
@@ -307,5 +309,6 @@ tryCombine sss msel w = fromMaybe w $ do
maybeExitCombine :: Universe -> Universe
maybeExitCombine u
| ButtonRight `M.member` (u ^. uvWorld . input . mouseButtons) = u
| otherwise = u & uvWorld . hud . hudElement . subInventory
.~ NoSubInventory MouseInvNothing Nothing
| otherwise =
u & uvWorld . hud . hudElement . subInventory
.~ 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
FixedCoordLayer src/Picture/Data.hs 28;" 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
Flame src/Dodge/Data/Flame.hs 14;" t
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/Dodge/Item/Draw/SPic.hs 3;" m
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
STEELDRUM src/Dodge/Data/Item/Combine.hs 36;" 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
ScrollValue src/Dodge/ScrollValue.hs 1;" m
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
SeeThrough src/Dodge/Data/Wall.hs 39;" 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
Select_creature src/Dodge/Data/Config.hs 92;" C
SelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" C
SelectionInfo src/Dodge/Data/SelectionList.hs 78;" C
SelectionItem src/Dodge/Data/SelectionList.hs 69;" t
SelectionInfo src/Dodge/Data/SelectionList.hs 70;" C
SelectionItem src/Dodge/Data/SelectionList.hs 61;" t
SelectionList src/Dodge/Data/SelectionList.hs 31;" t
SelectionList src/Dodge/Data/SelectionList.hs 6;" m
SelectionList src/Dodge/Default/SelectionList.hs 1;" m
SelectionList src/Dodge/Inventory/SelectionList.hs 2;" m
SelectionList src/Dodge/SelectionList.hs 1;" m
SelectionSection src/Dodge/Data/SelectionList.hs 54;" t
SelectionSections src/Dodge/Data/SelectionList.hs 36;" t
SelectionSection src/Dodge/Data/SelectionList.hs 46;" t
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
Sensor src/Dodge/Data/Machine/Sensor.hs 16;" t
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
UseItem src/Dodge/Data/ActionPlan.hs 37;" C
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
UseScope src/Dodge/Data/Item/Use.hs 60;" 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
VIOLET src/Color/Data.hs 22;" 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
Vector3D src/Geometry/Vector3D.hs 2;" m
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
_scrollTestFloat src/Dodge/Data/Input.hs 31;" f
_scrollTestInt src/Dodge/Data/Input.hs 32;" f
_scurColor src/Dodge/Data/SelectionList.hs 51;" f
_scurPos src/Dodge/Data/SelectionList.hs 49;" f
_scurSize src/Dodge/Data/SelectionList.hs 50;" f
_scurColor src/Dodge/Data/SelectionList.hs 43;" f
_scurPos src/Dodge/Data/SelectionList.hs 41;" f
_scurSize src/Dodge/Data/SelectionList.hs 42;" f
_seenLocations src/Dodge/Data/LWorld.hs 139;" f
_seenWalls src/Dodge/Data/CWorld.hs 29;" 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
_shockwaves src/Dodge/Data/LWorld.hs 114;" 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 82;" f
_siHeight src/Dodge/Data/SelectionList.hs 64;" 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 81;" f
_siOffX src/Dodge/Data/SelectionList.hs 67;" f
_siOffX src/Dodge/Data/SelectionList.hs 75;" f
_siOffX src/Dodge/Data/SelectionList.hs 83;" f
_siPayload src/Dodge/Data/SelectionList.hs 76;" f
_siPayload src/Dodge/Data/SelectionList.hs 68;" f
_siPictures src/Dodge/Data/SelectionList.hs 63;" f
_siPictures src/Dodge/Data/SelectionList.hs 71;" f
_siPictures src/Dodge/Data/SelectionList.hs 79;" 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
@@ -3062,15 +3060,13 @@ _spPixelOff src/Dodge/Data/ScreenPos.hs 11;" f
_spScreenOff src/Dodge/Data/ScreenPos.hs 10;" f
_sparks src/Dodge/Data/LWorld.hs 110;" f
_spawnEBT src/Dodge/Data/Bullet.hs 43;" f
_ssCursor src/Dodge/Data/SelectionList.hs 56;" f
_ssDescriptor src/Dodge/Data/SelectionList.hs 61;" f
_ssIndent src/Dodge/Data/SelectionList.hs 60;" f
_ssItems src/Dodge/Data/SelectionList.hs 55;" f
_ssMinSize src/Dodge/Data/SelectionList.hs 57;" f
_ssOffset src/Dodge/Data/SelectionList.hs 58;" f
_ssShownItems src/Dodge/Data/SelectionList.hs 59;" f
_sssFilters src/Dodge/Data/SelectionList.hs 45;" f
_sssSections src/Dodge/Data/SelectionList.hs 37;" f
_ssCursor src/Dodge/Data/SelectionList.hs 48;" f
_ssDescriptor src/Dodge/Data/SelectionList.hs 53;" f
_ssIndent src/Dodge/Data/SelectionList.hs 52;" f
_ssItems src/Dodge/Data/SelectionList.hs 47;" f
_ssMinSize src/Dodge/Data/SelectionList.hs 49;" f
_ssOffset src/Dodge/Data/SelectionList.hs 50;" f
_ssShownItems src/Dodge/Data/SelectionList.hs 51;" 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
@@ -3852,7 +3848,7 @@ defaultBounds src/Dodge/Data/Bounds.hs 20;" f
defaultBullet src/Dodge/Item/Weapon/Bullet.hs 10;" f
defaultBulletWeapon src/Dodge/Default/Item.hs 47;" f
defaultButton src/Dodge/Default.hs 51;" f
defaultCOSection src/Dodge/Default/World.hs 208;" f
defaultCOSection src/Dodge/Default/World.hs 204;" f
defaultCWCam src/Dodge/Default/World.hs 65;" f
defaultCWGen src/Dodge/Default/World.hs 55;" f
defaultCWorld src/Dodge/Default/World.hs 80;" f
@@ -3876,7 +3872,7 @@ defaultDrawButton src/Dodge/Button/Draw.hs 28;" f
defaultEquip src/Dodge/Default/Item/Use/Equipment.hs 6;" f
defaultEquipUse src/Dodge/Default/Item/Use.hs 23;" 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
defaultForeground src/Dodge/Default/ForegroundShape.hs 5;" 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
defaultInput src/Dodge/Default/World.hs 14;" f
defaultIntention src/Dodge/Default/Creature.hs 105;" f
defaultInvSection src/Dodge/Default/World.hs 221;" f
defaultInvSections src/Dodge/Default/World.hs 179;" f
defaultInvSection src/Dodge/Default/World.hs 217;" f
defaultInvSections src/Dodge/Default/World.hs 180;" f
defaultInvSize src/Dodge/Default/Creature.hs 79;" f
defaultItEffect src/Dodge/Default/Item.hs 55;" 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
defaultProximitySensor src/Dodge/Default.hs 80;" f
defaultRoom src/Dodge/Default/Room.hs 9;" f
defaultSS src/Dodge/Default/World.hs 196;" f
defaultSSSExtra src/Dodge/Default/World.hs 173;" f
defaultSS src/Dodge/Default/World.hs 192;" f
defaultSelectionList src/Dodge/Default/SelectionList.hs 5;" f
defaultSensorWall src/Dodge/Default/Wall.hs 58;" 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
defaultWindow src/Dodge/Default/Wall.hs 74;" 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
degToRad src/Geometry/Vector.hs 117;" 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
doQuicksave src/Dodge/Save.hs 77;" 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
doRoomOutPlacements src/Dodge/Layout.hs 107;" 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
ildtPropagate src/Dodge/DoubleTree.hs 57;" f
impulsiveAIBefore src/Dodge/Creature/Impulse.hs 22;" f
inCloseRegex src/Dodge/InputFocus.hs 96;" f
inInputFocus src/Dodge/InputFocus.hs 60;" f
inInvRegex src/Dodge/InputFocus.hs 93;" f
inCloseRegex src/Dodge/InputFocus.hs 95;" f
inInputFocus src/Dodge/InputFocus.hs 59;" f
inInvRegex src/Dodge/InputFocus.hs 92;" f
inLink src/Dodge/RoomLink.hs 113;" f
inSegArea src/Geometry/Intersect.hs 298;" f
inSubInvRegex src/Dodge/InputFocus.hs 99;" f
inTermFocus src/Dodge/InputFocus.hs 18;" f
inTopRegex src/Dodge/InputFocus.hs 88;" f
inSubInvRegex src/Dodge/InputFocus.hs 98;" f
inTermFocus src/Dodge/InputFocus.hs 17;" f
inTopRegex src/Dodge/InputFocus.hs 87;" f
incBallAt src/Dodge/EnergyBall.hs 54;" f
incidenceToFunction src/Dodge/Graph.hs 26;" 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
initializeTexture2D src/Framebuffer/Update.hs 221;" f
inorderNumberTree src/TreeHelp.hs 189;" f
inputFocus src/Dodge/InputFocus.hs 66;" f
inputFocusI src/Dodge/InputFocus.hs 63;" f
inputFocus src/Dodge/InputFocus.hs 65;" f
inputFocusI src/Dodge/InputFocus.hs 62;" f
insertAt src/Padding.hs 60;" f
insertIMInZone src/Dodge/Base.hs 59;" 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
maybeDestroyBlock src/Dodge/Wall/Damage.hs 26;" 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
maybeReadFile src/Dodge/LoadSeed.hs 10;" 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
pathEdgeObstructed src/Dodge/Path.hs 43;" 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
pauseMenuOptions src/Dodge/Menu.hs 58;" 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
refreshOptionsSelectionList src/Dodge/Menu/Option.hs 34;" f
regexCombs src/Dodge/DisplayInventory.hs 67;" f
regexFocus src/Dodge/InputFocus.hs 43;" f
regexIn src/Regex.hs 4;" f
regexList src/Dodge/DisplayInventory.hs 291;" f
regexList src/Regex.hs 7;" f
regexScope src/Dodge/InputFocus.hs 25;" f
reload1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 428;" f
reloadLevelStart src/Dodge/Save.hs 71;" 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
soundWithStatusVolume src/Dodge/SoundLogic.hs 48;" 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
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 179;" 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
toggleEquipmentAt src/Dodge/Creature/Impulse/UseItem.hs 75;" f
toggleJust src/MaybeHelp.hs 41;" f
toggleMap src/Dodge/Update/Input/InGame.hs 269;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 281;" f
toggleMap src/Dodge/Update/Input/InGame.hs 276;" f
toggleTweakInv src/Dodge/Update/Input/InGame.hs 289;" f
togglesToEffects src/Dodge/Terminal.hs 245;" f
tone440S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 460;" 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
tryAttachBulletBelt src/Dodge/Euse.hs 40;" 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
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 19;" 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
updateAttachedItems src/Dodge/Creature/State.hs 173;" 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
updateBarreloid src/Dodge/Barreloid.hs 13;" 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
updateEnergyBall src/Dodge/EnergyBall.hs 46;" 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
updateFBOTO src/Framebuffer/Update.hs 97;" 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 487;" 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
updateInv src/Dodge/Creature/State.hs 152;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 85;" f
updateItemTargeting src/Dodge/Creature/State.hs 268;" f
updateItemWithOrientation src/Dodge/Creature/State.hs 194;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 120;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 109;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 124;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 113;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f
updateLaser src/Dodge/Laser/Update.hs 13;" f
updateLasers src/Dodge/Update.hs 411;" f
updateLightSources src/Dodge/Update.hs 516;" 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
updateMachine src/Dodge/Machine/Update.hs 16;" 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
updatePosEvents src/Dodge/Update.hs 549;" f
updatePreload src/Preload/Update.hs 20;" f
updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 84;" f
updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 87;" f
updatePressedButtonsCarte src/Dodge/Update/Input/InGame.hs 88;" f
updatePressedButtonsCarte' src/Dodge/Update/Input/InGame.hs 91;" 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