aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2024-09-27 20:05:36 +0200
committerShauren <shauren.trinity@gmail.com>2024-09-27 20:05:36 +0200
commit89f490bdcdf88c2576c17218926e89b1082ae682 (patch)
tree356a0be852515b56736f21bc60af3649c4153032
parentbe04c17916aa35173ed328eb27cb5f246bc8b863 (diff)
Core/DataStores: Removed overriding field sign type based on db2 column compression
-rw-r--r--sql/updates/hotfixes/master/2024_09_27_00_hotfixes.sql133
-rw-r--r--src/common/DataStores/DB2FileLoader.cpp104
-rw-r--r--src/server/game/Achievements/CriteriaHandler.cpp14
-rw-r--r--src/server/game/DataStores/DB2LoadInfo.h134
-rw-r--r--src/server/game/DataStores/DB2Stores.cpp14
-rw-r--r--src/server/game/DataStores/DB2Stores.h4
-rw-r--r--src/server/game/DataStores/DB2Structure.h134
-rw-r--r--src/server/game/DataStores/DBCEnums.h274
-rw-r--r--src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp7
-rw-r--r--src/server/game/Entities/Item/ItemBonusMgr.cpp2
-rw-r--r--src/server/game/Entities/Player/Player.cpp4
-rw-r--r--src/server/game/Entities/Taxi/TaxiPathGraph.cpp4
-rw-r--r--src/server/game/Globals/ObjectMgr.cpp2
-rw-r--r--src/server/game/Spells/SpellInfo.cpp2
-rw-r--r--src/server/game/Spells/SpellMgr.cpp2
-rw-r--r--src/server/game/Spells/TraitMgr.cpp24
16 files changed, 483 insertions, 375 deletions
diff --git a/sql/updates/hotfixes/master/2024_09_27_00_hotfixes.sql b/sql/updates/hotfixes/master/2024_09_27_00_hotfixes.sql
new file mode 100644
index 00000000000..c879f9c7b0a
--- /dev/null
+++ b/sql/updates/hotfixes/master/2024_09_27_00_hotfixes.sql
@@ -0,0 +1,133 @@
+ALTER TABLE `achievement` MODIFY `UiOrder` smallint UNSIGNED NOT NULL DEFAULT 0 AFTER `Flags`;
+
+ALTER TABLE `achievement_category` MODIFY `UiOrder` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Parent`;
+
+ALTER TABLE `area_trigger` MODIFY `ContinentID` smallint UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `artifact_power` MODIFY `Tier` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Flags`;
+
+ALTER TABLE `azerite_power_set_member` MODIFY `AzeritePowerSetID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+ALTER TABLE `azerite_power_set_member` MODIFY `Tier` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Class`;
+
+ALTER TABLE `battle_pet_breed_quality` MODIFY `QualityEnum` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `StateMultiplier`;
+
+ALTER TABLE `broadcast_text_duration` MODIFY `BroadcastTextID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `character_loadout` MODIFY `ItemContext` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Purpose`;
+
+ALTER TABLE `chr_customization_choice` MODIFY `ChrCustomizationOptionID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `chr_customization_option` MODIFY `ChrModelID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `Sex`;
+
+ALTER TABLE `chr_model` MODIFY `DisplayID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `Sex`;
+
+ALTER TABLE `chr_race_x_chr_model` MODIFY `ChrRacesID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `chr_specialization` MODIFY `ClassID` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `conditional_chr_model` MODIFY `ChrModelID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `difficulty` MODIFY `ItemContext` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Flags`;
+
+ALTER TABLE `dungeon_encounter` MODIFY `MapID` smallint UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `friendship_rep_reaction` MODIFY `FriendshipRepID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `Reaction`;
+
+ALTER TABLE `gameobjects` MODIFY `OwnerID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `garr_building` MODIFY `BuildingType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `GarrTypeID`;
+
+ALTER TABLE `garr_mission` MODIFY `GarrMissionSetID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `PlayerConditionID`;
+
+ALTER TABLE `garr_plot` MODIFY `PlotType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Name`;
+
+ALTER TABLE `garr_talent_tree` MODIFY `FeatureSubtypeIndex` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `FeatureTypeIndex`;
+
+ALTER TABLE `glyph_properties` MODIFY `GlyphType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `SpellID`;
+
+ALTER TABLE `item_bonus_list_group_entry` MODIFY `ItemBonusListGroupID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `item_bonus_tree_node` MODIFY `ItemContext` int NOT NULL DEFAULT 0 AFTER `ID`;
+UPDATE `item_bonus_tree_node` SET `ItemContext` = `ItemContext` + 256 WHERE `ItemContext` < 0;
+ALTER TABLE `item_bonus_tree_node` MODIFY `ItemContext` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `item_child_equipment` MODIFY `ParentItemID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `item_context_picker_entry` MODIFY `ItemCreationContext` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `item_currency_cost` MODIFY `ItemID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `item_modified_appearance` MODIFY `ItemID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `lfg_dungeons` MODIFY `Subtype` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `TypeID`;
+
+ALTER TABLE `map_difficulty` MODIFY `ResetInterval` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `LockID`;
+
+ALTER TABLE `maw_power` MODIFY `SpellID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `player_condition` MODIFY `PowerTypeComp` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `PowerType`;
+
+ALTER TABLE `pvp_stat` MODIFY `MapID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `pvp_talent` MODIFY `SpecID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `pvp_tier` MODIFY `BracketID` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `NextTier`;
+
+ALTER TABLE `skill_line_ability` MODIFY `SkillLine` smallint UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `skill_line_x_trait_tree` MODIFY `SkillLineID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `skill_race_class_info` MODIFY `SkillID` smallint UNSIGNED NOT NULL DEFAULT 0 AFTER `RaceMask`;
+
+ALTER TABLE `spell_learn_spell` MODIFY `SpellID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `spell_reagents_currency` MODIFY `SpellID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_cond` MODIFY `TraitTreeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `CondType`;
+
+ALTER TABLE `trait_currency_source` MODIFY `TraitCurrencyID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_definition_effect_points` MODIFY `TraitDefinitionID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_edge` MODIFY `LeftTraitNodeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `VisualStyle`;
+
+ALTER TABLE `trait_node` MODIFY `TraitTreeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_node_entry_x_trait_cond` MODIFY `TraitNodeEntryID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `TraitCondID`;
+
+ALTER TABLE `trait_node_entry_x_trait_cost` MODIFY `TraitNodeEntryID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_node_group` MODIFY `TraitTreeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_node_group_x_trait_cond` MODIFY `TraitNodeGroupID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `TraitCondID`;
+
+ALTER TABLE `trait_node_group_x_trait_cost` MODIFY `TraitNodeGroupID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_node_group_x_trait_node` MODIFY `TraitNodeGroupID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_node_x_trait_cond` MODIFY `TraitNodeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `TraitCondID`;
+
+ALTER TABLE `trait_node_x_trait_cost` MODIFY `TraitNodeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_node_x_trait_node_entry` MODIFY `TraitNodeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_sub_tree` MODIFY `TraitTreeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `UiTextureAtlasElementID`;
+
+ALTER TABLE `trait_tree` MODIFY `TraitSystemID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_tree_loadout` MODIFY `TraitTreeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_tree_loadout_entry` MODIFY `TraitTreeLoadoutID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `trait_tree_x_trait_currency` MODIFY `TraitTreeID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `Index`;
+
+ALTER TABLE `transmog_set` MODIFY `ParentTransmogSetID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ItemNameDescriptionID`;
+
+ALTER TABLE `ui_map` MODIFY `ParentUiMapID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+ALTER TABLE `ui_map` MODIFY `System` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `Flags`;
+
+ALTER TABLE `ui_map_assignment` MODIFY `UiMapID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `ui_map_link` MODIFY `ParentUiMapID` int UNSIGNED NOT NULL DEFAULT 0 AFTER `ID`;
+
+ALTER TABLE `ui_splash_screen` MODIFY `ScreenType` tinyint UNSIGNED NOT NULL DEFAULT 0 AFTER `HordeQuestID`;
diff --git a/src/common/DataStores/DB2FileLoader.cpp b/src/common/DataStores/DB2FileLoader.cpp
index 7a586178794..a0cc609250e 100644
--- a/src/common/DataStores/DB2FileLoader.cpp
+++ b/src/common/DataStores/DB2FileLoader.cpp
@@ -20,6 +20,7 @@
#include "DB2Meta.h"
#include "Errors.h"
#include "Log.h"
+#include <fmt/ranges.h>
#include <limits>
#include <sstream>
#include <system_error>
@@ -182,8 +183,6 @@ public:
virtual uint32 GetMaxId() const = 0;
virtual DB2FileLoadInfo const* GetLoadInfo() const = 0;
virtual DB2SectionHeader& GetSection(uint32 section) const = 0;
- virtual bool IsSignedField(uint32 field) const = 0;
- virtual char const* GetExpectedSignMismatchReason(uint32 field) const = 0;
private:
friend class DB2Record;
@@ -229,8 +228,6 @@ public:
uint32 GetMaxId() const override;
DB2FileLoadInfo const* GetLoadInfo() const override;
DB2SectionHeader& GetSection(uint32 section) const override;
- bool IsSignedField(uint32 field) const override;
- char const* GetExpectedSignMismatchReason(uint32 field) const override;
private:
void FillParentLookup(char* dataTable);
@@ -295,8 +292,6 @@ public:
uint32 GetMaxId() const override;
DB2FileLoadInfo const* GetLoadInfo() const override;
DB2SectionHeader& GetSection(uint32 section) const override;
- bool IsSignedField(uint32 field) const override;
- char const* GetExpectedSignMismatchReason(uint32 field) const override;
private:
void FillParentLookup(char* dataTable);
@@ -982,68 +977,6 @@ DB2SectionHeader& DB2FileLoaderRegularImpl::GetSection(uint32 section) const
return _sections[section];
}
-bool DB2FileLoaderRegularImpl::IsSignedField(uint32 field) const
-{
- if (field >= _header->TotalFieldCount)
- {
- ASSERT(field == _header->TotalFieldCount);
- ASSERT(int32(field) == _loadInfo->Meta->ParentIndexField);
- return _loadInfo->Meta->IsSignedField(field);
- }
-
- DB2ColumnCompression compressionType = _columnMeta ? _columnMeta[field].CompressionType : DB2ColumnCompression::None;
- switch (compressionType)
- {
- case DB2ColumnCompression::None:
- case DB2ColumnCompression::CommonData:
- case DB2ColumnCompression::Pallet:
- case DB2ColumnCompression::PalletArray:
- return _loadInfo->Meta->IsSignedField(field);
- case DB2ColumnCompression::SignedImmediate:
- return field != uint32(_loadInfo->Meta->IndexField);
- case DB2ColumnCompression::Immediate:
- return false;
- default:
- ABORT_MSG("Unhandled compression type %u in %s", uint32(_columnMeta[field].CompressionType), _fileName);
- break;
- }
-
- return false;
-}
-
-char const* DB2FileLoaderRegularImpl::GetExpectedSignMismatchReason(uint32 field) const
-{
- if (field >= _header->TotalFieldCount)
- {
- ASSERT(field == _header->TotalFieldCount);
- ASSERT(int32(field) == _loadInfo->Meta->ParentIndexField);
- return " (ParentIndexField must always be unsigned)";
- }
-
- DB2ColumnCompression compressionType = _columnMeta ? _columnMeta[field].CompressionType : DB2ColumnCompression::None;
- switch (compressionType)
- {
- case DB2ColumnCompression::None:
- case DB2ColumnCompression::CommonData:
- case DB2ColumnCompression::Pallet:
- case DB2ColumnCompression::PalletArray:
- if (int32(field) == _loadInfo->Meta->IndexField)
- return " (IndexField must always be unsigned)";
- if (int32(field) == _loadInfo->Meta->ParentIndexField)
- return " (ParentIndexField must always be unsigned)";
- return "";
- case DB2ColumnCompression::SignedImmediate:
- return " (CompressionType is SignedImmediate)";
- case DB2ColumnCompression::Immediate:
- return " (CompressionType is Immediate)";
- default:
- ABORT_MSG("Unhandled compression type %u in %s", uint32(_columnMeta[field].CompressionType), _fileName);
- break;
- }
-
- return "";
-}
-
DB2FileLoaderSparseImpl::DB2FileLoaderSparseImpl(char const* fileName, DB2FileLoadInfo const* loadInfo, DB2Header const* header, DB2FileSource* source) :
_fileName(fileName),
_loadInfo(loadInfo),
@@ -1657,22 +1590,6 @@ DB2SectionHeader& DB2FileLoaderSparseImpl::GetSection(uint32 section) const
return _sections[section];
}
-bool DB2FileLoaderSparseImpl::IsSignedField(uint32 field) const
-{
- ASSERT(field < _header->FieldCount);
- return _loadInfo->Meta->IsSignedField(field);
-}
-
-char const* DB2FileLoaderSparseImpl::GetExpectedSignMismatchReason(uint32 field) const
-{
- ASSERT(field < _header->FieldCount);
- if (int32(field) == _loadInfo->Meta->IndexField)
- return " (IndexField must always be unsigned)";
- if (int32(field) == _loadInfo->Meta->ParentIndexField)
- return " (ParentIndexField must always be unsigned)";
- return "";
-}
-
DB2Record::DB2Record(DB2FileLoaderImpl const& db2, uint32 recordIndex, std::size_t* fieldOffsets)
: _db2(db2), _recordIndex(recordIndex), _recordData(db2.GetRawRecordData(recordIndex, nullptr)), _fieldOffsets(fieldOffsets)
{
@@ -2076,23 +1993,30 @@ void DB2FileLoader::Load(DB2FileSource* source, DB2FileLoadInfo const* loadInfo)
if (loadInfo)
{
uint32 fieldIndex = 0;
- std::string signValidationResult;
+ std::vector<std::string> signValidationResult;
if (!loadInfo->Meta->HasIndexFieldInData())
{
if (loadInfo->Fields[0].IsSigned)
- signValidationResult += Trinity::StringFormat("ID must be unsigned in {}", source->GetFileName());
+ signValidationResult.emplace_back(Trinity::StringFormat("ID must be unsigned in {}", source->GetFileName()));
++fieldIndex;
}
for (uint32 f = 0; f < loadInfo->Meta->FieldCount; ++f)
{
- if (loadInfo->Fields[fieldIndex].IsSigned != _impl->IsSignedField(f))
- signValidationResult += Trinity::StringFormat("Field {} in {} must be {}{}", loadInfo->Fields[fieldIndex].Name,
- source->GetFileName(), _impl->IsSignedField(f) ? "signed" : "unsigned", _impl->GetExpectedSignMismatchReason(f));
+ if (loadInfo->Fields[fieldIndex].IsSigned != loadInfo->Meta->IsSignedField(f))
+ {
+ signValidationResult.emplace_back(Trinity::StringFormat("Field {} in {} must be {}", loadInfo->Fields[fieldIndex].Name,
+ source->GetFileName(), loadInfo->Meta->IsSignedField(f) ? "signed" : "unsigned"));
+
+ if (int32(f) == loadInfo->Meta->IndexField)
+ signValidationResult.back() += " (IndexField must always be unsigned)";
+ if (int32(f) == loadInfo->Meta->ParentIndexField)
+ signValidationResult.back() += " (ParentIndexField must always be unsigned)";
+ }
fieldIndex += loadInfo->Meta->Fields[f].ArraySize;
}
if (!signValidationResult.empty())
- throw DB2FileLoadException(std::move(signValidationResult));
+ throw DB2FileLoadException(Trinity::StringFormat("{}", fmt::join(signValidationResult, "\n")));
}
}
diff --git a/src/server/game/Achievements/CriteriaHandler.cpp b/src/server/game/Achievements/CriteriaHandler.cpp
index 0d542425547..e64f701dab7 100644
--- a/src/server/game/Achievements/CriteriaHandler.cpp
+++ b/src/server/game/Achievements/CriteriaHandler.cpp
@@ -715,7 +715,7 @@ void CriteriaHandler::UpdateCriteria(CriteriaType type, uint64 miscValue1 /*= 0*
SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(spellId);
for (SkillLineAbilityMap::const_iterator skillIter = bounds.first; skillIter != bounds.second; ++skillIter)
{
- if (skillIter->second->SkillLine == int32(criteria->Entry->Asset.SkillID))
+ if (skillIter->second->SkillLine == uint32(criteria->Entry->Asset.SkillID))
{
// do not add couter twice if by any chance skill is listed twice in dbc (eg. skill 777 and spell 22717)
++spellCount;
@@ -2446,7 +2446,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
GarrBuildingEntry const* followerBuilding = sGarrBuildingStore.LookupEntry(follower.PacketInfo.CurrentBuildingID);
if (!followerBuilding)
return false;
- return followerBuilding->BuildingType == int32(secondaryAsset) && follower.HasAbility(reqValue);;
+ return followerBuilding->BuildingType == secondaryAsset && follower.HasAbility(reqValue);;
});
if (followerCount < 1)
return false;
@@ -2465,7 +2465,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
GarrBuildingEntry const* followerBuilding = sGarrBuildingStore.LookupEntry(follower.PacketInfo.CurrentBuildingID);
if (!followerBuilding)
return false;
- return followerBuilding->BuildingType == int32(secondaryAsset) && follower.HasAbility(reqValue);;
+ return followerBuilding->BuildingType == secondaryAsset && follower.HasAbility(reqValue);;
});
if (followerCount < 1)
return false;
@@ -2483,7 +2483,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
GarrBuildingEntry const* followerBuilding = sGarrBuildingStore.LookupEntry(follower.PacketInfo.CurrentBuildingID);
if (!followerBuilding)
return false;
- return followerBuilding->BuildingType == int32(secondaryAsset);
+ return followerBuilding->BuildingType == secondaryAsset;
});
if (followerCount < 1)
return false;
@@ -2500,7 +2500,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
continue;
GarrBuildingEntry const* building = sGarrBuildingStore.LookupEntry(plot->BuildingInfo.PacketInfo->GarrBuildingID);
- if (!building || building->UpgradeLevel < reqValue || building->BuildingType != int32(secondaryAsset))
+ if (!building || building->UpgradeLevel < reqValue || building->BuildingType != secondaryAsset)
continue;
return true;
@@ -2564,7 +2564,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
continue;
GarrBuildingEntry const* building = sGarrBuildingStore.LookupEntry(plot->BuildingInfo.PacketInfo->GarrBuildingID);
- if (!building || building->UpgradeLevel != secondaryAsset || building->BuildingType != int32(reqValue))
+ if (!building || building->UpgradeLevel != secondaryAsset || building->BuildingType != reqValue)
continue;
return true;
@@ -3937,7 +3937,7 @@ bool CriteriaHandler::ModifierSatisfied(ModifierTreeEntry const* modifier, uint6
if (item->GetVisibleAppearanceModId(referencePlayer) == itemModifiedAppearance->ID)
return ItemSearchCallbackResult::Stop;
- if (int32(item->GetEntry()) == itemModifiedAppearance->ItemID)
+ if (item->GetEntry() == itemModifiedAppearance->ItemID)
return ItemSearchCallbackResult::Stop;
return ItemSearchCallbackResult::Continue;
diff --git a/src/server/game/DataStores/DB2LoadInfo.h b/src/server/game/DataStores/DB2LoadInfo.h
index 60e0b6b65b2..b40b83bd88c 100644
--- a/src/server/game/DataStores/DB2LoadInfo.h
+++ b/src/server/game/DataStores/DB2LoadInfo.h
@@ -39,7 +39,7 @@ struct AchievementLoadInfo
{ true, FT_BYTE, "MinimumCriteria" },
{ true, FT_BYTE, "Points" },
{ true, FT_INT, "Flags" },
- { true, FT_SHORT, "UiOrder" },
+ { false, FT_SHORT, "UiOrder" },
{ true, FT_INT, "IconFileID" },
{ true, FT_INT, "RewardItemID" },
{ false, FT_INT, "CriteriaTree" },
@@ -59,7 +59,7 @@ struct AchievementCategoryLoadInfo
{ false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
{ true, FT_SHORT, "Parent" },
- { true, FT_BYTE, "UiOrder" },
+ { false, FT_BYTE, "UiOrder" },
};
static constexpr DB2LoadInfo Instance{ Fields, 4, &Achievement_CategoryMeta::Instance, HOTFIX_SEL_ACHIEVEMENT_CATEGORY };
@@ -205,7 +205,7 @@ struct AreaTriggerLoadInfo
{ false, FT_FLOAT, "PosY" },
{ false, FT_FLOAT, "PosZ" },
{ false, FT_INT, "ID" },
- { true, FT_SHORT, "ContinentID" },
+ { false, FT_SHORT, "ContinentID" },
{ true, FT_INT, "PhaseUseFlags" },
{ true, FT_SHORT, "PhaseID" },
{ true, FT_SHORT, "PhaseGroupID" },
@@ -335,7 +335,7 @@ struct ArtifactPowerLoadInfo
{ false, FT_BYTE, "MaxPurchasableRank" },
{ true, FT_INT, "Label" },
{ false, FT_BYTE, "Flags" },
- { true, FT_BYTE, "Tier" },
+ { false, FT_BYTE, "Tier" },
};
static constexpr DB2LoadInfo Instance{ Fields, 8, &ArtifactPowerMeta::Instance, HOTFIX_SEL_ARTIFACT_POWER };
@@ -555,10 +555,10 @@ struct AzeritePowerSetMemberLoadInfo
static constexpr DB2FieldMeta Fields[6] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "AzeritePowerSetID" },
+ { false, FT_INT, "AzeritePowerSetID" },
{ true, FT_INT, "AzeritePowerID" },
{ true, FT_INT, "Class" },
- { true, FT_BYTE, "Tier" },
+ { false, FT_BYTE, "Tier" },
{ true, FT_INT, "OrderIndex" },
};
@@ -670,7 +670,7 @@ struct BattlePetBreedQualityLoadInfo
{ false, FT_INT, "ID" },
{ true, FT_INT, "MaxQualityRoll" },
{ false, FT_FLOAT, "StateMultiplier" },
- { true, FT_BYTE, "QualityEnum" },
+ { false, FT_BYTE, "QualityEnum" },
};
static constexpr DB2LoadInfo Instance{ Fields, 4, &BattlePetBreedQualityMeta::Instance, HOTFIX_SEL_BATTLE_PET_BREED_QUALITY };
@@ -792,7 +792,7 @@ struct BroadcastTextDurationLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "BroadcastTextID" },
+ { false, FT_INT, "BroadcastTextID" },
{ true, FT_INT, "Locale" },
{ true, FT_INT, "Duration" },
};
@@ -881,7 +881,7 @@ struct CharacterLoadoutLoadInfo
{ true, FT_LONG, "RaceMask" },
{ true, FT_BYTE, "ChrClassID" },
{ true, FT_INT, "Purpose" },
- { true, FT_BYTE, "ItemContext" },
+ { false, FT_BYTE, "ItemContext" },
};
static constexpr DB2LoadInfo Instance{ Fields, 5, &CharacterLoadoutMeta::Instance, HOTFIX_SEL_CHARACTER_LOADOUT };
@@ -993,7 +993,7 @@ struct ChrCustomizationChoiceLoadInfo
{
{ false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "ChrCustomizationOptionID" },
+ { false, FT_INT, "ChrCustomizationOptionID" },
{ true, FT_INT, "ChrCustomizationReqID" },
{ true, FT_INT, "ChrCustomizationVisReqID" },
{ false, FT_SHORT, "SortOrder" },
@@ -1056,7 +1056,7 @@ struct ChrCustomizationOptionLoadInfo
{ true, FT_INT, "Flags" },
{ true, FT_INT, "ChrRacesID" },
{ true, FT_INT, "Sex" },
- { true, FT_INT, "ChrModelID" },
+ { false, FT_INT, "ChrModelID" },
{ true, FT_INT, "SortIndex" },
{ true, FT_INT, "ChrCustomizationCategoryID" },
{ true, FT_INT, "OptionType" },
@@ -1112,7 +1112,7 @@ struct ChrModelLoadInfo
{ false, FT_FLOAT, "CustomizeOffset3" },
{ false, FT_INT, "ID" },
{ true, FT_BYTE, "Sex" },
- { true, FT_INT, "DisplayID" },
+ { false, FT_INT, "DisplayID" },
{ true, FT_INT, "CharComponentTextureLayoutID" },
{ true, FT_INT, "Flags" },
{ true, FT_INT, "SkeletonFileDataID" },
@@ -1135,7 +1135,7 @@ struct ChrRaceXChrModelLoadInfo
static constexpr DB2FieldMeta Fields[5] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "ChrRacesID" },
+ { false, FT_INT, "ChrRacesID" },
{ true, FT_INT, "ChrModelID" },
{ true, FT_INT, "Sex" },
{ true, FT_INT, "AllowedTransmogSlots" },
@@ -1224,7 +1224,7 @@ struct ChrSpecializationLoadInfo
{ false, FT_STRING, "FemaleName" },
{ false, FT_STRING, "Description" },
{ false, FT_INT, "ID" },
- { true, FT_BYTE, "ClassID" },
+ { false, FT_BYTE, "ClassID" },
{ true, FT_BYTE, "OrderIndex" },
{ true, FT_BYTE, "PetTalentType" },
{ true, FT_BYTE, "Role" },
@@ -1280,7 +1280,7 @@ struct ConditionalChrModelLoadInfo
static constexpr DB2FieldMeta Fields[6] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "ChrModelID" },
+ { false, FT_INT, "ChrModelID" },
{ true, FT_INT, "ChrCustomizationReqID" },
{ true, FT_INT, "PlayerConditionID" },
{ true, FT_INT, "Flags" },
@@ -1683,7 +1683,7 @@ struct DifficultyLoadInfo
{ false, FT_BYTE, "MinPlayers" },
{ false, FT_BYTE, "MaxPlayers" },
{ false, FT_SHORT, "Flags" },
- { true, FT_BYTE, "ItemContext" },
+ { false, FT_BYTE, "ItemContext" },
{ false, FT_BYTE, "ToggleDifficultyID" },
{ false, FT_INT, "GroupSizeHealthCurveID" },
{ false, FT_INT, "GroupSizeDmgCurveID" },
@@ -1699,7 +1699,7 @@ struct DungeonEncounterLoadInfo
{
{ false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
- { true, FT_SHORT, "MapID" },
+ { false, FT_SHORT, "MapID" },
{ true, FT_INT, "DifficultyID" },
{ true, FT_INT, "OrderIndex" },
{ true, FT_INT, "CompleteWorldStateID" },
@@ -1929,7 +1929,7 @@ struct FriendshipRepReactionLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING, "Reaction" },
- { true, FT_INT, "FriendshipRepID" },
+ { false, FT_INT, "FriendshipRepID" },
{ true, FT_INT, "ReactionThreshold" },
{ true, FT_INT, "OverrideColor" },
};
@@ -2004,7 +2004,7 @@ struct GameobjectsLoadInfo
{ false, FT_FLOAT, "Rot3" },
{ false, FT_FLOAT, "Rot4" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "OwnerID" },
+ { false, FT_INT, "OwnerID" },
{ true, FT_INT, "DisplayID" },
{ false, FT_FLOAT, "Scale" },
{ true, FT_INT, "TypeID" },
@@ -2052,7 +2052,7 @@ struct GarrBuildingLoadInfo
{ false, FT_STRING, "Description" },
{ false, FT_STRING, "Tooltip" },
{ true, FT_BYTE, "GarrTypeID" },
- { true, FT_BYTE, "BuildingType" },
+ { false, FT_BYTE, "BuildingType" },
{ true, FT_INT, "HordeGameObjectID" },
{ true, FT_INT, "AllianceGameObjectID" },
{ true, FT_INT, "GarrSiteID" },
@@ -2188,7 +2188,7 @@ struct GarrMissionLoadInfo
{ false, FT_INT, "EnvGarrMechanicID" },
{ true, FT_INT, "EnvGarrMechanicTypeID" },
{ false, FT_INT, "PlayerConditionID" },
- { true, FT_INT, "GarrMissionSetID" },
+ { false, FT_INT, "GarrMissionSetID" },
{ true, FT_BYTE, "TargetLevel" },
{ false, FT_SHORT, "TargetItemLevel" },
{ true, FT_INT, "MissionDuration" },
@@ -2214,7 +2214,7 @@ struct GarrPlotLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_STRING_NOT_LOCALIZED, "Name" },
- { true, FT_BYTE, "PlotType" },
+ { false, FT_BYTE, "PlotType" },
{ true, FT_INT, "HordeConstructObjID" },
{ true, FT_INT, "AllianceConstructObjID" },
{ false, FT_BYTE, "Flags" },
@@ -2300,7 +2300,7 @@ struct GarrTalentTreeLoadInfo
{ true, FT_INT, "GarrTalentTreeType" },
{ true, FT_INT, "PlayerConditionID" },
{ false, FT_BYTE, "FeatureTypeIndex" },
- { true, FT_BYTE, "FeatureSubtypeIndex" },
+ { false, FT_BYTE, "FeatureSubtypeIndex" },
{ true, FT_INT, "CurrencyID" },
};
@@ -2349,7 +2349,7 @@ struct GlyphPropertiesLoadInfo
{
{ false, FT_INT, "ID" },
{ false, FT_INT, "SpellID" },
- { true, FT_BYTE, "GlyphType" },
+ { false, FT_BYTE, "GlyphType" },
{ false, FT_BYTE, "GlyphExclusiveCategoryID" },
{ true, FT_INT, "SpellIconFileDataID" },
};
@@ -2705,7 +2705,7 @@ struct ItemBonusListGroupEntryLoadInfo
static constexpr DB2FieldMeta Fields[9] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "ItemBonusListGroupID" },
+ { false, FT_INT, "ItemBonusListGroupID" },
{ true, FT_INT, "ItemBonusListID" },
{ true, FT_INT, "ItemLevelSelectorID" },
{ true, FT_INT, "SequenceValue" },
@@ -2746,7 +2746,7 @@ struct ItemBonusTreeNodeLoadInfo
static constexpr DB2FieldMeta Fields[10] =
{
{ false, FT_INT, "ID" },
- { true, FT_BYTE, "ItemContext" },
+ { false, FT_BYTE, "ItemContext" },
{ false, FT_SHORT, "ChildItemBonusTreeID" },
{ false, FT_SHORT, "ChildItemBonusListID" },
{ false, FT_SHORT, "ChildItemLevelSelectorID" },
@@ -2765,7 +2765,7 @@ struct ItemChildEquipmentLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "ParentItemID" },
+ { false, FT_INT, "ParentItemID" },
{ true, FT_INT, "ChildItemID" },
{ false, FT_BYTE, "ChildItemEquipSlot" },
};
@@ -2792,7 +2792,7 @@ struct ItemContextPickerEntryLoadInfo
static constexpr DB2FieldMeta Fields[8] =
{
{ false, FT_INT, "ID" },
- { true, FT_BYTE, "ItemCreationContext" },
+ { false, FT_BYTE, "ItemCreationContext" },
{ false, FT_BYTE, "OrderIndex" },
{ true, FT_INT, "PVal" },
{ true, FT_INT, "LabelID" },
@@ -2809,7 +2809,7 @@ struct ItemCurrencyCostLoadInfo
static constexpr DB2FieldMeta Fields[2] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "ItemID" },
+ { false, FT_INT, "ItemID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 2, &ItemCurrencyCostMeta::Instance, HOTFIX_SEL_ITEM_CURRENCY_COST };
@@ -3045,7 +3045,7 @@ struct ItemModifiedAppearanceLoadInfo
static constexpr DB2FieldMeta Fields[7] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "ItemID" },
+ { false, FT_INT, "ItemID" },
{ true, FT_INT, "ItemAppearanceModifierID" },
{ true, FT_INT, "ItemAppearanceID" },
{ true, FT_INT, "OrderIndex" },
@@ -3497,7 +3497,7 @@ struct LfgDungeonsLoadInfo
{ false, FT_STRING, "Name" },
{ false, FT_STRING, "Description" },
{ false, FT_BYTE, "TypeID" },
- { true, FT_BYTE, "Subtype" },
+ { false, FT_BYTE, "Subtype" },
{ true, FT_BYTE, "Faction" },
{ true, FT_INT, "IconTextureFileID" },
{ true, FT_INT, "RewardsBgTextureFileID" },
@@ -3752,7 +3752,7 @@ struct MapDifficultyLoadInfo
{ false, FT_STRING, "Message" },
{ true, FT_INT, "DifficultyID" },
{ true, FT_INT, "LockID" },
- { true, FT_BYTE, "ResetInterval" },
+ { false, FT_BYTE, "ResetInterval" },
{ true, FT_INT, "MaxPlayers" },
{ false, FT_BYTE, "ItemContext" },
{ true, FT_INT, "ItemContextPickerID" },
@@ -3784,7 +3784,7 @@ struct MawPowerLoadInfo
static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "SpellID" },
+ { false, FT_INT, "SpellID" },
{ true, FT_INT, "MawPowerRarityID" },
};
@@ -4117,7 +4117,7 @@ struct PlayerConditionLoadInfo
{ true, FT_BYTE, "ChrSpecializationRole" },
{ false, FT_INT, "ModifierTreeID" },
{ true, FT_BYTE, "PowerType" },
- { true, FT_BYTE, "PowerTypeComp" },
+ { false, FT_BYTE, "PowerTypeComp" },
{ false, FT_BYTE, "PowerTypeValue" },
{ true, FT_INT, "WeaponSubclassMask" },
{ false, FT_BYTE, "MaxGuildLevel" },
@@ -4320,7 +4320,7 @@ struct PvpStatLoadInfo
{
{ false, FT_STRING, "Description" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "MapID" },
+ { false, FT_INT, "MapID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 3, &PVPStatMeta::Instance, HOTFIX_SEL_PVP_STAT };
@@ -4345,7 +4345,7 @@ struct PvpTalentLoadInfo
{
{ false, FT_STRING, "Description" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "SpecID" },
+ { false, FT_INT, "SpecID" },
{ true, FT_INT, "SpellID" },
{ true, FT_INT, "OverridesSpellID" },
{ true, FT_INT, "Flags" },
@@ -4393,7 +4393,7 @@ struct PvpTierLoadInfo
{ true, FT_SHORT, "MaxRating" },
{ true, FT_INT, "PrevTier" },
{ true, FT_INT, "NextTier" },
- { true, FT_BYTE, "BracketID" },
+ { false, FT_BYTE, "BracketID" },
{ true, FT_BYTE, "Rank" },
{ true, FT_INT, "RankIconFileDataID" },
};
@@ -4742,7 +4742,7 @@ struct SkillLineAbilityLoadInfo
{ false, FT_STRING, "AbilityVerb" },
{ false, FT_STRING, "AbilityAllVerb" },
{ false, FT_INT, "ID" },
- { true, FT_SHORT, "SkillLine" },
+ { false, FT_SHORT, "SkillLine" },
{ true, FT_INT, "Spell" },
{ true, FT_SHORT, "MinSkillLineRank" },
{ true, FT_INT, "ClassMask" },
@@ -4765,7 +4765,7 @@ struct SkillLineXTraitTreeLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "SkillLineID" },
+ { false, FT_INT, "SkillLineID" },
{ true, FT_INT, "TraitTreeID" },
{ true, FT_INT, "OrderIndex" },
};
@@ -4779,7 +4779,7 @@ struct SkillRaceClassInfoLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_LONG, "RaceMask" },
- { true, FT_SHORT, "SkillID" },
+ { false, FT_SHORT, "SkillID" },
{ true, FT_INT, "ClassMask" },
{ true, FT_INT, "Flags" },
{ true, FT_INT, "Availability" },
@@ -5233,7 +5233,7 @@ struct SpellLearnSpellLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "SpellID" },
+ { false, FT_INT, "SpellID" },
{ true, FT_INT, "LearnSpellID" },
{ true, FT_INT, "OverridesSpellID" },
};
@@ -5450,7 +5450,7 @@ struct SpellReagentsCurrencyLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "SpellID" },
+ { false, FT_INT, "SpellID" },
{ false, FT_SHORT, "CurrencyTypesID" },
{ false, FT_SHORT, "CurrencyCount" },
};
@@ -5842,7 +5842,7 @@ struct TraitCondLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "CondType" },
- { true, FT_INT, "TraitTreeID" },
+ { false, FT_INT, "TraitTreeID" },
{ true, FT_INT, "GrantedRanks" },
{ true, FT_INT, "QuestID" },
{ true, FT_INT, "AchievementID" },
@@ -5895,7 +5895,7 @@ struct TraitCurrencySourceLoadInfo
{
{ false, FT_STRING, "Requirement" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitCurrencyID" },
+ { false, FT_INT, "TraitCurrencyID" },
{ true, FT_INT, "Amount" },
{ true, FT_INT, "QuestID" },
{ true, FT_INT, "AchievementID" },
@@ -5929,7 +5929,7 @@ struct TraitDefinitionEffectPointsLoadInfo
static constexpr DB2FieldMeta Fields[5] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitDefinitionID" },
+ { false, FT_INT, "TraitDefinitionID" },
{ true, FT_INT, "EffectIndex" },
{ true, FT_INT, "OperationType" },
{ true, FT_INT, "CurveID" },
@@ -5944,7 +5944,7 @@ struct TraitEdgeLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "VisualStyle" },
- { true, FT_INT, "LeftTraitNodeID" },
+ { false, FT_INT, "LeftTraitNodeID" },
{ true, FT_INT, "RightTraitNodeID" },
{ true, FT_INT, "Type" },
};
@@ -5957,7 +5957,7 @@ struct TraitNodeLoadInfo
static constexpr DB2FieldMeta Fields[7] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitTreeID" },
+ { false, FT_INT, "TraitTreeID" },
{ true, FT_INT, "PosX" },
{ true, FT_INT, "PosY" },
{ false, FT_BYTE, "Type" },
@@ -5988,7 +5988,7 @@ struct TraitNodeEntryXTraitCondLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "TraitCondID" },
- { true, FT_INT, "TraitNodeEntryID" },
+ { false, FT_INT, "TraitNodeEntryID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 3, &TraitNodeEntryXTraitCondMeta::Instance, HOTFIX_SEL_TRAIT_NODE_ENTRY_X_TRAIT_COND };
@@ -5999,7 +5999,7 @@ struct TraitNodeEntryXTraitCostLoadInfo
static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitNodeEntryID" },
+ { false, FT_INT, "TraitNodeEntryID" },
{ true, FT_INT, "TraitCostID" },
};
@@ -6011,7 +6011,7 @@ struct TraitNodeGroupLoadInfo
static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitTreeID" },
+ { false, FT_INT, "TraitTreeID" },
{ true, FT_INT, "Flags" },
};
@@ -6024,7 +6024,7 @@ struct TraitNodeGroupXTraitCondLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "TraitCondID" },
- { true, FT_INT, "TraitNodeGroupID" },
+ { false, FT_INT, "TraitNodeGroupID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 3, &TraitNodeGroupXTraitCondMeta::Instance, HOTFIX_SEL_TRAIT_NODE_GROUP_X_TRAIT_COND };
@@ -6035,7 +6035,7 @@ struct TraitNodeGroupXTraitCostLoadInfo
static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitNodeGroupID" },
+ { false, FT_INT, "TraitNodeGroupID" },
{ true, FT_INT, "TraitCostID" },
};
@@ -6047,7 +6047,7 @@ struct TraitNodeGroupXTraitNodeLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitNodeGroupID" },
+ { false, FT_INT, "TraitNodeGroupID" },
{ true, FT_INT, "TraitNodeID" },
{ true, FT_INT, "Index" },
};
@@ -6061,7 +6061,7 @@ struct TraitNodeXTraitCondLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "TraitCondID" },
- { true, FT_INT, "TraitNodeID" },
+ { false, FT_INT, "TraitNodeID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 3, &TraitNodeXTraitCondMeta::Instance, HOTFIX_SEL_TRAIT_NODE_X_TRAIT_COND };
@@ -6072,7 +6072,7 @@ struct TraitNodeXTraitCostLoadInfo
static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitNodeID" },
+ { false, FT_INT, "TraitNodeID" },
{ true, FT_INT, "TraitCostID" },
};
@@ -6084,7 +6084,7 @@ struct TraitNodeXTraitNodeEntryLoadInfo
static constexpr DB2FieldMeta Fields[4] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitNodeID" },
+ { false, FT_INT, "TraitNodeID" },
{ true, FT_INT, "TraitNodeEntryID" },
{ true, FT_INT, "Index" },
};
@@ -6100,7 +6100,7 @@ struct TraitSubTreeLoadInfo
{ false, FT_STRING, "Description" },
{ false, FT_INT, "ID" },
{ true, FT_INT, "UiTextureAtlasElementID" },
- { true, FT_INT, "TraitTreeID" },
+ { false, FT_INT, "TraitTreeID" },
};
static constexpr DB2LoadInfo Instance{ Fields, 5, &TraitSubTreeMeta::Instance, HOTFIX_SEL_TRAIT_SUB_TREE };
@@ -6111,7 +6111,7 @@ struct TraitTreeLoadInfo
static constexpr DB2FieldMeta Fields[8] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitSystemID" },
+ { false, FT_INT, "TraitSystemID" },
{ true, FT_INT, "Unused1000_1" },
{ true, FT_INT, "FirstTraitNodeID" },
{ true, FT_INT, "PlayerConditionID" },
@@ -6128,7 +6128,7 @@ struct TraitTreeLoadoutLoadInfo
static constexpr DB2FieldMeta Fields[3] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitTreeID" },
+ { false, FT_INT, "TraitTreeID" },
{ true, FT_INT, "ChrSpecializationID" },
};
@@ -6140,7 +6140,7 @@ struct TraitTreeLoadoutEntryLoadInfo
static constexpr DB2FieldMeta Fields[6] =
{
{ false, FT_INT, "ID" },
- { true, FT_INT, "TraitTreeLoadoutID" },
+ { false, FT_INT, "TraitTreeLoadoutID" },
{ true, FT_INT, "SelectedTraitNodeID" },
{ true, FT_INT, "SelectedTraitNodeEntryID" },
{ true, FT_INT, "NumPoints" },
@@ -6168,7 +6168,7 @@ struct TraitTreeXTraitCurrencyLoadInfo
{
{ false, FT_INT, "ID" },
{ true, FT_INT, "Index" },
- { true, FT_INT, "TraitTreeID" },
+ { false, FT_INT, "TraitTreeID" },
{ true, FT_INT, "TraitCurrencyID" },
};
@@ -6200,7 +6200,7 @@ struct TransmogSetLoadInfo
{ true, FT_INT, "Flags" },
{ true, FT_INT, "TransmogSetGroupID" },
{ true, FT_INT, "ItemNameDescriptionID" },
- { true, FT_INT, "ParentTransmogSetID" },
+ { false, FT_INT, "ParentTransmogSetID" },
{ true, FT_INT, "Unknown810" },
{ true, FT_INT, "ExpansionID" },
{ true, FT_INT, "PatchID" },
@@ -6273,9 +6273,9 @@ struct UiMapLoadInfo
{
{ false, FT_STRING, "Name" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "ParentUiMapID" },
+ { false, FT_INT, "ParentUiMapID" },
{ true, FT_INT, "Flags" },
- { true, FT_BYTE, "System" },
+ { false, FT_BYTE, "System" },
{ false, FT_BYTE, "Type" },
{ true, FT_INT, "BountySetID" },
{ false, FT_INT, "BountyDisplayLocation" },
@@ -6307,7 +6307,7 @@ struct UiMapAssignmentLoadInfo
{ false, FT_FLOAT, "Region2Y" },
{ false, FT_FLOAT, "Region2Z" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "UiMapID" },
+ { false, FT_INT, "UiMapID" },
{ true, FT_INT, "OrderIndex" },
{ true, FT_INT, "MapID" },
{ true, FT_INT, "AreaID" },
@@ -6327,7 +6327,7 @@ struct UiMapLinkLoadInfo
{ false, FT_FLOAT, "UiMaxX" },
{ false, FT_FLOAT, "UiMaxY" },
{ false, FT_INT, "ID" },
- { true, FT_INT, "ParentUiMapID" },
+ { false, FT_INT, "ParentUiMapID" },
{ true, FT_INT, "OrderIndex" },
{ true, FT_INT, "ChildUiMapID" },
{ true, FT_INT, "PlayerConditionID" },
@@ -6366,7 +6366,7 @@ struct UiSplashScreenLoadInfo
{ false, FT_STRING, "RightFeatureDesc" },
{ true, FT_INT, "AllianceQuestID" },
{ true, FT_INT, "HordeQuestID" },
- { true, FT_BYTE, "ScreenType" },
+ { false, FT_BYTE, "ScreenType" },
{ true, FT_INT, "TextureKitID" },
{ true, FT_INT, "SoundKitID" },
{ true, FT_INT, "PlayerConditionID" },
diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp
index 22e4fd2496d..d4916949745 100644
--- a/src/server/game/DataStores/DB2Stores.cpp
+++ b/src/server/game/DataStores/DB2Stores.cpp
@@ -460,7 +460,7 @@ namespace
std::array<AzeriteItemMilestonePowerEntry const*, MAX_AZERITE_ESSENCE_SLOT> _azeriteItemMilestonePowerByEssenceSlot;
std::unordered_map<uint32 /*azeritePowerSetId*/, std::vector<AzeritePowerSetMemberEntry const*>> _azeritePowers;
std::unordered_map<std::pair<uint32 /*azeriteUnlockSetId*/, ItemContext>, std::array<uint8, MAX_AZERITE_EMPOWERED_TIER>> _azeriteTierUnlockLevels;
- std::unordered_map<std::pair<int32 /*broadcastTextId*/, CascLocaleBit /*cascLocaleBit*/>, int32> _broadcastTextDurations;
+ std::unordered_map<std::pair<uint32 /*broadcastTextId*/, CascLocaleBit /*cascLocaleBit*/>, int32> _broadcastTextDurations;
std::unordered_map<std::pair<uint8, uint8>, CharBaseInfoEntry const*> _charBaseInfoByRaceAndClass;
std::array<ChrClassUIDisplayEntry const*, MAX_CLASSES> _uiDisplayByClass;
std::array<std::array<uint32, MAX_POWERS>, MAX_CLASSES> _powersByClass;
@@ -1161,7 +1161,7 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
std::vector<uint32>* choices = nullptr;
for (std::pair<uint32, std::vector<uint32>>& choicesForOption : requiredChoicesForReq)
{
- if (int32(choicesForOption.first) == customizationChoice->ChrCustomizationOptionID)
+ if (choicesForOption.first == customizationChoice->ChrCustomizationOptionID)
{
choices = &choicesForOption.second;
break;
@@ -1582,7 +1582,7 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
}
}
- std::unordered_map<std::pair<int32, uint32>, UiMapLinkEntry const*> uiMapLinks;
+ std::unordered_map<std::pair<uint32, uint32>, UiMapLinkEntry const*> uiMapLinks;
for (UiMapLinkEntry const* uiMapLink : sUiMapLinkStore)
uiMapLinks[std::make_pair(uiMapLink->ParentUiMapID, uint32(uiMapLink->ChildUiMapID))] = uiMapLink;
@@ -1685,7 +1685,7 @@ uint32 DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaul
if (node->GetFlags().HasFlag(TaxiNodeFlags::ShowOnAllianceMap))
sAllianceTaxiNodesMask[field] |= submask;
- int32 uiMapId = -1;
+ uint32 uiMapId = uint32(-1);
if (!GetUiMapPosition(node->Pos.X, node->Pos.Y, node->Pos.Z, node->ContinentID, 0, 0, 0, UI_MAP_SYSTEM_ADVENTURE, false, &uiMapId))
GetUiMapPosition(node->Pos.X, node->Pos.Y, node->Pos.Z, node->ContinentID, 0, 0, 0, UI_MAP_SYSTEM_TAXI, false, &uiMapId);
@@ -2078,7 +2078,7 @@ char const* DB2Manager::GetBroadcastTextValue(BroadcastTextEntry const* broadcas
return broadcastText->Text[DEFAULT_LOCALE];
}
-int32 const* DB2Manager::GetBroadcastTextDuration(int32 broadcastTextId, LocaleConstant locale /*= DEFAULT_LOCALE*/) const
+int32 const* DB2Manager::GetBroadcastTextDuration(uint32 broadcastTextId, LocaleConstant locale /*= DEFAULT_LOCALE*/) const
{
return Trinity::Containers::MapGetValuePtr(_broadcastTextDurations, { broadcastTextId, WowLocaleToCascLocaleBit[locale] });
}
@@ -3341,7 +3341,7 @@ static UiMapAssignmentEntry const* FindNearestMapAssignment(float x, float y, fl
return nearestMapAssignment.UiMapAssignment;
}
-static DBCPosition2D CalculateGlobalUiMapPosition(int32 uiMapID, DBCPosition2D uiPosition)
+static DBCPosition2D CalculateGlobalUiMapPosition(uint32 uiMapID, DBCPosition2D uiPosition)
{
UiMapEntry const* uiMap = sUiMapStore.LookupEntry(uiMapID);
while (uiMap)
@@ -3363,7 +3363,7 @@ static DBCPosition2D CalculateGlobalUiMapPosition(int32 uiMapID, DBCPosition2D u
}
bool DB2Manager::GetUiMapPosition(float x, float y, float z, int32 mapId, int32 areaId, int32 wmoDoodadPlacementId, int32 wmoGroupId, UiMapSystem system, bool local,
- int32* uiMapId /*= nullptr*/, DBCPosition2D* newPos /*= nullptr*/)
+ uint32* uiMapId /*= nullptr*/, DBCPosition2D* newPos /*= nullptr*/)
{
if (uiMapId)
*uiMapId = -1;
diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h
index 2977a1d4ad7..9a5d9c2d3cc 100644
--- a/src/server/game/DataStores/DB2Stores.h
+++ b/src/server/game/DataStores/DB2Stores.h
@@ -449,7 +449,7 @@ public:
std::vector<AzeritePowerSetMemberEntry const*> const* GetAzeritePowers(uint32 itemId) const;
uint32 GetRequiredAzeriteLevelForAzeritePowerTier(uint32 azeriteUnlockSetId, ItemContext context, uint32 tier) const;
static char const* GetBroadcastTextValue(BroadcastTextEntry const* broadcastText, LocaleConstant locale = DEFAULT_LOCALE, uint8 gender = GENDER_MALE, bool forceGender = false);
- int32 const* GetBroadcastTextDuration(int32 broadcastTextId, LocaleConstant locale = DEFAULT_LOCALE) const;
+ int32 const* GetBroadcastTextDuration(uint32 broadcastTextId, LocaleConstant locale = DEFAULT_LOCALE) const;
static CharBaseInfoEntry const* GetCharBaseInfo(Races race, Classes class_);
ChrClassUIDisplayEntry const* GetUiDisplayForClass(Classes unitClass) const;
static char const* GetClassName(uint8 class_, LocaleConstant locale = DEFAULT_LOCALE);
@@ -537,7 +537,7 @@ public:
std::vector<TransmogSetEntry const*> const* GetTransmogSetsForItemModifiedAppearance(uint32 itemModifiedAppearanceId) const;
std::vector<TransmogSetItemEntry const*> const* GetTransmogSetItems(uint32 transmogSetId) const;
static bool GetUiMapPosition(float x, float y, float z, int32 mapId, int32 areaId, int32 wmoDoodadPlacementId, int32 wmoGroupId, UiMapSystem system, bool local,
- int32* uiMapId = nullptr, DBCPosition2D* newPos = nullptr);
+ uint32* uiMapId = nullptr, DBCPosition2D* newPos = nullptr);
bool Zone2MapCoordinates(uint32 areaId, float& x, float& y) const;
void Map2ZoneCoordinates(uint32 areaId, float& x, float& y) const;
bool IsUiMapPhase(uint32 phaseId) const;
diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h
index 4ac551fcd90..b4546e48886 100644
--- a/src/server/game/DataStores/DB2Structure.h
+++ b/src/server/game/DataStores/DB2Structure.h
@@ -38,7 +38,7 @@ struct AchievementEntry
int8 MinimumCriteria; // need this count of completed criterias (own or referenced achievement criterias)
int8 Points;
int32 Flags;
- int16 UiOrder;
+ uint16 UiOrder;
int32 IconFileID;
int32 RewardItemID;
uint32 CriteriaTree;
@@ -53,7 +53,7 @@ struct Achievement_CategoryEntry
LocalizedString Name;
uint32 ID;
int16 Parent;
- int8 UiOrder;
+ uint8 UiOrder;
};
struct AdventureJournalEntry
@@ -164,7 +164,7 @@ struct AreaTriggerEntry
{
DBCPosition3D Pos;
uint32 ID;
- int16 ContinentID;
+ uint16 ContinentID;
int32 PhaseUseFlags;
int16 PhaseID;
int16 PhaseGroupID;
@@ -262,7 +262,7 @@ struct ArtifactPowerEntry
uint8 MaxPurchasableRank;
int32 Label;
uint8 Flags;
- int8 Tier;
+ uint8 Tier;
};
struct ArtifactPowerLinkEntry
@@ -393,10 +393,10 @@ struct AzeritePowerEntry
struct AzeritePowerSetMemberEntry
{
uint32 ID;
- int32 AzeritePowerSetID;
+ uint32 AzeritePowerSetID;
int32 AzeritePowerID;
int32 Class;
- int8 Tier;
+ uint8 Tier;
int32 OrderIndex;
};
@@ -468,7 +468,7 @@ struct BattlePetBreedQualityEntry
uint32 ID;
int32 MaxQualityRoll;
float StateMultiplier;
- int8 QualityEnum;
+ uint8 QualityEnum;
};
struct BattlePetBreedStateEntry
@@ -556,7 +556,7 @@ struct BroadcastTextEntry
struct BroadcastTextDurationEntry
{
uint32 ID;
- int32 BroadcastTextID;
+ uint32 BroadcastTextID;
int32 Locale;
int32 Duration;
};
@@ -619,7 +619,7 @@ struct CharacterLoadoutEntry
Trinity::RaceMask<int64> RaceMask;
int8 ChrClassID;
int32 Purpose;
- int8 ItemContext;
+ uint8 ItemContext;
bool IsForNewCharacter() const { return Purpose == 9; }
};
@@ -706,7 +706,7 @@ struct ChrCustomizationChoiceEntry
{
LocalizedString Name;
uint32 ID;
- int32 ChrCustomizationOptionID;
+ uint32 ChrCustomizationOptionID;
int32 ChrCustomizationReqID;
int32 ChrCustomizationVisReqID;
uint16 SortOrder;
@@ -753,7 +753,7 @@ struct ChrCustomizationOptionEntry
int32 Flags;
int32 ChrRacesID;
int32 Sex;
- int32 ChrModelID;
+ uint32 ChrModelID;
int32 SortIndex;
int32 ChrCustomizationCategoryID;
int32 OptionType;
@@ -792,7 +792,7 @@ struct ChrModelEntry
std::array<float, 3> CustomizeOffset;
uint32 ID;
int8 Sex;
- int32 DisplayID;
+ uint32 DisplayID;
int32 CharComponentTextureLayoutID;
int32 Flags;
int32 SkeletonFileDataID;
@@ -810,7 +810,7 @@ struct ChrModelEntry
struct ChrRaceXChrModelEntry
{
uint32 ID;
- int32 ChrRacesID;
+ uint32 ChrRacesID;
int32 ChrModelID;
int32 Sex;
int32 AllowedTransmogSlots;
@@ -883,7 +883,7 @@ struct ChrSpecializationEntry
LocalizedString FemaleName;
LocalizedString Description;
uint32 ID;
- int8 ClassID;
+ uint8 ClassID;
int8 OrderIndex;
int8 PetTalentType;
int8 Role;
@@ -922,7 +922,7 @@ struct CinematicSequencesEntry
struct ConditionalChrModelEntry
{
uint32 ID;
- int32 ChrModelID;
+ uint32 ChrModelID;
int32 ChrCustomizationReqID;
int32 PlayerConditionID;
int32 Flags;
@@ -1499,7 +1499,7 @@ struct DifficultyEntry
uint8 MinPlayers;
uint8 MaxPlayers;
uint16 Flags;
- int8 ItemContext;
+ uint8 ItemContext;
uint8 ToggleDifficultyID;
uint32 GroupSizeHealthCurveID;
uint32 GroupSizeDmgCurveID;
@@ -1510,7 +1510,7 @@ struct DungeonEncounterEntry
{
LocalizedString Name;
uint32 ID;
- int16 MapID;
+ uint16 MapID;
int32 DifficultyID;
int32 OrderIndex;
int32 CompleteWorldStateID;
@@ -1683,7 +1683,7 @@ struct FriendshipRepReactionEntry
{
uint32 ID;
LocalizedString Reaction;
- int32 FriendshipRepID;
+ uint32 FriendshipRepID;
int32 ReactionThreshold;
int32 OverrideColor;
};
@@ -1729,7 +1729,7 @@ struct GameObjectsEntry
DBCPosition3D Pos;
std::array<float, 4> Rot;
uint32 ID;
- int32 OwnerID;
+ uint32 OwnerID;
int32 DisplayID;
float Scale;
int32 TypeID;
@@ -1760,7 +1760,7 @@ struct GarrBuildingEntry
LocalizedString Description;
LocalizedString Tooltip;
int8 GarrTypeID;
- int8 BuildingType;
+ uint8 BuildingType;
int32 HordeGameObjectID;
int32 AllianceGameObjectID;
int32 GarrSiteID;
@@ -1868,7 +1868,7 @@ struct GarrMissionEntry
uint32 EnvGarrMechanicID;
int32 EnvGarrMechanicTypeID;
uint32 PlayerConditionID;
- int32 GarrMissionSetID;
+ uint32 GarrMissionSetID;
int8 TargetLevel;
uint16 TargetItemLevel;
int32 MissionDuration;
@@ -1889,7 +1889,7 @@ struct GarrPlotEntry
{
uint32 ID;
char const* Name;
- int8 PlotType;
+ uint8 PlotType;
int32 HordeConstructObjID;
int32 AllianceConstructObjID;
uint8 Flags;
@@ -1947,7 +1947,7 @@ struct GarrTalentTreeEntry
int32 GarrTalentTreeType;
int32 PlayerConditionID;
uint8 FeatureTypeIndex;
- int8 FeatureSubtypeIndex;
+ uint8 FeatureSubtypeIndex;
int32 CurrencyID;
};
@@ -1976,7 +1976,7 @@ struct GlyphPropertiesEntry
{
uint32 ID;
uint32 SpellID;
- int8 GlyphType;
+ uint8 GlyphType;
uint8 GlyphExclusiveCategoryID;
int32 SpellIconFileDataID;
};
@@ -2167,7 +2167,7 @@ struct ItemBonusEntry
struct ItemBonusListGroupEntryEntry
{
uint32 ID;
- int32 ItemBonusListGroupID;
+ uint32 ItemBonusListGroupID;
int32 ItemBonusListID;
int32 ItemLevelSelectorID;
int32 SequenceValue;
@@ -2200,7 +2200,7 @@ struct ItemBonusTreeEntry
struct ItemBonusTreeNodeEntry
{
uint32 ID;
- int8 ItemContext;
+ uint8 ItemContext;
uint16 ChildItemBonusTreeID;
uint16 ChildItemBonusListID;
uint16 ChildItemLevelSelectorID;
@@ -2214,7 +2214,7 @@ struct ItemBonusTreeNodeEntry
struct ItemChildEquipmentEntry
{
uint32 ID;
- int32 ParentItemID;
+ uint32 ParentItemID;
int32 ChildItemID;
uint8 ChildItemEquipSlot;
};
@@ -2231,7 +2231,7 @@ struct ItemClassEntry
struct ItemContextPickerEntryEntry
{
uint32 ID;
- int8 ItemCreationContext;
+ uint8 ItemCreationContext;
uint8 OrderIndex;
int32 PVal;
int32 LabelID;
@@ -2243,7 +2243,7 @@ struct ItemContextPickerEntryEntry
struct ItemCurrencyCostEntry
{
uint32 ID;
- int32 ItemID;
+ uint32 ItemID;
};
struct ItemDamageAmmoEntry
@@ -2366,7 +2366,7 @@ struct ItemLimitCategoryConditionEntry
struct ItemModifiedAppearanceEntry
{
uint32 ID;
- int32 ItemID;
+ uint32 ItemID;
int32 ItemAppearanceModifierID;
int32 ItemAppearanceID;
int32 OrderIndex;
@@ -2636,7 +2636,7 @@ struct LFGDungeonsEntry
LocalizedString Name;
LocalizedString Description;
uint8 TypeID;
- int8 Subtype;
+ uint8 Subtype;
int8 Faction;
int32 IconTextureFileID;
int32 RewardsBgTextureFileID;
@@ -2835,7 +2835,7 @@ struct MapDifficultyEntry
LocalizedString Message; // m_message_lang (text showed when transfer to map failed)
int32 DifficultyID;
int32 LockID;
- int8 ResetInterval;
+ uint8 ResetInterval;
int32 MaxPlayers;
uint8 ItemContext;
int32 ItemContextPickerID;
@@ -2873,7 +2873,7 @@ struct MapDifficultyXConditionEntry
struct MawPowerEntry
{
uint32 ID;
- int32 SpellID;
+ uint32 SpellID;
int32 MawPowerRarityID;
};
@@ -3105,7 +3105,7 @@ struct PlayerConditionEntry
int8 ChrSpecializationRole;
uint32 ModifierTreeID;
int8 PowerType;
- int8 PowerTypeComp;
+ uint8 PowerTypeComp;
uint8 PowerTypeValue;
int32 WeaponSubclassMask;
uint8 MaxGuildLevel;
@@ -3210,7 +3210,7 @@ struct PVPStatEntry
{
LocalizedString Description;
uint32 ID;
- int32 MapID;
+ uint32 MapID;
};
struct PvpSeasonEntry
@@ -3225,7 +3225,7 @@ struct PvpTalentEntry
{
LocalizedString Description;
uint32 ID;
- int32 SpecID;
+ uint32 SpecID;
int32 SpellID;
int32 OverridesSpellID;
int32 Flags;
@@ -3258,7 +3258,7 @@ struct PvpTierEntry
int16 MaxRating;
int32 PrevTier;
int32 NextTier;
- int8 BracketID;
+ uint8 BracketID;
int8 Rank;
int32 RankIconFileDataID;
};
@@ -3459,7 +3459,7 @@ struct SkillLineAbilityEntry
LocalizedString AbilityVerb;
LocalizedString AbilityAllVerb;
uint32 ID;
- int16 SkillLine;
+ uint16 SkillLine;
int32 Spell;
int16 MinSkillLineRank;
int32 ClassMask;
@@ -3479,7 +3479,7 @@ struct SkillLineAbilityEntry
struct SkillLineXTraitTreeEntry
{
uint32 ID;
- int32 SkillLineID;
+ uint32 SkillLineID;
int32 TraitTreeID;
int32 OrderIndex;
};
@@ -3488,7 +3488,7 @@ struct SkillRaceClassInfoEntry
{
uint32 ID;
Trinity::RaceMask<int64> RaceMask;
- int16 SkillID;
+ uint16 SkillID;
int32 ClassMask;
int32 Flags;
int32 Availability;
@@ -3784,7 +3784,7 @@ struct SpellLabelEntry
struct SpellLearnSpellEntry
{
uint32 ID;
- int32 SpellID;
+ uint32 SpellID;
int32 LearnSpellID;
int32 OverridesSpellID;
};
@@ -3905,7 +3905,7 @@ struct SpellReagentsEntry
struct SpellReagentsCurrencyEntry
{
uint32 ID;
- int32 SpellID;
+ uint32 SpellID;
uint16 CurrencyTypesID;
uint16 CurrencyCount;
};
@@ -4180,7 +4180,7 @@ struct TraitCondEntry
{
uint32 ID;
int32 CondType;
- int32 TraitTreeID;
+ uint32 TraitTreeID;
int32 GrantedRanks;
int32 QuestID;
int32 AchievementID;
@@ -4223,7 +4223,7 @@ struct TraitCurrencySourceEntry
{
LocalizedString Requirement;
uint32 ID;
- int32 TraitCurrencyID;
+ uint32 TraitCurrencyID;
int32 Amount;
int32 QuestID;
int32 AchievementID;
@@ -4247,7 +4247,7 @@ struct TraitDefinitionEntry
struct TraitDefinitionEffectPointsEntry
{
uint32 ID;
- int32 TraitDefinitionID;
+ uint32 TraitDefinitionID;
int32 EffectIndex;
int32 OperationType;
int32 CurveID;
@@ -4259,7 +4259,7 @@ struct TraitEdgeEntry
{
uint32 ID;
int32 VisualStyle;
- int32 LeftTraitNodeID;
+ uint32 LeftTraitNodeID;
int32 RightTraitNodeID;
int32 Type;
};
@@ -4267,7 +4267,7 @@ struct TraitEdgeEntry
struct TraitNodeEntry
{
uint32 ID;
- int32 TraitTreeID;
+ uint32 TraitTreeID;
int32 PosX;
int32 PosY;
uint8 Type;
@@ -4292,20 +4292,20 @@ struct TraitNodeEntryXTraitCondEntry
{
uint32 ID;
int32 TraitCondID;
- int32 TraitNodeEntryID;
+ uint32 TraitNodeEntryID;
};
struct TraitNodeEntryXTraitCostEntry
{
uint32 ID;
- int32 TraitNodeEntryID;
+ uint32 TraitNodeEntryID;
int32 TraitCostID;
};
struct TraitNodeGroupEntry
{
uint32 ID;
- int32 TraitTreeID;
+ uint32 TraitTreeID;
int32 Flags;
};
@@ -4313,20 +4313,20 @@ struct TraitNodeGroupXTraitCondEntry
{
uint32 ID;
int32 TraitCondID;
- int32 TraitNodeGroupID;
+ uint32 TraitNodeGroupID;
};
struct TraitNodeGroupXTraitCostEntry
{
uint32 ID;
- int32 TraitNodeGroupID;
+ uint32 TraitNodeGroupID;
int32 TraitCostID;
};
struct TraitNodeGroupXTraitNodeEntry
{
uint32 ID;
- int32 TraitNodeGroupID;
+ uint32 TraitNodeGroupID;
int32 TraitNodeID;
int32 Index;
};
@@ -4335,20 +4335,20 @@ struct TraitNodeXTraitCondEntry
{
uint32 ID;
int32 TraitCondID;
- int32 TraitNodeID;
+ uint32 TraitNodeID;
};
struct TraitNodeXTraitCostEntry
{
uint32 ID;
- int32 TraitNodeID;
+ uint32 TraitNodeID;
int32 TraitCostID;
};
struct TraitNodeXTraitNodeEntryEntry
{
uint32 ID;
- int32 TraitNodeID;
+ uint32 TraitNodeID;
int32 TraitNodeEntryID;
int32 Index;
};
@@ -4359,13 +4359,13 @@ struct TraitSubTreeEntry
LocalizedString Description;
uint32 ID;
int32 UiTextureAtlasElementID;
- int32 TraitTreeID; // Parent tree
+ uint32 TraitTreeID; // Parent tree
};
struct TraitTreeEntry
{
uint32 ID;
- int32 TraitSystemID;
+ uint32 TraitSystemID;
int32 Unused1000_1;
int32 FirstTraitNodeID;
int32 PlayerConditionID;
@@ -4379,14 +4379,14 @@ struct TraitTreeEntry
struct TraitTreeLoadoutEntry
{
uint32 ID;
- int32 TraitTreeID;
+ uint32 TraitTreeID;
int32 ChrSpecializationID;
};
struct TraitTreeLoadoutEntryEntry
{
uint32 ID;
- int32 TraitTreeLoadoutID;
+ uint32 TraitTreeLoadoutID;
int32 SelectedTraitNodeID;
int32 SelectedTraitNodeEntryID;
int32 NumPoints;
@@ -4404,7 +4404,7 @@ struct TraitTreeXTraitCurrencyEntry
{
uint32 ID;
int32 Index;
- int32 TraitTreeID;
+ uint32 TraitTreeID;
int32 TraitCurrencyID;
};
@@ -4428,7 +4428,7 @@ struct TransmogSetEntry
int32 Flags;
int32 TransmogSetGroupID;
int32 ItemNameDescriptionID;
- int32 ParentTransmogSetID;
+ uint32 ParentTransmogSetID;
int32 Unknown810;
int32 ExpansionID;
int32 PatchID;
@@ -4471,9 +4471,9 @@ struct UiMapEntry
{
LocalizedString Name;
uint32 ID;
- int32 ParentUiMapID;
+ uint32 ParentUiMapID;
int32 Flags;
- int8 System;
+ uint8 System;
uint8 Type;
int32 BountySetID;
uint32 BountyDisplayLocation;
@@ -4495,7 +4495,7 @@ struct UiMapAssignmentEntry
DBCPosition2D UiMax;
std::array<DBCPosition3D, 2> Region;
uint32 ID;
- int32 UiMapID;
+ uint32 UiMapID;
int32 OrderIndex;
int32 MapID;
int32 AreaID;
@@ -4508,7 +4508,7 @@ struct UiMapLinkEntry
DBCPosition2D UiMin;
DBCPosition2D UiMax;
uint32 ID;
- int32 ParentUiMapID;
+ uint32 ParentUiMapID;
int32 OrderIndex;
int32 ChildUiMapID;
int32 PlayerConditionID;
@@ -4537,7 +4537,7 @@ struct UISplashScreenEntry
LocalizedString RightFeatureDesc;
int32 AllianceQuestID;
int32 HordeQuestID;
- int8 ScreenType;
+ uint8 ScreenType;
int32 TextureKitID;
int32 SoundKitID;
int32 PlayerConditionID;
diff --git a/src/server/game/DataStores/DBCEnums.h b/src/server/game/DataStores/DBCEnums.h
index 1102e171e9d..2417f7e3009 100644
--- a/src/server/game/DataStores/DBCEnums.h
+++ b/src/server/game/DataStores/DBCEnums.h
@@ -1106,115 +1106,171 @@ enum ItemBonusType
enum class ItemContext : uint8
{
- NONE = 0,
- Dungeon_Normal = 1,
- Dungeon_Heroic = 2,
- Raid_Normal = 3,
- Raid_Raid_Finder = 4,
- Raid_Heroic = 5,
- Raid_Mythic = 6,
- PVP_Unranked_1 = 7,
- PVP_Ranked_1_Unrated = 8,
- Scenario_Normal = 9,
- Scenario_Heroic = 10,
- Quest_Reward = 11,
- In_Game_Store = 12,
- Trade_Skill = 13,
- Vendor = 14,
- Black_Market = 15,
- MythicPlus_End_of_Run = 16,
- Dungeon_Lvl_Up_1 = 17,
- Dungeon_Lvl_Up_2 = 18,
- Dungeon_Lvl_Up_3 = 19,
- Dungeon_Lvl_Up_4 = 20,
- Force_to_NONE = 21,
- Timewalking = 22,
- Dungeon_Mythic = 23,
- Pvp_Honor_Reward = 24,
- World_Quest_1 = 25,
- World_Quest_2 = 26,
- World_Quest_3 = 27,
- World_Quest_4 = 28,
- World_Quest_5 = 29,
- World_Quest_6 = 30,
- Mission_Reward_1 = 31,
- Mission_Reward_2 = 32,
- MythicPlus_End_of_Run_Time_Chest = 33,
- zzChallenge_Mode_3 = 34,
- MythicPlus_Jackpot = 35,
- World_Quest_7 = 36,
- World_Quest_8 = 37,
- PVP_Ranked_2_Combatant = 38,
- PVP_Ranked_3_Challenger = 39,
- PVP_Ranked_4_Rival = 40,
- PVP_Unranked_2 = 41,
- World_Quest_9 = 42,
- World_Quest_10 = 43,
- PVP_Ranked_5_Duelist = 44,
- PVP_Ranked_6_Elite = 45,
- PVP_Ranked_7 = 46,
- PVP_Unranked_3 = 47,
- PVP_Unranked_4 = 48,
- PVP_Unranked_5 = 49,
- PVP_Unranked_6 = 50,
- PVP_Unranked_7 = 51,
- PVP_Ranked_8 = 52,
- World_Quest_11 = 53,
- World_Quest_12 = 54,
- World_Quest_13 = 55,
- PVP_Ranked_Jackpot = 56,
- Tournament_Realm = 57,
- Relinquished = 58,
- Legendary_Forge = 59,
- Quest_Bonus_Loot = 60,
- Character_Boost_BFA = 61,
- Character_Boost_Shadowlands = 62,
- Legendary_Crafting_1 = 63,
- Legendary_Crafting_2 = 64,
- Legendary_Crafting_3 = 65,
- Legendary_Crafting_4 = 66,
- Legendary_Crafting_5 = 67,
- Legendary_Crafting_6 = 68,
- Legendary_Crafting_7 = 69,
- Legendary_Crafting_8 = 70,
- Legendary_Crafting_9 = 71,
- Weekly_Rewards_Additional = 72,
- Weekly_Rewards_Concession = 73,
- World_Quest_Jackpot = 74,
- New_Character = 75,
- War_Mode = 76,
- PvP_Brawl_1 = 77,
- PvP_Brawl_2 = 78,
- Torghast = 79,
- Corpse_Recovery = 80,
- World_Boss = 81,
- Raid_Normal_Extended = 82,
- Raid_Raid_Finder_Extended = 83,
- Raid_Heroic_Extended = 84,
- Raid_Mythic_Extended = 85,
- Character_Template_9_1 = 86,
- Challenge_Mode_4 = 87,
- Pvp_Ranked_9 = 88,
- Raid_Normal_Extended_2 = 89,
- Raid_Finder_Extended_2 = 90,
- Raid_Heroic_Extended_2 = 91,
- Raid_Mythic_Extended_2 = 92,
- Raid_Normal_Extended_3 = 93,
- Raid_Finder_Extended_3 = 94,
- Raid_Heroic_Extended_3 = 95,
- Raid_Mythic_Extended_3 = 96,
- Template_Character_1 = 97,
- Template_Character_2 = 98,
- Template_Character_3 = 99,
- Template_Character_4 = 100,
- Dungeon_Normal_Jackpot = 101,
- Dungeon_Heroic_Jackpot = 102,
- Dungeon_Mythic_Jackpot = 103,
- Delves_1 = 104,
- Timerunning = 105,
- Delves_2 = 106,
- Delves_3 = 107,
- Delves_Jackpot = 108,
+ NONE = 0,
+ Dungeon_Normal = 1,
+ Dungeon_Heroic = 2,
+ Raid_Normal = 3,
+ Raid_Raid_Finder = 4,
+ Raid_Heroic = 5,
+ Raid_Mythic = 6,
+ PVP_Unranked_1 = 7,
+ PVP_Ranked_1_Unrated = 8,
+ Scenario_Normal = 9,
+ Scenario_Heroic = 10,
+ Quest_Reward = 11,
+ In_Game_Store = 12,
+ Trade_Skill = 13,
+ Vendor = 14,
+ Black_Market = 15,
+ MythicPlus_End_of_Run = 16,
+ Dungeon_Lvl_Up_1 = 17,
+ Dungeon_Lvl_Up_2 = 18,
+ Dungeon_Lvl_Up_3 = 19,
+ Dungeon_Lvl_Up_4 = 20,
+ Force_to_NONE = 21,
+ Timewalking = 22,
+ Dungeon_Mythic = 23,
+ Pvp_Honor_Reward = 24,
+ World_Quest_1 = 25,
+ World_Quest_2 = 26,
+ World_Quest_3 = 27,
+ World_Quest_4 = 28,
+ World_Quest_5 = 29,
+ World_Quest_6 = 30,
+ Mission_Reward_1 = 31,
+ Mission_Reward_2 = 32,
+ MythicPlus_End_of_Run_Time_Chest = 33,
+ MythicPlus_Timewalking_End_of_Run = 34,
+ MythicPlus_Jackpot = 35,
+ World_Quest_7 = 36,
+ World_Quest_8 = 37,
+ PVP_Ranked_2_Combatant = 38,
+ PVP_Ranked_4_Challenger = 39,
+ PVP_Ranked_6_Rival = 40,
+ PVP_Unranked_2 = 41,
+ World_Quest_9 = 42,
+ World_Quest_10 = 43,
+ PVP_Ranked_8_Duelist = 44,
+ PVP_Ranked_9_Elite = 45,
+ PVP_Ranked_3_Combatant = 46,
+ PVP_Unranked_3 = 47,
+ PVP_Unranked_4 = 48,
+ PVP_Unranked_5 = 49,
+ PVP_Unranked_6 = 50,
+ PVP_Unranked_7 = 51,
+ PVP_Ranked_5_Challenger = 52,
+ World_Quest_11 = 53,
+ World_Quest_12 = 54,
+ World_Quest_13 = 55,
+ PVP_Ranked_Jackpot = 56,
+ Tournament_Realm_1 = 57,
+ Relinquished = 58,
+ Legendary_Forge = 59,
+ Quest_Bonus_Loot = 60,
+ Character_Boost_Dragonflight_70 = 61,
+ Character_Boost_Shadowlands_50 = 62,
+ Legendary_Crafting_1 = 63,
+ Legendary_Crafting_2 = 64,
+ Legendary_Crafting_3 = 65,
+ Legendary_Crafting_4 = 66,
+ Legendary_Crafting_5 = 67,
+ Legendary_Crafting_6 = 68,
+ Legendary_Crafting_7 = 69,
+ Legendary_Crafting_8 = 70,
+ Legendary_Crafting_9 = 71,
+ Weekly_Rewards_Additional = 72,
+ Weekly_Rewards_Concession = 73,
+ World_Quest_Jackpot = 74,
+ New_Character = 75,
+ War_Mode = 76,
+ PvP_Brawl_1 = 77,
+ PvP_Brawl_2 = 78,
+ Torghast = 79,
+ Corpse_Recovery = 80,
+ World_Boss = 81,
+ Raid_Normal_Extended = 82,
+ Raid_Raid_Finder_Extended = 83,
+ Raid_Heroic_Extended = 84,
+ Raid_Mythic_Extended = 85,
+ Character_Boost_Shadowlands_60 = 86,
+ MythicPlus_Timewalking_End_of_Run_Time_Chest = 87,
+ Pvp_Ranked_7_Rival = 88,
+ Raid_Normal_Extended_2 = 89,
+ Raid_Finder_Extended_2 = 90,
+ Raid_Heroic_Extended_2 = 91,
+ Raid_Mythic_Extended_2 = 92,
+ Raid_Normal_Extended_3 = 93,
+ Raid_Finder_Extended_3 = 94,
+ Raid_Heroic_Extended_3 = 95,
+ Raid_Mythic_Extended_3 = 96,
+ Template_Character_1 = 97,
+ Template_Character_2 = 98,
+ Template_Character_3 = 99,
+ Template_Character_4 = 100,
+ Dungeon_Normal_Jackpot = 101,
+ Dungeon_Heroic_Jackpot = 102,
+ Dungeon_Mythic_Jackpot = 103,
+ Delves_1 = 104,
+ Timerunning = 105,
+ Delves_2 = 106,
+ Delves_3 = 107,
+ Delves_Jackpot = 108,
+ Delves_Key_1 = 109,
+ Delves_Key_2 = 110,
+ Delves_Key_3 = 111,
+ Delves_Key_4 = 112,
+ Delves_Key_5 = 113,
+ Delves_Key_6 = 114,
+ Delves_Key_7 = 115,
+ Delves_Key_8 = 116,
+ Delves_Bounty_1 = 117,
+ Delves_Bounty_2 = 118,
+ Delves_Bounty_3 = 119,
+ Delves_Bounty_4 = 120,
+ Delves_Bounty_5 = 121,
+ Delves_Bounty_6 = 122,
+ Delves_Bounty_7 = 123,
+ Delves_Bounty_8 = 124,
+ Delves_Level_Up_1 = 125,
+ Delves_Level_Up_2 = 126,
+ Delves_Level_Up_3 = 127,
+ Delves_Level_Up_4 = 128,
+ Delves_Bonus_1 = 129,
+ Delves_Bonus_2 = 130,
+ Delves_Bonus_3 = 131,
+ Delves_Bonus_4 = 132,
+ Delves_Bonus_5 = 133,
+ Delves_Bonus_6 = 134,
+ Delves_Bonus_7 = 135,
+ Delves_Bonus_8 = 136,
+ Delves_Bonus_9 = 137,
+ Delves_Bonus_10 = 138,
+ Dungeon_Bonus_1 = 139,
+ Dungeon_Bonus_2 = 140,
+ Dungeon_Bonus_3 = 141,
+ Dungeon_Bonus_4 = 142,
+ Dungeon_Bonus_5 = 143,
+ Dungeon_Bonus_6 = 144,
+ Dungeon_Bonus_7 = 145,
+ Dungeon_Bonus_8 = 146,
+ Dungeon_Bonus_9 = 147,
+ Dungeon_Bonus_10 = 148,
+ Raid_Bonus_1 = 149,
+ Raid_Bonus_2 = 150,
+ Raid_Bonus_3 = 151,
+ Raid_Bonus_4 = 152,
+ Raid_Bonus_5 = 153,
+ Raid_Bonus_6 = 154,
+ Raid_Bonus_7 = 155,
+ Raid_Bonus_8 = 156,
+ Raid_Bonus_9 = 157,
+ Raid_Bonus_10 = 158,
+ Dungeon_Hard_Mode_1 = 159,
+ Dungeon_Hard_Mode_2 = 160,
+ Dungeon_Hard_Mode_3 = 161,
+ Tournament_Realm_2 = 162,
+ Tournament_Realm_3 = 163,
+ Tournament_Realm_4 = 164,
Max
};
diff --git a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp
index c755a372a1d..c298536ba5d 100644
--- a/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp
+++ b/src/server/game/Entities/Item/AzeriteItem/AzeriteEmpoweredItem.cpp
@@ -241,10 +241,5 @@ void AzeriteEmpoweredItem::InitAzeritePowerData()
{
m_azeritePowers = sDB2Manager.GetAzeritePowers(GetEntry());
if (m_azeritePowers)
- {
- m_maxTier = (*std::max_element(m_azeritePowers->begin(), m_azeritePowers->end(), [](AzeritePowerSetMemberEntry const* a1, AzeritePowerSetMemberEntry const* a2)
- {
- return a1->Tier < a2->Tier;
- }))->Tier;
- }
+ m_maxTier = (*std::ranges::max_element(*m_azeritePowers, {}, &AzeritePowerSetMemberEntry::Tier))->Tier;
}
diff --git a/src/server/game/Entities/Item/ItemBonusMgr.cpp b/src/server/game/Entities/Item/ItemBonusMgr.cpp
index d379c88762c..6b7bcf03c40 100644
--- a/src/server/game/Entities/Item/ItemBonusMgr.cpp
+++ b/src/server/game/Entities/Item/ItemBonusMgr.cpp
@@ -35,7 +35,7 @@ using ItemLevelSelectorQualities = std::set<ItemLevelSelectorQualityEntry const*
std::unordered_multimap<int32 /*azeriteUnlockMappingSetId*/, AzeriteUnlockMappingEntry const*> _azeriteUnlockMappings;
std::unordered_multimap<uint32 /*itemBonusTreeId*/, ChallengeModeItemBonusOverrideEntry const*> _challengeModeItemBonusOverrides;
std::unordered_map<uint32 /*itemBonusListId*/, std::vector<ItemBonusEntry const*>> _itemBonusLists;
-std::unordered_multimap<int32, ItemBonusListGroupEntryEntry const*> _itemBonusListGroupEntries;
+std::unordered_multimap<uint32, ItemBonusListGroupEntryEntry const*> _itemBonusListGroupEntries;
std::unordered_map<int16 /*itemLevelDelta*/, uint32 /*itemBonusListId*/> _itemLevelDeltaToBonusListContainer;
std::unordered_map<uint32 /*itemLevelSelectorQualitySetId*/, ItemLevelSelectorQualities> _itemLevelQualitySelectorQualities;
std::unordered_map<uint32 /*itemBonusTreeId*/, std::set<ItemBonusTreeNodeEntry const*>> _itemBonusTrees;
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp
index 46e357e9b60..ea4f405e96c 100644
--- a/src/server/game/Entities/Player/Player.cpp
+++ b/src/server/game/Entities/Player/Player.cpp
@@ -2025,7 +2025,7 @@ bool Player::IsInAreaTrigger(AreaTriggerEntry const* areaTrigger) const
if (!areaTrigger)
return false;
- if (int32(GetMapId()) != areaTrigger->ContinentID && !GetPhaseShift().HasVisibleMapId(areaTrigger->ContinentID))
+ if (GetMapId() != areaTrigger->ContinentID && !GetPhaseShift().HasVisibleMapId(areaTrigger->ContinentID))
return false;
if (areaTrigger->PhaseID || areaTrigger->PhaseGroupID || areaTrigger->PhaseUseFlags)
@@ -27153,7 +27153,7 @@ TalentLearnResult Player::LearnPvpTalent(uint32 talentID, uint8 slot, int32* spe
if (!talentInfo)
return TALENT_FAILED_UNKNOWN;
- if (talentInfo->SpecID != int32(GetPrimarySpecialization()))
+ if (ChrSpecialization(talentInfo->SpecID) != GetPrimarySpecialization())
return TALENT_FAILED_UNKNOWN;
if (talentInfo->LevelRequired > GetLevel())
diff --git a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
index 2885a4341ac..2754591bcf2 100644
--- a/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
+++ b/src/server/game/Entities/Taxi/TaxiPathGraph.cpp
@@ -63,7 +63,7 @@ Graph m_graph;
std::vector<TaxiNodesEntry const*> m_nodesByVertex;
std::unordered_map<uint32, vertex_descriptor> m_verticesByNode;
-void GetTaxiMapPosition(DBCPosition3D const& position, int32 mapId, DBCPosition2D* uiMapPosition, int32* uiMapId)
+void GetTaxiMapPosition(DBCPosition3D const& position, int32 mapId, DBCPosition2D* uiMapPosition, uint32* uiMapId)
{
if (!DB2Manager::GetUiMapPosition(position.X, position.Y, position.Z, mapId, 0, 0, 0, UI_MAP_SYSTEM_ADVENTURE, false, uiMapId, uiMapPosition))
DB2Manager::GetUiMapPosition(position.X, position.Y, position.Z, mapId, 0, 0, 0, UI_MAP_SYSTEM_TAXI, false, uiMapId, uiMapPosition);
@@ -109,7 +109,7 @@ void AddVerticeAndEdgeFromNodeInfo(TaxiNodesEntry const* from, TaxiNodesEntry co
if (nodes[i - 1]->Flags & TAXI_PATH_NODE_FLAG_TELEPORT)
continue;
- int32 uiMap1, uiMap2;
+ uint32 uiMap1, uiMap2;
DBCPosition2D pos1, pos2;
GetTaxiMapPosition(nodes[i - 1]->Loc, nodes[i - 1]->ContinentID, &pos1, &uiMap1);
diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp
index d7a5428cbcc..7545b4f1b35 100644
--- a/src/server/game/Globals/ObjectMgr.cpp
+++ b/src/server/game/Globals/ObjectMgr.cpp
@@ -7358,7 +7358,7 @@ AreaTriggerStruct const* ObjectMgr::GetGoBackTrigger(uint32 Map) const
if (itr->second.target_mapId == entrance_map)
{
AreaTriggerEntry const* atEntry = sAreaTriggerStore.LookupEntry(itr->first);
- if (atEntry && atEntry->ContinentID == int32(Map))
+ if (atEntry && atEntry->ContinentID == Map)
return &itr->second;
}
}
diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp
index e72227434cb..d85b5825de1 100644
--- a/src/server/game/Spells/SpellInfo.cpp
+++ b/src/server/game/Spells/SpellInfo.cpp
@@ -1548,7 +1548,7 @@ bool SpellInfo::IsAbilityOfSkillType(uint32 skillType) const
SkillLineAbilityMapBounds bounds = sSpellMgr->GetSkillLineAbilityMapBounds(Id);
for (SkillLineAbilityMap::const_iterator _spell_idx = bounds.first; _spell_idx != bounds.second; ++_spell_idx)
- if (_spell_idx->second->SkillLine == int32(skillType))
+ if (_spell_idx->second->SkillLine == skillType)
return true;
return false;
diff --git a/src/server/game/Spells/SpellMgr.cpp b/src/server/game/Spells/SpellMgr.cpp
index 7e6d0947a99..efe3c939252 100644
--- a/src/server/game/Spells/SpellMgr.cpp
+++ b/src/server/game/Spells/SpellMgr.cpp
@@ -119,7 +119,7 @@ bool IsPartOfSkillLine(uint32 skillId, uint32 spellId)
{
SkillLineAbilityMapBounds skillBounds = sSpellMgr->GetSkillLineAbilityMapBounds(spellId);
for (SkillLineAbilityMap::const_iterator itr = skillBounds.first; itr != skillBounds.second; ++itr)
- if (itr->second->SkillLine == int32(skillId))
+ if (itr->second->SkillLine == skillId)
return true;
return false;
diff --git a/src/server/game/Spells/TraitMgr.cpp b/src/server/game/Spells/TraitMgr.cpp
index 80251a08dd3..207b44e5d8a 100644
--- a/src/server/game/Spells/TraitMgr.cpp
+++ b/src/server/game/Spells/TraitMgr.cpp
@@ -75,7 +75,7 @@ struct Tree
TraitConfigType ConfigType = TraitConfigType::Invalid;
};
-std::unordered_map<int32, NodeGroup> _traitGroups;
+std::unordered_map<uint32, NodeGroup> _traitGroups;
std::unordered_map<int32, Node> _traitNodes;
std::unordered_map<int32, SubTree> _traitSubTrees;
std::unordered_map<int32, Tree> _traitTrees;
@@ -92,41 +92,41 @@ void Load()
{
_configIdGenerator = time(nullptr);
- std::unordered_map<int32, std::vector<TraitCondEntry const*>> nodeEntryConditions;
+ std::unordered_map<uint32, std::vector<TraitCondEntry const*>> nodeEntryConditions;
for (TraitNodeEntryXTraitCondEntry const* traitNodeEntryXTraitCondEntry : sTraitNodeEntryXTraitCondStore)
if (TraitCondEntry const* traitCondEntry = sTraitCondStore.LookupEntry(traitNodeEntryXTraitCondEntry->TraitCondID))
nodeEntryConditions[traitNodeEntryXTraitCondEntry->TraitNodeEntryID].push_back(traitCondEntry);
- std::unordered_map<int32, std::vector<TraitCostEntry const*>> nodeEntryCosts;
+ std::unordered_map<uint32, std::vector<TraitCostEntry const*>> nodeEntryCosts;
for (TraitNodeEntryXTraitCostEntry const* traitNodeEntryXTraitCostEntry : sTraitNodeEntryXTraitCostStore)
if (TraitCostEntry const* traitCostEntry = sTraitCostStore.LookupEntry(traitNodeEntryXTraitCostEntry->TraitCostID))
nodeEntryCosts[traitNodeEntryXTraitCostEntry->TraitNodeEntryID].push_back(traitCostEntry);
- std::unordered_map<int32, std::vector<TraitCondEntry const*>> nodeGroupConditions;
+ std::unordered_map<uint32, std::vector<TraitCondEntry const*>> nodeGroupConditions;
for (TraitNodeGroupXTraitCondEntry const* traitNodeGroupXTraitCondEntry : sTraitNodeGroupXTraitCondStore)
if (TraitCondEntry const* traitCondEntry = sTraitCondStore.LookupEntry(traitNodeGroupXTraitCondEntry->TraitCondID))
nodeGroupConditions[traitNodeGroupXTraitCondEntry->TraitNodeGroupID].push_back(traitCondEntry);
- std::unordered_map<int32, std::vector<TraitCostEntry const*>> nodeGroupCosts;
+ std::unordered_map<uint32, std::vector<TraitCostEntry const*>> nodeGroupCosts;
for (TraitNodeGroupXTraitCostEntry const* traitNodeGroupXTraitCostEntry : sTraitNodeGroupXTraitCostStore)
if (TraitCostEntry const* traitCondEntry = sTraitCostStore.LookupEntry(traitNodeGroupXTraitCostEntry->TraitCostID))
nodeGroupCosts[traitNodeGroupXTraitCostEntry->TraitNodeGroupID].push_back(traitCondEntry);
- std::unordered_multimap<int32, int32> nodeGroups;
+ std::unordered_multimap<int32, uint32> nodeGroups;
for (TraitNodeGroupXTraitNodeEntry const* traitNodeGroupXTraitNodeEntry : sTraitNodeGroupXTraitNodeStore)
nodeGroups.emplace(traitNodeGroupXTraitNodeEntry->TraitNodeID, traitNodeGroupXTraitNodeEntry->TraitNodeGroupID);
- std::unordered_map<int32, std::vector<TraitCondEntry const*>> nodeConditions;
+ std::unordered_map<uint32, std::vector<TraitCondEntry const*>> nodeConditions;
for (TraitNodeXTraitCondEntry const* traitNodeXTraitCondEntry : sTraitNodeXTraitCondStore)
if (TraitCondEntry const* traitCondEntry = sTraitCondStore.LookupEntry(traitNodeXTraitCondEntry->TraitCondID))
nodeConditions[traitNodeXTraitCondEntry->TraitNodeID].push_back(traitCondEntry);
- std::unordered_map<int32, std::vector<TraitCostEntry const*>> nodeCosts;
+ std::unordered_map<uint32, std::vector<TraitCostEntry const*>> nodeCosts;
for (TraitNodeXTraitCostEntry const* traitNodeXTraitCostEntry : sTraitNodeXTraitCostStore)
if (TraitCostEntry const* traitCostEntry = sTraitCostStore.LookupEntry(traitNodeXTraitCostEntry->TraitCostID))
nodeCosts[traitNodeXTraitCostEntry->TraitNodeID].push_back(traitCostEntry);
- std::unordered_multimap<int32, TraitNodeEntryEntry const*> nodeEntries;
+ std::unordered_multimap<uint32, TraitNodeEntryEntry const*> nodeEntries;
for (TraitNodeXTraitNodeEntryEntry const* traitNodeXTraitNodeEntryEntry : sTraitNodeXTraitNodeEntryStore)
if (TraitNodeEntryEntry const* traitNodeEntryEntry = sTraitNodeEntryStore.LookupEntry(traitNodeXTraitNodeEntryEntry->TraitNodeEntryID))
nodeEntries.emplace(traitNodeXTraitNodeEntryEntry->TraitNodeID, traitNodeEntryEntry);
@@ -136,7 +136,7 @@ void Load()
if (TraitCostEntry const* traitCostEntry = sTraitCostStore.LookupEntry(traitTreeXTraitCostEntry->TraitCostID))
treeCosts[traitTreeXTraitCostEntry->TraitTreeID].push_back(traitCostEntry);
- std::unordered_map<int32, std::vector<TraitTreeXTraitCurrencyEntry const*>> treeCurrencies;
+ std::unordered_map<uint32, std::vector<TraitTreeXTraitCurrencyEntry const*>> treeCurrencies;
for (TraitTreeXTraitCurrencyEntry const* traitTreeXTraitCurrencyEntry : sTraitTreeXTraitCurrencyStore)
if (sTraitCurrencyStore.HasRecord(traitTreeXTraitCurrencyEntry->TraitCurrencyID))
treeCurrencies[traitTreeXTraitCurrencyEntry->TraitTreeID].push_back(traitTreeXTraitCurrencyEntry);
@@ -294,7 +294,7 @@ void Load()
for (TraitDefinitionEffectPointsEntry const* traitDefinitionEffectPoints : sTraitDefinitionEffectPointsStore)
_traitDefinitionEffectPointModifiers[traitDefinitionEffectPoints->TraitDefinitionID].push_back(traitDefinitionEffectPoints);
- std::unordered_map<int32, std::vector<TraitTreeLoadoutEntryEntry const*>> traitTreeLoadoutEntries;
+ std::unordered_map<uint32, std::vector<TraitTreeLoadoutEntryEntry const*>> traitTreeLoadoutEntries;
for (TraitTreeLoadoutEntryEntry const* traitTreeLoadoutEntry : sTraitTreeLoadoutEntryStore)
traitTreeLoadoutEntries[traitTreeLoadoutEntry->TraitTreeLoadoutID].push_back(traitTreeLoadoutEntry);
@@ -302,7 +302,7 @@ void Load()
{
if (std::vector<TraitTreeLoadoutEntryEntry const*>* entries = Trinity::Containers::MapGetValuePtr(traitTreeLoadoutEntries, traitTreeLoadout->ID))
{
- std::ranges::sort(*entries, std::ranges::less(), &TraitTreeLoadoutEntryEntry::OrderIndex);
+ std::ranges::sort(*entries, {}, & TraitTreeLoadoutEntryEntry::OrderIndex);
// there should be only one loadout per spec, we take last one encountered
_traitTreeLoadoutsByChrSpecialization[traitTreeLoadout->ChrSpecializationID] = std::move(*entries);
}