Use function on location to determine laser orientation

This commit is contained in:
2025-06-27 10:42:23 +01:00
parent dd5a747559
commit be6ea59d1e
5 changed files with 478 additions and 324 deletions
+51 -6
View File
@@ -3,6 +3,8 @@ module Dodge.Creature.State (
doDamage, doDamage,
) where ) where
import Data.Bifunctor
import Dodge.Data.DoubleTree
import Dodge.Item.Orientation import Dodge.Item.Orientation
import Dodge.Item.UseDelay import Dodge.Item.UseDelay
import Control.Applicative import Control.Applicative
@@ -20,7 +22,7 @@ import Dodge.Creature.Test
import Dodge.Damage import Dodge.Damage
import Dodge.Data.ComposedItem import Dodge.Data.ComposedItem
import Dodge.Data.Damage.Type import Dodge.Data.Damage.Type
import Dodge.Data.DoubleTree --import Dodge.Data.DoubleTree
import Dodge.Data.World import Dodge.Data.World
import Dodge.DoubleTree import Dodge.DoubleTree
import Dodge.Euse import Dodge.Euse
@@ -308,7 +310,8 @@ updateItemWithOrientation ::
updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w = updateItemWithOrientation cr m loc@(LocLDT _ itmtree) w =
case (ci ^. _1 . itType, ci ^. _2) of case (ci ^. _1 . itType, ci ^. _2) of
(HELD TORCH, _) -> shineTorch cr itmtree m w (HELD TORCH, _) -> shineTorch cr itmtree m w
(HELD LASER, WeaponTargetingSF) -> shineTargetLaser cr itmtree m w --(HELD LASER, WeaponTargetingSF) -> shineTargetLaser cr itmtree m w
(HELD LASER, WeaponTargetingSF) -> shineTargetLaser' cr loc w
(TARGETING tt, _) -> updateItemTargeting tt cr itm w (TARGETING tt, _) -> updateItemTargeting tt cr itm w
(ARHUD, _) -> drawARHUD loc w (ARHUD, _) -> drawARHUD loc w
_ -> w _ -> w
@@ -324,13 +327,12 @@ drawARHUD (LocLDT con _) w = fromMaybe w $ do
<>~ fold <>~ fold
(drawTargetingAR itm w <|> drawMapperAR itm w) (drawTargetingAR itm w <|> drawMapperAR itm w)
shineTargetLaser :: shineTargetLaser' ::
Creature -> Creature ->
LDTree ItemLink CItem -> LocationLDT ItemLink CItem ->
(Point3, Q.Quaternion Float) ->
World -> World ->
World World
shineTargetLaser cr itmtree (p, q) w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do shineTargetLaser' cr loc w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do
guard (crIsAiming cr) guard (crIsAiming cr)
(_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft) (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft)
i <- mag ^. ldtValue . _1 . itConsumables i <- mag ^. ldtValue . _1 . itConsumables
@@ -354,6 +356,8 @@ shineTargetLaser cr itmtree (p, q) w = fromMaybe (w & pointittarg . itTgPos .~ N
, _lpType = TargetingLaser (_itID itm) , _lpType = TargetingLaser (_itID itm)
} }
where where
itmtree = loc ^. locLDT
(p,q) = orientLocation $ fmap fst loc
x = 1 x = 1
isammolink AmmoInLink{} = True isammolink AmmoInLink{} = True
isammolink _ = False isammolink _ = False
@@ -365,6 +369,47 @@ shineTargetLaser cr itmtree (p, q) w = fromMaybe (w & pointittarg . itTgPos .~ N
invid = _ilInvID $ _itLocation itm invid = _ilInvID $ _itLocation itm
col = blue -- mixColors reloadFrac (1-reloadFrac) blue red col = blue -- mixColors reloadFrac (1-reloadFrac) blue red
--shineTargetLaser ::
-- Creature ->
-- LDTree ItemLink CItem ->
-- (Point3, Q.Quaternion Float) ->
-- World ->
-- World
--shineTargetLaser cr itmtree (p, q) w = fromMaybe (w & pointittarg . itTgPos .~ Nothing) $ do
-- guard (crIsAiming cr)
-- (_, mag) <- find (isammolink . fst) (itmtree ^. ldtLeft)
-- i <- mag ^. ldtValue . _1 . itConsumables
-- guard $ i >= x
-- maginvid <- mag ^? ldtValue . _1 . itLocation . ilInvID
-- return $
-- w
-- & worldEventFlags . at InventoryChange ?~ ()
-- & cWorld . lWorld . creatures . ix (_crID cr)
-- . crInv
-- . ix maginvid
-- . itConsumables
-- . _Just
-- -~ x
-- & cWorld . lWorld . lasers
-- .:~ Laser
-- { _lpPhaseV = 1
-- , _lpDir = _crDir cr + argV (Q.qToV2 q)
-- , _lpPos = pos
-- , _lpColor = col
-- , _lpType = TargetingLaser (_itID itm)
-- }
-- where
-- x = 1
-- isammolink AmmoInLink{} = True
-- isammolink _ = False
-- pos = _crPos cr + xyV3 (rotate3 cdir (p + V3 5 0 0))
-- cdir = _crDir cr
-- itm = itmtree ^. ldtValue . _1
-- pointittarg = cWorld . lWorld . creatures . ix cid . crInv . ix invid . itTargeting
-- cid = _crID cr
-- invid = _ilInvID $ _itLocation itm
-- col = blue -- mixColors reloadFrac (1-reloadFrac) blue red
shineTorch :: shineTorch ::
Creature -> Creature ->
LDTree ItemLink CItem -> LDTree ItemLink CItem ->
+44
View File
@@ -1,3 +1,4 @@
{-# LANGUAGE LambdaCase #-}
{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveAnyClass #-}
{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveGeneric #-}
--{-# LANGUAGE StrictData #-} --{-# LANGUAGE StrictData #-}
@@ -79,9 +80,52 @@ instance Bifunctor LDTree where
(map (bimap f (first f)) l) (map (bimap f (first f)) l)
(map (bimap f (first f)) r) (map (bimap f (first f)) r)
data ContextDT a
= TopDT
| LeftwardDT
{ _cdtUp :: ContextDT a
, _cdtCloseLeft :: [DoubleTree a]
, _cdtParent :: a
, _cdtCloseRight :: [DoubleTree a]
, _cdtFarRight :: [DoubleTree a]
}
| RightwardDT
{ _cdtUp :: ContextDT a
, _cdtFarLeft :: [ DoubleTree a]
, _cdtCloseLeft :: [DoubleTree a]
, _cdtParent :: a
, _cdtCloseRight :: [DoubleTree a]
}
data LocationDT b a = LocDT
{ _locDtContext :: ContextDT a
, _locDT :: DoubleTree a
}
makeLenses ''DoubleTree makeLenses ''DoubleTree
makeLenses ''LDTree makeLenses ''LDTree
makeLenses ''LocationLDT makeLenses ''LocationLDT
makeLenses ''ContextLDT makeLenses ''ContextLDT
instance Functor (LocationLDT b) where
fmap f (LocLDT c t) = LocLDT (fmap f c) (fmap f t)
instance Functor (ContextLDT b) where
fmap f = \case
TopLDT -> TopLDT
LeftwardLDT u cl p l cr fr -> LeftwardLDT (fmap f u)
(fmap (fmap (fmap f)) cl)
(f p)
l
(fmap (fmap (fmap f)) cr)
(fmap (fmap (fmap f)) fr)
RightwardLDT u fl cl p l cr -> RightwardLDT (fmap f u)
(fmap (fmap (fmap f)) fl)
(fmap (fmap (fmap f)) cl)
(f p)
l
(fmap (fmap (fmap f)) cr)
--deriveJSON defaultOptions ''DoubleTree --deriveJSON defaultOptions ''DoubleTree
--deriveJSON defaultOptions ''LabelDoubleTree --deriveJSON defaultOptions ''LabelDoubleTree
+177 -129
View File
@@ -1,10 +1,10 @@
module Dodge.DoubleTree where module Dodge.DoubleTree where
import Dodge.Data.DoubleTree
import qualified Data.IntMap.Strict as IM
import Control.Lens import Control.Lens
import Data.Bifunctor import Data.Bifunctor
import qualified Data.IntMap.Strict as IM
import Data.Monoid import Data.Monoid
import Dodge.Data.DoubleTree
singleDT :: a -> DoubleTree a singleDT :: a -> DoubleTree a
singleDT x = DT x [] [] singleDT x = DT x [] []
@@ -17,172 +17,203 @@ ldtToDT (LDT x l r) = DT x (map (ldtToDT . snd) l) (map (ldtToDT . snd) r)
-- propagate two functions down the links of an LDT tree -- propagate two functions down the links of an LDT tree
-- which function is chosen depends on whether it is a left or right branch -- which function is chosen depends on whether it is a left or right branch
ldtPropagate :: (c -> b -> c) -> (c -> b -> c) ldtPropagate ::
-> c (c -> b -> c) ->
-> LDTree b a -> LDTree c a (c -> b -> c) ->
c ->
LDTree b a ->
LDTree c a
ldtPropagate lf rf = ildtPropagate (const lf) (const rf) ldtPropagate lf rf = ildtPropagate (const lf) (const rf)
-- Propgates a value (of type c) down the branches of the LDT. -- Propgates a value (of type c) down the branches of the LDT.
-- The value is updated according a "left" or "right" function (lf or rf), -- The value is updated according a "left" or "right" function (lf or rf),
-- that acts on the parent value, the link, and the child value. -- that acts on the parent value, the link, and the child value.
-- For each node, the updated value is used to update a final value (of type d). -- For each node, the updated value is used to update a final value (of type d).
ldtPropagateFold :: (c -> a -> b -> a -> c) ldtPropagateFold ::
-> (c -> a -> b -> a -> c) (c -> a -> b -> a -> c) ->
-> (c -> a -> d -> d) (c -> a -> b -> a -> c) ->
-> c (c -> a -> d -> d) ->
-> LDTree b a c ->
-> d LDTree b a ->
-> d d ->
ldtPropagateFold lf rf up x (LDT v l r) = d
alaf Endo foldMap (\(s,y) -> ldtPropagateFold lf rf up (rf x v s (_ldtValue y)) y) r ldtPropagateFold lf rf up x (LDT v l r) =
. alaf Endo foldMap (\(s,y) -> ldtPropagateFold lf rf up (lf x v s (_ldtValue y)) y) l alaf Endo foldMap (\(s, y) -> ldtPropagateFold lf rf up (rf x v s (_ldtValue y)) y) r
. up x v . alaf Endo foldMap (\(s, y) -> ldtPropagateFold lf rf up (lf x v s (_ldtValue y)) y) l
. up x v
-- Propgates a value (of type c) down the branches of the LDT. -- Propgates a value (of type c) down the branches of the LDT.
-- The value is updated according a "left" or "right" function (lf or rf), -- The value is updated according a "left" or "right" function (lf or rf),
-- that acts on the parent value, the link, and the child value. -- that acts on the parent value, the link, and the child value.
-- For each node-tree, the updated value is used to update a final value (of type d). -- For each node-tree, the updated value is used to update a final value (of type d).
ldtPropagateFoldTree :: (c -> a -> b -> a -> c) ldtPropagateFoldTree ::
-> (c -> a -> b -> a -> c) (c -> a -> b -> a -> c) ->
-> (c -> LDTree b a -> d -> d) (c -> a -> b -> a -> c) ->
-> c (c -> LDTree b a -> d -> d) ->
-> LDTree b a c ->
-> d LDTree b a ->
-> d d ->
ldtPropagateFoldTree lf rf up x t@(LDT v l r) = d
alaf Endo foldMap (\(s,y) -> ldtPropagateFoldTree lf rf up (rf x v s (_ldtValue y)) y) r ldtPropagateFoldTree lf rf up x t@(LDT v l r) =
. alaf Endo foldMap (\(s,y) -> ldtPropagateFoldTree lf rf up (lf x v s (_ldtValue y)) y) l alaf Endo foldMap (\(s, y) -> ldtPropagateFoldTree lf rf up (rf x v s (_ldtValue y)) y) r
. up x t . alaf Endo foldMap (\(s, y) -> ldtPropagateFoldTree lf rf up (lf x v s (_ldtValue y)) y) l
. up x t
ildtPropagate :: (Int -> c -> b -> c) -> (Int -> c -> b -> c) ildtPropagate ::
-> c (Int -> c -> b -> c) ->
-> LDTree b a -> LDTree c a (Int -> c -> b -> c) ->
c ->
LDTree b a ->
LDTree c a
ildtPropagate lf rf x (LDT v l r) = LDT v (imap (go lf x) l) (imap (go rf x) r) ildtPropagate lf rf x (LDT v l r) = LDT v (imap (go lf x) l) (imap (go rf x) r)
where where
go f y i (z,t) = (f i y z, ildtPropagate lf rf (f i y z) t) go f y i (z, t) = (f i y z, ildtPropagate lf rf (f i y z) t)
ldtPropagateIndices :: LDTree b a -> LDTree b (a, [Either Int Int]) ldtPropagateIndices :: LDTree b a -> LDTree b (a, [Either Int Int])
ldtPropagateIndices (LDT x l r) = LDT (x,[]) (imap (f Left) l) (imap (f Right) r) ldtPropagateIndices (LDT x l r) = LDT (x, []) (imap (f Left) l) (imap (f Right) r)
where where
f e i (y,t) = (y, second (e i:) <$> ldtPropagateIndices t) f e i (y, t) = (y, second (e i :) <$> ldtPropagateIndices t)
-- conceptually, in a tree growing from left to right, -- conceptually, in a tree growing from left to right,
-- bottom -> top is equated with left -> right. -- bottom -> top is equated with left -> right.
-- this does not match with thinking of a list as top -> bottom, so take care -- this does not match with thinking of a list as top -> bottom, so take care
doubleTreeToIndentList :: DoubleTree a -> [(a,Int,DoubleTreeNodeType)] doubleTreeToIndentList :: DoubleTree a -> [(a, Int, DoubleTreeNodeType)]
doubleTreeToIndentList = dtIL DTRootNode doubleTreeToIndentList = dtIL DTRootNode
dtIL :: DoubleTreeNodeType -> DoubleTree a -> [(a,Int,DoubleTreeNodeType)] dtIL :: DoubleTreeNodeType -> DoubleTree a -> [(a, Int, DoubleTreeNodeType)]
dtIL nt (DT x l r) = map doindent (concat (headMap (dtIL DTBottomNode) (dtIL DTMidBelowNode) l)) dtIL nt (DT x l r) =
++ [(x,0,nt)] map doindent (concat (headMap (dtIL DTBottomNode) (dtIL DTMidBelowNode) l))
++ map doindent (concat (lastMap (dtIL DTTopNode) (dtIL DTMidAboveNode) r)) ++ [(x, 0, nt)]
++ map doindent (concat (lastMap (dtIL DTTopNode) (dtIL DTMidAboveNode) r))
where where
doindent (a,b,c) = (a,b+1,c) doindent (a, b, c) = (a, b + 1, c)
dtToAdjacency :: (a -> Int) -> DoubleTree a -> IM.IntMap [Int] dtToAdjacency :: (a -> Int) -> DoubleTree a -> IM.IntMap [Int]
dtToAdjacency f (DT x l r) = IM.insert (f x) (map g l <> map g r) dtToAdjacency f (DT x l r) =
. IM.unions $ map (dtToAdjacency f) $ l <> r IM.insert (f x) (map g l <> map g r)
where . IM.unions
$ map (dtToAdjacency f) $ l <> r
where
g = f . _dtValue g = f . _dtValue
dtToIntMapWithRoot :: (a -> Int) -> DoubleTree a -> IM.IntMap (Maybe Int, DoubleTree a) dtToIntMapWithRoot :: (a -> Int) -> DoubleTree a -> IM.IntMap (Maybe Int, DoubleTree a)
dtToIntMapWithRoot f t@(DT x l r) = IM.insert (f x) (Nothing, t) $ dtToIntMapWithRoot f t@(DT x l r) =
foldMap (dtToRootIntMap' (f x) f) $ l <> r IM.insert (f x) (Nothing, t) $
foldMap (dtToRootIntMap' (f x) f) $ l <> r
dtToRootIntMap' :: Int -> (a -> Int) -> DoubleTree a -> IM.IntMap (Maybe Int, DoubleTree a) dtToRootIntMap' :: Int -> (a -> Int) -> DoubleTree a -> IM.IntMap (Maybe Int, DoubleTree a)
dtToRootIntMap' root f t@(DT x l r) = IM.insert (f x) (Just root, t) $ dtToRootIntMap' root f t@(DT x l r) =
foldMap (dtToRootIntMap' root f) $ l <> r IM.insert (f x) (Just root, t) $
foldMap (dtToRootIntMap' root f) $ l <> r
dtToUpDownAdj :: (a -> Int) -> DoubleTree a -> IM.IntMap ([Int],[Int]) dtToUpDownAdj :: (a -> Int) -> DoubleTree a -> IM.IntMap ([Int], [Int])
dtToUpDownAdj f (DT x l r) = IM.insert (f x) (map g l , map g r) dtToUpDownAdj f (DT x l r) =
. IM.unions $ map (dtToUpDownAdj f) $ l <> r IM.insert (f x) (map g l, map g r)
where . IM.unions
$ map (dtToUpDownAdj f) $ l <> r
where
g = f . _dtValue g = f . _dtValue
-- returns an adjacency map with oldest ancestor and direct parent if they exist -- returns an adjacency map with oldest ancestor and direct parent if they exist
-- and any left and right children -- and any left and right children
dtToLRAdj :: (a -> Int) -> DoubleTree a -> IM.IntMap (Maybe (Int,Int),[Int],[Int]) dtToLRAdj :: (a -> Int) -> DoubleTree a -> IM.IntMap (Maybe (Int, Int), [Int], [Int])
dtToLRAdj f (DT x l r) = IM.insert i (Nothing,map g l , map g r) dtToLRAdj f (DT x l r) =
. IM.unions $ map (dtToAdjRootParent i i f) $ l <> r IM.insert i (Nothing, map g l, map g r)
where . IM.unions
$ map (dtToAdjRootParent i i f) $ l <> r
where
i = f x i = f x
g = f . _dtValue g = f . _dtValue
-- returns an adjacency map with oldest ancestor and direct parent if they exist -- returns an adjacency map with oldest ancestor and direct parent if they exist
-- and any left and right children -- and any left and right children
-- allows to propagate failure in the index discovery -- allows to propagate failure in the index discovery
dtToLRAdjEither :: (a -> Either String Int) -> DoubleTree a dtToLRAdjEither ::
-> Either String (IM.IntMap (Maybe (Int,Int),[Int],[Int])) (a -> Either String Int) ->
DoubleTree a ->
Either String (IM.IntMap (Maybe (Int, Int), [Int], [Int]))
dtToLRAdjEither f (DT x l r) = do dtToLRAdjEither f (DT x l r) = do
i <- f x i <- f x
l' <- mapM g l l' <- mapM g l
r' <- mapM g r r' <- mapM g r
childrenasnodes <- mapM (dtToAdjRootParentEither i i f) $ l <> r childrenasnodes <- mapM (dtToAdjRootParentEither i i f) $ l <> r
return $ IM.insert i (Nothing,l' , r') return $
$ IM.unions childrenasnodes IM.insert i (Nothing, l', r') $
where IM.unions childrenasnodes
where
g = f . _dtValue g = f . _dtValue
dtToAdjRootParent :: Int -> Int -> (a -> Int) -> DoubleTree a -> IM.IntMap (Maybe (Int,Int),[Int],[Int]) dtToAdjRootParent :: Int -> Int -> (a -> Int) -> DoubleTree a -> IM.IntMap (Maybe (Int, Int), [Int], [Int])
dtToAdjRootParent root par f (DT x l r) = IM.insert (f x) (Just (root,par),map g l , map g r) dtToAdjRootParent root par f (DT x l r) =
. IM.unions $ map (dtToAdjRootParent root (f x) f) $ l <> r IM.insert (f x) (Just (root, par), map g l, map g r)
where . IM.unions
$ map (dtToAdjRootParent root (f x) f) $ l <> r
where
g = f . _dtValue g = f . _dtValue
dtToAdjRootParentEither :: Int -> Int dtToAdjRootParentEither ::
-> (a -> Either String Int) -> DoubleTree a -> Either String (IM.IntMap (Maybe (Int,Int),[Int],[Int])) Int ->
Int ->
(a -> Either String Int) ->
DoubleTree a ->
Either String (IM.IntMap (Maybe (Int, Int), [Int], [Int]))
dtToAdjRootParentEither root par f (DT x l r) = do dtToAdjRootParentEither root par f (DT x l r) = do
i <- f x i <- f x
l' <- mapM g l l' <- mapM g l
r' <- mapM g r r' <- mapM g r
childrenasnodes <- mapM (dtToAdjRootParentEither root i f) $ l <> r childrenasnodes <- mapM (dtToAdjRootParentEither root i f) $ l <> r
return $ IM.insert i (Just (root,par),l' , r') $ IM.unions childrenasnodes return $ IM.insert i (Just (root, par), l', r') $ IM.unions childrenasnodes
where where
g = f . _dtValue g = f . _dtValue
ldtToIM :: (a -> Int) -> LDTree b a -> IM.IntMap (LDTree b a) ldtToIM :: (a -> Int) -> LDTree b a -> IM.IntMap (LDTree b a)
ldtToIM f t@(LDT x l r) = IM.insert (f x) t $ IM.unions $ map (ldtToIM f . snd) $ l <> r ldtToIM f t@(LDT x l r) = IM.insert (f x) t $ IM.unions $ map (ldtToIM f . snd) $ l <> r
ldtToIndentList :: LDTree b a -> [(a,Int,LabelDoubleTreeNodeType b)] ldtToIndentList :: LDTree b a -> [(a, Int, LabelDoubleTreeNodeType b)]
ldtToIndentList = ldtIL LDTRootNode ldtToIndentList = ldtIL LDTRootNode
ldtIL :: LabelDoubleTreeNodeType b -> LDTree b a -> [(a,Int,LabelDoubleTreeNodeType b)] ldtIL :: LabelDoubleTreeNodeType b -> LDTree b a -> [(a, Int, LabelDoubleTreeNodeType b)]
ldtIL nt (LDT x l r) = map doindent ldtIL nt (LDT x l r) =
(concat map
(headMap doindent
(\(lab,c) -> ldtIL (LDTBottomNode lab) c) ( concat
(\(lab,c) -> ldtIL (LDTMidBelowNode lab) c) ( headMap
l (\(lab, c) -> ldtIL (LDTBottomNode lab) c)
) (\(lab, c) -> ldtIL (LDTMidBelowNode lab) c)
) l
++ [(x,0,nt)]
++ map doindent
(concat
(lastMap
(\(lab,c) -> ldtIL (LDTTopNode lab) c)
(\(lab,c) -> ldtIL (LDTMidAboveNode lab) c)
r
) )
) )
++ [(x, 0, nt)]
++ map
doindent
( concat
( lastMap
(\(lab, c) -> ldtIL (LDTTopNode lab) c)
(\(lab, c) -> ldtIL (LDTMidAboveNode lab) c)
r
)
)
where where
doindent (a,b,c) = (a,b+1,c) doindent (a, b, c) = (a, b + 1, c)
headMap :: (a -> b) -> (a -> b) -> [a] -> [b] headMap :: (a -> b) -> (a -> b) -> [a] -> [b]
headMap f g (x:xs) = f x : map g xs headMap f g (x : xs) = f x : map g xs
headMap _ _ [] = [] headMap _ _ [] = []
lastMap :: (a -> b) -> (a -> b) -> [a] -> [b] lastMap :: (a -> b) -> (a -> b) -> [a] -> [b]
lastMap _ _ [] = [] lastMap _ _ [] = []
lastMap f _ [x] = [f x] lastMap f _ [x] = [f x]
lastMap f g (x:xs) = g x : lastMap f g xs lastMap f g (x : xs) = g x : lastMap f g xs
prettyDT :: (a -> String) -> DoubleTree a -> [String] prettyDT :: (a -> String) -> DoubleTree a -> [String]
prettyDT f (DT x l r) = concatMap (map ('/':) . prettyDT f) r prettyDT f (DT x l r) =
++ (f x : concatMap (map ('\\':) . prettyDT f) l) concatMap (map ('/' :) . prettyDT f) r
++ (f x : concatMap (map ('\\' :) . prettyDT f) l)
prettyLDT :: (a -> String) -> LDTree b a -> [String] prettyLDT :: (a -> String) -> LDTree b a -> [String]
prettyLDT f (LDT x l r) = concatMap (map ('/':) . prettyLDT f . snd) r prettyLDT f (LDT x l r) =
++ (f x : concatMap (map ('\\':) . prettyLDT f . snd) l) concatMap (map ('/' :) . prettyLDT f . snd) r
++ (f x : concatMap (map ('\\' :) . prettyLDT f . snd) l)
ldtToLoc :: LDTree b a -> LocationLDT b a ldtToLoc :: LDTree b a -> LocationLDT b a
ldtToLoc = LocLDT TopLDT ldtToLoc = LocLDT TopLDT
@@ -190,13 +221,20 @@ ldtToLoc = LocLDT TopLDT
-- should probably do tests for these -- should probably do tests for these
locUp :: LocationLDT b a -> Maybe (LocationLDT b a) locUp :: LocationLDT b a -> Maybe (LocationLDT b a)
locUp (LocLDT TopLDT _) = Nothing locUp (LocLDT TopLDT _) = Nothing
locUp (LocLDT c@LeftwardLDT{} t) = Just $ LocLDT (_cldtUp c) locUp (LocLDT c@LeftwardLDT{} t) =
(LDT (_cldtParent c) (_cldtCloseLeft c ++ ((_cldtLink c,t):_cldtCloseRight c)) (_cldtFarRight c)) Just $
locUp (LocLDT c@RightwardLDT{} t) = Just $ LocLDT (_cldtUp c) LocLDT
(LDT (_cldtParent c) (_cldtFarLeft c) (_cldtCloseLeft c ++ ((_cldtLink c,t):_cldtCloseRight c))) (_cldtUp c)
(LDT (_cldtParent c) (_cldtCloseLeft c ++ ((_cldtLink c, t) : _cldtCloseRight c)) (_cldtFarRight c))
locUp (LocLDT c@RightwardLDT{} t) =
Just $
LocLDT
(_cldtUp c)
(LDT (_cldtParent c) (_cldtFarLeft c) (_cldtCloseLeft c ++ ((_cldtLink c, t) : _cldtCloseRight c)))
locToTop :: LocationLDT b a -> LocationLDT b a locToTop :: LocationLDT b a -> LocationLDT b a
locToTop loc = maybe loc locToTop $ locUp loc locToTop loc = maybe loc locToTop $ locUp loc
--locToTop = fix $ \x -> fromMaybe x $ locUp x --locToTop = fix $ \x -> fromMaybe x $ locUp x
locLeftmost :: LocationLDT b a -> LocationLDT b a locLeftmost :: LocationLDT b a -> LocationLDT b a
@@ -207,52 +245,62 @@ locRightmost loc = maybe loc locRightmost $ alaf Last foldMap Just $ locGoRight
-- should probably do tests for these -- should probably do tests for these
locGoLeft :: LocationLDT b a -> [LocationLDT b a] locGoLeft :: LocationLDT b a -> [LocationLDT b a]
locGoLeft (LocLDT c (LDT v l r)) = locGoLeft (LocLDT c (LDT v l r)) =
[ LocLDT (LeftwardLDT c closel v link closer r) t | (closel,(link,t),closer) <- locGoHelp id l] [LocLDT (LeftwardLDT c closel v link closer r) t | (closel, (link, t), closer) <- locGoHelp id l]
-- should probably do tests for these -- should probably do tests for these
locGoRight :: LocationLDT b a -> [LocationLDT b a] locGoRight :: LocationLDT b a -> [LocationLDT b a]
locGoRight (LocLDT c (LDT v l r)) = locGoRight (LocLDT c (LDT v l r)) =
[ LocLDT (RightwardLDT c l closel v link closer) t | (closel,(link,t),closer) <- locGoHelp id r] [LocLDT (RightwardLDT c l closel v link closer) t | (closel, (link, t), closer) <- locGoHelp id r]
-- this seems like it might be very inefficient for large lists -- this seems like it might be very inefficient for large lists
-- difference lists? -- difference lists?
locGoHelp :: (a -> b) -> [a] -> [([a],b,[a])] locGoHelp :: (a -> b) -> [a] -> [([a], b, [a])]
locGoHelp f = go [] locGoHelp f = go []
where where
go cleft (y:ys) = (cleft,f y, ys) : go (cleft <> [y]) ys go cleft (y : ys) = (cleft, f y, ys) : go (cleft <> [y]) ys
go _ [] = [] go _ [] = []
-- Propgates a value (of type c) down the branches of the ContextLDT. -- Propgates a value (of type c) down the branches of the ContextLDT.
-- The value is updated according a "left" or "right" function (lf or rf), -- The value is updated according a "left" or "right" function (lf or rf),
-- that acts on the parent value, the link, and the child value. -- that acts on the parent value, the link, and the child value.
-- For each context node, the updated value is used to update a final value (of type d). -- For each context node, the updated value is used to update a final value (of type d).
cldtPropagateFold :: (c -> a -> b -> a -> c) cldtPropagateFold ::
-> (c -> a -> b -> a -> c) (c -> a -> b -> a -> c) ->
-> (c -> LocationLDT b a -> d -> d) (c -> a -> b -> a -> c) ->
-> c (c -> LocationLDT b a -> d -> d) ->
-> LocationLDT b a c ->
-> d LocationLDT b a ->
-> d d ->
cldtPropagateFold lf rf up x loc = d
alaf Endo foldMap cldtPropagateFold lf rf up x loc =
(\(LocLDT con' t') -> cldtPropagateFold alaf
lf Endo
rf foldMap
up ( \(LocLDT con' t') ->
(lf x (_cldtParent con') (_cldtLink con') (_ldtValue t')) cldtPropagateFold
(LocLDT con' t')) lf
rf
up
(lf x (_cldtParent con') (_cldtLink con') (_ldtValue t'))
(LocLDT con' t')
)
(locGoLeft loc) (locGoLeft loc)
. alaf Endo foldMap . alaf
(\(LocLDT con' t') -> cldtPropagateFold Endo
lf foldMap
rf ( \(LocLDT con' t') ->
up cldtPropagateFold
(rf x (_cldtParent con') (_cldtLink con') (_ldtValue t')) lf
(LocLDT con' t')) rf
(locGoRight loc) up
. up x loc (rf x (_cldtParent con') (_cldtLink con') (_ldtValue t'))
(LocLDT con' t')
)
(locGoRight loc)
. up x loc
reduceLocLDT :: Monoid m => (LocationLDT b a -> m) -> LocationLDT b a -> m reduceLocLDT :: Monoid m => (LocationLDT b a -> m) -> LocationLDT b a -> m
reduceLocLDT f x =foldMap (reduceLocLDT f) (locGoLeft x) <> f x reduceLocLDT f x =
<> foldMap (reduceLocLDT f) (locGoRight x) foldMap (reduceLocLDT f) (locGoLeft x) <> f x
<> foldMap (reduceLocLDT f) (locGoRight x)
+14
View File
@@ -1,7 +1,11 @@
{-# LANGUAGE LambdaCase #-}
module Dodge.Item.Orientation ( module Dodge.Item.Orientation (
orientAttachment, orientAttachment,
orientLocation,
) where ) where
import Dodge.DoubleTree
import Dodge.Data.DoubleTree
import Dodge.Data.ComposedItem import Dodge.Data.ComposedItem
import Dodge.Data.Item import Dodge.Data.Item
import Geometry.Data import Geometry.Data
@@ -11,6 +15,7 @@ orientChild :: Item -> (Point3, Q.Quaternion Float)
orientChild itm = case _itType itm of orientChild itm = case _itType itm of
HELD TORCH -> (V3 0 5 0, Q.qID) HELD TORCH -> (V3 0 5 0, Q.qID)
HELD LASER -> (V3 15 (-5) 0, Q.qID) HELD LASER -> (V3 15 (-5) 0, Q.qID)
ATTACH UNDERBARRELSLOT -> (V3 10 (-8) 0, Q.qID)
_ -> (0, Q.qID) _ -> (0, Q.qID)
orientByLink :: Item -> ItemLink -> (Point3, Q.Quaternion Float) orientByLink :: Item -> ItemLink -> (Point3, Q.Quaternion Float)
@@ -22,9 +27,18 @@ orientByLink itm lt = case (_itType itm, lt) of
orientAttachment :: Item -> ItemLink -> Item -> (Point3, Q.Quaternion Float) orientAttachment :: Item -> ItemLink -> Item -> (Point3, Q.Quaternion Float)
orientAttachment par lnk ch = case (_itType par, lnk, _itType ch) of orientAttachment par lnk ch = case (_itType par, lnk, _itType ch) of
(ATTACH UNDERBARRELSLOT, _, _) -> (V3 (-5) (-8) 0, Q.qID)
-- (HELD BURSTRIFLE, _, HELD TORCH) -> (V3 20 0 0, Q.axisAngle (V3 0 0 1) (pi/2)) -- (HELD BURSTRIFLE, _, HELD TORCH) -> (V3 20 0 0, Q.axisAngle (V3 0 0 1) (pi/2))
-- (HELD LAUNCHER, _, HELD TORCH) -> (V3 0 20 0, Q.axisAngle (V3 0 0 1) (pi/4)) -- (HELD LAUNCHER, _, HELD TORCH) -> (V3 0 20 0, Q.axisAngle (V3 0 0 1) (pi/4))
_ -> (t1 + Q.rotate q1 t2, q1 * q2) _ -> (t1 + Q.rotate q1 t2, q1 * q2)
where where
(t1, q1) = orientByLink par lnk (t1, q1) = orientByLink par lnk
(t2, q2) = orientChild ch (t2, q2) = orientChild ch
orientLocation :: LocationLDT ItemLink Item -> (Point3, Q.Quaternion Float)
orientLocation = \case
(LocLDT TopLDT _) -> (0, Q.qID)
(LocLDT c t) -> (p + Q.rotate q p1, q * q1)
where
(p,q) = orientLocation (LocLDT (_cldtUp c) (singleLDT (_cldtParent c)))
(p1,q1) = orientAttachment (_cldtParent c) (_cldtLink c) (_ldtValue t)
+192 -189
View File
@@ -29,7 +29,7 @@ APNothing src/Dodge/Data/Item/Use.hs 48;" C
APProjectiles src/Dodge/Data/Item/Use.hs 46;" C APProjectiles src/Dodge/Data/Item/Use.hs 46;" C
AQUAMARINE src/Color/Data.hs 24;" C AQUAMARINE src/Color/Data.hs 24;" C
ARHUD src/Dodge/Data/Item/Combine.hs 35;" C ARHUD src/Dodge/Data/Item/Combine.hs 35;" C
ARHUDSF src/Dodge/Data/ComposedItem.hs 47;" C ARHUDSF src/Dodge/Data/ComposedItem.hs 46;" C
ATTACH src/Dodge/Data/Item/Combine.hs 20;" C ATTACH src/Dodge/Data/Item/Combine.hs 20;" C
AUTOAMR src/Dodge/Data/Item/Combine.hs 159;" C AUTOAMR src/Dodge/Data/Item/Combine.hs 159;" C
AUTOPISTOL src/Dodge/Data/Item/Combine.hs 145;" C AUTOPISTOL src/Dodge/Data/Item/Combine.hs 145;" C
@@ -58,20 +58,20 @@ AlwaysSingleTrigger src/Dodge/Data/TriggerType.hs 13;" C
Ambush src/Dodge/Data/ActionPlan.hs 178;" C Ambush src/Dodge/Data/ActionPlan.hs 178;" C
Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 3;" m Ammo src/Dodge/Data/Item/Use/Consumption/Ammo.hs 3;" m
Ammo src/Dodge/Item/Ammo.hs 1;" m Ammo src/Dodge/Item/Ammo.hs 1;" m
AmmoEffectLink src/Dodge/Data/ComposedItem.hs 19;" C AmmoEffectLink src/Dodge/Data/ComposedItem.hs 18;" C
AmmoEffectSF src/Dodge/Data/ComposedItem.hs 57;" C AmmoEffectSF src/Dodge/Data/ComposedItem.hs 56;" C
AmmoInLink src/Dodge/Data/ComposedItem.hs 14;" C AmmoInLink src/Dodge/Data/ComposedItem.hs 13;" C
AmmoMagSF src/Dodge/Data/ComposedItem.hs 48;" C AmmoMagSF src/Dodge/Data/ComposedItem.hs 47;" C
AmmoMagType src/Dodge/Data/Item/Combine.hs 105;" t AmmoMagType src/Dodge/Data/Item/Combine.hs 105;" t
AmmoModLink src/Dodge/Data/ComposedItem.hs 16;" C AmmoModLink src/Dodge/Data/ComposedItem.hs 15;" C
AmmoModifierSF src/Dodge/Data/ComposedItem.hs 54;" C AmmoModifierSF src/Dodge/Data/ComposedItem.hs 53;" C
AmmoParams src/Dodge/Data/Item/Use.hs 51;" t AmmoParams src/Dodge/Data/Item/Use.hs 51;" t
AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 18;" C AmmoPayloadLink src/Dodge/Data/ComposedItem.hs 17;" C
AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 56;" C AmmoPayloadSF src/Dodge/Data/ComposedItem.hs 55;" C
AmmoPerShot src/Dodge/Data/Muzzle.hs 52;" t AmmoPerShot src/Dodge/Data/Muzzle.hs 52;" t
AmmoSlots src/Dodge/Item/AmmoSlots.hs 3;" m AmmoSlots src/Dodge/Item/AmmoSlots.hs 3;" m
AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 17;" C AmmoTargetingLink src/Dodge/Data/ComposedItem.hs 16;" C
AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 55;" C AmmoTargetingSF src/Dodge/Data/ComposedItem.hs 54;" C
AmmoType src/Dodge/Data/AmmoType.hs 3;" m AmmoType src/Dodge/Data/AmmoType.hs 3;" m
AnRoom src/Dodge/Annotation/Data.hs 18;" C AnRoom src/Dodge/Annotation/Data.hs 18;" C
AnTree src/Dodge/Annotation/Data.hs 19;" C AnTree src/Dodge/Annotation/Data.hs 19;" C
@@ -250,7 +250,7 @@ CHARTREUSE src/Color/Data.hs 25;" C
CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 111;" C CHEMFUELPOUCH src/Dodge/Data/Item/Combine.hs 111;" C
CHeal src/Dodge/Data/Item/HeldUse.hs 16;" C CHeal src/Dodge/Data/Item/HeldUse.hs 16;" C
CIRCLE src/Dodge/Data/GenParams.hs 20;" C CIRCLE src/Dodge/Data/GenParams.hs 20;" C
CItem src/Dodge/Data/ComposedItem.hs 66;" t CItem src/Dodge/Data/ComposedItem.hs 65;" t
CLICKER src/Dodge/Data/Item/Combine.hs 28;" C CLICKER src/Dodge/Data/Item/Combine.hs 28;" C
CME src/Dodge/Data/MuzzleEffect.hs 14;" C CME src/Dodge/Data/MuzzleEffect.hs 14;" C
COPIER src/Dodge/Data/Item/Combine.hs 29;" C COPIER src/Dodge/Data/Item/Combine.hs 29;" C
@@ -356,7 +356,8 @@ ConsumableItemType src/Dodge/Data/Item/Combine.hs 114;" t
Consumption src/Dodge/Data/Item/Use/Consumption.hs 8;" m Consumption src/Dodge/Data/Item/Use/Consumption.hs 8;" m
Consumption src/Dodge/Default/Item/Use/Consumption.hs 1;" m Consumption src/Dodge/Default/Item/Use/Consumption.hs 1;" m
Containing src/Dodge/Room/Containing.hs 2;" m Containing src/Dodge/Room/Containing.hs 2;" m
ContextLDT src/Dodge/Data/DoubleTree.hs 48;" t ContextDT src/Dodge/Data/DoubleTree.hs 82;" t
ContextLDT src/Dodge/Data/DoubleTree.hs 41;" t
ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C ContinentalGovernment src/Dodge/Data/Scenario.hs 51;" C
ControlDeckSS src/Dodge/Data/Scenario.hs 89;" C ControlDeckSS src/Dodge/Data/Scenario.hs 89;" C
ConvexPoly src/Geometry/ConvexPoly.hs 27;" t ConvexPoly src/Geometry/ConvexPoly.hs 27;" t
@@ -628,7 +629,7 @@ Equipment src/Dodge/Default/Item/Use/Equipment.hs 1;" m
Equipment src/Dodge/Equipment.hs 1;" m Equipment src/Dodge/Equipment.hs 1;" m
Equipment src/Dodge/Item/Equipment.hs 1;" m Equipment src/Dodge/Item/Equipment.hs 1;" m
EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 18;" t EquipmentAllocation src/Dodge/Data/RightButtonOptions.hs 18;" t
EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 41;" C EquipmentPlatformSF src/Dodge/Data/ComposedItem.hs 40;" C
Escape src/Dodge/Data/Scenario.hs 10;" C Escape src/Dodge/Data/Scenario.hs 10;" C
EscapeMenuOption src/Dodge/Data/Universe.hs 76;" t EscapeMenuOption src/Dodge/Data/Universe.hs 76;" t
Essential src/Shape/Data.hs 34;" C Essential src/Shape/Data.hs 34;" C
@@ -727,8 +728,8 @@ FullRes src/Dodge/Data/Config.hs 97;" C
FullShadowFidelity src/Shape/Data.hs 24;" C FullShadowFidelity src/Shape/Data.hs 24;" C
FullSize src/Dodge/Data/Item/Params.hs 28;" C FullSize src/Dodge/Data/Item/Params.hs 28;" C
FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C FullyVisible src/Dodge/Data/CamouflageStatus.hs 6;" C
FunctionChangeLink src/Dodge/Data/ComposedItem.hs 27;" C FunctionChangeLink src/Dodge/Data/ComposedItem.hs 26;" C
FunctionChangeSF src/Dodge/Data/ComposedItem.hs 58;" C FunctionChangeSF src/Dodge/Data/ComposedItem.hs 57;" C
GBounce src/Dodge/Data/Projectile.hs 57;" C GBounce src/Dodge/Data/Projectile.hs 57;" C
GEqC src/SameConstr.hs 20;" c GEqC src/SameConstr.hs 20;" c
GIMBAL src/Dodge/Data/Item/Combine.hs 96;" C GIMBAL src/Dodge/Data/Item/Combine.hs 96;" C
@@ -741,7 +742,7 @@ GStick src/Dodge/Data/Projectile.hs 58;" C
GStuckCreature src/Dodge/Data/Projectile.hs 59;" C GStuckCreature src/Dodge/Data/Projectile.hs 59;" C
GStuckWall src/Dodge/Data/Projectile.hs 60;" C GStuckWall src/Dodge/Data/Projectile.hs 60;" C
GYROSCOPE src/Dodge/Data/Item/Combine.hs 97;" C GYROSCOPE src/Dodge/Data/Item/Combine.hs 97;" C
GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 42;" C GadgetPlatformSF src/Dodge/Data/ComposedItem.hs 41;" C
GameOverOptions src/Dodge/Data/Universe.hs 72;" C GameOverOptions src/Dodge/Data/Universe.hs 72;" C
GameRoom src/Dodge/GameRoom.hs 15;" t GameRoom src/Dodge/GameRoom.hs 15;" t
GameRoom src/Dodge/GameRoom.hs 8;" m GameRoom src/Dodge/GameRoom.hs 8;" m
@@ -786,8 +787,8 @@ GraphHelp src/GraphHelp.hs 1;" m
GraphVizHelp src/GraphVizHelp.hs 2;" m GraphVizHelp src/GraphVizHelp.hs 2;" m
Grenade src/Dodge/Data/Projectile.hs 42;" C Grenade src/Dodge/Data/Projectile.hs 42;" C
GrenadeHitEffect src/Dodge/Data/Projectile.hs 56;" t GrenadeHitEffect src/Dodge/Data/Projectile.hs 56;" t
GrenadeHitEffectLink src/Dodge/Data/ComposedItem.hs 32;" C GrenadeHitEffectLink src/Dodge/Data/ComposedItem.hs 31;" C
GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 61;" C GrenadeHitEffectSF src/Dodge/Data/ComposedItem.hs 60;" C
Grid src/Grid.hs 1;" m Grid src/Grid.hs 1;" m
Gust src/Dodge/Data/Gust.hs 13;" t Gust src/Dodge/Data/Gust.hs 13;" t
Gust src/Dodge/Data/Gust.hs 6;" m Gust src/Dodge/Data/Gust.hs 6;" m
@@ -822,7 +823,7 @@ Held src/Dodge/Item/Held.hs 1;" m
HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m HeldDelay src/Dodge/Data/Item/HeldDelay.hs 6;" m
HeldItemType src/Dodge/Data/Item/Combine.hs 138;" t HeldItemType src/Dodge/Data/Item/Combine.hs 138;" t
HeldOffset src/Dodge/Item/HeldOffset.hs 2;" m HeldOffset src/Dodge/Item/HeldOffset.hs 2;" m
HeldPlatformSF src/Dodge/Data/ComposedItem.hs 38;" C HeldPlatformSF src/Dodge/Data/ComposedItem.hs 37;" C
HeldScroll src/Dodge/HeldScroll.hs 1;" m HeldScroll src/Dodge/HeldScroll.hs 1;" m
HeldUse src/Dodge/Data/Item/HeldUse.hs 6;" m HeldUse src/Dodge/Data/Item/HeldUse.hs 6;" m
HeldUse src/Dodge/HeldUse.hs 5;" m HeldUse src/Dodge/HeldUse.hs 5;" m
@@ -910,7 +911,7 @@ Intention src/Dodge/Data/Creature.hs 66;" t
Intention src/Dodge/Creature/Intention.hs 1;" m Intention src/Dodge/Creature/Intention.hs 1;" m
Intersect src/Geometry/Intersect.hs 5;" m Intersect src/Geometry/Intersect.hs 5;" m
IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C IntersectingRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C
IntroScanSF src/Dodge/Data/ComposedItem.hs 45;" C IntroScanSF src/Dodge/Data/ComposedItem.hs 44;" C
IntroScanType src/Dodge/Data/Item/Combine.hs 44;" t IntroScanType src/Dodge/Data/Item/Combine.hs 44;" t
InvInt src/Dodge/Data/Item/Location.hs 19;" t InvInt src/Dodge/Data/Item/Location.hs 19;" t
InvSize src/Dodge/Item/InvSize.hs 2;" m InvSize src/Dodge/Item/InvSize.hs 2;" m
@@ -943,7 +944,7 @@ ItemCancelExamineInventory src/Dodge/Data/Item/Effect.hs 31;" C
ItemClust src/Dodge/Combine/Graph.hs 21;" C ItemClust src/Dodge/Combine/Graph.hs 21;" C
ItemCopierUpdate src/Dodge/Data/Item/Effect.hs 32;" C ItemCopierUpdate src/Dodge/Data/Item/Effect.hs 32;" C
ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t ItemDimension src/Dodge/Data/Item/Misc.hs 13;" t
ItemLink src/Dodge/Data/ComposedItem.hs 13;" t ItemLink src/Dodge/Data/ComposedItem.hs 12;" t
ItemLocation src/Dodge/Data/Item/Location.hs 28;" t ItemLocation src/Dodge/Data/Item/Location.hs 28;" t
ItemParamID src/Dodge/Data/Item/Params.hs 26;" C ItemParamID src/Dodge/Data/Item/Params.hs 26;" C
ItemParams src/Dodge/Data/Item/Params.hs 14;" t ItemParams src/Dodge/Data/Item/Params.hs 14;" t
@@ -954,7 +955,7 @@ ItemScrollInt src/Dodge/Data/Item.hs 53;" C
ItemScrollIntRange src/Dodge/Data/Item.hs 54;" C ItemScrollIntRange src/Dodge/Data/Item.hs 54;" C
ItemScrollTimeFlow src/Dodge/Data/World.hs 62;" C ItemScrollTimeFlow src/Dodge/Data/World.hs 62;" C
ItemSetWarmTime src/Dodge/Data/Item/Effect.hs 34;" C ItemSetWarmTime src/Dodge/Data/Item/Effect.hs 34;" C
ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 36;" t ItemStructuralFunction src/Dodge/Data/ComposedItem.hs 35;" t
ItemTargeting src/Dodge/Data/Item.hs 56;" t ItemTargeting src/Dodge/Data/Item.hs 56;" t
ItemType src/Dodge/Data/Item/Combine.hs 16;" t ItemType src/Dodge/Data/Item/Combine.hs 16;" t
ItemUse src/Dodge/Data/Item/Use.hs 30;" t ItemUse src/Dodge/Data/Item/Use.hs 30;" t
@@ -968,29 +969,28 @@ JGK src/Control/Foldl/JGK.hs 1;" m
JOYSTICK src/Dodge/Data/Item/Combine.hs 95;" C JOYSTICK src/Dodge/Data/Item/Combine.hs 95;" C
JUMPLEGS src/Dodge/Data/Item/Combine.hs 130;" C JUMPLEGS src/Dodge/Data/Item/Combine.hs 130;" C
JoinClust src/Dodge/Combine/Graph.hs 22;" C JoinClust src/Dodge/Combine/Graph.hs 22;" C
JoystickLink src/Dodge/Data/ComposedItem.hs 22;" C JoystickLink src/Dodge/Data/ComposedItem.hs 21;" C
JoystickSF src/Dodge/Data/ComposedItem.hs 50;" C JoystickSF src/Dodge/Data/ComposedItem.hs 49;" C
Just' src/MaybeHelp.hs 13;" C Just' src/MaybeHelp.hs 13;" C
JustStartedPlaying src/Sound/Data.hs 24;" C JustStartedPlaying src/Sound/Data.hs 24;" C
Justify src/Justify.hs 1;" m Justify src/Justify.hs 1;" m
KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C KEYCARD src/Dodge/Data/Item/Combine.hs 177;" C
Kill src/Dodge/Data/ActionPlan.hs 198;" C Kill src/Dodge/Data/ActionPlan.hs 198;" C
LASER src/Dodge/Data/Item/Combine.hs 168;" C LASER src/Dodge/Data/Item/Combine.hs 168;" C
LDT src/Dodge/Data/DoubleTree.hs 40;" C LDT src/Dodge/Data/DoubleTree.hs 33;" C
LDTBottomNode src/Dodge/Data/DoubleTree.hs 28;" C LDTBottomNode src/Dodge/Data/DoubleTree.hs 28;" C
LDTComb src/Dodge/Item/Grammar.hs 233;" t LDTComb src/Dodge/Item/Grammar.hs 162;" t
LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 26;" C LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 26;" C
LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 27;" C LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 27;" C
LDTRootNode src/Dodge/Data/DoubleTree.hs 24;" C LDTRootNode src/Dodge/Data/DoubleTree.hs 24;" C
LDTTopNode src/Dodge/Data/DoubleTree.hs 25;" C LDTTopNode src/Dodge/Data/DoubleTree.hs 25;" C
LDTree src/Dodge/Data/DoubleTree.hs 33;" t
LED src/Dodge/Data/Item/Combine.hs 77;" C LED src/Dodge/Data/Item/Combine.hs 77;" C
LHS src/Geometry/LHS.hs 1;" m LHS src/Geometry/LHS.hs 1;" m
LIGHTER src/Dodge/Data/Item/Combine.hs 66;" C LIGHTER src/Dodge/Data/Item/Combine.hs 66;" C
LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 80;" C LIGHTSENSOR src/Dodge/Data/Item/Combine.hs 80;" C
LS src/Dodge/Data/LightSource.hs 23;" C LS src/Dodge/Data/LightSource.hs 23;" C
LSParam src/Dodge/Data/LightSource.hs 16;" t LSParam src/Dodge/Data/LightSource.hs 16;" t
LTest src/Dodge/Data/ComposedItem.hs 70;" C
LUpdate src/Dodge/Data/ComposedItem.hs 75;" C
LWorld src/Dodge/Data/LWorld.hs 97;" t LWorld src/Dodge/Data/LWorld.hs 97;" t
LWorld src/Dodge/Data/LWorld.hs 6;" m LWorld src/Dodge/Data/LWorld.hs 6;" m
LabLink src/Dodge/Data/Room.hs 45;" C LabLink src/Dodge/Data/Room.hs 45;" C
@@ -998,7 +998,6 @@ LabSS src/Dodge/Data/Scenario.hs 97;" C
Label src/Dodge/Render/Label.hs 1;" m Label src/Dodge/Render/Label.hs 1;" m
LabelAction src/Dodge/Data/ActionPlan.hs 79;" C LabelAction src/Dodge/Data/ActionPlan.hs 79;" C
LabelCluster src/Dodge/Data/RoomCluster.hs 14;" C LabelCluster src/Dodge/Data/RoomCluster.hs 14;" C
LabelDoubleTree src/Dodge/Data/DoubleTree.hs 40;" t
LabelDoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 23;" t LabelDoubleTreeNodeType src/Dodge/Data/DoubleTree.hs 23;" t
Laboratory src/Dodge/Data/Scenario.hs 61;" C Laboratory src/Dodge/Data/Scenario.hs 61;" C
Lamp src/Dodge/Creature/Lamp.hs 1;" m Lamp src/Dodge/Creature/Lamp.hs 1;" m
@@ -1026,7 +1025,8 @@ LeadTarget src/Dodge/Data/ActionPlan.hs 149;" C
Left src/Dodge/Item/Left.hs 1;" m Left src/Dodge/Item/Left.hs 1;" m
LeftConsumption src/Dodge/Data/Item/Use/Consumption.hs 25;" t LeftConsumption src/Dodge/Data/Item/Use/Consumption.hs 25;" t
LeftForward src/Dodge/Data/Creature/Stance.hs 32;" C LeftForward src/Dodge/Data/Creature/Stance.hs 32;" C
LeftwardLDT src/Dodge/Data/DoubleTree.hs 50;" C LeftwardDT src/Dodge/Data/DoubleTree.hs 84;" C
LeftwardLDT src/Dodge/Data/DoubleTree.hs 43;" C
LensHelp src/LensHelp.hs 1;" m LensHelp src/LensHelp.hs 1;" m
Lethargic src/Dodge/Data/Creature/Perception.hs 55;" C Lethargic src/Dodge/Data/Creature/Perception.hs 55;" C
LevelGen src/Dodge/LevelGen.hs 1;" m LevelGen src/Dodge/LevelGen.hs 1;" m
@@ -1048,8 +1048,6 @@ LimitedWater src/Dodge/Data/Scenario.hs 40;" C
LinearShockwave src/Dodge/Data/LinearShockwave.hs 13;" t LinearShockwave src/Dodge/Data/LinearShockwave.hs 13;" t
LinearShockwave src/Dodge/Data/LinearShockwave.hs 6;" m LinearShockwave src/Dodge/Data/LinearShockwave.hs 6;" m
Link src/Dodge/Room/Link.hs 6;" m Link src/Dodge/Room/Link.hs 6;" m
LinkTest src/Dodge/Data/ComposedItem.hs 70;" t
LinkUpdate src/Dodge/Data/ComposedItem.hs 75;" t
List src/Dodge/Combine/List.hs 1;" m List src/Dodge/Combine/List.hs 1;" m
List src/Dodge/Render/List.hs 3;" m List src/Dodge/Render/List.hs 3;" m
ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t ListDisplayParams src/Dodge/Data/SelectionList.hs 13;" t
@@ -1064,11 +1062,13 @@ LoadSound src/Dodge/SoundLogic/LoadSound.hs 1;" m
Loading src/Dodge/Menu/Loading.hs 1;" m Loading src/Dodge/Menu/Loading.hs 1;" m
LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C LoadingBaySS src/Dodge/Data/Scenario.hs 93;" C
LoadingScreen src/Dodge/Data/Universe.hs 73;" C LoadingScreen src/Dodge/Data/Universe.hs 73;" C
LocLDT src/Dodge/Data/DoubleTree.hs 67;" C LocDT src/Dodge/Data/DoubleTree.hs 99;" C
LocLDT src/Dodge/Data/DoubleTree.hs 60;" C
Location src/Dodge/Data/Item/Location.hs 6;" m Location src/Dodge/Data/Item/Location.hs 6;" m
Location src/Dodge/Inventory/Location.hs 1;" m Location src/Dodge/Inventory/Location.hs 1;" m
Location src/Dodge/Item/Location.hs 1;" m Location src/Dodge/Item/Location.hs 1;" m
LocationLDT src/Dodge/Data/DoubleTree.hs 67;" t LocationDT src/Dodge/Data/DoubleTree.hs 99;" t
LocationLDT src/Dodge/Data/DoubleTree.hs 60;" t
Lock src/Dodge/Inventory/Lock.hs 1;" m Lock src/Dodge/Inventory/Lock.hs 1;" m
LockAndKey src/Dodge/LockAndKey.hs 1;" m LockAndKey src/Dodge/LockAndKey.hs 1;" m
LoneWolf src/Dodge/Data/Creature/State.hs 26;" C LoneWolf src/Dodge/Data/Creature/State.hs 26;" C
@@ -1130,8 +1130,8 @@ MagnetUpdate src/Dodge/Data/Magnet.hs 13;" t
MagnetUpdateTimer src/Dodge/Data/Magnet.hs 13;" C MagnetUpdateTimer src/Dodge/Data/Magnet.hs 13;" C
Main appDodge/Main.hs 1;" m Main appDodge/Main.hs 1;" m
Make src/Dodge/Corpse/Make.hs 1;" m Make src/Dodge/Corpse/Make.hs 1;" m
MakeAutoLink src/Dodge/Data/ComposedItem.hs 28;" C MakeAutoLink src/Dodge/Data/ComposedItem.hs 27;" C
MakeAutoSF src/Dodge/Data/ComposedItem.hs 59;" C MakeAutoSF src/Dodge/Data/ComposedItem.hs 58;" C
MakeSound src/Dodge/Data/ActionPlan.hs 43;" C MakeSound src/Dodge/Data/ActionPlan.hs 43;" C
MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 29;" C MakeStartCloudAt src/Dodge/Data/WorldEffect.hs 29;" C
MakeTempLight src/Dodge/Data/WorldEffect.hs 33;" C MakeTempLight src/Dodge/Data/WorldEffect.hs 33;" C
@@ -1139,7 +1139,7 @@ ManipulatedObject src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 20;" t
Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 14;" t Manipulation src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 14;" t
Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" C Manipulator src/Dodge/Data/Item/Use/Consumption/LoadAction.hs 15;" C
MapperInventory src/Dodge/Data/HUD.hs 31;" C MapperInventory src/Dodge/Data/HUD.hs 31;" C
MapperSF src/Dodge/Data/ComposedItem.hs 63;" C MapperSF src/Dodge/Data/ComposedItem.hs 62;" C
Mass src/Dodge/Creature/Mass.hs 2;" m Mass src/Dodge/Creature/Mass.hs 2;" m
Material src/Dodge/Data/Material.hs 11;" t Material src/Dodge/Data/Material.hs 11;" t
Material src/Dodge/Creature/Material.hs 3;" m Material src/Dodge/Creature/Material.hs 3;" m
@@ -1288,7 +1288,7 @@ NoParams src/Dodge/Data/Item/Params.hs 15;" C
NoResurrection src/Dodge/Data/Corpse.hs 14;" C NoResurrection src/Dodge/Data/Corpse.hs 14;" C
NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C NoRightButtonOptions src/Dodge/Data/RightButtonOptions.hs 14;" C
NoRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C NoRoomClipBoundaries src/Dodge/Data/Config.hs 107;" C
NoSF src/Dodge/Data/ComposedItem.hs 53;" C NoSF src/Dodge/Data/ComposedItem.hs 52;" C
NoShadowFidelity src/Shape/Data.hs 25;" C NoShadowFidelity src/Shape/Data.hs 25;" C
NoShadows src/Dodge/Data/Config.hs 103;" C NoShadows src/Dodge/Data/Config.hs 103;" C
NoSubInventory src/Dodge/Data/HUD.hs 29;" C NoSubInventory src/Dodge/Data/HUD.hs 29;" C
@@ -1371,7 +1371,7 @@ Option src/Dodge/Menu/Option.hs 1;" m
OptionScreen src/Dodge/Data/Universe.hs 82;" C OptionScreen src/Dodge/Data/Universe.hs 82;" C
OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t OptionScreenFlag src/Dodge/Data/Universe.hs 72;" t
OptionType src/Dodge/Menu/OptionType.hs 2;" m OptionType src/Dodge/Menu/OptionType.hs 2;" m
Orientation src/Dodge/Item/Orientation.hs 1;" m Orientation src/Dodge/Item/Orientation.hs 2;" m
OutAction src/Dodge/Creature/Action.hs 45;" t OutAction src/Dodge/Creature/Action.hs 45;" t
OutLink src/Dodge/Data/Room.hs 43;" C OutLink src/Dodge/Data/Room.hs 43;" C
OutPlacement src/Dodge/Data/GenWorld.hs 126;" t OutPlacement src/Dodge/Data/GenWorld.hs 126;" t
@@ -1501,8 +1501,8 @@ Projectile src/Dodge/Data/Projectile.hs 17;" t
Projectile src/Dodge/Data/Projectile.hs 6;" m Projectile src/Dodge/Data/Projectile.hs 6;" m
Projectile src/Dodge/Projectile.hs 1;" m Projectile src/Dodge/Projectile.hs 1;" m
ProjectileParams src/Dodge/Data/Item/Use.hs 53;" C ProjectileParams src/Dodge/Data/Item/Use.hs 53;" C
ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 29;" C ProjectileStabiliserLink src/Dodge/Data/ComposedItem.hs 28;" C
ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 60;" C ProjectileStabiliserSF src/Dodge/Data/ComposedItem.hs 59;" C
ProjectileType src/Dodge/Data/Projectile.hs 41;" t ProjectileType src/Dodge/Data/Projectile.hs 41;" t
ProjectileUpdate src/Dodge/Data/Projectile.hs 35;" t ProjectileUpdate src/Dodge/Data/Projectile.hs 35;" t
Prop src/Dodge/Data/Prop.hs 18;" t Prop src/Dodge/Data/Prop.hs 18;" t
@@ -1610,11 +1610,11 @@ ReigonalGovernment src/Dodge/Data/Scenario.hs 50;" C
Religion src/Dodge/Data/Scenario.hs 47;" C Religion src/Dodge/Data/Scenario.hs 47;" C
Reload src/Dodge/Data/ActionPlan.hs 190;" C Reload src/Dodge/Data/ActionPlan.hs 190;" C
ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t ReloadStatus src/Dodge/Data/Item/Use/Consumption.hs 20;" t
RemoteDetonatorLink src/Dodge/Data/ComposedItem.hs 24;" C RemoteDetonatorLink src/Dodge/Data/ComposedItem.hs 23;" C
RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 51;" C RemoteDetonatorSF src/Dodge/Data/ComposedItem.hs 50;" C
RemoteDirectionPU src/Dodge/Data/Projectile.hs 38;" C RemoteDirectionPU src/Dodge/Data/Projectile.hs 38;" C
RemoteScreenLink src/Dodge/Data/ComposedItem.hs 23;" C RemoteScreenLink src/Dodge/Data/ComposedItem.hs 22;" C
RemoteScreenSF src/Dodge/Data/ComposedItem.hs 49;" C RemoteScreenSF src/Dodge/Data/ComposedItem.hs 48;" C
RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C RemoveEquipment src/Dodge/Data/RightButtonOptions.hs 36;" C
RemoveShieldWall src/Dodge/Data/Item/Effect.hs 27;" C RemoveShieldWall src/Dodge/Data/Item/Effect.hs 27;" C
Remove_LOS src/Dodge/Data/Config.hs 77;" C Remove_LOS src/Dodge/Data/Config.hs 77;" C
@@ -1639,7 +1639,8 @@ RezBox src/Dodge/Room/RezBox.hs 1;" m
RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 13;" t RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 13;" t
RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 6;" m RightButtonOptions src/Dodge/Data/RightButtonOptions.hs 6;" m
RightForward src/Dodge/Data/Creature/Stance.hs 33;" C RightForward src/Dodge/Data/Creature/Stance.hs 33;" C
RightwardLDT src/Dodge/Data/DoubleTree.hs 58;" C RightwardDT src/Dodge/Data/DoubleTree.hs 91;" C
RightwardLDT src/Dodge/Data/DoubleTree.hs 51;" C
RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m RoadBlock src/Dodge/Room/RoadBlock.hs 2;" m
Rocket src/Dodge/Data/Projectile.hs 43;" C Rocket src/Dodge/Data/Projectile.hs 43;" C
RocketHoming src/Dodge/Data/Projectile.hs 50;" t RocketHoming src/Dodge/Data/Projectile.hs 50;" t
@@ -1673,7 +1674,7 @@ RoundedFaces src/Shape/Data.hs 18;" C
RunPast src/Dodge/Room/RunPast.hs 1;" m RunPast src/Dodge/Room/RunPast.hs 1;" m
RunningSideEffect src/Dodge/Data/Universe.hs 69;" C RunningSideEffect src/Dodge/Data/Universe.hs 69;" C
SCRAPMETAL src/Dodge/Data/Item/Combine.hs 61;" C SCRAPMETAL src/Dodge/Data/Item/Combine.hs 61;" C
SFLink src/Dodge/Data/ComposedItem.hs 33;" C SFLink src/Dodge/Data/ComposedItem.hs 32;" C
SHATTERGUN src/Dodge/Data/Item/Combine.hs 174;" C SHATTERGUN src/Dodge/Data/Item/Combine.hs 174;" C
SHELLMAG src/Dodge/Data/Item/Combine.hs 109;" C SHELLMAG src/Dodge/Data/Item/Combine.hs 109;" C
SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 102;" C SHELLPAYLOAD src/Dodge/Data/Item/Combine.hs 102;" C
@@ -1800,8 +1801,8 @@ SkiffBaySS src/Dodge/Data/Scenario.hs 108;" C
SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C SleepingQuatersSS src/Dodge/Data/Scenario.hs 90;" C
Small src/Shape/Data.hs 31;" C Small src/Shape/Data.hs 31;" C
Smoke src/Dodge/Data/Cloud.hs 23;" C Smoke src/Dodge/Data/Cloud.hs 23;" C
SmokeReducerLink src/Dodge/Data/ComposedItem.hs 25;" C SmokeReducerLink src/Dodge/Data/ComposedItem.hs 24;" C
SmokeReducerSF src/Dodge/Data/ComposedItem.hs 52;" C SmokeReducerSF src/Dodge/Data/ComposedItem.hs 51;" C
SmoothScroll src/Dodge/SmoothScroll.hs 1;" m SmoothScroll src/Dodge/SmoothScroll.hs 1;" m
SocialUpheaval src/Dodge/Data/Scenario.hs 27;" C SocialUpheaval src/Dodge/Data/Scenario.hs 27;" C
SolarGovernment src/Dodge/Data/Scenario.hs 53;" C SolarGovernment src/Dodge/Data/Scenario.hs 53;" C
@@ -2001,10 +2002,11 @@ ToStop src/Sound/Data.hs 28;" C
Toggle src/Dodge/Data/Universe.hs 103;" C Toggle src/Dodge/Data/Universe.hs 103;" C
Toggle2 src/Dodge/Data/Universe.hs 107;" C Toggle2 src/Dodge/Data/Universe.hs 107;" C
ToggleExamine src/Dodge/ToggleExamine.hs 1;" m ToggleExamine src/Dodge/ToggleExamine.hs 1;" m
ToggleSF src/Dodge/Data/ComposedItem.hs 62;" C ToggleSF src/Dodge/Data/ComposedItem.hs 61;" C
TopDT src/Dodge/Data/DoubleTree.hs 83;" C
TopDecoration src/Dodge/Placement/TopDecoration.hs 1;" m TopDecoration src/Dodge/Placement/TopDecoration.hs 1;" m
TopEscapeMenuOption src/Dodge/Data/Universe.hs 78;" C TopEscapeMenuOption src/Dodge/Data/Universe.hs 78;" C
TopLDT src/Dodge/Data/DoubleTree.hs 49;" C TopLDT src/Dodge/Data/DoubleTree.hs 42;" C
TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C TorpedoBaySS src/Dodge/Data/Scenario.hs 99;" C
TorqueCr src/Dodge/Data/WorldEffect.hs 30;" C TorqueCr src/Dodge/Data/WorldEffect.hs 30;" C
TractorBeam src/Dodge/Data/TractorBeam.hs 13;" t TractorBeam src/Dodge/Data/TractorBeam.hs 13;" t
@@ -2018,8 +2020,8 @@ TreeHelp src/TreeHelp.hs 12;" m
Triangulate src/Geometry/Triangulate.hs 3;" m Triangulate src/Geometry/Triangulate.hs 3;" m
Trie src/SimpleTrie.hs 9;" t Trie src/SimpleTrie.hs 9;" t
TriggerDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 1;" m TriggerDoor src/Dodge/Placement/PlaceSpot/TriggerDoor.hs 1;" m
TriggerLink src/Dodge/Data/ComposedItem.hs 15;" C TriggerLink src/Dodge/Data/ComposedItem.hs 14;" C
TriggerSF src/Dodge/Data/ComposedItem.hs 46;" C TriggerSF src/Dodge/Data/ComposedItem.hs 45;" C
TriggerType src/Dodge/Data/TriggerType.hs 9;" t TriggerType src/Dodge/Data/TriggerType.hs 9;" t
TriggerType src/Dodge/Data/TriggerType.hs 4;" m TriggerType src/Dodge/Data/TriggerType.hs 4;" m
TriggerType src/Dodge/Item/TriggerType.hs 1;" m TriggerType src/Dodge/Item/TriggerType.hs 1;" m
@@ -2045,10 +2047,10 @@ Type src/Dodge/Terminal/Type.hs 1;" m
Typical src/Shape/Data.hs 36;" C Typical src/Shape/Data.hs 36;" C
UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 98;" C UNDERBARRELSLOT src/Dodge/Data/Item/Combine.hs 98;" C
UNIGATE src/Dodge/Data/Item/Combine.hs 31;" C UNIGATE src/Dodge/Data/Item/Combine.hs 31;" C
UnderBarrelPlatformLink src/Dodge/Data/ComposedItem.hs 31;" C UnderBarrelPlatformLink src/Dodge/Data/ComposedItem.hs 30;" C
UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 40;" C UnderBarrelPlatformSF src/Dodge/Data/ComposedItem.hs 39;" C
UnderBarrelSlotLink src/Dodge/Data/ComposedItem.hs 30;" C UnderBarrelSlotLink src/Dodge/Data/ComposedItem.hs 29;" C
UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 39;" C UnderBarrelSlotSF src/Dodge/Data/ComposedItem.hs 38;" C
UnderGround src/Dodge/Data/Scenario.hs 78;" C UnderGround src/Dodge/Data/Scenario.hs 78;" C
UnderRoof src/Dodge/Data/Scenario.hs 79;" C UnderRoof src/Dodge/Data/Scenario.hs 79;" C
UnderSea src/Dodge/Data/Scenario.hs 77;" C UnderSea src/Dodge/Data/Scenario.hs 77;" C
@@ -2056,7 +2058,7 @@ UniRandFloat src/Dodge/Data/GenFloat.hs 12;" C
Unimportant src/Shape/Data.hs 37;" C Unimportant src/Shape/Data.hs 37;" C
Universe src/Dodge/Data/Universe.hs 31;" t Universe src/Dodge/Data/Universe.hs 31;" t
Universe src/Dodge/Data/Universe.hs 6;" m Universe src/Dodge/Data/Universe.hs 6;" m
UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 37;" C UnloadedWeaponSF src/Dodge/Data/ComposedItem.hs 36;" C
UnlockInv src/Dodge/Data/WorldEffect.hs 27;" C UnlockInv src/Dodge/Data/WorldEffect.hs 27;" C
UnusedLink src/Dodge/Data/Room.hs 65;" C UnusedLink src/Dodge/Data/Room.hs 65;" C
Update src/Dodge/Config/Update.hs 4;" m Update src/Dodge/Config/Update.hs 4;" m
@@ -2193,10 +2195,10 @@ WdWdBurstFireRepetition src/Dodge/Data/WorldEffect.hs 35;" C
WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 31;" C WdWdNegateTrig src/Dodge/Data/WorldEffect.hs 31;" C
WdYouPos src/Dodge/Data/WorldEffect.hs 41;" C WdYouPos src/Dodge/Data/WorldEffect.hs 41;" C
Weapon src/Dodge/Item/Weapon.hs 2;" m Weapon src/Dodge/Item/Weapon.hs 2;" m
WeaponScopeLink src/Dodge/Data/ComposedItem.hs 20;" C WeaponScopeLink src/Dodge/Data/ComposedItem.hs 19;" C
WeaponScopeSF src/Dodge/Data/ComposedItem.hs 43;" C WeaponScopeSF src/Dodge/Data/ComposedItem.hs 42;" C
WeaponTargetingLink src/Dodge/Data/ComposedItem.hs 21;" C WeaponTargetingLink src/Dodge/Data/ComposedItem.hs 20;" C
WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 44;" C WeaponTargetingSF src/Dodge/Data/ComposedItem.hs 43;" C
Weapons src/Dodge/Item/Held/Weapons.hs 1;" m Weapons src/Dodge/Item/Held/Weapons.hs 1;" m
West src/Dodge/Data/CardinalPoint.hs 7;" C West src/Dodge/Data/CardinalPoint.hs 7;" C
West8 src/Dodge/Data/CardinalPoint.hs 17;" C West8 src/Dodge/Data/CardinalPoint.hs 17;" C
@@ -2342,6 +2344,16 @@ _carriage src/Dodge/Data/Creature/Stance.hs 14;" f
_carteCenter src/Dodge/Data/HUD.hs 46;" f _carteCenter src/Dodge/Data/HUD.hs 46;" f
_carteRot src/Dodge/Data/HUD.hs 48;" f _carteRot src/Dodge/Data/HUD.hs 48;" f
_carteZoom src/Dodge/Data/HUD.hs 47;" f _carteZoom src/Dodge/Data/HUD.hs 47;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 86;" f
_cdtCloseLeft src/Dodge/Data/DoubleTree.hs 94;" f
_cdtCloseRight src/Dodge/Data/DoubleTree.hs 88;" f
_cdtCloseRight src/Dodge/Data/DoubleTree.hs 96;" f
_cdtFarLeft src/Dodge/Data/DoubleTree.hs 93;" f
_cdtFarRight src/Dodge/Data/DoubleTree.hs 89;" f
_cdtParent src/Dodge/Data/DoubleTree.hs 87;" f
_cdtParent src/Dodge/Data/DoubleTree.hs 95;" f
_cdtUp src/Dodge/Data/DoubleTree.hs 85;" f
_cdtUp src/Dodge/Data/DoubleTree.hs 92;" f
_ceSideEffect src/Dodge/Data/Universe.hs 66;" f _ceSideEffect src/Dodge/Data/Universe.hs 66;" f
_ceString src/Dodge/Data/Universe.hs 67;" f _ceString src/Dodge/Data/Universe.hs 67;" f
_ciFilter src/Dodge/Data/HUD.hs 39;" f _ciFilter src/Dodge/Data/HUD.hs 39;" f
@@ -2355,18 +2367,18 @@ _clTimer src/Dodge/Data/Cloud.hs 17;" f
_clType src/Dodge/Data/Cloud.hs 18;" f _clType src/Dodge/Data/Cloud.hs 18;" f
_clVel src/Dodge/Data/Cloud.hs 16;" f _clVel src/Dodge/Data/Cloud.hs 16;" f
_clZoning src/Dodge/Data/World.hs 48;" f _clZoning src/Dodge/Data/World.hs 48;" f
_cldtCloseLeft src/Dodge/Data/DoubleTree.hs 52;" f _cldtCloseLeft src/Dodge/Data/DoubleTree.hs 45;" f
_cldtCloseLeft src/Dodge/Data/DoubleTree.hs 61;" f _cldtCloseLeft src/Dodge/Data/DoubleTree.hs 54;" f
_cldtCloseRight src/Dodge/Data/DoubleTree.hs 55;" f _cldtCloseRight src/Dodge/Data/DoubleTree.hs 48;" f
_cldtCloseRight src/Dodge/Data/DoubleTree.hs 64;" f _cldtCloseRight src/Dodge/Data/DoubleTree.hs 57;" f
_cldtFarLeft src/Dodge/Data/DoubleTree.hs 60;" f _cldtFarLeft src/Dodge/Data/DoubleTree.hs 53;" f
_cldtFarRight src/Dodge/Data/DoubleTree.hs 56;" f _cldtFarRight src/Dodge/Data/DoubleTree.hs 49;" f
_cldtLink src/Dodge/Data/DoubleTree.hs 54;" f _cldtLink src/Dodge/Data/DoubleTree.hs 47;" f
_cldtLink src/Dodge/Data/DoubleTree.hs 63;" f _cldtLink src/Dodge/Data/DoubleTree.hs 56;" f
_cldtParent src/Dodge/Data/DoubleTree.hs 53;" f _cldtParent src/Dodge/Data/DoubleTree.hs 46;" f
_cldtParent src/Dodge/Data/DoubleTree.hs 62;" f _cldtParent src/Dodge/Data/DoubleTree.hs 55;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 51;" f _cldtUp src/Dodge/Data/DoubleTree.hs 44;" f
_cldtUp src/Dodge/Data/DoubleTree.hs 59;" f _cldtUp src/Dodge/Data/DoubleTree.hs 52;" f
_clickPos src/Dodge/Data/Input.hs 53;" f _clickPos src/Dodge/Data/Input.hs 53;" f
_clickWorldPos src/Dodge/Data/Input.hs 55;" f _clickWorldPos src/Dodge/Data/Input.hs 55;" f
_closeButtons src/Dodge/Data/HUD.hs 50;" f _closeButtons src/Dodge/Data/HUD.hs 50;" f
@@ -2676,9 +2688,9 @@ _lasers src/Dodge/Data/LWorld.hs 116;" f
_ldpPos src/Dodge/Data/SelectionList.hs 14;" f _ldpPos src/Dodge/Data/SelectionList.hs 14;" f
_ldpScale src/Dodge/Data/SelectionList.hs 15;" f _ldpScale src/Dodge/Data/SelectionList.hs 15;" f
_ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f _ldpVerticalGap src/Dodge/Data/SelectionList.hs 16;" f
_ldtLeft src/Dodge/Data/DoubleTree.hs 42;" f _ldtLeft src/Dodge/Data/DoubleTree.hs 35;" f
_ldtRight src/Dodge/Data/DoubleTree.hs 43;" f _ldtRight src/Dodge/Data/DoubleTree.hs 36;" f
_ldtValue src/Dodge/Data/DoubleTree.hs 41;" f _ldtValue src/Dodge/Data/DoubleTree.hs 34;" f
_leadTargetBy src/Dodge/Data/ActionPlan.hs 150;" f _leadTargetBy src/Dodge/Data/ActionPlan.hs 150;" f
_lightSources src/Dodge/Data/LWorld.hs 137;" f _lightSources src/Dodge/Data/LWorld.hs 137;" f
_lightingCapShader src/Data/Preload/Render.hs 16;" f _lightingCapShader src/Data/Preload/Render.hs 16;" f
@@ -2691,8 +2703,10 @@ _linearShockwaves src/Dodge/Data/LWorld.hs 117;" f
_linkGapEW src/Dodge/Data/Room.hs 35;" f _linkGapEW src/Dodge/Data/Room.hs 35;" f
_linkGapNS src/Dodge/Data/Room.hs 36;" f _linkGapNS src/Dodge/Data/Room.hs 36;" f
_loadedMusic src/Music.hs 8;" f _loadedMusic src/Music.hs 8;" f
_locLDT src/Dodge/Data/DoubleTree.hs 69;" f _locDT src/Dodge/Data/DoubleTree.hs 101;" f
_locLdtContext src/Dodge/Data/DoubleTree.hs 68;" f _locDtContext src/Dodge/Data/DoubleTree.hs 100;" f
_locLDT src/Dodge/Data/DoubleTree.hs 62;" f
_locLdtContext src/Dodge/Data/DoubleTree.hs 61;" f
_lpColor src/Dodge/Data/Laser.hs 25;" f _lpColor src/Dodge/Data/Laser.hs 25;" f
_lpDir src/Dodge/Data/Laser.hs 24;" f _lpDir src/Dodge/Data/Laser.hs 24;" f
_lpPhaseV src/Dodge/Data/Laser.hs 22;" f _lpPhaseV src/Dodge/Data/Laser.hs 22;" f
@@ -2703,9 +2717,6 @@ _lsID src/Dodge/Data/LightSource.hs 24;" f
_lsParam src/Dodge/Data/LightSource.hs 25;" f _lsParam src/Dodge/Data/LightSource.hs 25;" f
_lsPos src/Dodge/Data/LightSource.hs 17;" f _lsPos src/Dodge/Data/LightSource.hs 17;" f
_lsRad src/Dodge/Data/LightSource.hs 18;" f _lsRad src/Dodge/Data/LightSource.hs 18;" f
_luChildUpdate src/Dodge/Data/ComposedItem.hs 78;" f
_luLinkType src/Dodge/Data/ComposedItem.hs 76;" f
_luParentUpdate src/Dodge/Data/ComposedItem.hs 77;" f
_lwID src/Dodge/Data/LinearShockwave.hs 15;" f _lwID src/Dodge/Data/LinearShockwave.hs 15;" f
_lwPoints src/Dodge/Data/LinearShockwave.hs 16;" f _lwPoints src/Dodge/Data/LinearShockwave.hs 16;" f
_lwPos src/Dodge/Data/LinearShockwave.hs 14;" f _lwPos src/Dodge/Data/LinearShockwave.hs 14;" f
@@ -3024,7 +3035,7 @@ _sensorCoding src/Dodge/Data/GenParams.hs 16;" f
_sentinelDir src/Dodge/Data/ActionPlan.hs 199;" f _sentinelDir src/Dodge/Data/ActionPlan.hs 199;" f
_sentinelPos src/Dodge/Data/ActionPlan.hs 199;" f _sentinelPos src/Dodge/Data/ActionPlan.hs 199;" f
_sfColor src/Shape/Data.hs 44;" f _sfColor src/Shape/Data.hs 44;" f
_sfLink src/Dodge/Data/ComposedItem.hs 33;" f _sfLink src/Dodge/Data/ComposedItem.hs 32;" f
_sfShadowImportance src/Shape/Data.hs 45;" f _sfShadowImportance src/Shape/Data.hs 45;" f
_sfSize src/Shape/Data.hs 46;" f _sfSize src/Shape/Data.hs 46;" f
_sfType src/Shape/Data.hs 42;" f _sfType src/Shape/Data.hs 42;" f
@@ -3163,8 +3174,6 @@ _tractorBeams src/Dodge/Data/LWorld.hs 118;" f
_trieChildren src/SimpleTrie.hs 11;" f _trieChildren src/SimpleTrie.hs 11;" f
_trieMVal src/SimpleTrie.hs 10;" f _trieMVal src/SimpleTrie.hs 10;" f
_triggers src/Dodge/Data/LWorld.hs 128;" f _triggers src/Dodge/Data/LWorld.hs 128;" f
_tryLeftLink src/Dodge/Data/ComposedItem.hs 71;" f
_tryRightLink src/Dodge/Data/ComposedItem.hs 72;" f
_ttDeathEffect src/Dodge/Data/Terminal.hs 85;" f _ttDeathEffect src/Dodge/Data/Terminal.hs 85;" f
_ttTriggerID src/Dodge/Data/Terminal.hs 84;" f _ttTriggerID src/Dodge/Data/Terminal.hs 84;" f
_tuDir src/Dodge/Data/Machine.hs 61;" f _tuDir src/Dodge/Data/Machine.hs 61;" f
@@ -3352,12 +3361,12 @@ airlockDoor src/Dodge/Room/Airlock.hs 51;" f
airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f airlockDoubleDoor src/Dodge/Room/Airlock.hs 54;" f
airlockSimple src/Dodge/Room/Airlock.hs 66;" f airlockSimple src/Dodge/Room/Airlock.hs 66;" f
airlockZ src/Dodge/Room/Airlock.hs 91;" f airlockZ src/Dodge/Room/Airlock.hs 91;" f
allInvLocs src/Dodge/Item/Grammar.hs 326;" f allInvLocs src/Dodge/Item/Grammar.hs 253;" f
allVisibleWalls src/Dodge/Base/Collide.hs 132;" f allVisibleWalls src/Dodge/Base/Collide.hs 132;" f
alongSegBy src/Geometry.hs 40;" f alongSegBy src/Geometry.hs 40;" f
alteRifle src/Dodge/Item/Held/Cane.hs 22;" f alteRifle src/Dodge/Item/Held/Cane.hs 22;" f
ammoMagInfo src/Dodge/Item/Info.hs 48;" f ammoMagInfo src/Dodge/Item/Info.hs 48;" f
ammoMagSPic src/Dodge/Item/Draw/SPic.hs 125;" f ammoMagSPic src/Dodge/Item/Draw/SPic.hs 123;" f
amr src/Dodge/Item/Held/Rod.hs 34;" f amr src/Dodge/Item/Held/Rod.hs 34;" f
analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f analyser src/Dodge/Placement/Instance/Analyser.hs 12;" f
analyserByDoor src/Dodge/Room/LasTurret.hs 77;" f analyserByDoor src/Dodge/Room/LasTurret.hs 77;" f
@@ -3440,10 +3449,10 @@ azure src/Color.hs 22;" f
bQuadToF src/Geometry/Bezier.hs 37;" f bQuadToF src/Geometry/Bezier.hs 37;" f
bQuadToLine src/Geometry/Bezier.hs 30;" f bQuadToLine src/Geometry/Bezier.hs 30;" f
backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f backpackCombinations src/Dodge/Combine/Combinations.hs 27;" f
backpackShape src/Dodge/Item/Draw/SPic.hs 178;" f backpackShape src/Dodge/Item/Draw/SPic.hs 176;" f
backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f backspaceInputted src/Dodge/Update/Input/Text.hs 25;" f
bangCone src/Dodge/Item/Held/Cone.hs 11;" f bangCone src/Dodge/Item/Held/Cone.hs 11;" f
bangConeShape src/Dodge/Item/Draw/SPic.hs 293;" f bangConeShape src/Dodge/Item/Draw/SPic.hs 291;" f
bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 507;" f bangEchoS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 507;" f
bangRod src/Dodge/Item/Held/Rod.hs 18;" f bangRod src/Dodge/Item/Held/Rod.hs 18;" f
bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 655;" f bangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 655;" f
@@ -3451,18 +3460,18 @@ bangStick src/Dodge/Item/Held/Stick.hs 15;" f
barPP src/Dodge/Room/Foreground.hs 236;" f barPP src/Dodge/Room/Foreground.hs 236;" f
barrel src/Dodge/Creature/Inanimate.hs 17;" f barrel src/Dodge/Creature/Inanimate.hs 17;" f
barrelShape src/Dodge/Render/ShapePicture.hs 46;" f barrelShape src/Dodge/Render/ShapePicture.hs 46;" f
baseAMRShape src/Dodge/Item/Draw/SPic.hs 407;" f baseAMRShape src/Dodge/Item/Draw/SPic.hs 405;" f
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
baseCI src/Dodge/Item/Grammar.hs 186;" f baseCI src/Dodge/Item/Grammar.hs 159;" f
baseCaneShape src/Dodge/Item/Draw/SPic.hs 313;" f baseCaneShape src/Dodge/Item/Draw/SPic.hs 311;" f
baseDebris src/Dodge/Block/Debris.hs 122;" f baseDebris src/Dodge/Block/Debris.hs 122;" f
baseFloorTileSize src/Tile.hs 45;" f baseFloorTileSize src/Tile.hs 45;" f
baseRifleShape src/Dodge/Item/Draw/SPic.hs 316;" f baseRifleShape src/Dodge/Item/Draw/SPic.hs 314;" f
baseRodShape src/Dodge/Item/Draw/SPic.hs 404;" f baseRodShape src/Dodge/Item/Draw/SPic.hs 402;" f
baseSMGShape src/Dodge/Item/Draw/SPic.hs 384;" f baseSMGShape src/Dodge/Item/Draw/SPic.hs 382;" f
baseShoulder src/Dodge/Creature/Picture.hs 125;" f baseShoulder src/Dodge/Creature/Picture.hs 125;" f
baseStickShape src/Dodge/Item/Draw/SPic.hs 290;" f baseStickShape src/Dodge/Item/Draw/SPic.hs 288;" f
baseStickShapeX src/Dodge/Item/Draw/SPic.hs 283;" f baseStickShapeX src/Dodge/Item/Draw/SPic.hs 281;" f
baseStickSpread src/Dodge/HeldUse.hs 306;" f baseStickSpread src/Dodge/HeldUse.hs 306;" f
baseTriggerType src/Dodge/Item/TriggerType.hs 5;" f baseTriggerType src/Dodge/Item/TriggerType.hs 5;" f
basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f basicAttentionUpdate src/Dodge/Creature/Perception.hs 128;" f
@@ -3625,7 +3634,7 @@ clampPath src/Dodge/Room/Procedural.hs 166;" f
clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 549;" f clang1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 549;" f
clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f clang2S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 663;" f
clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 531;" f clangS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 531;" f
cldtPropagateFold src/Dodge/DoubleTree.hs 230;" f cldtPropagateFold src/Dodge/DoubleTree.hs 268;" f
cleanUpPreload src/Preload.hs 10;" f cleanUpPreload src/Preload.hs 10;" f
cleanUpRenderPreload src/Preload/Render.hs 217;" f cleanUpRenderPreload src/Preload/Render.hs 217;" f
cleanUpSoundPreload src/Preload.hs 15;" f cleanUpSoundPreload src/Preload.hs 15;" f
@@ -3757,7 +3766,7 @@ crVocalizationSound src/Dodge/Creature/Vocalization.hs 13;" f
crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f crWarningSounds src/Dodge/Creature/Vocalization.hs 23;" f
crZoneSize src/Dodge/Zoning/Creature.hs 41;" f crZoneSize src/Dodge/Zoning/Creature.hs 41;" f
craftInfo src/Dodge/Item/Info.hs 168;" f craftInfo src/Dodge/Item/Info.hs 168;" f
craftItemSPic src/Dodge/Item/Draw/SPic.hs 57;" f craftItemSPic src/Dodge/Item/Draw/SPic.hs 55;" f
crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 579;" f crankSlowS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 579;" f
createArc src/Dodge/Tesla/Arc.hs 81;" f createArc src/Dodge/Tesla/Arc.hs 81;" f
createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f createFlIt src/Dodge/Placement/PlaceSpot.hs 180;" f
@@ -3768,8 +3777,8 @@ createItemYou src/Dodge/Inventory/Add.hs 95;" f
createLightMap src/Render.hs 26;" f createLightMap src/Render.hs 26;" f
createNewArc src/Dodge/Tesla/Arc.hs 90;" f createNewArc src/Dodge/Tesla/Arc.hs 90;" f
createPathGrid src/Dodge/Room/Path.hs 21;" f createPathGrid src/Dodge/Room/Path.hs 21;" f
createProjectile src/Dodge/HeldUse.hs 1320;" f createProjectile src/Dodge/HeldUse.hs 1317;" f
createProjectileR src/Dodge/HeldUse.hs 1285;" f createProjectileR src/Dodge/HeldUse.hs 1282;" f
createShell src/Dodge/Projectile/Create.hs 23;" f createShell src/Dodge/Projectile/Create.hs 23;" f
createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f createShieldWall src/Dodge/Item/BackgroundEffect.hs 39;" f
createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f createUnusedLinkPos src/Dodge/Tree/Shift.hs 117;" f
@@ -3881,7 +3890,7 @@ dededumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 615;" f
dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 435;" f dedumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 435;" f
defDamageMaterial src/Dodge/Material/Damage.hs 22;" f defDamageMaterial src/Dodge/Material/Damage.hs 22;" f
defLSPic src/Dodge/LightSource/Draw.hs 10;" f defLSPic src/Dodge/LightSource/Draw.hs 10;" f
defSPic src/Dodge/Item/Draw/SPic.hs 299;" f defSPic src/Dodge/Item/Draw/SPic.hs 297;" f
defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f defaultAimMvType src/Dodge/Creature/MoveType.hs 16;" f
defaultAimingCrit src/Dodge/Default/Creature.hs 105;" f defaultAimingCrit src/Dodge/Default/Creature.hs 105;" f
defaultArcStep src/Dodge/Tesla/Arc.hs 140;" f defaultArcStep src/Dodge/Tesla/Arc.hs 140;" f
@@ -3961,7 +3970,7 @@ destroyMounts src/Dodge/Block.hs 97;" f
destroyProjectile src/Dodge/Projectile/Update.hs 139;" f destroyProjectile src/Dodge/Projectile/Update.hs 139;" f
detV src/Geometry/Vector.hs 93;" f detV src/Geometry/Vector.hs 93;" f
detector src/Dodge/Item/Held/Utility.hs 27;" f detector src/Dodge/Item/Held/Utility.hs 27;" f
detectorColor src/Dodge/Item/Draw/SPic.hs 453;" f detectorColor src/Dodge/Item/Draw/SPic.hs 451;" f
detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f detectorEffect src/Dodge/Item/Weapon/Radar.hs 20;" f
detectorInfo src/Dodge/Item/Info.hs 224;" f detectorInfo src/Dodge/Item/Info.hs 224;" f
determineProjectileTracking src/Dodge/HeldUse.hs 1268;" f determineProjectileTracking src/Dodge/HeldUse.hs 1268;" f
@@ -4092,7 +4101,7 @@ doubleCorridorBarrels src/Dodge/Room/Room.hs 265;" f
doubleLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 28;" f doubleLampCover src/Dodge/Placement/Instance/LightSource/Cover.hs 28;" f
doublePair src/Geometry.hs 161;" f doublePair src/Geometry.hs 161;" f
doublePairSet src/Geometry.hs 165;" f doublePairSet src/Geometry.hs 165;" f
doubleTreeToIndentList src/Dodge/DoubleTree.hs 72;" f doubleTreeToIndentList src/Dodge/DoubleTree.hs 80;" f
doubleV2 src/Geometry.hs 168;" f doubleV2 src/Geometry.hs 168;" f
drawARHUD src/Dodge/Creature/State.hs 319;" f drawARHUD src/Dodge/Creature/State.hs 319;" f
drawAimSweep src/Dodge/Render/Picture.hs 271;" f drawAimSweep src/Dodge/Render/Picture.hs 271;" f
@@ -4223,7 +4232,7 @@ drawZoneNearPointCursor src/Dodge/Debug/Picture.hs 279;" f
droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f droneLauncher src/Dodge/Item/Weapon/Drone.hs 11;" f
dropAll src/Dodge/Creature/State.hs 126;" f dropAll src/Dodge/Creature/State.hs 126;" f
dropExcept src/Dodge/Creature/Action.hs 166;" f dropExcept src/Dodge/Creature/Action.hs 166;" f
dropInventoryPath src/Dodge/HeldUse.hs 1399;" f dropInventoryPath src/Dodge/HeldUse.hs 1396;" f
dropItem src/Dodge/Creature/Action.hs 172;" f dropItem src/Dodge/Creature/Action.hs 172;" f
dropper src/Dodge/Item/Scope.hs 76;" f dropper src/Dodge/Item/Scope.hs 76;" f
drumMag src/Dodge/Item/Ammo.hs 33;" f drumMag src/Dodge/Item/Ammo.hs 33;" f
@@ -4232,15 +4241,15 @@ dssNearCirc src/Dodge/Zoning/Cloud.hs 39;" f
dssNearPoint src/Dodge/Zoning/Cloud.hs 30;" f dssNearPoint src/Dodge/Zoning/Cloud.hs 30;" f
dssNearRect src/Dodge/Zoning/Cloud.hs 36;" f dssNearRect src/Dodge/Zoning/Cloud.hs 36;" f
dssNearSeg src/Dodge/Zoning/Cloud.hs 33;" f dssNearSeg src/Dodge/Zoning/Cloud.hs 33;" f
dtIL src/Dodge/DoubleTree.hs 75;" f dtIL src/Dodge/DoubleTree.hs 83;" f
dtToAdjRootParent src/Dodge/DoubleTree.hs 126;" f dtToAdjRootParent src/Dodge/DoubleTree.hs 146;" f
dtToAdjRootParentEither src/Dodge/DoubleTree.hs 132;" f dtToAdjRootParentEither src/Dodge/DoubleTree.hs 154;" f
dtToAdjacency src/Dodge/DoubleTree.hs 82;" f dtToAdjacency src/Dodge/DoubleTree.hs 91;" f
dtToIntMapWithRoot src/Dodge/DoubleTree.hs 88;" f dtToIntMapWithRoot src/Dodge/DoubleTree.hs 99;" f
dtToLRAdj src/Dodge/DoubleTree.hs 104;" f dtToLRAdj src/Dodge/DoubleTree.hs 119;" f
dtToLRAdjEither src/Dodge/DoubleTree.hs 114;" f dtToLRAdjEither src/Dodge/DoubleTree.hs 131;" f
dtToRootIntMap' src/Dodge/DoubleTree.hs 92;" f dtToRootIntMap' src/Dodge/DoubleTree.hs 104;" f
dtToUpDownAdj src/Dodge/DoubleTree.hs 96;" f dtToUpDownAdj src/Dodge/DoubleTree.hs 109;" f
dummyMenuOption src/Dodge/Menu/Option.hs 74;" f dummyMenuOption src/Dodge/Menu/Option.hs 74;" f
dustColor src/Shader/Poke/Cloud.hs 71;" f dustColor src/Shader/Poke/Cloud.hs 71;" f
dustSpringVel src/Dodge/Update.hs 796;" f dustSpringVel src/Dodge/Update.hs 796;" f
@@ -4277,7 +4286,7 @@ equipAllocString src/Dodge/Render/HUD.hs 308;" f
equipAttachPos src/Dodge/Item/Draw.hs 30;" f equipAttachPos src/Dodge/Item/Draw.hs 30;" f
equipBackgroundEffect src/Dodge/Euse.hs 15;" f equipBackgroundEffect src/Dodge/Euse.hs 15;" f
equipInfo src/Dodge/Item/Info.hs 140;" f equipInfo src/Dodge/Item/Info.hs 140;" f
equipItemSPic src/Dodge/Item/Draw/SPic.hs 149;" f equipItemSPic src/Dodge/Item/Draw/SPic.hs 147;" f
equipPosition src/Dodge/Item/Draw.hs 38;" f equipPosition src/Dodge/Item/Draw.hs 38;" f
equipSiteInfo src/Dodge/Item/Info.hs 253;" f equipSiteInfo src/Dodge/Item/Info.hs 253;" f
equipType src/Dodge/Data/EquipType.hs 10;" f equipType src/Dodge/Data/EquipType.hs 10;" f
@@ -4305,8 +4314,8 @@ extTrigLitPos src/Dodge/Placement/Instance/Button.hs 84;" f
extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f extendAway src/Dodge/Placement/Instance/LightSource.hs 200;" f
extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f extendConeToScreenEdge src/Dodge/Debug/Picture.hs 82;" f
extraPics src/Dodge/Render/ShapePicture.hs 73;" f extraPics src/Dodge/Render/ShapePicture.hs 73;" f
extraWeaponLinks src/Dodge/Item/Grammar.hs 119;" f extraWeaponLinks src/Dodge/Item/Grammar.hs 94;" f
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 128;" f extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 103;" f
extractRoomPos src/Dodge/RoomPos.hs 6;" f extractRoomPos src/Dodge/RoomPos.hs 6;" f
faceEdges src/Polyhedra.hs 65;" f faceEdges src/Polyhedra.hs 65;" f
facesToVF src/Polyhedra/Geodesic.hs 69;" f facesToVF src/Polyhedra/Geodesic.hs 69;" f
@@ -4345,12 +4354,12 @@ flameSpitter src/Dodge/Item/Held/SprayGuns.hs 23;" f
flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f flameThrower src/Dodge/Item/Held/SprayGuns.hs 64;" f
flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f flameTorrent src/Dodge/Item/Held/SprayGuns.hs 32;" f
flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f flameWall src/Dodge/Item/Held/SprayGuns.hs 48;" f
flamerPic src/Dodge/Item/Draw/SPic.hs 387;" f flamerPic src/Dodge/Item/Draw/SPic.hs 385;" f
flareCircleAt src/Dodge/HeldUse.hs 739;" f flareCircleAt src/Dodge/HeldUse.hs 739;" f
flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f flatItemCombinations src/Dodge/Combine/Combinations.hs 51;" f
flatLookupItems src/Dodge/Combine.hs 39;" f flatLookupItems src/Dodge/Combine.hs 39;" f
flatShield src/Dodge/Item/Held/Utility.hs 17;" f flatShield src/Dodge/Item/Held/Utility.hs 17;" f
flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 440;" f flatShieldEquipSPic src/Dodge/Item/Draw/SPic.hs 438;" f
fleeFrom src/Dodge/CreatureEffect.hs 120;" f fleeFrom src/Dodge/CreatureEffect.hs 120;" f
fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f fleeFromTarget src/Dodge/CreatureEffect.hs 66;" f
flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f flickerMod src/Dodge/Placement/Instance/LightSource/Flicker.hs 10;" f
@@ -4385,7 +4394,7 @@ forceFoldable src/StrictHelp.hs 7;" f
forceSpine src/StrictHelp.hs 4;" f forceSpine src/StrictHelp.hs 4;" f
fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f fourEmbossDecoration src/Dodge/Placement/TopDecoration.hs 29;" f
fpsText src/Dodge/Render/Picture.hs 53;" f fpsText src/Dodge/Render/Picture.hs 53;" f
fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 138;" f fractionLoadedAmmo src/Dodge/Item/Draw/SPic.hs 136;" f
frag src/Shader/Data.hs 102;" f frag src/Shader/Data.hs 102;" f
freeShaderPointers' src/Shader.hs 37;" f freeShaderPointers' src/Shader.hs 37;" f
fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 491;" f fridgeHumS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 491;" f
@@ -4425,11 +4434,11 @@ geometryTests test/Spec.hs 17;" f
geometryUnitTests test/Spec.hs 22;" f geometryUnitTests test/Spec.hs 22;" f
geqConstr src/SameConstr.hs 21;" f geqConstr src/SameConstr.hs 21;" f
getAimZoom src/Dodge/Update/Camera.hs 135;" f getAimZoom src/Dodge/Update/Camera.hs 135;" f
getAmmoLinks src/Dodge/Item/Grammar.hs 135;" f getAmmoLinks src/Dodge/Item/Grammar.hs 110;" f
getArguments src/Dodge/Update/Scroll.hs 178;" f getArguments src/Dodge/Update/Scroll.hs 178;" f
getArguments' src/Dodge/Update/Scroll.hs 166;" f getArguments' src/Dodge/Update/Scroll.hs 166;" f
getAttachedSFLink src/Dodge/HeldUse.hs 809;" f getAttachedSFLink src/Dodge/HeldUse.hs 809;" f
getAutoSpringLinks src/Dodge/Item/Grammar.hs 114;" f getAutoSpringLinks src/Dodge/Item/Grammar.hs 89;" f
getAvailableListLines src/Dodge/SelectionList.hs 10;" f getAvailableListLines src/Dodge/SelectionList.hs 10;" f
getBulHitDams src/Dodge/Bullet.hs 171;" f getBulHitDams src/Dodge/Bullet.hs 171;" f
getBulletType src/Dodge/HeldUse.hs 928;" f getBulletType src/Dodge/HeldUse.hs 928;" f
@@ -4440,7 +4449,7 @@ getCrMoveSpeed src/Dodge/Creature/Statistics.hs 45;" f
getDamageCoding src/Dodge/Terminal.hs 177;" f getDamageCoding src/Dodge/Terminal.hs 177;" f
getDistortions src/Dodge/Render.hs 411;" f getDistortions src/Dodge/Render.hs 411;" f
getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f getEquipmentAllocation src/Dodge/Inventory/RBList.hs 47;" f
getGrenadeHitEffect src/Dodge/HeldUse.hs 1313;" f getGrenadeHitEffect src/Dodge/HeldUse.hs 1310;" f
getInventoryPath src/Dodge/Inventory/Path.hs 8;" f getInventoryPath src/Dodge/Inventory/Path.hs 8;" f
getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f getItemValue src/Dodge/Inventory/SelectionList.hs 143;" f
getLaserColor src/Dodge/HeldUse.hs 755;" f getLaserColor src/Dodge/HeldUse.hs 755;" f
@@ -4450,7 +4459,7 @@ getLinksOfType src/Dodge/RoomLink.hs 39;" f
getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f getMaxLinesTM src/Dodge/Terminal/Type.hs 11;" f
getMenuMouseContext src/Dodge/Update.hs 392;" f getMenuMouseContext src/Dodge/Update.hs 392;" f
getNodePos src/Dodge/Path.hs 31;" f getNodePos src/Dodge/Path.hs 31;" f
getPJStabiliser src/Dodge/HeldUse.hs 1305;" f getPJStabiliser src/Dodge/HeldUse.hs 1302;" f
getPretty src/AesonHelp.hs 8;" f getPretty src/AesonHelp.hs 8;" f
getPromptTM src/Dodge/Terminal/Type.hs 8;" f getPromptTM src/Dodge/Terminal/Type.hs 8;" f
getRootItemBounds src/Dodge/Render/HUD.hs 95;" f getRootItemBounds src/Dodge/Render/HUD.hs 95;" f
@@ -4479,7 +4488,7 @@ glassShat4S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 599;" f
glassSwitchBack src/Dodge/Room/Room.hs 70;" f glassSwitchBack src/Dodge/Room/Room.hs 70;" f
glassSwitchBackCrits src/Dodge/Room/Room.hs 99;" f glassSwitchBackCrits src/Dodge/Room/Room.hs 99;" f
glassWallDamage src/Dodge/Wall/DamageEffect.hs 49;" f glassWallDamage src/Dodge/Wall/DamageEffect.hs 49;" f
glauncherPic src/Dodge/Item/Draw/SPic.hs 393;" f glauncherPic src/Dodge/Item/Draw/SPic.hs 391;" f
glushortSize src/Shader/Parameters.hs 25;" f glushortSize src/Shader/Parameters.hs 25;" f
goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f goToPostStrat src/Dodge/Creature/Strategy.hs 10;" f
goToTarget src/Dodge/Creature/ReaderUpdate.hs 138;" f goToTarget src/Dodge/Creature/ReaderUpdate.hs 138;" f
@@ -4530,8 +4539,8 @@ hasLOSIndirect src/Dodge/Base/Collide.hs 219;" f
hat src/Dodge/Item/Equipment.hs 76;" f hat src/Dodge/Item/Equipment.hs 76;" f
head src/DoubleStack.hs 14;" f head src/DoubleStack.hs 14;" f
headLamp src/Dodge/Item/Equipment.hs 79;" f headLamp src/Dodge/Item/Equipment.hs 79;" f
headLampShape src/Dodge/Item/Draw/SPic.hs 443;" f headLampShape src/Dodge/Item/Draw/SPic.hs 441;" f
headMap src/Dodge/DoubleTree.hs 170;" f headMap src/Dodge/DoubleTree.hs 199;" f
heal src/Dodge/Item/Consumable.hs 17;" f heal src/Dodge/Item/Consumable.hs 17;" f
heal25 src/Dodge/Item/Consumable.hs 14;" f heal25 src/Dodge/Item/Consumable.hs 14;" f
healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 483;" f healS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 483;" f
@@ -4554,7 +4563,7 @@ heldItemOffset src/Dodge/Item/HeldOffset.hs 72;" f
heldItemOrient2D src/Dodge/Item/HeldOffset.hs 29;" f heldItemOrient2D src/Dodge/Item/HeldOffset.hs 29;" f
heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 34;" f heldItemRelativeOrient src/Dodge/Item/HeldOffset.hs 34;" f
heldItemRifling src/Dodge/HeldUse.hs 1112;" f heldItemRifling src/Dodge/HeldUse.hs 1112;" f
heldItemSPic src/Dodge/Item/Draw/SPic.hs 225;" f heldItemSPic src/Dodge/Item/Draw/SPic.hs 223;" f
heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f heldItemWeight src/Dodge/Creature/Statistics.hs 71;" f
heldPositionInfo src/Dodge/Item/Info.hs 240;" f heldPositionInfo src/Dodge/Item/Info.hs 240;" f
heldTorqueAmount src/Dodge/HeldUse.hs 634;" f heldTorqueAmount src/Dodge/HeldUse.hs 634;" f
@@ -4581,7 +4590,7 @@ humanoidAIList src/Dodge/Humanoid.hs 182;" f
iShape src/Dodge/Placement/Instance/LightSource.hs 73;" f iShape src/Dodge/Placement/Instance/LightSource.hs 73;" f
icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f icosahedronPoints src/Polyhedra/Geodesic.hs 12;" f
icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f icosohedronFaces src/Polyhedra/Geodesic.hs 19;" f
ildtPropagate src/Dodge/DoubleTree.hs 57;" f ildtPropagate src/Dodge/DoubleTree.hs 62;" f
impulsiveAIBefore src/Dodge/Creature/Impulse.hs 23;" f impulsiveAIBefore src/Dodge/Creature/Impulse.hs 23;" f
inLink src/Dodge/RoomLink.hs 113;" f inLink src/Dodge/RoomLink.hs 113;" f
inSegArea src/Geometry/Intersect.hs 298;" f inSegArea src/Geometry/Intersect.hs 298;" f
@@ -4646,16 +4655,16 @@ interweave src/Justify.hs 17;" f
introScan src/Dodge/Item/Scope.hs 57;" f introScan src/Dodge/Item/Scope.hs 57;" f
introScanValue src/Dodge/Inventory/SelectionList.hs 79;" f introScanValue src/Dodge/Inventory/SelectionList.hs 79;" 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 307;" f invAdj src/Dodge/Item/Grammar.hs 236;" f
invCursorParams src/Dodge/ListDisplayParams.hs 36;" f invCursorParams src/Dodge/ListDisplayParams.hs 36;" f
invDP src/Dodge/ListDisplayParams.hs 30;" f invDP src/Dodge/ListDisplayParams.hs 30;" f
invDimColor src/Dodge/DisplayInventory.hs 192;" f invDimColor src/Dodge/DisplayInventory.hs 192;" f
invHead src/Dodge/Render/HUD.hs 405;" f invHead src/Dodge/Render/HUD.hs 405;" f
invItemLocUpdate src/Dodge/Creature/State.hs 154;" f invItemLocUpdate src/Dodge/Creature/State.hs 154;" f
invLDT src/Dodge/Item/Grammar.hs 287;" f invLDT src/Dodge/Item/Grammar.hs 216;" f
invRootItemEffs src/Dodge/Creature/State.hs 147;" f invRootItemEffs src/Dodge/Creature/State.hs 147;" f
invRootMap src/Dodge/Item/Grammar.hs 296;" f invRootMap src/Dodge/Item/Grammar.hs 225;" f
invRootTrees src/Dodge/Item/Grammar.hs 317;" f invRootTrees src/Dodge/Item/Grammar.hs 246;" f
invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f invSelectionItem src/Dodge/Inventory/SelectionList.hs 32;" f
invSetSelection src/Dodge/Inventory.hs 185;" f invSetSelection src/Dodge/Inventory.hs 185;" f
invSetSelectionPos src/Dodge/Inventory.hs 193;" f invSetSelectionPos src/Dodge/Inventory.hs 193;" f
@@ -4703,7 +4712,6 @@ itEffectOnPickup src/Dodge/Item/BackgroundEffect.hs 64;" f
itInvHeight src/Dodge/Item/InvSize.hs 11;" f itInvHeight src/Dodge/Item/InvSize.hs 11;" f
itUseCondition src/Dodge/ItemUseCondition.hs 6;" f itUseCondition src/Dodge/ItemUseCondition.hs 6;" f
itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 12;" f itemAmmoSlots src/Dodge/Item/AmmoSlots.hs 12;" f
itemBaseConnections src/Dodge/Item/Grammar.hs 190;" f
itemBaseName src/Dodge/Item/Display.hs 59;" f itemBaseName src/Dodge/Item/Display.hs 59;" f
itemBaseStance src/Dodge/Item/AimStance.hs 17;" f itemBaseStance src/Dodge/Item/AimStance.hs 17;" f
itemBlips src/Dodge/RadarSweep.hs 93;" f itemBlips src/Dodge/RadarSweep.hs 93;" f
@@ -4726,16 +4734,16 @@ itemInvLock src/Dodge/HeldUse.hs 486;" f
itemMuzzles src/Dodge/HeldUse.hs 158;" f itemMuzzles src/Dodge/HeldUse.hs 158;" f
itemRandomOffset src/Dodge/HeldUse.hs 1005;" f itemRandomOffset src/Dodge/HeldUse.hs 1005;" f
itemRooms src/Dodge/LockAndKey.hs 39;" f itemRooms src/Dodge/LockAndKey.hs 39;" f
itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 29;" f itemRotTreeSPic src/Dodge/Item/Draw/SPic.hs 27;" f
itemSPic src/Dodge/Item/Draw/SPic.hs 35;" f itemSPic src/Dodge/Item/Draw/SPic.hs 33;" f
itemScan src/Dodge/Item/Scope.hs 63;" f itemScan src/Dodge/Item/Scope.hs 63;" f
itemScroll src/Dodge/Update/Scroll.hs 52;" f itemScroll src/Dodge/Update/Scroll.hs 52;" f
itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 120;" f itemScrollDisplay src/Dodge/Inventory/SelectionList.hs 120;" f
itemScrollValue src/Dodge/Inventory/SelectionList.hs 147;" f itemScrollValue src/Dodge/Inventory/SelectionList.hs 147;" f
itemSidePush src/Dodge/HeldUse.hs 432;" f itemSidePush src/Dodge/HeldUse.hs 432;" f
itemString src/Dodge/Item/Display.hs 55;" f itemString src/Dodge/Item/Display.hs 55;" f
itemToBreakLists src/Dodge/Item/Grammar.hs 59;" f itemToBreakLists src/Dodge/Item/Grammar.hs 34;" f
itemToFunction src/Dodge/Item/Grammar.hs 141;" f itemToFunction src/Dodge/Item/Grammar.hs 116;" f
itemTreeSPic src/Dodge/Item/Draw/SPic.hs 24;" f itemTreeSPic src/Dodge/Item/Draw/SPic.hs 24;" f
itemTriggerType src/Dodge/BaseTriggerType.hs 12;" f itemTriggerType src/Dodge/BaseTriggerType.hs 12;" f
itemWeight src/Dodge/Creature/Statistics.hs 66;" f itemWeight src/Dodge/Creature/Statistics.hs 66;" f
@@ -4747,7 +4755,7 @@ itmSpaceInfo src/Dodge/Item/Info.hs 25;" f
itmUsageInfo src/Dodge/Item/Info.hs 230;" f itmUsageInfo src/Dodge/Item/Info.hs 230;" f
jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f jShape src/Dodge/Placement/Instance/LightSource.hs 85;" f
jaggedShape src/Dodge/Block/Debris.hs 191;" f jaggedShape src/Dodge/Block/Debris.hs 191;" f
joinItemsInList src/Dodge/Item/Grammar.hs 277;" f joinItemsInList src/Dodge/Item/Grammar.hs 206;" f
joystick src/Dodge/Item/Scope.hs 149;" f joystick src/Dodge/Item/Scope.hs 149;" f
jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f
jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f jps0PushPS src/Dodge/LevelGen/PlacementHelper.hs 63;" f
@@ -4763,7 +4771,7 @@ keyCard src/Dodge/Item/Held/Utility.hs 20;" f
keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 71;" f keyCardAnalyserByDoor src/Dodge/Room/LasTurret.hs 71;" f
keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 59;" f keyCardRoomRunPast src/Dodge/Room/LasTurret.hs 59;" f
keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f keyCardRunPastRand src/Dodge/LockAndKey.hs 36;" f
keyPic src/Dodge/Item/Draw/SPic.hs 459;" f keyPic src/Dodge/Item/Draw/SPic.hs 457;" f
keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f keyholeCorridor src/Dodge/Room/Corridor.hs 39;" f
knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 625;" f knifeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 625;" f
lConnect src/Dodge/Render/Connectors.hs 42;" f lConnect src/Dodge/Render/Connectors.hs 42;" f
@@ -4775,32 +4783,31 @@ lampCoverWhen src/Dodge/Placement/Instance/LightSource/Cover.hs 19;" f
lampCrSPic src/Dodge/Render/ShapePicture.hs 51;" f lampCrSPic src/Dodge/Render/ShapePicture.hs 51;" f
lasCenSensEdge src/Dodge/Room/LasTurret.hs 114;" f lasCenSensEdge src/Dodge/Room/LasTurret.hs 114;" f
lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f lasDronesPic src/Dodge/Item/Weapon/Drone.hs 22;" f
lasGunPic src/Dodge/Item/Draw/SPic.hs 413;" f lasGunPic src/Dodge/Item/Draw/SPic.hs 411;" f
lasSensorTurretTest src/Dodge/Room/LasTurret.hs 107;" f lasSensorTurretTest src/Dodge/Room/LasTurret.hs 107;" f
lasTunnel src/Dodge/Room/LasTurret.hs 126;" f lasTunnel src/Dodge/Room/LasTurret.hs 126;" f
lasTunnelRunPast src/Dodge/Room/LasTurret.hs 167;" f lasTunnelRunPast src/Dodge/Room/LasTurret.hs 167;" f
lasTurret src/Dodge/Placement/Instance/Turret.hs 38;" f lasTurret src/Dodge/Placement/Instance/Turret.hs 38;" f
laser src/Dodge/Item/Held/BatteryGuns.hs 41;" f laser src/Dodge/Item/Held/BatteryGuns.hs 41;" f
laserLinkTest src/Dodge/Item/Grammar.hs 196;" f lastMap src/Dodge/DoubleTree.hs 203;" f
lastMap src/Dodge/DoubleTree.hs 174;" f
launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f launcherCrit src/Dodge/Creature/LauncherCrit.hs 12;" f
layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f layoutLevelFromSeed src/Dodge/LevelGen.hs 47;" f
ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 74;" f ldpVerticalSelection src/Dodge/Update/Input/ScreenLayer.hs 74;" f
ldtIL src/Dodge/DoubleTree.hs 149;" f ldtIL src/Dodge/DoubleTree.hs 175;" f
ldtPropagate src/Dodge/DoubleTree.hs 20;" f ldtPropagate src/Dodge/DoubleTree.hs 20;" f
ldtPropagateFold src/Dodge/DoubleTree.hs 29;" f ldtPropagateFold src/Dodge/DoubleTree.hs 32;" f
ldtPropagateFoldTree src/Dodge/DoubleTree.hs 45;" f ldtPropagateFoldTree src/Dodge/DoubleTree.hs 49;" f
ldtPropagateIndices src/Dodge/DoubleTree.hs 64;" f ldtPropagateIndices src/Dodge/DoubleTree.hs 72;" f
ldtToDT src/Dodge/DoubleTree.hs 15;" f ldtToDT src/Dodge/DoubleTree.hs 15;" f
ldtToIM src/Dodge/DoubleTree.hs 143;" f ldtToIM src/Dodge/DoubleTree.hs 169;" f
ldtToIndentList src/Dodge/DoubleTree.hs 146;" f ldtToIndentList src/Dodge/DoubleTree.hs 172;" f
ldtToLoc src/Dodge/DoubleTree.hs 187;" f ldtToLoc src/Dodge/DoubleTree.hs 218;" f
left src/DoubleStack.hs 16;" f left src/DoubleStack.hs 16;" f
leftChildList src/Dodge/Item/Grammar.hs 251;" f leftChildList src/Dodge/Item/Grammar.hs 180;" f
leftIsParentCombine src/Dodge/Item/Grammar.hs 235;" f leftIsParentCombine src/Dodge/Item/Grammar.hs 164;" f
leftPad src/Padding.hs 15;" f leftPad src/Padding.hs 15;" f
leftRightCombine src/Dodge/Item/Grammar.hs 263;" f leftRightCombine src/Dodge/Item/Grammar.hs 192;" f
legsSPic src/Dodge/Item/Draw/SPic.hs 477;" f legsSPic src/Dodge/Item/Draw/SPic.hs 475;" f
liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f liShape src/Dodge/Placement/Instance/LightSource.hs 98;" f
light src/Color.hs 104;" f light src/Color.hs 104;" f
lightSensByDoor src/Dodge/Room/LasTurret.hs 46;" f lightSensByDoor src/Dodge/Room/LasTurret.hs 46;" f
@@ -4827,8 +4834,6 @@ listCursorChooseBorderScale src/Dodge/Render/List.hs 135;" f
listGuard src/Dodge/Creature/ReaderUpdate.hs 190;" f listGuard src/Dodge/Creature/ReaderUpdate.hs 190;" f
listSelectionColorPicture src/Dodge/DisplayInventory.hs 308;" f listSelectionColorPicture src/Dodge/DisplayInventory.hs 308;" f
litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f litCorridor90 src/Dodge/Room/RoadBlock.hs 26;" f
llleft src/Dodge/Item/Grammar.hs 199;" f
llright src/Dodge/Item/Grammar.hs 205;" f
lmt src/MatrixHelper.hs 43;" f lmt src/MatrixHelper.hs 43;" f
lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f lnkBothAnd src/Dodge/Room/Procedural.hs 121;" f
lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 394;" f lnkMidPosInvSelsCol src/Dodge/Render/HUD.hs 394;" f
@@ -4843,13 +4848,13 @@ loadSounds src/Dodge/SoundLogic/LoadSound.hs 18;" f
loadingScreen src/Dodge/Concurrent.hs 56;" f loadingScreen src/Dodge/Concurrent.hs 56;" f
loadingScreen src/Dodge/Menu/Loading.hs 8;" f loadingScreen src/Dodge/Menu/Loading.hs 8;" f
loadme src/Dodge/Debug/Terminal.hs 139;" f loadme src/Dodge/Debug/Terminal.hs 139;" f
locGoHelp src/Dodge/DoubleTree.hs 220;" f locGoHelp src/Dodge/DoubleTree.hs 258;" f
locGoLeft src/Dodge/DoubleTree.hs 209;" f locGoLeft src/Dodge/DoubleTree.hs 247;" f
locGoRight src/Dodge/DoubleTree.hs 214;" f locGoRight src/Dodge/DoubleTree.hs 252;" f
locLeftmost src/Dodge/DoubleTree.hs 202;" f locLeftmost src/Dodge/DoubleTree.hs 240;" f
locRightmost src/Dodge/DoubleTree.hs 205;" f locRightmost src/Dodge/DoubleTree.hs 243;" f
locToTop src/Dodge/DoubleTree.hs 198;" f locToTop src/Dodge/DoubleTree.hs 235;" f
locUp src/Dodge/DoubleTree.hs 191;" f locUp src/Dodge/DoubleTree.hs 222;" f
lockInv src/Dodge/Inventory/Lock.hs 9;" f lockInv src/Dodge/Inventory/Lock.hs 9;" f
lockInvFor src/Dodge/Item/Weapon/TriggerType.hs 50;" f lockInvFor src/Dodge/Item/Weapon/TriggerType.hs 50;" f
lockRoomKeyItems src/Dodge/LockAndKey.hs 25;" f lockRoomKeyItems src/Dodge/LockAndKey.hs 25;" f
@@ -5021,8 +5026,8 @@ minOn src/FoldableHelp.hs 35;" f
mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 443;" f mini1S src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 443;" f
miniGunCrit src/Dodge/Creature.hs 64;" f miniGunCrit src/Dodge/Creature.hs 64;" f
miniGunX src/Dodge/Item/Held/Cane.hs 33;" f miniGunX src/Dodge/Item/Held/Cane.hs 33;" f
miniGunXPict src/Dodge/Item/Draw/SPic.hs 365;" f miniGunXPict src/Dodge/Item/Draw/SPic.hs 363;" f
miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 359;" f miniGunXPictItem src/Dodge/Item/Draw/SPic.hs 357;" f
miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 701;" f miniS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 701;" f
miniTree2 src/Dodge/Room/Room.hs 106;" f miniTree2 src/Dodge/Room/Room.hs 106;" f
minimumOn src/FoldlHelp.hs 14;" f minimumOn src/FoldlHelp.hs 14;" f
@@ -5148,9 +5153,10 @@ orderAroundFirst src/Geometry/Polygon.hs 82;" f
orderAroundFirstReverse src/Geometry/Polygon.hs 78;" f orderAroundFirstReverse src/Geometry/Polygon.hs 78;" f
orderPolygon src/Geometry/Polygon.hs 87;" f orderPolygon src/Geometry/Polygon.hs 87;" f
orderPolygonAround src/Geometry/Polygon.hs 70;" f orderPolygonAround src/Geometry/Polygon.hs 70;" f
orientAttachment src/Dodge/Item/Orientation.hs 23;" f orientAttachment src/Dodge/Item/Orientation.hs 26;" f
orientByLink src/Dodge/Item/Orientation.hs 16;" f orientByLink src/Dodge/Item/Orientation.hs 19;" f
orientChild src/Dodge/Item/Orientation.hs 10;" f orientChild src/Dodge/Item/Orientation.hs 12;" f
orientLocation src/Dodge/Item/Orientation.hs 36;" f
orthogonalPointOnSeg src/Geometry/Intersect.hs 291;" f orthogonalPointOnSeg src/Geometry/Intersect.hs 291;" f
outLink src/Dodge/RoomLink.hs 105;" f outLink src/Dodge/RoomLink.hs 105;" f
outsideScreenPolygon src/Dodge/Debug/Picture.hs 44;" f outsideScreenPolygon src/Dodge/Debug/Picture.hs 44;" f
@@ -5349,8 +5355,8 @@ preCritStart src/Dodge/Room/Start.hs 82;" f
preloadRender src/Preload/Render.hs 30;" f preloadRender src/Preload/Render.hs 30;" f
premapMaybe src/FoldlHelp.hs 26;" f premapMaybe src/FoldlHelp.hs 26;" f
prependTwo src/Geometry.hs 176;" f prependTwo src/Geometry.hs 176;" f
prettyDT src/Dodge/DoubleTree.hs 179;" f prettyDT src/Dodge/DoubleTree.hs 208;" f
prettyLDT src/Dodge/DoubleTree.hs 183;" f prettyLDT src/Dodge/DoubleTree.hs 213;" f
prettyShort src/AesonHelp.hs 11;" f prettyShort src/AesonHelp.hs 11;" f
primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 581;" f primeS src/Dodge/SoundLogic/ExternallyGeneratedSounds.hs 581;" f
printColumnTitles src/Dodge/Tree/Shift.hs 142;" f printColumnTitles src/Dodge/Tree/Shift.hs 142;" f
@@ -5472,7 +5478,7 @@ rectXH src/Geometry/Polygon.hs 32;" f
rectXY src/Geometry/Polygon.hs 35;" f rectXY src/Geometry/Polygon.hs 35;" f
rectanglePairs src/Dodge/LevelGen/DoorPane.hs 7;" f rectanglePairs src/Dodge/LevelGen/DoorPane.hs 7;" f
red src/Color.hs 14;" f red src/Color.hs 14;" f
reduceLocLDT src/Dodge/DoubleTree.hs 256;" f reduceLocLDT src/Dodge/DoubleTree.hs 303;" f
reflDirWall src/Dodge/Base/Wall.hs 16;" f reflDirWall src/Dodge/Base/Wall.hs 16;" f
reflVelWall src/Dodge/Base/Wall.hs 24;" f reflVelWall src/Dodge/Base/Wall.hs 24;" f
reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f reflVelWallDamp src/Dodge/Base/Wall.hs 20;" f
@@ -5536,12 +5542,12 @@ rezText' src/Dodge/Story.hs 17;" f
rhombus src/Polyhedra.hs 72;" f rhombus src/Polyhedra.hs 72;" f
rifle src/Dodge/Item/Held/Cane.hs 19;" f rifle src/Dodge/Item/Held/Cane.hs 19;" f
right src/DoubleStack.hs 16;" f right src/DoubleStack.hs 16;" f
rightChildList src/Dodge/Item/Grammar.hs 257;" f rightChildList src/Dodge/Item/Grammar.hs 186;" f
rightIsParentCombine src/Dodge/Item/Grammar.hs 243;" f rightIsParentCombine src/Dodge/Item/Grammar.hs 172;" f
rightPad src/Padding.hs 19;" f rightPad src/Padding.hs 19;" f
rightPadNoSquash src/Padding.hs 23;" f rightPadNoSquash src/Padding.hs 23;" f
rlPosDir src/Dodge/RoomLink.hs 94;" f rlPosDir src/Dodge/RoomLink.hs 94;" f
rlauncherPic src/Dodge/Item/Draw/SPic.hs 390;" f rlauncherPic src/Dodge/Item/Draw/SPic.hs 388;" f
rmInLinks src/Dodge/RoomLink.hs 138;" f rmInLinks src/Dodge/RoomLink.hs 138;" f
rmInvItem src/Dodge/Inventory.hs 64;" f rmInvItem src/Dodge/Inventory.hs 64;" f
rmLinksOfType src/Dodge/RoomLink.hs 135;" f rmLinksOfType src/Dodge/RoomLink.hs 135;" f
@@ -5743,7 +5749,7 @@ shapeVerxAttributes src/Shape/Parameters.hs 13;" f
shapeVerxSize src/Shape/Parameters.hs 10;" f shapeVerxSize src/Shape/Parameters.hs 10;" f
shardShape src/Dodge/Block/Debris.hs 181;" f shardShape src/Dodge/Block/Debris.hs 181;" f
shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f shatterGun src/Dodge/Item/Held/Weapons.hs 8;" f
shatterGunSPic src/Dodge/Item/Draw/SPic.hs 302;" f shatterGunSPic src/Dodge/Item/Draw/SPic.hs 300;" f
shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f shatterWall src/Dodge/Item/Weapon/Shatter.hs 26;" f
shellCollisionCheck src/Dodge/Projectile/Update.hs 85;" f shellCollisionCheck src/Dodge/Projectile/Update.hs 85;" f
shellMag src/Dodge/Item/Ammo.hs 48;" f shellMag src/Dodge/Item/Ammo.hs 48;" f
@@ -5885,7 +5891,6 @@ spreadCenter src/Dodge/Base.hs 187;" f
spreadFromCenter src/Dodge/Base.hs 176;" f spreadFromCenter src/Dodge/Base.hs 176;" f
spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 12;" f spreadGunCrit src/Dodge/Creature/SpreadGunCrit.hs 12;" f
spreadOut src/Dodge/Creature/Boid.hs 158;" f spreadOut src/Dodge/Creature/Boid.hs 158;" f
springLinkTest src/Dodge/Item/Grammar.hs 217;" f
sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f sps src/Dodge/LevelGen/PlacementHelper.hs 30;" f
sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f sps0 src/Dodge/LevelGen/PlacementHelper.hs 42;" f
square src/Geometry/Polygon.hs 46;" f square src/Geometry/Polygon.hs 46;" f
@@ -5942,7 +5947,7 @@ strideRot src/Dodge/Item/HeldOffset.hs 78;" f
stringToList src/Picture/Base.hs 313;" f stringToList src/Picture/Base.hs 313;" f
stringToListGrad src/Picture/Text.hs 12;" f stringToListGrad src/Picture/Text.hs 12;" f
stripZ src/Geometry/Vector3D.hs 97;" f stripZ src/Geometry/Vector3D.hs 97;" f
structureToPotentialFunction src/Dodge/Item/Grammar.hs 176;" f structureToPotentialFunction src/Dodge/Item/Grammar.hs 151;" f
structureUseAtLoc src/Dodge/Creature/Impulse/UseItem.hs 75;" f structureUseAtLoc src/Dodge/Creature/Impulse/UseItem.hs 75;" f
subInvX src/Dodge/ListDisplayParams.hs 48;" f subInvX src/Dodge/ListDisplayParams.hs 48;" f
subMap src/TreeHelp.hs 118;" f subMap src/TreeHelp.hs 118;" f
@@ -5997,7 +6002,7 @@ terminalScreenGlow src/Dodge/Machine/Update.hs 35;" f
terminalShape src/Dodge/Machine/Draw.hs 32;" f terminalShape src/Dodge/Machine/Draw.hs 32;" f
terminalWheelEvent src/Dodge/Update/Scroll.hs 124;" f terminalWheelEvent src/Dodge/Update/Scroll.hs 124;" f
teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f teslaGun src/Dodge/Item/Held/BatteryGuns.hs 19;" f
teslaGunPic src/Dodge/Item/Draw/SPic.hs 410;" f teslaGunPic src/Dodge/Item/Draw/SPic.hs 408;" f
teslaParams src/Dodge/Item/Held/BatteryGuns.hs 32;" f teslaParams src/Dodge/Item/Held/BatteryGuns.hs 32;" f
teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f teslaParams src/Dodge/Tesla/ItemParams.hs 6;" f
testCrossWalls src/Dodge/Room/Path.hs 47;" f testCrossWalls src/Dodge/Room/Path.hs 47;" f
@@ -6055,7 +6060,6 @@ toClosestMultiple src/HelpNum.hs 3;" f
toColor8 src/Color.hs 148;" f toColor8 src/Color.hs 148;" f
toFloatVAs src/Shader/Compile.hs 211;" f toFloatVAs src/Shader/Compile.hs 211;" f
toLabel src/Dodge/Cleat.hs 16;" f toLabel src/Dodge/Cleat.hs 16;" f
toLasgunUpdate src/Dodge/Item/Grammar.hs 210;" f
toMultiset src/Multiset.hs 64;" f toMultiset src/Multiset.hs 64;" f
toOnward src/Dodge/Tree/Compose.hs 101;" f toOnward src/Dodge/Tree/Compose.hs 101;" f
toTopLeft src/Dodge/Render/List.hs 219;" f toTopLeft src/Dodge/Render/List.hs 219;" f
@@ -6079,7 +6083,7 @@ topPrismEdgeIndices src/Shader/Poke.hs 335;" f
topPrismIndices src/Shader/Poke.hs 410;" f topPrismIndices src/Shader/Poke.hs 410;" f
topTestPart src/Dodge/TestString.hs 58;" f topTestPart src/Dodge/TestString.hs 58;" f
torch src/Dodge/Item/Held/Utility.hs 23;" f torch src/Dodge/Item/Held/Utility.hs 23;" f
torchShape src/Dodge/Item/Draw/SPic.hs 269;" f torchShape src/Dodge/Item/Draw/SPic.hs 267;" f
torqueAmount src/Dodge/HeldUse.hs 629;" f torqueAmount src/Dodge/HeldUse.hs 629;" f
torqueCr src/Dodge/WorldEffect.hs 67;" f torqueCr src/Dodge/WorldEffect.hs 67;" f
torso src/Dodge/Creature/Picture.hs 99;" f torso src/Dodge/Creature/Picture.hs 99;" f
@@ -6087,7 +6091,7 @@ tractCr src/Dodge/TractorBeam/Update.hs 28;" f
tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f tractFlIt src/Dodge/TractorBeam/Update.hs 23;" f
tractorBeamAt src/Dodge/HeldUse.hs 860;" f tractorBeamAt src/Dodge/HeldUse.hs 860;" f
tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f tractorGun src/Dodge/Item/Held/BatteryGuns.hs 60;" f
tractorGunPic src/Dodge/Item/Draw/SPic.hs 437;" f tractorGunPic src/Dodge/Item/Draw/SPic.hs 435;" f
tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f tractorPullPos src/Dodge/TractorBeam/Update.hs 33;" f
tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f tractorSPic src/Dodge/TractorBeam/Draw.hs 10;" f
tranRot src/Picture/Base.hs 124;" f tranRot src/Picture/Base.hs 124;" f
@@ -6322,14 +6326,13 @@ upperPrismPolyST src/Shape.hs 108;" f
upperPrismPolySU src/Shape.hs 114;" f upperPrismPolySU src/Shape.hs 114;" f
upperPrismPolyTS src/Shape.hs 120;" f upperPrismPolyTS src/Shape.hs 120;" f
upperRounded src/Shape.hs 185;" f upperRounded src/Shape.hs 185;" f
useBreakL src/Dodge/Item/Grammar.hs 36;" f
useBulletPayload src/Dodge/Bullet.hs 113;" f useBulletPayload src/Dodge/Bullet.hs 113;" f
useC src/Dodge/Cuse.hs 8;" f useC src/Dodge/Cuse.hs 8;" f
useC' src/Dodge/Cuse.hs 13;" f useC' src/Dodge/Cuse.hs 13;" f
useDelay src/Dodge/Item/UseDelay.hs 12;" f useDelay src/Dodge/Item/UseDelay.hs 12;" f
useGasParams src/Dodge/HeldUse.hs 1161;" f useGasParams src/Dodge/HeldUse.hs 1161;" f
useHotkey src/Dodge/Creature/YourControl.hs 70;" f useHotkey src/Dodge/Creature/YourControl.hs 70;" f
useInventoryPath src/Dodge/HeldUse.hs 1430;" f useInventoryPath src/Dodge/HeldUse.hs 1427;" f
useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f useItem src/Dodge/Creature/Impulse/UseItem.hs 20;" f
useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f useItemLoc src/Dodge/Creature/Impulse/UseItem.hs 27;" f
useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f useLnkRoomPos src/Dodge/PlacementSpot.hs 244;" f
@@ -6338,15 +6341,15 @@ useLocation src/Dodge/Creature/Impulse/UseItem.hs 65;" f
useMagShield src/Dodge/Euse.hs 26;" f useMagShield src/Dodge/Euse.hs 26;" f
useNormalCamera src/Dodge/Camera.hs 6;" f useNormalCamera src/Dodge/Camera.hs 6;" f
usePayload src/Dodge/Payload.hs 18;" f usePayload src/Dodge/Payload.hs 18;" f
useRewindGun src/Dodge/HeldUse.hs 1390;" f useRewindGun src/Dodge/HeldUse.hs 1387;" f
useRewindGun src/Dodge/Luse.hs 40;" f useRewindGun src/Dodge/Luse.hs 40;" f
useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f useRoomPosCond src/Dodge/PlacementSpot.hs 178;" f
useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f useRoomPosRoomCond src/Dodge/PlacementSpot.hs 181;" f
useStopWatch src/Dodge/HeldUse.hs 1371;" f useStopWatch src/Dodge/HeldUse.hs 1368;" f
useStopWatch src/Dodge/Luse.hs 21;" f useStopWatch src/Dodge/Luse.hs 21;" f
useTimeCheck src/Dodge/HeldUse.hs 112;" f useTimeCheck src/Dodge/HeldUse.hs 112;" f
useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f useTimeCheck src/Dodge/Item/Weapon/TriggerType.hs 127;" f
useTimeScrollGun src/Dodge/HeldUse.hs 1379;" f useTimeScrollGun src/Dodge/HeldUse.hs 1376;" f
useTimeScrollGun src/Dodge/Luse.hs 29;" f useTimeScrollGun src/Dodge/Luse.hs 29;" f
useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f useUnusedLnk src/Dodge/PlacementSpot.hs 169;" f
usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f usedRoomInLinkPoss src/Dodge/PlacementSpot.hs 196;" f
@@ -6380,7 +6383,7 @@ visibleWalls src/Dodge/Base/Collide.hs 124;" f
visionCheck src/Dodge/Creature/Perception.hs 153;" f visionCheck src/Dodge/Creature/Perception.hs 153;" f
vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f vocalizationTest src/Dodge/Creature/Vocalization.hs 42;" f
volleyGun src/Dodge/Item/Held/Cane.hs 15;" f volleyGun src/Dodge/Item/Held/Cane.hs 15;" f
volleyGunShape src/Dodge/Item/Draw/SPic.hs 347;" f volleyGunShape src/Dodge/Item/Draw/SPic.hs 345;" f
waistSP src/Dodge/Creature/HandPos.hs 173;" f waistSP src/Dodge/Creature/HandPos.hs 173;" f
walkNozzle src/Dodge/HeldUse.hs 830;" f walkNozzle src/Dodge/HeldUse.hs 830;" f
walkableNodeNear src/Dodge/Path.hs 48;" f walkableNodeNear src/Dodge/Path.hs 48;" f
@@ -6390,7 +6393,7 @@ wallIsZeroLength src/Dodge/LevelGen/StaticWalls.hs 179;" f
wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f wallLine src/Dodge/Placement/Instance/Wall.hs 71;" f
wallsFromRooms src/Dodge/Layout.hs 146;" f wallsFromRooms src/Dodge/Layout.hs 146;" f
wallsToDraw src/Dodge/Render/Walls.hs 17;" f wallsToDraw src/Dodge/Render/Walls.hs 17;" f
warmupSound src/Dodge/HeldUse.hs 1424;" f warmupSound src/Dodge/HeldUse.hs 1421;" f
warningRooms src/Dodge/Room/Warning.hs 28;" f warningRooms src/Dodge/Room/Warning.hs 28;" f
wasdAim src/Dodge/Creature/YourControl.hs 126;" f wasdAim src/Dodge/Creature/YourControl.hs 126;" f
wasdDir src/Dodge/WASD.hs 17;" f wasdDir src/Dodge/WASD.hs 17;" f