* Core switch to client 3.3.2 (11403)

* Credits (in no particular order) to:
* n0n4m3, raczman, manuel, Spp, Malcrom, Teacher, QAston, Tartalo,
* thenecromancer, Xanadu, Trazom, Zor, kiper
* Additional credits to:
* TOM_RUS and NoFantasy from MaNGOS
* Thanks for testing Aokromes and XTElite1
* SoTA still needs some work, but is very playable (huge thanks to raczman and
* kiper)
* To upgrade, you need to apply all SQL from sql/updates/3.2.2a_old from the
* last rev you are on
* and then apply all SQL from sql/updates/3.3.2_old to char / realmd / world
* DBs
* Known problem with guild banks.

--HG--
branch : trunk
This commit is contained in:
Brian
2010-02-14 19:13:14 -07:00
parent 7799ade4da
commit 486c00891b
114 changed files with 11589 additions and 1686 deletions
+90 -38
View File
@@ -595,16 +595,13 @@ struct BattlemasterListEntry
uint32 id; // 0
int32 mapid[8]; // 1-8 mapid
uint32 type; // 9 (3 - BG, 4 - arena)
uint32 minlvl; // 10
uint32 maxlvl; // 11
uint32 maxplayersperteam; // 12
// 13 minplayers
// 14 0 or 9
// 15
char* name[16]; // 16-31
// 32 string flag, unused
// 33 unused
//uint32 unk; // 34 new 3.1
uint32 maxplayersperteam; // 10
//uint32 unk1; // 11 (0 or 1)
char* name[16]; // 12-27
// 28 string flag, unused
// 29 unused
//uint32 unk2; // 30 new 3.1
};
#define MAX_OUTFIT_ITEMS 24
@@ -812,10 +809,14 @@ struct FactionEntry
int32 BaseRepValue[4]; // 10-13 m_reputationBase
uint32 ReputationFlags[4]; // 14-17 m_reputationFlags
uint32 team; // 18 m_parentFactionID
char* name[16]; // 19-34 m_name_lang
// 35 string flags
//char* description[16]; // 36-51 m_description_lang
// 52 string flags
//float unk1; // 19
//float unk2; // 20
//uint32 unk3 // 21
//uint32 unk4; // 22
char* name[16]; // 23-38 m_name_lang
// 39 string flags
//char* description[16]; // 40-55 m_description_lang
// 56 string flags
};
struct FactionTemplateEntry
@@ -1114,23 +1115,24 @@ struct MapEntry
uint32 MapID; // 0
//char* internalname; // 1 unused
uint32 map_type; // 2
// 3 0 or 1 for battlegrounds (not arenas)
char* name[16]; // 4-19
// 20 name flags, unused
uint32 linked_zone; // 21 common zone for instance and continent map
//char* hordeIntro[16]; // 23-37 text for PvP Zones
// 38 intro text flags
//char* allianceIntro[16]; // 39-54 text for PvP Zones
// 55 intro text flags
uint32 multimap_id; // 56
// 57
int32 entrance_map; // 58 map_id of entrance map
float entrance_x; // 59 entrance x coordinate (if exist single entry)
float entrance_y; // 60 entrance y coordinate (if exist single entry)
// 61 -1, 0 and 720
uint32 addon; // 62 (0-original maps,1-tbc addon)
uint32 unk_time; // 63 some kind of time? - for pre-bc raids
//uint32 maxPlayers; // 64 max players
//uint32 unk_330; // 3
// 4 0 or 1 for battlegrounds (not arenas)
char* name[16]; // 5-20
// 21 name flags, unused
uint32 linked_zone; // 22 common zone for instance and continent map
//char* hordeIntro[16]; // 23-38 text for PvP Zones
// 39 intro text flags
//char* allianceIntro[16]; // 40-55 text for PvP Zones
// 56 intro text flags
uint32 multimap_id; // 57
// 58
int32 entrance_map; // 59 map_id of entrance map
float entrance_x; // 60 entrance x coordinate (if exist single entry)
float entrance_y; // 61 entrance y coordinate (if exist single entry)
// 62 -1, 0 and 720
uint32 addon; // 63 (0-original maps,1-tbc addon)
uint32 unk_time; // 64 some kind of time?
//uint32 maxPlayers; // 65 max players
// Helpers
uint32 Expansion() const { return addon; }
@@ -1195,6 +1197,18 @@ struct QuestSortEntry
// 17 name flags
};
struct QuestXPEntry
{
uint32 id;
uint32 Exp[10];
};
struct QuestFactionRewEntry
{
uint32 id;
int32 QuestRewFactionValue[10];
};
struct RandomPropertiesPointsEntry
{
//uint32 Id; // 0 hidden key
@@ -1221,19 +1235,20 @@ struct ScalingStatValuesEntry
uint32 dpsMod[6]; // 10-15 DPS mod for level
uint32 spellBonus; // 16 spell power for level
uint32 ssdMultiplier2; // 17 there's data from 3.1 dbc ssdMultiplier[3]
//uint32 unk1; // 18 all fields equal to 0
//uint32 unk2; // 19 unk, probably also Armor for level
uint32 ssdMultiplier3; // 18 3.3
//uint32 unk2; // 19 unk, probably also Armor for level (flag 0x80000?)
uint32 armorMod2[4]; // 20-23 Armor for level
uint32 getssdMultiplier(uint32 mask) const
{
if (mask & 0x001F)
if (mask & 0x4001F)
{
if(mask & 0x00000001) return ssdMultiplier[0];
if(mask & 0x00000002) return ssdMultiplier[1];
if(mask & 0x00000004) return ssdMultiplier[2];
if(mask & 0x00000008) return ssdMultiplier2;
if(mask & 0x00000010) return ssdMultiplier[3];
if(mask & 0x00040000) return ssdMultiplier3;
}
return 0;
}
@@ -1407,7 +1422,7 @@ struct SpellEntry
//uint32 modalNextSpell; // 48 m_modalNextSpell not used
uint32 StackAmount; // 49 m_cumulativeAura
uint32 Totem[2]; // 50-51 m_totem
int32 Reagent[8]; // 50-59 m_reagent
int32 Reagent[8]; // 52-59 m_reagent
uint32 ReagentCount[8]; // 60-67 m_reagentCount
int32 EquippedItemClass; // 68 m_equippedItemClass (value)
int32 EquippedItemSubClassMask; // 69 m_equippedItemSubclass (mask)
@@ -1421,8 +1436,8 @@ struct SpellEntry
uint32 EffectMechanic[MAX_SPELL_EFFECTS]; // 89-91 m_effectMechanic
uint32 EffectImplicitTargetA[MAX_SPELL_EFFECTS]; // 92-94 m_implicitTargetA
uint32 EffectImplicitTargetB[MAX_SPELL_EFFECTS]; // 95-97 m_implicitTargetB
uint32 EffectRadiusIndex[MAX_SPELL_EFFECTS]; // 98-100 m_effectRadiusIndex - spellradius.dbc
uint32 EffectApplyAuraName[MAX_SPELL_EFFECTS]; // 101-103 m_effectAura
uint32 EffectRadiusIndex[MAX_SPELL_EFFECTS]; // 98-100 m_effectRadiusIndex - spellradius.dbc
uint32 EffectApplyAuraName[MAX_SPELL_EFFECTS]; // 101-103 m_effectAura
uint32 EffectAmplitude[MAX_SPELL_EFFECTS]; // 104-106 m_effectAuraPeriod
float EffectMultipleValue[MAX_SPELL_EFFECTS]; // 107-109 m_effectAmplitude
uint32 EffectChainTarget[MAX_SPELL_EFFECTS]; // 110-112 m_effectChainTargets
@@ -1431,6 +1446,43 @@ struct SpellEntry
int32 EffectMiscValueB[MAX_SPELL_EFFECTS]; // 119-121 m_effectMiscValueB
uint32 EffectTriggerSpell[MAX_SPELL_EFFECTS]; // 122-124 m_effectTriggerSpell
float EffectPointsPerComboPoint[MAX_SPELL_EFFECTS]; // 125-127 m_effectPointsPerCombo
flag96 EffectSpellClassMask[MAX_SPELL_EFFECTS]; // 128-136
uint32 SpellVisual[2]; // 137-138 m_spellVisualID
uint32 SpellIconID; // 139 m_spellIconID
uint32 activeIconID; // 140 m_activeIconID
//uint32 spellPriority; // 141 not used
char* SpellName[16]; // 142-157 m_name_lang
//uint32 SpellNameFlag; // 158 not used
char* Rank[16]; // 159-174 m_nameSubtext_lang
//uint32 RankFlags; // 175 not used
//char* Description[16]; // 176-191 m_description_lang not used
//uint32 DescriptionFlags; // 192 not used
//char* ToolTip[16]; // 193-208 m_auraDescription_lang not used
//uint32 ToolTipFlags; // 209 not used
uint32 ManaCostPercentage; // 210 m_manaCostPct
uint32 StartRecoveryCategory; // 211 m_startRecoveryCategory
uint32 StartRecoveryTime; // 212 m_startRecoveryTime
uint32 MaxTargetLevel; // 213 m_maxTargetLevel
uint32 SpellFamilyName; // 214 m_spellClassSet
flag96 SpellFamilyFlags; // 215-217
uint32 MaxAffectedTargets; // 218 m_maxTargets
uint32 DmgClass; // 219 m_defenseType
uint32 PreventionType; // 220 m_preventionType
//uint32 StanceBarOrder; // 221 m_stanceBarOrder not used
float DmgMultiplier[3]; // 222-224 m_effectChainAmplitude
//uint32 MinFactionId; // 225 m_minFactionID not used
//uint32 MinReputation; // 226 m_minReputation not used
//uint32 RequiredAuraVision; // 227 m_requiredAuraVision not used
uint32 TotemCategory[2]; // 228-229 m_requiredTotemCategoryID
int32 AreaGroupId; // 230 m_requiredAreaGroupId
uint32 SchoolMask; // 231 m_schoolMask
uint32 runeCostID; // 232 m_runeCostID
//uint32 spellMissileID; // 233 m_spellMissileID not used
//uint32 PowerDisplayId; // 234 PowerDisplay.dbc, new in 3.1
//float unk_320_4[3]; // 235-237 3.2.0
//uint32 spellDescriptionVariableID; // 238 3.2.0
//uint32 SpellDifficultyId; // 239 3.3.0
/*
flag96 EffectSpellClassMask[MAX_SPELL_EFFECTS]; // 127-136
uint32 SpellVisual[2]; // 137-138 m_spellVisualID
uint32 SpellIconID; // 139 m_spellIconID
@@ -1466,7 +1518,7 @@ struct SpellEntry
//uint32 PowerDisplayId; // 234 PowerDisplay.dbc, new in 3.1
//float unk_320_4[3]; // 235-237 3.2.0
//uint32 spellDescriptionVariableID; // 238 3.2.0
*/
// helpers
int32 CalculateSimpleValue(uint8 eff) const { return EffectBasePoints[eff]+int32(EffectBaseDice[eff]); }