Files
loop/src/Dodge/Data/ComposedItem.hs
T
justin 81f88c32e9 Unify key press and mouse button press timings
Both now use Ints for presses.
Still no release timer for keyboard events.
2025-07-28 23:16:05 +01:00

53 lines
1.1 KiB
Haskell

{-# LANGUAGE TemplateHaskell #-}
{-# LANGUAGE StrictData #-}
module Dodge.Data.ComposedItem where
import Control.Lens
import Dodge.Data.AmmoType
import Dodge.Data.Item
import Linear
import qualified Linear.Quaternion as Q
data ItemSF -- Structural Function
= UnloadedWeaponSF
| HeldPlatformSF
| UnderBarrelSlotSF
| UnderBarrelPlatformSF
| EquipmentPlatformSF
| GadgetPlatformSF
| WeaponScopeSF
| WeaponTargetingSF
| IntroScanSF
| TriggerSF
| ARHUDSF
| AmmoMagSF {_amsfLink :: Int , _amsfType :: AmmoType}
| RemoteScreenSF
| JoystickSF
| RemoteDetonatorSF
| SmokeReducerSF
| NoSF
| AmmoModifierSF AmmoType
| AmmoTargetingSF AmmoType
| AmmoPayloadSF AmmoType
| AmmoEffectSF AmmoType
| FunctionChangeSF
| MakeAutoSF
| ProjectileStabiliserSF
| GrenadeHitEffectSF
| ToggleSF
| MapperSF
| LaserWeaponSF
| PulseLaserSF
| CapacitorSF
| TransformerSF
| PulseBallSF
| TorchSF
deriving (Eq, Ord, Show, Read)
type CItem = (Item, ItemSF)
type OItem = (Item, ItemSF, (V3 Float,Q.Quaternion Float))
makeLenses ''ItemSF