DB/ScreenEffect

From wowdev
Jump to: navigation, search

This one is used for on-screen-effects that modify colors. They can be seen in several questlines such as those in Ebon Hold. Its called from several spells like BOTM - Jungle Brew - Jungle Madness Vision Effect (Apply Aura: #260 (61 ["BOTM - Jungle Madness"]).

≥ Wrath

1 ID int
2 Name str
3 Type int
  0: ffxEffectGlow
  1: ffxEffectDeath
  2: ffxEffectNetherWorld
  3: ffxEffectSwirlingFog
4 Col color, see in hex. rrggbbxx
5 edge int Screen Edge Size
6 bw int (the higher this is.. the more Black and White the screen will go)
7 unk null
8 LightParams iRefId
9 SoundAmbience iRefId
10 ZoneMusic iRefId

16464

struct ScreenEffectRec
{
  enum ScreenEffectType : unsigned int
  {
    ffxEffectGlow = 0,
    ffxEffectDeath = 1,
    ffxEffectNetherWorld = 2,
    ffxEffectSwirlingFog = 3,
    ffxEffectUnconscious = 4, // new in MoP or Cataclysm?
  };
  int id;
  const char* name;
  ScreenEffectType type; 
  union
  {
    int data[4];
    struct
    {
      int unused[3];
      int flags; // &2: use skybox from lightParams
    } glow;
    struct
    {
      int _1; // parameter for PassFogSeed. tint color?
      int _2; // parameter for PassPropagateFog: _2 / 255.0 * 0.9
      int _3; // parameter for PassFogCombine: _3 / 100.0
    } swirlingFog;
    struct
    {
      int _[3]; // parameters for PassGlowFade
      int flags; // &1: ?, &2: use skybox from lightParams
    } unconscious;
  } params;
  foreign_key<uint32_t, &LightParamsRec::m_ID> lightParamsId; // ignored unless params.*.flags & 2. Only uses skybox.
  foreign_key<uint32_t, &SoundAmbienceRec::m_ID> soundAmbienceId;
  foreign_key<uint32_t, &ZoneMusicRec::m_ID> zoneMusicId;
  int todOverride; // new with MoP or Cataclysm? -1 for none, [0, 1440]
};

6.0.1.18179

struct ScreenEffectRec {
  uint32_t m_id;
  stringref m_name;
  uint32_t m_effect;
  uint32_t m_param[4];
  foreign_key<uint32_t, &LightParamsRec::m_ID> m_lightParamsID;
  uint32_t m_lightParamsFadeIn;
  uint32_t m_lightParamsFadeOut;
  uint32_t m_lightFlags;        // &1: use skybox from lightParams CGWorldFrame::ClearScreenEffects
  foreign_key<uint32_t, &SoundAmbienceRec::m_ID> m_soundAmbienceID;
  foreign_key<uint32_t, &ZoneMusicRec::m_ID> m_zoneMusicID;
  uint32_t m_timeOfDayOverride;
  uint32_t m_effectMask;
};