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:
@@ -119,7 +119,7 @@ DBCStorage <ItemRandomSuffixEntry> sItemRandomSuffixStore(ItemRandomSuffixfmt);
|
||||
DBCStorage <ItemSetEntry> sItemSetStore(ItemSetEntryfmt);
|
||||
|
||||
DBCStorage <LFGDungeonEntry> sLFGDungeonStore(LFGDungeonEntryfmt);
|
||||
//DBCStorage <LiquidTypeEntry> sLiquidTypeStore(LiquidTypeEntryfmt);
|
||||
DBCStorage <LiquidTypeEntry> sLiquidTypeStore(LiquidTypefmt);
|
||||
DBCStorage <LockEntry> sLockStore(LockEntryfmt);
|
||||
|
||||
DBCStorage <MailTemplateEntry> sMailTemplateStore(MailTemplateEntryfmt);
|
||||
@@ -357,6 +357,7 @@ void LoadDBCStores(const std::string& dataPath)
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sItemSetStore, dbcPath, "ItemSet.dbc");
|
||||
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sLFGDungeonStore, dbcPath, "LFGDungeons.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sLiquidTypeStore, dbcPath, "LiquidType.dbc");
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sLockStore, dbcPath, "Lock.dbc");
|
||||
|
||||
LoadDBC(availableDbcLocales, bad_dbc_files, sMailTemplateStore, dbcPath, "MailTemplate.dbc");
|
||||
|
||||
@@ -119,7 +119,7 @@ extern DBCStorage <ItemRandomPropertiesEntry> sItemRandomPropertiesStore;
|
||||
extern DBCStorage <ItemRandomSuffixEntry> sItemRandomSuffixStore;
|
||||
extern DBCStorage <ItemSetEntry> sItemSetStore;
|
||||
extern DBCStorage <LFGDungeonEntry> sLFGDungeonStore;
|
||||
//extern DBCStorage <LiquidTypeEntry> sLiquidTypeStore;
|
||||
extern DBCStorage <LiquidTypeEntry> sLiquidTypeStore;
|
||||
extern DBCStorage <LockEntry> sLockStore;
|
||||
extern DBCStorage <MailTemplateEntry> sMailTemplateStore;
|
||||
extern DBCStorage <MapEntry> sMapStore;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
@@ -23,7 +23,7 @@ const char Achievementfmt[]="niixssssssssssssssssxxxxxxxxxxxxxxxxxxiixixxxxxxxxx
|
||||
const std::string CustomAchievementfmt="pppaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaapapaaaaaaaaaaaaaaaaaapp";
|
||||
const std::string CustomAchievementIndex = "ID";
|
||||
const char AchievementCriteriafmt[]="niiiiiiiixxxxxxxxxxxxxxxxxiiiix";
|
||||
const char AreaTableEntryfmt[]="iiinixxxxxissssssssssssssssxixxxxxxx";
|
||||
const char AreaTableEntryfmt[]="iiinixxxxxissssssssssssssssxiiiiixxx";
|
||||
const char AreaGroupEntryfmt[]="niiiiiii";
|
||||
const char AreaPOIEntryfmt[]="niiiiiiiiiiifffixixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxix";
|
||||
const char AreaTriggerEntryfmt[]="niffffffff";
|
||||
@@ -78,7 +78,7 @@ const char ItemRandomPropertiesfmt[]="nxiiixxssssssssssssssssx";
|
||||
const char ItemRandomSuffixfmt[]="nssssssssssssssssxxiiixxiiixx";
|
||||
const char ItemSetEntryfmt[]="dssssssssssssssssxiiiiiiiiiixxxxxxxiiiiiiiiiiiiiiiiii";
|
||||
const char LFGDungeonEntryfmt[]="nxxxxxxxxxxxxxxxxxiiiiiiixixxixixxxxxxxxxxxxxxxxx";
|
||||
//const char LiquidTypeEntryfmt[]="nsiiiiffffifiiisssssiiffffffffffffffffffiiii";
|
||||
const char LiquidTypefmt[]="nxxixixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx";
|
||||
const char LockEntryfmt[]="niiiiiiiiiiiiiiiiiiiiiiiixxxxxxxx";
|
||||
const char MailTemplateEntryfmt[]="nxxxxxxxxxxxxxxxxxssssssssssssssssx";
|
||||
const char MapEntryfmt[]="nxixxssssssssssssssssxixxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxixiffxiix";
|
||||
|
||||
Reference in New Issue
Block a user