This commit is contained in:
2026-05-17 00:01:48 +01:00
parent 16def12959
commit 0386683670
8 changed files with 185 additions and 224 deletions
@@ -10,12 +10,6 @@ import qualified Data.IntSet as IS
import Control.Lens import Control.Lens
import Data.Aeson import Data.Aeson
import Data.Aeson.TH import Data.Aeson.TH
--import Sound.Data
--data Manipulation -- should be ManipulatedObject?
-- = Manipulator {_manObject :: ManipulatedObject }
-- | Brute
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
data ManipulatedObject data ManipulatedObject
= HeldItem = HeldItem
@@ -24,20 +18,6 @@ data ManipulatedObject
, _hiAttachedItems :: IS.IntSet -- this should probably be NewIntSet InvInt also , _hiAttachedItems :: IS.IntSet -- this should probably be NewIntSet InvInt also
} }
| HandsFree | HandsFree
-- = SortInventory
-- | SelectedItem
-- { _imRootSelectedItem :: NewInt InvInt
-- , _imAimStance :: AimStance
-- , _imAttachedItems :: IS.IntSet -- this should probably be NewIntSet InvInt also
-- }
-- | SelNothing
-- | SortCloseItem
-- | SelCloseItem {_ispCloseItem :: Int}
-- | SortCloseButton
-- | SelCloseButton {_ispCloseButton :: Int}
-- deriving (Eq, Ord, Show, Read) --Generic, Flat)
makeLenses ''ManipulatedObject makeLenses ''ManipulatedObject
--makeLenses ''Manipulation
deriveJSON defaultOptions ''ManipulatedObject deriveJSON defaultOptions ''ManipulatedObject
--deriveJSON defaultOptions ''Manipulation
+4 -3
View File
@@ -14,11 +14,12 @@ import System.Random
copyItemToFloor :: Point2 -> Item -> World -> World copyItemToFloor :: Point2 -> Item -> World -> World
copyItemToFloor p it w = copyItemToFloor p it w =
w' w'
& cWorld . lWorld . floorItems . at (it ^. itID . unNInt) ?~ FlIt q r & cWorld . lWorld . floorItems . at i ?~ FlIt q r
& cWorld . lWorld . items . at (it ^. itID . unNInt) ?~ (it & itLocation .~ OnFloor) & cWorld . lWorld . items . at i ?~ (it & itLocation .~ OnFloor)
& hud . closeItems .:~ _itID it -- puts item at top of close items & hud . closeItems .:~ _itID it -- puts item at top of close items
& cWorld . highlightItems . at (it ^. itID . unNInt) ?~ 20 & cWorld . highlightItems . at i ?~ 20
where where
i = it ^. itID . unNInt
(q, w') = findWallFreeDropPoint (_dimRad $ itDim it) p w (q, w') = findWallFreeDropPoint (_dimRad $ itDim it) p w
r = fst . randomR (- pi, pi) $ _randGen w r = fst . randomR (- pi, pi) $ _randGen w
-12
View File
@@ -12,7 +12,6 @@ module Dodge.Inventory (
swapInvItems, swapInvItems,
scrollAugNextInSection, scrollAugNextInSection,
swapItemWith, swapItemWith,
destroyItem,
destroyAllInvItems, destroyAllInvItems,
multiSelScroll, multiSelScroll,
changeSwapSelSet, changeSwapSelSet,
@@ -68,17 +67,6 @@ destroyAllInvItems cr w =
. _unNIntMap . _unNIntMap
$ cr ^. crInv $ cr ^. crInv
destroyItem :: Int -> World -> World
destroyItem itid w = case w ^? cWorld . lWorld . items . ix itid . itLocation of
Nothing -> error $ "Tried to destroy item that does not exist; item id: " ++ show itid
Just InInv{_ilCrID = cid, _ilInvID = invid} -> destroyInvItem cid invid w
Just OnTurret{} -> error "need to write code for destroying items on turrets"
Just OnFloor{} ->
w
& cWorld . lWorld . items . at itid .~ Nothing
& cWorld . lWorld . floorItems . at itid .~ Nothing
Just InVoid -> w & cWorld . lWorld . items . at itid .~ Nothing
-- note rmInvItem does not fully destroy the item, other updates to the item -- note rmInvItem does not fully destroy the item, other updates to the item
-- location are required -- location are required
-- note if this gets called ssInvPosFromSS might be necessary elsewhere -- note if this gets called ssInvPosFromSS might be necessary elsewhere
+2 -6
View File
@@ -29,14 +29,10 @@ tryPutItemInInv mcipos itid w = do
let itloc = InInv let itloc = InInv
{ _ilCrID = 0 { _ilCrID = 0
, _ilInvID = invid , _ilInvID = invid
-- , _ilIsRoot = False
-- , _ilIsSelected = False
-- , _ilIsAttached = False
, _ilEquipSite = Nothing , _ilEquipSite = Nothing
} }
return $ (invid,) $ return $ (invid,) $
w w
& crUpdateItemLocations
-- not sure about the order of these... -- not sure about the order of these...
& cWorld . lWorld . creatures . ix 0 . crInv . at invid ?~ itid & cWorld . lWorld . creatures . ix 0 . crInv . at invid ?~ itid
& cWorld . lWorld . items . ix itid . itLocation .~ itloc & cWorld . lWorld . items . ix itid . itLocation .~ itloc
@@ -78,8 +74,8 @@ createItemYou itm w = maybe w' snd $ tryPutItemInInv Nothing itid w'
w' = copyItemToFloor pos (itm & itID .~ NInt itid) w w' = copyItemToFloor pos (itm & itID .~ NInt itid) w
-- the duplication is annoying... -- the duplication is annoying...
pickUpItem :: (Int,Int) -> World -> World pickUpItem :: Int -> Int -> World -> World
pickUpItem (i,itid) w = fromMaybe w $ do pickUpItem i itid w = fromMaybe w $ do
p <- w ^? cWorld . lWorld . floorItems . ix itid . flItPos p <- w ^? cWorld . lWorld . floorItems . ix itid . flItPos
soundStart (CrSound 0) p pickUpS Nothing . snd <$> tryPutItemInInv (Just i) itid w soundStart (CrSound 0) p pickUpS Nothing . snd <$> tryPutItemInInv (Just i) itid w
+3 -3
View File
@@ -219,9 +219,9 @@ hotkeyToChar = \case
closeItemToSelectionItem :: World -> Int -> Maybe (SelectionItem ()) closeItemToSelectionItem :: World -> Int -> Maybe (SelectionItem ())
closeItemToSelectionItem w i = do closeItemToSelectionItem w i = do
e <- w ^? cWorld . lWorld . items . ix i itm <- w ^? cWorld . lWorld . items . ix i
let pics = itemDisplay w Nothing e let pics = itemDisplay w Nothing itm
col = itemInvColor (baseCI e) col = itemInvColor (baseCI itm)
return return
SelItem SelItem
{ _siPictures = pics { _siPictures = pics
+5 -3
View File
@@ -10,10 +10,12 @@ import Data.Maybe
-- assumes that, for picking up, you are selecting the item -- assumes that, for picking up, you are selecting the item
interactWithCloseObj :: Either (NewInt ItmInt) Button -> World -> World interactWithCloseObj :: Either (NewInt ItmInt) Button -> World -> World
interactWithCloseObj e w = worldEventFlags . at InventoryChange ?~ () $ case e of interactWithCloseObj e w = worldEventFlags . at InventoryChange ?~ () $ case e of
(Left flit) -> fromMaybe w $ do (Left flit) -> pickUpItem i (_unNInt flit) w
i <- w ^? hud . diSelection . _Just . slInt
return $ pickUpItem (i,_unNInt flit) w
(Right but) -> doButtonEvent (but ^. btEvent) but w (Right but) -> doButtonEvent (but ^. btEvent) but w
where
i = fromMaybe 0 $ do
Sel 3 j <- w ^. hud . diSelection
return j
getSelectedCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button) getSelectedCloseObj :: World -> Maybe (Either (NewInt ItmInt) Button)
getSelectedCloseObj w = do getSelectedCloseObj w = do
+87 -91
View File
@@ -49,18 +49,19 @@ import SDL
updateUseInputInGame :: Universe -> Universe updateUseInputInGame :: Universe -> Universe
updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . subInventory of updateUseInputInGame u = updateFunctionKeys $ case u ^. uvWorld . hud . subInventory of
DisplayTerminal tmid -> updateKeysInTerminal tmid u DisplayTerminal tmid -> updateKeysInTerminal tmid u
CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (Sel (-1) _))} -> u CombineInventory{_ciSections = sss, _ciSelection = msel@(Just (Sel (-1) _))} ->
& uvWorld . hud . subInventory %~ docombineregexinput sss msel u
& uvWorld . worldEventFlags . at CombineInventoryChange ?~ () & uvWorld . hud . subInventory %~ docombineregexinput sss msel
& uvWorld . worldEventFlags . at CombineInventoryChange ?~ ()
_ | Just (-1) <- disel -> f diInvFilter diInvFilter (-1) _ | Just (-1) <- disel -> f diInvFilter diInvFilter (-1)
_ | Just 2 <- disel -> f diCloseFilter diCloseFilter 2 _ | Just 2 <- disel -> f diCloseFilter diCloseFilter 2
_ -> updateKeysInGame u _ -> updateKeysInGame u
where where
disel = u ^? uvWorld . hud . diSelection . _Just . slSec disel = u ^? uvWorld . hud . diSelection . _Just . slSec
f x y i = u f x y i = u
& uvWorld . hud %~ dodisplayregexinput x y i & uvWorld . hud %~ dodisplayregexinput x y i
& uvWorld . worldEventFlags . at InventoryChange ?~ () & uvWorld . worldEventFlags . at InventoryChange ?~ ()
& uvWorld %~ setInvPosFromSS -- not sure if this is necessary & uvWorld %~ setInvPosFromSS -- not sure if this is necessary
dodisplayregexinput filterprism filterlens x di = fromMaybe di $ do dodisplayregexinput filterprism filterlens x di = fromMaybe di $ do
sss <- di ^? diSections sss <- di ^? diSections
msel <- di ^? diSelection msel <- di ^? diSelection
@@ -96,30 +97,9 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of
OverInvDragSelect{} OverInvDragSelect{}
| ButtonRight `M.member` (w ^. input . mouseButtons) -> | ButtonRight `M.member` (w ^. input . mouseButtons) ->
w & input . mouseContext .~ MouseGameRotate (dist (mouseWorldPosW w) (w ^. wCam . camCenter)) w & input . mouseContext .~ MouseGameRotate (dist (mouseWorldPosW w) (w ^. wCam . camCenter))
-- OverInvDragSelect {} -> w
-- OverInvDragSelect (Just sstart) _ ->
-- case inverseSelNumPos cfig invDP (w ^. input . mousePos) sss of
-- Nothing -> w & input . mouseContext . mcoSelEnd .~ Nothing
-- Just m
-- | fmap fst m == NonInf (fst sstart) -> w & input . mouseContext . mcoSelEnd ?~ (m ^?! nonInf . _2)
-- | fmap fst m < NonInf (fst sstart) -> w & input . mouseContext . mcoSelEnd ?~ 0
-- | otherwise -> w & input . mouseContext . mcoSelEnd .~
-- fmap fst (IM.lookupMax =<< sss ^? ix (fst sstart) . ssItems)
-- -- not sure how the above performs when filtering...
-- OverInvDragSelect Nothing _ -> fromMaybe w $ do
-- ysel <-
-- inverseSelSecYint
-- (posSelSecYint cfig invDP (w ^. input . mousePos . _y))
-- sss
-- ^? nonInf
-- guard (isGroupSelectableSection $ fst ysel)
-- return $ w & input . mouseContext .~ OverInvDragSelect (Just ysel) Nothing
-- OverInvDrag k mmouseover -> doDrag cfig 30 k mmouseover w
OverInvDrag k -> doDrag cfig 30 k w OverInvDrag k -> doDrag cfig 30 k w
OverTerminalBar p -> w & tmLDP %~ setPixelOffsetBounded cfig (p + w ^. input . mousePos) OverTerminalBar p -> w & tmLDP %~ setPixelOffsetBounded cfig (p + w ^. input . mousePos)
_ -> w _ -> w
-- where
-- sss = w ^. hud . diSections
setPixelOffsetBounded :: Config -> Point2 -> LDParams -> LDParams setPixelOffsetBounded :: Config -> Point2 -> LDParams -> LDParams
setPixelOffsetBounded cfig (V2 x y) ldp = ldp & ldpPos . spPixelOff .~ V2 x' y' setPixelOffsetBounded cfig (V2 x y) ldp = ldp & ldpPos . spPixelOff .~ V2 x' y'
@@ -134,8 +114,6 @@ setPixelOffsetBounded cfig (V2 x y) ldp = ldp & ldpPos . spPixelOff .~ V2 x' y'
max (1 + 20 * (ldp ^. ldpVerticalGap + ldp ^?! ldpSize . _Just . _y . to fromIntegral) - h * b) y max (1 + 20 * (ldp ^. ldpVerticalGap + ldp ^?! ldpSize . _Just . _y . to fromIntegral) - h * b) y
V2 a b = ldp ^. ldpPos . spScreenOff V2 a b = ldp ^. ldpPos . spScreenOff
--doDrag :: Config -> Int -> Int -> Maybe (Int, Int) -> World -> World
--doDrag cfig n k mmouseover w = fromMaybe w $ do
doDrag :: Config -> Int -> Int -> World -> World doDrag :: Config -> Int -> Int -> World -> World
doDrag cfig n k w = fromMaybe w $ do doDrag cfig n k w = fromMaybe w $ do
guard (n /= 0) guard (n /= 0)
@@ -173,11 +151,6 @@ selectionSet w = do
Just is | not $ IS.null is -> Just is Just is | not $ IS.null is -> Just is
_ -> IS.singleton <$> w ^? hud . diSelection . _Just . slInt _ -> IS.singleton <$> w ^? hud . diSelection . _Just . slInt
-- selectionSet :: World -> Maybe IS.IntSet
-- selectionSet w = case w ^? hud . diSelection . _Just . slSet of
-- Just is' | not $ IS.null is' -> Just is'
-- _ -> IS.singleton <$> w ^? hud . diSelection . _Just . slInt
tryPickupSelected :: Int -> Maybe (Int, Int) -> World -> Maybe World tryPickupSelected :: Int -> Maybe (Int, Int) -> World -> Maybe World
tryPickupSelected k mpos w = do tryPickupSelected k mpos w = do
guard $ k == 3 guard $ k == 3
@@ -195,8 +168,7 @@ tryPickupSelected k mpos w = do
guard $ nfreeslots >= slotsneeded guard $ nfreeslots >= slotsneeded
return $ case mpos of return $ case mpos of
Just (0, j) -> foldr (pickUpItemAt j) w (zip is ispickup) & newdisel j joff Just (0, j) -> foldr (pickUpItemAt j) w (zip is ispickup) & newdisel j joff
_ -> foldl' (flip $ pickUpItem) w (zip is ispickup) & newdisel (length (cr ^. crInv)) joff _ -> foldl' (flip $ pickUpItem (head is)) w ispickup & newdisel (length (cr ^. crInv)) joff
-- _ -> foldr (pickUpItem 0) w (zip is ispickup) & newdisel (length (cr ^. crInv)) joff
where where
newdisel j joff = hud . diSelection ?~ Sel 0 (j + joff) newdisel j joff = hud . diSelection ?~ Sel 0 (j + joff)
g i = do g i = do
@@ -204,35 +176,37 @@ tryPickupSelected k mpos w = do
w ^? cWorld . lWorld . items . ix j w ^? cWorld . lWorld . items . ix j
updateMouseReleaseInGame :: Config -> World -> World updateMouseReleaseInGame :: Config -> World -> World
updateMouseReleaseInGame cfig w = case w ^. input . mouseContext of updateMouseReleaseInGame cfig w = input . mouseContext .~ MouseInGame $ case w ^. input . mouseContext of
--OverInvDrag k mpos ->
OverInvDrag k -> OverInvDrag k ->
input . mouseContext .~ MouseInGame $ fromMaybe w $
fromMaybe w $ tryDropSelected mpos w <|> tryPickupSelected k mpos w
tryDropSelected mpos w <|> tryPickupSelected k mpos w OverInvDragSelect ssel ->
OverInvDragSelect ssel w
| ScancodeLShift `M.member` (w ^. input . pressedKeys) -> & mresetssset
w & input . mouseContext .~ MouseInGame & doDragSelect cfig ssel
& doDragSelect cfig ssel
OverInvDragSelect ssel -> w & input . mouseContext .~ MouseInGame
& hud . diSections . ix 0 . ssSet .~ mempty
& hud . diSections . ix 3 . ssSet .~ mempty
& doDragSelect cfig ssel
_ -> w _ -> w
where where
mresetssset
| ScancodeLShift `M.member` (w ^. input . pressedKeys) = id
| otherwise = hud . diSections . each . ssSet .~ mempty
mpos = inverseSelNumPos cfig invDP mpos' disss ^? _Just . nonInf mpos = inverseSelNumPos cfig invDP mpos' disss ^? _Just . nonInf
mpos' = w ^. input . mousePos mpos' = w ^. input . mousePos
disss = w ^. hud . diSections disss = w ^. hud . diSections
doDragSelect :: Config -> XInfinity (Int,Int) -> World -> World doDragSelect :: Config -> XInfinity (Int, Int) -> World -> World
doDragSelect cfig x w = fromMaybe w $ do doDragSelect cfig x w = fromMaybe w $ do
sss <- w ^? hud . diSections sss <- w ^? hud . diSections
y <- inverseSelNumPos cfig invDP (w^.input.mousePos) sss y <- inverseSelNumPos cfig invDP (w ^. input . mousePos) sss
return $ IM.foldlWithKey' f w $ sssSelectionSlice sss x y return $ IM.foldlWithKey' f w $ sssSelectionSlice sss x y
where where
f w' i ss f w' i ss
| i == 0 || i == 3 = w' | i == 0 || i == 3 =
& hud . diSections . ix i . ssSet %~ symmetricDifference (IM.keysSet (ss ^. ssItems)) w'
& hud
. diSections
. ix i
. ssSet
%~ symmetricDifference (IM.keysSet (ss ^. ssItems))
| otherwise = w' | otherwise = w'
-- this is in Data.IntSet 0.8 -- this is in Data.IntSet 0.8
@@ -241,16 +215,23 @@ symmetricDifference x y = (x `IS.union` y) IS.\\ (x `IS.intersection` y)
updateMouseClickInGame :: Config -> World -> World updateMouseClickInGame :: Config -> World -> World
updateMouseClickInGame cfig w = case w ^. input . mouseContext of updateMouseClickInGame cfig w = case w ^. input . mouseContext of
MouseInGame -> w & input . mouseContext .~ OverInvDragSelect MouseInGame ->
(inverseSelSecYint w
(posSelSecYint cfig invDP (w ^. input . mousePos . _y)) & input
(w ^. hud . diSections)) . mouseContext
.~ OverInvDragSelect
( inverseSelSecYint
(posSelSecYint cfig invDP (w ^. input . mousePos . _y))
(w ^. hud . diSections)
)
OverInvSelect (-1, _) OverInvSelect (-1, _)
| selsec == Just (-1) -> w | selsec == Just (-1) ->
w
& hud . diSelection %~ endRegex (-1) w & hud . diSelection %~ endRegex (-1) w
& hud . diInvFilter .~ Nothing & hud . diInvFilter .~ Nothing
OverInvSelect (2, _) OverInvSelect (2, _)
| selsec == Just 2 -> w | selsec == Just 2 ->
w
& hud . diSelection %~ endRegex 2 w & hud . diSelection %~ endRegex 2 w
& hud . diCloseFilter .~ Nothing & hud . diCloseFilter .~ Nothing
OverInvSelect (5, j) -> fromMaybe w $ do OverInvSelect (5, j) -> fromMaybe w $ do
@@ -258,25 +239,29 @@ updateMouseClickInGame cfig w = case w ^. input . mouseContext of
but <- w ^? cWorld . lWorld . buttons . ix k but <- w ^? cWorld . lWorld . buttons . ix k
return $ doButtonEvent (but ^. btEvent) but w return $ doButtonEvent (but ^. btEvent) but w
OverInvSelect x OverInvSelect x
| ScancodeLShift `M.member` (w ^. input . pressedKeys) | ScancodeLShift `M.member` (w ^. input . pressedKeys) ->
-> w & input . mouseContext .~ OverInvDragSelect (NonInf x) w & input . mouseContext .~ OverInvDragSelect (NonInf x)
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 . subInventory .~ NoSubInventory OutsideTerminal -> w & hud . subInventory .~ NoSubInventory
OverCombSelect x -> w OverCombSelect x ->
w
& hud . subInventory . ciSelection ?~ f x & hud . subInventory . ciSelection ?~ f x
& worldEventFlags . at CombineInventoryChange ?~ () & worldEventFlags . at CombineInventoryChange ?~ ()
OverCombFilter -> w OverCombFilter ->
w
& hud . subInventory . ciFilter .~ Nothing & hud . subInventory . ciFilter .~ Nothing
& worldEventFlags . at CombineInventoryChange ?~ () & worldEventFlags . at CombineInventoryChange ?~ ()
& hud . subInventory . ciSelection %~ endCombineRegex w & hud . subInventory . ciSelection %~ endCombineRegex w
OverCombCombine x -> w OverCombCombine x ->
w
& tryCombine x & tryCombine x
& worldEventFlags . at CombineInventoryChange ?~ () & worldEventFlags . at CombineInventoryChange ?~ ()
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
& maybeExitCombine & maybeExitCombine
OverCombEscape -> w OverCombEscape ->
w
& worldEventFlags . at InventoryChange ?~ () & worldEventFlags . at InventoryChange ?~ ()
& hud . subInventory .~ NoSubInventory & hud . subInventory .~ NoSubInventory
OverCombFiltInv (0, j) -> fromMaybe w $ do OverCombFiltInv (0, j) -> fromMaybe w $ do
@@ -313,23 +298,16 @@ endCombineRegex w = ssSetCursor (ssLookupDown 0 j) sss
return (k - 1) return (k - 1)
startDrag :: (Int, Int) -> World -> World startDrag :: (Int, Int) -> World -> World
startDrag (a, b) w = w startDrag (a, b) w =
& input . mouseContext .~ OverInvDrag a w
& invSetSelectionPos a b & input . mouseContext .~ OverInvDrag a
& f & invSetSelectionPos a b
& f
where where
f = fromMaybe id $ do f = fromMaybe id $ do
is <- w ^? hud . diSections . ix a . ssSet is <- w ^? hud . diSections . ix a . ssSet
guard $ not $ b `IS.member` is guard $ not $ b `IS.member` is
return $ hud . diSections . ix a . ssSet .~ mempty return $ hud . diSections . ix a . ssSet .~ mempty
-- setcontext $ fromMaybe (invSetSelection (Sel a b) w & hud.diSections.ix a.ssSet.~ mempty) $ do
-- i <- w ^? hud . diSelection . _Just . slSec
-- xs <- w ^? hud . diSections . ix a . ssSet
-- guard $ i == a && b `IS.member` xs
-- return w
-- where
-- --setcontext = input . mouseContext .~ OverInvDrag a (Just (a, b))
-- setcontext = input . mouseContext .~ OverInvDrag a
shiftInvItems :: shiftInvItems ::
Config -> Config ->
@@ -356,12 +334,12 @@ shiftInvItems cfig n k x xs ss w = setSelWhileDragging cfig . fromMaybe w $ do
_ | x < (k, mini) -> do _ | x < (k, mini) -> do
guard $ not . null . fst $ IM.split mini ss guard $ not . null . fst $ IM.split mini ss
guard $ Just (k, mini - 1) /= ab guard $ Just (k, mini - 1) /= ab
--return . doDrag cfig (n - 1) k (Just x) $ shiftInvItemsUp k xs w -- return . doDrag cfig (n - 1) k (Just x) $ shiftInvItemsUp k xs w
return . doDrag cfig (n - 1) k $ shiftInvItemsUp k xs w return . doDrag cfig (n - 1) k $ shiftInvItemsUp k xs w
_ | x > (k, maxi) -> do _ | x > (k, maxi) -> do
guard $ not . null . snd $ IM.split maxi ss guard $ not . null . snd $ IM.split maxi ss
guard $ Just (k, maxi + 1) /= bn guard $ Just (k, maxi + 1) /= bn
--return . doDrag cfig (n - 1) k (Just x) $ shiftInvItemsDown k xs w -- return . doDrag cfig (n - 1) k (Just x) $ shiftInvItemsDown k xs w
return . doDrag cfig (n - 1) k $ shiftInvItemsDown k xs w return . doDrag cfig (n - 1) k $ shiftInvItemsDown k xs w
_ -> Nothing _ -> Nothing
@@ -369,8 +347,8 @@ setSelWhileDragging :: Config -> World -> World
setSelWhileDragging cfig w = fromMaybe w $ do setSelWhileDragging cfig w = fromMaybe w $ do
Sel i _ <- w ^? hud . diSelection . _Just Sel i _ <- w ^? hud . diSelection . _Just
xs <- w ^? hud . diSections . ix i . ssSet xs <- w ^? hud . diSections . ix i . ssSet
--(k, j) <- w ^? input . mouseContext . mcoMaybeSelect . _Just -- (k, j) <- w ^? input . mouseContext . mcoMaybeSelect . _Just
(k, j) <- inverseSelNumPos cfig invDP (w^.input.mousePos) (w^.hud.diSections) ^? _Just . nonInf (k, j) <- inverseSelNumPos cfig invDP (w ^. input . mousePos) (w ^. hud . diSections) ^? _Just . nonInf
guard $ i == k && j `IS.member` xs guard $ i == k && j `IS.member` xs
return $ w & hud . diSelection . _Just . slInt .~ j return $ w & hud . diSelection . _Just . slInt .~ j
@@ -511,17 +489,27 @@ updateBackspaceRegex w = case di ^? subInventory of
Just NoSubInventory{} Just NoSubInventory{}
| secfocus (-1) 0 -> | secfocus (-1) 0 ->
w w
& hud %~ trybackspace (-1) diInvFilter diInvFilter diSelection & hud
& worldEventFlags . at InventoryChange ?~ () %~ trybackspace (-1) diInvFilter diInvFilter diSelection
& worldEventFlags
. at InventoryChange
?~ ()
Just NoSubInventory{} Just NoSubInventory{}
| secfocus 2 3 -> | secfocus 2 3 ->
w w
& hud %~ trybackspace 2 diCloseFilter diCloseFilter diSelection & hud
& worldEventFlags . at InventoryChange ?~ () %~ trybackspace 2 diCloseFilter diCloseFilter diSelection
& worldEventFlags
. at InventoryChange
?~ ()
Just CombineInventory{} -> Just CombineInventory{} ->
w w
& hud . subInventory %~ trybackspace (-1) ciFilter ciFilter ciSelection & hud
& worldEventFlags . at InventoryChange ?~ () . subInventory
%~ trybackspace (-1) ciFilter ciFilter ciSelection
& worldEventFlags
. at InventoryChange
?~ ()
_ -> w _ -> w
where where
secfocus a b = fromMaybe False $ do secfocus a b = fromMaybe False $ do
@@ -557,8 +545,12 @@ updateEnterRegex w = case w ^? hud . subInventory of
| secfocus [2, 3] -> | secfocus [2, 3] ->
-- w & hud . diSelection ?~ Sel 2 0 mempty -- w & hud . diSelection ?~ Sel 2 0 mempty
w w
& hud . diSelection ?~ Sel 2 0 & hud
& hud . diCloseFilter %~ enterregex . diSelection
?~ Sel 2 0
& hud
. diCloseFilter
%~ enterregex
Just CombineInventory{} -> Just CombineInventory{} ->
w w
& hud & hud
@@ -605,7 +597,11 @@ tryCombine (i, j) w = fromMaybe w $ do
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 . diSections . ix 1 . ssSet .~ mempty & hud
. diSections
. ix 1
. ssSet
.~ mempty
-- & hud . diSelection . _Just . slSet .~ mempty -- & hud . diSelection . _Just . slSet .~ mempty
+84 -86
View File
@@ -528,11 +528,11 @@ HP src/Dodge/Data/Creature.hs 64;" C
HUD src/Dodge/Data/HUD.hs 29;" t HUD src/Dodge/Data/HUD.hs 29;" t
HalfRes src/Dodge/Data/Config.hs 115;" C HalfRes src/Dodge/Data/Config.hs 115;" C
HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C HammerTrigger src/Dodge/Data/TriggerType.hs 10;" C
HandsFree src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 26;" C HandsFree src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 20;" C
HardQuit src/Dodge/Data/Universe.hs 68;" C HardQuit src/Dodge/Data/Universe.hs 68;" C
HarvestFrom src/Dodge/Data/ActionPlan.hs 153;" C HarvestFrom src/Dodge/Data/ActionPlan.hs 153;" C
HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C HeavySmokeFlare src/Dodge/Data/Muzzle.hs 33;" C
HeldItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 21;" C HeldItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" C
HeldItemType src/Dodge/Data/Item/Combine.hs 141;" t HeldItemType src/Dodge/Data/Item/Combine.hs 141;" t
HeldPlatformSF src/Dodge/Data/ComposedItem.hs 15;" C HeldPlatformSF src/Dodge/Data/ComposedItem.hs 15;" C
HiddenGoal src/Dodge/Data/Scenario.hs 14;" C HiddenGoal src/Dodge/Data/Scenario.hs 14;" C
@@ -731,7 +731,7 @@ MakeSound src/Dodge/Data/ActionPlan.hs 46;" C
MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 33;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 33;" C
MakeTempLight src/Dodge/Data/WorldEffect.hs 36;" C MakeTempLight src/Dodge/Data/WorldEffect.hs 36;" C
MakeTempLightFade src/Dodge/Data/WorldEffect.hs 37;" C MakeTempLightFade src/Dodge/Data/WorldEffect.hs 37;" C
ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 20;" t ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 14;" t
MapperInventory src/Dodge/Data/HUD.hs 17;" C MapperInventory src/Dodge/Data/HUD.hs 17;" C
MapperSF src/Dodge/Data/ComposedItem.hs 40;" C MapperSF src/Dodge/Data/ComposedItem.hs 40;" C
Material src/Dodge/Data/Material.hs 10;" t Material src/Dodge/Data/Material.hs 10;" t
@@ -1912,9 +1912,9 @@ _gwWorld src/Dodge/Data/GenWorld.hs 25;" f
_harvestTarget src/Dodge/Data/ActionPlan.hs 153;" f _harvestTarget src/Dodge/Data/ActionPlan.hs 153;" f
_heldPos src/Dodge/Data/Input.hs 45;" f _heldPos src/Dodge/Data/Input.hs 45;" f
_heldWorldPos src/Dodge/Data/Input.hs 47;" f _heldWorldPos src/Dodge/Data/Input.hs 47;" f
_hiAimStance src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 23;" f _hiAimStance src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 17;" f
_hiAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 24;" f _hiAttachedItems src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 18;" f
_hiRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 22;" f _hiRootSelectedItem src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 16;" f
_highlightItems src/Dodge/Data/CWorld.hs 36;" f _highlightItems src/Dodge/Data/CWorld.hs 36;" f
_hiveChildren src/Dodge/Data/Creature/Misc.hs 96;" f _hiveChildren src/Dodge/Data/Creature/Misc.hs 96;" f
_hiveGestation src/Dodge/Data/Creature/Misc.hs 97;" f _hiveGestation src/Dodge/Data/Creature/Misc.hs 97;" f
@@ -2775,7 +2775,7 @@ beeCrit src/Dodge/Creature/ChaseCrit.hs 92;" f
beeLifespanCheck src/Dodge/Creature/Update.hs 120;" f beeLifespanCheck src/Dodge/Creature/Update.hs 120;" f
beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 710;" f beep3QuickS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 710;" f
beltMag src/Dodge/Item/Ammo.hs 38;" f beltMag src/Dodge/Item/Ammo.hs 38;" f
bgateCalc src/Dodge/Inventory/SelectionList.hs 131;" f bgateCalc src/Dodge/Inventory/SelectionList.hs 130;" f
bgunSound src/Dodge/HeldUse.hs 540;" f bgunSound src/Dodge/HeldUse.hs 540;" f
bingate src/Dodge/Item/Scope.hs 115;" f bingate src/Dodge/Item/Scope.hs 115;" f
blColor src/Dodge/Block/Debris.hs 54;" f blColor src/Dodge/Block/Debris.hs 54;" f
@@ -2865,7 +2865,7 @@ cardList src/Dodge/Base/CardinalPoint.hs 7;" f
cardReverse src/Dodge/Base/CardinalPoint.hs 10;" f cardReverse src/Dodge/Base/CardinalPoint.hs 10;" f
cardVec src/Dodge/Base/CardinalPoint.hs 17;" f cardVec src/Dodge/Base/CardinalPoint.hs 17;" f
cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 43;" f cardinalBetweenAdj src/Dodge/Base/CardinalPoint.hs 43;" f
cardinalVectors src/Dodge/FloorItem.hs 25;" f cardinalVectors src/Dodge/FloorItem.hs 26;" f
carvePoly src/Dodge/LevelGen/StaticWalls.hs 77;" f carvePoly src/Dodge/LevelGen/StaticWalls.hs 77;" f
cdtPropagateFold src/Dodge/DoubleTree.hs 189;" f cdtPropagateFold src/Dodge/DoubleTree.hs 189;" f
ceilingTo src/Geometry/Zone.hs 15;" f ceilingTo src/Geometry/Zone.hs 15;" f
@@ -2876,10 +2876,10 @@ centerVaultRoom src/Dodge/Room/Procedural.hs 271;" f
centroid src/Geometry/Polygon.hs 192;" f centroid src/Geometry/Polygon.hs 192;" f
centroidNum src/Geometry/Polygon.hs 195;" f centroidNum src/Geometry/Polygon.hs 195;" f
chainPairs src/Geometry.hs 360;" f chainPairs src/Geometry.hs 360;" f
changeSwapOther src/Dodge/Inventory.hs 233;" f changeSwapOther src/Dodge/Inventory.hs 221;" f
changeSwapSel src/Dodge/Inventory.hs 202;" f changeSwapSel src/Dodge/Inventory.hs 190;" f
changeSwapSelSet src/Dodge/Inventory.hs 137;" f changeSwapSelSet src/Dodge/Inventory.hs 125;" f
changeSwapWith src/Dodge/Inventory.hs 264;" f changeSwapWith src/Dodge/Inventory.hs 252;" f
charToTuple src/Picture/Base.hs 312;" f charToTuple src/Picture/Base.hs 312;" f
charToTupleGrad src/Picture/Text.hs 18;" f charToTupleGrad src/Picture/Text.hs 18;" f
chartreuse src/Color.hs 51;" f chartreuse src/Color.hs 51;" f
@@ -2945,9 +2945,8 @@ clipZoom src/Dodge/Update/Camera.hs 235;" f
clipboardCr src/Dodge/Debug.hs 91;" f clipboardCr src/Dodge/Debug.hs 91;" f
clockCycle src/Dodge/Clock.hs 7;" f clockCycle src/Dodge/Clock.hs 7;" f
closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 241;" f closeButtonToSelectionItem src/Dodge/Inventory/SelectionList.hs 241;" f
closeItemDist src/Dodge/Inventory.hs 134;" f closeItemDist src/Dodge/Inventory.hs 122;" f
closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 221;" f closeItemToSelectionItem src/Dodge/Inventory/SelectionList.hs 220;" f
closeItemToTextPictures src/Dodge/Inventory/SelectionList.hs 264;" f
closeObjectInfo src/Dodge/Render/HUD.hs 221;" f closeObjectInfo src/Dodge/Render/HUD.hs 221;" f
closestCrToMouse src/Dodge/Debug.hs 308;" f closestCrToMouse src/Dodge/Debug.hs 308;" f
closestPointOnLine src/Geometry/Intersect.hs 286;" f closestPointOnLine src/Geometry/Intersect.hs 286;" f
@@ -2963,7 +2962,7 @@ cognizantVoc src/Dodge/Creature/Perception.hs 68;" f
colCrWall src/Dodge/WallCreatureCollisions.hs 27;" f colCrWall src/Dodge/WallCreatureCollisions.hs 27;" f
colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f colCrsWalls src/Dodge/WallCreatureCollisions.hs 19;" f
collectDamageTypes src/Dodge/Damage.hs 54;" f collectDamageTypes src/Dodge/Damage.hs 54;" f
collectInvItems src/Dodge/Inventory.hs 192;" f collectInvItems src/Dodge/Inventory.hs 180;" f
collide3 src/Dodge/Base/Collide.hs 142;" f collide3 src/Dodge/Base/Collide.hs 142;" f
collide3Chasm src/Dodge/Base/Collide.hs 126;" f collide3Chasm src/Dodge/Base/Collide.hs 126;" f
collide3Chasms src/Dodge/Base/Collide.hs 118;" f collide3Chasms src/Dodge/Base/Collide.hs 118;" f
@@ -3005,12 +3004,12 @@ compressionScale src/Dodge/Creature/State/WalkCycle.hs 69;" f
compressor src/Dodge/Item/Ammo.hs 74;" f compressor src/Dodge/Item/Ammo.hs 74;" f
computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f computerBeepingS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 716;" f
conEffects src/Dodge/Concurrent.hs 12;" f conEffects src/Dodge/Concurrent.hs 12;" f
concurrentIS src/Dodge/Inventory.hs 184;" f concurrentIS src/Dodge/Inventory.hs 172;" f
connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 802;" f connectItemS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 802;" f
constructEdges src/Polyhedra.hs 31;" f constructEdges src/Polyhedra.hs 31;" f
constructEdgesList src/Polyhedra.hs 40;" f constructEdgesList src/Polyhedra.hs 40;" f
contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f contToIDCont src/Dodge/LevelGen/PlacementHelper.hs 58;" f
continueTerminal src/Dodge/Update/Input/InGame.hs 425;" f continueTerminal src/Dodge/Update/Input/InGame.hs 426;" f
convexHull src/Geometry/Polygon.hs 150;" f convexHull src/Geometry/Polygon.hs 150;" f
convexHullSafe src/Geometry/Polygon.hs 172;" f convexHullSafe src/Geometry/Polygon.hs 172;" f
convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f convexPolysOverlap src/Geometry/ConvexPoly.hs 48;" f
@@ -3096,7 +3095,7 @@ crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 642;" f
createForceField src/Dodge/ForceField.hs 7;" f createForceField src/Dodge/ForceField.hs 7;" f
createGas src/Dodge/Gas.hs 10;" f createGas src/Dodge/Gas.hs 10;" f
createHeadLamp src/Dodge/Euse.hs 64;" f createHeadLamp src/Dodge/Euse.hs 64;" f
createItemYou src/Dodge/Inventory/Add.hs 73;" f createItemYou src/Dodge/Inventory/Add.hs 69;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createProjectile src/Dodge/HeldUse.hs 1305;" f createProjectile src/Dodge/HeldUse.hs 1305;" f
createProjectileR src/Dodge/HeldUse.hs 1254;" f createProjectileR src/Dodge/HeldUse.hs 1254;" f
@@ -3278,12 +3277,11 @@ deleteWallFromZones src/Dodge/Wall/Zone.hs 23;" f
deleteWallID src/Dodge/Wall/Delete.hs 13;" f deleteWallID src/Dodge/Wall/Delete.hs 13;" f
deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f deleteWallIDs src/Dodge/Wall/Delete.hs 27;" f
denormalEdges src/Polyhedra.hs 128;" f denormalEdges src/Polyhedra.hs 128;" f
destroyAllInvItems src/Dodge/Inventory.hs 62;" f destroyAllInvItems src/Dodge/Inventory.hs 61;" f
destroyBlock src/Dodge/Block.hs 17;" f destroyBlock src/Dodge/Block.hs 17;" f
destroyCreature src/Dodge/Data/Creature.hs 69;" f destroyCreature src/Dodge/Data/Creature.hs 69;" f
destroyDoor src/Dodge/Wall/Damage.hs 146;" f destroyDoor src/Dodge/Wall/Damage.hs 146;" f
destroyInvItem src/Dodge/Inventory.hs 49;" f destroyInvItem src/Dodge/Inventory.hs 48;" f
destroyItem src/Dodge/Inventory.hs 71;" f
destroyLSFlashAt src/Dodge/LightSource.hs 44;" f destroyLSFlashAt src/Dodge/LightSource.hs 44;" f
destroyMachine src/Dodge/Machine/Destroy.hs 14;" f destroyMachine src/Dodge/Machine/Destroy.hs 14;" f
destroyMachine' src/Dodge/Wall/Damage.hs 112;" f destroyMachine' src/Dodge/Wall/Damage.hs 112;" f
@@ -3311,7 +3309,7 @@ displayControls src/Dodge/Menu.hs 239;" f
displayFrameTicks src/Dodge/Render/Picture.hs 53;" f displayFrameTicks src/Dodge/Render/Picture.hs 53;" f
displayFreeSlots src/Dodge/DisplayInventory.hs 197;" f displayFreeSlots src/Dodge/DisplayInventory.hs 197;" f
displayIndents src/Dodge/DisplayInventory.hs 111;" f displayIndents src/Dodge/DisplayInventory.hs 111;" f
displayPulse src/Dodge/Inventory/SelectionList.hs 192;" f displayPulse src/Dodge/Inventory/SelectionList.hs 191;" f
displayTerminalLineString src/Dodge/Update.hs 588;" f displayTerminalLineString src/Dodge/Update.hs 588;" f
dist src/Geometry/Vector.hs 193;" f dist src/Geometry/Vector.hs 193;" f
dist3 src/Geometry/Vector3D.hs 102;" f dist3 src/Geometry/Vector3D.hs 102;" f
@@ -3352,8 +3350,8 @@ doDebugTestF7 src/Dodge/Update/Input/DebugTest.hs 51;" f
doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 59;" f doDebugTestF8 src/Dodge/Update/Input/DebugTest.hs 59;" f
doDoorLerp src/Dodge/Door/DoorLerp.hs 8;" f doDoorLerp src/Dodge/Door/DoorLerp.hs 8;" f
doDoorMount src/Dodge/Door.hs 32;" f doDoorMount src/Dodge/Door.hs 32;" f
doDrag src/Dodge/Update/Input/InGame.hs 139;" f doDrag src/Dodge/Update/Input/InGame.hs 117;" f
doDragSelect src/Dodge/Update/Input/InGame.hs 227;" f doDragSelect src/Dodge/Update/Input/InGame.hs 196;" f
doDrawing src/Dodge/Render.hs 33;" f doDrawing src/Dodge/Render.hs 33;" f
doDrawing' src/Dodge/Render.hs 44;" f doDrawing' src/Dodge/Render.hs 44;" f
doFloatFloat src/Dodge/FloatFunction.hs 5;" f doFloatFloat src/Dodge/FloatFunction.hs 5;" f
@@ -3372,7 +3370,7 @@ doPreload appDodge/Main.hs 133;" f
doQuickload src/Dodge/Save.hs 83;" f doQuickload src/Dodge/Save.hs 83;" f
doQuicksave src/Dodge/Save.hs 77;" f doQuicksave src/Dodge/Save.hs 77;" f
doRandImpulse src/Dodge/RandImpulse.hs 8;" f doRandImpulse src/Dodge/RandImpulse.hs 8;" f
doRegexInput src/Dodge/Update/Input/InGame.hs 478;" f doRegexInput src/Dodge/Update/Input/InGame.hs 479;" f
doRoomPlacements src/Dodge/Layout.hs 121;" f doRoomPlacements src/Dodge/Layout.hs 121;" f
doRoomShift src/Dodge/Room/Link.hs 34;" f doRoomShift src/Dodge/Room/Link.hs 34;" f
doScopeZoom src/Dodge/Update/Scroll.hs 90;" f doScopeZoom src/Dodge/Update/Scroll.hs 90;" f
@@ -3584,12 +3582,12 @@ encircleCloseP src/Dodge/Creature/Boid.hs 38;" f
encircleDistP src/Dodge/Creature/Boid.hs 24;" f encircleDistP src/Dodge/Creature/Boid.hs 24;" f
encircleP src/Dodge/Creature/Boid.hs 30;" f encircleP src/Dodge/Creature/Boid.hs 30;" f
endArcPos src/Dodge/Tesla.hs 87;" f endArcPos src/Dodge/Tesla.hs 87;" f
endCombineRegex src/Dodge/Update/Input/InGame.hs 306;" f endCombineRegex src/Dodge/Update/Input/InGame.hs 312;" f
endRegex src/Dodge/Update/Input/InGame.hs 300;" f endRegex src/Dodge/Update/Input/InGame.hs 306;" f
energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f energyReleaseS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 742;" f
enterCombineInv src/Dodge/DisplayInventory.hs 322;" f enterCombineInv src/Dodge/DisplayInventory.hs 322;" f
enumOption src/Dodge/Menu/OptionType.hs 17;" f enumOption src/Dodge/Menu/OptionType.hs 17;" f
epText src/Dodge/Inventory/SelectionList.hs 74;" f epText src/Dodge/Inventory/SelectionList.hs 73;" f
eqConstr src/SameConstr.hs 17;" f eqConstr src/SameConstr.hs 17;" f
eqPosText src/Dodge/Equipment/Text.hs 5;" f eqPosText src/Dodge/Equipment/Text.hs 5;" f
eqTypeToSites src/Dodge/Inventory/RBList.hs 78;" f eqTypeToSites src/Dodge/Inventory/RBList.hs 78;" f
@@ -3643,7 +3641,7 @@ findClosePoint src/Dodge/LevelGen/StaticWalls/Deprecated.hs 74;" f
findIndex src/IntMapHelp.hs 86;" f findIndex src/IntMapHelp.hs 86;" f
findReverseEdge src/Polyhedra.hs 47;" f findReverseEdge src/Polyhedra.hs 47;" f
findReverseEdgeList src/Polyhedra.hs 54;" f findReverseEdgeList src/Polyhedra.hs 54;" f
findWallFreeDropPoint src/Dodge/FloorItem.hs 28;" f findWallFreeDropPoint src/Dodge/FloorItem.hs 29;" f
findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f findWallsInPolygon src/Dodge/LevelGen/StaticWalls/Deprecated.hs 78;" f
findWithIx src/ListHelp.hs 124;" f findWithIx src/ListHelp.hs 124;" f
fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 916;" f fireFadeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 916;" f
@@ -3744,7 +3742,7 @@ getAutoSpringLinks src/Dodge/Item/Grammar.hs 90;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 175;" f getBulHitDams src/Dodge/Bullet.hs 175;" f
getBulletType src/Dodge/HeldUse.hs 945;" f getBulletType src/Dodge/HeldUse.hs 945;" f
getCloseObj src/Dodge/Update/Input/InGame.hs 588;" f getCloseObj src/Dodge/Update/Input/InGame.hs 603;" f
getCommand src/Dodge/Terminal.hs 61;" f getCommand src/Dodge/Terminal.hs 61;" f
getCommands src/Dodge/Terminal.hs 58;" f getCommands src/Dodge/Terminal.hs 58;" f
getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f getCrMoveSpeed src/Dodge/Creature/Statistics.hs 56;" f
@@ -3755,7 +3753,7 @@ getDistortions src/Dodge/Render.hs 448;" f
getEdgesCrossing src/Dodge/Path.hs 39;" f getEdgesCrossing src/Dodge/Path.hs 39;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1293;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1293;" f
getInventoryPath src/Dodge/Inventory/Path.hs 9;" f getInventoryPath src/Dodge/Inventory/Path.hs 9;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 160;" f getItemValue src/Dodge/Inventory/SelectionList.hs 159;" f
getLaserDamage src/Dodge/HeldUse.hs 728;" f getLaserDamage src/Dodge/HeldUse.hs 728;" f
getLaserPhaseV src/Dodge/HeldUse.hs 725;" f getLaserPhaseV src/Dodge/HeldUse.hs 725;" f
getLinksOfType src/Dodge/RoomLink.hs 40;" f getLinksOfType src/Dodge/RoomLink.hs 40;" f
@@ -3768,7 +3766,7 @@ getPromptTM src/Dodge/Terminal/Type.hs 3;" f
getRoomFromID src/Dodge/Room/Modify.hs 31;" f getRoomFromID src/Dodge/Room/Modify.hs 31;" f
getRoomsFromInts src/Dodge/Room/Tutorial.hs 611;" f getRoomsFromInts src/Dodge/Room/Tutorial.hs 611;" f
getRootItemBounds src/Dodge/Render/HUD.hs 98;" f getRootItemBounds src/Dodge/Render/HUD.hs 98;" f
getSelectedCloseObj src/Dodge/SelectedClose.hs 18;" f getSelectedCloseObj src/Dodge/SelectedClose.hs 20;" f
getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f getSmoothScrollValue src/Dodge/SmoothScroll.hs 21;" f
getSplitString src/Dodge/Debug/Terminal.hs 129;" f getSplitString src/Dodge/Debug/Terminal.hs 129;" f
getTiles src/Dodge/Layout.hs 224;" f getTiles src/Dodge/Layout.hs 224;" f
@@ -3885,9 +3883,9 @@ holdForm src/Dodge/Creature/Boid.hs 139;" f
holsterWeapon src/Dodge/Creature/Volition.hs 14;" f holsterWeapon src/Dodge/Creature/Volition.hs 14;" f
homingModule src/Dodge/Item/Scope.hs 50;" f homingModule src/Dodge/Item/Scope.hs 50;" f
horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f horPipe src/Dodge/Placement/Instance/Pipe.hs 9;" f
hotkeyToChar src/Dodge/Inventory/SelectionList.hs 201;" f hotkeyToChar src/Dodge/Inventory/SelectionList.hs 200;" f
hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f hotkeyToScancode src/Dodge/Creature/YourControl.hs 62;" f
hotkeyToString src/Dodge/Inventory/SelectionList.hs 198;" f hotkeyToString src/Dodge/Inventory/SelectionList.hs 197;" f
hoverCrit src/Dodge/Creature/ChaseCrit.hs 83;" f hoverCrit src/Dodge/Creature/ChaseCrit.hs 83;" f
hoverCritHoverSound src/Dodge/Creature/Update.hs 437;" f hoverCritHoverSound src/Dodge/Creature/Update.hs 437;" f
hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 228;" f hoverCritMv src/Dodge/Creature/ReaderUpdate.hs 228;" f
@@ -3956,7 +3954,7 @@ intersectSegsSeg src/Geometry/Intersect.hs 253;" f
intervalList src/Geometry.hs 312;" f intervalList src/Geometry.hs 312;" f
interweave src/Justify.hs 17;" f interweave src/Justify.hs 17;" f
introScan src/Dodge/Item/Scope.hs 62;" f introScan src/Dodge/Item/Scope.hs 62;" f
introScanValue src/Dodge/Inventory/SelectionList.hs 78;" f introScanValue src/Dodge/Inventory/SelectionList.hs 77;" f
intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f intsToPos src/Dodge/Room/Modify/Girder.hs 160;" f
invAdj src/Dodge/Item/Grammar.hs 246;" f invAdj src/Dodge/Item/Grammar.hs 246;" f
invCursorParams src/Dodge/ListDisplayParams.hs 35;" f invCursorParams src/Dodge/ListDisplayParams.hs 35;" f
@@ -3971,8 +3969,8 @@ invItemEffs src/Dodge/Creature/State.hs 92;" f
invItemLocUpdate src/Dodge/Creature/State.hs 100;" f invItemLocUpdate src/Dodge/Creature/State.hs 100;" f
invRootMap src/Dodge/Item/Grammar.hs 237;" f invRootMap src/Dodge/Item/Grammar.hs 237;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 33;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 33;" f
invSetSelection src/Dodge/Inventory.hs 269;" f invSetSelection src/Dodge/Inventory.hs 257;" f
invSetSelectionPos src/Dodge/Inventory.hs 278;" f invSetSelectionPos src/Dodge/Inventory.hs 266;" f
invShiftPointBy src/Dodge/ShiftPoint.hs 17;" f invShiftPointBy src/Dodge/ShiftPoint.hs 17;" f
invSize src/Dodge/Inventory/CheckSlots.hs 33;" f invSize src/Dodge/Inventory/CheckSlots.hs 33;" f
inventoryX src/Dodge/Creature.hs 103;" f inventoryX src/Dodge/Creature.hs 103;" f
@@ -4033,7 +4031,7 @@ itemCombinations src/Dodge/Combine/Combinations.hs 56;" f
itemDetectorEffect src/Dodge/HeldUse.hs 812;" f itemDetectorEffect src/Dodge/HeldUse.hs 812;" f
itemDisplay src/Dodge/Inventory/SelectionList.hs 54;" f itemDisplay src/Dodge/Inventory/SelectionList.hs 54;" f
itemEquipPict src/Dodge/Item/Draw.hs 18;" f itemEquipPict src/Dodge/Item/Draw.hs 18;" f
itemExternalValue src/Dodge/Inventory/SelectionList.hs 83;" f itemExternalValue src/Dodge/Inventory/SelectionList.hs 82;" f
itemFromAmmoMag src/Dodge/Item.hs 43;" f itemFromAmmoMag src/Dodge/Item.hs 43;" f
itemFromAttachType src/Dodge/Item.hs 52;" f itemFromAttachType src/Dodge/Item.hs 52;" f
itemFromBase src/Dodge/Item.hs 18;" f itemFromBase src/Dodge/Item.hs 18;" f
@@ -4049,8 +4047,8 @@ itemRotTreeSPic src/Dodge/Item/Draw/SPicTree.hs 16;" f
itemSPic src/Dodge/Item/Draw/SPic.hs 17;" f itemSPic src/Dodge/Item/Draw/SPic.hs 17;" f
itemScan src/Dodge/Item/Scope.hs 68;" f itemScan src/Dodge/Item/Scope.hs 68;" f
itemScroll src/Dodge/Update/Scroll.hs 56;" f itemScroll src/Dodge/Update/Scroll.hs 56;" f
itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 137;" f itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 136;" f
itemScrollValue src/Dodge/Inventory/SelectionList.hs 164;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 163;" f
itemShapeMax src/Dodge/Item/Orientation.hs 68;" f itemShapeMax src/Dodge/Item/Orientation.hs 68;" f
itemShapeMaxX src/Dodge/Item/Orientation.hs 59;" f itemShapeMaxX src/Dodge/Item/Orientation.hs 59;" f
itemShapeMaxY src/Dodge/Item/Orientation.hs 62;" f itemShapeMaxY src/Dodge/Item/Orientation.hs 62;" f
@@ -4282,7 +4280,7 @@ maybeBlockedPassage src/Dodge/Room/RezBox.hs 80;" f
maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f maybeClearLoadingScreen src/Dodge/StartNewGame.hs 58;" f
maybeDestroyBlock src/Dodge/Wall/Damage.hs 136;" f maybeDestroyBlock src/Dodge/Wall/Damage.hs 136;" f
maybeDestroyDoor src/Dodge/Wall/Damage.hs 141;" f maybeDestroyDoor src/Dodge/Wall/Damage.hs 141;" f
maybeExitCombine src/Dodge/Update/Input/InGame.hs 624;" f maybeExitCombine src/Dodge/Update/Input/InGame.hs 631;" f
maybeOpenConsole src/Dodge/Update.hs 136;" f maybeOpenConsole src/Dodge/Update.hs 136;" f
maybeReadFile src/Dodge/LoadSeed.hs 10;" f maybeReadFile src/Dodge/LoadSeed.hs 10;" f
maybeTakeOne src/RandomHelp.hs 135;" f maybeTakeOne src/RandomHelp.hs 135;" f
@@ -4401,8 +4399,8 @@ multGunCrit src/Dodge/Creature.hs 68;" f
multiArrow src/Picture/Composite.hs 11;" f multiArrow src/Picture/Composite.hs 11;" f
multiLookupTrie src/SimpleTrie.hs 57;" f multiLookupTrie src/SimpleTrie.hs 57;" f
multiLookupTrieI src/SimpleTrie.hs 66;" f multiLookupTrieI src/SimpleTrie.hs 66;" f
multiSelScroll src/Dodge/Inventory.hs 209;" f multiSelScroll src/Dodge/Inventory.hs 197;" f
multiSelScroll' src/Dodge/Inventory.hs 216;" f multiSelScroll' src/Dodge/Inventory.hs 204;" f
muout src/Dodge/RoomLink.hs 144;" f muout src/Dodge/RoomLink.hs 144;" f
muzFlareAt src/Dodge/HeldUse.hs 702;" f muzFlareAt src/Dodge/HeldUse.hs 702;" f
muzzlePos src/Dodge/HeldUse.hs 787;" f muzzlePos src/Dodge/HeldUse.hs 787;" f
@@ -4524,7 +4522,7 @@ passthroughLockKeyLists src/Dodge/Room/Tutorial.hs 693;" f
pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f pathConnected src/Dodge/Room/CheckConsistency.hs 13;" f
pathEdgeObstructed src/Dodge/Path.hs 87;" f pathEdgeObstructed src/Dodge/Path.hs 87;" f
pauseAndFloatCam src/Dodge/Camera.hs 10;" f pauseAndFloatCam src/Dodge/Camera.hs 10;" f
pauseGame src/Dodge/Update/Input/InGame.hs 580;" f pauseGame src/Dodge/Update/Input/InGame.hs 595;" f
pauseMenu src/Dodge/Menu.hs 57;" f pauseMenu src/Dodge/Menu.hs 57;" f
pauseMenuOptions src/Dodge/Menu.hs 64;" f pauseMenuOptions src/Dodge/Menu.hs 64;" f
pauseSound src/Dodge/SoundLogic.hs 42;" f pauseSound src/Dodge/SoundLogic.hs 42;" f
@@ -4542,8 +4540,8 @@ performAimAt src/Dodge/Creature/Action.hs 111;" f
performPathTo src/Dodge/Creature/Action.hs 132;" f performPathTo src/Dodge/Creature/Action.hs 132;" f
performTurnToA src/Dodge/Creature/Action.hs 152;" f performTurnToA src/Dodge/Creature/Action.hs 152;" f
perspectiveMatrixb src/MatrixHelper.hs 11;" f perspectiveMatrixb src/MatrixHelper.hs 11;" f
pickUpItem src/Dodge/Inventory/Add.hs 81;" f pickUpItem src/Dodge/Inventory/Add.hs 77;" f
pickUpItemAt src/Dodge/Inventory/Add.hs 86;" f pickUpItemAt src/Dodge/Inventory/Add.hs 82;" f
pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 830;" f pickUpS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 830;" f
pincerP src/Dodge/Creature/Boid.hs 63;" f pincerP src/Dodge/Creature/Boid.hs 63;" f
pincerP' src/Dodge/Creature/Boid.hs 96;" f pincerP' src/Dodge/Creature/Boid.hs 96;" f
@@ -4747,7 +4745,7 @@ qz src/Quaternion.hs 81;" f
rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f rLauncher src/Dodge/Item/Held/Launcher.hs 14;" f
rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f rLauncherX src/Dodge/Item/Held/Launcher.hs 30;" f
rToOnward src/Dodge/Cleat.hs 21;" f rToOnward src/Dodge/Cleat.hs 21;" f
radToCompass src/Dodge/Inventory/SelectionList.hs 111;" f radToCompass src/Dodge/Inventory/SelectionList.hs 110;" f
radToDeg src/Geometry/Vector.hs 131;" f radToDeg src/Geometry/Vector.hs 131;" f
radiusSpring src/Dodge/Update.hs 991;" f radiusSpring src/Dodge/Update.hs 991;" f
randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f randBlockBreakWeapon src/Dodge/Item/Random.hs 7;" f
@@ -4880,7 +4878,7 @@ rightWristPQ src/Dodge/Creature/HandPos.hs 115;" f
rlPosDir src/Dodge/RoomLink.hs 112;" f rlPosDir src/Dodge/RoomLink.hs 112;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 402;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 402;" f
rmInLinks src/Dodge/RoomLink.hs 153;" f rmInLinks src/Dodge/RoomLink.hs 153;" f
rmInvItem src/Dodge/Inventory.hs 85;" f rmInvItem src/Dodge/Inventory.hs 73;" f
rmLinksOfType src/Dodge/RoomLink.hs 150;" f rmLinksOfType src/Dodge/RoomLink.hs 150;" f
rmOutLinks src/Dodge/RoomLink.hs 153;" f rmOutLinks src/Dodge/RoomLink.hs 153;" f
roomC src/Dodge/Room/Room.hs 54;" f roomC src/Dodge/Room/Room.hs 54;" f
@@ -4972,8 +4970,8 @@ screenPolygon src/Dodge/Base/Window.hs 18;" f
screenPolygonBord src/Dodge/Base/Window.hs 28;" f screenPolygonBord src/Dodge/Base/Window.hs 28;" f
screenPosAbs src/Dodge/ScreenPos.hs 16;" f screenPosAbs src/Dodge/ScreenPos.hs 16;" f
screenToWorldPos src/Dodge/Base/Coordinate.hs 45;" f screenToWorldPos src/Dodge/Base/Coordinate.hs 45;" f
scrollAugInvSel src/Dodge/Inventory.hs 281;" f scrollAugInvSel src/Dodge/Inventory.hs 269;" f
scrollAugNextInSection src/Dodge/Inventory.hs 296;" f scrollAugNextInSection src/Dodge/Inventory.hs 284;" f
scrollRBOption src/Dodge/Update/Scroll.hs 140;" f scrollRBOption src/Dodge/Update/Scroll.hs 140;" f
scrollSelectionSections src/Dodge/SelectionSections.hs 30;" f scrollSelectionSections src/Dodge/SelectionSections.hs 30;" f
scrollTimeBack src/Dodge/Update.hs 246;" f scrollTimeBack src/Dodge/Update.hs 246;" f
@@ -5002,7 +5000,7 @@ selSecSelCol src/Dodge/Render/HUD.hs 507;" f
selSecSelSize src/Dodge/SelectionSections.hs 178;" f selSecSelSize src/Dodge/SelectionSections.hs 178;" f
selSecYint src/Dodge/SelectionSections.hs 187;" f selSecYint src/Dodge/SelectionSections.hs 187;" f
selectedItemScroll src/Dodge/Update/Scroll.hs 50;" f selectedItemScroll src/Dodge/Update/Scroll.hs 50;" f
selectionSet src/Dodge/Update/Input/InGame.hs 169;" f selectionSet src/Dodge/Update/Input/InGame.hs 147;" f
semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 846;" f semitoneLoop1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 846;" f
sensAboveDoor src/Dodge/Room/SensorDoor.hs 68;" f sensAboveDoor src/Dodge/Room/SensorDoor.hs 68;" f
sensInsideDoor src/Dodge/Room/SensorDoor.hs 77;" f sensInsideDoor src/Dodge/Room/SensorDoor.hs 77;" f
@@ -5035,9 +5033,9 @@ setOldPos src/Dodge/Update.hs 604;" f
setOutLinks src/Dodge/RoomLink.hs 49;" f setOutLinks src/Dodge/RoomLink.hs 49;" f
setOutLinksByType src/Dodge/RoomLink.hs 76;" f setOutLinksByType src/Dodge/RoomLink.hs 76;" f
setOutLinksPD src/Dodge/RoomLink.hs 96;" f setOutLinksPD src/Dodge/RoomLink.hs 96;" f
setPixelOffsetBounded src/Dodge/Update/Input/InGame.hs 124;" f setPixelOffsetBounded src/Dodge/Update/Input/InGame.hs 104;" f
setRBCreatureTargeting src/Dodge/Creature/State.hs 326;" f setRBCreatureTargeting src/Dodge/Creature/State.hs 326;" f
setSelWhileDragging src/Dodge/Update/Input/InGame.hs 368;" f setSelWhileDragging src/Dodge/Update/Input/InGame.hs 369;" f
setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f setSelectionListRestriction src/Dodge/Update/Input/ScreenLayer.hs 93;" f
setShaderSource src/Shader/Compile.hs 121;" f setShaderSource src/Shader/Compile.hs 121;" f
setShadowLimits src/Dodge/Shadows.hs 11;" f setShadowLimits src/Dodge/Shadows.hs 11;" f
@@ -5080,9 +5078,9 @@ shiftByV2 src/Dodge/PlacementSpot.hs 257;" f
shiftChildren src/Dodge/Tree/Compose.hs 45;" f shiftChildren src/Dodge/Tree/Compose.hs 45;" f
shiftDraw src/Dodge/Render/ShapePicture.hs 111;" f shiftDraw src/Dodge/Render/ShapePicture.hs 111;" f
shiftInBy src/Dodge/PlacementSpot.hs 254;" f shiftInBy src/Dodge/PlacementSpot.hs 254;" f
shiftInvItems src/Dodge/Update/Input/InGame.hs 334;" f shiftInvItems src/Dodge/Update/Input/InGame.hs 335;" f
shiftInvItemsDown src/Dodge/Inventory.hs 168;" f shiftInvItemsDown src/Dodge/Inventory.hs 156;" f
shiftInvItemsUp src/Dodge/Inventory.hs 178;" f shiftInvItemsUp src/Dodge/Inventory.hs 166;" f
shiftLinkBy src/Dodge/Room/Link.hs 89;" f shiftLinkBy src/Dodge/Room/Link.hs 89;" f
shiftPSBy src/Dodge/Placement/Shift.hs 12;" f shiftPSBy src/Dodge/Placement/Shift.hs 12;" f
shiftPathBy src/Dodge/Room/Link.hs 94;" f shiftPathBy src/Dodge/Room/Link.hs 94;" f
@@ -5094,8 +5092,8 @@ shiftRelativeToPS src/Dodge/Placement/Shift.hs 18;" f
shiftRoomBy src/Dodge/Room/Link.hs 38;" f shiftRoomBy src/Dodge/Room/Link.hs 38;" f
shiftRoomShiftBy src/Dodge/Room/Link.hs 83;" f shiftRoomShiftBy src/Dodge/Room/Link.hs 83;" f
shiftRoomShiftToLink src/Dodge/Room/Link.hs 74;" f shiftRoomShiftToLink src/Dodge/Room/Link.hs 74;" f
shiftSetDown src/Dodge/Inventory.hs 161;" f shiftSetDown src/Dodge/Inventory.hs 149;" f
shiftSetUp src/Dodge/Inventory.hs 155;" f shiftSetUp src/Dodge/Inventory.hs 143;" f
shiftTile src/Dodge/Room/Link.hs 49;" f shiftTile src/Dodge/Room/Link.hs 49;" f
shineTargetLaser src/Dodge/Creature/State.hs 234;" f shineTargetLaser src/Dodge/Creature/State.hs 234;" f
shineTorch src/Dodge/Creature/State.hs 271;" f shineTorch src/Dodge/Creature/State.hs 271;" f
@@ -5214,7 +5212,7 @@ 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 89;" f southPillarsRoom src/Dodge/Room/LongDoor.hs 89;" f
spPos src/ShapePicture/Data.hs 11;" f spPos src/ShapePicture/Data.hs 11;" f
spaceAction src/Dodge/Update/Input/InGame.hs 583;" f spaceAction src/Dodge/Update/Input/InGame.hs 598;" f
spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 162;" f spanColLightBlackI src/Dodge/Placement/Instance/LightSource.hs 162;" f
spanColLightI src/Dodge/Placement/Instance/LightSource.hs 155;" f spanColLightI src/Dodge/Placement/Instance/LightSource.hs 155;" f
spanLS src/Dodge/Placement/Instance/LightSource.hs 147;" f spanLS src/Dodge/Placement/Instance/LightSource.hs 147;" f
@@ -5278,7 +5276,7 @@ stackedInventory src/Dodge/Creature.hs 318;" f
startCr src/Dodge/Creature.hs 83;" f startCr src/Dodge/Creature.hs 83;" f
startCrafts src/Dodge/Room/Start.hs 94;" f startCrafts src/Dodge/Room/Start.hs 94;" f
startDeathTimer src/Dodge/Creature/Update.hs 495;" f startDeathTimer src/Dodge/Creature/Update.hs 495;" f
startDrag src/Dodge/Update/Input/InGame.hs 315;" f startDrag src/Dodge/Update/Input/InGame.hs 321;" f
startInvList src/Dodge/Creature.hs 97;" f startInvList src/Dodge/Creature.hs 97;" f
startInventory src/Dodge/Creature.hs 100;" f startInventory src/Dodge/Creature.hs 100;" f
startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f startNewGameInSlot src/Dodge/StartNewGame.hs 16;" f
@@ -5318,11 +5316,11 @@ swapAnyExtraSelection src/Dodge/Inventory/Swap.hs 57;" f
swapInOutLinks src/Dodge/RoomLink.hs 99;" f swapInOutLinks src/Dodge/RoomLink.hs 99;" f
swapIndices src/ListHelp.hs 50;" f swapIndices src/ListHelp.hs 50;" f
swapInvItems src/Dodge/Inventory/Swap.hs 23;" f swapInvItems src/Dodge/Inventory/Swap.hs 23;" f
swapItemWith src/Dodge/Inventory.hs 253;" f swapItemWith src/Dodge/Inventory.hs 241;" f
swapSelSet src/Dodge/Inventory.hs 142;" f swapSelSet src/Dodge/Inventory.hs 130;" f
swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f swarmCrit src/Dodge/Creature/SwarmCrit.hs 10;" f
swarmUsingCenter src/Dodge/Creature/Boid.hs 174;" f swarmUsingCenter src/Dodge/Creature/Boid.hs 174;" f
symmetricDifference src/Dodge/Update/Input/InGame.hs 239;" f symmetricDifference src/Dodge/Update/Input/InGame.hs 213;" f
t src/ShortShow.hs 48;" f t src/ShortShow.hs 48;" f
tEast src/Dodge/Room/Corridor.hs 96;" f tEast src/Dodge/Room/Corridor.hs 96;" f
tToBTree src/Dodge/Tree/Compose.hs 93;" f tToBTree src/Dodge/Tree/Compose.hs 93;" f
@@ -5426,7 +5424,7 @@ tmDistributeAmmo src/Dodge/WorldEffect.hs 118;" f
tmDistributeLines src/Dodge/Room/Room.hs 474;" f tmDistributeLines src/Dodge/Room/Room.hs 474;" f
tmMachine src/Dodge/Placement/Instance/Terminal.hs 55;" f tmMachine src/Dodge/Placement/Instance/Terminal.hs 55;" f
tmScreenMousePos src/Dodge/Update.hs 470;" f tmScreenMousePos src/Dodge/Update.hs 470;" f
toBinary src/Dodge/Inventory/SelectionList.hs 154;" f toBinary src/Dodge/Inventory/SelectionList.hs 153;" f
toBothLnk src/Dodge/RoomLink.hs 136;" f toBothLnk src/Dodge/RoomLink.hs 136;" f
toClosestMultiple src/HelpNum.hs 3;" f toClosestMultiple src/HelpNum.hs 3;" f
toColor8 src/Color.hs 158;" f toColor8 src/Color.hs 158;" f
@@ -5508,17 +5506,17 @@ truncate src/Polyhedra/Geodesic.hs 39;" f
trunkDepth src/TreeHelp.hs 164;" f trunkDepth src/TreeHelp.hs 164;" f
tryAttachItems src/Dodge/Item/Grammar.hs 35;" f tryAttachItems src/Dodge/Item/Grammar.hs 35;" f
tryClickUse src/Dodge/Creature/YourControl.hs 205;" f tryClickUse src/Dodge/Creature/YourControl.hs 205;" f
tryCombine src/Dodge/Update/Input/InGame.hs 600;" f tryCombine src/Dodge/Update/Input/InGame.hs 615;" f
tryDrawToCapacitor src/Dodge/Creature/State.hs 184;" f tryDrawToCapacitor src/Dodge/Creature/State.hs 184;" f
tryDropSelected src/Dodge/Update/Input/InGame.hs 154;" f tryDropSelected src/Dodge/Update/Input/InGame.hs 132;" f
tryEvadeSideways src/Dodge/Creature/Action.hs 104;" f tryEvadeSideways src/Dodge/Creature/Action.hs 104;" f
tryGetChannel src/Sound.hs 99;" f tryGetChannel src/Sound.hs 99;" f
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 18;" f tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 18;" f
tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 42;" f tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 42;" f
tryPickupSelected src/Dodge/Update/Input/InGame.hs 181;" f tryPickupSelected src/Dodge/Update/Input/InGame.hs 154;" f
tryPlay src/Sound.hs 85;" f tryPlay src/Sound.hs 85;" f
tryPutItemInInv src/Dodge/Inventory/Add.hs 25;" f tryPutItemInInv src/Dodge/Inventory/Add.hs 25;" f
tryPutItemInInvAt src/Dodge/Inventory/Add.hs 65;" f tryPutItemInInvAt src/Dodge/Inventory/Add.hs 61;" f
trySeedFromClipboard src/Dodge/Menu.hs 94;" f trySeedFromClipboard src/Dodge/Menu.hs 94;" f
trySpin src/Dodge/Projectile/Update.hs 120;" f trySpin src/Dodge/Projectile/Update.hs 120;" f
trySynthBullet src/Dodge/Creature/State.hs 200;" f trySynthBullet src/Dodge/Creature/State.hs 200;" f
@@ -5546,7 +5544,7 @@ twoStep1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 558;" f
twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" f twoStepS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 612;" f
twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f twoStepSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 698;" f
ubyteSize src/Shader/Parameters.hs 13;" f ubyteSize src/Shader/Parameters.hs 13;" f
ugateCalc src/Dodge/Inventory/SelectionList.hs 125;" f ugateCalc src/Dodge/Inventory/SelectionList.hs 124;" f
uncurryV src/Geometry/Data.hs 66;" f uncurryV src/Geometry/Data.hs 66;" f
underBarrelSlot src/Dodge/Item/Scope.hs 176;" f underBarrelSlot src/Dodge/Item/Scope.hs 176;" f
unfoldrMID src/MonadHelp.hs 33;" f unfoldrMID src/MonadHelp.hs 33;" f
@@ -5568,7 +5566,7 @@ updateAggroBee src/Dodge/Creature/Update.hs 129;" f
updateAimPos src/Dodge/Update.hs 401;" f updateAimPos src/Dodge/Update.hs 401;" f
updateAllNodes src/TreeHelp.hs 88;" f updateAllNodes src/TreeHelp.hs 88;" f
updateArc src/Dodge/Tesla.hs 44;" f updateArc src/Dodge/Tesla.hs 44;" f
updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 509;" f updateBackspaceRegex src/Dodge/Update/Input/InGame.hs 510;" f
updateBarrel src/Dodge/Barreloid.hs 43;" f updateBarrel src/Dodge/Barreloid.hs 43;" f
updateBarreloid src/Dodge/Barreloid.hs 16;" f updateBarreloid src/Dodge/Barreloid.hs 16;" f
updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f updateBaseWheelEvent src/Dodge/Update/Scroll.hs 30;" f
@@ -5585,7 +5583,7 @@ updateCamera src/Dodge/Update/Camera.hs 34;" f
updateCarriage src/Dodge/Creature/State/WalkCycle.hs 22;" f updateCarriage src/Dodge/Creature/State/WalkCycle.hs 22;" f
updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 27;" f updateCarriage' src/Dodge/Creature/State/WalkCycle.hs 27;" f
updateChaseCrit src/Dodge/Creature/Update.hs 371;" f updateChaseCrit src/Dodge/Creature/Update.hs 371;" f
updateCloseObjects src/Dodge/Inventory.hs 111;" f updateCloseObjects src/Dodge/Inventory.hs 99;" f
updateCloud src/Dodge/Update.hs 922;" f updateCloud src/Dodge/Update.hs 922;" f
updateClouds src/Dodge/Update.hs 786;" f updateClouds src/Dodge/Update.hs 786;" f
updateCombinePositioning src/Dodge/DisplayInventory.hs 42;" f updateCombinePositioning src/Dodge/DisplayInventory.hs 42;" f
@@ -5612,14 +5610,14 @@ updateEdgesWall src/Dodge/Update/WallDamage.hs 23;" f
updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f updateEdgesWall' src/Dodge/Update/WallDamage.hs 36;" f
updateEnergyBall src/Dodge/EnergyBall.hs 32;" f updateEnergyBall src/Dodge/EnergyBall.hs 32;" f
updateEnergyBalls src/Dodge/Update.hs 777;" f updateEnergyBalls src/Dodge/Update.hs 777;" f
updateEnterRegex src/Dodge/Update/Input/InGame.hs 544;" f updateEnterRegex src/Dodge/Update/Input/InGame.hs 555;" f
updateExpBarrel src/Dodge/Barreloid.hs 21;" f updateExpBarrel src/Dodge/Barreloid.hs 21;" f
updateFlame src/Dodge/Flame.hs 19;" f updateFlame src/Dodge/Flame.hs 19;" f
updateFlames src/Dodge/Update.hs 774;" f updateFlames src/Dodge/Update.hs 774;" f
updateFloatingCamera src/Dodge/Update/Camera.hs 39;" f updateFloatingCamera src/Dodge/Update/Camera.hs 39;" f
updateFoodSearchChaseCrit src/Dodge/Creature/Update.hs 381;" f updateFoodSearchChaseCrit src/Dodge/Creature/Update.hs 381;" f
updateFunctionKey src/Dodge/Update/Input/InGame.hs 386;" f updateFunctionKey src/Dodge/Update/Input/InGame.hs 387;" f
updateFunctionKeys src/Dodge/Update/Input/InGame.hs 382;" f updateFunctionKeys src/Dodge/Update/Input/InGame.hs 383;" f
updateGas src/Dodge/Update.hs 944;" f updateGas src/Dodge/Update.hs 944;" f
updateGusts src/Dodge/Update.hs 906;" f updateGusts src/Dodge/Update.hs 906;" f
updateHiveCrit src/Dodge/Creature/Update.hs 82;" f updateHiveCrit src/Dodge/Creature/Update.hs 82;" f
@@ -5627,30 +5625,30 @@ updateHoverCrit src/Dodge/Humanoid.hs 25;" f
updateIMl src/Dodge/Update.hs 641;" f updateIMl src/Dodge/Update.hs 641;" f
updateIMl' src/Dodge/Update.hs 644;" f updateIMl' src/Dodge/Update.hs 644;" f
updateInGameCamera src/Dodge/Update/Camera.hs 87;" f updateInGameCamera src/Dodge/Update/Camera.hs 87;" f
updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 459;" f updateInitialPressInGame src/Dodge/Update/Input/InGame.hs 460;" f
updateInt2Map src/Dodge/Zoning/Base.hs 94;" f updateInt2Map src/Dodge/Zoning/Base.hs 94;" f
updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f updateInventoryPositioning src/Dodge/DisplayInventory.hs 88;" f
updateItemTargeting src/Dodge/Creature/State.hs 293;" f updateItemTargeting src/Dodge/Creature/State.hs 293;" f
updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 419;" f updateKeyContinueTerminal src/Dodge/Update/Input/InGame.hs 420;" f
updateKeyInGame src/Dodge/Update/Input/InGame.hs 453;" f updateKeyInGame src/Dodge/Update/Input/InGame.hs 454;" f
updateKeysInGame src/Dodge/Update/Input/InGame.hs 81;" f updateKeysInGame src/Dodge/Update/Input/InGame.hs 82;" f
updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 405;" f updateKeysInTerminal src/Dodge/Update/Input/InGame.hs 406;" f
updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 428;" f updateKeysTextInputTerminal src/Dodge/Update/Input/InGame.hs 429;" f
updateLampoid src/Dodge/Lampoid.hs 13;" f updateLampoid src/Dodge/Lampoid.hs 13;" f
updateLaser src/Dodge/Laser/Update.hs 12;" f updateLaser src/Dodge/Laser/Update.hs 12;" f
updateLasers src/Dodge/Update.hs 519;" f updateLasers src/Dodge/Update.hs 519;" f
updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f updateLeftParentSF src/Dodge/Item/Grammar.hs 179;" f
updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f updateLinearShockwave src/Dodge/LinearShockwave/Update.hs 8;" f
updateLivingCreature src/Dodge/Creature/Update.hs 61;" f updateLivingCreature src/Dodge/Creature/Update.hs 61;" f
updateLongPressInGame src/Dodge/Update/Input/InGame.hs 472;" f updateLongPressInGame src/Dodge/Update/Input/InGame.hs 473;" f
updateMachine src/Dodge/Machine/Update.hs 24;" f updateMachine src/Dodge/Machine/Update.hs 24;" f
updateMagnets src/Dodge/Update.hs 409;" f updateMagnets src/Dodge/Update.hs 409;" f
updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 242;" f updateMouseClickInGame src/Dodge/Update/Input/InGame.hs 216;" f
updateMouseContext src/Dodge/Update.hs 422;" f updateMouseContext src/Dodge/Update.hs 422;" f
updateMouseContextGame src/Dodge/Update.hs 427;" f updateMouseContextGame src/Dodge/Update.hs 427;" f
updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 94;" f updateMouseHeldInGame src/Dodge/Update/Input/InGame.hs 95;" f
updateMouseInGame src/Dodge/Update/Input/InGame.hs 84;" f updateMouseInGame src/Dodge/Update/Input/InGame.hs 85;" f
updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 206;" f updateMouseReleaseInGame src/Dodge/Update/Input/InGame.hs 178;" f
updateObjCatMaybes src/Dodge/Update.hs 659;" f updateObjCatMaybes src/Dodge/Update.hs 659;" f
updateObjMapMaybe src/Dodge/Update.hs 652;" f updateObjMapMaybe src/Dodge/Update.hs 652;" f
updatePastWorlds src/Dodge/Update.hs 508;" f updatePastWorlds src/Dodge/Update.hs 508;" f