DB/LiquidType: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
(Added definitions for Vanilla & BC.) |
||
Line 1: | Line 1: | ||
Properties of water. Added (build: 5428) to account for the damage caused by the Slime in Naxxramas. | Properties of water. Added (build: 5428) to account for the damage caused by the Slime in Naxxramas. | ||
==Build 5428 (Vanilla & BC)== | |||
Originally, this was a very small record with only basic information. The type of the liquid was in LiquidType - these values were rewritten in Wrath, where they were reordered and Ocean got its own value. | |||
The spellID points to a Spell record which is applied to any entity entering the liquid. Initially, only the Naxxramas entry had this set. | |||
struct LiquidTypeRec { | |||
uint32_t m_ID; | |||
{{Template:Type|stringref}} m_name; | |||
LiquidType m_LiquidType; | |||
{{Template:Type/foreign_key|table=Spell}} m_spellID; | |||
}; | |||
enum LiquidType : uint32_t { | |||
Magma = 0, | |||
Slime = 2, | |||
Water = 3, | |||
Ocean = Water | |||
}; | |||
==Build 12340 and up== | |||
Note that type 8 is used for debugging, and invalid entries might fall back to that. | Note that type 8 is used for debugging, and invalid entries might fall back to that. | ||
Line 81: | Line 101: | ||
uint32_t m_int[4]; | uint32_t m_int[4]; | ||
}; | }; | ||
[[Category:DBC]][[Category:DBC_WotLK]] | [[Category:DBC]][[Category:DBC_Vanilla]][[Category:DBC_BC]][[Category:DBC_WotLK]] | ||
[[Category:DBC_WoD]][[Category:6.0.1.18179]] | [[Category:DBC_WoD]][[Category:6.0.1.18179]] |
Revision as of 15:02, 14 May 2016
Properties of water. Added (build: 5428) to account for the damage caused by the Slime in Naxxramas.
Build 5428 (Vanilla & BC)
Originally, this was a very small record with only basic information. The type of the liquid was in LiquidType - these values were rewritten in Wrath, where they were reordered and Ocean got its own value.
The spellID points to a Spell record which is applied to any entity entering the liquid. Initially, only the Naxxramas entry had this set.
struct LiquidTypeRec { uint32_t m_ID; stringrefⁱ m_name; LiquidType m_LiquidType; foreign_keyⁱ<uint32_t, &SpellRec::m_ID> m_spellID; };
enum LiquidType : uint32_t { Magma = 0, Slime = 2, Water = 3, Ocean = Water };
Build 12340 and up
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]; };