Cleanup
This commit is contained in:
+1
-65
@@ -1,65 +1 @@
|
|||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:39:1-9: warning: [-Wunused-top-binds]
|
All good (620 modules, at 16:31:55)
|
||||||
Defined but not used: ‘cisToItem’
|
|
||||||
|
|
|
||||||
39 | cisToItem (x, _, _, _) = x
|
|
||||||
| ^^^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:43:10-12: warning: [-Wunused-matches]
|
|
||||||
Defined but not used: ‘hit’
|
|
||||||
|
|
|
||||||
43 | HELD hit -> (itm, WeaponPlatformSF, useBreakListsLinkTest
|
|
||||||
| ^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:52:1-16: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘baseComposedItem’
|
|
||||||
|
|
|
||||||
52 | baseComposedItem ibt itm = case ibt of
|
|
||||||
| ^^^^^^^^^^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:63:1-16: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘heldComposedItem’
|
|
||||||
|
|
|
||||||
63 | heldComposedItem itm hit = case hit of
|
|
||||||
| ^^^^^^^^^^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:74:1-16: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘ammoComposedItem’
|
|
||||||
|
|
|
||||||
74 | ammoComposedItem itm = fromMaybe (error "in ammoComposedItem, wrong item") $ do
|
|
||||||
| ^^^^^^^^^^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:79:1-7: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘baseCIS’
|
|
||||||
|
|
|
||||||
79 | baseCIS itm =
|
|
||||||
| ^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:99:1-19: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘leftIsParentCombine’
|
|
||||||
|
|
|
||||||
99 | leftIsParentCombine (LDT (itm, p, lc, rc) lt rt) t'@(LDT (_, p', _, _) _ _) = do
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:106:1-20: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘rightIsParentCombine’
|
|
||||||
|
|
|
||||||
106 | rightIsParentCombine t'@(LDT (_, p', _, _) _ _) (LDT (itm, p, lc, rc) lt rt) = do
|
|
||||||
| ^^^^^^^^^^^^^^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:138:1-6: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘invLDT’
|
|
||||||
|
|
|
||||||
138 | invLDT =
|
|
||||||
| ^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:161:1-10: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘invRootMap’
|
|
||||||
|
|
|
||||||
161 | invRootMap = foldMap (dtToIntMapWithRoot (^?! _1 . itLocation . ilInvID) . ldtToDT) . invLDT
|
|
||||||
| ^^^^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:175:1-6: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘invAdj’
|
|
||||||
|
|
|
||||||
175 | invAdj im = do
|
|
||||||
| ^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:199:1-11: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘invIndentIM’
|
|
||||||
|
|
|
||||||
199 | invIndentIM = IM.fromAscList . zip [0 ..] . reverse . map (over _1 cisToItem) . concatMap ldtToIndentList . invLDT
|
|
||||||
| ^^^^^^^^^^^
|
|
||||||
/home/justin/Haskell/loop/src/Dodge/Item/Grammar.hs:206:1-8: warning: [-Wunused-top-binds]
|
|
||||||
Defined but not used: ‘invTrees’
|
|
||||||
|
|
|
||||||
206 | invTrees = IM.unions . map (ldtToIM getindex) . map (fmap cisToItem) . invLDT
|
|
||||||
| ^^^^^^^^
|
|
||||||
|
|||||||
@@ -27,7 +27,7 @@ useRootItem :: Int -> World -> World
|
|||||||
useRootItem crid w = fromMaybe w $ do
|
useRootItem crid w = fromMaybe w $ do
|
||||||
cr <- w ^? cWorld . lWorld . creatures . ix crid
|
cr <- w ^? cWorld . lWorld . creatures . ix crid
|
||||||
itRef <- cr ^? crManipulation . manObject . imRootItem
|
itRef <- cr ^? crManipulation . manObject . imRootItem
|
||||||
it <- invTrees' (_crInv cr) ^? ix itRef
|
it <- invTrees (_crInv cr) ^? ix itRef
|
||||||
return $
|
return $
|
||||||
itemEffect cr it w
|
itemEffect cr it w
|
||||||
& worldEventFlags . at InventoryChange ?~ ()
|
& worldEventFlags . at InventoryChange ?~ ()
|
||||||
@@ -115,7 +115,7 @@ useItemLeftClick' :: Creature -> World -> World
|
|||||||
useItemLeftClick' cr' w = fromMaybe w $ do
|
useItemLeftClick' cr' w = fromMaybe w $ do
|
||||||
cr <- w ^? cWorld . lWorld . creatures . ix (_crID cr')
|
cr <- w ^? cWorld . lWorld . creatures . ix (_crID cr')
|
||||||
itRef <- cr ^? crManipulation . manObject . imSelectedItem
|
itRef <- cr ^? crManipulation . manObject . imSelectedItem
|
||||||
it <- invTrees' (_crInv cr) ^? ix itRef
|
it <- invTrees (_crInv cr) ^? ix itRef
|
||||||
return $
|
return $
|
||||||
itemEffect cr it w
|
itemEffect cr it w
|
||||||
& worldEventFlags . at InventoryChange ?~ ()
|
& worldEventFlags . at InventoryChange ?~ ()
|
||||||
|
|||||||
@@ -24,7 +24,7 @@ data ItemStructuralFunction
|
|||||||
= WeaponPlatformSF
|
= WeaponPlatformSF
|
||||||
| WeaponScopeSF
|
| WeaponScopeSF
|
||||||
| WeaponTargetingSF
|
| WeaponTargetingSF
|
||||||
| AmmoMagSF
|
| AmmoMagSF AmmoType
|
||||||
| RemoteScreenSF
|
| RemoteScreenSF
|
||||||
| UncomposableIsolateSF
|
| UncomposableIsolateSF
|
||||||
| AmmoModifierSF AmmoType
|
| AmmoModifierSF AmmoType
|
||||||
|
|||||||
@@ -116,7 +116,7 @@ updateDisplaySections w cfig sss =
|
|||||||
--invitems' = MIM.merge MIM.dropMissing MIM.dropMissing (MIM.zipWithMatched $ const addindent) indents $ IM.mapWithKey (invSelectionItem cr) inv
|
--invitems' = MIM.merge MIM.dropMissing MIM.dropMissing (MIM.zipWithMatched $ const addindent) indents $ IM.mapWithKey (invSelectionItem cr) inv
|
||||||
invitems' = IM.mapWithKey (invSelectionItem cr) inv
|
invitems' = IM.mapWithKey (invSelectionItem cr) inv
|
||||||
cr = you w
|
cr = you w
|
||||||
inv = invIndentIM' $ _crInv (you w)
|
inv = invIndentIM $ _crInv (you w)
|
||||||
--indents = indentInv inv
|
--indents = indentInv inv
|
||||||
--inv = indentInv $ _crInv (you w)
|
--inv = indentInv $ _crInv (you w)
|
||||||
nfreeslots = crNumFreeSlots cr
|
nfreeslots = crNumFreeSlots cr
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ import Control.Applicative
|
|||||||
-- assumes all item locations inside the items are correct
|
-- assumes all item locations inside the items are correct
|
||||||
tryGetRootAttachedFromInvID :: Int -> IM.IntMap Item -> Maybe (Int, IS.IntSet)
|
tryGetRootAttachedFromInvID :: Int -> IM.IntMap Item -> Maybe (Int, IS.IntSet)
|
||||||
tryGetRootAttachedFromInvID invid im = do
|
tryGetRootAttachedFromInvID invid im = do
|
||||||
let imroots = invRootMap' im
|
let imroots = invRootMap im
|
||||||
theroot = fromMaybe invid $ imroots ^? ix invid . _1 . _Just
|
theroot = fromMaybe invid $ imroots ^? ix invid . _1 . _Just
|
||||||
t <- imroots ^? ix theroot . _2
|
t <- imroots ^? ix theroot . _2
|
||||||
--return (theroot, foldMap (IS.singleton . (^?! _1 . itLocation . ilInvID)) t)
|
--return (theroot, foldMap (IS.singleton . (^?! _1 . itLocation . ilInvID)) t)
|
||||||
@@ -31,7 +31,7 @@ tryGetRootAttachedFromInvID invid im = do
|
|||||||
-- location ids
|
-- location ids
|
||||||
tryGetRootItemInvID :: Int -> Creature -> Maybe Int
|
tryGetRootItemInvID :: Int -> Creature -> Maybe Int
|
||||||
tryGetRootItemInvID i cr = do
|
tryGetRootItemInvID i cr = do
|
||||||
let adj = case invAdj' (_crInv cr) of
|
let adj = case invAdj (_crInv cr) of
|
||||||
Left str -> error $ "tryToGetRootItemInvID: "++ str
|
Left str -> error $ "tryToGetRootItemInvID: "++ str
|
||||||
Right x -> x
|
Right x -> x
|
||||||
theroot <- adj ^? ix i
|
theroot <- adj ^? ix i
|
||||||
|
|||||||
+23
-99
@@ -1,8 +1,8 @@
|
|||||||
module Dodge.Item.Grammar (
|
module Dodge.Item.Grammar (
|
||||||
invTrees',
|
invTrees,
|
||||||
invIndentIM',
|
invIndentIM,
|
||||||
invAdj',
|
invAdj,
|
||||||
invRootMap',
|
invRootMap,
|
||||||
) where
|
) where
|
||||||
|
|
||||||
import Control.Applicative
|
import Control.Applicative
|
||||||
@@ -17,10 +17,6 @@ import Dodge.Data.Item
|
|||||||
import Dodge.DoubleTree
|
import Dodge.DoubleTree
|
||||||
import ListHelp
|
import ListHelp
|
||||||
|
|
||||||
type ComposedItemStructure =
|
|
||||||
(Item, ComposedItem, [(ComposeLinkType, ComposedItem)], [(ComposeLinkType, ComposedItem)])
|
|
||||||
type CIL = (ComposedItem, [(ComposeLinkType, ComposedItem)], [(ComposeLinkType, ComposedItem)])
|
|
||||||
|
|
||||||
useBreakListsLinkTest :: [(ItemStructuralFunction,ComposeLinkType)]
|
useBreakListsLinkTest :: [(ItemStructuralFunction,ComposeLinkType)]
|
||||||
-> [(ItemStructuralFunction,ComposeLinkType)]
|
-> [(ItemStructuralFunction,ComposeLinkType)]
|
||||||
-> LinkTest
|
-> LinkTest
|
||||||
@@ -35,80 +31,39 @@ useBreakListsLinkTest llist rlist = LinkTest ltest rtest
|
|||||||
(_,linktype) <- safeHead xs
|
(_,linktype) <- safeHead xs
|
||||||
return $ LinkUpdate linktype (set _3 (useBreakListsLinkTest llist (tail xs))) id
|
return $ LinkUpdate linktype (set _3 (useBreakListsLinkTest llist (tail xs))) id
|
||||||
|
|
||||||
cisToItem :: ComposedItemStructure -> Item
|
|
||||||
cisToItem (x, _, _, _) = x
|
|
||||||
|
|
||||||
basePartiallyComposedItem :: Item -> PartiallyComposedItem
|
basePartiallyComposedItem :: Item -> PartiallyComposedItem
|
||||||
basePartiallyComposedItem itm = case itm ^. itType . iyBase of
|
basePartiallyComposedItem itm = case itm ^. itType . iyBase of
|
||||||
HELD hit -> (itm, WeaponPlatformSF, useBreakListsLinkTest
|
HELD _ -> (itm, WeaponPlatformSF, useBreakListsLinkTest
|
||||||
[]
|
(map (\(i,a) -> (AmmoMagSF a,AmmoInLink i a)) (IM.toList $ itm ^. itUse . heldAmmoTypes))
|
||||||
[(WeaponTargetingSF,WeaponTargetingLink), (WeaponScopeSF,WeaponScopeLink)]
|
[(WeaponTargetingSF,WeaponTargetingLink), (WeaponScopeSF,WeaponScopeLink)]
|
||||||
)
|
)
|
||||||
ATTACH (TARGETATTACH{}) -> (itm,WeaponTargetingSF, LinkTest (const Nothing) (const Nothing))
|
AMMOMAG _ -> ammoComposedItem itm
|
||||||
|
ATTACH TARGETATTACH{} -> (itm,WeaponTargetingSF, LinkTest (const Nothing) (const Nothing))
|
||||||
|
ATTACH ZOOMSCOPE -> (itm,WeaponScopeSF, LinkTest (const Nothing) (const Nothing))
|
||||||
|
ATTACH ROCKETHOMER -> (itm,AmmoModifierSF ProjectileAmmo, LinkTest (const Nothing) (const Nothing))
|
||||||
|
ATTACH REMOTESCREEN -> (itm,AmmoModifierSF ProjectileAmmo, LinkTest (const Nothing) (const Nothing))
|
||||||
_ -> (itm,UncomposableIsolateSF, LinkTest (const Nothing) (const Nothing))
|
_ -> (itm,UncomposableIsolateSF, LinkTest (const Nothing) (const Nothing))
|
||||||
--AMMOMAG _ -> ammoComposedItem' itm
|
--AMMOMAG _ -> ammoComposedItem' itm
|
||||||
|
|
||||||
baseComposedItem :: ItemBaseType -> Item -> CIL
|
ammoComposedItem :: Item -> PartiallyComposedItem
|
||||||
baseComposedItem ibt itm = case ibt of
|
|
||||||
HELD hit -> heldComposedItem itm hit
|
|
||||||
AMMOMAG _ -> ammoComposedItem itm
|
|
||||||
ATTACH BULLETSYNTHESIZER -> (AmmoModifierCI BulletAmmo, [], [])
|
|
||||||
ATTACH (TARGETATTACH{}) -> (WeaponTargetingCI, [], [])
|
|
||||||
ATTACH ZOOMSCOPE -> (WeaponScopeCI, [], [])
|
|
||||||
ATTACH ROCKETHOMER -> (AmmoModifierCI ProjectileAmmo, [], [])
|
|
||||||
ATTACH REMOTESCREEN -> (AmmoModifierCI ProjectileAmmo, [], [])
|
|
||||||
_ -> (UncomposableCI, [], [])
|
|
||||||
|
|
||||||
heldComposedItem :: Item -> HeldItemType -> CIL
|
|
||||||
heldComposedItem itm hit = case hit of
|
|
||||||
_ ->
|
|
||||||
( WeaponCI
|
|
||||||
, map f ats
|
|
||||||
, [(WeaponTargetingLink, WeaponTargetingCI), (WeaponScopeLink, WeaponScopeCI)]
|
|
||||||
)
|
|
||||||
where
|
|
||||||
ats = maybe [] IM.toList $ itm ^? itUse . heldAmmoTypes
|
|
||||||
f (i, atype) = (AmmoInLink i atype, AmmoCI atype)
|
|
||||||
|
|
||||||
ammoComposedItem :: Item -> CIL
|
|
||||||
ammoComposedItem itm = fromMaybe (error "in ammoComposedItem, wrong item") $ do
|
ammoComposedItem itm = fromMaybe (error "in ammoComposedItem, wrong item") $ do
|
||||||
atype <- itm ^? itUse . amagType
|
atype <- itm ^? itUse . amagType
|
||||||
return (AmmoCI atype, [(AmmoModLink, AmmoModifierCI atype)], [])
|
return (itm, AmmoMagSF atype, useBreakListsLinkTest [(AmmoModifierSF atype, AmmoModLink)] [])
|
||||||
|
|
||||||
baseCIS :: Item -> ComposedItemStructure
|
|
||||||
baseCIS itm =
|
|
||||||
let (a, b, c) = baseComposedItem (itm ^. itType . iyBase) itm
|
|
||||||
in (itm, a, b, c)
|
|
||||||
|
|
||||||
type LDTComb a b = LabelDoubleTree b a -> LabelDoubleTree b a -> Maybe (LabelDoubleTree b a)
|
type LDTComb a b = LabelDoubleTree b a -> LabelDoubleTree b a -> Maybe (LabelDoubleTree b a)
|
||||||
|
|
||||||
leftIsParentCombine' :: LDTComb PartiallyComposedItem ComposeLinkType
|
leftIsParentCombine :: LDTComb PartiallyComposedItem ComposeLinkType
|
||||||
leftIsParentCombine' ltree rtree = do
|
leftIsParentCombine ltree rtree = do
|
||||||
lu <- (ltree ^. ldtValue . _3 . tryRightLink) (rtree ^. ldtValue)
|
lu <- (ltree ^. ldtValue . _3 . tryRightLink) (rtree ^. ldtValue)
|
||||||
return $ ltree & ldtValue %~ (lu ^. luParentUpdate)
|
return $ ltree & ldtValue %~ (lu ^. luParentUpdate)
|
||||||
& ldtRight %~ (++ [(lu ^. luLinkType, rtree & ldtValue %~ (lu ^. luChildUpdate))])
|
& ldtRight %~ (++ [(lu ^. luLinkType, rtree & ldtValue %~ (lu ^. luChildUpdate))])
|
||||||
|
|
||||||
rightIsParentCombine' :: LDTComb PartiallyComposedItem ComposeLinkType
|
rightIsParentCombine :: LDTComb PartiallyComposedItem ComposeLinkType
|
||||||
rightIsParentCombine' ltree rtree = do
|
rightIsParentCombine ltree rtree = do
|
||||||
lu <- (rtree ^. ldtValue . _3 . tryLeftLink) (ltree ^. ldtValue)
|
lu <- (rtree ^. ldtValue . _3 . tryLeftLink) (ltree ^. ldtValue)
|
||||||
return $ rtree & ldtValue %~ (lu ^. luParentUpdate)
|
return $ rtree & ldtValue %~ (lu ^. luParentUpdate)
|
||||||
& ldtLeft .:~ (lu ^. luLinkType, ltree & ldtValue %~ (lu ^. luChildUpdate))
|
& ldtLeft .:~ (lu ^. luLinkType, ltree & ldtValue %~ (lu ^. luChildUpdate))
|
||||||
|
|
||||||
-- the following imposes a strict ordering on the possible attachments
|
|
||||||
leftIsParentCombine :: LDTComb ComposedItemStructure ComposeLinkType
|
|
||||||
leftIsParentCombine (LDT (itm, p, lc, rc) lt rt) t'@(LDT (_, p', _, _) _ _) = do
|
|
||||||
let f (_, x) = p' == x
|
|
||||||
(_, ys) = break f rc
|
|
||||||
(linktype, _) <- safeHead ys
|
|
||||||
return $ LDT (itm, p, lc, tail ys) lt (rt ++ [(linktype, t')])
|
|
||||||
|
|
||||||
rightIsParentCombine :: LDTComb ComposedItemStructure ComposeLinkType
|
|
||||||
rightIsParentCombine t'@(LDT (_, p', _, _) _ _) (LDT (itm, p, lc, rc) lt rt) = do
|
|
||||||
let f (_, x) = p' == x
|
|
||||||
(_, ys) = break f lc
|
|
||||||
(linktype, _) <- safeHead ys
|
|
||||||
return $ LDT (itm, p, tail ys, rc) ((linktype, t') : lt) rt
|
|
||||||
|
|
||||||
leftRightCombine ::
|
leftRightCombine ::
|
||||||
LDTComb a b ->
|
LDTComb a b ->
|
||||||
LDTComb a b ->
|
LDTComb a b ->
|
||||||
@@ -134,14 +89,9 @@ joinItemsInList f xs = snd $ h (xs, [])
|
|||||||
Nothing -> h (ys, (y : z : zs))
|
Nothing -> h (ys, (y : z : zs))
|
||||||
Just w -> h ((w : ys), zs)
|
Just w -> h ((w : ys), zs)
|
||||||
|
|
||||||
invLDT :: IM.IntMap Item -> [LabelDoubleTree ComposeLinkType ComposedItemStructure]
|
invLDT :: IM.IntMap Item -> [LabelDoubleTree ComposeLinkType PartiallyComposedItem]
|
||||||
invLDT =
|
invLDT =
|
||||||
joinItemsInList (leftRightCombine leftIsParentCombine rightIsParentCombine) . IM.elems
|
joinItemsInList (leftRightCombine leftIsParentCombine rightIsParentCombine) . IM.elems
|
||||||
. fmap (singleLDT . baseCIS)
|
|
||||||
|
|
||||||
invLDT' :: IM.IntMap Item -> [LabelDoubleTree ComposeLinkType PartiallyComposedItem]
|
|
||||||
invLDT' =
|
|
||||||
joinItemsInList (leftRightCombine leftIsParentCombine' rightIsParentCombine') . IM.elems
|
|
||||||
. fmap (singleLDT . basePartiallyComposedItem)
|
. fmap (singleLDT . basePartiallyComposedItem)
|
||||||
|
|
||||||
-- this has provoked an error: hopefully it will crop up at some point and get
|
-- this has provoked an error: hopefully it will crop up at some point and get
|
||||||
@@ -157,11 +107,8 @@ invLDT' =
|
|||||||
-- location ids
|
-- location ids
|
||||||
-- consider explicitly reseting the inventory ids (but this probably really
|
-- consider explicitly reseting the inventory ids (but this probably really
|
||||||
-- should be done upstream anyway in the actually creature inventory)
|
-- should be done upstream anyway in the actually creature inventory)
|
||||||
invRootMap :: IM.IntMap Item -> IM.IntMap (Maybe Int, DoubleTree ComposedItemStructure)
|
invRootMap :: IM.IntMap Item -> IM.IntMap (Maybe Int, DoubleTree Item)
|
||||||
invRootMap = foldMap (dtToIntMapWithRoot (^?! _1 . itLocation . ilInvID) . ldtToDT) . invLDT
|
invRootMap = foldMap (dtToIntMapWithRoot (^?! itLocation . ilInvID) . fmap (^. _1) . ldtToDT) . invLDT
|
||||||
|
|
||||||
invRootMap' :: IM.IntMap Item -> IM.IntMap (Maybe Int, DoubleTree Item)
|
|
||||||
invRootMap' = foldMap (dtToIntMapWithRoot (^?! itLocation . ilInvID) . fmap (^. _1) . ldtToDT) . invLDT'
|
|
||||||
|
|
||||||
--invRootMap = foldMap (dtToRootIntMap g . ldtToDT) . invLDT
|
--invRootMap = foldMap (dtToRootIntMap g . ldtToDT) . invLDT
|
||||||
-- where
|
-- where
|
||||||
@@ -175,18 +122,6 @@ invAdj :: IM.IntMap Item -> Either String (IM.IntMap (Maybe (Int, Int), [Int], [
|
|||||||
invAdj im = do
|
invAdj im = do
|
||||||
l <- mapM g $ invLDT im
|
l <- mapM g $ invLDT im
|
||||||
return $ IM.unions l
|
return $ IM.unions l
|
||||||
where
|
|
||||||
g = dtToLRAdjEither getid . ldtToDT
|
|
||||||
getid (itm, _, _, _) =
|
|
||||||
maybe
|
|
||||||
(Left ("invAdj item " ++ show (_itID itm) ++ " location: " ++ show (itm ^? itLocation)))
|
|
||||||
Right
|
|
||||||
$ itm ^? itLocation . ilInvID
|
|
||||||
|
|
||||||
invAdj' :: IM.IntMap Item -> Either String (IM.IntMap (Maybe (Int, Int), [Int], [Int]))
|
|
||||||
invAdj' im = do
|
|
||||||
l <- mapM g $ invLDT' im
|
|
||||||
return $ IM.unions l
|
|
||||||
where
|
where
|
||||||
g = dtToLRAdjEither getid . ldtToDT
|
g = dtToLRAdjEither getid . ldtToDT
|
||||||
getid (itm, _, _) =
|
getid (itm, _, _) =
|
||||||
@@ -196,22 +131,11 @@ invAdj' im = do
|
|||||||
$ itm ^? itLocation . ilInvID
|
$ itm ^? itLocation . ilInvID
|
||||||
|
|
||||||
invIndentIM :: IM.IntMap Item -> IM.IntMap (Item, Int, LabelDoubleTreeNodeType ComposeLinkType)
|
invIndentIM :: IM.IntMap Item -> IM.IntMap (Item, Int, LabelDoubleTreeNodeType ComposeLinkType)
|
||||||
invIndentIM = IM.fromAscList . zip [0 ..] . reverse . map (over _1 cisToItem) . concatMap ldtToIndentList . invLDT
|
invIndentIM = IM.fromAscList . zip [0 ..] . reverse . map (over _1 (^. _1))
|
||||||
|
. concatMap ldtToIndentList . invLDT
|
||||||
invIndentIM' :: IM.IntMap Item -> IM.IntMap (Item, Int, LabelDoubleTreeNodeType ComposeLinkType)
|
|
||||||
invIndentIM' = IM.fromAscList . zip [0 ..] . reverse . map (over _1 (^. _1))
|
|
||||||
. concatMap ldtToIndentList . invLDT'
|
|
||||||
|
|
||||||
invTrees :: IM.IntMap Item -> IM.IntMap (LabelDoubleTree ComposeLinkType Item)
|
invTrees :: IM.IntMap Item -> IM.IntMap (LabelDoubleTree ComposeLinkType Item)
|
||||||
invTrees = IM.unions . map (ldtToIM getindex) . map (fmap cisToItem) . invLDT
|
invTrees = IM.unions . map (ldtToIM getindex) . map (fmap (^. _1)) . invLDT
|
||||||
where
|
|
||||||
getindex :: Item -> Int
|
|
||||||
getindex i =
|
|
||||||
fromMaybe (error "in invTrees try to get non-inventory item tree") $
|
|
||||||
i ^? itLocation . ilInvID
|
|
||||||
|
|
||||||
invTrees' :: IM.IntMap Item -> IM.IntMap (LabelDoubleTree ComposeLinkType Item)
|
|
||||||
invTrees' = IM.unions . map (ldtToIM getindex) . map (fmap (^. _1)) . invLDT'
|
|
||||||
where
|
where
|
||||||
getindex :: Item -> Int
|
getindex :: Item -> Int
|
||||||
getindex i =
|
getindex i =
|
||||||
|
|||||||
@@ -62,7 +62,7 @@ drawInventory sss w cfig = drawSelectionSections sss (invDisplayParams w) cfig
|
|||||||
where
|
where
|
||||||
iextra = fromMaybe mempty $ do
|
iextra = fromMaybe mempty $ do
|
||||||
inv <- w ^? cWorld . lWorld . creatures . ix 0 . crInv
|
inv <- w ^? cWorld . lWorld . creatures . ix 0 . crInv
|
||||||
let x = case invAdj' inv of
|
let x = case invAdj inv of
|
||||||
Left str -> error $ "drawInventory: " ++ str
|
Left str -> error $ "drawInventory: " ++ str
|
||||||
Right y -> y
|
Right y -> y
|
||||||
return $ inventoryExtra sss cfig w x
|
return $ inventoryExtra sss cfig w x
|
||||||
|
|||||||
@@ -40,7 +40,7 @@ doWdWd we = case we of
|
|||||||
cr <- w ^? cWorld . lWorld . creatures . ix crid
|
cr <- w ^? cWorld . lWorld . creatures . ix crid
|
||||||
--it <- getItem itid w
|
--it <- getItem itid w
|
||||||
itRef <- cr ^? crManipulation . manObject . imSelectedItem
|
itRef <- cr ^? crManipulation . manObject . imSelectedItem
|
||||||
it <- invTrees' (_crInv cr) ^? ix itRef
|
it <- invTrees (_crInv cr) ^? ix itRef
|
||||||
return $ doItCrWdWd f it cr w
|
return $ doItCrWdWd f it cr w
|
||||||
WdWdFromItCrixWdWd it crid f -> \w -> fromMaybe w $ do
|
WdWdFromItCrixWdWd it crid f -> \w -> fromMaybe w $ do
|
||||||
cr <- w ^? cWorld . lWorld . creatures . ix crid
|
cr <- w ^? cWorld . lWorld . creatures . ix crid
|
||||||
|
|||||||
@@ -1342,7 +1342,7 @@ LBoost src/Dodge/Data/Item/HeldUse.hs 56;" C
|
|||||||
LBranches src/TreeExtra.hs 24;" C
|
LBranches src/TreeExtra.hs 24;" C
|
||||||
LDT src/Dodge/Data/DoubleTree.hs 39;" C
|
LDT src/Dodge/Data/DoubleTree.hs 39;" C
|
||||||
LDTBottomNode src/Dodge/Data/DoubleTree.hs 27;" C
|
LDTBottomNode src/Dodge/Data/DoubleTree.hs 27;" C
|
||||||
LDTComb src/Dodge/Item/Grammar.hs 83;" t
|
LDTComb src/Dodge/Item/Grammar.hs 92;" t
|
||||||
LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 25;" C
|
LDTMidAboveNode src/Dodge/Data/DoubleTree.hs 25;" C
|
||||||
LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 26;" C
|
LDTMidBelowNode src/Dodge/Data/DoubleTree.hs 26;" C
|
||||||
LDTRootNode src/Dodge/Data/DoubleTree.hs 23;" C
|
LDTRootNode src/Dodge/Data/DoubleTree.hs 23;" C
|
||||||
@@ -4418,7 +4418,8 @@ allHotkeys src/Dodge/Creature/YourControl.hs 52;" f
|
|||||||
allVisibleWalls src/Dodge/Base/Collide.hs 131;" f
|
allVisibleWalls src/Dodge/Base/Collide.hs 131;" f
|
||||||
alongSegBy src/Geometry.hs 43;" f
|
alongSegBy src/Geometry.hs 43;" f
|
||||||
ammoCheckI src/Dodge/Item/Weapon/TriggerType.hs 118;" f
|
ammoCheckI src/Dodge/Item/Weapon/TriggerType.hs 118;" f
|
||||||
ammoComposedItem src/Dodge/Item/Grammar.hs 73;" f
|
ammoComposedItem src/Dodge/Item/Grammar.hs 82;" f
|
||||||
|
ammoComposedItem' src/Dodge/Item/Grammar.hs 77;" f
|
||||||
ammoTweakStrings src/Dodge/Render/HUD.hs 288;" f
|
ammoTweakStrings src/Dodge/Render/HUD.hs 288;" f
|
||||||
amr src/Dodge/Item/Held/Rod.hs 46;" f
|
amr src/Dodge/Item/Held/Rod.hs 46;" f
|
||||||
amr src/Dodge/Item/Weapon/BulletGun/Rod.hs 56;" f
|
amr src/Dodge/Item/Weapon/BulletGun/Rod.hs 56;" f
|
||||||
@@ -4546,9 +4547,9 @@ baseAMRShape src/Dodge/Item/Draw/SPic.hs 444;" f
|
|||||||
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
|
baseBlockPane src/Dodge/Placement/Instance/Wall.hs 86;" f
|
||||||
baseBlockPane src/Dodge/Placements/Wall.hs 63;" f
|
baseBlockPane src/Dodge/Placements/Wall.hs 63;" f
|
||||||
baseBlockPane src/Dodge/Room/Placement.hs 93;" f
|
baseBlockPane src/Dodge/Room/Placement.hs 93;" f
|
||||||
baseCIS src/Dodge/Item/Grammar.hs 78;" f
|
baseCIS src/Dodge/Item/Grammar.hs 87;" f
|
||||||
baseCaneShape src/Dodge/Item/Draw/SPic.hs 250;" f
|
baseCaneShape src/Dodge/Item/Draw/SPic.hs 250;" f
|
||||||
baseComposedItem src/Dodge/Item/Grammar.hs 51;" f
|
baseComposedItem src/Dodge/Item/Grammar.hs 55;" f
|
||||||
baseDebris src/Dodge/Block/Debris.hs 122;" f
|
baseDebris src/Dodge/Block/Debris.hs 122;" f
|
||||||
baseFloorTileSize src/Tile.hs 38;" f
|
baseFloorTileSize src/Tile.hs 38;" f
|
||||||
basePartiallyComposedItem src/Dodge/Item/Grammar.hs 41;" f
|
basePartiallyComposedItem src/Dodge/Item/Grammar.hs 41;" f
|
||||||
@@ -4886,9 +4887,9 @@ crSpring src/Dodge/Update.hs 643;" f
|
|||||||
crStratConMatches src/Dodge/Creature/Test.hs 72;" f
|
crStratConMatches src/Dodge/Creature/Test.hs 72;" f
|
||||||
crToBox' src/Dodge/Creature/ShadowBox.hs 10;" f
|
crToBox' src/Dodge/Creature/ShadowBox.hs 10;" f
|
||||||
crUpdateInvidLocations src/Dodge/Inventory/FindRoot.hs 29;" f
|
crUpdateInvidLocations src/Dodge/Inventory/FindRoot.hs 29;" f
|
||||||
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 52;" f
|
crUpdateInvidLocations src/Dodge/Inventory/Location.hs 53;" f
|
||||||
crUpdateItemLocations src/Dodge/Inventory/FindRoot.hs 23;" f
|
crUpdateItemLocations src/Dodge/Inventory/FindRoot.hs 23;" f
|
||||||
crUpdateItemLocations src/Dodge/Inventory/Location.hs 46;" f
|
crUpdateItemLocations src/Dodge/Inventory/Location.hs 47;" f
|
||||||
crZoneOfPoint src/Dodge/Base/Zone.hs 54;" f
|
crZoneOfPoint src/Dodge/Base/Zone.hs 54;" f
|
||||||
crZoneSize src/Dodge/Zoning/Creature.hs 39;" f
|
crZoneSize src/Dodge/Zoning/Creature.hs 39;" f
|
||||||
craftInfo src/Dodge/Item/Info.hs 154;" f
|
craftInfo src/Dodge/Item/Info.hs 154;" f
|
||||||
@@ -5726,7 +5727,7 @@ healthTest src/Dodge/Room/LasTurret.hs 93;" f
|
|||||||
heavyBulDams src/Dodge/Item/Weapon/Bullet.hs 38;" f
|
heavyBulDams src/Dodge/Item/Weapon/Bullet.hs 38;" f
|
||||||
heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
|
heightWallPS src/Dodge/Placement/Instance/Wall.hs 13;" f
|
||||||
heldBounds src/Dodge/Item/Module.hs 27;" f
|
heldBounds src/Dodge/Item/Module.hs 27;" f
|
||||||
heldComposedItem src/Dodge/Item/Grammar.hs 62;" f
|
heldComposedItem src/Dodge/Item/Grammar.hs 66;" f
|
||||||
heldEffect src/Dodge/HeldUse.hs 44;" f
|
heldEffect src/Dodge/HeldUse.hs 44;" f
|
||||||
heldInfo src/Dodge/Item/Info.hs 61;" f
|
heldInfo src/Dodge/Item/Info.hs 61;" f
|
||||||
heldItemOffset src/Dodge/Item/HeldOffset.hs 24;" f
|
heldItemOffset src/Dodge/Item/HeldOffset.hs 24;" f
|
||||||
@@ -5840,20 +5841,25 @@ intersectSegsSeg src/Geometry/Intersect.hs 232;" f
|
|||||||
intervalList src/Geometry.hs 315;" f
|
intervalList src/Geometry.hs 315;" f
|
||||||
interweave src/Justify.hs 17;" f
|
interweave src/Justify.hs 17;" 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 160;" f
|
invAdj src/Dodge/Item/Grammar.hs 183;" f
|
||||||
|
invAdj' src/Dodge/Item/Grammar.hs 195;" f
|
||||||
invDimColor src/Dodge/DisplayInventory.hs 140;" f
|
invDimColor src/Dodge/DisplayInventory.hs 140;" f
|
||||||
invDimColor src/Dodge/Inventory/Color.hs 4;" f
|
invDimColor src/Dodge/Inventory/Color.hs 4;" f
|
||||||
invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f
|
invDisplayParams src/Dodge/ListDisplayParams.hs 29;" f
|
||||||
invHead src/Dodge/Render/HUD.hs 296;" f
|
invHead src/Dodge/Render/HUD.hs 296;" f
|
||||||
invIndentIM src/Dodge/Item/Grammar.hs 172;" f
|
invIndentIM src/Dodge/Item/Grammar.hs 207;" f
|
||||||
invLDT src/Dodge/Item/Grammar.hs 131;" f
|
invIndentIM' src/Dodge/Item/Grammar.hs 210;" f
|
||||||
invRootMap src/Dodge/Item/Grammar.hs 149;" f
|
invLDT src/Dodge/Item/Grammar.hs 146;" f
|
||||||
|
invLDT' src/Dodge/Item/Grammar.hs 151;" f
|
||||||
|
invRootMap src/Dodge/Item/Grammar.hs 169;" f
|
||||||
|
invRootMap' src/Dodge/Item/Grammar.hs 172;" f
|
||||||
invSelectionItem src/Dodge/Inventory/SelectionList.hs 35;" f
|
invSelectionItem src/Dodge/Inventory/SelectionList.hs 35;" f
|
||||||
invSelectionItem' src/Dodge/Inventory/SelectionList.hs 17;" f
|
invSelectionItem' src/Dodge/Inventory/SelectionList.hs 17;" f
|
||||||
invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f
|
invShiftPointBy src/Dodge/ShiftPoint.hs 8;" f
|
||||||
invSideEff src/Dodge/Creature/State.hs 236;" f
|
invSideEff src/Dodge/Creature/State.hs 236;" f
|
||||||
invSize src/Dodge/Inventory/CheckSlots.hs 40;" f
|
invSize src/Dodge/Inventory/CheckSlots.hs 40;" f
|
||||||
invTrees src/Dodge/Item/Grammar.hs 175;" f
|
invTrees src/Dodge/Item/Grammar.hs 214;" f
|
||||||
|
invTrees' src/Dodge/Item/Grammar.hs 222;" f
|
||||||
inventoryExtra src/Dodge/Render/HUD.hs 189;" f
|
inventoryExtra src/Dodge/Render/HUD.hs 189;" f
|
||||||
inventoryExtraH src/Dodge/Render/HUD.hs 193;" f
|
inventoryExtraH src/Dodge/Render/HUD.hs 193;" f
|
||||||
inventoryX src/Dodge/Creature.hs 115;" f
|
inventoryX src/Dodge/Creature.hs 115;" f
|
||||||
@@ -5935,7 +5941,7 @@ jShape src/Dodge/Placement/Instance/LightSource.hs 86;" f
|
|||||||
jShape src/Dodge/Placements/LightSource.hs 43;" f
|
jShape src/Dodge/Placements/LightSource.hs 43;" f
|
||||||
jaggedShape src/Dodge/Block/Debris.hs 191;" f
|
jaggedShape src/Dodge/Block/Debris.hs 191;" f
|
||||||
jetPack src/Dodge/Item/Equipment.hs 92;" f
|
jetPack src/Dodge/Item/Equipment.hs 92;" f
|
||||||
joinItemsInList src/Dodge/Item/Grammar.hs 122;" f
|
joinItemsInList src/Dodge/Item/Grammar.hs 137;" f
|
||||||
jps0' src/Dodge/LevelGen/Data.hs 60;" f
|
jps0' src/Dodge/LevelGen/Data.hs 60;" f
|
||||||
jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f
|
jps0' src/Dodge/LevelGen/PlacementHelper.hs 60;" f
|
||||||
jps0PushPS src/Dodge/LevelGen/Data.hs 63;" f
|
jps0PushPS src/Dodge/LevelGen/Data.hs 63;" f
|
||||||
@@ -6000,11 +6006,11 @@ ldtToIM src/Dodge/DoubleTree.hs 90;" f
|
|||||||
ldtToIndentList src/Dodge/DoubleTree.hs 93;" f
|
ldtToIndentList src/Dodge/DoubleTree.hs 93;" f
|
||||||
left src/DoubleStack.hs 16;" f
|
left src/DoubleStack.hs 16;" f
|
||||||
leftInfo src/Dodge/Item/Info.hs 109;" f
|
leftInfo src/Dodge/Item/Info.hs 109;" f
|
||||||
leftIsParentCombine src/Dodge/Item/Grammar.hs 92;" f
|
leftIsParentCombine src/Dodge/Item/Grammar.hs 107;" f
|
||||||
leftIsParentCombine' src/Dodge/Item/Grammar.hs 85;" f
|
leftIsParentCombine' src/Dodge/Item/Grammar.hs 94;" f
|
||||||
leftItemSPic src/Dodge/Item/Draw/SPic.hs 72;" f
|
leftItemSPic src/Dodge/Item/Draw/SPic.hs 72;" f
|
||||||
leftPad src/Padding.hs 14;" f
|
leftPad src/Padding.hs 14;" f
|
||||||
leftRightCombine src/Dodge/Item/Grammar.hs 106;" f
|
leftRightCombine src/Dodge/Item/Grammar.hs 121;" f
|
||||||
legsSPic src/Dodge/Item/Draw/SPic.hs 528;" f
|
legsSPic src/Dodge/Item/Draw/SPic.hs 528;" f
|
||||||
liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f
|
liShape src/Dodge/Placement/Instance/LightSource.hs 99;" f
|
||||||
liShape src/Dodge/Placements/LightSource.hs 55;" f
|
liShape src/Dodge/Placements/LightSource.hs 55;" f
|
||||||
@@ -6897,7 +6903,8 @@ rhombus src/Polyhedra.hs 71;" f
|
|||||||
rifle src/Dodge/Item/Held/Cane.hs 51;" f
|
rifle src/Dodge/Item/Held/Cane.hs 51;" f
|
||||||
rifle src/Dodge/Item/Weapon/BulletGun/Cane.hs 77;" f
|
rifle src/Dodge/Item/Weapon/BulletGun/Cane.hs 77;" f
|
||||||
right src/DoubleStack.hs 16;" f
|
right src/DoubleStack.hs 16;" f
|
||||||
rightIsParentCombine src/Dodge/Item/Grammar.hs 99;" f
|
rightIsParentCombine src/Dodge/Item/Grammar.hs 114;" f
|
||||||
|
rightIsParentCombine' src/Dodge/Item/Grammar.hs 100;" f
|
||||||
rightPad src/Padding.hs 22;" f
|
rightPad src/Padding.hs 22;" f
|
||||||
rightPadNoSquash src/Padding.hs 26;" f
|
rightPadNoSquash src/Padding.hs 26;" f
|
||||||
rlPosDir src/Dodge/RoomLink.hs 94;" f
|
rlPosDir src/Dodge/RoomLink.hs 94;" f
|
||||||
@@ -7064,7 +7071,7 @@ setHotkey src/Dodge/Hotkey.hs 38;" f
|
|||||||
setInLinks src/Dodge/RoomLink.hs 51;" f
|
setInLinks src/Dodge/RoomLink.hs 51;" f
|
||||||
setInLinksByType src/Dodge/RoomLink.hs 54;" f
|
setInLinksByType src/Dodge/RoomLink.hs 54;" f
|
||||||
setInLinksPD src/Dodge/RoomLink.hs 74;" f
|
setInLinksPD src/Dodge/RoomLink.hs 74;" f
|
||||||
setInvPosFromSS src/Dodge/Inventory/Location.hs 69;" f
|
setInvPosFromSS src/Dodge/Inventory/Location.hs 70;" f
|
||||||
setItemCharge src/Dodge/ItEffect.hs 36;" f
|
setItemCharge src/Dodge/ItEffect.hs 36;" f
|
||||||
setLayer src/Picture/Base.hs 139;" f
|
setLayer src/Picture/Base.hs 139;" f
|
||||||
setLinkType src/Dodge/RoomLink.hs 60;" f
|
setLinkType src/Dodge/RoomLink.hs 60;" f
|
||||||
@@ -7616,7 +7623,7 @@ tryCombine src/Dodge/Update/Input/InGame.hs 252;" f
|
|||||||
tryGetChannel src/Sound.hs 96;" f
|
tryGetChannel src/Sound.hs 96;" f
|
||||||
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 21;" f
|
tryGetRootAttachedFromInvID src/Dodge/Inventory/Location.hs 21;" f
|
||||||
tryGetRootItemInvID src/Dodge/Inventory/FindRoot.hs 10;" f
|
tryGetRootItemInvID src/Dodge/Inventory/FindRoot.hs 10;" f
|
||||||
tryGetRootItemInvID src/Dodge/Inventory/Location.hs 31;" f
|
tryGetRootItemInvID src/Dodge/Inventory/Location.hs 32;" f
|
||||||
tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 36;" f
|
tryMeleeAttack src/Dodge/Creature/ReaderUpdate.hs 36;" f
|
||||||
tryNextLoadAction src/Dodge/Reloading.hs 36;" f
|
tryNextLoadAction src/Dodge/Reloading.hs 36;" f
|
||||||
tryPlay src/Sound.hs 83;" f
|
tryPlay src/Sound.hs 83;" f
|
||||||
@@ -7748,7 +7755,7 @@ updateRadarSweeps src/Dodge/Update.hs 445;" f
|
|||||||
updateRandNode src/TreeHelp.hs 108;" f
|
updateRandNode src/TreeHelp.hs 108;" f
|
||||||
updateRenderSplit appDodge/Main.hs 105;" f
|
updateRenderSplit appDodge/Main.hs 105;" f
|
||||||
updateRootItemID src/Dodge/Inventory/FindRoot.hs 16;" f
|
updateRootItemID src/Dodge/Inventory/FindRoot.hs 16;" f
|
||||||
updateRootItemID src/Dodge/Inventory/Location.hs 39;" f
|
updateRootItemID src/Dodge/Inventory/Location.hs 40;" f
|
||||||
updateScopeZoom src/Dodge/Update/Camera.hs 129;" f
|
updateScopeZoom src/Dodge/Update/Camera.hs 129;" f
|
||||||
updateScopeZoom' src/Dodge/Update/Camera.hs 134;" f
|
updateScopeZoom' src/Dodge/Update/Camera.hs 134;" f
|
||||||
updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f
|
updateScrollTestValue src/Dodge/ScrollValue.hs 6;" f
|
||||||
|
|||||||
Reference in New Issue
Block a user