Files
loop/src/Dodge/Data/WorldEffect.hs
T

77 lines
2.0 KiB
Haskell

{-# LANGUAGE StrictData #-}
{-# LANGUAGE TemplateHaskell #-}
module Dodge.Data.WorldEffect where
import qualified Data.Set as S
import Dodge.Data.Item.Location
import NewInt
import Dodge.Data.LightSource
import Data.Aeson
import Data.Aeson.TH
import Dodge.Data.CreatureEffect
import Dodge.Data.SoundOrigin
import Geometry.Data
import Sound.Data
data ItCrWdWd = ItCrWdItemHeldEffect
| ItCrWdItemHeldEffectNoHammer
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data SoundFilter
= FilterBySoundOrigin (S.Set SoundOrigin)
| NoSoundFilter
data WdWd
= NoWorldEffect
| SetTrigger Bool Int
| WorldEffects [WdWd] -- probably best to avoid recursive types if possible...
| SetLSCol Point3 Int
| AccessTerminal Int
| UnlockInv
| SoundStart SoundOrigin Point2 SoundID (Maybe Int)
| MakeStartCloudAt Point3
| TorqueCr Float Int
| WdWdNegateTrig Int
-- | WdWdFromItCrixWdWd (LabelDoubleTree ComposeLinkType Item) Int ItCrWdWd
| MakeTempLight LSParam Int
| MakeTempLightFade Float LSParam Int
| UseInvItem Int Int -- invid presstime
| WdWdBurstFireRepetition Int (NewInt InvInt)
| WdWdSetSoundFilter SoundFilter
--deriving (Eq, Show, Read) --, Generic)
--h--deriving (Eq, Show, Read) --Generic, Flat)
data WdP2
= WdP2Const Point2
| WdYouPos
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data MdWdWd
= MdWdId
| MdTrigIf MdWdWd MdWdWd
| MdSetLSCol Point3
| MdFlickerUpdate
--deriving (Eq, Ord, Show, Read) --Generic, Flat)
data WdBl
= WdTrig Int
| WdBlDoorMoving Int
| WdBlConst Bool
| WdBlNegate WdBl
| WdBlCrFilterNearPoint Float Point2 CrBl
| WdBlBtOn Int
-- | WdBlBtNotOff Int
data WdP2f
= WdP2f0
| WdP2fDoorPosition Int
deriveJSON defaultOptions ''SoundFilter
deriveJSON defaultOptions ''ItCrWdWd
deriveJSON defaultOptions ''WdWd
deriveJSON defaultOptions ''WdP2
deriveJSON defaultOptions ''MdWdWd
deriveJSON defaultOptions ''WdBl
deriveJSON defaultOptions ''WdP2f