aboutsummaryrefslogtreecommitdiff
path: root/src/game/ObjectMgr.h
diff options
context:
space:
mode:
authorwin32 <none@none>2009-12-16 18:58:36 +0200
committerwin32 <none@none>2009-12-16 18:58:36 +0200
commitbf2c3fd8cf32578324162a8bef2ac6e48e7e0009 (patch)
treeccb8f71a159aba2799cc009352a8626d95b6fc6c /src/game/ObjectMgr.h
parentdc53b4a9def06d012d791304aaba1c748a1f997a (diff)
MaNGOS merge: Mail System.
* Store loot in mail_loot_template indexed by mail template ids. * Implement proper creating mail text copy item from mail template based mail. * Move send functions to new MailDraft class from WorldSession. * Implement mails sending at player levelup. * Autor VladimirMangos, converted by me. --HG-- branch : trunk
Diffstat (limited to 'src/game/ObjectMgr.h')
-rw-r--r--src/game/ObjectMgr.h29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/game/ObjectMgr.h b/src/game/ObjectMgr.h
index 0ca6a5f2422..1c5367387fc 100644
--- a/src/game/ObjectMgr.h
+++ b/src/game/ObjectMgr.h
@@ -180,6 +180,19 @@ struct PetLevelInfo
uint16 armor;
};
+struct MailLevelReward
+{
+ MailLevelReward() : raceMask(0), mailTemplateId(0), senderEntry(0) {}
+ MailLevelReward(uint32 _raceMask, uint32 _mailTemplateId, uint32 _senderEntry) : raceMask(_raceMask), mailTemplateId(_mailTemplateId), senderEntry(_senderEntry) {}
+
+ uint32 raceMask;
+ uint32 mailTemplateId;
+ uint32 senderEntry;
+};
+
+typedef std::list<MailLevelReward> MailLevelRewardList;
+typedef UNORDERED_MAP<uint8,MailLevelRewardList> MailLevelRewardMap;
+
struct ReputationOnKillEntry
{
uint32 repfaction1;
@@ -570,6 +583,7 @@ class ObjectMgr
void LoadNpcOptionLocales();
void LoadPointOfInterestLocales();
void LoadInstanceTemplate();
+ void LoadMailLevelRewards();
void LoadGossipText();
@@ -645,6 +659,19 @@ class ObjectMgr
typedef std::multimap<int32, uint32> ExclusiveQuestGroups;
ExclusiveQuestGroups mExclusiveQuestGroups;
+ MailLevelReward const* GetMailLevelReward(uint32 level,uint32 raceMask)
+ {
+ MailLevelRewardMap::const_iterator map_itr = m_mailLevelRewardMap.find(level);
+ if (map_itr == m_mailLevelRewardMap.end())
+ return NULL;
+
+ for(MailLevelRewardList::const_iterator set_itr = map_itr->second.begin(); set_itr != map_itr->second.end(); ++set_itr)
+ if (set_itr->raceMask & raceMask)
+ return &*set_itr;
+
+ return NULL;
+ }
+
WeatherZoneChances const* GetWeatherChances(uint32 zone_id) const
{
WeatherZoneMap::const_iterator itr = mWeatherZoneMap.find(zone_id);
@@ -956,6 +983,8 @@ class ObjectMgr
void ConvertCreatureAddonAuras(CreatureDataAddon* addon, char const* table, char const* guidEntryStr);
void LoadQuestRelationsHelper(QuestRelations& map,char const* table);
+ MailLevelRewardMap m_mailLevelRewardMap;
+
typedef std::map<uint32,PetLevelInfo*> PetLevelInfoMap;
// PetLevelInfoMap[creature_id][level]
PetLevelInfoMap petInfo; // [creature_id][level]