diff --git a/src/Dodge/Inventory/Path.hs b/src/Dodge/Inventory/Path.hs index d939fa27e..7c747d5b4 100644 --- a/src/Dodge/Inventory/Path.hs +++ b/src/Dodge/Inventory/Path.hs @@ -7,12 +7,12 @@ import Control.Monad getInventoryPath :: Int -> InventoryPathing -> Int -> Creature -> Maybe Int getInventoryPath x ip itid cr = case ip of - ABSOLUTE | x `IM.member` (cr ^. crInv) -> Just x + ABSOLUTE -> checkinvid x RELCURS -> do selid <- cr ^? crManipulation . manObject . imSelectedItem - guard $ (x + selid) `IM.member` (cr ^. crInv) - return (x + selid) - RELITEM - | (itid + x) `IM.member` (cr ^. crInv) -> - return $ itid + x - _ -> Nothing + checkinvid (x + selid) + RELITEM -> checkinvid (itid + x) + where + checkinvid y = do + guard $ y `IM.member` (cr ^. crInv) + return y