Core/ObjectMgr: Some minor changes in LocaleString functions

This commit is contained in:
Spp
2011-08-04 15:14:15 +02:00
parent 85643fb8a0
commit d0de7976dc
8 changed files with 91 additions and 162 deletions
+37 -105
View File
@@ -251,23 +251,11 @@ bool SpellClickInfo::IsFitToRequirements(Unit const* clicker, Unit const* clicke
return true;
}
ObjectMgr::ObjectMgr()
{
m_hiCharGuid = 1;
m_hiCreatureGuid = 1;
m_hiPetGuid = 1;
m_hiVehicleGuid = 1;
m_hiItemGuid = 1;
m_hiGoGuid = 1;
m_hiDoGuid = 1;
m_hiCorpseGuid = 1;
m_hiPetNumber = 1;
m_hiMoTransGuid = 1;
m_ItemTextId = 1;
m_mailid = 1;
m_equipmentSetGuid = 1;
m_auctionid = 1;
}
ObjectMgr::ObjectMgr(): m_auctionid(1), m_equipmentSetGuid(1),
m_ItemTextId(1), m_mailid(1), m_hiPetNumber(1), m_hiCharGuid(1),
m_hiCreatureGuid(1), m_hiPetGuid(1), m_hiVehicleGuid(1), m_hiItemGuid(1),
m_hiGoGuid(1), m_hiDoGuid(1), m_hiCorpseGuid(1), m_hiMoTransGuid(1)
{}
ObjectMgr::~ObjectMgr()
{
@@ -291,7 +279,7 @@ ObjectMgr::~ObjectMgr()
m_mCacheTrainerSpellMap.clear();
}
void ObjectMgr::AddLocaleString(std::string& s, LocaleConstant locale, StringVector& data)
void ObjectMgr::AddLocaleString(std::string const& s, LocaleConstant locale, StringVector& data)
{
if (!s.empty())
{
@@ -324,11 +312,8 @@ void ObjectMgr::LoadCreatureLocales()
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
LocaleConstant locale = (LocaleConstant) i;
std::string str = fields[1 + 2 * (i - 1)].GetString();
AddLocaleString(str, locale, data.Name);
str = fields[1 + 2 * (i - 1) + 1].GetString();
AddLocaleString(str, locale, data.SubName);
AddLocaleString(fields[1 + 2 * (i - 1)].GetString(), locale, data.Name);
AddLocaleString(fields[1 + 2 * (i - 1) + 1].GetString(), locale, data.SubName);
}
} while (result->NextRow());
@@ -364,11 +349,8 @@ void ObjectMgr::LoadGossipMenuItemsLocales()
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
LocaleConstant locale = (LocaleConstant) i;
std::string str = fields[2 + 2 * (i - 1)].GetString();
AddLocaleString(str, locale, data.OptionText);
str = fields[2 + 2 * (i - 1) + 1].GetString();
AddLocaleString(str, locale, data.BoxText);
AddLocaleString(fields[2 + 2 * (i - 1)].GetString(), locale, data.OptionText);
AddLocaleString(fields[2 + 2 * (i - 1) + 1].GetString(), locale, data.BoxText);
}
} while (result->NextRow());
@@ -396,10 +378,7 @@ void ObjectMgr::LoadPointOfInterestLocales()
PointOfInterestLocale& data = mPointOfInterestLocaleMap[entry];
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
std::string str = fields[i].GetString();
AddLocaleString(str, LocaleConstant(i), data.IconName);
}
AddLocaleString(fields[i].GetString(), LocaleConstant(i), data.IconName);
} while (result->NextRow());
sLog->outString(">> Loaded %lu points_of_interest locale strings in %u ms", (unsigned long)mPointOfInterestLocaleMap.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -1706,7 +1685,7 @@ uint32 ObjectMgr::AddCreData(uint32 entry, uint32 /*team*/, uint32 mapId, float
return 0;
uint32 level = cInfo->minlevel == cInfo->maxlevel ? cInfo->minlevel : urand(cInfo->minlevel, cInfo->maxlevel); // Only used for extracting creature base stats
CreatureBaseStats const* stats = sObjectMgr->GetCreatureBaseStats(level, cInfo->unit_class);
CreatureBaseStats const* stats = GetCreatureBaseStats(level, cInfo->unit_class);
uint32 guid = GenerateLowGuid(HIGHGUID_UNIT);
CreatureData& data = NewOrExistCreatureData(guid);
@@ -2012,7 +1991,7 @@ uint64 ObjectMgr::GetPlayerGUIDByName(std::string name) const
return guid;
}
bool ObjectMgr::GetPlayerNameByGUID(const uint64 guid, std::string &name) const
bool ObjectMgr::GetPlayerNameByGUID(uint64 guid, std::string &name) const
{
// prevent DB access for online player
if (Player* player = ObjectAccessor::FindPlayer(guid))
@@ -2032,7 +2011,7 @@ bool ObjectMgr::GetPlayerNameByGUID(const uint64 guid, std::string &name) const
return false;
}
uint32 ObjectMgr::GetPlayerTeamByGUID(const uint64 guid) const
uint32 ObjectMgr::GetPlayerTeamByGUID(uint64 guid) const
{
// prevent DB access for online player
if (Player* player = ObjectAccessor::FindPlayer(guid))
@@ -2051,7 +2030,7 @@ uint32 ObjectMgr::GetPlayerTeamByGUID(const uint64 guid) const
return 0;
}
uint32 ObjectMgr::GetPlayerAccountIdByGUID(const uint64 guid) const
uint32 ObjectMgr::GetPlayerAccountIdByGUID(uint64 guid) const
{
// prevent DB access for online player
if (Player* player = ObjectAccessor::FindPlayer(guid))
@@ -2103,11 +2082,8 @@ void ObjectMgr::LoadItemLocales()
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
LocaleConstant locale = (LocaleConstant) i;
std::string str = fields[1 + 2 * (i - 1)].GetString();
AddLocaleString(str, locale, data.Name);
str = fields[1 + 2 * (i - 1) + 1].GetString();
AddLocaleString(str, locale, data.Description);
AddLocaleString(fields[1 + 2 * (i - 1)].GetString(), locale, data.Name);
AddLocaleString(fields[1 + 2 * (i - 1) + 1].GetString(), locale, data.Description);
}
} while (result->NextRow());
@@ -2741,10 +2717,7 @@ void ObjectMgr::LoadItemSetNameLocales()
ItemSetNameLocale& data = mItemSetNameLocaleMap[entry];
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
std::string str = fields[i].GetString();
AddLocaleString(str, LocaleConstant(i), data.Name);
}
AddLocaleString(fields[i].GetString(), LocaleConstant(i), data.Name);
} while (result->NextRow());
sLog->outString(">> Loaded " UI64FMTD " Item set name locale strings in %u ms", uint64(mItemSetNameLocaleMap.size()), GetMSTimeDiffToNow(oldMSTime));
@@ -4430,32 +4403,17 @@ void ObjectMgr::LoadQuestLocales()
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
LocaleConstant locale = (LocaleConstant) i;
std::string str = fields[1 + 11 * (i - 1)].GetString();
AddLocaleString(str, locale, data.Title);
str = fields[1 + 11 * (i - 1) + 1].GetString();
AddLocaleString(str, locale, data.Details);
str = fields[1 + 11 * (i - 1) + 2].GetString();
AddLocaleString(str, locale, data.Objectives);
str = fields[1 + 11 * (i - 1) + 3].GetString();
AddLocaleString(str, locale, data.OfferRewardText);
str = fields[1 + 11 * (i - 1) + 4].GetString();
AddLocaleString(str, locale, data.RequestItemsText);
str = fields[1 + 11 * (i - 1) + 5].GetString();
AddLocaleString(str, locale, data.EndText);
str = fields[1 + 11 * (i - 1) + 6].GetString();
AddLocaleString(str, locale, data.CompletedText);
AddLocaleString(fields[1 + 11 * (i - 1)].GetString(), locale, data.Title);
AddLocaleString(fields[1 + 11 * (i - 1) + 1].GetString(), locale, data.Details);
AddLocaleString(fields[1 + 11 * (i - 1) + 2].GetString(), locale, data.Objectives);
AddLocaleString(fields[1 + 11 * (i - 1) + 3].GetString(), locale, data.OfferRewardText);
AddLocaleString(fields[1 + 11 * (i - 1) + 4].GetString(), locale, data.RequestItemsText);
AddLocaleString(fields[1 + 11 * (i - 1) + 5].GetString(), locale, data.EndText);
AddLocaleString(fields[1 + 11 * (i - 1) + 6].GetString(), locale, data.CompletedText);
for (uint8 k = 0; k < 4; ++k)
{
str = fields[1 + 11 * (i - 1) + 7 + k].GetString();
AddLocaleString(str, locale, data.ObjectiveText[k]);
}
AddLocaleString(fields[1 + 11 * (i - 1) + 7 + k].GetString(), locale, data.ObjectiveText[k]);
}
} while (result->NextRow());
@@ -4753,7 +4711,7 @@ void ObjectMgr::LoadScripts(ScriptsType type)
case SCRIPT_COMMAND_CREATE_ITEM:
{
if (!sObjectMgr->GetItemTemplate(tmp.CreateItem.ItemEntry))
if (!GetItemTemplate(tmp.CreateItem.ItemEntry))
{
sLog->outErrorDb("Table `%s` has nonexistent item (entry: %u) in SCRIPT_COMMAND_CREATE_ITEM for script id %u",
tableName.c_str(), tmp.CreateItem.ItemEntry, tmp.id);
@@ -4858,20 +4816,11 @@ void ObjectMgr::LoadEventScripts()
// Load all possible script entries from spells
for (uint32 i = 1; i < sSpellMgr->GetSpellInfoStoreSize(); ++i)
{
SpellInfo const* spell = sSpellMgr->GetSpellInfo(i);
if (spell)
{
if (SpellInfo const* spell = sSpellMgr->GetSpellInfo(i))
for (uint8 j = 0; j < MAX_SPELL_EFFECTS; ++j)
{
if (spell->Effects[j].Effect == SPELL_EFFECT_SEND_EVENT)
{
if (spell->Effects[j].MiscValue)
evt_scripts.insert(spell->Effects[j].MiscValue);
}
}
}
}
for (size_t path_idx = 0; path_idx < sTaxiPathNodesByPath.size(); ++path_idx)
{
@@ -5115,11 +5064,7 @@ void ObjectMgr::LoadPageTextLocales()
PageTextLocale& data = mPageTextLocaleMap[entry];
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
std::string str = fields[i].GetString();
AddLocaleString(str, LocaleConstant(i), data.Text);
}
AddLocaleString(fields[i].GetString(), LocaleConstant(i), data.Text);
} while (result->NextRow());
sLog->outString(">> Loaded %lu PageText locale strings in %u ms", (unsigned long)mPageTextLocaleMap.size(), GetMSTimeDiffToNow(oldMSTime));
@@ -5351,11 +5296,8 @@ void ObjectMgr::LoadNpcTextLocales()
LocaleConstant locale = (LocaleConstant) i;
for (uint8 j = 0; j < MAX_LOCALES; ++j)
{
std::string str0 = fields[1 + 8 * 2 * (i - 1) + 2 * j].GetString();
AddLocaleString(str0, locale, data.Text_0[j]);
std::string str1 = fields[1 + 8 * 2 * (i - 1) + 2 * j + 1].GetString();
AddLocaleString(str1, locale, data.Text_1[j]);
AddLocaleString(fields[1 + 8 * 2 * (i - 1) + 2 * j].GetString(), locale, data.Text_0[j]);
AddLocaleString(fields[1 + 8 * 2 * (i - 1) + 2 * j + 1].GetString(), locale, data.Text_1[j]);
}
}
} while (result->NextRow());
@@ -6392,24 +6334,17 @@ void ObjectMgr::LoadGameObjectLocales()
GameObjectLocale& data = mGameObjectLocaleMap[entry];
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
std::string str = fields[i].GetString();
AddLocaleString(str, LocaleConstant(i), data.Name);
}
AddLocaleString(fields[i].GetString(), LocaleConstant(i), data.Name);
for (uint8 i = 1; i < TOTAL_LOCALES; ++i)
{
std::string str = fields[i + (TOTAL_LOCALES - 1)].GetString();
AddLocaleString(str, LocaleConstant(i), data.CastBarCaption);
}
AddLocaleString(fields[i + (TOTAL_LOCALES - 1)].GetString(), LocaleConstant(i), data.CastBarCaption);
} while (result->NextRow());
sLog->outString(">> Loaded %lu gameobject locale strings in %u ms", (unsigned long)mGameObjectLocaleMap.size(), GetMSTimeDiffToNow(oldMSTime));
sLog->outString();
}
inline void CheckGOLockId(GameObjectTemplate* goInfo, uint32 dataN, uint32 N)
inline void CheckGOLockId(GameObjectTemplate const* goInfo, uint32 dataN, uint32 N)
{
if (sLockStore.LookupEntry(dataN))
return;
@@ -7873,10 +7808,7 @@ bool ObjectMgr::LoadTrinityStrings(char const* table, int32 min_value, int32 max
++count;
for (uint8 i = 0; i < TOTAL_LOCALES; ++i)
{
std::string str = fields[i + 1].GetString();
AddLocaleString(str, LocaleConstant(i), data.Content);
}
AddLocaleString(fields[i + 1].GetString(), LocaleConstant(i), data.Content);
} while (result->NextRow());
if (min_value == MIN_TRINITY_STRING_ID)
@@ -8887,9 +8819,9 @@ void ObjectMgr::LoadFactionChangeItems()
uint32 alliance = fields[0].GetUInt32();
uint32 horde = fields[1].GetUInt32();
if (!sObjectMgr->GetItemTemplate(alliance))
if (!GetItemTemplate(alliance))
sLog->outErrorDb("Item %u referenced in `player_factionchange_items` does not exist, pair skipped!", alliance);
else if (!sObjectMgr->GetItemTemplate(horde))
else if (!GetItemTemplate(horde))
sLog->outErrorDb("Item %u referenced in `player_factionchange_items` does not exist, pair skipped!", horde);
else
factionchange_items[alliance] = horde;
+12 -11
View File
@@ -338,7 +338,7 @@ struct SpellClickInfo
{
uint32 spellId;
uint32 questStart; // quest start (quest must be active or rewarded for spell apply)
uint32 questEnd; // quest end (quest don't must be rewarded for spell apply)
uint32 questEnd; // quest end (quest must not be rewarded for spell apply)
bool questStartCanActive; // if true then quest start can be active (not only rewarded)
uint8 castFlags;
uint32 auraRequired;
@@ -592,8 +592,10 @@ class ObjectMgr
{
friend class PlayerDumpReader;
friend class ACE_Singleton<ObjectMgr, ACE_Null_Mutex>;
ObjectMgr();
~ObjectMgr();
private:
ObjectMgr();
~ObjectMgr();
public:
typedef UNORDERED_MAP<uint32, Item*> ItemMap;
@@ -629,7 +631,7 @@ class ObjectMgr
CreatureTemplateContainer const* GetCreatureTemplates() { return &CreatureTemplateStore; }
CreatureModelInfo const* GetCreatureModelInfo(uint32 modelId);
CreatureModelInfo const* GetCreatureModelRandomGender(uint32* displayID);
uint32 ChooseDisplayId(uint32 team, const CreatureTemplate *cinfo, const CreatureData *data = NULL);
static uint32 ChooseDisplayId(uint32 team, const CreatureTemplate *cinfo, const CreatureData *data = NULL);
static void ChooseCreatureFlags(const CreatureTemplate *cinfo, uint32& npcflag, uint32& unit_flags, uint32& dynamicflags, const CreatureData *data = NULL);
EquipmentInfo const *GetEquipmentInfo(uint32 entry);
CreatureAddon const *GetCreatureAddon(uint32 lowguid);
@@ -667,9 +669,9 @@ class ObjectMgr
void GetPlayerLevelInfo(uint32 race, uint32 class_, uint8 level, PlayerLevelInfo* info) const;
uint64 GetPlayerGUIDByName(std::string name) const;
bool GetPlayerNameByGUID(const uint64 guid, std::string &name) const;
uint32 GetPlayerTeamByGUID(const uint64 guid) const;
uint32 GetPlayerAccountIdByGUID(const uint64 guid) const;
bool GetPlayerNameByGUID(uint64 guid, std::string &name) const;
uint32 GetPlayerTeamByGUID(uint64 guid) const;
uint32 GetPlayerAccountIdByGUID(uint64 guid) const;
uint32 GetPlayerAccountIdByPlayerName(const std::string& name) const;
uint32 GetNearestTaxiNode(float x, float y, float z, uint32 mapid, uint32 team);
@@ -928,7 +930,6 @@ class ObjectMgr
uint32 GenerateLowGuid(HighGuid guidhigh);
uint32 GenerateAuctionID();
uint64 GenerateEquipmentSetGuid();
uint32 GenerateMailID();
uint32 GeneratePetNumber();
@@ -1168,8 +1169,8 @@ class ObjectMgr
// for wintergrasp only
GraveYardMap mGraveYardMap;
void AddLocaleString(std::string& s, LocaleConstant locale, StringVector& data);
inline void GetLocaleString(const StringVector& data, int loc_idx, std::string& value) const
static void AddLocaleString(const std::string& s, LocaleConstant locale, StringVector& data);
static inline void GetLocaleString(const StringVector& data, int loc_idx, std::string& value)
{
if (data.size() > size_t(loc_idx) && !data[loc_idx].empty())
value = data[loc_idx];
@@ -1194,7 +1195,7 @@ class ObjectMgr
uint32 m_mailid;
uint32 m_hiPetNumber;
// first free low guid for seelcted guid type
// first free low guid for selected guid type
uint32 m_hiCharGuid;
uint32 m_hiCreatureGuid;
uint32 m_hiPetGuid;