6#ifndef SF_ACHIEVEMENTMGR_H
7#define SF_ACHIEVEMENTMGR_H
65#define MAX_ACHIEVEMENT_CRITERIA_DATA_TYPE 22
170 raw.value1 = _value1;
171 raw.value2 = _value2;
182 typedef std::vector<AchievementCriteriaData>
Storage;
331 AchievementCriteriaDataMap::const_iterator iter =
m_criteriaDataMap.find(achievementCriteria->
ID);
413#define sAchievementMgr Skyfire::Singleton<AchievementGlobalMgr, Skyfire::NullMutex>::instance()
UNORDERED_MAP< uint32, AchievementReward > AchievementRewards
std::vector< CriteriaTreeEntry const * > AchievementCriteriaTreeList
std::vector< CriteriaEntry const * > AchievementCriteriaEntryList
UNORDERED_MAP< uint32, AchievementEntry const * > AchievementEntryByCriteriaTree
AchievementCriteriaDataType
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_PLAYER_COUNT
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_T_GENDER
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AREA
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_CLASS_RACE
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_VALUE
@ ACHIEVEMENT_CRITERIA_DATA_INSTANCE_SCRIPT
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_S_DRUNK
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_HOLIDAY
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_S_EQUIPED_ITEM
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_S_PLAYER_CLASS_RACE
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_BG_LOSS_TEAM_SCORE
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_T_LEVEL
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_T_CREATURE
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_LESS_HEALTH
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_T_TEAM
@ ACHIEVEMENT_CRITERIA_DATA_TYPE_NONE
UNORDERED_MAP< uint32, CompletedAchievementData > CompletedAchievementMap
UNORDERED_MAP< uint32, AchievementRewardLocale > AchievementRewardLocales
UNORDERED_MAP< uint32, AchievementCriteriaTreeList > AchievementCriteriaTreeByCriteriaId
UNORDERED_MAP< uint32, AchievementCriteriaTreeList > SubCriteriaTreeListById
std::vector< ModifierTreeEntry const * > ModifierTreeEntryList
std::map< uint32, AchievementCriteriaDataSet > AchievementCriteriaDataMap
UNORDERED_MAP< uint32, ModifierTreeEntryList > ModifierTreeEntryByTreeId
UNORDERED_MAP< uint32, CriteriaProgress > CriteriaProgressMap
UNORDERED_MAP< uint32, AchievementEntryList > AchievementListByReferencedId
std::vector< AchievementEntry const * > AchievementEntryList
AchievementCriteriaTimedTypes
@ ACHIEVEMENT_TIMED_TYPE_MAX
@ ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET2
@ ACHIEVEMENT_CRITERIA_TYPE_BE_SPELL_TARGET
@ ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_ARENA
@ ACHIEVEMENT_CRITERIA_TYPE_KILL_CREATURE
@ ACHIEVEMENT_CRITERIA_TYPE_WIN_BG
@ ACHIEVEMENT_CRITERIA_TYPE_WIN_RATED_BATTLEGROUND
#define ACHIEVEMENT_CRITERIA_TYPE_TOTAL
DBCStorage< CriteriaTreeEntry > sCriteriaTreeStore(CriteriaTreefmt)
Skyfire::AutoPtr< PreparedResultSet, Skyfire::Mutex > PreparedQueryResult
Skyfire::AutoPtr< Transaction, Skyfire::Mutex > SQLTransaction
AchievementCriteriaEntryList const & GetTimedAchievementCriteriaByType(AchievementCriteriaTimedTypes type) const
void LoadCompletedAchievements()
AchievementCriteriaEntryList m_AchievementCriteriasByType[ACHIEVEMENT_CRITERIA_TYPE_TOTAL]
AchievementRewardLocale const * GetAchievementRewardLocale(AchievementEntry const *achievement) const
ModifierTreeEntryByTreeId m_ModifierTreeEntryByTreeId
ModifierTreeEntryList const * GetModifierTreeByModifierId(uint32 id) const
AchievementEntryByCriteriaTree m_AchievementEntryByCriteriaTree
void LoadAchievementCriteriaData()
bool IsRealmCompleted(AchievementEntry const *achievement) const
AchievementEntry const * GetAchievementEntryByCriteriaTree(CriteriaTreeEntry const *criteria) const
SubCriteriaTreeListById m_SubCriteriaTreeListById
void LoadAchievementCriteriaList()
AchievementCriteriaTreeList const & GetAchievementCriteriaTreeList(CriteriaEntry const *criteria)
AchievementRewards m_achievementRewards
void SetRealmCompleted(AchievementEntry const *achievement)
AchievementListByReferencedId m_AchievementListByReferencedId
AchievementCriteriaDataSet const * GetCriteriaDataSet(CriteriaEntry const *achievementCriteria) const
void LoadAchievementReferenceList()
static char const * GetCriteriaTypeString(AchievementCriteriaTypes type)
AchievementReward const * GetAchievementReward(AchievementEntry const *achievement) const
AchievementRewardLocales m_achievementRewardLocales
AchievementEntryList const * GetAchievementByReferencedId(uint32 id) const
AchievementCriteriaEntryList const & GetAchievementCriteriaByType(AchievementCriteriaTypes type) const
bool IsGroupCriteriaType(AchievementCriteriaTypes type) const
AchievementCriteriaTreeByCriteriaId m_AchievementCriteriaTreeByCriteriaId
AllCompletedAchievements m_allCompletedAchievements
AchievementCriteriaDataMap m_criteriaDataMap
AchievementCriteriaTreeList const * GetSubCriteriaTreeById(uint32 id) const
AchievementEntry const * GetAchievement(uint32 achievementId) const
AchievementCriteriaEntryList m_AchievementCriteriasByTimedType[ACHIEVEMENT_TIMED_TYPE_MAX]
std::set< uint32 > AllCompletedAchievements
CriteriaEntry const * GetAchievementCriteria(uint32 achievementId) const
CriteriaProgressMap m_criteriaProgress
void SendPacket(WorldPacket *data) const
bool HasAchieved(uint32 achievementId) const
CompletedAchievementMap m_completedAchievements
void StartTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry, uint32 timeLost=0)
void SendCriteriaUpdate(CriteriaEntry const *entry, CriteriaProgress const *progress, uint32 timeElapsed, bool timedCompleted) const
bool IsCompletedCriteriaForAchievement(CriteriaEntry const *criteria, AchievementEntry const *achievementEntry)
bool IsCompletedCriteria(CriteriaEntry const *criteria)
void SetCriteriaProgress(CriteriaEntry const *entry, uint64 changeValue, Player *referencePlayer, ProgressType ptype=PROGRESS_SET)
void CompletedAchievement(AchievementEntry const *entry, Player *referencePlayer)
void CompletedCriteriaFor(AchievementEntry const *achievement, Player *referencePlayer)
void UpdateTimedAchievements(uint32 timeDiff)
uint32 _achievementPoints
void SendAllAchievementData(Player *receiver) const
void UpdateAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1=0, uint64 miscValue2=0, uint64 miscValue3=0, Unit const *unit=NULL, Player *referencePlayer=NULL)
bool RequirementsSatisfied(CriteriaEntry const *criteria, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit const *unit, Player *referencePlayer) const
void CheckAllAchievementCriteria(Player *referencePlayer)
static void DeleteFromDB(uint32 lowguid)
void SendAchievementInfo(Player *receiver, uint32 achievementId=0) const
void RemoveTimedAchievement(AchievementCriteriaTimedTypes type, uint32 entry)
TimedAchievementMap m_timedAchievements
void SaveToDB(SQLTransaction &trans)
void ResetAchievementCriteria(AchievementCriteriaTypes type, uint64 miscValue1=0, uint64 miscValue2=0, bool evenIfCriteriaComplete=false)
std::map< uint32, uint32 > TimedAchievementMap
bool CanUpdateCriteria(CriteriaEntry const *criteria, AchievementEntry const *achievement, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit const *unit, Player *referencePlayer)
void RemoveCriteriaProgress(CriteriaEntry const *entry)
bool ConditionsSatisfied(CriteriaEntry const *criteria, Player *referencePlayer) const
void SendAchievementEarned(AchievementEntry const *achievement) const
CriteriaProgress * GetCriteriaProgress(CriteriaEntry const *entry)
bool IsCompletedAchievement(AchievementEntry const *entry)
void LoadFromDB(PreparedQueryResult achievementResult, PreparedQueryResult criteriaResult)
uint32 GetAchievementPoints() const
bool AdditionalRequirementsSatisfied(CriteriaEntry const *criteria, uint64 miscValue1, uint64 miscValue2, uint64 miscValue3, Unit const *unit, Player *referencePlayer) const
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@024174374254033004277026301075062165130262072115 bg_loss_team_score
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@242275372266152233237245200135230111133067133327 drunk
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@057072032343071104215271130142020325273334150275 level
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@216021007006316026312235077267015221071344272202 aura
bool Meets(uint32 criteria_id, Player const *source, Unit const *target, uint32 miscValue1=0) const
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@336320011221331007167071255301216365172157057155 creature
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@320377026037266164246202240071302363266115322001 area
AchievementCriteriaDataType dataType
AchievementCriteriaData()
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@056275250256040003142024016221011315062167165214 health
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@244322361360134003272016350324260205076224125117 holiday
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@172302147354037330143253231262341126300056164132 classRace
AchievementCriteriaData(uint32 _dataType, uint32 _value1, uint32 _value2, uint32 _scriptId)
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@073272033060277337046210111031273001150026340123 raw
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@107316206207337342166046010026175222131076365132 map_players
bool IsValid(CriteriaEntry const *criteria)
struct AchievementCriteriaData::@106234210224313230010274346235221313360252063263::@127266277105012275312221217150103304016252214022 equipped_item
void Add(AchievementCriteriaData const &data)
std::vector< AchievementCriteriaData > Storage
AchievementCriteriaDataSet()
bool Meets(Player const *source, Unit const *target, uint32 miscValue=0) const
void SetCriteriaId(uint32 id)
std::vector< std::string > text
std::vector< std::string > subject