{-# 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