Flatten HUDElement

This commit is contained in:
2025-08-26 16:46:02 +01:00
parent 596880f76a
commit 9034c409e1
24 changed files with 255 additions and 270 deletions
+2 -2
View File
@@ -188,8 +188,8 @@ dropItem cr invid w' =
itid <- cr ^? crInv . ix (NInt invid) itid <- cr ^? crInv . ix (NInt invid)
w' ^? cWorld . lWorld . items . ix itid w' ^? cWorld . lWorld . items . ix itid
maybeshiftseldown w = fromMaybe w $ do maybeshiftseldown w = fromMaybe w $ do
3 <- w ^? hud . hudElement . diSelection . _Just . _1 3 <- w ^? hud . diSelection . _Just . _1
return $ w & hud . hudElement . diSelection . _Just . _2 +~ 1 return $ w & hud . diSelection . _Just . _2 +~ 1
-- | Get your creature to drop the item under the cursor. -- | Get your creature to drop the item under the cursor.
youDropItem :: World -> World youDropItem :: World -> World
+6 -6
View File
@@ -106,11 +106,11 @@ toggleEquipmentAt invid cr w = case getEquipmentAllocation invid w of
onremove itm' = effectOnRemove itm' onremove itm' = effectOnRemove itm'
toggleExamineInv :: World -> World toggleExamineInv :: World -> World
toggleExamineInv w = case w ^? hud . hudElement . subInventory of toggleExamineInv w = case w ^? hud . subInventory of
Just ExamineInventory{} -> w & hud . hudElement . subInventory .~ NoSubInventory Just ExamineInventory{} -> w & hud . subInventory .~ NoSubInventory
_ -> w & hud . hudElement . subInventory .~ ExamineInventory _ -> w & hud . subInventory .~ ExamineInventory
toggleMapperInv :: Item -> World -> World toggleMapperInv :: Item -> World -> World
toggleMapperInv itm w = case w ^? hud . hudElement . subInventory of toggleMapperInv itm w = case w ^? hud . subInventory of
Just MapperInventory{} -> w & hud . hudElement . subInventory .~ NoSubInventory Just MapperInventory{} -> w & hud . subInventory .~ NoSubInventory
_ -> w & hud . hudElement . subInventory .~ MapperInventory 0 1 (_itID itm) _ -> w & hud . subInventory .~ MapperInventory 0 1 (_itID itm)
+1 -1
View File
@@ -29,7 +29,7 @@ import qualified SDL
yourControl :: Creature -> World -> World yourControl :: Creature -> World -> World
yourControl _ w yourControl _ w
| inTextInputFocus w = w | inTextInputFocus w = w
| Just x <- w ^? hud . hudElement . subInventory | Just x <- w ^? hud . subInventory
, f x = , f x =
w w
& cWorld . lWorld . creatures . ix 0 %~ wasdWithAiming w & cWorld . lWorld . creatures . ix 0 %~ wasdWithAiming w
+15 -18
View File
@@ -5,42 +5,36 @@
module Dodge.Data.HUD where module Dodge.Data.HUD where
import qualified Data.IntSet as IS
import Dodge.Data.Item.Location
import NewInt
import Control.Lens import Control.Lens
import Data.IntMap
import Data.IntSet (IntSet) import Data.IntSet (IntSet)
import qualified Data.IntSet as IS
import Dodge.Data.Combine import Dodge.Data.Combine
import Dodge.Data.Item.Location
import Dodge.Data.SelectionList import Dodge.Data.SelectionList
import Geometry.Data import Geometry.Data
import NewInt
data HUDElement
= DisplayInventory
{ _subInventory :: SubInventory
, _diSections :: IMSS ()
, _diSelection :: Maybe (Int, Int, IntSet)
, _diInvFilter :: Maybe String
, _diCloseFilter :: Maybe String
}
data SubInventory data SubInventory
= NoSubInventory = NoSubInventory
| ExamineInventory | ExamineInventory
| MapperInventory | MapperInventory
{_mapInvOffset :: Point2 { _mapInvOffset :: Point2
, _mapInvZoom :: Float , _mapInvZoom :: Float
, _mapInvItmID :: NewInt ItmInt , _mapInvItmID :: NewInt ItmInt
} }
| CombineInventory | CombineInventory
{ _ciSections :: IntMap (SelectionSection CombinableItem) { _ciSections :: IMSS CombinableItem
, _ciSelection :: Maybe (Int, Int, IS.IntSet) , _ciSelection :: Maybe (Int, Int, IS.IntSet)
, _ciFilter :: Maybe String , _ciFilter :: Maybe String
} }
| DisplayTerminal {_termID :: Int} | DisplayTerminal {_termID :: Int}
data HUD = HUD data HUD = HUD
{ _hudElement :: HUDElement { _subInventory :: SubInventory
, _diSections :: IMSS ()
, _diSelection :: Maybe (Int, Int, IntSet)
, _diInvFilter :: Maybe String
, _diCloseFilter :: Maybe String
, _carteCenter :: Point2 , _carteCenter :: Point2
, _carteZoom :: Float , _carteZoom :: Float
, _carteRot :: Float , _carteRot :: Float
@@ -48,6 +42,9 @@ data HUD = HUD
, _closeButtons :: [Int] , _closeButtons :: [Int]
} }
data Selection
= Sel {_slSec :: Int, _slInt :: Int, _slSet :: IS.IntSet}
| NoSel
makeLenses ''HUD makeLenses ''HUD
makeLenses ''HUDElement
makeLenses ''SubInventory makeLenses ''SubInventory
+1 -3
View File
@@ -36,9 +36,7 @@ data SelectionSection a = SelectionSection
type IMSS a = IntMap (SelectionSection a) type IMSS a = IntMap (SelectionSection a)
data SelectionWidth data SelectionWidth = FixedSelectionWidth Int | UseItemWidth
= FixedSelectionWidth Int
| UseItemWidth
data SelectionItem a data SelectionItem a
= SelItem = SelItem
+5 -11
View File
@@ -159,20 +159,14 @@ defaultLWorld =
defaultHUD :: HUD defaultHUD :: HUD
defaultHUD = defaultHUD =
HUD HUD
{ _hudElement = defaultDisplayInventory { _subInventory = NoSubInventory
, _diSections = mempty
, _diSelection = Just (1, 0, mempty)
, _diInvFilter = mempty
, _diCloseFilter = mempty
, _carteCenter = V2 0 0 , _carteCenter = V2 0 0
, _carteZoom = 0.5 , _carteZoom = 0.5
, _carteRot = 0 , _carteRot = 0
, _closeItems = mempty , _closeItems = mempty
, _closeButtons = mempty , _closeButtons = mempty
} }
defaultDisplayInventory :: HUDElement
defaultDisplayInventory =
DisplayInventory
{ _subInventory = NoSubInventory
, _diSections = mempty
, _diSelection = Just (1, 0, mempty)
, _diInvFilter = mempty
, _diCloseFilter = mempty
}
+15 -15
View File
@@ -39,9 +39,9 @@ import Picture.Base
updateCombinePositioning :: Universe -> Universe updateCombinePositioning :: Universe -> Universe
updateCombinePositioning u = updateCombinePositioning u =
u u
& uvWorld . hud . hudElement . subInventory . ciSections & uvWorld . hud . subInventory . ciSections
%~ updateCombineSections (_uvWorld u) (_uvConfig u) %~ updateCombineSections (_uvWorld u) (_uvConfig u)
& uvWorld . hud . hudElement . subInventory %~ checkCombineSelectionExists & uvWorld . hud . subInventory %~ checkCombineSelectionExists
updateCombineSections :: updateCombineSections ::
World -> World ->
@@ -51,18 +51,18 @@ updateCombineSections ::
updateCombineSections w cfig = updateCombineSections w cfig =
updateSectionsPositioning updateSectionsPositioning
(const 0) (const 0)
(w ^? hud . hudElement . subInventory . ciSelection . _Just) (w ^? hud . subInventory . ciSelection . _Just)
(getAvailableListLines secondColumnParams cfig) (getAvailableListLines secondColumnParams cfig)
(IM.fromDistinctAscList [(-1, sfclose),(0, sclose')]) (IM.fromDistinctAscList [(-1, sfclose),(0, sclose')])
where where
filtcurs = w ^? hud . hudElement . subInventory . ciSelection . _Just . _1 == Just (-1) filtcurs = w ^? hud . subInventory . ciSelection . _Just . _1 == Just (-1)
(sfclose, sclose) = (sfclose, sclose) =
filterSectionsPair filterSectionsPair
filtcurs filtcurs
(flip . andOrRegex $ regexCombs invitms) (flip . andOrRegex $ regexCombs invitms)
(IM.fromDistinctAscList . zip [0 ..] $ combineList w) (IM.fromDistinctAscList . zip [0 ..] $ combineList w)
"COMBINATIONS" "COMBINATIONS"
$ w ^? hud . hudElement . subInventory . ciFilter . _Just $ w ^? hud . subInventory . ciFilter . _Just
invitms = _unNIntMap $ fmap (\k -> w ^?! cWorld . lWorld . items . ix k) $ fold $ w ^? cWorld . lWorld . creatures . ix 0 . crInv invitms = _unNIntMap $ fmap (\k -> w ^?! cWorld . lWorld . items . ix k) $ fold $ w ^? cWorld . lWorld . creatures . ix 0 . crInv
sclose' sclose'
| null sclose = | null sclose =
@@ -87,17 +87,17 @@ orRegex f x str = case words str of
updateInventoryPositioning :: Universe -> Universe updateInventoryPositioning :: Universe -> Universe
updateInventoryPositioning u = updateInventoryPositioning u =
u & uvWorld . hud . hudElement . diSections u & uvWorld . hud . diSections
%~ updateDisplaySections (_uvWorld u) (_uvConfig u) %~ updateDisplaySections (_uvWorld u) (_uvConfig u)
& uvWorld & uvWorld
%~ checkInventorySelectionExists %~ checkInventorySelectionExists
checkInventorySelectionExists :: World -> World checkInventorySelectionExists :: World -> World
checkInventorySelectionExists w checkInventorySelectionExists w
| isJust $ w ^? hud . hudElement . diSections . ix i . ssItems . ix j = w | isJust $ w ^? hud . diSections . ix i . ssItems . ix j = w
| otherwise = scrollAugNextInSection w | otherwise = scrollAugNextInSection w
where where
(i, j, _) = fromMaybe (1, -1, mempty) $ w ^? hud . hudElement . diSelection . _Just (i, j, _) = fromMaybe (1, -1, mempty) $ w ^? hud . diSelection . _Just
checkCombineSelectionExists :: SubInventory -> SubInventory checkCombineSelectionExists :: SubInventory -> SubInventory
checkCombineSelectionExists si checkCombineSelectionExists si
@@ -135,15 +135,15 @@ updateDisplaySections w cfig =
] ]
) )
where where
mselpos = w ^? hud . hudElement . diSelection . _Just mselpos = w ^? hud . diSelection . _Just
invfiltcurs = mselpos ^? _Just . _1 == Just (-1) invfiltcurs = mselpos ^? _Just . _1 == Just (-1)
(sfinv, sinv) = (sfinv, sinv) =
filterSectionsPair invfiltcurs plainRegex invitems "INVENTORY" $ filterSectionsPair invfiltcurs plainRegex invitems "INVENTORY" $
w ^? hud . hudElement . diInvFilter . _Just w ^? hud . diInvFilter . _Just
closefiltcurs = mselpos ^? _Just . _1 == Just 2 closefiltcurs = mselpos ^? _Just . _1 == Just 2
(sfclose, sclose) = (sfclose, sclose) =
filterSectionsPair closefiltcurs plainRegex closeitms "NEARBY ITEMS" $ filterSectionsPair closefiltcurs plainRegex closeitms "NEARBY ITEMS" $
w ^? hud . hudElement . diCloseFilter . _Just w ^? hud . diCloseFilter . _Just
nearbyhead nearbyhead
| null sfclose && not (null sclose) = makehead "NEARBY ITEMS" | null sfclose && not (null sclose) = makehead "NEARBY ITEMS"
| otherwise = sfclose | otherwise = sfclose
@@ -315,16 +315,16 @@ regexList = any . List.isInfixOf
toggleCombineInv :: Universe -> Universe toggleCombineInv :: Universe -> Universe
toggleCombineInv uv = toggleCombineInv uv =
uv & case uv ^? uvWorld . hud . hudElement . subInventory of uv & case uv ^? uvWorld . hud . subInventory of
Just CombineInventory{} -> uvWorld . hud . hudElement . subInventory .~ NoSubInventory Just CombineInventory{} -> uvWorld . hud . subInventory .~ NoSubInventory
_ -> uvWorld %~ enterCombineInv (uv ^. uvConfig) _ -> uvWorld %~ enterCombineInv (uv ^. uvConfig)
enterCombineInv :: Configuration -> World -> World enterCombineInv :: Configuration -> World -> World
enterCombineInv cfig w = enterCombineInv cfig w =
w & hud . hudElement . subInventory w & hud . subInventory
.~ CombineInventory .~ CombineInventory
{ _ciSections = updateCombineSections w cfig mempty { _ciSections = updateCombineSections w cfig mempty
, _ciSelection = Just (0,0,mempty) , _ciSelection = Just (0,0,mempty)
, _ciFilter = Nothing , _ciFilter = Nothing
} }
& hud . hudElement . diInvFilter .~ Nothing & hud . diInvFilter .~ Nothing
+5 -5
View File
@@ -15,13 +15,13 @@ textInputFocus ::
Applicative f => Applicative f =>
World -> World ->
Maybe ((String -> f String) -> World -> f World) Maybe ((String -> f String) -> World -> f World)
textInputFocus w = case w ^? hud . hudElement . subInventory of textInputFocus w = case w ^? hud . subInventory of
Just NoSubInventory{} -> case he ^? diSelection . _Just . _1 of Just NoSubInventory{} -> case he ^? diSelection . _Just . _1 of
Just (-1) -> Just $ hud . hudElement . diInvFilter . _Just Just (-1) -> Just $ hud . diInvFilter . _Just
Just 2 -> Just $ hud . hudElement . diCloseFilter . _Just Just 2 -> Just $ hud . diCloseFilter . _Just
_ -> Nothing _ -> Nothing
Just CombineInventory{} -> case he ^? subInventory . ciSelection . _Just . _1 of Just CombineInventory{} -> case he ^? subInventory . ciSelection . _Just . _1 of
Just (-1) -> Just $ hud . hudElement . subInventory . ciFilter . _Just Just (-1) -> Just $ hud . subInventory . ciFilter . _Just
_ -> Nothing _ -> Nothing
Just DisplayTerminal{_termID = tmid} -> do Just DisplayTerminal{_termID = tmid} -> do
-- connectionstatus <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus -- connectionstatus <- w ^? cWorld . lWorld . terminals . ix tmid . tmStatus
@@ -29,4 +29,4 @@ textInputFocus w = case w ^? hud . hudElement . subInventory of
return $ cWorld . lWorld . terminals . ix tmid . tmStatus . tiText return $ cWorld . lWorld . terminals . ix tmid . tmStatus . tiText
_ -> Nothing _ -> Nothing
where where
he = w ^. hud . hudElement he = w ^. hud
+8 -8
View File
@@ -87,7 +87,7 @@ rmInvItem cid invid w =
where where
pointcid = cWorld . lWorld . creatures . ix cid pointcid = cWorld . lWorld . creatures . ix cid
updateselectionextra updateselectionextra
| cid == 0 = hud . hudElement . diSelection . _Just . _3 %~ const mempty | cid == 0 = hud . diSelection . _Just . _3 %~ const mempty
| otherwise = id | otherwise = id
updateselection updateselection
| cid == 0 && cr ^? crManipulation . manObject . imSelectedItem == Just invid = | cid == 0 && cr ^? crManipulation . manObject . imSelectedItem == Just invid =
@@ -154,7 +154,7 @@ changeSwapOther ::
World -> World ->
World World
changeSwapOther manlens n f i w = fromMaybe w $ do changeSwapOther manlens n f i w = fromMaybe w $ do
ss <- w ^? hud . hudElement . diSections . ix n . ssItems ss <- w ^? hud . diSections . ix n . ssItems
k <- f i ss k <- f i ss
let doswap j let doswap j
| j == i = k | j == i = k
@@ -166,7 +166,7 @@ changeSwapOther manlens n f i w = fromMaybe w $ do
& cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . manlens & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . manlens
%~ doswap %~ doswap
& hud . closeItems %~ swapIndices i k & hud . closeItems %~ swapIndices i k
& hud . hudElement . diSelection . _Just . _2 %~ doswap & hud . diSelection . _Just . _2 %~ doswap
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
swapItemWith :: swapItemWith ::
@@ -182,7 +182,7 @@ swapItemWith f (j, i) = case j of
changeSwapWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> World -> World changeSwapWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> World -> World
changeSwapWith f w changeSwapWith f w
| Just (j,i,_) <- w ^. hud . hudElement . diSelection = swapItemWith f (j,i) w | Just (j,i,_) <- w ^. hud . diSelection = swapItemWith f (j,i) w
| otherwise = w | otherwise = w
--changeSwapWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> World -> World --changeSwapWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> World -> World
@@ -195,7 +195,7 @@ changeSwapWith f w
invSetSelection :: (Int, Int, IS.IntSet) -> World -> World invSetSelection :: (Int, Int, IS.IntSet) -> World -> World
invSetSelection sel w = invSetSelection sel w =
w w
& hud . hudElement . diSelection ?~ sel & hud . diSelection ?~ sel
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS & setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0 & cWorld . lWorld %~ crUpdateItemLocations 0
@@ -203,7 +203,7 @@ invSetSelection sel w =
invSetSelectionPos :: Int -> Int -> World -> World invSetSelectionPos :: Int -> Int -> World -> World
invSetSelectionPos i j w = invSetSelectionPos i j w =
w w
& hud . hudElement . diSelection %~ f & hud . diSelection %~ f
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS & setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0 & cWorld . lWorld %~ crUpdateItemLocations 0
@@ -215,7 +215,7 @@ scrollAugInvSel :: Int -> World -> World
scrollAugInvSel yi w scrollAugInvSel yi w
| yi == 0 = w | yi == 0 = w
| otherwise = | otherwise =
w & hud . hudElement %~ doscroll w & hud %~ doscroll
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS & setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0 & cWorld . lWorld %~ crUpdateItemLocations 0
@@ -226,7 +226,7 @@ scrollAugInvSel yi w
scrollAugNextInSection :: World -> World scrollAugNextInSection :: World -> World
scrollAugNextInSection w = scrollAugNextInSection w =
w & hud . hudElement %~ doscroll w & hud %~ doscroll
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS & setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0 & cWorld . lWorld %~ crUpdateItemLocations 0
+1 -1
View File
@@ -43,7 +43,7 @@ tryPutItemInInv cid itid w = do
& updateselectionextra invid & updateselectionextra invid
where where
updateselectionextra i updateselectionextra i
| cid == 0 = hud . hudElement . diSelection . _Just . _3 %~ IS.map (f i) | cid == 0 = hud . diSelection . _Just . _3 %~ IS.map (f i)
| otherwise = id | otherwise = id
f j i | i >= _unNInt j = i + 1 f j i | i >= _unNInt j = i + 1
| otherwise = i | otherwise = i
+1 -1
View File
@@ -97,7 +97,7 @@ setInvPosFromSS w = w
& cWorld . lWorld . creatures . ix 0 . crManipulation . manObject .~ thesel & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject .~ thesel
where where
thesel = fromMaybe SelNothing $ do thesel = fromMaybe SelNothing $ do
(i, j, _) <- w ^? hud . hudElement . diSelection . _Just (i, j, _) <- w ^? hud . diSelection . _Just
case i of case i of
(-1) -> Just SortInventory (-1) -> Just SortInventory
0 -> do 0 -> do
+1 -1
View File
@@ -88,7 +88,7 @@ itemExternalValue itm w cr
displayPulse $ cr ^?! crType . avatarPulse . pulseProgress displayPulse $ cr ^?! crType . avatarPulse . pulseProgress
| Just t <- itm ^? itType . ibtIntroScanType = Just $ introScanValue cr t | Just t <- itm ^? itType . ibtIntroScanType = Just $ introScanValue cr t
| ITEMSCAN <- itm ^. itType | ITEMSCAN <- itm ^. itType
, Just ExamineInventory <- w ^? hud . hudElement . subInventory , Just ExamineInventory <- w ^? hud . subInventory
= Just (Right "ON") = Just (Right "ON")
| BINGATE <- itm ^. itType = do | BINGATE <- itm ^. itType = do
invid <- itm ^? itLocation . ilInvID invid <- itm ^? itLocation . ilInvID
+6 -6
View File
@@ -24,11 +24,11 @@ swapInvItems ::
World -> World ->
World World
swapInvItems f i w = fromMaybe w $ do swapInvItems f i w = fromMaybe w $ do
ss <- w ^? hud . hudElement . diSections . ix 0 . ssItems ss <- w ^? hud . 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 . diSelection . _Just of
Just (0, j,_) | j == k -> hud . hudElement . diSelection . _Just . _2 .~ i Just (0, j,_) | j == k -> hud . diSelection . _Just . _2 .~ i
Just (0, j,_) | j == i -> hud . hudElement . diSelection . _Just . _2 .~ k Just (0, j,_) | j == i -> hud . diSelection . _Just . _2 .~ k
_ -> id _ -> id
return $ return $
w w
@@ -55,11 +55,11 @@ swapInvItems f i w = fromMaybe w $ do
swapAnyExtraSelection :: Int -> Int -> World -> World swapAnyExtraSelection :: Int -> Int -> World -> World
swapAnyExtraSelection i k w = fromMaybe w $ do swapAnyExtraSelection i k w = fromMaybe w $ do
is <- w ^? hud . hudElement . diSelection . _Just . _3 is <- w ^? hud . diSelection . _Just . _3
let f = if i `IS.member` is then IS.insert k else id let f = if i `IS.member` is then IS.insert k else id
g = if k `IS.member` is then IS.insert i else id g = if k `IS.member` is then IS.insert i else id
return $ return $
w & hud . hudElement . diSelection . _Just . _3 w & hud . diSelection . _Just . _3
%~ (f . g . IS.delete i . IS.delete k) %~ (f . g . IS.delete i . IS.delete k)
checkConnection :: SoundOrigin -> SoundID -> Int -> Int -> World -> World checkConnection :: SoundOrigin -> SoundID -> Int -> Int -> World -> World
+1 -1
View File
@@ -20,7 +20,7 @@ import Dodge.Wall.Move
import Geometry.Vector import Geometry.Vector
cancelExamineInventory :: World -> World cancelExamineInventory :: World -> World
cancelExamineInventory = hud . hudElement . subInventory %~ f cancelExamineInventory = hud . subInventory %~ f
where where
f ExamineInventory = NoSubInventory f ExamineInventory = NoSubInventory
f x = x f x = x
+1 -1
View File
@@ -34,7 +34,7 @@ invDP =
& ldpPos . spPixelOff .~ V2 6 0 & ldpPos . spPixelOff .~ V2 6 0
invCursorParams :: World -> CursorDisplay invCursorParams :: World -> CursorDisplay
invCursorParams w = BoundaryCursor $ case w ^? hud . hudElement . subInventory of invCursorParams w = BoundaryCursor $ case w ^? hud . subInventory of
-- Just ExamineInventory{} -> [North, South, East, West] -- Just ExamineInventory{} -> [North, South, East, West]
Just CombineInventory{} -> [] Just CombineInventory{} -> []
_ | ButtonRight `M.member` _mouseButtons (_input w) -> [North, South, East, West] _ | ButtonRight `M.member` _mouseButtons (_input w) -> [North, South, East, West]
+18 -18
View File
@@ -46,17 +46,17 @@ import Picture
import SDL (MouseButton (..)) import SDL (MouseButton (..))
drawHUD :: Configuration -> World -> Picture drawHUD :: Configuration -> World -> Picture
drawHUD cfig w = case w ^. hud . hudElement of drawHUD cfig w = case w ^. hud of
-- DisplayCarte -> drawCarte cfig w -- DisplayCarte -> drawCarte cfig w
DisplayInventory{_diSections = sections, _subInventory = subinv} -> HUD {_diSections = sections, _subInventory = subinv} ->
drawInventory sections w cfig drawInventory sections w cfig
<> drawSubInventory subinv cfig w <> drawSubInventory subinv cfig w
drawInventory :: IM.IntMap (SelectionSection ()) -> World -> Configuration -> Picture drawInventory :: IM.IntMap (SelectionSection ()) -> World -> Configuration -> Picture
drawInventory sss w cfig = drawInventory sss w cfig =
drawSelectionSections sss invDP cfig drawSelectionSections sss invDP cfig
<> drawSSCursor sss invDP curs cfig (f $ w ^? hud . hudElement . diSelection . _Just) <> drawSSCursor sss invDP curs cfig (f $ w ^? hud . diSelection . _Just)
<> drawRootCursor w sss (f $ w ^? hud . hudElement . diSelection . _Just) invDP cfig <> drawRootCursor w sss (f $ w ^? hud . diSelection . _Just) invDP cfig
<> itemconnections <> itemconnections
<> drawMouseOver cfig w <> drawMouseOver cfig w
where where
@@ -65,7 +65,7 @@ drawInventory sss w cfig =
itemconnections = fromMaybe mempty $ do itemconnections = fromMaybe mempty $ do
inv' <- w ^? cWorld . lWorld . creatures . ix 0 . crInv inv' <- w ^? cWorld . lWorld . creatures . ix 0 . crInv
let inv = fmap (\k -> w ^?! cWorld . lWorld . items . ix k) inv' let inv = fmap (\k -> w ^?! cWorld . lWorld . items . ix k) inv'
case w ^? hud . hudElement . diInvFilter . _Just of case w ^? hud . diInvFilter . _Just of
Just (_ : _) -> Nothing Just (_ : _) -> Nothing
_ -> return . drawItemConnections sss cfig $ invAdj inv _ -> return . drawItemConnections sss cfig $ invAdj inv
@@ -112,7 +112,7 @@ drawMouseOver cfig w =
(j, i) <- (j, i) <-
w ^? input . mouseContext . mcoInvSelect w ^? input . mouseContext . mcoInvSelect
<|> w ^? input . mouseContext . mcoInvFilt <|> w ^? input . mouseContext . mcoInvFilt
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . diSections
return . translateScreenPos cfig (invDP ^. ldpPos) return . translateScreenPos cfig (invDP ^. ldpPos)
. color (withAlpha 0.1 white) . color (withAlpha 0.1 white)
-- . color white -- . color white
@@ -123,7 +123,7 @@ drawMouseOver cfig w =
(j, i) <- (j, i) <-
(w ^? input . mouseContext . mcoCombSelect) (w ^? input . mouseContext . mcoCombSelect)
<|> (w ^? input . mouseContext . mcoCombCombine) <|> (w ^? input . mouseContext . mcoCombCombine)
sss <- w ^? hud . hudElement . subInventory . ciSections sss <- w ^? hud . subInventory . ciSections
let idp = secondColumnParams let idp = secondColumnParams
return . translateScreenPos cfig (idp ^. ldpPos) return . translateScreenPos cfig (idp ^. ldpPos)
. color (withAlpha 0.2 white) . color (withAlpha 0.2 white)
@@ -131,15 +131,15 @@ drawMouseOver cfig w =
drawDragSelected :: Configuration -> World -> Maybe Picture drawDragSelected :: Configuration -> World -> Maybe Picture
drawDragSelected cfig w = do drawDragSelected cfig w = do
ys <- w ^? hud . hudElement . diSelection . _Just . _3 ys <- w ^? hud . diSelection . _Just . _3
guard $ guard $
not (IS.null ys) not (IS.null ys)
&& ( case w ^? hud . hudElement . subInventory of && ( case w ^? hud . subInventory of
Just NoSubInventory -> True Just NoSubInventory -> True
_ -> False _ -> False
) )
(i, _, _) <- w ^? hud . hudElement . diSelection . _Just (i, _, _) <- w ^? hud . diSelection . _Just
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . diSections
let f x = (selSecDrawCursorAt invDP BackdropCursor sss (i, x) <>) let f x = (selSecDrawCursorAt invDP BackdropCursor sss (i, x) <>)
return . translateScreenPos cfig (invDP ^. ldpPos) return . translateScreenPos cfig (invDP ^. ldpPos)
. color (withAlpha 0.2 white) . color (withAlpha 0.2 white)
@@ -149,7 +149,7 @@ drawDragSelected cfig w = do
drawDragSelecting :: Configuration -> World -> Maybe Picture drawDragSelecting :: Configuration -> World -> Maybe Picture
drawDragSelecting cfig w = do drawDragSelecting cfig w = do
OverInvDragSelect (Just (i, j)) (Just b) <- w ^? input . mouseContext OverInvDragSelect (Just (i, j)) (Just b) <- w ^? input . mouseContext
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . diSections
let f x = selSecDrawCursorAt invDP BackdropCursor sss (i, x) let f x = selSecDrawCursorAt invDP BackdropCursor sss (i, x)
return . translateScreenPos cfig (invDP ^. ldpPos) return . translateScreenPos cfig (invDP ^. ldpPos)
. color (withAlpha 0.2 white) . color (withAlpha 0.2 white)
@@ -189,7 +189,7 @@ drawCombineInventory cfig sss w =
curs = BoundaryCursor [North, South, West] curs = BoundaryCursor [North, South, West]
msel = msel =
fmap (\(x, y, _) -> (x, y)) $ fmap (\(x, y, _) -> (x, y)) $
w ^? hud . hudElement . subInventory . ciSelection . _Just w ^? hud . subInventory . ciSelection . _Just
drawExamineInventory :: Configuration -> World -> Picture drawExamineInventory :: Configuration -> World -> Picture
drawExamineInventory cfig w = drawExamineInventory cfig w =
@@ -253,8 +253,8 @@ drawRBOptions cfig w = fold $ do
you w ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k >>= equipType -- . itUse . uequipEffect . eeType you w ^? crInv . ix invid >>= \k -> w ^? cWorld . lWorld . items . ix k >>= equipType -- . itUse . uequipEffect . eeType
i <- w ^? rbOptions . opSel i <- w ^? rbOptions . opSel
let ae = getEquipmentAllocation invid w let ae = getEquipmentAllocation invid w
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . diSections
(i', j, _) <- w ^? hud . hudElement . diSelection . _Just (i', j, _) <- w ^? hud . diSelection . _Just
curpos <- selSecYint i' j sss curpos <- selSecYint i' j sss
let ytext = drawListElement 0 1 0 curpos . text let ytext = drawListElement 0 1 0 curpos . text
midstr = equipAllocString ae midstr = equipAllocString ae
@@ -349,7 +349,7 @@ combineInventoryExtra sss msel cfig w = fold $ do
return (lnkMidPosInvSelsCol cfig w j col lnks) <> foldMap invcursor lnks return (lnkMidPosInvSelsCol cfig w j col lnks) <> foldMap invcursor lnks
where where
invcursor i = do invcursor i = do
sss' <- w ^? hud . hudElement . diSections sss' <- w ^? hud . diSections
return $ return $
translateScreenPos cfig (invDP ^. ldpPos) $ translateScreenPos cfig (invDP ^. ldpPos) $
selSecDrawCursor selSecDrawCursor
@@ -391,8 +391,8 @@ lnkMidPosInvSelsCol :: Configuration -> World -> Int -> Color -> [Int] -> Pictur
lnkMidPosInvSelsCol cfig w i col = fromMaybe mempty . foldMap f lnkMidPosInvSelsCol cfig w i col = fromMaybe mempty . foldMap f
where where
f j = do f j = do
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . diSections
combinesss <- w ^? hud . hudElement . subInventory . ciSections combinesss <- w ^? hud . subInventory . ciSections
lp <- selNumPos cfig invDP sss 0 j lp <- selNumPos cfig invDP sss 0 j
rp <- selNumPos cfig secondColumnParams combinesss 0 i rp <- selNumPos cfig secondColumnParams combinesss 0 i
invcol <- selSecSelCol 0 j sss invcol <- selSecSelCol 0 j sss
+1 -1
View File
@@ -115,7 +115,7 @@ mouseCursorType u = case u ^. uvWorld . input . mouseContext of
MouseGameRotate -> rotate a (drawVerticalDoubleArrow 5) MouseGameRotate -> rotate a (drawVerticalDoubleArrow 5)
where where
w = u ^. uvWorld w = u ^. uvWorld
selsec = u ^? uvWorld . hud . hudElement . diSelection . _Just . _1 selsec = u ^? uvWorld . hud . diSelection . _Just . _1
a = fromMaybe 0 $ do a = fromMaybe 0 $ do
cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos
return . toClosestMultiple (pi / 32) $ return . toClosestMultiple (pi / 32) $
+1 -1
View File
@@ -13,7 +13,7 @@ interactWithCloseObj e w = worldEventFlags . at InventoryChange ?~ () $ case e o
getSelectedCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button) getSelectedCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button)
getSelectedCloseObj w = do getSelectedCloseObj w = do
(i, j, _) <- w ^? hud . hudElement . diSelection . _Just (i, j, _) <- w ^? hud . diSelection . _Just
case i of case i of
3 -> Left <$> w ^? hud . closeItems . ix j 3 -> Left <$> w ^? hud . closeItems . ix j
5 -> do 5 -> do
+1 -1
View File
@@ -26,7 +26,7 @@ import Geometry.Data
scrollSelectionSections :: scrollSelectionSections ::
Int -> Int ->
IM.IntMap (SelectionSection a) -> IMSS a ->
Maybe (Int, Int,IS.IntSet) -> Maybe (Int, Int,IS.IntSet) ->
Maybe (Int, Int,IS.IntSet) Maybe (Int, Int,IS.IntSet)
scrollSelectionSections yi sss msel scrollSelectionSections yi sss msel
+8 -8
View File
@@ -333,11 +333,11 @@ updateMagnets lw =
checkTermDist :: World -> World checkTermDist :: World -> World
checkTermDist w = fromMaybe w $ do checkTermDist w = fromMaybe w $ do
tmid <- w ^? hud . hudElement . subInventory . termID tmid <- w ^? hud . subInventory . termID
btid <- w ^? cWorld . lWorld . terminals . ix tmid . tmButtonID btid <- w ^? cWorld . lWorld . terminals . ix tmid . tmButtonID
btpos <- w ^? cWorld . lWorld . buttons . ix btid . btPos btpos <- w ^? cWorld . lWorld . buttons . ix btid . btPos
guard $ dist btpos (_crPos $ you w) > 40 guard $ dist btpos (_crPos $ you w) > 40
return $ w & hud . hudElement . subInventory .~ NoSubInventory return $ w & hud . subInventory .~ NoSubInventory
updateMouseContext :: Configuration -> Universe -> Universe updateMouseContext :: Configuration -> Universe -> Universe
updateMouseContext cfig u = case u ^? uvScreenLayers . ix 0 of updateMouseContext cfig u = case u ^? uvScreenLayers . ix 0 of
@@ -363,13 +363,13 @@ updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of
| otherwise = MouseInGame | otherwise = MouseInGame
mpos = w ^. input . mousePos mpos = w ^. input . mousePos
invdrag i' = fromMaybe (OverInvDrag i' Nothing) $ do invdrag i' = fromMaybe (OverInvDrag i' Nothing) $ do
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . diSections
(i, j) <- inverseSelNumPos cfig invDP sss mpos (i, j) <- inverseSelNumPos cfig invDP sss mpos
return $ OverInvDrag i' (Just (i, j)) return $ OverInvDrag i' (Just (i, j))
overinv = do overinv = do
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . diSections
selpos@(i, j) <- inverseSelNumPos cfig invDP sss mpos selpos@(i, j) <- inverseSelNumPos cfig invDP sss mpos
case w ^? hud . hudElement . subInventory . ciSelection of case w ^? hud . subInventory . ciSelection of
Just _ | i == 0 -> return $ OverCombFiltInv selpos Just _ | i == 0 -> return $ OverCombFiltInv selpos
Just _ -> Nothing Just _ -> Nothing
_ -> do _ -> do
@@ -377,8 +377,8 @@ updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of
guard =<< sss ^? ix i . ssItems . ix j . siIsSelectable guard =<< sss ^? ix i . ssItems . ix j . siIsSelectable
return $ OverInvSelect selpos return $ OverInvSelect selpos
overcomb = do overcomb = do
sss <- w ^? hud . hudElement . subInventory . ciSections sss <- w ^? hud . subInventory . ciSections
(xl, xr, _) <- w ^? hud . hudElement . subInventory . ciSelection . _Just (xl, xr, _) <- w ^? hud . subInventory . ciSelection . _Just
let msel = (xl, xr) let msel = (xl, xr)
let mpossel = inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos) let mpossel = inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos)
return $ case mpossel of return $ case mpossel of
@@ -387,7 +387,7 @@ updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of
Just x | x == msel -> OverCombCombine x Just x | x == msel -> OverCombCombine x
Just x -> OverCombSelect x Just x -> OverCombSelect x
overterm = do overterm = do
tmid <- w ^? hud . hudElement . subInventory . termID tmid <- w ^? hud . subInventory . termID
tm <- w ^? cWorld . lWorld . terminals . ix tmid tm <- w ^? cWorld . lWorld . terminals . ix tmid
return $ return $
if isOverTerminalScreen cfig mpos if isOverTerminalScreen cfig mpos
+56 -56
View File
@@ -43,8 +43,8 @@ import NewInt
import SDL import SDL
updateUseInputInGame :: Universe -> Universe updateUseInputInGame :: Universe -> Universe
updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudElement of updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud of
DisplayInventory{_subInventory = si, _diSelection = disel} -> case si of HUD{_subInventory = si, _diSelection = disel} -> case si of
DisplayTerminal tmid -> updateKeysInTerminal tmid u DisplayTerminal tmid -> updateKeysInTerminal tmid u
CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (-1, _, _))} -> CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (-1, _, _))} ->
u u
@@ -64,7 +64,7 @@ updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudEleme
& uvWorld %~ setInvPosFromSS & uvWorld %~ setInvPosFromSS
_ -> M.foldlWithKey' updateKeyInGame u pkeys _ -> M.foldlWithKey' updateKeyInGame u pkeys
where where
tohud = uvWorld . hud . hudElement tohud = uvWorld . hud
pkeys = u ^. uvWorld . input . pressedKeys pkeys = u ^. uvWorld . input . pressedKeys
dodisplayregexinput filterprism filterlens x di = fromMaybe di $ do dodisplayregexinput filterprism filterlens x di = fromMaybe di $ do
sss <- di ^? diSections sss <- di ^? diSections
@@ -98,7 +98,7 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of
OverInvDragSelect{} | ButtonRight `M.member` (w ^. input . mouseButtons) -> OverInvDragSelect{} | ButtonRight `M.member` (w ^. input . mouseButtons) ->
w & input . mouseContext .~ MouseGameRotate w & input . mouseContext .~ MouseGameRotate
OverInvDragSelect (Just sstart) _ -> OverInvDragSelect (Just sstart) _ ->
let sss = w ^. hud . hudElement . diSections let sss = w ^. hud . diSections
msel = inverseSelNumPos cfig invDP sss (w ^. input . mousePos) msel = inverseSelNumPos cfig invDP sss (w ^. input . mousePos)
in case msel of in case msel of
Nothing -> w & input . mouseContext . mcoSelEnd .~ Nothing Nothing -> w & input . mouseContext . mcoSelEnd .~ Nothing
@@ -112,7 +112,7 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of
(IM.lookupMax =<< sss ^? ix (fst sstart) . ssItems) (IM.lookupMax =<< sss ^? ix (fst sstart) . ssItems)
-- not sure how the above performs when filtering... -- not sure how the above performs when filtering...
OverInvDragSelect Nothing _ -> fromMaybe w $ do OverInvDragSelect Nothing _ -> fromMaybe w $ do
sss <- w ^? hud . hudElement . diSections sss <- w ^? hud . diSections
ysel <- ysel <-
inverseSelSecYint inverseSelSecYint
(posSelSecYint cfig invDP (w ^. input . mousePos . _y)) (posSelSecYint cfig invDP (w ^. input . mousePos . _y))
@@ -126,9 +126,9 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of
doDrag :: Configuration -> Int -> Int -> Maybe (Int, Int) -> World -> World doDrag :: Configuration -> Int -> Int -> Maybe (Int, Int) -> World -> World
doDrag cfig n k mmouseover w = fromMaybe w $ do doDrag cfig n k mmouseover w = fromMaybe w $ do
guard (n /= 0) guard (n /= 0)
ss <- w ^? hud . hudElement . diSections . ix k . ssItems ss <- w ^? hud . diSections . ix k . ssItems
x <- mmouseover x <- mmouseover
is <- w ^? hud . hudElement . diSelection . _Just . _3 is <- w ^? hud . diSelection . _Just . _3
return $ return $
if concurrentIS is if concurrentIS is
then shiftInvItems cfig n k x is ss w then shiftInvItems cfig n k x is ss w
@@ -138,7 +138,7 @@ tryDropSelected :: Maybe (Int, Int) -> World -> Maybe World
tryDropSelected mpos w = do tryDropSelected mpos w = do
guard $ maybe True (\(i, _) -> i == 3) mpos guard $ maybe True (\(i, _) -> i == 3) mpos
cr <- w ^? cWorld . lWorld . creatures . ix 0 cr <- w ^? cWorld . lWorld . creatures . ix 0
(0, _, xs) <- w ^? hud . hudElement . diSelection . _Just (0, _, xs) <- w ^? hud . diSelection . _Just
return . foldl' (flip $ dropItem cr) w . IS.toDescList $ xs return . foldl' (flip $ dropItem cr) w . IS.toDescList $ xs
tryPickupSelected :: Int -> Maybe (Int, Int) -> World -> Maybe World tryPickupSelected :: Int -> Maybe (Int, Int) -> World -> Maybe World
@@ -146,7 +146,7 @@ tryPickupSelected k mpos w = do
guard $ k == 3 guard $ k == 3
guard $ maybe True (\(i, _) -> i == 0 || i == 1) mpos guard $ maybe True (\(i, _) -> i == 0 || i == 1) mpos
cr <- w ^? cWorld . lWorld . creatures . ix 0 cr <- w ^? cWorld . lWorld . creatures . ix 0
xs <- w ^? hud . hudElement . diSelection . _Just . _3 xs <- w ^? hud . diSelection . _Just . _3
let nfreeslots = crNumFreeSlots (w ^. cWorld . lWorld . items) cr let nfreeslots = crNumFreeSlots (w ^. cWorld . lWorld . items) cr
itmstopickup = mapMaybe g $ IS.toList xs itmstopickup = mapMaybe g $ IS.toList xs
slotsneeded = alaf Sum foldMap itInvHeight itmstopickup slotsneeded = alaf Sum foldMap itInvHeight itmstopickup
@@ -157,7 +157,7 @@ tryPickupSelected k mpos w = do
_ -> foldl' (flip $ pickUpItem 0) w ispickup & newdisel (length (cr ^. crInv)) xs _ -> foldl' (flip $ pickUpItem 0) w ispickup & newdisel (length (cr ^. crInv)) xs
where where
newdisel j xs = newdisel j xs =
hud . hudElement . diSelection hud . diSelection
?~ (0, j, IS.fromDistinctAscList [j .. j + IS.size xs -1]) ?~ (0, j, IS.fromDistinctAscList [j .. j + IS.size xs -1])
g i = do g i = do
NInt j <- w ^? hud . closeItems . ix i NInt j <- w ^? hud . closeItems . ix i
@@ -171,25 +171,25 @@ updateMouseReleaseInGame w = case w ^. input . mouseContext of
OverInvDragSelect (Just ssel) mesel OverInvDragSelect (Just ssel) mesel
| ScancodeLShift `M.member` (w ^. input . pressedKeys) -> | ScancodeLShift `M.member` (w ^. input . pressedKeys) ->
w & input . mouseContext .~ MouseInGame w & input . mouseContext .~ MouseInGame
& hud . hudElement . diSelection . _Just . _3 & hud . diSelection . _Just . _3
%~ getuniques %~ getuniques
( maybe ( maybe
mempty mempty
(h ssel) (h ssel)
(guard (ssel ^? _1 == w ^? hud . hudElement . diSelection . _Just . _1) >> mesel ^? _Just) (guard (ssel ^? _1 == w ^? hud . diSelection . _Just . _1) >> mesel ^? _Just)
) )
OverInvDragSelect (Just ssel) (Just esel) -> OverInvDragSelect (Just ssel) (Just esel) ->
w & input . mouseContext .~ MouseInGame w & input . mouseContext .~ MouseInGame
& invSetSelection (f (fst ssel, esel) (h ssel esel)) & invSetSelection (f (fst ssel, esel) (h ssel esel))
OverInvDragSelect{} -> OverInvDragSelect{} ->
w & input . mouseContext .~ MouseInGame w & input . mouseContext .~ MouseInGame
& hud . hudElement . diSelection . _Just . _3 %~ const mempty & hud . diSelection . _Just . _3 %~ const mempty
_ -> w _ -> w
where where
getuniques x y = IS.union x y IS.\\ IS.intersection x y getuniques x y = IS.union x y IS.\\ IS.intersection x y
f (x, y) z = (x, y, z) f (x, y) z = (x, y, z)
h (k, i) j = fold $ do h (k, i) j = fold $ do
sss <- w ^? hud . hudElement . diSections . ix k . ssItems sss <- w ^? hud . diSections . ix k . ssItems
let (_, xss) = IM.split (min i j -1) sss let (_, xss) = IM.split (min i j -1) sss
(yss, _) = IM.split (max i j + 1) xss (yss, _) = IM.split (max i j + 1) xss
return . IM.keysSet $ yss return . IM.keysSet $ yss
@@ -203,7 +203,7 @@ isGroupSelectableSection = \case
updateMouseClickInGame :: Configuration -> World -> World updateMouseClickInGame :: Configuration -> World -> World
updateMouseClickInGame cfig w = case w ^. input . mouseContext of updateMouseClickInGame cfig w = case w ^. input . mouseContext of
MouseInGame -> fromMaybe (w & input . mouseContext .~ OverInvDragSelect Nothing Nothing) $ do MouseInGame -> fromMaybe (w & input . mouseContext .~ OverInvDragSelect Nothing Nothing) $ do
let sss = w ^. hud . hudElement . diSections let sss = w ^. hud . diSections
ysel <- ysel <-
inverseSelSecYint inverseSelSecYint
(posSelSecYint cfig invDP (w ^. input . mousePos . _y)) (posSelSecYint cfig invDP (w ^. input . mousePos . _y))
@@ -213,12 +213,12 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
return $ w & input . mouseContext .~ OverInvDragSelect (Just ysel) Nothing return $ w & input . mouseContext .~ OverInvDragSelect (Just ysel) Nothing
OverInvSelect (-1, _) OverInvSelect (-1, _)
| selsec == Just (-1) -> | selsec == Just (-1) ->
w & hud . hudElement . diSelection %~ endRegex (-1) w w & hud . diSelection %~ endRegex (-1) w
& hud . hudElement . diInvFilter .~ Nothing & hud . diInvFilter .~ Nothing
OverInvSelect (2, _) OverInvSelect (2, _)
| selsec == Just 2 -> | selsec == Just 2 ->
w & hud . hudElement . diSelection %~ endRegex 2 w w & hud . diSelection %~ endRegex 2 w
& hud . hudElement . diCloseFilter .~ Nothing & hud . diCloseFilter .~ Nothing
OverInvSelect x OverInvSelect x
| ScancodeLShift `M.member` (w ^. input . pressedKeys) | ScancodeLShift `M.member` (w ^. input . pressedKeys)
&& isGroupSelectableSection (fst x) -> && isGroupSelectableSection (fst x) ->
@@ -226,14 +226,14 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
OverInvSelect x -> startDrag x w OverInvSelect x -> startDrag x w
OverTerminal tmid TerminalTextInput{} -> terminalReturnEffect tmid w OverTerminal tmid TerminalTextInput{} -> terminalReturnEffect tmid w
OverTerminal tmid TerminalPressTo{} -> continueTerminal tmid w OverTerminal tmid TerminalPressTo{} -> continueTerminal tmid w
OutsideTerminal -> w & hud . hudElement . subInventory .~ NoSubInventory OutsideTerminal -> w & hud . subInventory .~ NoSubInventory
OverCombSelect x -> OverCombSelect x ->
w & hud . hudElement . subInventory . ciSelection ?~ f x w & hud . subInventory . ciSelection ?~ f x
& worldEventFlags . at CombineInventoryChange ?~ () & worldEventFlags . at CombineInventoryChange ?~ ()
OverCombFilter -> OverCombFilter ->
w & hud . hudElement . subInventory . ciFilter .~ Nothing w & hud . subInventory . ciFilter .~ Nothing
& worldEventFlags . at CombineInventoryChange ?~ () & worldEventFlags . at CombineInventoryChange ?~ ()
& hud . hudElement . subInventory . ciSelection %~ endCombineRegex w & hud . subInventory . ciSelection %~ endCombineRegex w
OverCombCombine x -> OverCombCombine x ->
w w
& tryCombine x & tryCombine x
@@ -243,7 +243,7 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
OverCombEscape -> OverCombEscape ->
w w
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
& hud . hudElement . subInventory .~ NoSubInventory & hud . subInventory .~ NoSubInventory
OverCombFiltInv (0, j) -> fromMaybe w $ do OverCombFiltInv (0, j) -> fromMaybe w $ do
str <- str <-
fmap (take 5) $ fmap (take 5) $
@@ -252,33 +252,33 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
w ^? cWorld . lWorld . items . ix k w ^? cWorld . lWorld . items . ix k
>>= (listToMaybe . basicItemDisplay) >>= (listToMaybe . basicItemDisplay)
return . (worldEventFlags . at CombineInventoryChange ?~ ()) $ return . (worldEventFlags . at CombineInventoryChange ?~ ()) $
case w ^? hud . hudElement . subInventory . ciFilter . _Just of case w ^? hud . subInventory . ciFilter . _Just of
Just ('#' : xs) Just ('#' : xs)
| str == xs -> | str == xs ->
w & hud . hudElement . subInventory . ciFilter .~ Nothing w & hud . subInventory . ciFilter .~ Nothing
_ -> w & hud . hudElement . subInventory . ciFilter ?~ ("#" ++ str) _ -> w & hud . subInventory . ciFilter ?~ ("#" ++ str)
_ -> w _ -> w
where where
f (x, y) = (x, y, mempty) f (x, y) = (x, y, mempty)
selsec = w ^? hud . hudElement . diSelection . _Just . _1 selsec = w ^? hud . diSelection . _Just . _1
endRegex :: Int -> World -> Maybe (Int, Int, IS.IntSet) -> Maybe (Int, Int, IS.IntSet) endRegex :: Int -> World -> Maybe (Int, Int, IS.IntSet) -> Maybe (Int, Int, IS.IntSet)
endRegex i w = ssSetCursor (ssLookupDown i j) sss endRegex i w = ssSetCursor (ssLookupDown i j) sss
where where
sss = w ^. hud . hudElement . diSections sss = w ^. hud . diSections
j = maybe 0 fst $ IM.lookupMin =<< sss ^? ix i . ssItems j = maybe 0 fst $ IM.lookupMin =<< sss ^? ix i . ssItems
endCombineRegex :: World -> Maybe (Int, Int, IS.IntSet) -> Maybe (Int, Int, IS.IntSet) endCombineRegex :: World -> Maybe (Int, Int, IS.IntSet) -> Maybe (Int, Int, IS.IntSet)
endCombineRegex w = ssSetCursor (ssLookupDown 0 j) sss endCombineRegex w = ssSetCursor (ssLookupDown 0 j) sss
where where
sss = w ^. hud . hudElement . subInventory . ciSections sss = w ^. hud . subInventory . ciSections
j = fromMaybe 0 $ do j = fromMaybe 0 $ do
itms <- sss ^? ix 0 . ssItems itms <- sss ^? ix 0 . ssItems
(k, _) <- IM.lookupMin itms (k, _) <- IM.lookupMin itms
return (k -1) return (k -1)
startDrag :: (Int, Int) -> World -> World startDrag :: (Int, Int) -> World -> World
startDrag (a, b) w = setcontext $ case w ^? hud . hudElement . diSelection . _Just of startDrag (a, b) w = setcontext $ case w ^? hud . diSelection . _Just of
Just (i, _, xs) | i == a && b `IS.member` xs -> w Just (i, _, xs) | i == a && b `IS.member` xs -> w
_ -> invSetSelection (a, b, IS.singleton b) w _ -> invSetSelection (a, b, IS.singleton b) w
where where
@@ -316,10 +316,10 @@ shiftInvItems cfig n k x xs ss w = setSelWhileDragging . fromMaybe w $ do
let yint = posSelSecYint cfig invDP (w ^. input . mousePos . _y) let yint = posSelSecYint cfig invDP (w ^. input . mousePos . _y)
bn = bn =
(\v -> inverseSelSecYint (yint + 1) v ^? nonInf) (\v -> inverseSelSecYint (yint + 1) v ^? nonInf)
=<< w ^? hud . hudElement . diSections =<< w ^? hud . diSections
ab = ab =
(\v -> inverseSelSecYint (yint - 1) v ^? nonInf) (\v -> inverseSelSecYint (yint - 1) v ^? nonInf)
=<< w ^? hud . hudElement . diSections =<< w ^? hud . diSections
guard $ xk == k || xk + 1 == k || xk -1 == k guard $ xk == k || xk + 1 == k || xk -1 == k
(maxi, _) <- IS.maxView xs (maxi, _) <- IS.maxView xs
(mini, _) <- IS.minView xs (mini, _) <- IS.minView xs
@@ -336,10 +336,10 @@ shiftInvItems cfig n k x xs ss w = setSelWhileDragging . fromMaybe w $ do
setSelWhileDragging :: World -> World setSelWhileDragging :: World -> World
setSelWhileDragging w = fromMaybe w $ do setSelWhileDragging w = fromMaybe w $ do
(i, _, xs) <- w ^? hud . hudElement . diSelection . _Just (i, _, xs) <- w ^? hud . diSelection . _Just
(k, j) <- w ^? input . mouseContext . mcoMaybeSelect . _Just (k, j) <- w ^? input . mouseContext . mcoMaybeSelect . _Just
guard $ i == k && j `IS.member` xs guard $ i == k && j `IS.member` xs
return $ w & hud . hudElement . diSelection . _Just . _2 .~ j return $ w & hud . diSelection . _Just . _2 .~ j
shiftInvItemsUp :: Int -> IS.IntSet -> World -> World shiftInvItemsUp :: Int -> IS.IntSet -> World -> World
shiftInvItemsUp j is w = IS.foldl' f w is shiftInvItemsUp j is w = IS.foldl' f w is
@@ -350,7 +350,7 @@ shiftInvItemsUp j is w = IS.foldl' f w is
shiftInvItemsDown :: Int -> IS.IntSet -> World -> World shiftInvItemsDown :: Int -> IS.IntSet -> World -> World
shiftInvItemsDown j is w = fromMaybe w $ do shiftInvItemsDown j is w = fromMaybe w $ do
let i = IS.findMax is let i = IS.findMax is
guard . isJust $ w ^? hud . hudElement . diSections . ix j . ssItems . ix i guard . isJust $ w ^? hud . diSections . ix j . ssItems . ix i
return $ IS.foldr f w is return $ IS.foldr f w is
where where
f i' w' = swapItemWith g (j, i') w' f i' w' = swapItemWith g (j, i') w'
@@ -386,8 +386,8 @@ updateKeysInTerminal tmid u = fromMaybe u $ do
return $ case tm ^. tmStatus of return $ case tm ^. tmStatus of
_ _
| dist x y > 40 || not (hasButtonLOS x y (u ^. uvWorld)) -> | dist x y > 40 || not (hasButtonLOS x y (u ^. uvWorld)) ->
u & uvWorld . hud . hudElement . subInventory .~ NoSubInventory u & uvWorld . hud . subInventory .~ NoSubInventory
TerminalDeactivated -> u & uvWorld . hud . hudElement . subInventory .~ NoSubInventory TerminalDeactivated -> u & uvWorld . hud . subInventory .~ NoSubInventory
TerminalTextInput{} -> updateKeysTextInputTerminal tmid u TerminalTextInput{} -> updateKeysTextInputTerminal tmid u
TerminalPressTo{} -> updateKeyContinueTerminal tmid u TerminalPressTo{} -> updateKeyContinueTerminal tmid u
_ -> u _ -> u
@@ -477,14 +477,14 @@ updateBackspaceRegex :: World -> World
updateBackspaceRegex w = case di ^? subInventory of updateBackspaceRegex w = case di ^? subInventory of
Just NoSubInventory{} Just NoSubInventory{}
| secfocus (-1) 0 -> | secfocus (-1) 0 ->
w & hud . hudElement %~ trybackspace (-1) diInvFilter diInvFilter diSelection w & hud %~ trybackspace (-1) diInvFilter diInvFilter diSelection
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
Just NoSubInventory{} Just NoSubInventory{}
| secfocus 2 3 -> | secfocus 2 3 ->
w & hud . hudElement %~ trybackspace 2 diCloseFilter diCloseFilter diSelection w & hud %~ trybackspace 2 diCloseFilter diCloseFilter diSelection
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
Just CombineInventory{} -> Just CombineInventory{} ->
w & hud . hudElement . subInventory %~ trybackspace (-1) ciFilter ciFilter ciSelection w & hud . subInventory %~ trybackspace (-1) ciFilter ciFilter ciSelection
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
_ -> w _ -> w
where where
@@ -498,25 +498,25 @@ updateBackspaceRegex w = case di ^? subInventory of
he & filtset . _Just %~ init he & filtset . _Just %~ init
& selset ?~ (x, 0, mempty) & selset ?~ (x, 0, mempty)
[] -> he & filtset .~ Nothing [] -> he & filtset .~ Nothing
di = w ^. hud . hudElement di = w ^. hud
updateEnterRegex :: World -> World updateEnterRegex :: World -> World
updateEnterRegex w = case w ^? hud . hudElement . subInventory of updateEnterRegex w = case w ^? hud . subInventory of
Just NoSubInventory{} Just NoSubInventory{}
| secfocus [-1, 0, 1] -> | secfocus [-1, 0, 1] ->
w & hud . hudElement . diSelection ?~ (-1, 0, mempty) w & hud . diSelection ?~ (-1, 0, mempty)
& hud . hudElement . diInvFilter %~ enterregex & hud . diInvFilter %~ enterregex
Just NoSubInventory{} Just NoSubInventory{}
| secfocus [2, 3] -> | secfocus [2, 3] ->
w & hud . hudElement . diSelection ?~ (2, 0, mempty) w & hud . diSelection ?~ (2, 0, mempty)
& hud . hudElement . diCloseFilter %~ enterregex & hud . diCloseFilter %~ enterregex
Just CombineInventory{} -> Just CombineInventory{} ->
w & hud . hudElement . subInventory . ciFilter %~ enterregex w & hud . subInventory . ciFilter %~ enterregex
& hud . hudElement . subInventory . ciSelection ?~ (-1, 0, mempty) & hud . subInventory . ciSelection ?~ (-1, 0, mempty)
_ -> w _ -> w
where where
secfocus xs = fromMaybe False $ do secfocus xs = fromMaybe False $ do
i <- w ^? hud . hudElement . diSelection . _Just . _1 i <- w ^? hud . diSelection . _Just . _1
return $ i `elem` xs return $ i `elem` xs
enterregex = (<|> Just "") enterregex = (<|> Just "")
@@ -524,15 +524,15 @@ pauseGame :: Universe -> Universe
pauseGame u = u & uvScreenLayers .~ [pauseMenu u] & pauseSound pauseGame u = u & uvScreenLayers .~ [pauseMenu u] & pauseSound
spaceAction :: World -> World spaceAction :: World -> World
spaceAction w = case w ^. hud . hudElement . subInventory of spaceAction w = case w ^. hud . subInventory of
NoSubInventory -> maybe id interactWithCloseObj (getCloseObj w) w NoSubInventory -> maybe id interactWithCloseObj (getCloseObj w) w
_ -> w & hud . hudElement . subInventory .~ NoSubInventory _ -> w & hud . subInventory .~ NoSubInventory
getCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button) getCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button)
getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut
where where
topcitem = do topcitem = do
k <- (w ^? hud . hudElement . diSections . ix 3 . ssItems) k <- (w ^? hud . diSections . ix 3 . ssItems)
>>= (fmap fst . IM.lookupMin) >>= (fmap fst . IM.lookupMin)
Left <$> w ^? hud . closeItems . ix k Left <$> w ^? hud . closeItems . ix k
topcbut = do topcbut = do
@@ -541,15 +541,15 @@ getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut
tryCombine :: (Int, Int) -> World -> World tryCombine :: (Int, Int) -> World -> World
tryCombine (i, j) w = fromMaybe w $ do tryCombine (i, j) w = fromMaybe w $ do
CombinableItem is it <- w ^? hud . hudElement . subInventory CombinableItem is it <- w ^? hud . subInventory
. ciSections . ix i . ssItems . ix j . siPayload . _Just . ciSections . ix i . ssItems . ix j . siPayload . _Just
p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos
return $ return $
(createItemYou it (foldr (destroyInvItem 0 . NInt) w (sort is))) (createItemYou it (foldr (destroyInvItem 0 . NInt) w (sort is)))
& soundStart InventorySound p wrench1S Nothing & soundStart InventorySound p wrench1S Nothing
& hud . hudElement . diSelection . _Just . _3 .~ mempty & hud . diSelection . _Just . _3 .~ mempty
maybeExitCombine :: World -> World maybeExitCombine :: World -> World
maybeExitCombine w maybeExitCombine w
| ButtonRight `M.member` (w ^. input . mouseButtons) = w | ButtonRight `M.member` (w ^. input . mouseButtons) = w
| otherwise = w & hud . hudElement . subInventory .~ NoSubInventory | otherwise = w & hud . subInventory .~ NoSubInventory
+2 -2
View File
@@ -23,7 +23,7 @@ import SDL
-- yi should be nonzero -- yi should be nonzero
updateWheelEvent :: Int -> World -> World updateWheelEvent :: Int -> World -> World
updateWheelEvent yi w = case w ^. hud . hudElement . subInventory of updateWheelEvent yi w = case w ^. hud . subInventory of
NoSubInventory -> updateBaseWheelEvent yi w NoSubInventory -> updateBaseWheelEvent yi w
ExamineInventory -> updateBaseWheelEvent yi w ExamineInventory -> updateBaseWheelEvent yi w
MapperInventory{} -> updateBaseWheelEvent yi w MapperInventory{} -> updateBaseWheelEvent yi w
@@ -118,7 +118,7 @@ zoomOutLongGun sc = fromMaybe sc $ do
moveCombineSel :: Int -> World -> World moveCombineSel :: Int -> World -> World
moveCombineSel yi = moveCombineSel yi =
( hud . hudElement . subInventory %~ doscroll ( hud . subInventory %~ doscroll
) )
. (worldEventFlags . at CombineInventoryChange ?~ ()) . (worldEventFlags . at CombineInventoryChange ?~ ())
where where
+3 -3
View File
@@ -55,7 +55,7 @@ accessTerminal tid w = fromMaybe w $ do
tm <- w ^? cWorld . lWorld . terminals . ix tid tm <- w ^? cWorld . lWorld . terminals . ix tid
guard (tm ^. tmStatus /= TerminalDeactivated) guard (tm ^. tmStatus /= TerminalDeactivated)
return $ return $
w & hud . hudElement . subInventory .~ DisplayTerminal tid w & hud . subInventory .~ DisplayTerminal tid
& cWorld . lWorld . terminals . ix tid %~ tryToBoot & cWorld . lWorld . terminals . ix tid %~ tryToBoot
where where
tryToBoot tm = case _tmStatus tm of tryToBoot tm = case _tmStatus tm of
@@ -106,6 +106,6 @@ resetTerminal x tm =
. exitTerminalSubInv . exitTerminalSubInv
exitTerminalSubInv :: World -> World exitTerminalSubInv :: World -> World
exitTerminalSubInv w = case w ^? hud . hudElement . subInventory . termID of exitTerminalSubInv w = case w ^? hud . subInventory . termID of
Just _ -> w & hud . hudElement . subInventory .~ NoSubInventory Just _ -> w & hud . subInventory .~ NoSubInventory
_ -> w _ -> w
+96 -100
View File
@@ -239,7 +239,7 @@ CombClust src/Dodge/Combine/Graph.hs 19;" t
CombEdge src/Dodge/Combine/Graph.hs 32;" t CombEdge src/Dodge/Combine/Graph.hs 32;" t
CombNode src/Dodge/Combine/Graph.hs 25;" t CombNode src/Dodge/Combine/Graph.hs 25;" t
CombinableItem src/Dodge/Data/Combine.hs 5;" t CombinableItem src/Dodge/Data/Combine.hs 5;" t
CombineInventory src/Dodge/Data/HUD.hs 35;" C CombineInventory src/Dodge/Data/HUD.hs 26;" C
CombineInventoryChange src/Dodge/Data/World.hs 32;" C CombineInventoryChange src/Dodge/Data/World.hs 32;" C
ComsSS src/Dodge/Data/Scenario.hs 98;" C ComsSS src/Dodge/Data/Scenario.hs 98;" C
ConcurrentEffect src/Loop/Data.hs 6;" t ConcurrentEffect src/Loop/Data.hs 6;" t
@@ -343,8 +343,7 @@ DestroyItem src/Dodge/Data/Scenario.hs 7;" C
Detector src/Dodge/Data/Item/Combine.hs 183;" t Detector src/Dodge/Data/Item/Combine.hs 183;" t
Dirt src/Dodge/Data/Material.hs 11;" C Dirt src/Dodge/Data/Material.hs 11;" C
DisasterType src/Dodge/Data/Scenario.hs 24;" t DisasterType src/Dodge/Data/Scenario.hs 24;" t
DisplayInventory src/Dodge/Data/HUD.hs 19;" C DisplayTerminal src/Dodge/Data/HUD.hs 31;" C
DisplayTerminal src/Dodge/Data/HUD.hs 40;" C
Distortion src/Dodge/Data/Distortion.hs 12;" t Distortion src/Dodge/Data/Distortion.hs 12;" t
DivineRetribution src/Dodge/Data/Scenario.hs 35;" C DivineRetribution src/Dodge/Data/Scenario.hs 35;" C
DoActionIf src/Dodge/Data/ActionPlan.hs 116;" C DoActionIf src/Dodge/Data/ActionPlan.hs 116;" C
@@ -417,7 +416,7 @@ EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 17;" C
Escape src/Dodge/Data/Scenario.hs 10;" C Escape src/Dodge/Data/Scenario.hs 10;" C
EscapeMenuOption src/Dodge/Data/Universe.hs 76;" t EscapeMenuOption src/Dodge/Data/Universe.hs 76;" t
Essential src/Shape/Data.hs 34;" C Essential src/Shape/Data.hs 34;" C
ExamineInventory src/Dodge/Data/HUD.hs 29;" C ExamineInventory src/Dodge/Data/HUD.hs 20;" C
Explore src/Dodge/Data/Scenario.hs 4;" C Explore src/Dodge/Data/Scenario.hs 4;" C
Explosion src/Dodge/Data/SoundOrigin.hs 38;" C Explosion src/Dodge/Data/SoundOrigin.hs 38;" C
ExplosionPayload src/Dodge/Data/Payload.hs 11;" C ExplosionPayload src/Dodge/Data/Payload.hs 11;" C
@@ -536,8 +535,7 @@ HEATSENSOR src/Dodge/Data/Item/Combine.hs 83;" C
HELD src/Dodge/Data/Item/Combine.hs 17;" C HELD src/Dodge/Data/Item/Combine.hs 17;" C
HOMINGMODULE src/Dodge/Data/Item/Combine.hs 102;" C HOMINGMODULE src/Dodge/Data/Item/Combine.hs 102;" C
HOSE src/Dodge/Data/Item/Combine.hs 55;" C HOSE src/Dodge/Data/Item/Combine.hs 55;" C
HUD src/Dodge/Data/HUD.hs 42;" t HUD src/Dodge/Data/HUD.hs 33;" t
HUDElement src/Dodge/Data/HUD.hs 18;" t
HalfRes src/Dodge/Data/Config.hs 97;" C HalfRes src/Dodge/Data/Config.hs 97;" C
HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C
HardQuit src/Dodge/Data/Universe.hs 70;" C HardQuit src/Dodge/Data/Universe.hs 70;" C
@@ -597,7 +595,7 @@ Inanimate src/Dodge/Data/ActionPlan.hs 17;" C
InanimateAI src/Dodge/Data/Creature/Misc.hs 41;" C InanimateAI src/Dodge/Data/Creature/Misc.hs 41;" C
IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 13;" C IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 13;" C
InheritFloor src/Data/Tile.hs 12;" C InheritFloor src/Data/Tile.hs 12;" C
Input src/Dodge/Data/Input.hs 37;" t Input src/Dodge/Data/Input.hs 33;" t
InputScreen src/Dodge/Data/Universe.hs 92;" C InputScreen src/Dodge/Data/Universe.hs 92;" C
Inspect_wall src/Dodge/Data/Config.hs 91;" C Inspect_wall src/Dodge/Data/Config.hs 91;" C
Institution src/Dodge/Data/Scenario.hs 42;" t Institution src/Dodge/Data/Scenario.hs 42;" t
@@ -755,7 +753,7 @@ MakeTempLight src/Dodge/Data/WorldEffect.hs 34;" C
ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" t ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" t
Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" t Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" t
Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" C Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" C
MapperInventory src/Dodge/Data/HUD.hs 30;" C MapperInventory src/Dodge/Data/HUD.hs 21;" C
MapperSF src/Dodge/Data/ComposedItem.hs 39;" C MapperSF src/Dodge/Data/ComposedItem.hs 39;" C
Material src/Dodge/Data/Material.hs 11;" t Material src/Dodge/Data/Material.hs 11;" t
MaterialSound src/Dodge/Data/SoundOrigin.hs 35;" C MaterialSound src/Dodge/Data/SoundOrigin.hs 35;" C
@@ -793,7 +791,7 @@ MountedObject src/Dodge/Data/MountedObject.hs 11;" t
MountedProp src/Dodge/Data/MountedObject.hs 13;" C MountedProp src/Dodge/Data/MountedObject.hs 13;" C
MouseAiming src/Dodge/Data/Input.hs 16;" C MouseAiming src/Dodge/Data/Input.hs 16;" C
MouseContext src/Dodge/Data/Input.hs 14;" t MouseContext src/Dodge/Data/Input.hs 14;" t
MouseGameRotate src/Dodge/Data/Input.hs 34;" C MouseGameRotate src/Dodge/Data/Input.hs 30;" C
MouseInGame src/Dodge/Data/Input.hs 17;" C MouseInGame src/Dodge/Data/Input.hs 17;" C
MouseMenuClick src/Dodge/Data/Input.hs 18;" C MouseMenuClick src/Dodge/Data/Input.hs 18;" C
MouseMenuCursor src/Dodge/Data/Input.hs 19;" C MouseMenuCursor src/Dodge/Data/Input.hs 19;" C
@@ -870,7 +868,7 @@ NoRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C
NoSF src/Dodge/Data/ComposedItem.hs 29;" C NoSF src/Dodge/Data/ComposedItem.hs 29;" C
NoShadowFidelity src/Shape/Data.hs 25;" C NoShadowFidelity src/Shape/Data.hs 25;" C
NoShadows src/Dodge/Data/Config.hs 103;" C NoShadows src/Dodge/Data/Config.hs 103;" C
NoSubInventory src/Dodge/Data/HUD.hs 28;" C NoSubInventory src/Dodge/Data/HUD.hs 19;" C
NoTrigger src/Dodge/Data/TriggerType.hs 11;" C NoTrigger src/Dodge/Data/TriggerType.hs 11;" C
NoWorldEffect src/Dodge/Data/WorldEffect.hs 23;" C NoWorldEffect src/Dodge/Data/WorldEffect.hs 23;" C
Noclip src/Dodge/Data/Config.hs 70;" C Noclip src/Dodge/Data/Config.hs 70;" C
@@ -954,17 +952,17 @@ OptionScreen src/Dodge/Data/Universe.hs 82;" C
OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t
OutAction src/Dodge/Creature/Action.hs 46;" t OutAction src/Dodge/Creature/Action.hs 46;" t
OutLink src/Dodge/Data/Room.hs 43;" C OutLink src/Dodge/Data/Room.hs 43;" C
OutsideTerminal src/Dodge/Data/Input.hs 33;" C OutsideTerminal src/Dodge/Data/Input.hs 29;" C
OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C OutwardShockwave src/Dodge/Data/Shockwave.hs 14;" C
OverCombCombine src/Dodge/Data/Input.hs 29;" C OverCombCombine src/Dodge/Data/Input.hs 25;" C
OverCombEscape src/Dodge/Data/Input.hs 31;" C OverCombEscape src/Dodge/Data/Input.hs 27;" C
OverCombFiltInv src/Dodge/Data/Input.hs 27;" C OverCombFiltInv src/Dodge/Data/Input.hs 23;" C
OverCombFilter src/Dodge/Data/Input.hs 30;" C OverCombFilter src/Dodge/Data/Input.hs 26;" C
OverCombSelect src/Dodge/Data/Input.hs 28;" C OverCombSelect src/Dodge/Data/Input.hs 24;" C
OverInvDrag src/Dodge/Data/Input.hs 20;" C OverInvDrag src/Dodge/Data/Input.hs 20;" C
OverInvDragSelect src/Dodge/Data/Input.hs 25;" C OverInvDragSelect src/Dodge/Data/Input.hs 21;" C
OverInvSelect src/Dodge/Data/Input.hs 26;" C OverInvSelect src/Dodge/Data/Input.hs 22;" C
OverTerminal src/Dodge/Data/Input.hs 32;" C OverTerminal src/Dodge/Data/Input.hs 28;" C
OverreachingAI src/Dodge/Data/Scenario.hs 31;" C OverreachingAI src/Dodge/Data/Scenario.hs 31;" C
Overstrung src/Dodge/Data/Creature/Perception.hs 57;" C Overstrung src/Dodge/Data/Creature/Perception.hs 57;" C
P2Ac src/Dodge/Data/CreatureEffect.hs 53;" t P2Ac src/Dodge/Data/CreatureEffect.hs 53;" t
@@ -1295,7 +1293,7 @@ Stone src/Dodge/Data/Material.hs 11;" C
StorageSS src/Dodge/Data/Scenario.hs 94;" C StorageSS src/Dodge/Data/Scenario.hs 94;" C
Strategy src/Dodge/Data/ActionPlan.hs 176;" t Strategy src/Dodge/Data/ActionPlan.hs 176;" t
StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C StrategyActions src/Dodge/Data/ActionPlan.hs 188;" C
SubInventory src/Dodge/Data/HUD.hs 27;" t SubInventory src/Dodge/Data/HUD.hs 18;" t
Superfluous src/Shape/Data.hs 38;" C Superfluous src/Shape/Data.hs 38;" C
Surface src/Shape/Data.hs 41;" t Surface src/Shape/Data.hs 41;" t
Survive src/Dodge/Data/Scenario.hs 5;" C Survive src/Dodge/Data/Scenario.hs 5;" C
@@ -1325,15 +1323,15 @@ TORCH src/Dodge/Data/Item/Combine.hs 176;" C
TRACTORGUN src/Dodge/Data/Item/Combine.hs 170;" C TRACTORGUN src/Dodge/Data/Item/Combine.hs 170;" C
TRANSFORMER src/Dodge/Data/Item/Combine.hs 65;" C TRANSFORMER src/Dodge/Data/Item/Combine.hs 65;" C
TRANSMITTER src/Dodge/Data/Item/Combine.hs 71;" C TRANSMITTER src/Dodge/Data/Item/Combine.hs 71;" C
TSbackspace src/Dodge/Data/Input.hs 58;" C TSbackspace src/Dodge/Data/Input.hs 54;" C
TSdelete src/Dodge/Data/Input.hs 59;" C TSdelete src/Dodge/Data/Input.hs 55;" C
TSdown src/Dodge/Data/Input.hs 64;" C TSdown src/Dodge/Data/Input.hs 60;" C
TSescape src/Dodge/Data/Input.hs 56;" C TSescape src/Dodge/Data/Input.hs 52;" C
TSleft src/Dodge/Data/Input.hs 61;" C TSleft src/Dodge/Data/Input.hs 57;" C
TSreturn src/Dodge/Data/Input.hs 57;" C TSreturn src/Dodge/Data/Input.hs 53;" C
TSright src/Dodge/Data/Input.hs 62;" C TSright src/Dodge/Data/Input.hs 58;" C
TStab src/Dodge/Data/Input.hs 60;" C TStab src/Dodge/Data/Input.hs 56;" C
TSup src/Dodge/Data/Input.hs 63;" C TSup src/Dodge/Data/Input.hs 59;" C
TUBE src/Dodge/Data/Item/Combine.hs 52;" C TUBE src/Dodge/Data/Item/Combine.hs 52;" C
Tap src/Dodge/Data/SoundOrigin.hs 39;" C Tap src/Dodge/Data/SoundOrigin.hs 39;" C
TargetCursor src/Dodge/Data/Item/Targeting.hs 14;" C TargetCursor src/Dodge/Data/Item/Targeting.hs 14;" C
@@ -1342,7 +1340,7 @@ TargetRBPress src/Dodge/Data/Item/Targeting.hs 12;" C
TargetingLaser src/Dodge/Data/Laser.hs 18;" C TargetingLaser src/Dodge/Data/Laser.hs 18;" C
TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t
TeleSound src/Dodge/Data/SoundOrigin.hs 36;" C TeleSound src/Dodge/Data/SoundOrigin.hs 36;" C
TermSignal src/Dodge/Data/Input.hs 55;" t TermSignal src/Dodge/Data/Input.hs 51;" t
Terminal src/Dodge/Data/Terminal.hs 21;" t Terminal src/Dodge/Data/Terminal.hs 21;" t
TerminalDeactivated src/Dodge/Data/Terminal/Status.hs 12;" C TerminalDeactivated src/Dodge/Data/Terminal/Status.hs 12;" C
TerminalLine src/Dodge/Data/Terminal.hs 38;" t TerminalLine src/Dodge/Data/Terminal.hs 38;" t
@@ -1637,9 +1635,9 @@ _camViewFrom src/Dodge/Data/Camera.hs 29;" f
_camZoom src/Dodge/Data/Camera.hs 26;" f _camZoom src/Dodge/Data/Camera.hs 26;" f
_canID src/Dodge/Data/LWorld.hs 170;" f _canID src/Dodge/Data/LWorld.hs 170;" f
_carriage src/Dodge/Data/Creature/Stance.hs 14;" f _carriage src/Dodge/Data/Creature/Stance.hs 14;" f
_carteCenter src/Dodge/Data/HUD.hs 44;" f _carteCenter src/Dodge/Data/HUD.hs 39;" f
_carteRot src/Dodge/Data/HUD.hs 46;" f _carteRot src/Dodge/Data/HUD.hs 41;" f
_carteZoom src/Dodge/Data/HUD.hs 45;" f _carteZoom src/Dodge/Data/HUD.hs 40;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 88;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 88;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 96;" f _cdtCloseLeft src/Dodge/Data/DoubleTree.hs 96;" f
_cdtCloseRight src/Dodge/Data/DoubleTree.hs 90;" f _cdtCloseRight src/Dodge/Data/DoubleTree.hs 90;" f
@@ -1655,11 +1653,11 @@ _ceString src/Dodge/Data/Universe.hs 67;" f
_chasmShader src/Data/Preload/Render.hs 46;" f _chasmShader src/Data/Preload/Render.hs 46;" f
_chasmVBO src/Data/Preload/Render.hs 45;" f _chasmVBO src/Data/Preload/Render.hs 45;" f
_chasms src/Dodge/Data/CWorld.hs 30;" f _chasms src/Dodge/Data/CWorld.hs 30;" f
_ciFilter src/Dodge/Data/HUD.hs 38;" f _ciFilter src/Dodge/Data/HUD.hs 29;" f
_ciInvIDs src/Dodge/Data/Combine.hs 6;" f _ciInvIDs src/Dodge/Data/Combine.hs 6;" f
_ciItem src/Dodge/Data/Combine.hs 7;" f _ciItem src/Dodge/Data/Combine.hs 7;" f
_ciSections src/Dodge/Data/HUD.hs 36;" f _ciSections src/Dodge/Data/HUD.hs 27;" f
_ciSelection src/Dodge/Data/HUD.hs 37;" f _ciSelection src/Dodge/Data/HUD.hs 28;" f
_cigType src/Dodge/Data/Camera.hs 19;" f _cigType src/Dodge/Data/Camera.hs 19;" f
_clPos src/Dodge/Data/Cloud.hs 15;" f _clPos src/Dodge/Data/Cloud.hs 15;" f
_clTimer src/Dodge/Data/Cloud.hs 17;" f _clTimer src/Dodge/Data/Cloud.hs 17;" f
@@ -1678,10 +1676,10 @@ _cldtParent src/Dodge/Data/DoubleTree.hs 47;" f
_cldtParent src/Dodge/Data/DoubleTree.hs 56;" f _cldtParent src/Dodge/Data/DoubleTree.hs 56;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 45;" f _cldtUp src/Dodge/Data/DoubleTree.hs 45;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 53;" f _cldtUp src/Dodge/Data/DoubleTree.hs 53;" f
_clickPos src/Dodge/Data/Input.hs 46;" f _clickPos src/Dodge/Data/Input.hs 42;" f
_clickWorldPos src/Dodge/Data/Input.hs 48;" f _clickWorldPos src/Dodge/Data/Input.hs 44;" f
_closeButtons src/Dodge/Data/HUD.hs 48;" f _closeButtons src/Dodge/Data/HUD.hs 43;" f
_closeItems src/Dodge/Data/HUD.hs 47;" f _closeItems src/Dodge/Data/HUD.hs 42;" f
_cloudEBO src/Data/Preload/Render.hs 51;" f _cloudEBO src/Data/Preload/Render.hs 51;" f
_cloudShader src/Data/Preload/Render.hs 50;" f _cloudShader src/Data/Preload/Render.hs 50;" f
_cloudVBO src/Data/Preload/Render.hs 49;" f _cloudVBO src/Data/Preload/Render.hs 49;" f
@@ -1766,10 +1764,10 @@ _debugV3 src/Dodge/Data/Universe.hs 59;" f
_debug_booleans src/Dodge/Data/Config.hs 57;" f _debug_booleans src/Dodge/Data/Config.hs 57;" f
_debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f _debug_view_clip_bounds src/Dodge/Data/Config.hs 56;" f
_delayedEvents src/Dodge/Data/LWorld.hs 137;" f _delayedEvents src/Dodge/Data/LWorld.hs 137;" f
_diCloseFilter src/Dodge/Data/HUD.hs 24;" f _diCloseFilter src/Dodge/Data/HUD.hs 38;" f
_diInvFilter src/Dodge/Data/HUD.hs 23;" f _diInvFilter src/Dodge/Data/HUD.hs 37;" f
_diSections src/Dodge/Data/HUD.hs 21;" f _diSections src/Dodge/Data/HUD.hs 35;" f
_diSelection src/Dodge/Data/HUD.hs 22;" f _diSelection src/Dodge/Data/HUD.hs 36;" f
_dimAttachPos src/Dodge/Data/Item/Misc.hs 16;" f _dimAttachPos src/Dodge/Data/Item/Misc.hs 16;" f
_dimCenter src/Dodge/Data/Item/Misc.hs 15;" f _dimCenter src/Dodge/Data/Item/Misc.hs 15;" f
_dimRad src/Dodge/Data/Item/Misc.hs 14;" f _dimRad src/Dodge/Data/Item/Misc.hs 14;" f
@@ -1908,11 +1906,10 @@ _guTime src/Dodge/Data/Gust.hs 17;" f
_guVel src/Dodge/Data/Gust.hs 16;" f _guVel src/Dodge/Data/Gust.hs 16;" f
_gusts src/Dodge/Data/LWorld.hs 105;" f _gusts src/Dodge/Data/LWorld.hs 105;" f
_gwWorld src/Dodge/Data/GenWorld.hs 24;" f _gwWorld src/Dodge/Data/GenWorld.hs 24;" f
_heldPos src/Dodge/Data/Input.hs 47;" f _heldPos src/Dodge/Data/Input.hs 43;" f
_heldWorldPos src/Dodge/Data/Input.hs 49;" f _heldWorldPos src/Dodge/Data/Input.hs 45;" f
_hotkeys src/Dodge/Data/LWorld.hs 150;" f _hotkeys src/Dodge/Data/LWorld.hs 150;" f
_hud src/Dodge/Data/World.hs 45;" f _hud src/Dodge/Data/World.hs 45;" f
_hudElement src/Dodge/Data/HUD.hs 43;" f
_humanoidAI src/Dodge/Data/Creature/Misc.hs 81;" f _humanoidAI src/Dodge/Data/Creature/Misc.hs 81;" f
_ibtAmmoMag src/Dodge/Data/Item/Combine.hs 21;" f _ibtAmmoMag src/Dodge/Data/Item/Combine.hs 21;" f
_ibtAttach src/Dodge/Data/Item/Combine.hs 20;" f _ibtAttach src/Dodge/Data/Item/Combine.hs 20;" f
@@ -2019,9 +2016,9 @@ _magBelowID src/Dodge/Data/Muzzle.hs 22;" f
_magnets src/Dodge/Data/LWorld.hs 130;" f _magnets src/Dodge/Data/LWorld.hs 130;" f
_mainAction src/Dodge/Data/ActionPlan.hs 171;" f _mainAction src/Dodge/Data/ActionPlan.hs 171;" f
_manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" f _manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" f
_mapInvItmID src/Dodge/Data/HUD.hs 33;" f _mapInvItmID src/Dodge/Data/HUD.hs 24;" f
_mapInvOffset src/Dodge/Data/HUD.hs 31;" f _mapInvOffset src/Dodge/Data/HUD.hs 22;" f
_mapInvZoom src/Dodge/Data/HUD.hs 32;" f _mapInvZoom src/Dodge/Data/HUD.hs 23;" f
_matUBO src/Data/Preload/Render.hs 39;" f _matUBO src/Data/Preload/Render.hs 39;" f
_mbAttach src/Dodge/Data/MetaTree.hs 16;" f _mbAttach src/Dodge/Data/MetaTree.hs 16;" f
_mbTree src/Dodge/Data/MetaTree.hs 16;" f _mbTree src/Dodge/Data/MetaTree.hs 16;" f
@@ -2038,17 +2035,17 @@ _mcPos src/Dodge/Data/Machine.hs 35;" f
_mcType src/Dodge/Data/Machine.hs 40;" f _mcType src/Dodge/Data/Machine.hs 40;" f
_mcWallIDs src/Dodge/Data/Machine.hs 33;" f _mcWallIDs src/Dodge/Data/Machine.hs 33;" f
_mcWidth src/Dodge/Data/Machine.hs 44;" f _mcWidth src/Dodge/Data/Machine.hs 44;" f
_mcoCombCombine src/Dodge/Data/Input.hs 29;" f _mcoCombCombine src/Dodge/Data/Input.hs 25;" f
_mcoCombSelect src/Dodge/Data/Input.hs 28;" f _mcoCombSelect src/Dodge/Data/Input.hs 24;" f
_mcoDragSection src/Dodge/Data/Input.hs 20;" f _mcoDragSection src/Dodge/Data/Input.hs 20;" f
_mcoInvFilt src/Dodge/Data/Input.hs 27;" f _mcoInvFilt src/Dodge/Data/Input.hs 23;" f
_mcoInvSelect src/Dodge/Data/Input.hs 26;" f _mcoInvSelect src/Dodge/Data/Input.hs 22;" f
_mcoMaybeSelect src/Dodge/Data/Input.hs 21;" f _mcoMaybeSelect src/Dodge/Data/Input.hs 20;" f
_mcoMenuClick src/Dodge/Data/Input.hs 18;" f _mcoMenuClick src/Dodge/Data/Input.hs 18;" f
_mcoSecSelStart src/Dodge/Data/Input.hs 25;" f _mcoSecSelStart src/Dodge/Data/Input.hs 21;" f
_mcoSelEnd src/Dodge/Data/Input.hs 25;" f _mcoSelEnd src/Dodge/Data/Input.hs 21;" f
_mcoTermID src/Dodge/Data/Input.hs 32;" f _mcoTermID src/Dodge/Data/Input.hs 28;" f
_mcoTermStatus src/Dodge/Data/Input.hs 32;" f _mcoTermStatus src/Dodge/Data/Input.hs 28;" f
_mctTurret src/Dodge/Data/Machine.hs 53;" f _mctTurret src/Dodge/Data/Machine.hs 53;" f
_mdBool src/Dodge/Data/Modification.hs 21;" f _mdBool src/Dodge/Data/Modification.hs 21;" f
_mdExternalID src/Dodge/Data/Modification.hs 17;" f _mdExternalID src/Dodge/Data/Modification.hs 17;" f
@@ -2072,11 +2069,11 @@ _moString src/Dodge/Data/Universe.hs 110;" f
_modOption src/Dodge/Data/Universe.hs 100;" f _modOption src/Dodge/Data/Universe.hs 100;" f
_modString src/Dodge/Data/Universe.hs 98;" f _modString src/Dodge/Data/Universe.hs 98;" f
_modifications src/Dodge/Data/LWorld.hs 135;" f _modifications src/Dodge/Data/LWorld.hs 135;" f
_mouseButtons src/Dodge/Data/Input.hs 42;" f _mouseButtons src/Dodge/Data/Input.hs 38;" f
_mouseButtonsReleased src/Dodge/Data/Input.hs 43;" f _mouseButtonsReleased src/Dodge/Data/Input.hs 39;" f
_mouseContext src/Dodge/Data/Input.hs 39;" f _mouseContext src/Dodge/Data/Input.hs 35;" f
_mouseMoving src/Dodge/Data/Input.hs 40;" f _mouseMoving src/Dodge/Data/Input.hs 36;" f
_mousePos src/Dodge/Data/Input.hs 38;" f _mousePos src/Dodge/Data/Input.hs 34;" f
_mtBranches src/Dodge/Data/MetaTree.hs 10;" f _mtBranches src/Dodge/Data/MetaTree.hs 10;" f
_mtLabel src/Dodge/Data/MetaTree.hs 10;" f _mtLabel src/Dodge/Data/MetaTree.hs 10;" f
_mtTree src/Dodge/Data/MetaTree.hs 10;" f _mtTree src/Dodge/Data/MetaTree.hs 10;" f
@@ -2183,7 +2180,7 @@ _prVel src/Dodge/Data/Prop.hs 24;" f
_prVelZ src/Dodge/Data/Prop.hs 27;" f _prVelZ src/Dodge/Data/Prop.hs 27;" f
_preloadData src/Dodge/Data/Universe.hs 33;" f _preloadData src/Dodge/Data/Universe.hs 33;" f
_pressPlates src/Dodge/Data/LWorld.hs 138;" f _pressPlates src/Dodge/Data/LWorld.hs 138;" f
_pressedKeys src/Dodge/Data/Input.hs 41;" f _pressedKeys src/Dodge/Data/Input.hs 37;" f
_projectiles src/Dodge/Data/LWorld.hs 108;" f _projectiles src/Dodge/Data/LWorld.hs 108;" f
_props src/Dodge/Data/LWorld.hs 106;" f _props src/Dodge/Data/LWorld.hs 106;" f
_proxDist src/Dodge/Data/Machine/Sensor.hs 29;" f _proxDist src/Dodge/Data/Machine/Sensor.hs 29;" f
@@ -2299,14 +2296,14 @@ _scPositionedMenuOption src/Dodge/Data/Universe.hs 86;" f
_scSelectionList src/Dodge/Data/Universe.hs 88;" f _scSelectionList src/Dodge/Data/Universe.hs 88;" f
_scTitle src/Dodge/Data/Universe.hs 83;" f _scTitle src/Dodge/Data/Universe.hs 83;" f
_screenTextureVAO src/Data/Preload/Render.hs 52;" f _screenTextureVAO src/Data/Preload/Render.hs 52;" f
_scrollAmount src/Dodge/Data/Input.hs 44;" f _scrollAmount src/Dodge/Data/Input.hs 40;" f
_scrollItemID src/Dodge/Data/World.hs 66;" f _scrollItemID src/Dodge/Data/World.hs 66;" f
_scrollItemID src/Dodge/Data/World.hs 75;" f _scrollItemID src/Dodge/Data/World.hs 75;" f
_scrollItemID src/Dodge/Data/World.hs 79;" f _scrollItemID src/Dodge/Data/World.hs 79;" f
_scrollSmoothing src/Dodge/Data/World.hs 63;" f _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 51;" f _scrollTestFloat src/Dodge/Data/Input.hs 47;" f
_scrollTestInt src/Dodge/Data/Input.hs 52;" f _scrollTestInt src/Dodge/Data/Input.hs 48;" f
_scurColor src/Dodge/Data/SelectionList.hs 26;" f _scurColor src/Dodge/Data/SelectionList.hs 26;" f
_scurPos src/Dodge/Data/SelectionList.hs 24;" f _scurPos src/Dodge/Data/SelectionList.hs 24;" f
_scurSize src/Dodge/Data/SelectionList.hs 25;" f _scurSize src/Dodge/Data/SelectionList.hs 25;" f
@@ -2351,7 +2348,7 @@ _skVel src/Dodge/Data/Spark.hs 15;" f
_skinHead src/Dodge/Data/Creature/Misc.hs 78;" f _skinHead src/Dodge/Data/Creature/Misc.hs 78;" f
_skinLower src/Dodge/Data/Creature/Misc.hs 80;" f _skinLower src/Dodge/Data/Creature/Misc.hs 80;" f
_skinUpper src/Dodge/Data/Creature/Misc.hs 79;" f _skinUpper src/Dodge/Data/Creature/Misc.hs 79;" f
_smoothScrollAmount src/Dodge/Data/Input.hs 45;" f _smoothScrollAmount src/Dodge/Data/Input.hs 41;" f
_soundAngDist src/Sound/Data.hs 49;" f _soundAngDist src/Sound/Data.hs 49;" f
_soundChannel src/Sound/Data.hs 48;" f _soundChannel src/Sound/Data.hs 48;" f
_soundChunkID src/Sound/Data.hs 53;" f _soundChunkID src/Sound/Data.hs 53;" f
@@ -2378,7 +2375,7 @@ _stuckCrID src/Dodge/Data/Projectile.hs 50;" f
_stuckCrOffset src/Dodge/Data/Projectile.hs 50;" f _stuckCrOffset src/Dodge/Data/Projectile.hs 50;" f
_stuckCrRot src/Dodge/Data/Projectile.hs 50;" f _stuckCrRot src/Dodge/Data/Projectile.hs 50;" f
_stuckWlID src/Dodge/Data/Projectile.hs 51;" f _stuckWlID src/Dodge/Data/Projectile.hs 51;" f
_subInventory src/Dodge/Data/HUD.hs 20;" f _subInventory src/Dodge/Data/HUD.hs 34;" f
_swColor src/Dodge/Data/Shockwave.hs 18;" f _swColor src/Dodge/Data/Shockwave.hs 18;" f
_swDam src/Dodge/Data/Shockwave.hs 23;" f _swDam src/Dodge/Data/Shockwave.hs 23;" f
_swDirection src/Dodge/Data/Shockwave.hs 19;" f _swDirection src/Dodge/Data/Shockwave.hs 19;" f
@@ -2399,11 +2396,11 @@ _tbPos src/Dodge/Data/TractorBeam.hs 14;" f
_tbStartPos src/Dodge/Data/TractorBeam.hs 15;" f _tbStartPos src/Dodge/Data/TractorBeam.hs 15;" f
_tbTime src/Dodge/Data/TractorBeam.hs 17;" f _tbTime src/Dodge/Data/TractorBeam.hs 17;" f
_tbVel src/Dodge/Data/TractorBeam.hs 16;" f _tbVel src/Dodge/Data/TractorBeam.hs 16;" f
_termID src/Dodge/Data/HUD.hs 40;" f _termID src/Dodge/Data/HUD.hs 31;" f
_terminals src/Dodge/Data/LWorld.hs 128;" f _terminals src/Dodge/Data/LWorld.hs 128;" f
_teslaArcs src/Dodge/Data/LWorld.hs 116;" f _teslaArcs src/Dodge/Data/LWorld.hs 116;" f
_testFloat src/Dodge/Data/World.hs 43;" f _testFloat src/Dodge/Data/World.hs 43;" f
_textInput src/Dodge/Data/Input.hs 50;" f _textInput src/Dodge/Data/Input.hs 46;" f
_textureObject src/Shader/Data.hs 95;" f _textureObject src/Shader/Data.hs 95;" f
_tiText src/Dodge/Data/Terminal/Status.hs 14;" f _tiText src/Dodge/Data/Terminal/Status.hs 14;" f
_tileArrayZ src/Data/Tile.hs 24;" f _tileArrayZ src/Data/Tile.hs 24;" f
@@ -3175,7 +3172,6 @@ defaultCreatureMemory src/Dodge/Default/Creature.hs 65;" f
defaultCrystalWall src/Dodge/Default/Wall.hs 47;" f defaultCrystalWall src/Dodge/Default/Wall.hs 47;" f
defaultDirtBlock src/Dodge/Default/Block.hs 19;" f defaultDirtBlock src/Dodge/Default/Block.hs 19;" f
defaultDirtWall src/Dodge/Default/Wall.hs 68;" f defaultDirtWall src/Dodge/Default/Wall.hs 68;" f
defaultDisplayInventory src/Dodge/Default/World.hs 170;" f
defaultDoor src/Dodge/Default/Door.hs 29;" f defaultDoor src/Dodge/Default/Door.hs 29;" f
defaultDoorWall src/Dodge/Default/Wall.hs 39;" f defaultDoorWall src/Dodge/Default/Wall.hs 39;" f
defaultDrawButton src/Dodge/Button/Draw.hs 29;" f defaultDrawButton src/Dodge/Button/Draw.hs 29;" f
@@ -3287,7 +3283,7 @@ doDebugTestF6 src/Dodge/Update/Input/DebugTest.hs 40;" f
doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 48;" f doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 48;" f
doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 56;" f doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 56;" f
doDrWdWd src/Dodge/DrWdWd.hs 16;" f doDrWdWd src/Dodge/DrWdWd.hs 16;" f
doDrag src/Dodge/Update/Input/InGame.hs 117;" f doDrag src/Dodge/Update/Input/InGame.hs 126;" f
doDrawing src/Dodge/Render.hs 34;" f doDrawing src/Dodge/Render.hs 34;" f
doDrawing' src/Dodge/Render.hs 45;" f doDrawing' src/Dodge/Render.hs 45;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f
@@ -3314,7 +3310,7 @@ doPropUpdates src/Dodge/Prop/Update.hs 34;" 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 444;" f doRegexInput src/Dodge/Update/Input/InGame.hs 445;" 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
@@ -3528,8 +3524,8 @@ encircleCloseP src/Dodge/Creature/Boid.hs 36;" f
encircleDistP src/Dodge/Creature/Boid.hs 22;" f encircleDistP src/Dodge/Creature/Boid.hs 22;" f
encircleP src/Dodge/Creature/Boid.hs 28;" f encircleP src/Dodge/Creature/Boid.hs 28;" f
endArcPos src/Dodge/Tesla.hs 87;" f endArcPos src/Dodge/Tesla.hs 87;" f
endCombineRegex src/Dodge/Update/Input/InGame.hs 270;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 271;" f
endRegex src/Dodge/Update/Input/InGame.hs 261;" f endRegex src/Dodge/Update/Input/InGame.hs 265;" f
energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f
enterCombineInv src/Dodge/DisplayInventory.hs 322;" f enterCombineInv src/Dodge/DisplayInventory.hs 322;" f
epText src/Dodge/Inventory/SelectionList.hs 76;" f epText src/Dodge/Inventory/SelectionList.hs 76;" f
@@ -3690,7 +3686,7 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 85;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 170;" f getBulHitDams src/Dodge/Bullet.hs 170;" f
getBulletType src/Dodge/HeldUse.hs 933;" f getBulletType src/Dodge/HeldUse.hs 933;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 535;" f getCloseObj src/Dodge/Update/Input/InGame.hs 531;" f
getCommand src/Dodge/Terminal.hs 58;" f getCommand src/Dodge/Terminal.hs 58;" f
getCommands src/Dodge/Terminal.hs 55;" f getCommands src/Dodge/Terminal.hs 55;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 46;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 46;" f
@@ -3923,7 +3919,7 @@ isAnimate src/Dodge/Creature/Test.hs 144;" f
isCognizant src/Dodge/Creature/Perception.hs 106;" f isCognizant src/Dodge/Creature/Perception.hs 106;" f
isConnected src/Dodge/Inventory/Swap.hs 76;" f isConnected src/Dodge/Inventory/Swap.hs 76;" f
isElectrical src/Dodge/Machine/Update.hs 80;" f isElectrical src/Dodge/Machine/Update.hs 80;" f
isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 196;" f isGroupSelectableSection src/Dodge/Update/Input/InGame.hs 197;" f
isInLnk src/Dodge/PlacementSpot.hs 169;" f isInLnk src/Dodge/PlacementSpot.hs 169;" f
isJust' src/MaybeHelp.hs 29;" f isJust' src/MaybeHelp.hs 29;" f
isLHS src/Geometry/LHS.hs 8;" f isLHS src/Geometry/LHS.hs 8;" f
@@ -4208,7 +4204,7 @@ maybeClearPath src/Dodge/Block.hs 72;" f
maybeClearPaths src/Dodge/Block.hs 69;" f maybeClearPaths src/Dodge/Block.hs 69;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 37;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 556;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 552;" f
maybeOpenConsole src/Dodge/Update.hs 131;" f maybeOpenConsole src/Dodge/Update.hs 131;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 116;" f maybeTakeOne src/RandomHelp.hs 116;" f
@@ -4428,7 +4424,7 @@ parseNum src/Dodge/Debug/Terminal.hs 75;" 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 521;" f pauseGame src/Dodge/Update/Input/InGame.hs 523;" f
pauseMenu src/Dodge/Menu.hs 56;" f pauseMenu src/Dodge/Menu.hs 56;" f
pauseMenuOptions src/Dodge/Menu.hs 61;" f pauseMenuOptions src/Dodge/Menu.hs 61;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f pauseSound src/Dodge/SoundLogic.hs 42;" f
@@ -4959,7 +4955,7 @@ setOutLinks src/Dodge/RoomLink.hs 48;" f
setOutLinksByType src/Dodge/RoomLink.hs 57;" f setOutLinksByType src/Dodge/RoomLink.hs 57;" f
setOutLinksPD src/Dodge/RoomLink.hs 77;" f setOutLinksPD src/Dodge/RoomLink.hs 77;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 288;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 333;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 337;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 87;" f
setShaderSource src/Shader/Compile.hs 290;" f setShaderSource src/Shader/Compile.hs 290;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f setShadowLimits src/Dodge/Shadows.hs 11;" f
@@ -5014,8 +5010,8 @@ shiftDraw src/Dodge/Render/ShapePicture.hs 78;" f
shiftDraw' src/Dodge/Render/ShapePicture.hs 84;" f shiftDraw' src/Dodge/Render/ShapePicture.hs 84;" f
shiftInBy src/Dodge/PlacementSpot.hs 251;" f shiftInBy src/Dodge/PlacementSpot.hs 251;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 346;" f shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f
shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 340;" f shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 344;" f
shiftLinkBy src/Dodge/Room/Link.hs 87;" f shiftLinkBy src/Dodge/Room/Link.hs 87;" f
shiftPSBy src/Dodge/Placement/Shift.hs 12;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f
shiftPathBy src/Dodge/Room/Link.hs 92;" f shiftPathBy src/Dodge/Room/Link.hs 92;" f
@@ -5115,7 +5111,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
soundWithStatus src/Dodge/SoundLogic.hs 104;" f soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" f
southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 86;" f
spaceAction src/Dodge/Update/Input/InGame.hs 525;" f spaceAction src/Dodge/Update/Input/InGame.hs 526;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 190;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 175;" f
@@ -5171,7 +5167,7 @@ stackText src/Picture/Base.hs 188;" f
stackedInventory src/Dodge/Creature.hs 310;" f stackedInventory src/Dodge/Creature.hs 310;" f
startCr src/Dodge/Creature.hs 92;" f startCr src/Dodge/Creature.hs 92;" f
startCrafts src/Dodge/Room/Start.hs 93;" f startCrafts src/Dodge/Room/Start.hs 93;" f
startDrag src/Dodge/Update/Input/InGame.hs 279;" f startDrag src/Dodge/Update/Input/InGame.hs 280;" f
startInvList src/Dodge/Creature.hs 107;" f startInvList src/Dodge/Creature.hs 107;" f
startInventory src/Dodge/Creature.hs 110;" f startInventory src/Dodge/Creature.hs 110;" f
startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f startNewGameInSlot src/Dodge/StartNewGame.hs 15;" f
@@ -5387,14 +5383,14 @@ truncate src/Polyhedra/Geodesic.hs 38;" f
trunkDepth src/TreeHelp.hs 161;" f trunkDepth src/TreeHelp.hs 161;" f
tryAttachItems src/Dodge/Item/Grammar.hs 34;" f tryAttachItems src/Dodge/Item/Grammar.hs 34;" f
tryClickUse src/Dodge/Creature/YourControl.hs 225;" f tryClickUse src/Dodge/Creature/YourControl.hs 225;" f
tryCombine src/Dodge/Update/Input/InGame.hs 546;" f tryCombine src/Dodge/Update/Input/InGame.hs 542;" f
tryDrawToCapacitor src/Dodge/Creature/State.hs 150;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 150;" f
tryDropSelected src/Dodge/Update/Input/InGame.hs 128;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 137;" f
tryGetChannel src/Sound.hs 97;" f tryGetChannel src/Sound.hs 97;" f
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f
tryGetRootItemInvID src/Dodge/Inventory/Location.hs 35;" f tryGetRootItemInvID src/Dodge/Inventory/Location.hs 35;" f
tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 38;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 38;" f
tryPickupSelected src/Dodge/Update/Input/InGame.hs 135;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 144;" f
tryPlay src/Sound.hs 84;" f tryPlay src/Sound.hs 84;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 52;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 52;" f
@@ -5445,7 +5441,7 @@ unusedSpotNearInLink src/Dodge/PlacementSpot.hs 201;" f
updateAimPos src/Dodge/Update.hs 321;" f updateAimPos src/Dodge/Update.hs 321;" f
updateAllNodes src/TreeHelp.hs 85;" f updateAllNodes src/TreeHelp.hs 85;" f
updateArc src/Dodge/Tesla.hs 44;" f updateArc src/Dodge/Tesla.hs 44;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 478;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 476;" f
updateBarrel src/Dodge/Barreloid.hs 41;" f updateBarrel src/Dodge/Barreloid.hs 41;" f
updateBarreloid src/Dodge/Barreloid.hs 15;" f updateBarreloid src/Dodge/Barreloid.hs 15;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 34;" f
@@ -5483,18 +5479,18 @@ updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 670;" f updateFlames src/Dodge/Update.hs 670;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f updateFloatingCamera src/Dodge/Update/Camera.hs 35;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 363;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 363;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 356;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 359;" f
updateGusts src/Dodge/Update.hs 797;" f updateGusts src/Dodge/Update.hs 797;" f
updateHumanoid src/Dodge/Humanoid.hs 13;" f updateHumanoid src/Dodge/Humanoid.hs 13;" f
updateIMl src/Dodge/Update.hs 538;" f updateIMl src/Dodge/Update.hs 538;" f
updateIMl' src/Dodge/Update.hs 543;" f updateIMl' src/Dodge/Update.hs 543;" f
updateInGameCamera src/Dodge/Update/Camera.hs 79;" f updateInGameCamera src/Dodge/Update/Camera.hs 79;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 425;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 426;" f
updateInt2Map src/Dodge/Zoning/Base.hs 92;" f updateInt2Map src/Dodge/Zoning/Base.hs 92;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f
updateItemTargeting src/Dodge/Creature/State.hs 258;" f updateItemTargeting src/Dodge/Creature/State.hs 258;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 394;" f updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 395;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 419;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 420;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 381;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 381;" f
updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 403;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 403;" f
updateLampoid src/Dodge/Lampoid.hs 12;" f updateLampoid src/Dodge/Lampoid.hs 12;" f
@@ -5502,15 +5498,15 @@ updateLaser src/Dodge/Laser/Update.hs 11;" f
updateLasers src/Dodge/Update.hs 444;" f updateLasers src/Dodge/Update.hs 444;" f
updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 438;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 439;" f
updateMachine src/Dodge/Machine/Update.hs 20;" f updateMachine src/Dodge/Machine/Update.hs 20;" f
updateMagnets src/Dodge/Update.hs 329;" f updateMagnets src/Dodge/Update.hs 329;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 202;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 203;" f
updateMouseContext src/Dodge/Update.hs 342;" f updateMouseContext src/Dodge/Update.hs 342;" f
updateMouseContextGame src/Dodge/Update.hs 347;" f updateMouseContextGame src/Dodge/Update.hs 347;" f
updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 99;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 96;" f
updateMouseInGame src/Dodge/Update/Input/InGame.hs 89;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 86;" f
updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 160;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 166;" f
updateObjCatMaybes src/Dodge/Update.hs 560;" f updateObjCatMaybes src/Dodge/Update.hs 560;" f
updateObjMapMaybe src/Dodge/Update.hs 553;" f updateObjMapMaybe src/Dodge/Update.hs 553;" f
updatePastWorlds src/Dodge/Update.hs 432;" f updatePastWorlds src/Dodge/Update.hs 432;" f
@@ -5550,7 +5546,7 @@ updateUniverse src/Dodge/Update.hs 79;" f
updateUniverseFirst src/Dodge/Update.hs 90;" f updateUniverseFirst src/Dodge/Update.hs 90;" f
updateUniverseLast src/Dodge/Update.hs 141;" f updateUniverseLast src/Dodge/Update.hs 141;" f
updateUniverseMid src/Dodge/Update.hs 161;" f updateUniverseMid src/Dodge/Update.hs 161;" f
updateUseInputInGame src/Dodge/Update/Input/InGame.hs 46;" f updateUseInputInGame src/Dodge/Update/Input/InGame.hs 45;" f
updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f updateUseInputOnScreen src/Dodge/Update/Input/ScreenLayer.hs 23;" f
updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 10;" f updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 10;" f
updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f