diff options
| author | Shauren <shauren.trinity@gmail.com> | 2020-06-27 13:33:17 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2020-06-27 13:33:17 +0200 |
| commit | deca201f7787f31187e2b9fab9cba7760313e786 (patch) | |
| tree | 25c2b18ccd39760e2665a99c247980b606279e63 /src/server/game | |
| parent | eccc015ce7c9d54cb79e113706ef028cfc34b144 (diff) | |
Core/DataStores: Simplified string memory allocation in db2 files, dropped unneccessary level of indirection
Diffstat (limited to 'src/server/game')
21 files changed, 174 insertions, 176 deletions
diff --git a/src/server/game/Battlegrounds/Battleground.cpp b/src/server/game/Battlegrounds/Battleground.cpp index 02fcaa0ab25..d77211b44ff 100644 --- a/src/server/game/Battlegrounds/Battleground.cpp +++ b/src/server/game/Battlegrounds/Battleground.cpp @@ -1871,7 +1871,7 @@ bool Battleground::CheckAchievementCriteriaMeet(uint32 criteriaId, Player const* char const* Battleground::GetName() const { - return _battlegroundTemplate->BattlemasterEntry->Name->Str[sWorld->GetDefaultDbcLocale()]; + return _battlegroundTemplate->BattlemasterEntry->Name[sWorld->GetDefaultDbcLocale()]; } BattlegroundTypeId Battleground::GetTypeID(bool getRandom) const diff --git a/src/server/game/Chat/Channels/Channel.cpp b/src/server/game/Chat/Channels/Channel.cpp index 66980d78565..c620a739d45 100644 --- a/src/server/game/Chat/Channels/Channel.cpp +++ b/src/server/game/Chat/Channels/Channel.cpp @@ -123,12 +123,12 @@ void Channel::GetChannelName(std::string& channelName, uint32 channelId, LocaleC if (!(channelEntry->Flags & CHANNEL_DBC_FLAG_GLOBAL)) { if (channelEntry->Flags & CHANNEL_DBC_FLAG_CITY_ONLY) - channelName = Trinity::StringFormat(channelEntry->Name->Str[locale], sObjectMgr->GetTrinityString(LANG_CHANNEL_CITY, locale)); + channelName = Trinity::StringFormat(channelEntry->Name[locale], sObjectMgr->GetTrinityString(LANG_CHANNEL_CITY, locale)); else - channelName = Trinity::StringFormat(channelEntry->Name->Str[locale], ASSERT_NOTNULL(zoneEntry)->AreaName->Str[locale]); + channelName = Trinity::StringFormat(channelEntry->Name[locale], ASSERT_NOTNULL(zoneEntry)->AreaName[locale]); } else - channelName = channelEntry->Name->Str[locale]; + channelName = channelEntry->Name[locale]; } } diff --git a/src/server/game/Chat/Chat.cpp b/src/server/game/Chat/Chat.cpp index 2d18d2d035c..b50e7703f91 100644 --- a/src/server/game/Chat/Chat.cpp +++ b/src/server/game/Chat/Chat.cpp @@ -327,10 +327,10 @@ bool ChatHandler::ExecuteCommandInTable(std::vector<ChatCommand> const& table, c std::string zoneName = "Unknown"; if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(areaId)) { - int32 locale = GetSessionDbcLocale(); - areaName = area->AreaName->Str[locale]; + LocaleConstant locale = GetSessionDbcLocale(); + areaName = area->AreaName[locale]; if (AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID)) - zoneName = zone->AreaName->Str[locale]; + zoneName = zone->AreaName[locale]; } sLog->outCommand(m_session->GetAccountId(), "Command: %s [Player: %s (%s) (Account: %u) X: %f Y: %f Z: %f Map: %u (%s) Area: %u (%s) Zone: %s Selected: %s (%s)]", diff --git a/src/server/game/Chat/ChatLink.cpp b/src/server/game/Chat/ChatLink.cpp index d9f28c0b987..5e17714555c 100644 --- a/src/server/game/Chat/ChatLink.cpp +++ b/src/server/game/Chat/ChatLink.cpp @@ -496,10 +496,10 @@ bool SpellChatLink::ValidateName(char* buffer, char const* context) return false; } - for (uint8 i = 0; i < TOTAL_LOCALES; ++i) + for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1)) { - uint32 skillLineNameLength = strlen(skillLine->DisplayName->Str[i]); - if (skillLineNameLength > 0 && strncmp(skillLine->DisplayName->Str[i], buffer, skillLineNameLength) == 0) + uint32 skillLineNameLength = strlen(skillLine->DisplayName[i]); + if (skillLineNameLength > 0 && strncmp(skillLine->DisplayName[i], buffer, skillLineNameLength) == 0) { // found the prefix, remove it to perform spellname validation below // -2 = strlen(": ") @@ -567,12 +567,12 @@ bool AchievementChatLink::ValidateName(char* buffer, char const* context) { ChatLink::ValidateName(buffer, context); - for (uint8 locale = LOCALE_enUS; locale < TOTAL_LOCALES; ++locale) + for (LocaleConstant locale = LOCALE_enUS; locale < TOTAL_LOCALES; locale = LocaleConstant(locale + 1)) { if (locale == LOCALE_none) continue; - if (strcmp(_achievement->Title->Str[locale], buffer) == 0) + if (strcmp(_achievement->Title[locale], buffer) == 0) return true; } diff --git a/src/server/game/DataStores/DB2Stores.cpp b/src/server/game/DataStores/DB2Stores.cpp index 3adc0394627..85caeccd077 100644 --- a/src/server/game/DataStores/DB2Stores.cpp +++ b/src/server/game/DataStores/DB2Stores.cpp @@ -439,7 +439,7 @@ template<typename T> constexpr std::size_t GetCppRecordSize(DB2Storage<T> const&) { return sizeof(T); } void LoadDB2(uint32& availableDb2Locales, std::vector<std::string>& errlist, StorageMap& stores, DB2StorageBase* storage, std::string const& db2Path, - uint32 defaultLocale, std::size_t cppRecordSize) + LocaleConstant defaultLocale, std::size_t cppRecordSize) { // validate structure DB2LoadInfo const* loadInfo = storage->GetLoadInfo(); @@ -480,7 +480,7 @@ void LoadDB2(uint32& availableDb2Locales, std::vector<std::string>& errlist, Sto if (defaultLocale != LOCALE_enUS) storage->LoadStringsFromDB(defaultLocale); - for (uint32 i = 0; i < TOTAL_LOCALES; ++i) + for (LocaleConstant i = LOCALE_enUS; i < TOTAL_LOCALES; i = LocaleConstant(i + 1)) { if (defaultLocale == i || i == LOCALE_none) continue; @@ -517,7 +517,7 @@ DB2Manager& DB2Manager::Instance() return instance; } -void DB2Manager::LoadStores(std::string const& dataPath, uint32 defaultLocale) +void DB2Manager::LoadStores(std::string const& dataPath, LocaleConstant defaultLocale) { uint32 oldMSTime = getMSTime(); @@ -1579,18 +1579,18 @@ uint32 DB2Manager::GetRequiredAzeriteLevelForAzeritePowerTier(uint32 azeriteUnlo char const* DB2Manager::GetBroadcastTextValue(BroadcastTextEntry const* broadcastText, LocaleConstant locale /*= DEFAULT_LOCALE*/, uint8 gender /*= GENDER_MALE*/, bool forceGender /*= false*/) { - if ((gender == GENDER_FEMALE || gender == GENDER_NONE) && (forceGender || broadcastText->Text1->Str[DEFAULT_LOCALE][0] != '\0')) + if ((gender == GENDER_FEMALE || gender == GENDER_NONE) && (forceGender || broadcastText->Text1[DEFAULT_LOCALE][0] != '\0')) { - if (broadcastText->Text1->Str[locale][0] != '\0') - return broadcastText->Text1->Str[locale]; + if (broadcastText->Text1[locale][0] != '\0') + return broadcastText->Text1[locale]; - return broadcastText->Text1->Str[DEFAULT_LOCALE]; + return broadcastText->Text1[DEFAULT_LOCALE]; } - if (broadcastText->Text->Str[locale][0] != '\0') - return broadcastText->Text->Str[locale]; + if (broadcastText->Text[locale][0] != '\0') + return broadcastText->Text[locale]; - return broadcastText->Text->Str[DEFAULT_LOCALE]; + return broadcastText->Text[DEFAULT_LOCALE]; } bool DB2Manager::HasCharacterFacialHairStyle(uint8 race, uint8 gender, uint8 variationId) const @@ -1628,10 +1628,10 @@ char const* DB2Manager::GetClassName(uint8 class_, LocaleConstant locale /*= DEF if (!classEntry) return ""; - if (classEntry->Name->Str[locale][0] != '\0') - return classEntry->Name->Str[locale]; + if (classEntry->Name[locale][0] != '\0') + return classEntry->Name[locale]; - return classEntry->Name->Str[DEFAULT_LOCALE]; + return classEntry->Name[DEFAULT_LOCALE]; } uint32 DB2Manager::GetPowerIndexByClass(Powers power, uint32 classId) const @@ -1645,10 +1645,10 @@ char const* DB2Manager::GetChrRaceName(uint8 race, LocaleConstant locale /*= DEF if (!raceEntry) return ""; - if (raceEntry->Name->Str[locale][0] != '\0') - return raceEntry->Name->Str[locale]; + if (raceEntry->Name[locale][0] != '\0') + return raceEntry->Name[locale]; - return raceEntry->Name->Str[DEFAULT_LOCALE]; + return raceEntry->Name[DEFAULT_LOCALE]; } ChrSpecializationEntry const* DB2Manager::GetChrSpecializationByIndex(uint32 class_, uint32 index) const @@ -1665,7 +1665,7 @@ ChrSpecializationEntry const* DB2Manager::GetDefaultChrSpecializationForClass(ui return nullptr; } -char const* DB2Manager::GetCreatureFamilyPetName(uint32 petfamily, uint32 locale) +char const* DB2Manager::GetCreatureFamilyPetName(uint32 petfamily, LocaleConstant locale) { if (!petfamily) return nullptr; @@ -1674,7 +1674,7 @@ char const* DB2Manager::GetCreatureFamilyPetName(uint32 petfamily, uint32 locale if (!petFamily) return nullptr; - return petFamily->Name->Str[locale][0] != '\0' ? petFamily->Name->Str[locale] : nullptr; + return petFamily->Name[locale][0] != '\0' ? petFamily->Name[locale] : nullptr; } enum class CurveInterpolationMode : uint8 diff --git a/src/server/game/DataStores/DB2Stores.h b/src/server/game/DataStores/DB2Stores.h index 7d60c184a9d..d33ba31ceac 100644 --- a/src/server/game/DataStores/DB2Stores.h +++ b/src/server/game/DataStores/DB2Stores.h @@ -275,7 +275,7 @@ public: static DB2Manager& Instance(); - void LoadStores(std::string const& dataPath, uint32 defaultLocale); + void LoadStores(std::string const& dataPath, LocaleConstant defaultLocale); DB2StorageBase const* GetStorage(uint32 type) const; void LoadHotfixData(); @@ -307,7 +307,7 @@ public: static char const* GetChrRaceName(uint8 race, LocaleConstant locale = DEFAULT_LOCALE); ChrSpecializationEntry const* GetChrSpecializationByIndex(uint32 class_, uint32 index) const; ChrSpecializationEntry const* GetDefaultChrSpecializationForClass(uint32 class_) const; - static char const* GetCreatureFamilyPetName(uint32 petfamily, uint32 locale); + static char const* GetCreatureFamilyPetName(uint32 petfamily, LocaleConstant locale); float GetCurveValueAt(uint32 curveId, float x) const; EmotesTextSoundEntry const* GetTextSoundEmoteFor(uint32 emote, uint8 race, uint8 gender, uint8 class_) const; float EvaluateExpectedStat(ExpectedStatType stat, uint32 level, int32 expansion, uint32 contentTuningId, Classes unitClass) const; diff --git a/src/server/game/DataStores/DB2Structure.h b/src/server/game/DataStores/DB2Structure.h index 329903c5e56..859540f7563 100644 --- a/src/server/game/DataStores/DB2Structure.h +++ b/src/server/game/DataStores/DB2Structure.h @@ -18,20 +18,18 @@ #ifndef TRINITY_DB2STRUCTURE_H #define TRINITY_DB2STRUCTURE_H -#include "Define.h" +#include "Common.h" #include "DBCEnums.h" #include "RaceMask.h" #include "Util.h" #pragma pack(push, 1) -struct LocalizedString; - struct AchievementEntry { - LocalizedString* Description; - LocalizedString* Title; - LocalizedString* Reward; + LocalizedString Description; + LocalizedString Title; + LocalizedString Reward; uint32 ID; int16 InstanceID; // -1 = none int8 Faction; // -1 = all, 0 = horde, 1 = alliance @@ -75,7 +73,7 @@ struct AreaTableEntry { uint32 ID; char const* ZoneName; - LocalizedString* AreaName; + LocalizedString AreaName; uint16 ContinentID; uint16 ParentAreaID; int16 AreaBit; @@ -138,7 +136,7 @@ struct ArmorLocationEntry struct ArtifactEntry { - LocalizedString* Name; + LocalizedString Name; uint32 ID; uint16 UiTextureKitID; int32 UiNameColor; @@ -153,7 +151,7 @@ struct ArtifactEntry struct ArtifactAppearanceEntry { - LocalizedString* Name; + LocalizedString Name; uint32 ID; uint16 ArtifactAppearanceSetID; uint8 DisplayIndex; @@ -173,8 +171,8 @@ struct ArtifactAppearanceEntry struct ArtifactAppearanceSetEntry { - LocalizedString* Name; - LocalizedString* Description; + LocalizedString Name; + LocalizedString Description; uint32 ID; uint8 DisplayIndex; uint16 UiCameraID; @@ -254,7 +252,7 @@ struct ArtifactUnlockEntry struct AuctionHouseEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; uint16 FactionID; // id of faction.dbc for player factions associated with city uint8 DepositRate; uint8 ConsignmentRate; @@ -270,8 +268,8 @@ struct AzeriteEmpoweredItemEntry struct AzeriteEssenceEntry { - LocalizedString* Name; - LocalizedString* Description; + LocalizedString Name; + LocalizedString Description; uint32 ID; int32 SpecSetID; }; @@ -279,8 +277,8 @@ struct AzeriteEssenceEntry struct AzeriteEssencePowerEntry { uint32 ID; - LocalizedString* SourceAlliance; - LocalizedString* SourceHorde; + LocalizedString SourceAlliance; + LocalizedString SourceHorde; int32 AzeriteEssenceID; uint8 Tier; int32 MajorPowerDescription; @@ -378,8 +376,8 @@ struct BannedAddonsEntry struct BarberShopStyleEntry { - LocalizedString* DisplayName; - LocalizedString* Description; + LocalizedString DisplayName; + LocalizedString Description; uint32 ID; uint8 Type; // value 0 -> hair, value 2 -> facialhair float CostModifier; @@ -405,8 +403,8 @@ struct BattlePetBreedStateEntry struct BattlePetSpeciesEntry { - LocalizedString* Description; - LocalizedString* SourceText; + LocalizedString Description; + LocalizedString SourceText; uint32 ID; int32 CreatureID; int32 SummonSpellID; @@ -429,10 +427,10 @@ struct BattlePetSpeciesStateEntry struct BattlemasterListEntry { uint32 ID; - LocalizedString* Name; - LocalizedString* GameType; - LocalizedString* ShortDescription; - LocalizedString* LongDescription; + LocalizedString Name; + LocalizedString GameType; + LocalizedString ShortDescription; + LocalizedString LongDescription; int8 InstanceType; int8 MinLevel; int8 MaxLevel; @@ -452,8 +450,8 @@ struct BattlemasterListEntry struct BroadcastTextEntry { - LocalizedString* Text; - LocalizedString* Text1; + LocalizedString Text; + LocalizedString Text1; uint32 ID; uint8 LanguageID; int32 ConditionID; @@ -521,8 +519,8 @@ struct CharStartOutfitEntry struct CharTitlesEntry { uint32 ID; - LocalizedString* Name; - LocalizedString* Name1; + LocalizedString Name; + LocalizedString Name1; int16 MaskID; int8 Flags; }; @@ -530,18 +528,18 @@ struct CharTitlesEntry struct ChatChannelsEntry { uint32 ID; - LocalizedString* Name; - LocalizedString* Shortcut; + LocalizedString Name; + LocalizedString Shortcut; int32 Flags; int8 FactionGroup; }; struct ChrClassesEntry { - LocalizedString* Name; + LocalizedString Name; char const* Filename; - LocalizedString* NameMale; - LocalizedString* NameFemale; + LocalizedString NameMale; + LocalizedString NameFemale; char const* PetNameToken; uint32 ID; uint32 CreateScreenFileDataID; @@ -572,10 +570,10 @@ struct ChrRacesEntry { char const* ClientPrefix; char const* ClientFileString; - LocalizedString* Name; - LocalizedString* NameFemale; - LocalizedString* NameLowercase; - LocalizedString* NameFemaleLowercase; + LocalizedString Name; + LocalizedString NameFemale; + LocalizedString NameLowercase; + LocalizedString NameFemaleLowercase; uint32 ID; int32 Flags; uint32 MaleDisplayId; @@ -623,9 +621,9 @@ struct ChrRacesEntry struct ChrSpecializationEntry { - LocalizedString* Name; - LocalizedString* FemaleName; - LocalizedString* Description; + LocalizedString Name; + LocalizedString FemaleName; + LocalizedString Description; uint32 ID; int8 ClassID; int8 OrderIndex; @@ -747,7 +745,7 @@ struct CreatureDisplayInfoExtraEntry struct CreatureFamilyEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; float MinScale; int8 MinScaleLevel; float MaxScale; @@ -797,7 +795,7 @@ struct CreatureModelDataEntry struct CreatureTypeEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; uint8 Flags; }; @@ -954,7 +952,7 @@ struct CriteriaEntry struct CriteriaTreeEntry { uint32 ID; - LocalizedString* Description; + LocalizedString Description; uint32 Parent; uint32 Amount; int8 Operator; @@ -966,8 +964,8 @@ struct CriteriaTreeEntry struct CurrencyTypesEntry { uint32 ID; - LocalizedString* Name; - LocalizedString* Description; + LocalizedString Name; + LocalizedString Description; uint8 CategoryID; int32 InventoryIconFileID; uint32 SpellWeight; @@ -1027,7 +1025,7 @@ struct DestructibleModelDataEntry struct DifficultyEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; uint8 InstanceType; uint8 OrderIndex; int8 OldEnumValue; @@ -1044,7 +1042,7 @@ struct DifficultyEntry struct DungeonEncounterEntry { - LocalizedString* Name; + LocalizedString Name; uint32 ID; int16 MapID; int8 DifficultyID; @@ -1134,8 +1132,8 @@ struct ExpectedStatModEntry struct FactionEntry { Trinity::RaceMask<int64> ReputationRaceMask[4]; - LocalizedString* Name; - LocalizedString* Description; + LocalizedString Name; + LocalizedString Description; uint32 ID; int16 ReputationIndex; uint16 ParentFactionID; @@ -1227,7 +1225,7 @@ struct GameObjectDisplayInfoEntry struct GameObjectsEntry { - LocalizedString* Name; + LocalizedString Name; DBCPosition3D Pos; float Rot[4]; uint32 ID; @@ -1243,8 +1241,8 @@ struct GameObjectsEntry struct GarrAbilityEntry { - LocalizedString* Name; - LocalizedString* Description; + LocalizedString Name; + LocalizedString Description; uint32 ID; uint8 GarrAbilityCategoryID; uint8 GarrFollowerTypeID; @@ -1256,10 +1254,10 @@ struct GarrAbilityEntry struct GarrBuildingEntry { uint32 ID; - LocalizedString* HordeName; - LocalizedString* AllianceName; - LocalizedString* Description; - LocalizedString* Tooltip; + LocalizedString HordeName; + LocalizedString AllianceName; + LocalizedString Description; + LocalizedString Tooltip; uint8 GarrTypeID; uint8 BuildingType; int32 HordeGameObjectID; @@ -1293,9 +1291,9 @@ struct GarrBuildingPlotInstEntry struct GarrClassSpecEntry { - LocalizedString* ClassSpec; - LocalizedString* ClassSpecMale; - LocalizedString* ClassSpecFemale; + LocalizedString ClassSpec; + LocalizedString ClassSpecMale; + LocalizedString ClassSpecFemale; uint32 ID; uint16 UiTextureAtlasMemberID; uint16 GarrFollItemSetID; @@ -1305,9 +1303,9 @@ struct GarrClassSpecEntry struct GarrFollowerEntry { - LocalizedString* HordeSourceText; - LocalizedString* AllianceSourceText; - LocalizedString* TitleName; + LocalizedString HordeSourceText; + LocalizedString AllianceSourceText; + LocalizedString TitleName; uint32 ID; uint8 GarrTypeID; uint8 GarrFollowerTypeID; @@ -1460,7 +1458,7 @@ struct GuildPerkSpellsEntry struct HeirloomEntry { - LocalizedString* SourceText; + LocalizedString SourceText; uint32 ID; int32 ItemID; int32 LegacyUpgradedItemID; @@ -1567,7 +1565,7 @@ struct ItemArmorTotalEntry struct ItemBagFamilyEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; }; struct ItemBonusEntry @@ -1624,7 +1622,7 @@ struct ItemChildEquipmentEntry struct ItemClassEntry { uint32 ID; - LocalizedString* ClassName; + LocalizedString ClassName; int8 ClassID; float PriceModifier; uint8 Flags; @@ -1741,7 +1739,7 @@ struct ItemLevelSelectorQualitySetEntry struct ItemLimitCategoryEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; uint8 Quantity; uint8 Flags; }; @@ -1767,7 +1765,7 @@ struct ItemModifiedAppearanceEntry struct ItemNameDescriptionEntry { uint32 ID; - LocalizedString* Description; + LocalizedString Description; int32 Color; }; @@ -1782,7 +1780,7 @@ struct ItemPriceBaseEntry struct ItemSearchNameEntry { Trinity::RaceMask<int64> AllowableRace; - LocalizedString* Display; + LocalizedString Display; uint32 ID; uint8 OverallQualityID; uint8 ExpansionID; @@ -1802,7 +1800,7 @@ struct ItemSearchNameEntry struct ItemSetEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; uint32 SetFlags; uint32 RequiredSkill; uint16 RequiredSkillRank; @@ -1822,11 +1820,11 @@ struct ItemSparseEntry { uint32 ID; Trinity::RaceMask<int64> AllowableRace; - LocalizedString* Description; - LocalizedString* Display3; - LocalizedString* Display2; - LocalizedString* Display1; - LocalizedString* Display; + LocalizedString Description; + LocalizedString Display3; + LocalizedString Display2; + LocalizedString Display1; + LocalizedString Display; float DmgVariance; uint32 DurationInInventory; float QualityModifier; @@ -1921,8 +1919,8 @@ struct KeychainEntry struct LFGDungeonsEntry { uint32 ID; - LocalizedString* Name; - LocalizedString* Description; + LocalizedString Name; + LocalizedString Description; uint8 MinLevel; uint16 MaxLevel; uint8 TypeID; @@ -2009,18 +2007,18 @@ struct LockEntry struct MailTemplateEntry { uint32 ID; - LocalizedString* Body; + LocalizedString Body; }; struct MapEntry { uint32 ID; char const* Directory; - LocalizedString* MapName; - LocalizedString* MapDescription0; // Horde - LocalizedString* MapDescription1; // Alliance - LocalizedString* PvpShortDescription; - LocalizedString* PvpLongDescription; + LocalizedString MapName; + LocalizedString MapDescription0; // Horde + LocalizedString MapDescription1; // Alliance + LocalizedString PvpShortDescription; + LocalizedString PvpLongDescription; DBCPosition2D Corpse; // entrance coordinates in ghost mode (in most cases = normal entrance) uint8 MapType; int8 InstanceType; @@ -2074,7 +2072,7 @@ struct MapEntry struct MapDifficultyEntry { uint32 ID; - LocalizedString* Message; // m_message_lang (text showed when transfer to map failed) + LocalizedString Message; // m_message_lang (text showed when transfer to map failed) int32 DifficultyID; int32 LockID; int8 ResetInterval; @@ -2109,9 +2107,9 @@ struct ModifierTreeEntry struct MountEntry { - LocalizedString* Name; - LocalizedString* SourceText; - LocalizedString* Description; + LocalizedString Name; + LocalizedString SourceText; + LocalizedString Description; uint32 ID; uint16 MountTypeID; uint16 Flags; @@ -2226,7 +2224,7 @@ struct PhaseXPhaseGroupEntry struct PlayerConditionEntry { Trinity::RaceMask<int64> RaceMask; - LocalizedString* FailureDescription; + LocalizedString FailureDescription; uint32 ID; uint16 MinLevel; uint16 MaxLevel; @@ -2338,7 +2336,7 @@ struct PowerTypeEntry struct PrestigeLevelInfoEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; int32 PrestigeLevel; int32 BadgeTextureFileDataID; uint8 Flags; @@ -2368,7 +2366,7 @@ struct PVPItemEntry struct PvpTalentEntry { - LocalizedString* Description; + LocalizedString Description; uint32 ID; int32 SpecID; int32 SpellID; @@ -2418,7 +2416,7 @@ struct QuestPackageItemEntry struct QuestSortEntry { uint32 ID; - LocalizedString* SortName; + LocalizedString SortName; int8 UiOrderIndex; }; @@ -2482,7 +2480,7 @@ struct ScalingStatDistributionEntry struct ScenarioEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; uint16 AreaTableID; uint8 Type; uint8 Flags; @@ -2492,8 +2490,8 @@ struct ScenarioEntry struct ScenarioStepEntry { uint32 ID; - LocalizedString* Description; - LocalizedString* Title; + LocalizedString Description; + LocalizedString Title; uint16 ScenarioID; uint32 Criteriatreeid; uint16 RewardQuestID; @@ -2540,10 +2538,10 @@ struct SceneScriptTextEntry struct SkillLineEntry { - LocalizedString* DisplayName; - LocalizedString* AlternateVerb; - LocalizedString* Description; - LocalizedString* HordeDisplayName; + LocalizedString DisplayName; + LocalizedString AlternateVerb; + LocalizedString Description; + LocalizedString HordeDisplayName; char const* OverrideSourceInfoDisplayName; uint32 ID; int8 CategoryID; @@ -2608,7 +2606,7 @@ struct SoundKitEntry struct SpecializationSpellsEntry { - LocalizedString* Description; + LocalizedString Description; uint32 ID; uint16 SpecID; int32 SpellID; @@ -2688,7 +2686,7 @@ struct SpellCategoriesEntry struct SpellCategoryEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; int8 Flags; uint8 UsesPerWeek; int8 MaxCharges; @@ -2768,7 +2766,7 @@ struct SpellEquippedItemsEntry struct SpellFocusObjectEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; }; struct SpellInterruptsEntry @@ -2786,8 +2784,8 @@ struct SpellInterruptsEntry struct SpellItemEnchantmentEntry { uint32 ID; - LocalizedString* Name; - LocalizedString* HordeName; + LocalizedString Name; + LocalizedString HordeName; uint32 EffectArg[MAX_ITEM_ENCHANTMENT_EFFECTS]; float EffectScalingPoints[MAX_ITEM_ENCHANTMENT_EFFECTS]; uint32 TransmogPlayerConditionID; @@ -2859,7 +2857,7 @@ struct SpellMiscEntry struct SpellNameEntry { uint32 ID; // SpellID - LocalizedString* Name; + LocalizedString Name; }; struct SpellPowerEntry @@ -2916,8 +2914,8 @@ struct SpellRadiusEntry struct SpellRangeEntry { uint32 ID; - LocalizedString* DisplayName; - LocalizedString* DisplayNameShort; + LocalizedString DisplayName; + LocalizedString DisplayNameShort; uint8 Flags; float RangeMin[2]; float RangeMax[2]; @@ -2957,7 +2955,7 @@ struct SpellShapeshiftEntry struct SpellShapeshiftFormEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; int8 CreatureType; int32 Flags; int32 AttackIconFileID; @@ -3040,7 +3038,7 @@ struct TactKeyEntry struct TalentEntry { uint32 ID; - LocalizedString* Description; + LocalizedString Description; uint8 TierID; uint8 Flags; uint8 ColumnIndex; @@ -3053,7 +3051,7 @@ struct TalentEntry struct TaxiNodesEntry { - LocalizedString* Name; + LocalizedString Name; DBCPosition3D Pos; DBCPosition2D MapOffset; DBCPosition2D FlightMapOffset; @@ -3094,14 +3092,14 @@ struct TaxiPathNodeEntry struct TotemCategoryEntry { uint32 ID; - LocalizedString* Name; + LocalizedString Name; uint8 TotemCategoryType; int32 TotemCategoryMask; }; struct ToyEntry { - LocalizedString* SourceText; + LocalizedString SourceText; uint32 ID; int32 ItemID; uint8 Flags; @@ -3116,7 +3114,7 @@ struct TransmogHolidayEntry struct TransmogSetEntry { - LocalizedString* Name; + LocalizedString Name; uint32 ID; int32 ClassMask; uint32 TrackingQuestID; @@ -3133,7 +3131,7 @@ struct TransmogSetEntry struct TransmogSetGroupEntry { - LocalizedString* Name; + LocalizedString Name; uint32 ID; }; @@ -3164,7 +3162,7 @@ struct TransportRotationEntry struct UiMapEntry { - LocalizedString* Name; + LocalizedString Name; uint32 ID; int32 ParentUiMapID; int32 Flags; @@ -3217,10 +3215,10 @@ struct UiMapXMapArtEntry struct UnitPowerBarEntry { uint32 ID; - LocalizedString* Name; - LocalizedString* Cost; - LocalizedString* OutOfError; - LocalizedString* ToolTip; + LocalizedString Name; + LocalizedString Cost; + LocalizedString OutOfError; + LocalizedString ToolTip; uint32 MinPower; uint32 MaxPower; uint32 StartPower; @@ -3343,7 +3341,7 @@ struct VehicleSeatEntry struct WMOAreaTableEntry { - LocalizedString* AreaName; + LocalizedString AreaName; uint32 ID; uint16 WmoID; // used in root WMO uint8 NameSetID; // used in adt file diff --git a/src/server/game/DungeonFinding/LFGMgr.cpp b/src/server/game/DungeonFinding/LFGMgr.cpp index 72299af8e40..a85252c4806 100644 --- a/src/server/game/DungeonFinding/LFGMgr.cpp +++ b/src/server/game/DungeonFinding/LFGMgr.cpp @@ -49,7 +49,7 @@ requiredItemLevel(0) { } -LFGDungeonData::LFGDungeonData(LFGDungeonsEntry const* dbc) : id(dbc->ID), name(dbc->Name->Str[sWorld->GetDefaultDbcLocale()]), map(dbc->MapID), +LFGDungeonData::LFGDungeonData(LFGDungeonsEntry const* dbc) : id(dbc->ID), name(dbc->Name[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[0] & LFG_FLAG_SEASONAL) != 0), x(0.0f), y(0.0f), z(0.0f), o(0.0f), diff --git a/src/server/game/Entities/Item/Item.cpp b/src/server/game/Entities/Item/Item.cpp index 913d51d1f22..a2a98314834 100644 --- a/src/server/game/Entities/Item/Item.cpp +++ b/src/server/game/Entities/Item/Item.cpp @@ -503,7 +503,7 @@ std::string Item::GetNameForLocaleIdx(LocaleConstant locale) const { ItemTemplate const* itemTemplate = GetTemplate(); if (ItemNameDescriptionEntry const* suffix = sItemNameDescriptionStore.LookupEntry(_bonusData.Suffix)) - return Trinity::StringFormat("%s %s", itemTemplate->GetName(locale), suffix->Description->Str[locale]); + return Trinity::StringFormat("%s %s", itemTemplate->GetName(locale), suffix->Description[locale]); return itemTemplate->GetName(locale); } diff --git a/src/server/game/Entities/Item/ItemTemplate.cpp b/src/server/game/Entities/Item/ItemTemplate.cpp index 003382a2630..b43ff8d31c8 100644 --- a/src/server/game/Entities/Item/ItemTemplate.cpp +++ b/src/server/game/Entities/Item/ItemTemplate.cpp @@ -45,10 +45,10 @@ int32 const SocketColorToGemTypeMask[19] = char const* ItemTemplate::GetName(LocaleConstant locale) const { - if (!strlen(ExtendedData->Display->Str[locale])) + if (!strlen(ExtendedData->Display[locale])) return GetDefaultLocaleName(); - return ExtendedData->Display->Str[locale]; + return ExtendedData->Display[locale]; } @@ -112,7 +112,7 @@ uint32 ItemTemplate::GetSkill() const char const* ItemTemplate::GetDefaultLocaleName() const { - return ExtendedData->Display->Str[sWorld->GetDefaultDbcLocale()]; + return ExtendedData->Display[sWorld->GetDefaultDbcLocale()]; } uint32 ItemTemplate::GetArmor(uint32 itemLevel) const diff --git a/src/server/game/Entities/Pet/Pet.cpp b/src/server/game/Entities/Pet/Pet.cpp index bb6d87b2072..04349d64a9a 100644 --- a/src/server/game/Entities/Pet/Pet.cpp +++ b/src/server/game/Entities/Pet/Pet.cpp @@ -718,7 +718,7 @@ bool Pet::CreateBaseAtCreature(Creature* creature) SetDisplayId(creature->GetDisplayId()); if (CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(cinfo->family)) - SetName(cFamily->Name->Str[GetOwner()->GetSession()->GetSessionDbcLocale()]); + SetName(cFamily->Name[GetOwner()->GetSession()->GetSessionDbcLocale()]); else SetName(creature->GetNameForLocaleIdx(sObjectMgr->GetDBCLocaleIndex())); @@ -731,7 +731,7 @@ bool Pet::CreateBaseAtCreatureInfo(CreatureTemplate const* cinfo, Unit* owner) return false; if (CreatureFamilyEntry const* cFamily = sCreatureFamilyStore.LookupEntry(cinfo->family)) - SetName(cFamily->Name->Str[GetOwner()->GetSession()->GetSessionDbcLocale()]); + SetName(cFamily->Name[GetOwner()->GetSession()->GetSessionDbcLocale()]); Relocate(owner->GetPositionX(), owner->GetPositionY(), owner->GetPositionZ(), owner->GetOrientation()); diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 6ed5ecd5dbd..22336c85617 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -19796,7 +19796,7 @@ void Player::_LoadBoundInstances(PreparedQueryResult result) bool deleteInstance = false; MapEntry const* mapEntry = sMapStore.LookupEntry(mapId); - std::string mapname = mapEntry ? mapEntry->MapName->Str[sWorld->GetDefaultDbcLocale()] : "Unknown"; + std::string mapname = mapEntry ? mapEntry->MapName[sWorld->GetDefaultDbcLocale()] : "Unknown"; if (!mapEntry || !mapEntry->IsDungeon()) { @@ -20116,7 +20116,7 @@ bool Player::Satisfy(AccessRequirement const* ar, uint32 target_map, bool report { if (missingQuest && !ar->questFailedText.empty()) ChatHandler(GetSession()).PSendSysMessage("%s", ar->questFailedText.c_str()); - else if (mapDiff->Message->Str[sWorld->GetDefaultDbcLocale()][0] != '\0') // if (missingAchievement) covered by this case + else if (mapDiff->Message[sWorld->GetDefaultDbcLocale()][0] != '\0') // if (missingAchievement) covered by this case SendTransferAborted(target_map, TRANSFER_ABORT_DIFFICULTY, target_difficulty); else if (missingItem) GetSession()->SendNotification(GetSession()->GetTrinityString(LANG_LEVEL_MINREQUIRED_AND_ITEM), LevelMin, ASSERT_NOTNULL(sObjectMgr->GetItemTemplate(missingItem))->GetName(GetSession()->GetSessionDbcLocale())); @@ -28088,9 +28088,9 @@ std::string Player::GetMapAreaAndZoneString() const std::string zoneName = "Unknown"; if (AreaTableEntry const* area = sAreaTableStore.LookupEntry(areaId)) { - areaName = area->AreaName->Str[GetSession()->GetSessionDbcLocale()]; + areaName = area->AreaName[GetSession()->GetSessionDbcLocale()]; if (AreaTableEntry const* zone = sAreaTableStore.LookupEntry(area->ParentAreaID)) - zoneName = zone->AreaName->Str[GetSession()->GetSessionDbcLocale()]; + zoneName = zone->AreaName[GetSession()->GetSessionDbcLocale()]; } std::ostringstream str; diff --git a/src/server/game/Globals/ObjectMgr.cpp b/src/server/game/Globals/ObjectMgr.cpp index c616ee11270..2fb6dfa2f51 100644 --- a/src/server/game/Globals/ObjectMgr.cpp +++ b/src/server/game/Globals/ObjectMgr.cpp @@ -5636,7 +5636,7 @@ void ObjectMgr::LoadInstanceEncounters() if (lastEncounterDungeon && !sLFGMgr->GetLFGDungeonEntry(lastEncounterDungeon)) { TC_LOG_ERROR("sql.sql", "Table `instance_encounters` has an encounter %u (%s) marked as final for invalid dungeon id %u, skipped!", - entry, dungeonEncounter->Name->Str[sWorld->GetDefaultDbcLocale()], lastEncounterDungeon); + entry, dungeonEncounter->Name[sWorld->GetDefaultDbcLocale()], lastEncounterDungeon); continue; } @@ -5646,7 +5646,7 @@ void ObjectMgr::LoadInstanceEncounters() if (itr != dungeonLastBosses.end()) { TC_LOG_ERROR("sql.sql", "Table `instance_encounters` specified encounter %u (%s) as last encounter but %u (%s) is already marked as one, skipped!", - entry, dungeonEncounter->Name->Str[sWorld->GetDefaultDbcLocale()], itr->second.first, itr->second.second->Name->Str[sWorld->GetDefaultDbcLocale()]); + entry, dungeonEncounter->Name[sWorld->GetDefaultDbcLocale()], itr->second.first, itr->second.second->Name[sWorld->GetDefaultDbcLocale()]); continue; } @@ -5661,7 +5661,7 @@ void ObjectMgr::LoadInstanceEncounters() if (!creatureInfo) { TC_LOG_ERROR("sql.sql", "Table `instance_encounters` has an invalid creature (entry %u) linked to the encounter %u (%s), skipped!", - creditEntry, entry, dungeonEncounter->Name->Str[sWorld->GetDefaultDbcLocale()]); + creditEntry, entry, dungeonEncounter->Name[sWorld->GetDefaultDbcLocale()]); continue; } const_cast<CreatureTemplate*>(creatureInfo)->flags_extra |= CREATURE_FLAG_EXTRA_DUNGEON_BOSS; @@ -5679,13 +5679,13 @@ void ObjectMgr::LoadInstanceEncounters() if (!sSpellMgr->GetSpellInfo(creditEntry, DIFFICULTY_NONE)) { TC_LOG_ERROR("sql.sql", "Table `instance_encounters` has an invalid spell (entry %u) linked to the encounter %u (%s), skipped!", - creditEntry, entry, dungeonEncounter->Name->Str[sWorld->GetDefaultDbcLocale()]); + creditEntry, entry, dungeonEncounter->Name[sWorld->GetDefaultDbcLocale()]); continue; } break; default: TC_LOG_ERROR("sql.sql", "Table `instance_encounters` has an invalid credit type (%u) for encounter %u (%s), skipped!", - creditType, entry, dungeonEncounter->Name->Str[sWorld->GetDefaultDbcLocale()]); + creditType, entry, dungeonEncounter->Name[sWorld->GetDefaultDbcLocale()]); continue; } @@ -7025,7 +7025,7 @@ void ObjectMgr::LoadGameObjectTemplate() go.entry = db2go->ID; go.type = db2go->TypeID; go.displayId = db2go->DisplayID; - go.name = db2go->Name->Str[sWorld->GetDefaultDbcLocale()]; + go.name = db2go->Name[sWorld->GetDefaultDbcLocale()]; go.size = db2go->Scale; memset(go.raw.data, 0, sizeof(go.raw.data)); memcpy(go.raw.data, db2go->PropValue, std::min(sizeof(db2go->PropValue), sizeof(go.raw.data))); diff --git a/src/server/game/Handlers/MailHandler.cpp b/src/server/game/Handlers/MailHandler.cpp index 56eb085e78c..6232934b161 100644 --- a/src/server/game/Handlers/MailHandler.cpp +++ b/src/server/game/Handlers/MailHandler.cpp @@ -623,7 +623,7 @@ void WorldSession::HandleMailCreateTextItem(WorldPackets::Mail::MailCreateTextIt { MailTemplateEntry const* mailTemplateEntry = sMailTemplateStore.LookupEntry(m->mailTemplateId); ASSERT(mailTemplateEntry); - bodyItem->SetText(mailTemplateEntry->Body->Str[GetSessionDbcLocale()]); + bodyItem->SetText(mailTemplateEntry->Body[GetSessionDbcLocale()]); } else bodyItem->SetText(m->body); diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 11b838d090e..ed0061a0ee9 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -189,7 +189,7 @@ void WorldSession::HandleWhoOpcode(WorldPackets::Who::WhoRequestPkt& whoRequest) { std::string aName; if (AreaTableEntry const* areaEntry = sAreaTableStore.LookupEntry(target.GetZoneId())) - aName = areaEntry->AreaName->Str[GetSessionDbcLocale()]; + aName = areaEntry->AreaName[GetSessionDbcLocale()]; bool show = false; for (size_t i = 0; i < wWords.size(); ++i) @@ -564,7 +564,7 @@ void WorldSession::HandleAreaTriggerOpcode(WorldPackets::AreaTrigger::AreaTrigge case Map::CANNOT_ENTER_INSTANCE_BIND_MISMATCH: if (MapEntry const* entry = sMapStore.LookupEntry(at->target_mapId)) { - char const* mapName = entry->MapName->Str[player->GetSession()->GetSessionDbcLocale()]; + char const* mapName = entry->MapName[player->GetSession()->GetSessionDbcLocale()]; TC_LOG_DEBUG("maps", "MAP: Player '%s' cannot enter instance map '%s' because their permanent bind is incompatible with their group's", player->GetName().c_str(), mapName); // is there a special opcode for this? // @todo figure out how to get player localized difficulty string (e.g. "10 player", "Heroic" etc) diff --git a/src/server/game/Instances/InstanceSaveMgr.cpp b/src/server/game/Instances/InstanceSaveMgr.cpp index fdeee7535a1..f04ae452c0b 100644 --- a/src/server/game/Instances/InstanceSaveMgr.cpp +++ b/src/server/game/Instances/InstanceSaveMgr.cpp @@ -651,7 +651,7 @@ void InstanceSaveManager::_ResetOrWarnAll(uint32 mapid, Difficulty difficulty, b MapEntry const* mapEntry = sMapStore.LookupEntry(mapid); if (!mapEntry->Instanceable()) return; - TC_LOG_DEBUG("misc", "InstanceSaveManager::ResetOrWarnAll: Processing map %s (%u) on difficulty %u (warn? %u)", mapEntry->MapName->Str[sWorld->GetDefaultDbcLocale()], mapid, uint8(difficulty), warn); + TC_LOG_DEBUG("misc", "InstanceSaveManager::ResetOrWarnAll: Processing map %s (%u) on difficulty %u (warn? %u)", mapEntry->MapName[sWorld->GetDefaultDbcLocale()], mapid, uint8(difficulty), warn); time_t now = time(NULL); diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 4f124dd9567..a5589e3750f 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -733,7 +733,7 @@ void InstanceScript::UpdateEncounterState(EncounterCreditType type, uint32 credi { dungeonId = encounter->lastEncounterDungeon; TC_LOG_DEBUG("lfg", "UpdateEncounterState: Instance %s (instanceId %u) completed encounter %s. Credit Dungeon: %u", - instance->GetMapName(), instance->GetInstanceId(), encounter->dbcEntry->Name->Str[sWorld->GetDefaultDbcLocale()], dungeonId); + instance->GetMapName(), instance->GetInstanceId(), encounter->dbcEntry->Name[sWorld->GetDefaultDbcLocale()], dungeonId); break; } } diff --git a/src/server/game/Maps/Map.cpp b/src/server/game/Maps/Map.cpp index 1406014504f..a76fa61851d 100644 --- a/src/server/game/Maps/Map.cpp +++ b/src/server/game/Maps/Map.cpp @@ -2963,7 +2963,7 @@ bool Map::CheckGridIntegrity(Creature* c, bool moved) const char const* Map::GetMapName() const { - return i_mapEntry ? i_mapEntry->MapName->Str[sWorld->GetDefaultDbcLocale()] : "UNNAMEDMAP\x0"; + return i_mapEntry ? i_mapEntry->MapName[sWorld->GetDefaultDbcLocale()] : "UNNAMEDMAP\x0"; } void Map::SendInitSelf(Player* player) diff --git a/src/server/game/Maps/MapManager.cpp b/src/server/game/Maps/MapManager.cpp index e01d2dc05b6..6a441a21f9f 100644 --- a/src/server/game/Maps/MapManager.cpp +++ b/src/server/game/Maps/MapManager.cpp @@ -173,7 +173,7 @@ Map::EnterState MapManager::PlayerCannotEnter(uint32 mapid, Player* player, bool if (player->IsGameMaster()) return Map::CAN_ENTER; - char const* mapName = entry->MapName->Str[sWorld->GetDefaultDbcLocale()]; + char const* mapName = entry->MapName[sWorld->GetDefaultDbcLocale()]; Group* group = player->GetGroup(); if (entry->IsRaid() && entry->Expansion() >= sWorld->getIntConfig(CONFIG_EXPANSION)) // can only enter in a raid group but raids from old expansion don't need a group diff --git a/src/server/game/Maps/TransportMgr.h b/src/server/game/Maps/TransportMgr.h index c5478070ab5..49f1b2b0083 100644 --- a/src/server/game/Maps/TransportMgr.h +++ b/src/server/game/Maps/TransportMgr.h @@ -102,7 +102,7 @@ typedef std::map<uint32, TransportAnimation> TransportAnimationContainer; class TC_GAME_API TransportMgr { - friend void DB2Manager::LoadStores(std::string const&, uint32); + friend void DB2Manager::LoadStores(std::string const&, LocaleConstant); public: static TransportMgr* instance(); diff --git a/src/server/game/Spells/SpellInfo.cpp b/src/server/game/Spells/SpellInfo.cpp index fe9d12f8248..4296753a1d9 100644 --- a/src/server/game/Spells/SpellInfo.cpp +++ b/src/server/game/Spells/SpellInfo.cpp @@ -1083,7 +1083,7 @@ SpellInfo::SpellInfo(SpellNameEntry const* spellName, ::Difficulty difficulty, S } _effects.shrink_to_fit(); - SpellName = spellName->Name; + SpellName = &spellName->Name; // SpellMiscEntry SpellMiscEntry const* _misc = data.Misc; |
