{-# LANGUAGE DeriveGeneric #-} {-# LANGUAGE DeriveAnyClass #-} {-# LANGUAGE StrictData #-} {-# LANGUAGE TemplateHaskell #-} module Dodge.Data.WorldEffect where import Dodge.Data.LightSource import Dodge.Data.ComposedItem import Dodge.Data.DoubleTree import Data.Aeson import Data.Aeson.TH import Dodge.Data.CreatureEffect import Dodge.Data.Item import Dodge.Data.SoundOrigin import Geometry.Data import Sound.Data data ItCrWdWd = ItCrWdItemHeldEffect --deriving (Eq, Ord, Show, Read) --Generic, Flat) data WdWd = NoWorldEffect | SetTrigger Bool Int | WorldEffects [WdWd] | SetLSCol Point3 Int | AccessTerminal (Maybe Int) | UnlockInv Int | SoundStart SoundOrigin Point2 SoundID (Maybe Int) | MakeStartCloudAt Point3 | TorqueCr Float Int | WdWdNegateTrig Int | WdWdFromItCrixWdWd (LabelDoubleTree ComposeLinkType Item) Int ItCrWdWd | MakeTempLight LSParam Int --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 --deriving (Eq, Ord, Show, Read) --Generic, Flat) data WdP2f = WdP2f0 | WdP2fDoorPosition Int --deriving (Eq, Ord, Show, Read) --Generic, Flat) data DrWdWd = DrWdId | DrWdMakeDoorDebris | DrWdMechanismStepwise Int [Int] [(Point2, Point2)] | DoorMechanism --deriving (Eq, Ord, Show, Read) --Generic, Flat) data TmWdWd = TmWdId | TmWdWdDisconnectTerminal | TmWdWdfromWdWd WdWd | TmWdWdTermSound SoundID | TmWdWdDoDeathTriggers --deriving (Eq, Show, Read) --, Generic) --h--deriving (Eq, Show, Read) --Generic, Flat) deriveJSON defaultOptions ''ItCrWdWd deriveJSON defaultOptions ''WdWd deriveJSON defaultOptions ''WdP2 deriveJSON defaultOptions ''MdWdWd deriveJSON defaultOptions ''WdBl deriveJSON defaultOptions ''WdP2f deriveJSON defaultOptions ''DrWdWd deriveJSON defaultOptions ''TmWdWd