aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp70
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp2
-rw-r--r--src/server/game/DataStores/DB2Structure.h58
-rw-r--r--src/server/game/DungeonFinding/LFGMgr.cpp2
4 files changed, 60 insertions, 72 deletions
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 879967ef31f..a491df3254f 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -504,6 +504,8 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
case CRITERIA_TYPE_OWN_BATTLE_PET_COUNT:
case CRITERIA_TYPE_HONOR_LEVEL_REACHED:
case CRITERIA_TYPE_PRESTIGE_REACHED:
+ case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
+ case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE);
break;
// std case: increment at miscValue1
@@ -700,16 +702,6 @@ void CriteriaHandler::UpdateCriteria(CriteriaTypes type, uint64 miscValue1 /*= 0
case CRITERIA_TYPE_REACH_GUILD_LEVEL:
SetCriteriaProgress(criteria, miscValue1, referencePlayer);
break;
- case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
- if (miscValue1 != criteria->Entry->Asset.TransmogSetGroupID)
- continue;
- SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE);
- break;
- case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
- if (!miscValue2 /*login case*/ || miscValue1 != criteria->Entry->Asset.EquipmentSlot)
- continue;
- SetCriteriaProgress(criteria, 1, referencePlayer, PROGRESS_ACCUMULATE);
- break;
// FIXME: not triggered in code as result, need to implement
case CRITERIA_TYPE_COMPLETE_RAID:
case CRITERIA_TYPE_PLAY_ARENA:
@@ -1335,22 +1327,22 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
case CRITERIA_TYPE_WIN_BG:
case CRITERIA_TYPE_COMPLETE_BATTLEGROUND:
case CRITERIA_TYPE_DEATH_AT_MAP:
- if (!miscValue1 || criteria->Entry->Asset.MapID != referencePlayer->GetMapId())
+ if (!miscValue1 || uint32(criteria->Entry->Asset.MapID) != referencePlayer->GetMapId())
return false;
break;
case CRITERIA_TYPE_KILL_CREATURE:
case CRITERIA_TYPE_KILLED_BY_CREATURE:
- if (!miscValue1 || criteria->Entry->Asset.CreatureID != miscValue1)
+ if (!miscValue1 || uint32(criteria->Entry->Asset.CreatureID) != miscValue1)
return false;
break;
case CRITERIA_TYPE_REACH_SKILL_LEVEL:
case CRITERIA_TYPE_LEARN_SKILL_LEVEL:
// update at loading or specific skill update
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.SkillID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SkillID))
return false;
break;
case CRITERIA_TYPE_COMPLETE_QUESTS_IN_ZONE:
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.ZoneID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.ZoneID))
return false;
break;
case CRITERIA_TYPE_DEATH:
@@ -1369,7 +1361,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
//FIXME: work only for instances where max == min for players
- if (map->ToInstanceMap()->GetMaxPlayers() != criteria->Entry->Asset.GroupSize)
+ if (map->ToInstanceMap()->GetMaxPlayers() != uint32(criteria->Entry->Asset.GroupSize))
return false;
break;
}
@@ -1378,7 +1370,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
return false;
break;
case CRITERIA_TYPE_DEATHS_FROM:
- if (!miscValue1 || miscValue2 != criteria->Entry->Asset.DamageType)
+ if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.DamageType))
return false;
break;
case CRITERIA_TYPE_COMPLETE_QUEST:
@@ -1386,7 +1378,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
// if miscValues != 0, it contains the questID.
if (miscValue1)
{
- if (miscValue1 != criteria->Entry->Asset.QuestID)
+ if (miscValue1 != uint32(criteria->Entry->Asset.QuestID))
return false;
}
else
@@ -1405,11 +1397,11 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
case CRITERIA_TYPE_BE_SPELL_TARGET2:
case CRITERIA_TYPE_CAST_SPELL:
case CRITERIA_TYPE_CAST_SPELL2:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.SpellID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.SpellID))
return false;
break;
case CRITERIA_TYPE_LEARN_SPELL:
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.SpellID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SpellID))
return false;
if (!referencePlayer->HasSpell(criteria->Entry->Asset.SpellID))
@@ -1418,17 +1410,17 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
case CRITERIA_TYPE_LOOT_TYPE:
// miscValue1 = itemId - miscValue2 = count of item loot
// miscValue3 = loot_type (note: 0 = LOOT_CORPSE and then it ignored)
- if (!miscValue1 || !miscValue2 || !miscValue3 || miscValue3 != criteria->Entry->Asset.LootType)
+ if (!miscValue1 || !miscValue2 || !miscValue3 || miscValue3 != uint32(criteria->Entry->Asset.LootType))
return false;
break;
case CRITERIA_TYPE_OWN_ITEM:
- if (miscValue1 && criteria->Entry->Asset.ItemID != miscValue1)
+ if (miscValue1 && uint32(criteria->Entry->Asset.ItemID) != miscValue1)
return false;
break;
case CRITERIA_TYPE_USE_ITEM:
case CRITERIA_TYPE_LOOT_ITEM:
case CRITERIA_TYPE_EQUIP_ITEM:
- if (!miscValue1 || criteria->Entry->Asset.ItemID != miscValue1)
+ if (!miscValue1 || uint32(criteria->Entry->Asset.ItemID )!= miscValue1)
return false;
break;
case CRITERIA_TYPE_EXPLORE_AREA:
@@ -1464,19 +1456,19 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
}
case CRITERIA_TYPE_GAIN_REPUTATION:
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.FactionID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.FactionID))
return false;
break;
case CRITERIA_TYPE_EQUIP_EPIC_ITEM:
// miscValue1 = itemid miscValue2 = itemSlot
- if (!miscValue1 || miscValue2 != criteria->Entry->Asset.ItemSlot)
+ if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.ItemSlot))
return false;
break;
case CRITERIA_TYPE_ROLL_NEED_ON_LOOT:
case CRITERIA_TYPE_ROLL_GREED_ON_LOOT:
{
// miscValue1 = itemid miscValue2 = diced value
- if (!miscValue1 || miscValue2 != criteria->Entry->Asset.RollValue)
+ if (!miscValue1 || miscValue2 != uint32(criteria->Entry->Asset.RollValue))
return false;
ItemTemplate const* proto = sObjectMgr->GetItemTemplate(uint32(miscValue1));
@@ -1485,7 +1477,7 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
}
case CRITERIA_TYPE_DO_EMOTE:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.EmoteID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.EmoteID))
return false;
break;
case CRITERIA_TYPE_DAMAGE_DONE:
@@ -1505,12 +1497,12 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
case CRITERIA_TYPE_USE_GAMEOBJECT:
case CRITERIA_TYPE_FISH_IN_GAMEOBJECT:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.GameObjectID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.GameObjectID))
return false;
break;
case CRITERIA_TYPE_LEARN_SKILLLINE_SPELLS:
case CRITERIA_TYPE_LEARN_SKILL_LINE:
- if (miscValue1 && miscValue1 != criteria->Entry->Asset.SkillID)
+ if (miscValue1 && miscValue1 != uint32(criteria->Entry->Asset.SkillID))
return false;
break;
case CRITERIA_TYPE_LOOT_EPIC_ITEM:
@@ -1524,34 +1516,42 @@ bool CriteriaHandler::RequirementsSatisfied(Criteria const* criteria, uint64 mis
break;
}
case CRITERIA_TYPE_HK_CLASS:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.ClassID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.ClassID))
return false;
break;
case CRITERIA_TYPE_HK_RACE:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.RaceID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.RaceID))
return false;
break;
case CRITERIA_TYPE_BG_OBJECTIVE_CAPTURE:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.ObjectiveId)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.ObjectiveId))
return false;
break;
case CRITERIA_TYPE_HONORABLE_KILL_AT_AREA:
- if (!miscValue1 || miscValue1 != criteria->Entry->Asset.AreaID)
+ if (!miscValue1 || miscValue1 != uint32(criteria->Entry->Asset.AreaID))
return false;
break;
case CRITERIA_TYPE_CURRENCY:
if (!miscValue1 || !miscValue2 || int64(miscValue2) < 0
- || miscValue1 != criteria->Entry->Asset.CurrencyID)
+ || miscValue1 != uint32(criteria->Entry->Asset.CurrencyID))
return false;
break;
case CRITERIA_TYPE_WIN_ARENA:
- if (miscValue1 != criteria->Entry->Asset.MapID)
+ if (miscValue1 != uint32(criteria->Entry->Asset.MapID))
return false;
break;
case CRITERIA_TYPE_HIGHEST_TEAM_RATING:
return false;
case CRITERIA_TYPE_PLACE_GARRISON_BUILDING:
- if (miscValue1 != criteria->Entry->Asset.GarrBuildingID)
+ if (miscValue1 != uint32(criteria->Entry->Asset.GarrBuildingID))
+ return false;
+ break;
+ case CRITERIA_TYPE_TRANSMOG_SET_UNLOCKED:
+ if (miscValue1 != uint32(criteria->Entry->Asset.TransmogSetGroupID))
+ return false;
+ break;
+ case CRITERIA_TYPE_APPEARANCE_UNLOCKED_BY_SLOT:
+ if (!miscValue2 /*login case*/ || miscValue1 != uint32(criteria->Entry->Asset.EquipmentSlot))
return false;
break;
default:
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp
index 795dcdbc650..b233f53324b 100644
--- a/src/server/game/DataStores/DB2Stores.cpp
+++ b/src/server/game/DataStores/DB2Stores.cpp
@@ -1562,7 +1562,7 @@ float DB2Manager::EvaluateExpectedStat(ExpectedStatType stat, uint32 level, int3
if (ContentTuningEntry const* contentTuning = sContentTuningStore.LookupEntry(contentTuningId))
{
mods[0] = sExpectedStatModStore.LookupEntry(contentTuning->ExpectedStatModID);
- mods[1] = sExpectedStatModStore.LookupEntry(contentTuning->ExpectedStatModID2);
+ mods[1] = sExpectedStatModStore.LookupEntry(contentTuning->DifficultyESMID);
}
switch (unitClass)
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index f6f31f26d2c..7fca60b7fbc 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -345,7 +345,7 @@ struct BroadcastTextEntry
int32 ConditionID;
uint16 EmotesID;
uint8 Flags;
- uint32 Unknown;
+ uint32 ChatBubbleDurationMs;
uint32 SoundEntriesID[2];
uint16 EmoteID[MAX_BROADCAST_TEXT_EMOTES];
uint16 EmoteDelay[MAX_BROADCAST_TEXT_EMOTES];
@@ -479,7 +479,7 @@ struct ChrRacesEntry
int32 UiDisplayOrder;
int32 FemaleSkeletonFileDataID;
int32 MaleSkeletonFileDataID;
- int32 BaseRaceID;
+ int32 HelmVisFallbackRaceID;
int16 FactionID;
int16 CinematicSequenceID;
int16 ResSicknessSpellID;
@@ -550,7 +550,7 @@ struct ContentTuningEntry
int32 MaxLevel;
int32 Flags;
int32 ExpectedStatModID;
- int32 ExpectedStatModID2;
+ int32 DifficultyESMID;
};
struct ConversationLineEntry
@@ -835,7 +835,7 @@ struct CurrencyTypesEntry
uint32 MaxEarnablePerWeek;
uint32 Flags;
int8 Quality;
- int32 Unknown10;
+ int32 FactionID;
};
struct CurveEntry
@@ -905,8 +905,8 @@ struct DungeonEncounterEntry
int16 MapID;
int8 DifficultyID;
int32 OrderIndex;
- int8 CreatureDisplayID;
- int32 Unknown6;
+ int8 Bit;
+ int32 CreatureDisplayID;
uint8 Flags;
int32 SpellIconFileID;
};
@@ -1206,7 +1206,7 @@ struct GarrFollowerXAbilityEntry
struct GarrPlotEntry
{
uint32 ID;
- LocalizedString* Name;
+ char const* Name;
uint8 PlotType;
int32 HordeConstructObjID;
int32 AllianceConstructObjID;
@@ -1476,30 +1476,35 @@ struct ItemCurrencyCostEntry
struct ItemDamageAmmoEntry
{
uint32 ID;
+ uint16 ItemLevel;
float Quality[7];
};
struct ItemDamageOneHandEntry
{
uint32 ID;
+ uint16 ItemLevel;
float Quality[7];
};
struct ItemDamageOneHandCasterEntry
{
uint32 ID;
+ uint16 ItemLevel;
float Quality[7];
};
struct ItemDamageTwoHandEntry
{
uint32 ID;
+ uint16 ItemLevel;
float Quality[7];
};
struct ItemDamageTwoHandCasterEntry
{
uint32 ID;
+ uint16 ItemLevel;
float Quality[7];
};
@@ -1684,7 +1689,7 @@ struct ItemSparseEntry
float PriceVariance;
float PriceRandomValue;
int32 Flags[MAX_ITEM_PROTO_FLAGS];
- int32 Unknown;
+ int32 FactionRelated;
uint16 ItemNameDescriptionID;
uint16 RequiredTransmogHoliday;
uint16 RequiredHoliday;
@@ -1928,7 +1933,7 @@ struct MapDifficultyEntry
uint32 ID;
LocalizedString* Message; // m_message_lang (text showed when transfer to map failed)
uint32 ItemContextPickerID;
- int32 Unknown;
+ int32 ContentTuningID;
uint8 DifficultyID;
uint8 LockID;
uint8 ResetInterval;
@@ -1962,8 +1967,8 @@ struct ModifierTreeEntry
struct MountEntry
{
LocalizedString* Name;
- LocalizedString* Description;
LocalizedString* SourceText;
+ LocalizedString* Description;
uint32 ID;
uint16 MountTypeID;
uint16 Flags;
@@ -2180,10 +2185,10 @@ struct PrestigeLevelInfoEntry
{
uint32 ID;
LocalizedString* Name;
- int32 HonorLevel;
+ int32 PrestigeLevel;
int32 BadgeTextureFileDataID;
uint8 Flags;
- int32 Unknown;
+ int32 AwardedAchievementID;
bool IsDisabled() const { return (Flags & PRESTIGE_FLAG_DISABLED) != 0; }
};
@@ -2318,15 +2323,6 @@ struct RulesetItemUpgradeEntry
uint16 ItemUpgradeID;
};
-// Exchanged by ContentTuning
-/*struct SandboxScalingEntry
-{
- uint32 ID;
- int32 MinLevel;
- int32 MaxLevel;
- int32 Flags;
-};*/
-
struct ScalingStatDistributionEntry
{
uint32 ID;
@@ -2342,7 +2338,7 @@ struct ScenarioEntry
uint16 AreaTableID;
uint8 Type;
uint8 Flags;
- uint32 Unknown;
+ uint32 UiTextureKitID;
};
struct ScenarioStepEntry
@@ -2358,7 +2354,7 @@ struct ScenarioStepEntry
uint8 OrderIndex;
uint8 Flags;
uint32 VisibilityPlayerConditionID;
- uint16 Unknown;
+ uint16 WidgetSetID;
// helpers
bool IsBonusObjective() const
@@ -2400,7 +2396,7 @@ struct SkillLineEntry
LocalizedString* AlternateVerb;
LocalizedString* Description;
LocalizedString* HordeDisplayName;
- char const* ExpansionDisplayName;
+ char const* OverrideSourceInfoDisplayName;
uint32 ID;
int8 CategoryID;
int32 SpellIconFileID;
@@ -2408,7 +2404,7 @@ struct SkillLineEntry
uint32 ParentSkillLineID;
int32 ParentTierIndex;
uint16 Flags;
- int32 SpellID;
+ int32 SpellBookSpellID;
};
struct SkillLineAbilityEntry
@@ -2472,14 +2468,6 @@ struct SpecializationSpellsEntry
uint8 DisplayOrder;
};
-struct SpellEntry
-{
- uint32 ID;
- LocalizedString* NameSubtext;
- LocalizedString* Description;
- LocalizedString* AuraDescription;
-};
-
struct SpellAuraOptionsEntry
{
uint32 ID;
@@ -2705,7 +2693,7 @@ struct SpellMiscEntry
uint8 SchoolMask;
float Speed;
float LaunchDelay;
- float Unknown;
+ float MinDuration;
int32 SpellIconFileDataID;
int32 ActiveIconFileDataID;
int32 Attributes[14];
@@ -2911,7 +2899,7 @@ struct TaxiNodesEntry
int32 UiTextureKitID;
float Facing;
uint32 SpecialIconConditionID;
- uint32 Unknown;
+ uint32 VisibilityConditionID;
int32 MountCreatureID[2];
};
diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp
index 48ea6f04f0c..3ac3cc1f9f5 100644
--- a/src/server/game/DungeonFinding/LFGMgr.cpp
+++ b/src/server/game/DungeonFinding/LFGMgr.cpp
@@ -51,7 +51,7 @@ requiredItemLevel(0)
LFGDungeonData::LFGDungeonData(LFGDungeonsEntry const* dbc) : id(dbc->ID), name(dbc->Name->Str[sWorld->GetDefaultDbcLocale()]), map(dbc->MapID),
type(uint8(dbc->TypeID)), expansion(uint8(dbc->ExpansionLevel)), group(uint8(dbc->GroupID)),
minlevel(uint8(dbc->MinLevel)), maxlevel(uint8(dbc->MaxLevel)), difficulty(Difficulty(dbc->DifficultyID)),
-seasonal((dbc->Flags & LFG_FLAG_SEASONAL) != 0), x(0.0f), y(0.0f), z(0.0f), o(0.0f),
+seasonal((dbc->Flags[0] & LFG_FLAG_SEASONAL) != 0), x(0.0f), y(0.0f), z(0.0f), o(0.0f),
requiredItemLevel(0)
{
}