inputSprites :: SpriteEnv -> [Sprite]
inputSprites env =
    case menu (spriteIS env) of
        Just TargetMenu     -> maybe [] targetMenu (target (spriteIS env))
        Just Inventory      -> inventoryMenu
        Just ProjectileMenu -> inventoryMenu
        otherwise           -> []
    where targetMenu  p = [CharSprite p '*' (SpriteAttr red black)]
          inventoryMenu =
            let lvl                 = spriteLevel env
                inv                 = groupItems (inventory (player lvl))
                eq                  = groupItems (equipmentToList (equipment (player lvl)))
                showInvItem (ch, i) = ch:(showItem i)
                p                   = player lvl
                showItem (1,i)      = " - " ++ showIdentified (identified p) i
                showItem (n,i)      = " - " ++ show n ++ " " ++ showIdentified (identified p) i ++ "s" -- TODO pluralize
            in  mkMessages (0,  0) ([ "Inventory:", " " ] ++ map showInvItem (zip inventoryLetters inv)) ++
                mkMessages (40, 0) ([ "Equipped:", " " ] ++ map showItem eq)
inputSprites :: SpriteEnv -> [Sprite]
inputSprites env =
    case menu (spriteIS env) of
        Just TargetMenu     -> maybe [] targetMenu (target (spriteIS env))
        Just Inventory      -> inventoryMenu
        Just ProjectileMenu -> inventoryMenu
        otherwise           -> []
    where targetMenu  p = [CharSprite p '*' (SpriteAttr red black)]
          inventoryMenu =
            let lvl                 = spriteLevel env
                inv                 = groupItems (inventory (player lvl))
                eq                  = groupItems (equipmentToList (equipment (player lvl)))
                showInvItem (ch, i) = ch:(showItem i)
                p                   = player lvl
                showItem (1,i)      = " - " ++ showIdentified (identified p) i
                showItem (n,i)      = " - " ++ show n ++ " " ++ showIdentified (identified p) i ++ "s" -- TODO pluralize
            in  mkMessages (0,  0) ([ "Inventory:", " " ] ++ map showInvItem (zip inventoryLetters inv)) ++
                mkMessages (40, 0) ([ "Equipped:", " " ] ++ map showItem eq)
inputSprites env =
    case menu (spriteIS env) of
        Just TargetMenu     -> maybe [] targetMenu (target (spriteIS env))
        Just Inventory      -> inventoryMenu
        Just ProjectileMenu -> inventoryMenu
        otherwise           -> []
    where targetMenu  p = [CharSprite p '*' (SpriteAttr red black)]
          inventoryMenu =
            let lvl                 = spriteLevel env
                inv                 = groupItems (inventory (player lvl))
                eq                  = groupItems (equipmentToList (equipment (player lvl)))
                showInvItem (ch, i) = ch:(showItem i)
                p                   = player lvl
                showItem (1,i)      = " - " ++ showIdentified (identified p) i
                showItem (n,i)      = " - " ++ show n ++ " " ++ showIdentified (identified p) i ++ "s" -- TODO pluralize
            in  mkMessages (0,  0) ([ "Inventory:", " " ] ++ map showInvItem (zip inventoryLetters inv)) ++
                mkMessages (40, 0) ([ "Equipped:", " " ] ++ map showItem eq)