Core/Maps

* Corrected liquid type extraction in maps - MCLQ chunk must be parsed together with MH2O (they stack)
* Fixed liquid detection in WMO objects
* Implemented LiquidType.dbc use, players will now get proper auras in special liquids
* Turned off slime damage by default (Naxxramas uses periodic damage aura for this purpose)
* Implemented liquid type overrides basing on area/zone
* Renamed final temp_gameobject_models to GameObjectModels.dtree (the temporary one produced by vmap extractor remains unaffected)

Note: Map and Vmap re-extraction is required
This commit is contained in:
Shauren
2012-03-07 13:09:35 +01:00
parent 9f93681625
commit e5d23103f3
17 changed files with 310 additions and 160 deletions
+21 -21
View File
@@ -527,6 +527,7 @@ struct AreaTableEntry
char* area_name[16]; // 11-26
// 27, string flags, unused
uint32 team; // 28
uint32 LiquidTypeOverride[4]; // 29-32 liquid override by type
// helpers
bool IsSanctuary() const
@@ -1214,30 +1215,29 @@ struct LFGDungeonEntry
uint32 Entry() const { return ID + (type << 24); }
};
/*
struct LiquidTypeEntry
{
uint32 ID; // 0
char* name; // 1
uint32 flags; // 2 Water: 1|2|4|8, Magma: 8|16|32|64, Slime: 2|64|256, WMO Ocean: 1|2|4|8|512
uint32 type; // 3 0: Water, 1: Ocean, 2: Magma, 3: Slime
uint32 soundid; // 4 Reference to SoundEntries.dbc
uint32 spellID; // 5 Reference to Spell.dbc
float maxDarkenDepth // 6 Only Slime (6) and Magma (7)
float fogDarkenIntensity // 7 Only oceans got values here!
float ambDarkenIntensity // 8 Only oceans got values here!
float dirDarkenIntensity // 9 Only oceans got values here!
uint32 lightID // 10 Only Slime (6) and Magma (7)
float particleScale // 11 0: Slime, 1: Water/Ocean, 4: Magma
uint32 particleMovement // 12
uint32 particleTexSlots // 13
uint32 LiquidMaterialID // 14 Reference to LiquidMaterial.dbc
char* texture[6]; // 15-20
uint32 color[2] // 21-22
float floats[18]; // 23-40 Most likely these are attributes for the shaders. Water: (23, TextureTilesPerBlock),(24, Rotation) Magma: (23, AnimationX),(24, AnimationY)
uint32 ints[4] // 41-44
uint32 Id;
//char* Name;
//uint32 Flags;
uint32 Type;
//uint32 SoundId;
uint32 SpellId;
//float MaxDarkenDepth;
//float FogDarkenIntensity;
//float AmbDarkenIntensity;
//float DirDarkenIntensity;
//uint32 LightID;
//float ParticleScale;
//uint32 ParticleMovement;
//uint32 ParticleTexSlots;
//uint32 LiquidMaterialID;
//char* Texture[6];
//uint32 Color[2];
//float Unk1[18];
//uint32 Unk2[4];
};
*/
#define MAX_LOCK_CASE 8