{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.HUD where --import Dodge.Data.SelectionList import Dodge.Data.Button import Dodge.Data.FloorItem import Control.Lens import Geometry.Data data HUDElement = DisplayInventory { _subInventory :: SubInventory } | DisplayCarte deriving (Eq, Ord, Show, Read) --Generic, Flat) data SubInventory = NoSubInventory | ExamineInventory {_subInvSel :: Maybe Int} | CombineInventory {_subInvSel :: Maybe Int} | LockedInventory | DisplayTerminal {_termID :: Int} deriving (Eq, Ord, Show, Read) --Generic, Flat) data HUD = HUD { _hudElement :: HUDElement , _carteCenter :: Point2 , _carteZoom :: Float , _carteRot :: Float , _closeObjects :: [Either FloorItem Button] } -- deriving (Eq, Ord, Show, Read) --Generic, Flat) makeLenses ''HUD makeLenses ''HUDElement makeLenses ''SubInventory