mirror of
https://github.com/mangosfour/server.git
synced 2025-12-28 04:37:04 +00:00
[10594] Use equal_range instead of lower_bound/upper_bound pairs
(based on zergtmn's repo commit 0499169) Signed-off-by: VladimirMangos <vladimir@getmangos.com>
This commit is contained in:
parent
0caa0e32dd
commit
2fa5fa43bd
13 changed files with 207 additions and 182 deletions
|
|
@ -441,9 +441,12 @@ typedef UNORDERED_MAP<int32,MangosStringLocale> MangosStringLocaleMap;
|
|||
typedef UNORDERED_MAP<uint32,GossipMenuItemsLocale> GossipMenuItemsLocaleMap;
|
||||
typedef UNORDERED_MAP<uint32,PointOfInterestLocale> PointOfInterestLocaleMap;
|
||||
|
||||
typedef std::multimap<uint32,uint32> QuestRelations;
|
||||
typedef std::multimap<uint32,ItemRequiredTarget> ItemRequiredTargetMap;
|
||||
typedef std::pair<ItemRequiredTargetMap::const_iterator, ItemRequiredTargetMap::const_iterator> ItemRequiredTargetMapBounds;
|
||||
typedef std::multimap<int32, uint32> ExclusiveQuestGroupsMap;
|
||||
typedef std::multimap<uint32, ItemRequiredTarget> ItemRequiredTargetMap;
|
||||
typedef std::multimap<uint32, uint32> QuestRelationsMap;
|
||||
typedef std::pair<ExclusiveQuestGroupsMap::const_iterator, ExclusiveQuestGroupsMap::const_iterator> ExclusiveQuestGroupsMapBounds;
|
||||
typedef std::pair<ItemRequiredTargetMap::const_iterator, ItemRequiredTargetMap::const_iterator> ItemRequiredTargetMapBounds;
|
||||
typedef std::pair<QuestRelationsMap::const_iterator, QuestRelationsMap::const_iterator> QuestRelationsMapBounds;
|
||||
|
||||
struct PetLevelInfo
|
||||
{
|
||||
|
|
@ -584,7 +587,8 @@ struct GraveYardData
|
|||
uint32 safeLocId;
|
||||
uint32 team;
|
||||
};
|
||||
typedef std::multimap<uint32,GraveYardData> GraveYardMap;
|
||||
typedef std::multimap<uint32, GraveYardData> GraveYardMap;
|
||||
typedef std::pair<GraveYardMap::const_iterator, GraveYardMap::const_iterator> GraveYardMapBounds;
|
||||
|
||||
enum ConditionType
|
||||
{ // value1 value2 for the Condition enumed
|
||||
|
|
@ -829,7 +833,7 @@ class ObjectMgr
|
|||
WorldSafeLocsEntry const *GetClosestGraveYard(float x, float y, float z, uint32 MapId, uint32 team);
|
||||
bool AddGraveYardLink(uint32 id, uint32 zone, uint32 team, bool inDB = true);
|
||||
void LoadGraveyardZones();
|
||||
GraveYardData const* FindGraveYardData(uint32 id, uint32 zone);
|
||||
GraveYardData const* FindGraveYardData(uint32 id, uint32 zone) const;
|
||||
|
||||
AreaTrigger const* GetAreaTrigger(uint32 trigger) const
|
||||
{
|
||||
|
|
@ -903,11 +907,6 @@ class ObjectMgr
|
|||
void LoadCreatureQuestRelations();
|
||||
void LoadCreatureInvolvedRelations();
|
||||
|
||||
QuestRelations mGOQuestRelations;
|
||||
QuestRelations mGOQuestInvolvedRelations;
|
||||
QuestRelations mCreatureQuestRelations;
|
||||
QuestRelations mCreatureQuestInvolvedRelations;
|
||||
|
||||
void LoadGameObjectScripts();
|
||||
void LoadQuestEndScripts();
|
||||
void LoadQuestStartScripts();
|
||||
|
|
@ -1004,9 +1003,6 @@ class ObjectMgr
|
|||
uint32 GenerateMailID() { return m_MailIds.Generate(); }
|
||||
uint32 GeneratePetNumber() { return m_PetNumbers.Generate(); }
|
||||
|
||||
typedef std::multimap<int32, uint32> ExclusiveQuestGroups;
|
||||
ExclusiveQuestGroups mExclusiveQuestGroups;
|
||||
|
||||
MailLevelReward const* GetMailLevelReward(uint32 level,uint32 raceMask)
|
||||
{
|
||||
MailLevelRewardMap::const_iterator map_itr = m_mailLevelRewardMap.find(level);
|
||||
|
|
@ -1064,42 +1060,49 @@ class ObjectMgr
|
|||
if(itr==mCreatureLocaleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
GameObjectLocale const* GetGameObjectLocale(uint32 entry) const
|
||||
{
|
||||
GameObjectLocaleMap::const_iterator itr = mGameObjectLocaleMap.find(entry);
|
||||
if(itr==mGameObjectLocaleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
ItemLocale const* GetItemLocale(uint32 entry) const
|
||||
{
|
||||
ItemLocaleMap::const_iterator itr = mItemLocaleMap.find(entry);
|
||||
if(itr==mItemLocaleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
QuestLocale const* GetQuestLocale(uint32 entry) const
|
||||
{
|
||||
QuestLocaleMap::const_iterator itr = mQuestLocaleMap.find(entry);
|
||||
if(itr==mQuestLocaleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
NpcTextLocale const* GetNpcTextLocale(uint32 entry) const
|
||||
{
|
||||
NpcTextLocaleMap::const_iterator itr = mNpcTextLocaleMap.find(entry);
|
||||
if(itr==mNpcTextLocaleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
PageTextLocale const* GetPageTextLocale(uint32 entry) const
|
||||
{
|
||||
PageTextLocaleMap::const_iterator itr = mPageTextLocaleMap.find(entry);
|
||||
if(itr==mPageTextLocaleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
GossipMenuItemsLocale const* GetGossipMenuItemsLocale(uint32 entry) const
|
||||
{
|
||||
GossipMenuItemsLocaleMap::const_iterator itr = mGossipMenuItemsLocaleMap.find(entry);
|
||||
if(itr==mGossipMenuItemsLocaleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
PointOfInterestLocale const* GetPointOfInterestLocale(uint32 poi_id) const
|
||||
{
|
||||
PointOfInterestLocaleMap::const_iterator itr = mPointOfInterestLocaleMap.find(poi_id);
|
||||
|
|
@ -1137,6 +1140,7 @@ class ObjectMgr
|
|||
if(itr==mMangosStringLocaleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
const char *GetMangosString(int32 entry, int locale_idx) const;
|
||||
const char *GetMangosStringForDBCLocale(int32 entry) const { return GetMangosString(entry,DBCLocaleIndex); }
|
||||
int32 GetDBCLocaleIndex() const { return DBCLocaleIndex; }
|
||||
|
|
@ -1186,6 +1190,7 @@ class ObjectMgr
|
|||
if(itr==m_GameTeleMap.end()) return NULL;
|
||||
return &itr->second;
|
||||
}
|
||||
|
||||
GameTele const* GetGameTele(const std::string& name) const;
|
||||
GameTeleMap const& GetGameTeleMap() const { return m_GameTeleMap; }
|
||||
bool AddGameTele(GameTele& data);
|
||||
|
|
@ -1217,6 +1222,7 @@ class ObjectMgr
|
|||
|
||||
return &iter->second;
|
||||
}
|
||||
|
||||
void AddVendorItem(uint32 entry,uint32 item, uint32 maxcount, uint32 incrtime, uint32 ExtendedCost);
|
||||
bool RemoveVendorItem(uint32 entry,uint32 item);
|
||||
bool IsVendorItemValid( uint32 vendor_entry, uint32 item, uint32 maxcount, uint32 ptime, uint32 ExtendedCost, Player* pl = NULL, std::set<uint32>* skip_vendors = NULL ) const;
|
||||
|
|
@ -1230,26 +1236,52 @@ class ObjectMgr
|
|||
|
||||
SpellClickInfoMapBounds GetSpellClickInfoMapBounds(uint32 creature_id) const
|
||||
{
|
||||
return SpellClickInfoMapBounds(mSpellClickInfoMap.lower_bound(creature_id),mSpellClickInfoMap.upper_bound(creature_id));
|
||||
return mSpellClickInfoMap.equal_range(creature_id);
|
||||
}
|
||||
|
||||
ItemRequiredTargetMapBounds GetItemRequiredTargetMapBounds(uint32 uiItemEntry) const
|
||||
{
|
||||
return ItemRequiredTargetMapBounds(m_ItemRequiredTarget.lower_bound(uiItemEntry),m_ItemRequiredTarget.upper_bound(uiItemEntry));
|
||||
return m_ItemRequiredTarget.equal_range(uiItemEntry);
|
||||
}
|
||||
|
||||
GossipMenusMapBounds GetGossipMenusMapBounds(uint32 uiMenuId) const
|
||||
{
|
||||
return GossipMenusMapBounds(m_mGossipMenusMap.lower_bound(uiMenuId),m_mGossipMenusMap.upper_bound(uiMenuId));
|
||||
return m_mGossipMenusMap.equal_range(uiMenuId);
|
||||
}
|
||||
|
||||
GossipMenuItemsMapBounds GetGossipMenuItemsMapBounds(uint32 uiMenuId) const
|
||||
{
|
||||
return GossipMenuItemsMapBounds(m_mGossipMenuItemsMap.lower_bound(uiMenuId),m_mGossipMenuItemsMap.upper_bound(uiMenuId));
|
||||
return m_mGossipMenuItemsMap.equal_range(uiMenuId);
|
||||
}
|
||||
|
||||
uint32 GetModelForRace(uint32 sourceModelId, uint32 racemask);
|
||||
ExclusiveQuestGroupsMapBounds GetExclusiveQuestGroupsMapBounds(int32 groupId) const
|
||||
{
|
||||
return m_ExclusiveQuestGroups.equal_range(groupId);
|
||||
}
|
||||
|
||||
QuestRelationsMapBounds GetCreatureQuestRelationsMapBounds(uint32 entry) const
|
||||
{
|
||||
return m_CreatureQuestRelations.equal_range(entry);
|
||||
}
|
||||
|
||||
QuestRelationsMapBounds GetCreatureQuestInvolvedRelationsMapBounds(uint32 entry) const
|
||||
{
|
||||
return m_CreatureQuestInvolvedRelations.equal_range(entry);
|
||||
}
|
||||
|
||||
QuestRelationsMapBounds GetGOQuestRelationsMapBounds(uint32 entry) const
|
||||
{
|
||||
return m_GOQuestRelations.equal_range(entry);
|
||||
}
|
||||
|
||||
QuestRelationsMapBounds GetGOQuestInvolvedRelationsMapBounds(uint32 entry) const
|
||||
{
|
||||
return m_GOQuestInvolvedRelations.equal_range(entry);
|
||||
}
|
||||
|
||||
QuestRelationsMap& GetCreatureQuestRelationsMap() { return m_CreatureQuestRelations; }
|
||||
|
||||
uint32 GetModelForRace(uint32 sourceModelId, uint32 racemask);
|
||||
protected:
|
||||
|
||||
// first free id for selected id type
|
||||
|
|
@ -1276,6 +1308,7 @@ class ObjectMgr
|
|||
typedef std::set<uint32> GameObjectForQuestSet;
|
||||
|
||||
typedef std::multimap<uint32, CreatureModelRace> CreatureModelRaceMap;
|
||||
typedef std::pair<CreatureModelRaceMap::const_iterator, CreatureModelRaceMap::const_iterator> CreatureModelRaceMapBounds;
|
||||
|
||||
GroupMap mGroupMap;
|
||||
GuildMap mGuildMap;
|
||||
|
|
@ -1319,6 +1352,13 @@ class ObjectMgr
|
|||
typedef std::vector<LocaleConstant> LocalForIndex;
|
||||
LocalForIndex m_LocalForIndex;
|
||||
|
||||
ExclusiveQuestGroupsMap m_ExclusiveQuestGroups;
|
||||
|
||||
QuestRelationsMap m_CreatureQuestRelations;
|
||||
QuestRelationsMap m_CreatureQuestInvolvedRelations;
|
||||
QuestRelationsMap m_GOQuestRelations;
|
||||
QuestRelationsMap m_GOQuestInvolvedRelations;
|
||||
|
||||
int DBCLocaleIndex;
|
||||
|
||||
private:
|
||||
|
|
@ -1326,7 +1366,7 @@ class ObjectMgr
|
|||
void CheckScriptTexts(ScriptMapMap const& scripts,std::set<int32>& ids);
|
||||
void LoadCreatureAddons(SQLStorage& creatureaddons, char const* entryName, char const* comment);
|
||||
void ConvertCreatureAddonAuras(CreatureDataAddon* addon, char const* table, char const* guidEntryStr);
|
||||
void LoadQuestRelationsHelper(QuestRelations& map,char const* table);
|
||||
void LoadQuestRelationsHelper(QuestRelationsMap& map, char const* table);
|
||||
|
||||
MailLevelRewardMap m_mailLevelRewardMap;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue