DB/LiquidType
Jump to navigation
Jump to search
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]; };