diff options
-rw-r--r-- | src/server/game/Achievements/CriteriaHandler.cpp | 70 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Stores.cpp | 2 | ||||
-rw-r--r-- | src/server/game/DataStores/DB2Structure.h | 58 | ||||
-rw-r--r-- | src/server/game/DungeonFinding/LFGMgr.cpp | 2 |
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) { } |