44 lines
1.0 KiB
Haskell
44 lines
1.0 KiB
Haskell
{-# LANGUAGE StrictData #-}
|
|
{-# LANGUAGE TemplateHaskell #-}
|
|
|
|
module Dodge.Data.HUD where
|
|
|
|
import Control.Lens
|
|
import qualified Data.IntSet as IS
|
|
import Dodge.Data.Combine
|
|
import Dodge.Data.Item.Location
|
|
import Dodge.Data.SelectionList
|
|
import Geometry.Data
|
|
import NewInt
|
|
|
|
data SubInventory
|
|
= NoSubInventory
|
|
| ExamineInventory
|
|
| MapperInventory
|
|
{ _mapInvOffset :: Point2
|
|
, _mapInvZoom :: Float
|
|
, _mapInvItmID :: NewInt ItmInt
|
|
}
|
|
| CombineInventory
|
|
{ _ciSections :: IMSS CombItem
|
|
, _ciSelection :: Maybe Selection
|
|
, _ciFilter :: Maybe String
|
|
}
|
|
| DisplayTerminal {_termID :: Int}
|
|
|
|
data HUD = HUD
|
|
{ _subInventory :: SubInventory
|
|
, _diSections :: IMSS ()
|
|
, _diSelection :: Maybe Selection
|
|
, _diInvFilter :: Maybe String
|
|
, _diCloseFilter :: Maybe String
|
|
, _closeItems :: [NewInt ItmInt]
|
|
, _closeButtons :: [Int]
|
|
}
|
|
|
|
data Selection = Sel {_slSec :: Int, _slInt :: Int, _slSet :: IS.IntSet}
|
|
|
|
makeLenses ''HUD
|
|
makeLenses ''Selection
|
|
makeLenses ''SubInventory
|