Space only picks up filtered close items
This commit is contained in:
+1
-1
@@ -1 +1 @@
|
|||||||
All good (594 modules, at 15:18:36)
|
All good (594 modules, at 15:45:51)
|
||||||
|
|||||||
@@ -176,11 +176,15 @@ dropExcept cr invid w =
|
|||||||
-- why not a cid (Int)?
|
-- why not a cid (Int)?
|
||||||
dropItem :: Creature -> Int -> World -> World
|
dropItem :: Creature -> Int -> World -> World
|
||||||
dropItem cr invid =
|
dropItem cr invid =
|
||||||
rmInvItem (_crID cr) invid
|
maybeshiftseldown
|
||||||
|
. rmInvItem (_crID cr) invid
|
||||||
. copyItemToFloor (_crPos cr) itm -- . mayberemoveequip
|
. copyItemToFloor (_crPos cr) itm -- . mayberemoveequip
|
||||||
. soundStart (CrSound (_crID cr)) (_crPos cr) whiteNoiseFadeOutS Nothing
|
. soundStart (CrSound (_crID cr)) (_crPos cr) whiteNoiseFadeOutS Nothing
|
||||||
where
|
where
|
||||||
itm = fromMaybe (error "dropItem cannot find item") $ cr ^? crInv . ix invid
|
itm = fromMaybe (error "dropItem cannot find item") $ cr ^? crInv . ix invid
|
||||||
|
maybeshiftseldown w = fromMaybe w $ do
|
||||||
|
3 <- w ^? hud . hudElement . diSelection . _Just . _1
|
||||||
|
return $ w & hud . hudElement . diSelection . _Just . _2 +~ 1
|
||||||
|
|
||||||
-- | Get your creature to drop the item under the cursor.
|
-- | Get your creature to drop the item under the cursor.
|
||||||
youDropItem :: World -> World
|
youDropItem :: World -> World
|
||||||
|
|||||||
@@ -24,7 +24,9 @@ copyItemToFloorID pos it w =
|
|||||||
w'
|
w'
|
||||||
& cWorld . lWorld . floorItems . unNIntMap %~ IM.insert flid theflit
|
& cWorld . lWorld . floorItems . unNIntMap %~ IM.insert flid theflit
|
||||||
& cWorld . lWorld . itemLocations %~ IM.insert (_unNInt $ _itID it) (OnFloor $ NInt flid)
|
& cWorld . lWorld . itemLocations %~ IM.insert (_unNInt $ _itID it) (OnFloor $ NInt flid)
|
||||||
& hud . closeItems %~ (NInt flid:)
|
& hud . closeItems %~ (NInt flid:)
|
||||||
|
-- & hud . hudElement . diSections . ix 3 . ssOffset .~ 0
|
||||||
|
-- ensures dropped item is at the top of the close item selection list
|
||||||
where
|
where
|
||||||
(p', w') = findWallFreeDropPoint (_dimRad $ _itDimension it) pos w
|
(p', w') = findWallFreeDropPoint (_dimRad $ _itDimension it) pos w
|
||||||
rot = fst . randomR (- pi, pi) $ _randGen w
|
rot = fst . randomR (- pi, pi) $ _randGen w
|
||||||
|
|||||||
@@ -100,7 +100,7 @@ updateMouseHeldInGame cfig w = case w ^. input . mouseContext of
|
|||||||
is <- w ^? hud . hudElement . diSelectionExtra
|
is <- w ^? hud . hudElement . diSelectionExtra
|
||||||
return $ if concurrentIS is
|
return $ if concurrentIS is
|
||||||
then shiftInvItems k x ab bn is ss w
|
then shiftInvItems k x ab bn is ss w
|
||||||
else collectInvItems is w
|
else collectInvItems k is w
|
||||||
_ -> w
|
_ -> w
|
||||||
where
|
where
|
||||||
ldp = invDisplayParams w
|
ldp = invDisplayParams w
|
||||||
@@ -231,8 +231,9 @@ concurrentIS = go . IS.minView
|
|||||||
(j, js) <- IS.minView is
|
(j, js) <- IS.minView is
|
||||||
return $ i + 1 == j && go (Just (j, js))
|
return $ i + 1 == j && go (Just (j, js))
|
||||||
|
|
||||||
collectInvItems :: IS.IntSet -> World -> World
|
collectInvItems :: Int -> IS.IntSet -> World -> World
|
||||||
collectInvItems is w = fromMaybe w $ do
|
collectInvItems secid is w = fromMaybe w $ do
|
||||||
|
guard $ secid == 0
|
||||||
(j, js) <- IS.minView is
|
(j, js) <- IS.minView is
|
||||||
return $ h j js w
|
return $ h j js w
|
||||||
where
|
where
|
||||||
@@ -494,7 +495,8 @@ selCloseObj w = selobj <|> firstcitem <|> firstcbut
|
|||||||
fmap Right $ w ^? cWorld . lWorld . buttons . ix k
|
fmap Right $ w ^? cWorld . lWorld . buttons . ix k
|
||||||
_ -> Nothing
|
_ -> Nothing
|
||||||
firstcitem = do
|
firstcitem = do
|
||||||
NInt k <- w ^? hud . closeItems . ix 0
|
k' <- (w ^? hud . hudElement . diSections . ix 3 . ssItems) >>= (fmap fst . IM.lookupMin)
|
||||||
|
NInt k <- w ^? hud . closeItems . ix k'
|
||||||
fmap Left $ w ^? cWorld . lWorld . floorItems . unNIntMap . ix k
|
fmap Left $ w ^? cWorld . lWorld . floorItems . unNIntMap . ix k
|
||||||
firstcbut = do
|
firstcbut = do
|
||||||
k <- w ^? hud . closeButtons . ix 0
|
k <- w ^? hud . closeButtons . ix 0
|
||||||
|
|||||||
Reference in New Issue
Block a user