Cleanup LabelDoubleTree -> LDTree
This commit is contained in:
@@ -80,7 +80,7 @@ structureUseAtLoc = \case
|
|||||||
MapperSF -> True
|
MapperSF -> True
|
||||||
_ -> False
|
_ -> False
|
||||||
|
|
||||||
activateDetonator :: LabelDoubleTree ItemLink CItem -> World -> World
|
activateDetonator :: LDTree ItemLink CItem -> World -> World
|
||||||
activateDetonator det = fromMaybe id $ do
|
activateDetonator det = fromMaybe id $ do
|
||||||
pjid <- det ^? ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0
|
pjid <- det ^? ldtValue . _1 . itUse . uaParams . apProjectiles . ix 0
|
||||||
return $ cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 0
|
return $ cWorld . lWorld . projectiles . ix pjid . pjTimer .~ 0
|
||||||
|
|||||||
@@ -279,7 +279,7 @@ updateHeldRootItem cr = fromMaybe id $ do
|
|||||||
itmtree <- invRootTrees (_crInv cr) ^? ix invid
|
itmtree <- invRootTrees (_crInv cr) ^? ix invid
|
||||||
return $ updateAttachedItems itmtree cr
|
return $ updateAttachedItems itmtree cr
|
||||||
|
|
||||||
updateAttachedItems :: LabelDoubleTree ItemLink CItem -> Creature -> World -> World
|
updateAttachedItems :: LDTree ItemLink CItem -> Creature -> World -> World
|
||||||
updateAttachedItems itmtree cr =
|
updateAttachedItems itmtree cr =
|
||||||
cldtPropagateFold
|
cldtPropagateFold
|
||||||
chainLinkOrientation
|
chainLinkOrientation
|
||||||
@@ -326,7 +326,7 @@ drawARHUD (LocLDT con _) w = fromMaybe w $ do
|
|||||||
|
|
||||||
shineTargetLaser ::
|
shineTargetLaser ::
|
||||||
Creature ->
|
Creature ->
|
||||||
LabelDoubleTree ItemLink CItem ->
|
LDTree ItemLink CItem ->
|
||||||
(Point3, Q.Quaternion Float) ->
|
(Point3, Q.Quaternion Float) ->
|
||||||
World ->
|
World ->
|
||||||
World
|
World
|
||||||
@@ -367,7 +367,7 @@ shineTargetLaser cr itmtree (p, q) w = fromMaybe (w & pointittarg . itTgPos .~ N
|
|||||||
|
|
||||||
shineTorch ::
|
shineTorch ::
|
||||||
Creature ->
|
Creature ->
|
||||||
LabelDoubleTree ItemLink CItem ->
|
LDTree ItemLink CItem ->
|
||||||
(Point3, Q.Quaternion Float) ->
|
(Point3, Q.Quaternion Float) ->
|
||||||
World ->
|
World ->
|
||||||
World
|
World
|
||||||
|
|||||||
@@ -6,7 +6,6 @@
|
|||||||
module Dodge.Data.ComposedItem where
|
module Dodge.Data.ComposedItem where
|
||||||
|
|
||||||
import Dodge.Data.AmmoType
|
import Dodge.Data.AmmoType
|
||||||
import Dodge.Data.DoubleTree
|
|
||||||
import Control.Lens
|
import Control.Lens
|
||||||
import Dodge.Data.Item
|
import Dodge.Data.Item
|
||||||
|
|
||||||
@@ -63,23 +62,6 @@ data ItemStructuralFunction
|
|||||||
| MapperSF
|
| MapperSF
|
||||||
deriving (Eq, Ord, Show, Read)
|
deriving (Eq, Ord, Show, Read)
|
||||||
|
|
||||||
type CItem = (Item, ItemStructuralFunction, LinkTest)
|
type CItem = (Item, ItemStructuralFunction)
|
||||||
|
|
||||||
-- this should possibly use a full item structure tree rather than a
|
|
||||||
-- CItem as arguments
|
|
||||||
data LinkTest = LTest
|
|
||||||
{ _tryLeftLink :: LabelDoubleTree ItemLink CItem -> Maybe LinkUpdate
|
|
||||||
, _tryRightLink :: LabelDoubleTree ItemLink CItem -> Maybe LinkUpdate
|
|
||||||
}
|
|
||||||
|
|
||||||
data LinkUpdate = LUpdate
|
|
||||||
{ _luLinkType :: ItemLink
|
|
||||||
, _luParentUpdate :: CItem -> CItem
|
|
||||||
, _luChildUpdate :: CItem -> CItem
|
|
||||||
}
|
|
||||||
|
|
||||||
makeLenses ''ItemLink
|
makeLenses ''ItemLink
|
||||||
makeLenses ''LinkTest
|
|
||||||
makeLenses ''LinkUpdate
|
|
||||||
--deriveJSON defaultOptions ''ItemStructuralFunction
|
|
||||||
--deriveJSON defaultOptions ''ComposeLinkType
|
|
||||||
|
|||||||
@@ -30,17 +30,10 @@ data LabelDoubleTreeNodeType a
|
|||||||
data DoubleTree a = DT {_dtValue :: a, _dtLeft :: [DoubleTree a], _dtRight :: [DoubleTree a]}
|
data DoubleTree a = DT {_dtValue :: a, _dtLeft :: [DoubleTree a], _dtRight :: [DoubleTree a]}
|
||||||
deriving (Eq, Ord, Show, Read)
|
deriving (Eq, Ord, Show, Read)
|
||||||
|
|
||||||
--data FLatLabelDoubleTreeNode b a = FLDT
|
data LDTree b a = LDT -- LabelDoubleTree
|
||||||
-- {_fldtValue :: a
|
|
||||||
-- ,_fldtType ::
|
|
||||||
-- ,_fldtIndentation :: Int
|
|
||||||
-- ,_fldtID :: Int
|
|
||||||
-- ,_fldtChildren =
|
|
||||||
|
|
||||||
data LabelDoubleTree b a = LDT
|
|
||||||
{ _ldtValue :: a
|
{ _ldtValue :: a
|
||||||
, _ldtLeft :: [(b, LabelDoubleTree b a)]
|
, _ldtLeft :: [(b, LDTree b a)]
|
||||||
, _ldtRight :: [(b, LabelDoubleTree b a)]
|
, _ldtRight :: [(b, LDTree b a)]
|
||||||
}
|
}
|
||||||
deriving (Eq, Ord, Show, Read)
|
deriving (Eq, Ord, Show, Read)
|
||||||
|
|
||||||
@@ -49,24 +42,24 @@ data ContextLDT b a
|
|||||||
= TopLDT
|
= TopLDT
|
||||||
| LeftwardLDT
|
| LeftwardLDT
|
||||||
{ _cldtUp :: ContextLDT b a
|
{ _cldtUp :: ContextLDT b a
|
||||||
, _cldtCloseLeft :: [(b, LabelDoubleTree b a)]
|
, _cldtCloseLeft :: [(b, LDTree b a)]
|
||||||
, _cldtParent :: a
|
, _cldtParent :: a
|
||||||
, _cldtLink :: b
|
, _cldtLink :: b
|
||||||
, _cldtCloseRight :: [(b, LabelDoubleTree b a)]
|
, _cldtCloseRight :: [(b, LDTree b a)]
|
||||||
, _cldtFarRight :: [(b, LabelDoubleTree b a)]
|
, _cldtFarRight :: [(b, LDTree b a)]
|
||||||
}
|
}
|
||||||
| RightwardLDT
|
| RightwardLDT
|
||||||
{ _cldtUp :: ContextLDT b a
|
{ _cldtUp :: ContextLDT b a
|
||||||
, _cldtFarLeft :: [(b, LabelDoubleTree b a)]
|
, _cldtFarLeft :: [(b, LDTree b a)]
|
||||||
, _cldtCloseLeft :: [(b, LabelDoubleTree b a)]
|
, _cldtCloseLeft :: [(b, LDTree b a)]
|
||||||
, _cldtParent :: a
|
, _cldtParent :: a
|
||||||
, _cldtLink :: b
|
, _cldtLink :: b
|
||||||
, _cldtCloseRight :: [(b, LabelDoubleTree b a)]
|
, _cldtCloseRight :: [(b, LDTree b a)]
|
||||||
}
|
}
|
||||||
|
|
||||||
data LocationLDT b a = LocLDT
|
data LocationLDT b a = LocLDT
|
||||||
{ _locLdtContext :: ContextLDT b a
|
{ _locLdtContext :: ContextLDT b a
|
||||||
, _locLDT :: LabelDoubleTree b a
|
, _locLDT :: LDTree b a
|
||||||
}
|
}
|
||||||
|
|
||||||
instance Functor DoubleTree where
|
instance Functor DoubleTree where
|
||||||
@@ -75,10 +68,10 @@ instance Functor DoubleTree where
|
|||||||
instance Foldable DoubleTree where
|
instance Foldable DoubleTree where
|
||||||
foldMap f (DT x l r) = foldMap (foldMap f) l <> f x <> foldMap (foldMap f) r
|
foldMap f (DT x l r) = foldMap (foldMap f) l <> f x <> foldMap (foldMap f) r
|
||||||
|
|
||||||
instance Functor (LabelDoubleTree b) where
|
instance Functor (LDTree b) where
|
||||||
fmap f (LDT x l r) = LDT (f x) (fmap (second $ fmap f) l) (fmap (second $ fmap f) r)
|
fmap f (LDT x l r) = LDT (f x) (fmap (second $ fmap f) l) (fmap (second $ fmap f) r)
|
||||||
|
|
||||||
instance Bifunctor LabelDoubleTree where
|
instance Bifunctor LDTree where
|
||||||
second = fmap
|
second = fmap
|
||||||
first f (LDT x l r) =
|
first f (LDT x l r) =
|
||||||
LDT
|
LDT
|
||||||
@@ -87,7 +80,7 @@ instance Bifunctor LabelDoubleTree where
|
|||||||
(map (bimap f (first f)) r)
|
(map (bimap f (first f)) r)
|
||||||
|
|
||||||
makeLenses ''DoubleTree
|
makeLenses ''DoubleTree
|
||||||
makeLenses ''LabelDoubleTree
|
makeLenses ''LDTree
|
||||||
makeLenses ''LocationLDT
|
makeLenses ''LocationLDT
|
||||||
makeLenses ''ContextLDT
|
makeLenses ''ContextLDT
|
||||||
--deriveJSON defaultOptions ''DoubleTree
|
--deriveJSON defaultOptions ''DoubleTree
|
||||||
|
|||||||
+13
-13
@@ -9,17 +9,17 @@ import Data.Monoid
|
|||||||
singleDT :: a -> DoubleTree a
|
singleDT :: a -> DoubleTree a
|
||||||
singleDT x = DT x [] []
|
singleDT x = DT x [] []
|
||||||
|
|
||||||
singleLDT :: a -> LabelDoubleTree b a
|
singleLDT :: a -> LDTree b a
|
||||||
singleLDT x = LDT x [] []
|
singleLDT x = LDT x [] []
|
||||||
|
|
||||||
ldtToDT :: LabelDoubleTree b a -> DoubleTree a
|
ldtToDT :: LDTree b a -> DoubleTree a
|
||||||
ldtToDT (LDT x l r) = DT x (map (ldtToDT . snd) l) (map (ldtToDT . snd) r)
|
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 -> b -> c) -> (c -> b -> c)
|
||||||
-> c
|
-> c
|
||||||
-> LabelDoubleTree b a -> LabelDoubleTree c a
|
-> 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.
|
||||||
@@ -30,7 +30,7 @@ ldtPropagateFold :: (c -> a -> b -> a -> c)
|
|||||||
-> (c -> a -> b -> a -> c)
|
-> (c -> a -> b -> a -> c)
|
||||||
-> (c -> a -> d -> d)
|
-> (c -> a -> d -> d)
|
||||||
-> c
|
-> c
|
||||||
-> LabelDoubleTree b a
|
-> LDTree b a
|
||||||
-> d
|
-> d
|
||||||
-> d
|
-> d
|
||||||
ldtPropagateFold lf rf up x (LDT v l r) =
|
ldtPropagateFold lf rf up x (LDT v l r) =
|
||||||
@@ -44,9 +44,9 @@ ldtPropagateFold lf rf up x (LDT v l r) =
|
|||||||
-- 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 -> a -> b -> a -> c)
|
||||||
-> (c -> LabelDoubleTree b a -> d -> d)
|
-> (c -> LDTree b a -> d -> d)
|
||||||
-> c
|
-> c
|
||||||
-> LabelDoubleTree b a
|
-> LDTree b a
|
||||||
-> d
|
-> d
|
||||||
-> d
|
-> d
|
||||||
ldtPropagateFoldTree lf rf up x t@(LDT v l r) =
|
ldtPropagateFoldTree lf rf up x t@(LDT v l r) =
|
||||||
@@ -56,12 +56,12 @@ ldtPropagateFoldTree lf rf up x t@(LDT v l r) =
|
|||||||
|
|
||||||
ildtPropagate :: (Int -> c -> b -> c) -> (Int -> c -> b -> c)
|
ildtPropagate :: (Int -> c -> b -> c) -> (Int -> c -> b -> c)
|
||||||
-> c
|
-> c
|
||||||
-> LabelDoubleTree b a -> LabelDoubleTree c a
|
-> 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 :: LabelDoubleTree b a -> LabelDoubleTree 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)
|
||||||
@@ -140,13 +140,13 @@ dtToAdjRootParentEither root par f (DT x l r) = do
|
|||||||
where
|
where
|
||||||
g = f . _dtValue
|
g = f . _dtValue
|
||||||
|
|
||||||
ldtToIM :: (a -> Int) -> LabelDoubleTree b a -> IM.IntMap (LabelDoubleTree 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 :: LabelDoubleTree b a -> [(a,Int,LabelDoubleTreeNodeType b)]
|
ldtToIndentList :: LDTree b a -> [(a,Int,LabelDoubleTreeNodeType b)]
|
||||||
ldtToIndentList = ldtIL LDTRootNode
|
ldtToIndentList = ldtIL LDTRootNode
|
||||||
|
|
||||||
ldtIL :: LabelDoubleTreeNodeType b -> LabelDoubleTree 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) = map doindent
|
||||||
(concat
|
(concat
|
||||||
(headMap
|
(headMap
|
||||||
@@ -180,11 +180,11 @@ prettyDT :: (a -> String) -> DoubleTree a -> [String]
|
|||||||
prettyDT f (DT x l r) = concatMap (map ('/':) . prettyDT f) r
|
prettyDT f (DT x l r) = concatMap (map ('/':) . prettyDT f) r
|
||||||
++ (f x : concatMap (map ('\\':) . prettyDT f) l)
|
++ (f x : concatMap (map ('\\':) . prettyDT f) l)
|
||||||
|
|
||||||
prettyLDT :: (a -> String) -> LabelDoubleTree 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) = concatMap (map ('/':) . prettyLDT f . snd) r
|
||||||
++ (f x : concatMap (map ('\\':) . prettyLDT f . snd) l)
|
++ (f x : concatMap (map ('\\':) . prettyLDT f . snd) l)
|
||||||
|
|
||||||
ldtToLoc :: LabelDoubleTree b a -> LocationLDT b a
|
ldtToLoc :: LDTree b a -> LocationLDT b a
|
||||||
ldtToLoc = LocLDT TopLDT
|
ldtToLoc = LocLDT TopLDT
|
||||||
|
|
||||||
-- should probably do tests for these
|
-- should probably do tests for these
|
||||||
|
|||||||
+27
-30
@@ -60,23 +60,23 @@ gadgetEffect pt loc
|
|||||||
useInventoryPath pt i x loc
|
useInventoryPath pt i x loc
|
||||||
| otherwise = const id
|
| otherwise = const id
|
||||||
|
|
||||||
heldEffect :: PressType -> LabelDoubleTree ItemLink Item -> Creature -> World -> World
|
heldEffect :: PressType -> LDTree ItemLink Item -> Creature -> World -> World
|
||||||
heldEffect = useTimeCheck . hammerCheck heldEffectMuzzles
|
heldEffect = useTimeCheck . hammerCheck heldEffectMuzzles
|
||||||
|
|
||||||
heldEffectNoHammerCheck :: LabelDoubleTree ItemLink Item -> Creature -> World -> World
|
heldEffectNoHammerCheck :: LDTree ItemLink Item -> Creature -> World -> World
|
||||||
heldEffectNoHammerCheck = useTimeCheck heldEffectMuzzles
|
heldEffectNoHammerCheck = useTimeCheck heldEffectMuzzles
|
||||||
|
|
||||||
type ChainEffect =
|
type ChainEffect =
|
||||||
(LabelDoubleTree ItemLink Item -> Creature -> World -> World) ->
|
(LDTree ItemLink Item -> Creature -> World -> World) ->
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Creature ->
|
Creature ->
|
||||||
World ->
|
World ->
|
||||||
World
|
World
|
||||||
|
|
||||||
hammerCheck ::
|
hammerCheck ::
|
||||||
(LabelDoubleTree ItemLink Item -> Creature -> World -> World) ->
|
(LDTree ItemLink Item -> Creature -> World -> World) ->
|
||||||
PressType ->
|
PressType ->
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Creature ->
|
Creature ->
|
||||||
World ->
|
World ->
|
||||||
World
|
World
|
||||||
@@ -142,7 +142,7 @@ useTimeCheck f item cr w = case useDelay $ item ^. ldtValue of
|
|||||||
-- will have problems elsewhere also
|
-- will have problems elsewhere also
|
||||||
itRef = item ^?! ldtValue . itLocation . ilInvID
|
itRef = item ^?! ldtValue . itLocation . ilInvID
|
||||||
|
|
||||||
heldEffectMuzzles :: LabelDoubleTree ItemLink Item -> Creature -> World -> World
|
heldEffectMuzzles :: LDTree ItemLink Item -> Creature -> World -> World
|
||||||
heldEffectMuzzles t cr w =
|
heldEffectMuzzles t cr w =
|
||||||
setusetime . doHeldUseEffect t cr
|
setusetime . doHeldUseEffect t cr
|
||||||
. uncurry (applyCME (_ldtValue t) cr)
|
. uncurry (applyCME (_ldtValue t) cr)
|
||||||
@@ -336,7 +336,7 @@ vgunMuzzles i =
|
|||||||
-- <*> ZipList [0 .. i -1]
|
-- <*> ZipList [0 .. i -1]
|
||||||
)
|
)
|
||||||
|
|
||||||
doHeldUseEffect :: LabelDoubleTree ItemLink Item -> Creature -> World -> World
|
doHeldUseEffect :: LDTree ItemLink Item -> Creature -> World -> World
|
||||||
doHeldUseEffect t cr w = case t ^. ldtValue . itType of
|
doHeldUseEffect t cr w = case t ^. ldtValue . itType of
|
||||||
HELD (VOLLEYGUN j) -> case itm ^? itParams . unfiredBarrels of
|
HELD (VOLLEYGUN j) -> case itm ^? itParams . unfiredBarrels of
|
||||||
Just [_] -> fromMaybe w $ do
|
Just [_] -> fromMaybe w $ do
|
||||||
@@ -677,9 +677,9 @@ heldTorqueAmount = \case
|
|||||||
|
|
||||||
-- (Muzzle,Int,Int) = (muzzle, amountloaded, id of mag taken from)
|
-- (Muzzle,Int,Int) = (muzzle, amountloaded, id of mag taken from)
|
||||||
loadMuzzle ::
|
loadMuzzle ::
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Muzzle ->
|
Muzzle ->
|
||||||
(LabelDoubleTree ItemLink Item, Maybe (Muzzle, Int, LabelDoubleTree ItemLink Item))
|
(LDTree ItemLink Item, Maybe (Muzzle, Int, LDTree ItemLink Item))
|
||||||
loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do
|
loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do
|
||||||
-- guard $ mz ^? mzFrame == t ^? ldtValue . itUse . heldFrame
|
-- guard $ mz ^? mzFrame == t ^? ldtValue . itUse . heldFrame
|
||||||
let as = _mzAmmoSlot mz
|
let as = _mzAmmoSlot mz
|
||||||
@@ -697,7 +697,7 @@ loadMuzzle t@(LDT _ l _) mz = fromMaybe (t, Nothing) $ do
|
|||||||
, Just (mz, usedammo, mag)
|
, Just (mz, usedammo, mag)
|
||||||
)
|
)
|
||||||
|
|
||||||
makeMuzzleFlare :: Muzzle -> LabelDoubleTree ItemLink Item -> Creature -> World -> World
|
makeMuzzleFlare :: Muzzle -> LDTree ItemLink Item -> Creature -> World -> World
|
||||||
makeMuzzleFlare mz itmtree cr = case mz ^. mzFlareType of
|
makeMuzzleFlare mz itmtree cr = case mz ^. mzFlareType of
|
||||||
NoFlare -> id
|
NoFlare -> id
|
||||||
BasicFlare -> basicMuzFlare pos dir
|
BasicFlare -> basicMuzFlare pos dir
|
||||||
@@ -746,13 +746,13 @@ flareCircleAt col alphax tranv =
|
|||||||
)
|
)
|
||||||
|
|
||||||
-- previous phaseV parameters: 0.2, 1, 5
|
-- previous phaseV parameters: 0.2, 1, 5
|
||||||
getLaserPhaseV :: LabelDoubleTree ItemLink Item -> Float
|
getLaserPhaseV :: LDTree ItemLink Item -> Float
|
||||||
getLaserPhaseV = const 1
|
getLaserPhaseV = const 1
|
||||||
|
|
||||||
getLaserDamage :: LabelDoubleTree ItemLink Item -> LaserType
|
getLaserDamage :: LDTree ItemLink Item -> LaserType
|
||||||
getLaserDamage = const (DamageLaser 11)
|
getLaserDamage = const (DamageLaser 11)
|
||||||
|
|
||||||
getLaserColor :: LabelDoubleTree ItemLink Item -> Color
|
getLaserColor :: LDTree ItemLink Item -> Color
|
||||||
getLaserColor = const yellow
|
getLaserColor = const yellow
|
||||||
|
|
||||||
basicMuzFlare :: Point2 -> Float -> World -> World
|
basicMuzFlare :: Point2 -> Float -> World -> World
|
||||||
@@ -767,10 +767,10 @@ isAmmoIntLink i (AmmoInLink j _) = i == j
|
|||||||
isAmmoIntLink _ _ = False
|
isAmmoIntLink _ _ = False
|
||||||
|
|
||||||
useLoadedAmmo ::
|
useLoadedAmmo ::
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Creature ->
|
Creature ->
|
||||||
(Bool, World) ->
|
(Bool, World) ->
|
||||||
Maybe (Muzzle, Int, LabelDoubleTree ItemLink Item) ->
|
Maybe (Muzzle, Int, LDTree ItemLink Item) ->
|
||||||
(Bool, World)
|
(Bool, World)
|
||||||
useLoadedAmmo _ _ (cme, w) Nothing = (cme, w)
|
useLoadedAmmo _ _ (cme, w) Nothing = (cme, w)
|
||||||
useLoadedAmmo itmtree cr (_, w) (Just (mz, x, magtree)) = (,) True $
|
useLoadedAmmo itmtree cr (_, w) (Just (mz, x, magtree)) = (,) True $
|
||||||
@@ -808,7 +808,7 @@ useLoadedAmmo itmtree cr (_, w) (Just (mz, x, magtree)) = (,) True $
|
|||||||
|
|
||||||
getAttachedSFLink ::
|
getAttachedSFLink ::
|
||||||
ItemStructuralFunction ->
|
ItemStructuralFunction ->
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Maybe (NewInt ItmInt)
|
Maybe (NewInt ItmInt)
|
||||||
getAttachedSFLink sf = (^? ldtRight . folding (lookup (SFLink sf)) . ldtValue . itID)
|
getAttachedSFLink sf = (^? ldtRight . folding (lookup (SFLink sf)) . ldtValue . itID)
|
||||||
|
|
||||||
@@ -869,7 +869,7 @@ tractorBeamAt pos outpos dir power =
|
|||||||
d = unitVectorAtAngle dir * power
|
d = unitVectorAtAngle dir * power
|
||||||
|
|
||||||
creatureShootLaser ::
|
creatureShootLaser ::
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Creature ->
|
Creature ->
|
||||||
Muzzle ->
|
Muzzle ->
|
||||||
World ->
|
World ->
|
||||||
@@ -925,7 +925,7 @@ removeAmmoFromMag x mid cr = fromMaybe id $ do
|
|||||||
. _Just
|
. _Just
|
||||||
-~ x
|
-~ x
|
||||||
|
|
||||||
getBulletType :: LabelDoubleTree ItemLink Item -> Maybe Bullet
|
getBulletType :: LDTree ItemLink Item -> Maybe Bullet
|
||||||
getBulletType magtree =
|
getBulletType magtree =
|
||||||
--magtree ^? ldtValue . itConsumables . magParams . ampBullet
|
--magtree ^? ldtValue . itConsumables . magParams . ampBullet
|
||||||
(magtree ^? ldtValue >>= magAmmoParams >>= (^? ampBullet))
|
(magtree ^? ldtValue >>= magAmmoParams >>= (^? ampBullet))
|
||||||
@@ -979,9 +979,9 @@ magAmmoParams itm = case itm ^. itType of
|
|||||||
-- _ -> 0
|
-- _ -> 0
|
||||||
|
|
||||||
shootBullet ::
|
shootBullet ::
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Creature ->
|
Creature ->
|
||||||
(Muzzle, Int, LabelDoubleTree ItemLink Item) ->
|
(Muzzle, Int, LDTree ItemLink Item) ->
|
||||||
World ->
|
World ->
|
||||||
World
|
World
|
||||||
shootBullet itmtree cr (mz, x, magtree) w = fromMaybe w $ do
|
shootBullet itmtree cr (mz, x, magtree) w = fromMaybe w $ do
|
||||||
@@ -1265,10 +1265,7 @@ shootTeslaArc itm cr mz w =
|
|||||||
pos = _crPos cr + rotateV (_crDir cr) moff
|
pos = _crPos cr + rotateV (_crDir cr) moff
|
||||||
dir = _crDir cr + mrot
|
dir = _crDir cr + mrot
|
||||||
|
|
||||||
determineProjectileTracking ::
|
determineProjectileTracking :: LDTree ItemLink Item -> LDTree ItemLink Item -> RocketHoming
|
||||||
LabelDoubleTree ItemLink Item ->
|
|
||||||
LabelDoubleTree ItemLink Item ->
|
|
||||||
RocketHoming
|
|
||||||
determineProjectileTracking magtree itmtree =
|
determineProjectileTracking magtree itmtree =
|
||||||
fromMaybe NoHoming $
|
fromMaybe NoHoming $
|
||||||
finddronecontrols <|> findexternaltracking
|
finddronecontrols <|> findexternaltracking
|
||||||
@@ -1283,8 +1280,8 @@ determineProjectileTracking magtree itmtree =
|
|||||||
return $ HomeUsingTargeting (targetingtree ^. ldtValue . itID)
|
return $ HomeUsingTargeting (targetingtree ^. ldtValue . itID)
|
||||||
|
|
||||||
createProjectileR ::
|
createProjectileR ::
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Muzzle ->
|
Muzzle ->
|
||||||
Creature ->
|
Creature ->
|
||||||
World ->
|
World ->
|
||||||
@@ -1302,7 +1299,7 @@ createProjectileR itmtree magtree =
|
|||||||
| isJust $ lookup SmokeReducerLink (magtree ^. ldtLeft) = Just ReducedRocketSmoke
|
| isJust $ lookup SmokeReducerLink (magtree ^. ldtLeft) = Just ReducedRocketSmoke
|
||||||
| otherwise = Nothing
|
| otherwise = Nothing
|
||||||
|
|
||||||
getPJStabiliser :: LabelDoubleTree ItemLink Item -> Maybe PJStabiliser
|
getPJStabiliser :: LDTree ItemLink Item -> Maybe PJStabiliser
|
||||||
getPJStabiliser ldt = case lookup ProjectileStabiliserLink (ldt ^. ldtRight) of
|
getPJStabiliser ldt = case lookup ProjectileStabiliserLink (ldt ^. ldtRight) of
|
||||||
Just ldt' -> case ldt' ^? ldtValue . itType . ibtAttach of
|
Just ldt' -> case ldt' ^? ldtValue . itType . ibtAttach of
|
||||||
Just GIMBAL -> Just StabOrthReduce
|
Just GIMBAL -> Just StabOrthReduce
|
||||||
@@ -1310,7 +1307,7 @@ getPJStabiliser ldt = case lookup ProjectileStabiliserLink (ldt ^. ldtRight) of
|
|||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
|
|
||||||
getGrenadeHitEffect :: LabelDoubleTree ItemLink Item -> GrenadeHitEffect
|
getGrenadeHitEffect :: LDTree ItemLink Item -> GrenadeHitEffect
|
||||||
getGrenadeHitEffect t = case lookup GrenadeHitEffectLink (t ^. ldtRight) of
|
getGrenadeHitEffect t = case lookup GrenadeHitEffectLink (t ^. ldtRight) of
|
||||||
Just ldt' -> case ldt' ^? ldtValue . itType of
|
Just ldt' -> case ldt' ^? ldtValue . itType of
|
||||||
Just STICKYMOD -> GStick
|
Just STICKYMOD -> GStick
|
||||||
@@ -1319,7 +1316,7 @@ getGrenadeHitEffect t = case lookup GrenadeHitEffectLink (t ^. ldtRight) of
|
|||||||
|
|
||||||
createProjectile ::
|
createProjectile ::
|
||||||
ProjectileType ->
|
ProjectileType ->
|
||||||
LabelDoubleTree ItemLink Item ->
|
LDTree ItemLink Item ->
|
||||||
Maybe PJStabiliser ->
|
Maybe PJStabiliser ->
|
||||||
Muzzle ->
|
Muzzle ->
|
||||||
Creature ->
|
Creature ->
|
||||||
|
|||||||
@@ -10,7 +10,7 @@ import Dodge.Data.AimStance
|
|||||||
--aStance :: LocationLDT ItemLink CItem -> AimStance
|
--aStance :: LocationLDT ItemLink CItem -> AimStance
|
||||||
--aStance loc = case loc ^. locLDT . ldtValue . _1 . itType of
|
--aStance loc = case loc ^. locLDT . ldtValue . _1 . itType of
|
||||||
--
|
--
|
||||||
aimStance :: LabelDoubleTree ItemLink CItem -> AimStance
|
aimStance :: LDTree ItemLink CItem -> AimStance
|
||||||
aimStance ldt = itemBaseStance $ ldt ^. ldtValue . _1
|
aimStance ldt = itemBaseStance $ ldt ^. ldtValue . _1
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ import Dodge.Item.Draw.SPic
|
|||||||
import Dodge.Item.HeldOffset
|
import Dodge.Item.HeldOffset
|
||||||
import ShapePicture
|
import ShapePicture
|
||||||
|
|
||||||
itemEquipPict :: Creature -> LabelDoubleTree ItemLink CItem -> SPic
|
itemEquipPict :: Creature -> LDTree ItemLink CItem -> SPic
|
||||||
itemEquipPict cr itmtree
|
itemEquipPict cr itmtree
|
||||||
| Just i <- itm ^? itLocation . ilInvID
|
| Just i <- itm ^? itLocation . ilInvID
|
||||||
, Just esite <- cr ^? crInv . ix i . itLocation . ilEquipSite . _Just
|
, Just esite <- cr ^? crInv . ix i . itLocation . ilEquipSite . _Just
|
||||||
|
|||||||
@@ -21,12 +21,10 @@ import Picture
|
|||||||
import Shape
|
import Shape
|
||||||
import ShapePicture
|
import ShapePicture
|
||||||
|
|
||||||
itemTreeSPic :: LabelDoubleTree ItemLink CItem -> SPic
|
itemTreeSPic :: LDTree ItemLink CItem -> SPic
|
||||||
itemTreeSPic (LDT (itm,_,_) l r) =
|
itemTreeSPic (LDT (itm,_) l r) = itemSPic itm <> foldMap (itemRotTreeSPic itm) (l <> r)
|
||||||
itemSPic itm
|
|
||||||
<> foldMap (itemRotTreeSPic itm) (l <> r)
|
|
||||||
|
|
||||||
itemRotTreeSPic :: Item -> (ItemLink, LabelDoubleTree ItemLink CItem) -> SPic
|
itemRotTreeSPic :: Item -> (ItemLink, LDTree ItemLink CItem) -> SPic
|
||||||
itemRotTreeSPic par (il, t) = translateSP p . overPosSP (Q.rotate q) $ itemTreeSPic t
|
itemRotTreeSPic par (il, t) = translateSP p . overPosSP (Q.rotate q) $ itemTreeSPic t
|
||||||
where
|
where
|
||||||
(p, q) = orientAttachment par il itm
|
(p, q) = orientAttachment par il itm
|
||||||
|
|||||||
+14
-100
@@ -27,35 +27,10 @@ import Dodge.DoubleTree
|
|||||||
import LensHelp
|
import LensHelp
|
||||||
import ListHelp
|
import ListHelp
|
||||||
|
|
||||||
tryAttachItems ::
|
tryAttachItems :: LDTree ItemLink CItem -> LDTree ItemLink CItem ->
|
||||||
LabelDoubleTree ItemLink CItem ->
|
Maybe (LDTree ItemLink CItem)
|
||||||
LabelDoubleTree ItemLink CItem ->
|
|
||||||
Maybe (LabelDoubleTree ItemLink CItem)
|
|
||||||
tryAttachItems = leftRightCombine leftIsParentCombine rightIsParentCombine
|
tryAttachItems = leftRightCombine leftIsParentCombine rightIsParentCombine
|
||||||
|
|
||||||
useBreakL ::
|
|
||||||
[(ItemStructuralFunction, ItemLink)] ->
|
|
||||||
[(ItemStructuralFunction, ItemLink)] ->
|
|
||||||
LinkTest
|
|
||||||
useBreakL llist rlist = LTest ltest rtest
|
|
||||||
where
|
|
||||||
ltest ldt = do
|
|
||||||
let xs =
|
|
||||||
dropWhile
|
|
||||||
((\s -> not $ S.member s (structureToPotentialFunction ldt)) . fst)
|
|
||||||
llist
|
|
||||||
(sf, linktype) <- safeHead xs
|
|
||||||
return $ LUpdate linktype (set _3 (useBreakL (tail xs) rlist))
|
|
||||||
(_2 .~ sf)
|
|
||||||
rtest ldt = do
|
|
||||||
let xs =
|
|
||||||
dropWhile
|
|
||||||
((\s -> not $ S.member s (structureToPotentialFunction ldt)) . fst)
|
|
||||||
rlist
|
|
||||||
(sf, linktype) <- safeHead xs
|
|
||||||
return $ LUpdate linktype (set _3 (useBreakL llist (tail xs)))
|
|
||||||
(_2 .~ sf)
|
|
||||||
|
|
||||||
itemToBreakLists ::
|
itemToBreakLists ::
|
||||||
Item ->
|
Item ->
|
||||||
ItemStructuralFunction ->
|
ItemStructuralFunction ->
|
||||||
@@ -173,9 +148,7 @@ itemToFunction itm = case itm ^. itType of
|
|||||||
CLICKER{} -> GadgetPlatformSF
|
CLICKER{} -> GadgetPlatformSF
|
||||||
_ -> NoSF
|
_ -> NoSF
|
||||||
|
|
||||||
structureToPotentialFunction ::
|
structureToPotentialFunction :: LDTree ItemLink CItem -> S.Set ItemStructuralFunction
|
||||||
LabelDoubleTree ItemLink CItem ->
|
|
||||||
S.Set ItemStructuralFunction
|
|
||||||
structureToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of
|
structureToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of
|
||||||
STICKYMOD -> S.singleton GrenadeHitEffectSF
|
STICKYMOD -> S.singleton GrenadeHitEffectSF
|
||||||
ATTACH GIMBAL -> S.singleton ProjectileStabiliserSF
|
ATTACH GIMBAL -> S.singleton ProjectileStabiliserSF
|
||||||
@@ -184,52 +157,9 @@ structureToPotentialFunction ldt = case ldt ^. ldtValue . _1 . itType of
|
|||||||
_ -> S.singleton (ldt ^. ldtValue . _2)
|
_ -> S.singleton (ldt ^. ldtValue . _2)
|
||||||
|
|
||||||
baseCI :: Item -> CItem
|
baseCI :: Item -> CItem
|
||||||
baseCI itm = (itm, itemToFunction itm, itemBaseConnections itm)
|
baseCI itm = (itm, itemToFunction itm)
|
||||||
|
|
||||||
itemBaseConnections :: Item -> LinkTest
|
type LDTComb a b = LDTree b a -> LDTree b a -> Maybe (LDTree b a)
|
||||||
itemBaseConnections itm = case _itType itm of
|
|
||||||
HELD LASER -> laserLinkTest itm
|
|
||||||
CRAFT SPRING -> springLinkTest
|
|
||||||
_ -> uncurry useBreakL $ itemToBreakLists itm (itemToFunction itm)
|
|
||||||
|
|
||||||
laserLinkTest :: Item -> LinkTest
|
|
||||||
laserLinkTest itm = LTest (llleft itm) (llright itm)
|
|
||||||
|
|
||||||
llleft :: Item -> LabelDoubleTree ItemLink CItem -> Maybe LinkUpdate
|
|
||||||
llleft itm =
|
|
||||||
_tryLeftLink
|
|
||||||
. uncurry useBreakL
|
|
||||||
$ itemToBreakLists itm WeaponTargetingSF
|
|
||||||
|
|
||||||
llright :: Item -> LabelDoubleTree ItemLink CItem -> Maybe LinkUpdate
|
|
||||||
llright itm pci = case pci ^. ldtValue . _1 . itType of
|
|
||||||
CRAFT TRANSFORMER -> Just (toLasgunUpdate itm)
|
|
||||||
_ -> _tryRightLink (uncurry useBreakL $ itemToBreakLists itm WeaponTargetingSF) pci
|
|
||||||
|
|
||||||
toLasgunUpdate :: Item -> LinkUpdate
|
|
||||||
toLasgunUpdate itm =
|
|
||||||
LUpdate
|
|
||||||
FunctionChangeLink
|
|
||||||
(\(par, _, _) -> (par, HeldPlatformSF, uncurry useBreakL $ itemToBreakLists itm HeldPlatformSF))
|
|
||||||
(\(chi, _, up) -> (chi, FunctionChangeSF, up))
|
|
||||||
|
|
||||||
springLinkTest :: LinkTest
|
|
||||||
springLinkTest = LTest (const Nothing) $
|
|
||||||
\ci -> case ci ^. ldtValue . _1 . itType of
|
|
||||||
CRAFT HARDWARE ->
|
|
||||||
Just
|
|
||||||
( LUpdate
|
|
||||||
(FunctionChangeLink)
|
|
||||||
(\(par, _, up) -> (par, MakeAutoSF, up))
|
|
||||||
(\(chi, _, up) -> (chi, FunctionChangeSF, up))
|
|
||||||
)
|
|
||||||
_ -> Nothing
|
|
||||||
|
|
||||||
--itemLinkTestLeft :: Item -> PartiallyCItem -> Maybe LinkUpdate
|
|
||||||
--itemLinkTestLeft itm = _tryLeftLink $
|
|
||||||
-- uncurry useBreakL $ itemToBreakLists itm
|
|
||||||
|
|
||||||
type LDTComb a b = LabelDoubleTree b a -> LabelDoubleTree b a -> Maybe (LabelDoubleTree b a)
|
|
||||||
|
|
||||||
leftIsParentCombine :: LDTComb CItem ItemLink
|
leftIsParentCombine :: LDTComb CItem ItemLink
|
||||||
leftIsParentCombine ltree rtree = do
|
leftIsParentCombine ltree rtree = do
|
||||||
@@ -239,13 +169,6 @@ leftIsParentCombine ltree rtree = do
|
|||||||
return $
|
return $
|
||||||
ltree & ldtRight .:~ (linktype, rtree & ldtValue . _2 .~ sf)
|
ltree & ldtRight .:~ (linktype, rtree & ldtValue . _2 .~ sf)
|
||||||
|
|
||||||
leftIsParentCombine' :: LDTComb CItem ItemLink
|
|
||||||
leftIsParentCombine' ltree rtree = do
|
|
||||||
lu <- (ltree ^. ldtValue . _3 . tryRightLink) rtree --(rtree ^. ldtValue)
|
|
||||||
return $
|
|
||||||
ltree & ldtValue %~ (lu ^. luParentUpdate)
|
|
||||||
& ldtRight %~ (++ [(lu ^. luLinkType, rtree & ldtValue %~ (lu ^. luChildUpdate))])
|
|
||||||
|
|
||||||
rightIsParentCombine :: LDTComb CItem ItemLink
|
rightIsParentCombine :: LDTComb CItem ItemLink
|
||||||
rightIsParentCombine ltree rtree = do
|
rightIsParentCombine ltree rtree = do
|
||||||
let l = leftChildList rtree
|
let l = leftChildList rtree
|
||||||
@@ -254,31 +177,24 @@ rightIsParentCombine ltree rtree = do
|
|||||||
return $
|
return $
|
||||||
rtree & ldtLeft .:~ (linktype, ltree & ldtValue . _2 .~ sf)
|
rtree & ldtLeft .:~ (linktype, ltree & ldtValue . _2 .~ sf)
|
||||||
|
|
||||||
leftChildList :: LabelDoubleTree ItemLink CItem -> [(ItemStructuralFunction, ItemLink)]
|
leftChildList :: LDTree ItemLink CItem -> [(ItemStructuralFunction, ItemLink)]
|
||||||
leftChildList t = foldl' f l (reverse $ t ^.. ldtLeft . each . _1)
|
leftChildList t = foldl' f l (reverse $ t ^.. ldtLeft . each . _1)
|
||||||
where
|
where
|
||||||
l = fst $ itemToBreakLists (t ^. ldtValue . _1) (t ^. ldtValue . _2)
|
l = fst $ itemToBreakLists (t ^. ldtValue . _1) (t ^. ldtValue . _2)
|
||||||
f x y = tail $ dropWhile ((/=y) . snd) x
|
f x y = tail $ dropWhile ((/=y) . snd) x
|
||||||
|
|
||||||
rightChildList :: LabelDoubleTree ItemLink CItem -> [(ItemStructuralFunction, ItemLink)]
|
rightChildList :: LDTree ItemLink CItem -> [(ItemStructuralFunction, ItemLink)]
|
||||||
rightChildList t = foldl' f l (reverse $ t ^.. ldtRight . each . _1)
|
rightChildList t = foldl' f l (reverse $ t ^.. ldtRight . each . _1)
|
||||||
where
|
where
|
||||||
l = snd $ itemToBreakLists (t ^. ldtValue . _1) (t ^. ldtValue . _2)
|
l = snd $ itemToBreakLists (t ^. ldtValue . _1) (t ^. ldtValue . _2)
|
||||||
f x y = tail $ dropWhile ((/=y) . snd) x
|
f x y = tail $ dropWhile ((/=y) . snd) x
|
||||||
|
|
||||||
rightIsParentCombine' :: LDTComb CItem ItemLink
|
|
||||||
rightIsParentCombine' ltree rtree = do
|
|
||||||
lu <- (rtree ^. ldtValue . _3 . tryLeftLink) ltree -- (ltree ^. ldtValue)
|
|
||||||
return $
|
|
||||||
rtree & ldtValue %~ (lu ^. luParentUpdate)
|
|
||||||
& ldtLeft .:~ (lu ^. luLinkType, ltree & ldtValue %~ (lu ^. luChildUpdate))
|
|
||||||
|
|
||||||
leftRightCombine ::
|
leftRightCombine ::
|
||||||
LDTComb a b ->
|
LDTComb a b ->
|
||||||
LDTComb a b ->
|
LDTComb a b ->
|
||||||
LabelDoubleTree b a ->
|
LDTree b a ->
|
||||||
LabelDoubleTree b a ->
|
LDTree b a ->
|
||||||
Maybe (LabelDoubleTree b a)
|
Maybe (LDTree b a)
|
||||||
leftRightCombine f f' t1 t2 = f t1 t2 <|> checkdepth t1 t2
|
leftRightCombine f f' t1 t2 = f t1 t2 <|> checkdepth t1 t2
|
||||||
where
|
where
|
||||||
checkdepth t t'@(LDT x ls rs) = fromMaybe (checktop t t') $ do
|
checkdepth t t'@(LDT x ls rs) = fromMaybe (checktop t t') $ do
|
||||||
@@ -297,7 +213,7 @@ joinItemsInList f xs = snd $ h (xs, [])
|
|||||||
Just w -> h (w : ys, zs)
|
Just w -> h (w : ys, zs)
|
||||||
|
|
||||||
-- this puts the first elements in the intmap at the end of the list
|
-- this puts the first elements in the intmap at the end of the list
|
||||||
invLDT :: IM.IntMap Item -> [LabelDoubleTree ItemLink CItem]
|
invLDT :: IM.IntMap Item -> [LDTree ItemLink CItem]
|
||||||
invLDT =
|
invLDT =
|
||||||
joinItemsInList tryAttachItems . IM.elems
|
joinItemsInList tryAttachItems . IM.elems
|
||||||
. fmap (singleLDT . baseCI)
|
. fmap (singleLDT . baseCI)
|
||||||
@@ -321,18 +237,16 @@ invAdj :: IM.IntMap Item -> IM.IntMap (Maybe (Int, Int), [Int], [Int])
|
|||||||
invAdj = IM.unions . map g . invLDT
|
invAdj = IM.unions . map g . invLDT
|
||||||
where
|
where
|
||||||
g = dtToLRAdj getid . ldtToDT
|
g = dtToLRAdj getid . ldtToDT
|
||||||
getid (itm, _, _) =
|
getid (itm, _) =
|
||||||
fromMaybe
|
fromMaybe
|
||||||
(error ("invAdj item " ++ show (_itID itm) ++ " location: " ++ show (itm ^? itLocation)))
|
(error ("invAdj item " ++ show (_itID itm) ++ " location: " ++ show (itm ^? itLocation)))
|
||||||
$ itm ^? itLocation . ilInvID
|
$ itm ^? itLocation . ilInvID
|
||||||
|
|
||||||
-- returns an intmap with trees for (only!) root items, indexed by inventory position
|
-- returns an intmap with trees for (only!) root items, indexed by inventory position
|
||||||
invRootTrees :: IM.IntMap Item -> IM.IntMap (LabelDoubleTree ItemLink CItem)
|
invRootTrees :: IM.IntMap Item -> IM.IntMap (LDTree ItemLink CItem)
|
||||||
invRootTrees = IM.fromDistinctAscList . reverse . map getid . invLDT
|
invRootTrees = IM.fromDistinctAscList . reverse . map getid . invLDT
|
||||||
where
|
where
|
||||||
getid ::
|
getid :: LDTree ItemLink CItem -> (Int, LDTree ItemLink CItem)
|
||||||
LabelDoubleTree ItemLink CItem ->
|
|
||||||
(Int, LabelDoubleTree ItemLink CItem)
|
|
||||||
getid t = (t ^?! ldtValue . _1 . itLocation . ilInvID, t)
|
getid t = (t ^?! ldtValue . _1 . itLocation . ilInvID, t)
|
||||||
|
|
||||||
-- returns an intmap with indents and locations for all items
|
-- returns an intmap with indents and locations for all items
|
||||||
|
|||||||
@@ -978,7 +978,7 @@ 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 40;" C
|
||||||
LDTBottomNode src/Dodge/Data/DoubleTree.hs 28;" C
|
LDTBottomNode src/Dodge/Data/DoubleTree.hs 28;" C
|
||||||
LDTComb src/Dodge/Item/Grammar.hs 230;" t
|
LDTComb src/Dodge/Item/Grammar.hs 233;" 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
|
||||||
@@ -3352,7 +3352,7 @@ 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 323;" f
|
allInvLocs src/Dodge/Item/Grammar.hs 326;" 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
|
||||||
@@ -3453,7 +3453,7 @@ 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 407;" 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 184;" f
|
baseCI src/Dodge/Item/Grammar.hs 186;" f
|
||||||
baseCaneShape src/Dodge/Item/Draw/SPic.hs 313;" f
|
baseCaneShape src/Dodge/Item/Draw/SPic.hs 313;" 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
|
||||||
@@ -4305,8 +4305,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 117;" f
|
extraWeaponLinks src/Dodge/Item/Grammar.hs 119;" f
|
||||||
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 126;" f
|
extraWeaponLinksBelow src/Dodge/Item/Grammar.hs 128;" 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
|
||||||
@@ -4425,11 +4425,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 133;" f
|
getAmmoLinks src/Dodge/Item/Grammar.hs 135;" 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 112;" f
|
getAutoSpringLinks src/Dodge/Item/Grammar.hs 114;" 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
|
||||||
@@ -4646,16 +4646,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 304;" f
|
invAdj src/Dodge/Item/Grammar.hs 307;" 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 284;" f
|
invLDT src/Dodge/Item/Grammar.hs 287;" f
|
||||||
invRootItemEffs src/Dodge/Creature/State.hs 147;" f
|
invRootItemEffs src/Dodge/Creature/State.hs 147;" f
|
||||||
invRootMap src/Dodge/Item/Grammar.hs 293;" f
|
invRootMap src/Dodge/Item/Grammar.hs 296;" f
|
||||||
invRootTrees src/Dodge/Item/Grammar.hs 314;" f
|
invRootTrees src/Dodge/Item/Grammar.hs 317;" 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 +4703,7 @@ 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 187;" 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
|
||||||
@@ -4735,7 +4735,7 @@ 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 59;" f
|
||||||
itemToFunction src/Dodge/Item/Grammar.hs 139;" f
|
itemToFunction src/Dodge/Item/Grammar.hs 141;" 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 +4747,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 274;" f
|
joinItemsInList src/Dodge/Item/Grammar.hs 277;" 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
|
||||||
@@ -4781,7 +4781,7 @@ 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 193;" f
|
laserLinkTest src/Dodge/Item/Grammar.hs 196;" f
|
||||||
lastMap src/Dodge/DoubleTree.hs 174;" 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
|
||||||
@@ -4796,11 +4796,10 @@ ldtToIM src/Dodge/DoubleTree.hs 143;" f
|
|||||||
ldtToIndentList src/Dodge/DoubleTree.hs 146;" f
|
ldtToIndentList src/Dodge/DoubleTree.hs 146;" f
|
||||||
ldtToLoc src/Dodge/DoubleTree.hs 187;" f
|
ldtToLoc src/Dodge/DoubleTree.hs 187;" f
|
||||||
left src/DoubleStack.hs 16;" f
|
left src/DoubleStack.hs 16;" f
|
||||||
leftChildList src/Dodge/Item/Grammar.hs 250;" f
|
leftChildList src/Dodge/Item/Grammar.hs 251;" f
|
||||||
leftIsParentCombine src/Dodge/Item/Grammar.hs 235;" f
|
leftIsParentCombine src/Dodge/Item/Grammar.hs 235;" f
|
||||||
leftIsParentCombine' src/Dodge/Item/Grammar.hs 232;" f
|
|
||||||
leftPad src/Padding.hs 15;" f
|
leftPad src/Padding.hs 15;" f
|
||||||
leftRightCombine src/Dodge/Item/Grammar.hs 260;" f
|
leftRightCombine src/Dodge/Item/Grammar.hs 263;" f
|
||||||
legsSPic src/Dodge/Item/Draw/SPic.hs 477;" f
|
legsSPic src/Dodge/Item/Draw/SPic.hs 477;" 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
|
||||||
@@ -4828,8 +4827,8 @@ 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 196;" f
|
llleft src/Dodge/Item/Grammar.hs 199;" f
|
||||||
llright src/Dodge/Item/Grammar.hs 202;" 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
|
||||||
@@ -5537,8 +5536,8 @@ 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
|
||||||
rightIsParentCombine src/Dodge/Item/Grammar.hs 242;" f
|
rightChildList src/Dodge/Item/Grammar.hs 257;" f
|
||||||
rightIsParentCombine' src/Dodge/Item/Grammar.hs 253;" f
|
rightIsParentCombine src/Dodge/Item/Grammar.hs 243;" 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
|
||||||
@@ -5886,7 +5885,7 @@ 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 214;" 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
|
||||||
@@ -5943,7 +5942,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 174;" f
|
structureToPotentialFunction src/Dodge/Item/Grammar.hs 176;" 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
|
||||||
@@ -6056,7 +6055,7 @@ 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 207;" 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
|
||||||
|
|||||||
Reference in New Issue
Block a user