DB/LiquidType

From wowdev
Revision as of 11:26, 23 February 2016 by Mjollna (talk | contribs)
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Properties of water. Added (build: 5428) to account for the damage caused by the Slime in Naxxramas.

Note that type 8 is used for debugging, and invalid entries might fall back to that.

Offset Name Type Comment
0 Id int
cata minDetail int
cata loDetailID int
cata hiDetailID int
1 Name string
cata flags int
cata soundBank int
2 flags int Water: 1, 2, 4, 8; Magma: 8, 16, 32, 64; Slime: 2, 64, 256; WMO Ocean: 1, 2, 4, 8, 512
3 Type int 0: Water, 1: Ocean, 2: Magma, 3: Slime
4 SoundEntriesID int SoundEntries.dbc irefid
5 SpellID int Spell.dbc irefID
6 maxDarkenDepth float only for slime and magma
7 fogDarkenIntensity float 7,8,9: Only oceans got values here!
8 ambDarkenIntensity float
9 dirDarkenIntensity float
10 lightID int Only Slime (6) and Magma (7)
11 particleScale float 0: Slime, 1: Water / Ocean, 4: Magma
12 particleMovement int
13 particleTexSlots int
14 LiquidMaterialID int (LiquidMaterial.dbc irefid?) this defines the shaders used. (1: "*sLiquidWater", 2: "*sLiquidMagma", 3: "*sLiquidProcWater%s" where %s is an appendix that is currently always "")
15-19 texture string[6] these are passed into the texture[] of the shaders.
20-22 color int[2]
23-40 floats float[18] most likely these are attributes for the shaders. Water: (23, TextureTilesPerBlock),(24, Rotation) Magma: (23, AnimationX),(24, AnimationY)
41-44 ints int[4] if (!material.LVF & ~2) or material.LVF == 4), then [0]: 1 → ocean, 0 → river depth coord table; 1 for oceans, 0 or 1250. only set for water / ocean and only for the procedual in all 3 fields. else only the first.

6.0.1.18179

struct LiquidTypeRec {
  uint32_t m_ID;
  stringref m_name;
  uint32_t m_flags;                   // &4: IsLiquidWaterWalkable
  uint32_t m_soundBank;
  foreign_key<uint32_t, &SoundEntriesRec::m_ID> m_soundID;
  foreign_key<uint32_t, &SpellRec::m_ID> m_spellID;
  float m_maxDarkenDepth;
  float m_fogDarkenIntensity;
  float m_ambDarkenIntensity;
  float m_dirDarkenIntensity;
  foreign_key<uint32_t, &LightRec::m_ID> m_lightID;
  float m_particleScale;
  uint32_t m_particleMovement;
  uint32_t m_particleTexSlots;
  foreign_key<uint32_t, &LiquidMaterialRec::m_ID> m_materialID;
  stringref m_texture[6];            // implementation detail in Liquid::CMaterialSettings limits them to 128 bytes!
  uint32_t m_color[2];
  float m_float[18];
  uint32_t m_int[4];
};