Move some item datatypes into dedicated module
This commit is contained in:
+4
-44
@@ -294,22 +294,6 @@ data FloorItem = FlIt { _flIt :: Item , _flItPos :: Point2 , _flItRot :: Float,
|
||||
data ItemPos
|
||||
= InInv { _itCrId :: Int , _itInvId :: Int }
|
||||
| OnFloor { _itFlID :: Int }
|
||||
data UseDelay -- should just be Delay
|
||||
= NoDelay
|
||||
| FixedRate
|
||||
{_rateMax :: Int
|
||||
,_rateTime :: Int
|
||||
}
|
||||
| VariableRate
|
||||
{_rateMax :: Int
|
||||
,_rateTime :: Int
|
||||
,_rateMaxMax :: Int
|
||||
,_rateMinMax :: Int
|
||||
}
|
||||
| WarmUpNoDelay
|
||||
{_warmTime :: Int
|
||||
,_warmMax :: Int
|
||||
}
|
||||
data ItemUse
|
||||
= RightUse
|
||||
{ _rUse :: Item -> Creature -> World -> World
|
||||
@@ -324,12 +308,6 @@ data ItemUse
|
||||
, _useHammer :: HammerType
|
||||
}
|
||||
| NoUse
|
||||
data AimParams = AimParams
|
||||
{ _aimSpeed :: Float
|
||||
, _aimRange :: Float
|
||||
, _aimZoom :: ItZoom
|
||||
, _aimStance :: AimStance
|
||||
}
|
||||
_itUseAimStance :: Item -> AimStance
|
||||
_itUseAimStance = _aimStance . _useAim . _itUse
|
||||
data ItemConsumption
|
||||
@@ -349,21 +327,13 @@ data ItemConsumption
|
||||
{ _itMaxStack' :: Int
|
||||
, _itAmount' :: Int
|
||||
}
|
||||
data ItemType
|
||||
= Weapon'
|
||||
{ _wpSpread :: Float
|
||||
, _wpRange :: Float
|
||||
, _wpNumBarrels :: Int
|
||||
}
|
||||
| UtilityItem
|
||||
| ConsumableItem
|
||||
data Item
|
||||
= Weapon
|
||||
{ _itName :: String
|
||||
, _itConsumption :: ItemConsumption
|
||||
, _itUse :: ItemUse
|
||||
, _itFloorPict :: Item -> SPic
|
||||
, _itZoom :: ItZoom
|
||||
-- , _itZoom :: ItZoom
|
||||
, _itEquipPict :: Creature -> Int -> SPic
|
||||
, _itScroll :: Float -> Creature -> Item -> Item
|
||||
, _itIdentity :: ItemIdentity
|
||||
@@ -373,7 +343,6 @@ data Item
|
||||
, _itInvDisplay :: Item -> String
|
||||
, _itInvColor :: Color
|
||||
, _itTargeting :: Maybe (World -> Maybe Point2, Int -> Item -> Creature -> World -> Picture)
|
||||
, _itWorldTrigger :: Maybe (Int -> World -> Bool)
|
||||
, _itDimension :: ItemDimension
|
||||
, _itCurseStatus :: CurseStatus
|
||||
, _itType :: ItemType
|
||||
@@ -427,7 +396,7 @@ data Item
|
||||
, _twMaxRange :: Float
|
||||
, _twAccuracy :: Float
|
||||
, _itUse :: ItemUse
|
||||
, _itZoom :: ItZoom
|
||||
-- , _itZoom :: ItZoom
|
||||
, _itEquipPict :: Creature -> Int -> SPic
|
||||
, _itIdentity :: ItemIdentity
|
||||
, _itID :: Maybe Int
|
||||
@@ -440,7 +409,6 @@ data Item
|
||||
, _itDimension :: ItemDimension
|
||||
}
|
||||
| NoItem
|
||||
data CurseStatus = Uncursed | UndroppableIdentified | UndroppableUnidentified
|
||||
|
||||
data ItemDimension = ItemDimension
|
||||
{ _itDim :: Point3 -- length width height
|
||||
@@ -453,7 +421,8 @@ data ItemDimension = ItemDimension
|
||||
data ReloadType = ActiveReload | PassiveReload SoundID
|
||||
|
||||
-- I believe this is called every frame, not sure when though
|
||||
data ItEffect = NoItEffect
|
||||
data ItEffect
|
||||
= NoItEffect
|
||||
| ItSimpleInvEffect
|
||||
{_itInvEffect :: ItEffect -> Creature -> Int -> World -> World
|
||||
-- the Int is the items inventory position
|
||||
@@ -477,11 +446,6 @@ data ItEffect = NoItEffect
|
||||
-- the Int is the items inventory position
|
||||
,_itEffectID :: Maybe Int
|
||||
}
|
||||
data ItZoom = ItZoom
|
||||
{ _itZoomMax :: Float
|
||||
, _itZoomMin :: Float
|
||||
, _itZoomFac :: Float
|
||||
}
|
||||
data IntID a = IntID Int a
|
||||
{- Objects without ids.
|
||||
Update themselves, perhaps with side effects. -}
|
||||
@@ -888,7 +852,6 @@ makeLenses ''Item
|
||||
makeLenses ''ItemUse
|
||||
makeLenses ''ItemPos
|
||||
makeLenses ''ItEffect
|
||||
makeLenses ''ItZoom
|
||||
makeLenses ''FloorItem
|
||||
makeLenses ''ItemConsumption
|
||||
makeLenses ''AmmoType
|
||||
@@ -913,8 +876,5 @@ makeLenses ''MachineType
|
||||
makeLenses ''Zone
|
||||
makeLenses ''ItemDimension
|
||||
makeLenses ''Vocalization
|
||||
makeLenses ''UseDelay
|
||||
makeLenses ''AimParams
|
||||
makeLenses ''Universe
|
||||
makeLenses ''LSParam
|
||||
makeLenses ''ItemType
|
||||
|
||||
Reference in New Issue
Block a user