Refactor items, suspect a leak
This commit is contained in:
+48
-25
@@ -1,32 +1,55 @@
|
||||
{-# LANGUAGE TemplateHaskell #-}
|
||||
{-# LANGUAGE StrictData #-}
|
||||
module Dodge.Data.Item where
|
||||
module Dodge.Data.Item
|
||||
( module Dodge.Data.Item
|
||||
, module Dodge.Data.Item.Misc
|
||||
) where
|
||||
import Geometry.Data
|
||||
import Control.Lens
|
||||
import Dodge.Data.Item.Misc
|
||||
import Dodge.Data.Item.Consumption
|
||||
import Dodge.Data.Item.Use
|
||||
import Dodge.Data.Item.Params
|
||||
import Dodge.Data.ItEffect
|
||||
import Dodge.Data.Targeting
|
||||
import Dodge.Item.Data
|
||||
import Dodge.Combine.Data
|
||||
import Dodge.Item.Attachment.Data
|
||||
import Color
|
||||
|
||||
data ItemDimension = ItemDimension
|
||||
{ _dimRad :: Float
|
||||
, _dimCenter :: Point3
|
||||
, _dimAttachPos :: Point3
|
||||
import qualified Data.IntMap.Strict as IM
|
||||
data Item = Item
|
||||
{ _itConsumption :: ItemConsumption
|
||||
, _itUse :: ItemUse
|
||||
, _itType :: ItemType
|
||||
, _itAttachment :: ItAttachment
|
||||
, _itID :: Maybe Int
|
||||
, _itPos :: ItemPos
|
||||
, _itIsHeld :: Bool
|
||||
, _itEffect :: ItEffect
|
||||
, _itInvSize :: Float
|
||||
, _itInvColor :: Color
|
||||
, _itTargeting :: Targeting
|
||||
, _itDimension :: ItemDimension
|
||||
, _itCurseStatus :: CurseStatus
|
||||
, _itTweaks :: ItemTweaks
|
||||
, _itScope :: Scope
|
||||
, _itValue :: ItemValue
|
||||
, _itParams :: ItemParams
|
||||
}
|
||||
data ItemPortage
|
||||
= HeldItem
|
||||
{ _handlePos :: Float
|
||||
, _muzPos :: Float
|
||||
data ItemTweaks
|
||||
= NoTweaks
|
||||
| Tweakable
|
||||
{ _tweakParams :: IM.IntMap TweakParam
|
||||
, _tweakSel :: Int
|
||||
}
|
||||
| WornItem
|
||||
| NoPortage
|
||||
|
||||
data ItemValue = ItemValue
|
||||
{ _ivInt :: Int
|
||||
, _ivType :: ItemValueType
|
||||
}
|
||||
data ItemValueType = MundaneItem | ArtefactItem
|
||||
data ItemPos
|
||||
= InInv { _ipCrID :: Int , _ipInvID :: Int }
|
||||
| OnFloor { _ipFlID :: Int }
|
||||
| VoidItm
|
||||
makeLenses ''ItemDimension
|
||||
makeLenses ''ItemPortage
|
||||
makeLenses ''ItemValue
|
||||
makeLenses ''ItemPos
|
||||
data TweakParam = TweakParam
|
||||
{ _doTweak :: Int -> Item -> Item
|
||||
, _curTweak :: Int
|
||||
, _maxTweak :: Int
|
||||
, _showTweak :: Int -> String
|
||||
, _nameTweak :: String
|
||||
}
|
||||
makeLenses ''Item
|
||||
makeLenses ''ItemTweaks
|
||||
makeLenses ''TweakParam
|
||||
|
||||
Reference in New Issue
Block a user