{-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.HUD where import Data.IntSet (IntSet) import Data.IntMap import Control.Lens import Dodge.Data.Button import Dodge.Data.Combine import Dodge.Data.FloorItem import Dodge.Data.SelectionList import Geometry.Data data HUDElement = DisplayInventory { _subInventory :: SubInventory , _diSections :: IMSS () , _diSelection :: Maybe (Int, Int) , _diInvFilter :: Maybe String , _diCloseFilter :: Maybe String , _diSelectionExtra :: IntSet } | DisplayCarte --data MouseInventorySelection -- = MouseInvSelect -- {_misSelStart :: (Int, Int), _misMaybeEnd :: Maybe (Int, Int)} -- | MouseInvDrag -- | MouseInvNothing data SubInventory = NoSubInventory -- { _nsSelected :: MouseInventorySelection -- } | ExamineInventory | CombineInventory { _ciSections :: IntMap (SelectionSection CombinableItem) , _ciSelection :: Maybe (Int, Int) , _ciFilter :: Maybe String } | LockedInventory | DisplayTerminal {_termID :: Int} data HUD = HUD { _hudElement :: HUDElement , _carteCenter :: Point2 , _carteZoom :: Float , _carteRot :: Float , _closeObjects :: [Either FloorItem Button] } makeLenses ''HUD makeLenses ''HUDElement makeLenses ''SubInventory --makeLenses ''MouseInventorySelection