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)
w' ^? cWorld . lWorld . items . ix itid
maybeshiftseldown w = fromMaybe w $ do
3 <- w ^? hud . hudElement . diSelection . _Just . _1
return $ w & hud . hudElement . diSelection . _Just . _2 +~ 1
3 <- w ^? hud . diSelection . _Just . _1
return $ w & hud . diSelection . _Just . _2 +~ 1
-- | Get your creature to drop the item under the cursor.
youDropItem :: World -> World
+6 -6
View File
@@ -106,11 +106,11 @@ toggleEquipmentAt invid cr w = case getEquipmentAllocation invid w of
onremove itm' = effectOnRemove itm'
toggleExamineInv :: World -> World
toggleExamineInv w = case w ^? hud . hudElement . subInventory of
Just ExamineInventory{} -> w & hud . hudElement . subInventory .~ NoSubInventory
_ -> w & hud . hudElement . subInventory .~ ExamineInventory
toggleExamineInv w = case w ^? hud . subInventory of
Just ExamineInventory{} -> w & hud . subInventory .~ NoSubInventory
_ -> w & hud . subInventory .~ ExamineInventory
toggleMapperInv :: Item -> World -> World
toggleMapperInv itm w = case w ^? hud . hudElement . subInventory of
Just MapperInventory{} -> w & hud . hudElement . subInventory .~ NoSubInventory
_ -> w & hud . hudElement . subInventory .~ MapperInventory 0 1 (_itID itm)
toggleMapperInv itm w = case w ^? hud . subInventory of
Just MapperInventory{} -> w & hud . subInventory .~ NoSubInventory
_ -> w & hud . subInventory .~ MapperInventory 0 1 (_itID itm)
+1 -1
View File
@@ -29,7 +29,7 @@ import qualified SDL
yourControl :: Creature -> World -> World
yourControl _ w
| inTextInputFocus w = w
| Just x <- w ^? hud . hudElement . subInventory
| Just x <- w ^? hud . subInventory
, f x =
w
& cWorld . lWorld . creatures . ix 0 %~ wasdWithAiming w
+15 -18
View File
@@ -5,42 +5,36 @@
module Dodge.Data.HUD where
import qualified Data.IntSet as IS
import Dodge.Data.Item.Location
import NewInt
import Control.Lens
import Data.IntMap
import Data.IntSet (IntSet)
import qualified Data.IntSet as IS
import Dodge.Data.Combine
import Dodge.Data.Item.Location
import Dodge.Data.SelectionList
import Geometry.Data
data HUDElement
= DisplayInventory
{ _subInventory :: SubInventory
, _diSections :: IMSS ()
, _diSelection :: Maybe (Int, Int, IntSet)
, _diInvFilter :: Maybe String
, _diCloseFilter :: Maybe String
}
import NewInt
data SubInventory
= NoSubInventory
| ExamineInventory
| MapperInventory
{_mapInvOffset :: Point2
| MapperInventory
{ _mapInvOffset :: Point2
, _mapInvZoom :: Float
, _mapInvItmID :: NewInt ItmInt
}
| CombineInventory
{ _ciSections :: IntMap (SelectionSection CombinableItem)
{ _ciSections :: IMSS CombinableItem
, _ciSelection :: Maybe (Int, Int, IS.IntSet)
, _ciFilter :: Maybe String
}
| DisplayTerminal {_termID :: Int}
data HUD = HUD
{ _hudElement :: HUDElement
{ _subInventory :: SubInventory
, _diSections :: IMSS ()
, _diSelection :: Maybe (Int, Int, IntSet)
, _diInvFilter :: Maybe String
, _diCloseFilter :: Maybe String
, _carteCenter :: Point2
, _carteZoom :: Float
, _carteRot :: Float
@@ -48,6 +42,9 @@ data HUD = HUD
, _closeButtons :: [Int]
}
data Selection
= Sel {_slSec :: Int, _slInt :: Int, _slSet :: IS.IntSet}
| NoSel
makeLenses ''HUD
makeLenses ''HUDElement
makeLenses ''SubInventory
+1 -3
View File
@@ -36,9 +36,7 @@ data SelectionSection a = SelectionSection
type IMSS a = IntMap (SelectionSection a)
data SelectionWidth
= FixedSelectionWidth Int
| UseItemWidth
data SelectionWidth = FixedSelectionWidth Int | UseItemWidth
data SelectionItem a
= SelItem
+5 -11
View File
@@ -159,20 +159,14 @@ defaultLWorld =
defaultHUD :: HUD
defaultHUD =
HUD
{ _hudElement = defaultDisplayInventory
{ _subInventory = NoSubInventory
, _diSections = mempty
, _diSelection = Just (1, 0, mempty)
, _diInvFilter = mempty
, _diCloseFilter = mempty
, _carteCenter = V2 0 0
, _carteZoom = 0.5
, _carteRot = 0
, _closeItems = 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 u =
u
& uvWorld . hud . hudElement . subInventory . ciSections
& uvWorld . hud . subInventory . ciSections
%~ updateCombineSections (_uvWorld u) (_uvConfig u)
& uvWorld . hud . hudElement . subInventory %~ checkCombineSelectionExists
& uvWorld . hud . subInventory %~ checkCombineSelectionExists
updateCombineSections ::
World ->
@@ -51,18 +51,18 @@ updateCombineSections ::
updateCombineSections w cfig =
updateSectionsPositioning
(const 0)
(w ^? hud . hudElement . subInventory . ciSelection . _Just)
(w ^? hud . subInventory . ciSelection . _Just)
(getAvailableListLines secondColumnParams cfig)
(IM.fromDistinctAscList [(-1, sfclose),(0, sclose')])
where
filtcurs = w ^? hud . hudElement . subInventory . ciSelection . _Just . _1 == Just (-1)
filtcurs = w ^? hud . subInventory . ciSelection . _Just . _1 == Just (-1)
(sfclose, sclose) =
filterSectionsPair
filtcurs
(flip . andOrRegex $ regexCombs invitms)
(IM.fromDistinctAscList . zip [0 ..] $ combineList w)
"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
sclose'
| null sclose =
@@ -87,17 +87,17 @@ orRegex f x str = case words str of
updateInventoryPositioning :: Universe -> Universe
updateInventoryPositioning u =
u & uvWorld . hud . hudElement . diSections
u & uvWorld . hud . diSections
%~ updateDisplaySections (_uvWorld u) (_uvConfig u)
& uvWorld
%~ checkInventorySelectionExists
checkInventorySelectionExists :: World -> World
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
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 si
@@ -135,15 +135,15 @@ updateDisplaySections w cfig =
]
)
where
mselpos = w ^? hud . hudElement . diSelection . _Just
mselpos = w ^? hud . diSelection . _Just
invfiltcurs = mselpos ^? _Just . _1 == Just (-1)
(sfinv, sinv) =
filterSectionsPair invfiltcurs plainRegex invitems "INVENTORY" $
w ^? hud . hudElement . diInvFilter . _Just
w ^? hud . diInvFilter . _Just
closefiltcurs = mselpos ^? _Just . _1 == Just 2
(sfclose, sclose) =
filterSectionsPair closefiltcurs plainRegex closeitms "NEARBY ITEMS" $
w ^? hud . hudElement . diCloseFilter . _Just
w ^? hud . diCloseFilter . _Just
nearbyhead
| null sfclose && not (null sclose) = makehead "NEARBY ITEMS"
| otherwise = sfclose
@@ -315,16 +315,16 @@ regexList = any . List.isInfixOf
toggleCombineInv :: Universe -> Universe
toggleCombineInv uv =
uv & case uv ^? uvWorld . hud . hudElement . subInventory of
Just CombineInventory{} -> uvWorld . hud . hudElement . subInventory .~ NoSubInventory
uv & case uv ^? uvWorld . hud . subInventory of
Just CombineInventory{} -> uvWorld . hud . subInventory .~ NoSubInventory
_ -> uvWorld %~ enterCombineInv (uv ^. uvConfig)
enterCombineInv :: Configuration -> World -> World
enterCombineInv cfig w =
w & hud . hudElement . subInventory
w & hud . subInventory
.~ CombineInventory
{ _ciSections = updateCombineSections w cfig mempty
, _ciSelection = Just (0,0,mempty)
, _ciFilter = Nothing
}
& hud . hudElement . diInvFilter .~ Nothing
& hud . diInvFilter .~ Nothing
+5 -5
View File
@@ -15,13 +15,13 @@ textInputFocus ::
Applicative 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 (-1) -> Just $ hud . hudElement . diInvFilter . _Just
Just 2 -> Just $ hud . hudElement . diCloseFilter . _Just
Just (-1) -> Just $ hud . diInvFilter . _Just
Just 2 -> Just $ hud . diCloseFilter . _Just
_ -> Nothing
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
Just DisplayTerminal{_termID = tmid} -> do
-- 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
_ -> Nothing
where
he = w ^. hud . hudElement
he = w ^. hud
+8 -8
View File
@@ -87,7 +87,7 @@ rmInvItem cid invid w =
where
pointcid = cWorld . lWorld . creatures . ix cid
updateselectionextra
| cid == 0 = hud . hudElement . diSelection . _Just . _3 %~ const mempty
| cid == 0 = hud . diSelection . _Just . _3 %~ const mempty
| otherwise = id
updateselection
| cid == 0 && cr ^? crManipulation . manObject . imSelectedItem == Just invid =
@@ -154,7 +154,7 @@ changeSwapOther ::
World ->
World
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
let doswap j
| j == i = k
@@ -166,7 +166,7 @@ changeSwapOther manlens n f i w = fromMaybe w $ do
& cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . manlens
%~ doswap
& hud . closeItems %~ swapIndices i k
& hud . hudElement . diSelection . _Just . _2 %~ doswap
& hud . diSelection . _Just . _2 %~ doswap
& worldEventFlags . at InventoryChange ?~ ()
swapItemWith ::
@@ -182,7 +182,7 @@ swapItemWith f (j, i) = case j of
changeSwapWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> World -> World
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
--changeSwapWith :: (Int -> IM.IntMap (SelectionItem ()) -> Maybe Int) -> World -> World
@@ -195,7 +195,7 @@ changeSwapWith f w
invSetSelection :: (Int, Int, IS.IntSet) -> World -> World
invSetSelection sel w =
w
& hud . hudElement . diSelection ?~ sel
& hud . diSelection ?~ sel
& worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0
@@ -203,7 +203,7 @@ invSetSelection sel w =
invSetSelectionPos :: Int -> Int -> World -> World
invSetSelectionPos i j w =
w
& hud . hudElement . diSelection %~ f
& hud . diSelection %~ f
& worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0
@@ -215,7 +215,7 @@ scrollAugInvSel :: Int -> World -> World
scrollAugInvSel yi w
| yi == 0 = w
| otherwise =
w & hud . hudElement %~ doscroll
w & hud %~ doscroll
& worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0
@@ -226,7 +226,7 @@ scrollAugInvSel yi w
scrollAugNextInSection :: World -> World
scrollAugNextInSection w =
w & hud . hudElement %~ doscroll
w & hud %~ doscroll
& worldEventFlags . at InventoryChange ?~ ()
& setInvPosFromSS
& cWorld . lWorld %~ crUpdateItemLocations 0
+1 -1
View File
@@ -43,7 +43,7 @@ tryPutItemInInv cid itid w = do
& updateselectionextra invid
where
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
f j i | i >= _unNInt j = i + 1
| otherwise = i
+1 -1
View File
@@ -97,7 +97,7 @@ setInvPosFromSS w = w
& cWorld . lWorld . creatures . ix 0 . crManipulation . manObject .~ thesel
where
thesel = fromMaybe SelNothing $ do
(i, j, _) <- w ^? hud . hudElement . diSelection . _Just
(i, j, _) <- w ^? hud . diSelection . _Just
case i of
(-1) -> Just SortInventory
0 -> do
+1 -1
View File
@@ -88,7 +88,7 @@ itemExternalValue itm w cr
displayPulse $ cr ^?! crType . avatarPulse . pulseProgress
| Just t <- itm ^? itType . ibtIntroScanType = Just $ introScanValue cr t
| ITEMSCAN <- itm ^. itType
, Just ExamineInventory <- w ^? hud . hudElement . subInventory
, Just ExamineInventory <- w ^? hud . subInventory
= Just (Right "ON")
| BINGATE <- itm ^. itType = do
invid <- itm ^? itLocation . ilInvID
+6 -6
View File
@@ -24,11 +24,11 @@ swapInvItems ::
World ->
World
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
let updateselection = case w ^? hud . hudElement . diSelection . _Just of
Just (0, j,_) | j == k -> hud . hudElement . diSelection . _Just . _2 .~ i
Just (0, j,_) | j == i -> hud . hudElement . diSelection . _Just . _2 .~ k
let updateselection = case w ^? hud . diSelection . _Just of
Just (0, j,_) | j == k -> hud . diSelection . _Just . _2 .~ i
Just (0, j,_) | j == i -> hud . diSelection . _Just . _2 .~ k
_ -> id
return $
w
@@ -55,11 +55,11 @@ swapInvItems f i w = fromMaybe w $ do
swapAnyExtraSelection :: Int -> Int -> World -> World
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
g = if k `IS.member` is then IS.insert i else id
return $
w & hud . hudElement . diSelection . _Just . _3
w & hud . diSelection . _Just . _3
%~ (f . g . IS.delete i . IS.delete k)
checkConnection :: SoundOrigin -> SoundID -> Int -> Int -> World -> World
+1 -1
View File
@@ -20,7 +20,7 @@ import Dodge.Wall.Move
import Geometry.Vector
cancelExamineInventory :: World -> World
cancelExamineInventory = hud . hudElement . subInventory %~ f
cancelExamineInventory = hud . subInventory %~ f
where
f ExamineInventory = NoSubInventory
f x = x
+1 -1
View File
@@ -34,7 +34,7 @@ invDP =
& ldpPos . spPixelOff .~ V2 6 0
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 CombineInventory{} -> []
_ | ButtonRight `M.member` _mouseButtons (_input w) -> [North, South, East, West]
+18 -18
View File
@@ -46,17 +46,17 @@ import Picture
import SDL (MouseButton (..))
drawHUD :: Configuration -> World -> Picture
drawHUD cfig w = case w ^. hud . hudElement of
drawHUD cfig w = case w ^. hud of
-- DisplayCarte -> drawCarte cfig w
DisplayInventory{_diSections = sections, _subInventory = subinv} ->
HUD {_diSections = sections, _subInventory = subinv} ->
drawInventory sections w cfig
<> drawSubInventory subinv cfig w
drawInventory :: IM.IntMap (SelectionSection ()) -> World -> Configuration -> Picture
drawInventory sss w cfig =
drawSelectionSections sss invDP cfig
<> drawSSCursor sss invDP curs cfig (f $ w ^? hud . hudElement . diSelection . _Just)
<> drawRootCursor w sss (f $ w ^? hud . hudElement . diSelection . _Just) invDP cfig
<> drawSSCursor sss invDP curs cfig (f $ w ^? hud . diSelection . _Just)
<> drawRootCursor w sss (f $ w ^? hud . diSelection . _Just) invDP cfig
<> itemconnections
<> drawMouseOver cfig w
where
@@ -65,7 +65,7 @@ drawInventory sss w cfig =
itemconnections = fromMaybe mempty $ do
inv' <- w ^? cWorld . lWorld . creatures . ix 0 . crInv
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
_ -> return . drawItemConnections sss cfig $ invAdj inv
@@ -112,7 +112,7 @@ drawMouseOver cfig w =
(j, i) <-
w ^? input . mouseContext . mcoInvSelect
<|> w ^? input . mouseContext . mcoInvFilt
sss <- w ^? hud . hudElement . diSections
sss <- w ^? hud . diSections
return . translateScreenPos cfig (invDP ^. ldpPos)
. color (withAlpha 0.1 white)
-- . color white
@@ -123,7 +123,7 @@ drawMouseOver cfig w =
(j, i) <-
(w ^? input . mouseContext . mcoCombSelect)
<|> (w ^? input . mouseContext . mcoCombCombine)
sss <- w ^? hud . hudElement . subInventory . ciSections
sss <- w ^? hud . subInventory . ciSections
let idp = secondColumnParams
return . translateScreenPos cfig (idp ^. ldpPos)
. color (withAlpha 0.2 white)
@@ -131,15 +131,15 @@ drawMouseOver cfig w =
drawDragSelected :: Configuration -> World -> Maybe Picture
drawDragSelected cfig w = do
ys <- w ^? hud . hudElement . diSelection . _Just . _3
ys <- w ^? hud . diSelection . _Just . _3
guard $
not (IS.null ys)
&& ( case w ^? hud . hudElement . subInventory of
&& ( case w ^? hud . subInventory of
Just NoSubInventory -> True
_ -> False
)
(i, _, _) <- w ^? hud . hudElement . diSelection . _Just
sss <- w ^? hud . hudElement . diSections
(i, _, _) <- w ^? hud . diSelection . _Just
sss <- w ^? hud . diSections
let f x = (selSecDrawCursorAt invDP BackdropCursor sss (i, x) <>)
return . translateScreenPos cfig (invDP ^. ldpPos)
. color (withAlpha 0.2 white)
@@ -149,7 +149,7 @@ drawDragSelected cfig w = do
drawDragSelecting :: Configuration -> World -> Maybe Picture
drawDragSelecting cfig w = do
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)
return . translateScreenPos cfig (invDP ^. ldpPos)
. color (withAlpha 0.2 white)
@@ -189,7 +189,7 @@ drawCombineInventory cfig sss w =
curs = BoundaryCursor [North, South, West]
msel =
fmap (\(x, y, _) -> (x, y)) $
w ^? hud . hudElement . subInventory . ciSelection . _Just
w ^? hud . subInventory . ciSelection . _Just
drawExamineInventory :: Configuration -> World -> Picture
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
i <- w ^? rbOptions . opSel
let ae = getEquipmentAllocation invid w
sss <- w ^? hud . hudElement . diSections
(i', j, _) <- w ^? hud . hudElement . diSelection . _Just
sss <- w ^? hud . diSections
(i', j, _) <- w ^? hud . diSelection . _Just
curpos <- selSecYint i' j sss
let ytext = drawListElement 0 1 0 curpos . text
midstr = equipAllocString ae
@@ -349,7 +349,7 @@ combineInventoryExtra sss msel cfig w = fold $ do
return (lnkMidPosInvSelsCol cfig w j col lnks) <> foldMap invcursor lnks
where
invcursor i = do
sss' <- w ^? hud . hudElement . diSections
sss' <- w ^? hud . diSections
return $
translateScreenPos cfig (invDP ^. ldpPos) $
selSecDrawCursor
@@ -391,8 +391,8 @@ lnkMidPosInvSelsCol :: Configuration -> World -> Int -> Color -> [Int] -> Pictur
lnkMidPosInvSelsCol cfig w i col = fromMaybe mempty . foldMap f
where
f j = do
sss <- w ^? hud . hudElement . diSections
combinesss <- w ^? hud . hudElement . subInventory . ciSections
sss <- w ^? hud . diSections
combinesss <- w ^? hud . subInventory . ciSections
lp <- selNumPos cfig invDP sss 0 j
rp <- selNumPos cfig secondColumnParams combinesss 0 i
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)
where
w = u ^. uvWorld
selsec = u ^? uvWorld . hud . hudElement . diSelection . _Just . _1
selsec = u ^? uvWorld . hud . diSelection . _Just . _1
a = fromMaybe 0 $ do
cpos <- w ^? cWorld . lWorld . creatures . ix 0 . crPos
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 w = do
(i, j, _) <- w ^? hud . hudElement . diSelection . _Just
(i, j, _) <- w ^? hud . diSelection . _Just
case i of
3 -> Left <$> w ^? hud . closeItems . ix j
5 -> do
+1 -1
View File
@@ -26,7 +26,7 @@ import Geometry.Data
scrollSelectionSections ::
Int ->
IM.IntMap (SelectionSection a) ->
IMSS a ->
Maybe (Int, Int,IS.IntSet) ->
Maybe (Int, Int,IS.IntSet)
scrollSelectionSections yi sss msel
+8 -8
View File
@@ -333,11 +333,11 @@ updateMagnets lw =
checkTermDist :: World -> World
checkTermDist w = fromMaybe w $ do
tmid <- w ^? hud . hudElement . subInventory . termID
tmid <- w ^? hud . subInventory . termID
btid <- w ^? cWorld . lWorld . terminals . ix tmid . tmButtonID
btpos <- w ^? cWorld . lWorld . buttons . ix btid . btPos
guard $ dist btpos (_crPos $ you w) > 40
return $ w & hud . hudElement . subInventory .~ NoSubInventory
return $ w & hud . subInventory .~ NoSubInventory
updateMouseContext :: Configuration -> Universe -> Universe
updateMouseContext cfig u = case u ^? uvScreenLayers . ix 0 of
@@ -363,13 +363,13 @@ updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of
| otherwise = MouseInGame
mpos = w ^. input . mousePos
invdrag i' = fromMaybe (OverInvDrag i' Nothing) $ do
sss <- w ^? hud . hudElement . diSections
sss <- w ^? hud . diSections
(i, j) <- inverseSelNumPos cfig invDP sss mpos
return $ OverInvDrag i' (Just (i, j))
overinv = do
sss <- w ^? hud . hudElement . diSections
sss <- w ^? hud . diSections
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 _ -> Nothing
_ -> do
@@ -377,8 +377,8 @@ updateMouseContextGame cfig u = case u ^. uvWorld . input . mouseContext of
guard =<< sss ^? ix i . ssItems . ix j . siIsSelectable
return $ OverInvSelect selpos
overcomb = do
sss <- w ^? hud . hudElement . subInventory . ciSections
(xl, xr, _) <- w ^? hud . hudElement . subInventory . ciSelection . _Just
sss <- w ^? hud . subInventory . ciSections
(xl, xr, _) <- w ^? hud . subInventory . ciSelection . _Just
let msel = (xl, xr)
let mpossel = inverseSelNumPos cfig secondColumnParams sss (w ^. input . mousePos)
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 -> OverCombSelect x
overterm = do
tmid <- w ^? hud . hudElement . subInventory . termID
tmid <- w ^? hud . subInventory . termID
tm <- w ^? cWorld . lWorld . terminals . ix tmid
return $
if isOverTerminalScreen cfig mpos
+56 -56
View File
@@ -43,8 +43,8 @@ import NewInt
import SDL
updateUseInputInGame :: Universe -> Universe
updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudElement of
DisplayInventory{_subInventory = si, _diSelection = disel} -> case si of
updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud of
HUD{_subInventory = si, _diSelection = disel} -> case si of
DisplayTerminal tmid -> updateKeysInTerminal tmid u
CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (-1, _, _))} ->
u
@@ -64,7 +64,7 @@ updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . hudEleme
& uvWorld %~ setInvPosFromSS
_ -> M.foldlWithKey' updateKeyInGame u pkeys
where
tohud = uvWorld . hud . hudElement
tohud = uvWorld . hud
pkeys = u ^. uvWorld . input . pressedKeys
dodisplayregexinput filterprism filterlens x di = fromMaybe di $ do
sss <- di ^? diSections
@@ -98,7 +98,7 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of
OverInvDragSelect{} | ButtonRight `M.member` (w ^. input . mouseButtons) ->
w & input . mouseContext .~ MouseGameRotate
OverInvDragSelect (Just sstart) _ ->
let sss = w ^. hud . hudElement . diSections
let sss = w ^. hud . diSections
msel = inverseSelNumPos cfig invDP sss (w ^. input . mousePos)
in case msel of
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)
-- not sure how the above performs when filtering...
OverInvDragSelect Nothing _ -> fromMaybe w $ do
sss <- w ^? hud . hudElement . diSections
sss <- w ^? hud . diSections
ysel <-
inverseSelSecYint
(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 cfig n k mmouseover w = fromMaybe w $ do
guard (n /= 0)
ss <- w ^? hud . hudElement . diSections . ix k . ssItems
ss <- w ^? hud . diSections . ix k . ssItems
x <- mmouseover
is <- w ^? hud . hudElement . diSelection . _Just . _3
is <- w ^? hud . diSelection . _Just . _3
return $
if concurrentIS is
then shiftInvItems cfig n k x is ss w
@@ -138,7 +138,7 @@ tryDropSelected :: Maybe (Int, Int) -> World -> Maybe World
tryDropSelected mpos w = do
guard $ maybe True (\(i, _) -> i == 3) mpos
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
tryPickupSelected :: Int -> Maybe (Int, Int) -> World -> Maybe World
@@ -146,7 +146,7 @@ tryPickupSelected k mpos w = do
guard $ k == 3
guard $ maybe True (\(i, _) -> i == 0 || i == 1) mpos
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
itmstopickup = mapMaybe g $ IS.toList xs
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
where
newdisel j xs =
hud . hudElement . diSelection
hud . diSelection
?~ (0, j, IS.fromDistinctAscList [j .. j + IS.size xs -1])
g i = do
NInt j <- w ^? hud . closeItems . ix i
@@ -171,25 +171,25 @@ updateMouseReleaseInGame w = case w ^. input . mouseContext of
OverInvDragSelect (Just ssel) mesel
| ScancodeLShift `M.member` (w ^. input . pressedKeys) ->
w & input . mouseContext .~ MouseInGame
& hud . hudElement . diSelection . _Just . _3
& hud . diSelection . _Just . _3
%~ getuniques
( maybe
mempty
(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) ->
w & input . mouseContext .~ MouseInGame
& invSetSelection (f (fst ssel, esel) (h ssel esel))
OverInvDragSelect{} ->
w & input . mouseContext .~ MouseInGame
& hud . hudElement . diSelection . _Just . _3 %~ const mempty
& hud . diSelection . _Just . _3 %~ const mempty
_ -> w
where
getuniques x y = IS.union x y IS.\\ IS.intersection x y
f (x, y) z = (x, y, z)
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
(yss, _) = IM.split (max i j + 1) xss
return . IM.keysSet $ yss
@@ -203,7 +203,7 @@ isGroupSelectableSection = \case
updateMouseClickInGame :: Configuration -> World -> World
updateMouseClickInGame cfig w = case w ^. input . mouseContext of
MouseInGame -> fromMaybe (w & input . mouseContext .~ OverInvDragSelect Nothing Nothing) $ do
let sss = w ^. hud . hudElement . diSections
let sss = w ^. hud . diSections
ysel <-
inverseSelSecYint
(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
OverInvSelect (-1, _)
| selsec == Just (-1) ->
w & hud . hudElement . diSelection %~ endRegex (-1) w
& hud . hudElement . diInvFilter .~ Nothing
w & hud . diSelection %~ endRegex (-1) w
& hud . diInvFilter .~ Nothing
OverInvSelect (2, _)
| selsec == Just 2 ->
w & hud . hudElement . diSelection %~ endRegex 2 w
& hud . hudElement . diCloseFilter .~ Nothing
w & hud . diSelection %~ endRegex 2 w
& hud . diCloseFilter .~ Nothing
OverInvSelect x
| ScancodeLShift `M.member` (w ^. input . pressedKeys)
&& isGroupSelectableSection (fst x) ->
@@ -226,14 +226,14 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
OverInvSelect x -> startDrag x w
OverTerminal tmid TerminalTextInput{} -> terminalReturnEffect tmid w
OverTerminal tmid TerminalPressTo{} -> continueTerminal tmid w
OutsideTerminal -> w & hud . hudElement . subInventory .~ NoSubInventory
OutsideTerminal -> w & hud . subInventory .~ NoSubInventory
OverCombSelect x ->
w & hud . hudElement . subInventory . ciSelection ?~ f x
w & hud . subInventory . ciSelection ?~ f x
& worldEventFlags . at CombineInventoryChange ?~ ()
OverCombFilter ->
w & hud . hudElement . subInventory . ciFilter .~ Nothing
w & hud . subInventory . ciFilter .~ Nothing
& worldEventFlags . at CombineInventoryChange ?~ ()
& hud . hudElement . subInventory . ciSelection %~ endCombineRegex w
& hud . subInventory . ciSelection %~ endCombineRegex w
OverCombCombine x ->
w
& tryCombine x
@@ -243,7 +243,7 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
OverCombEscape ->
w
& worldEventFlags . at InventoryChange ?~ ()
& hud . hudElement . subInventory .~ NoSubInventory
& hud . subInventory .~ NoSubInventory
OverCombFiltInv (0, j) -> fromMaybe w $ do
str <-
fmap (take 5) $
@@ -252,33 +252,33 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
w ^? cWorld . lWorld . items . ix k
>>= (listToMaybe . basicItemDisplay)
return . (worldEventFlags . at CombineInventoryChange ?~ ()) $
case w ^? hud . hudElement . subInventory . ciFilter . _Just of
case w ^? hud . subInventory . ciFilter . _Just of
Just ('#' : xs)
| str == xs ->
w & hud . hudElement . subInventory . ciFilter .~ Nothing
_ -> w & hud . hudElement . subInventory . ciFilter ?~ ("#" ++ str)
w & hud . subInventory . ciFilter .~ Nothing
_ -> w & hud . subInventory . ciFilter ?~ ("#" ++ str)
_ -> w
where
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 i w = ssSetCursor (ssLookupDown i j) sss
where
sss = w ^. hud . hudElement . diSections
sss = w ^. hud . diSections
j = maybe 0 fst $ IM.lookupMin =<< sss ^? ix i . ssItems
endCombineRegex :: World -> Maybe (Int, Int, IS.IntSet) -> Maybe (Int, Int, IS.IntSet)
endCombineRegex w = ssSetCursor (ssLookupDown 0 j) sss
where
sss = w ^. hud . hudElement . subInventory . ciSections
sss = w ^. hud . subInventory . ciSections
j = fromMaybe 0 $ do
itms <- sss ^? ix 0 . ssItems
(k, _) <- IM.lookupMin itms
return (k -1)
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
_ -> invSetSelection (a, b, IS.singleton b) w
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)
bn =
(\v -> inverseSelSecYint (yint + 1) v ^? nonInf)
=<< w ^? hud . hudElement . diSections
=<< w ^? hud . diSections
ab =
(\v -> inverseSelSecYint (yint - 1) v ^? nonInf)
=<< w ^? hud . hudElement . diSections
=<< w ^? hud . diSections
guard $ xk == k || xk + 1 == k || xk -1 == k
(maxi, _) <- IS.maxView 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 w = fromMaybe w $ do
(i, _, xs) <- w ^? hud . hudElement . diSelection . _Just
(i, _, xs) <- w ^? hud . diSelection . _Just
(k, j) <- w ^? input . mouseContext . mcoMaybeSelect . _Just
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 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 j is w = fromMaybe w $ do
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
where
f i' w' = swapItemWith g (j, i') w'
@@ -386,8 +386,8 @@ updateKeysInTerminal tmid u = fromMaybe u $ do
return $ case tm ^. tmStatus of
_
| dist x y > 40 || not (hasButtonLOS x y (u ^. uvWorld)) ->
u & uvWorld . hud . hudElement . subInventory .~ NoSubInventory
TerminalDeactivated -> u & uvWorld . hud . hudElement . subInventory .~ NoSubInventory
u & uvWorld . hud . subInventory .~ NoSubInventory
TerminalDeactivated -> u & uvWorld . hud . subInventory .~ NoSubInventory
TerminalTextInput{} -> updateKeysTextInputTerminal tmid u
TerminalPressTo{} -> updateKeyContinueTerminal tmid u
_ -> u
@@ -477,14 +477,14 @@ updateBackspaceRegex :: World -> World
updateBackspaceRegex w = case di ^? subInventory of
Just NoSubInventory{}
| secfocus (-1) 0 ->
w & hud . hudElement %~ trybackspace (-1) diInvFilter diInvFilter diSelection
w & hud %~ trybackspace (-1) diInvFilter diInvFilter diSelection
& worldEventFlags . at InventoryChange ?~ ()
Just NoSubInventory{}
| secfocus 2 3 ->
w & hud . hudElement %~ trybackspace 2 diCloseFilter diCloseFilter diSelection
w & hud %~ trybackspace 2 diCloseFilter diCloseFilter diSelection
& worldEventFlags . at InventoryChange ?~ ()
Just CombineInventory{} ->
w & hud . hudElement . subInventory %~ trybackspace (-1) ciFilter ciFilter ciSelection
w & hud . subInventory %~ trybackspace (-1) ciFilter ciFilter ciSelection
& worldEventFlags . at InventoryChange ?~ ()
_ -> w
where
@@ -498,25 +498,25 @@ updateBackspaceRegex w = case di ^? subInventory of
he & filtset . _Just %~ init
& selset ?~ (x, 0, mempty)
[] -> he & filtset .~ Nothing
di = w ^. hud . hudElement
di = w ^. hud
updateEnterRegex :: World -> World
updateEnterRegex w = case w ^? hud . hudElement . subInventory of
updateEnterRegex w = case w ^? hud . subInventory of
Just NoSubInventory{}
| secfocus [-1, 0, 1] ->
w & hud . hudElement . diSelection ?~ (-1, 0, mempty)
& hud . hudElement . diInvFilter %~ enterregex
w & hud . diSelection ?~ (-1, 0, mempty)
& hud . diInvFilter %~ enterregex
Just NoSubInventory{}
| secfocus [2, 3] ->
w & hud . hudElement . diSelection ?~ (2, 0, mempty)
& hud . hudElement . diCloseFilter %~ enterregex
w & hud . diSelection ?~ (2, 0, mempty)
& hud . diCloseFilter %~ enterregex
Just CombineInventory{} ->
w & hud . hudElement . subInventory . ciFilter %~ enterregex
& hud . hudElement . subInventory . ciSelection ?~ (-1, 0, mempty)
w & hud . subInventory . ciFilter %~ enterregex
& hud . subInventory . ciSelection ?~ (-1, 0, mempty)
_ -> w
where
secfocus xs = fromMaybe False $ do
i <- w ^? hud . hudElement . diSelection . _Just . _1
i <- w ^? hud . diSelection . _Just . _1
return $ i `elem` xs
enterregex = (<|> Just "")
@@ -524,15 +524,15 @@ pauseGame :: Universe -> Universe
pauseGame u = u & uvScreenLayers .~ [pauseMenu u] & pauseSound
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
_ -> w & hud . hudElement . subInventory .~ NoSubInventory
_ -> w & hud . subInventory .~ NoSubInventory
getCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button)
getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut
where
topcitem = do
k <- (w ^? hud . hudElement . diSections . ix 3 . ssItems)
k <- (w ^? hud . diSections . ix 3 . ssItems)
>>= (fmap fst . IM.lookupMin)
Left <$> w ^? hud . closeItems . ix k
topcbut = do
@@ -541,15 +541,15 @@ getCloseObj w = getSelectedCloseObj w <|> topcitem <|> topcbut
tryCombine :: (Int, Int) -> World -> World
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
p <- w ^? cWorld . lWorld . creatures . ix 0 . crPos
return $
(createItemYou it (foldr (destroyInvItem 0 . NInt) w (sort is)))
& soundStart InventorySound p wrench1S Nothing
& hud . hudElement . diSelection . _Just . _3 .~ mempty
& hud . diSelection . _Just . _3 .~ mempty
maybeExitCombine :: World -> World
maybeExitCombine 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
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
ExamineInventory -> updateBaseWheelEvent yi w
MapperInventory{} -> updateBaseWheelEvent yi w
@@ -118,7 +118,7 @@ zoomOutLongGun sc = fromMaybe sc $ do
moveCombineSel :: Int -> World -> World
moveCombineSel yi =
( hud . hudElement . subInventory %~ doscroll
( hud . subInventory %~ doscroll
)
. (worldEventFlags . at CombineInventoryChange ?~ ())
where
+3 -3
View File
@@ -55,7 +55,7 @@ accessTerminal tid w = fromMaybe w $ do
tm <- w ^? cWorld . lWorld . terminals . ix tid
guard (tm ^. tmStatus /= TerminalDeactivated)
return $
w & hud . hudElement . subInventory .~ DisplayTerminal tid
w & hud . subInventory .~ DisplayTerminal tid
& cWorld . lWorld . terminals . ix tid %~ tryToBoot
where
tryToBoot tm = case _tmStatus tm of
@@ -106,6 +106,6 @@ resetTerminal x tm =
. exitTerminalSubInv
exitTerminalSubInv :: World -> World
exitTerminalSubInv w = case w ^? hud . hudElement . subInventory . termID of
Just _ -> w & hud . hudElement . subInventory .~ NoSubInventory
exitTerminalSubInv w = case w ^? hud . subInventory . termID of
Just _ -> w & hud . subInventory .~ NoSubInventory
_ -> 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
CombNode src/Dodge/Combine/Graph.hs 25;" 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
ComsSS src/Dodge/Data/Scenario.hs 98;" C
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
Dirt src/Dodge/Data/Material.hs 11;" C
DisasterType src/Dodge/Data/Scenario.hs 24;" t
DisplayInventory src/Dodge/Data/HUD.hs 19;" C
DisplayTerminal src/Dodge/Data/HUD.hs 40;" C
DisplayTerminal src/Dodge/Data/HUD.hs 31;" C
Distortion src/Dodge/Data/Distortion.hs 12;" t
DivineRetribution src/Dodge/Data/Scenario.hs 35;" 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
EscapeMenuOption src/Dodge/Data/Universe.hs 76;" t
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
Explosion src/Dodge/Data/SoundOrigin.hs 38;" 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
HOMINGMODULE src/Dodge/Data/Item/Combine.hs 102;" C
HOSE src/Dodge/Data/Item/Combine.hs 55;" C
HUD src/Dodge/Data/HUD.hs 42;" t
HUDElement src/Dodge/Data/HUD.hs 18;" t
HUD src/Dodge/Data/HUD.hs 33;" t
HalfRes src/Dodge/Data/Config.hs 97;" C
HammerTrigger src/Dodge/Data/TriggerType.hs 10;" 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
IncendiaryBall src/Dodge/Data/EnergyBall/Type.hs 13;" 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
Inspect_wall src/Dodge/Data/Config.hs 91;" C
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
Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" t
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
Material src/Dodge/Data/Material.hs 11;" t
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
MouseAiming src/Dodge/Data/Input.hs 16;" C
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
MouseMenuClick src/Dodge/Data/Input.hs 18;" 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
NoShadowFidelity src/Shape/Data.hs 25;" 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
NoWorldEffect src/Dodge/Data/WorldEffect.hs 23;" 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
OutAction src/Dodge/Creature/Action.hs 46;" t
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
OverCombCombine src/Dodge/Data/Input.hs 29;" C
OverCombEscape src/Dodge/Data/Input.hs 31;" C
OverCombFiltInv src/Dodge/Data/Input.hs 27;" C
OverCombFilter src/Dodge/Data/Input.hs 30;" C
OverCombSelect src/Dodge/Data/Input.hs 28;" C
OverCombCombine src/Dodge/Data/Input.hs 25;" C
OverCombEscape src/Dodge/Data/Input.hs 27;" C
OverCombFiltInv src/Dodge/Data/Input.hs 23;" C
OverCombFilter src/Dodge/Data/Input.hs 26;" C
OverCombSelect src/Dodge/Data/Input.hs 24;" C
OverInvDrag src/Dodge/Data/Input.hs 20;" C
OverInvDragSelect src/Dodge/Data/Input.hs 25;" C
OverInvSelect src/Dodge/Data/Input.hs 26;" C
OverTerminal src/Dodge/Data/Input.hs 32;" C
OverInvDragSelect src/Dodge/Data/Input.hs 21;" C
OverInvSelect src/Dodge/Data/Input.hs 22;" C
OverTerminal src/Dodge/Data/Input.hs 28;" C
OverreachingAI src/Dodge/Data/Scenario.hs 31;" C
Overstrung src/Dodge/Data/Creature/Perception.hs 57;" C
P2Ac src/Dodge/Data/CreatureEffect.hs 53;" t
@@ -1295,7 +1293,7 @@ Stone src/Dodge/Data/Material.hs 11;" C
StorageSS src/Dodge/Data/Scenario.hs 94;" C
Strategy src/Dodge/Data/ActionPlan.hs 176;" t
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
Surface src/Shape/Data.hs 41;" t
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
TRANSFORMER src/Dodge/Data/Item/Combine.hs 65;" C
TRANSMITTER src/Dodge/Data/Item/Combine.hs 71;" C
TSbackspace src/Dodge/Data/Input.hs 58;" C
TSdelete src/Dodge/Data/Input.hs 59;" C
TSdown src/Dodge/Data/Input.hs 64;" C
TSescape src/Dodge/Data/Input.hs 56;" C
TSleft src/Dodge/Data/Input.hs 61;" C
TSreturn src/Dodge/Data/Input.hs 57;" C
TSright src/Dodge/Data/Input.hs 62;" C
TStab src/Dodge/Data/Input.hs 60;" C
TSup src/Dodge/Data/Input.hs 63;" C
TSbackspace src/Dodge/Data/Input.hs 54;" C
TSdelete src/Dodge/Data/Input.hs 55;" C
TSdown src/Dodge/Data/Input.hs 60;" C
TSescape src/Dodge/Data/Input.hs 52;" C
TSleft src/Dodge/Data/Input.hs 57;" C
TSreturn src/Dodge/Data/Input.hs 53;" C
TSright src/Dodge/Data/Input.hs 58;" C
TStab src/Dodge/Data/Input.hs 56;" C
TSup src/Dodge/Data/Input.hs 59;" C
TUBE src/Dodge/Data/Item/Combine.hs 52;" C
Tap src/Dodge/Data/SoundOrigin.hs 39;" 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
TargetingType src/Dodge/Data/Item/Targeting.hs 11;" t
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
TerminalDeactivated src/Dodge/Data/Terminal/Status.hs 12;" C
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
_canID src/Dodge/Data/LWorld.hs 170;" f
_carriage src/Dodge/Data/Creature/Stance.hs 14;" f
_carteCenter src/Dodge/Data/HUD.hs 44;" f
_carteRot src/Dodge/Data/HUD.hs 46;" f
_carteZoom src/Dodge/Data/HUD.hs 45;" f
_carteCenter src/Dodge/Data/HUD.hs 39;" f
_carteRot src/Dodge/Data/HUD.hs 41;" f
_carteZoom src/Dodge/Data/HUD.hs 40;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 88;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 96;" 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
_chasmVBO src/Data/Preload/Render.hs 45;" 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
_ciItem src/Dodge/Data/Combine.hs 7;" f
_ciSections src/Dodge/Data/HUD.hs 36;" f
_ciSelection src/Dodge/Data/HUD.hs 37;" f
_ciSections src/Dodge/Data/HUD.hs 27;" f
_ciSelection src/Dodge/Data/HUD.hs 28;" f
_cigType src/Dodge/Data/Camera.hs 19;" f
_clPos src/Dodge/Data/Cloud.hs 15;" 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
_cldtUp src/Dodge/Data/DoubleTree.hs 45;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 53;" f
_clickPos src/Dodge/Data/Input.hs 46;" f
_clickWorldPos src/Dodge/Data/Input.hs 48;" f
_closeButtons src/Dodge/Data/HUD.hs 48;" f
_closeItems src/Dodge/Data/HUD.hs 47;" f
_clickPos src/Dodge/Data/Input.hs 42;" f
_clickWorldPos src/Dodge/Data/Input.hs 44;" f
_closeButtons src/Dodge/Data/HUD.hs 43;" f
_closeItems src/Dodge/Data/HUD.hs 42;" f
_cloudEBO src/Data/Preload/Render.hs 51;" f
_cloudShader src/Data/Preload/Render.hs 50;" 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_view_clip_bounds src/Dodge/Data/Config.hs 56;" f
_delayedEvents src/Dodge/Data/LWorld.hs 137;" f
_diCloseFilter src/Dodge/Data/HUD.hs 24;" f
_diInvFilter src/Dodge/Data/HUD.hs 23;" f
_diSections src/Dodge/Data/HUD.hs 21;" f
_diSelection src/Dodge/Data/HUD.hs 22;" f
_diCloseFilter src/Dodge/Data/HUD.hs 38;" f
_diInvFilter src/Dodge/Data/HUD.hs 37;" f
_diSections src/Dodge/Data/HUD.hs 35;" f
_diSelection src/Dodge/Data/HUD.hs 36;" f
_dimAttachPos src/Dodge/Data/Item/Misc.hs 16;" f
_dimCenter src/Dodge/Data/Item/Misc.hs 15;" 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
_gusts src/Dodge/Data/LWorld.hs 105;" f
_gwWorld src/Dodge/Data/GenWorld.hs 24;" f
_heldPos src/Dodge/Data/Input.hs 47;" f
_heldWorldPos src/Dodge/Data/Input.hs 49;" f
_heldPos src/Dodge/Data/Input.hs 43;" f
_heldWorldPos src/Dodge/Data/Input.hs 45;" f
_hotkeys src/Dodge/Data/LWorld.hs 150;" 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
_ibtAmmoMag src/Dodge/Data/Item/Combine.hs 21;" 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
_mainAction src/Dodge/Data/ActionPlan.hs 171;" f
_manObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" f
_mapInvItmID src/Dodge/Data/HUD.hs 33;" f
_mapInvOffset src/Dodge/Data/HUD.hs 31;" f
_mapInvZoom src/Dodge/Data/HUD.hs 32;" f
_mapInvItmID src/Dodge/Data/HUD.hs 24;" f
_mapInvOffset src/Dodge/Data/HUD.hs 22;" f
_mapInvZoom src/Dodge/Data/HUD.hs 23;" f
_matUBO src/Data/Preload/Render.hs 39;" f
_mbAttach 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
_mcWallIDs src/Dodge/Data/Machine.hs 33;" f
_mcWidth src/Dodge/Data/Machine.hs 44;" f
_mcoCombCombine src/Dodge/Data/Input.hs 29;" f
_mcoCombSelect src/Dodge/Data/Input.hs 28;" f
_mcoCombCombine src/Dodge/Data/Input.hs 25;" f
_mcoCombSelect src/Dodge/Data/Input.hs 24;" f
_mcoDragSection src/Dodge/Data/Input.hs 20;" f
_mcoInvFilt src/Dodge/Data/Input.hs 27;" f
_mcoInvSelect src/Dodge/Data/Input.hs 26;" f
_mcoMaybeSelect src/Dodge/Data/Input.hs 21;" f
_mcoInvFilt src/Dodge/Data/Input.hs 23;" f
_mcoInvSelect src/Dodge/Data/Input.hs 22;" f
_mcoMaybeSelect src/Dodge/Data/Input.hs 20;" f
_mcoMenuClick src/Dodge/Data/Input.hs 18;" f
_mcoSecSelStart src/Dodge/Data/Input.hs 25;" f
_mcoSelEnd src/Dodge/Data/Input.hs 25;" f
_mcoTermID src/Dodge/Data/Input.hs 32;" f
_mcoTermStatus src/Dodge/Data/Input.hs 32;" f
_mcoSecSelStart src/Dodge/Data/Input.hs 21;" f
_mcoSelEnd src/Dodge/Data/Input.hs 21;" f
_mcoTermID src/Dodge/Data/Input.hs 28;" f
_mcoTermStatus src/Dodge/Data/Input.hs 28;" f
_mctTurret src/Dodge/Data/Machine.hs 53;" f
_mdBool src/Dodge/Data/Modification.hs 21;" 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
_modString src/Dodge/Data/Universe.hs 98;" f
_modifications src/Dodge/Data/LWorld.hs 135;" f
_mouseButtons src/Dodge/Data/Input.hs 42;" f
_mouseButtonsReleased src/Dodge/Data/Input.hs 43;" f
_mouseContext src/Dodge/Data/Input.hs 39;" f
_mouseMoving src/Dodge/Data/Input.hs 40;" f
_mousePos src/Dodge/Data/Input.hs 38;" f
_mouseButtons src/Dodge/Data/Input.hs 38;" f
_mouseButtonsReleased src/Dodge/Data/Input.hs 39;" f
_mouseContext src/Dodge/Data/Input.hs 35;" f
_mouseMoving src/Dodge/Data/Input.hs 36;" f
_mousePos src/Dodge/Data/Input.hs 34;" f
_mtBranches src/Dodge/Data/MetaTree.hs 10;" f
_mtLabel 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
_preloadData src/Dodge/Data/Universe.hs 33;" 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
_props src/Dodge/Data/LWorld.hs 106;" 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
_scTitle src/Dodge/Data/Universe.hs 83;" 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 75;" f
_scrollItemID src/Dodge/Data/World.hs 79;" f
_scrollSmoothing src/Dodge/Data/World.hs 63;" f
_scrollSmoothing src/Dodge/Data/World.hs 69;" f
_scrollTestFloat src/Dodge/Data/Input.hs 51;" f
_scrollTestInt src/Dodge/Data/Input.hs 52;" f
_scrollTestFloat src/Dodge/Data/Input.hs 47;" f
_scrollTestInt src/Dodge/Data/Input.hs 48;" f
_scurColor src/Dodge/Data/SelectionList.hs 26;" f
_scurPos src/Dodge/Data/SelectionList.hs 24;" f
_scurSize src/Dodge/Data/SelectionList.hs 25;" f
@@ -2351,7 +2348,7 @@ _skVel src/Dodge/Data/Spark.hs 15;" f
_skinHead src/Dodge/Data/Creature/Misc.hs 78;" f
_skinLower src/Dodge/Data/Creature/Misc.hs 80;" 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
_soundChannel src/Sound/Data.hs 48;" 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
_stuckCrRot src/Dodge/Data/Projectile.hs 50;" 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
_swDam src/Dodge/Data/Shockwave.hs 23;" 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
_tbTime src/Dodge/Data/TractorBeam.hs 17;" 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
_teslaArcs src/Dodge/Data/LWorld.hs 116;" 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
_tiText src/Dodge/Data/Terminal/Status.hs 14;" 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
defaultDirtBlock src/Dodge/Default/Block.hs 19;" 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
defaultDoorWall src/Dodge/Default/Wall.hs 39;" 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
doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 56;" 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 45;" 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
doQuicksave src/Dodge/Save.hs 77;" 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
doRoomOutPlacements src/Dodge/Layout.hs 107;" 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
encircleP src/Dodge/Creature/Boid.hs 28;" f
endArcPos src/Dodge/Tesla.hs 87;" f
endCombineRegex src/Dodge/Update/Input/InGame.hs 270;" f
endRegex src/Dodge/Update/Input/InGame.hs 261;" f
endCombineRegex src/Dodge/Update/Input/InGame.hs 271;" f
endRegex src/Dodge/Update/Input/InGame.hs 265;" f
energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 592;" f
enterCombineInv src/Dodge/DisplayInventory.hs 322;" 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
getBulHitDams src/Dodge/Bullet.hs 170;" 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
getCommands src/Dodge/Terminal.hs 55;" 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
isConnected src/Dodge/Inventory/Swap.hs 76;" 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
isJust' src/MaybeHelp.hs 29;" 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
maybeDestroyBlock src/Dodge/Wall/Damage.hs 32;" 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
maybeReadFile src/Dodge/LoadSeed.hs 10;" 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
pathEdgeObstructed src/Dodge/Path.hs 43;" 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
pauseMenuOptions src/Dodge/Menu.hs 61;" 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
setOutLinksPD src/Dodge/RoomLink.hs 77;" 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
setShaderSource src/Shader/Compile.hs 290;" 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
shiftInBy src/Dodge/PlacementSpot.hs 251;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 305;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 346;" f
shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 340;" f
shiftInvItemsDown src/Dodge/Update/Input/InGame.hs 350;" f
shiftInvItemsUp src/Dodge/Update/Input/InGame.hs 344;" f
shiftLinkBy src/Dodge/Room/Link.hs 87;" f
shiftPSBy src/Dodge/Placement/Shift.hs 12;" f
shiftPathBy src/Dodge/Room/Link.hs 92;" f
@@ -5115,7 +5111,7 @@ soundToVol src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 4;" f
soundWithStatus src/Dodge/SoundLogic.hs 104;" f
soundWithStatusVolume src/Dodge/SoundLogic.hs 54;" 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
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 183;" 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
startCr src/Dodge/Creature.hs 92;" 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
startInventory src/Dodge/Creature.hs 110;" 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
tryAttachItems src/Dodge/Item/Grammar.hs 34;" 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
tryDropSelected src/Dodge/Update/Input/InGame.hs 128;" f
tryDropSelected src/Dodge/Update/Input/InGame.hs 137;" f
tryGetChannel src/Sound.hs 97;" f
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 23;" f
tryGetRootItemInvID src/Dodge/Inventory/Location.hs 35;" 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
tryPutItemInInv src/Dodge/Inventory/Add.hs 24;" 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
updateAllNodes src/TreeHelp.hs 85;" 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
updateBarreloid src/Dodge/Barreloid.hs 15;" 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
updateFloatingCamera src/Dodge/Update/Camera.hs 35;" 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
updateHumanoid src/Dodge/Humanoid.hs 13;" f
updateIMl src/Dodge/Update.hs 538;" f
updateIMl' src/Dodge/Update.hs 543;" 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
updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f
updateItemTargeting src/Dodge/Creature/State.hs 258;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 394;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 419;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 395;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 420;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 381;" f
updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 403;" 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
updateLeftParentSF src/Dodge/Item/Grammar.hs 170;" 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
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
updateMouseContextGame src/Dodge/Update.hs 347;" f
updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 99;" f
updateMouseInGame src/Dodge/Update/Input/InGame.hs 89;" f
updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 160;" f
updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 96;" f
updateMouseInGame src/Dodge/Update/Input/InGame.hs 86;" f
updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 166;" f
updateObjCatMaybes src/Dodge/Update.hs 560;" f
updateObjMapMaybe src/Dodge/Update.hs 553;" 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
updateUniverseLast src/Dodge/Update.hs 141;" 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
updateWalkCycle src/Dodge/Creature/State/WalkCycle.hs 10;" f
updateWallDamages src/Dodge/Update/WallDamage.hs 10;" f