Move towards unifying (your) creature manipulation with selection
This commit is contained in:
+13
-15
@@ -90,9 +90,11 @@ rmInvItem cid invid w =
|
||||
& cWorld . lWorld . items . ix itid . itLocation . ilEquipSite .~ Nothing
|
||||
& updateselection
|
||||
& updateselectionextra
|
||||
& pointcid %~ updateRootItemID (w ^. cWorld . lWorld . items)
|
||||
& uprootitem
|
||||
--revise1 & pointcid %~ updateRootItemID (w ^. cWorld . lWorld . items)
|
||||
& worldEventFlags . at InventoryChange ?~ ()
|
||||
where
|
||||
uprootitem w' = updateRootItemID (w ^. cWorld . lWorld . items) (w'^?!cWorld.lWorld.creatures.ix 0) w'
|
||||
pointcid = cWorld . lWorld . creatures . ix cid
|
||||
updateselectionextra
|
||||
-- | cid == 0 = hud . diSelection . _Just . slSet %~ IS.foldl' h mempty
|
||||
@@ -101,10 +103,9 @@ rmInvItem cid invid w =
|
||||
-- | i < _unNInt invid = IS.insert i x
|
||||
-- | otherwise = x
|
||||
updateselection
|
||||
| cid == 0 && cr ^? crManipulation . manObject . imSelectedItem == Just invid =
|
||||
| cid == 0 && w ^? hud . manObject . imSelectedItem == Just invid =
|
||||
scrollAugInvSel (-1) . scrollAugInvSel 1
|
||||
| otherwise =
|
||||
pointcid . crManipulation . manObject . imSelectedItem %~ g
|
||||
| otherwise = hud . manObject . imSelectedItem %~ g
|
||||
cr = w ^?! cWorld . lWorld . creatures . ix cid
|
||||
itid = _crInv cr ^?! ix invid
|
||||
itm = w ^?! cWorld . lWorld . items . ix itid
|
||||
@@ -265,14 +266,8 @@ changeSwapOther manlens n f i w = fromMaybe w $ do
|
||||
return $
|
||||
w
|
||||
& swapAnyExtraSelection 3 i k
|
||||
& cWorld
|
||||
. lWorld
|
||||
. creatures
|
||||
. ix 0
|
||||
. crManipulation
|
||||
. manObject
|
||||
. manlens
|
||||
%~ doswap
|
||||
&hud. manObject . manlens %~ doswap
|
||||
--revise1 & cWorld . lWorld . creatures . ix 0 . crManipulation . manObject . manlens %~ doswap
|
||||
& hud . closeItems %~ swapIndices i k
|
||||
& hud . diSelection . _Just . slInt %~ doswap
|
||||
& worldEventFlags . at InventoryChange ?~ ()
|
||||
@@ -299,7 +294,8 @@ invSetSelection sel w =
|
||||
& hud . diSelection ?~ sel
|
||||
& worldEventFlags . at InventoryChange ?~ ()
|
||||
& setInvPosFromSS
|
||||
& cWorld . lWorld %~ crUpdateItemLocations 0
|
||||
& crUpdateItemLocations 0
|
||||
--revise1 & cWorld . lWorld %~ crUpdateItemLocations 0
|
||||
|
||||
invSetSelectionPos :: Int -> Int -> World -> World
|
||||
invSetSelectionPos i j = invSetSelection (Sel i j)
|
||||
@@ -312,7 +308,8 @@ scrollAugInvSel yi w
|
||||
& hud %~ doscroll
|
||||
& worldEventFlags . at InventoryChange ?~ ()
|
||||
& setInvPosFromSS
|
||||
& cWorld . lWorld %~ crUpdateItemLocations 0
|
||||
& crUpdateItemLocations 0
|
||||
--revise1 & cWorld . lWorld %~ crUpdateItemLocations 0
|
||||
where
|
||||
doscroll he = fromMaybe he $ do
|
||||
sss <- he ^? diSections
|
||||
@@ -324,7 +321,8 @@ scrollAugNextInSection w =
|
||||
& hud %~ doscroll
|
||||
& worldEventFlags . at InventoryChange ?~ ()
|
||||
& setInvPosFromSS
|
||||
& cWorld . lWorld %~ crUpdateItemLocations 0
|
||||
& crUpdateItemLocations 0
|
||||
--revise1 & cWorld . lWorld %~ crUpdateItemLocations 0
|
||||
where
|
||||
doscroll he = fromMaybe he $ do
|
||||
sss <- he ^? diSections
|
||||
|
||||
Reference in New Issue
Block a user