77 lines
2.0 KiB
Haskell
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
|