TrinityCore
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
AchievementCriteriaData Struct Reference

#include <AchievementMgr.h>

Public Member Functions

 AchievementCriteriaData ()
 
 AchievementCriteriaData (uint32 _dataType, uint32 _value1, uint32 _value2, uint32 _scriptId)
 
bool IsValid (AchievementCriteria const *criteria)
 
bool Meets (uint32 criteria_id, Player const *source, Unit const *target, uint32 miscValue1=0) const
 

Public Attributes

AchievementCriteriaDataType dataType
 
union {
   struct {
      uint32   id
 
   }   creature
 
   struct {
      uint32   class_id
 
      uint32   race_id
 
   }   classRace
 
   struct {
      uint32   percent
 
   }   health
 
   struct {
      uint32   spell_id
 
      uint32   effect_idx
 
   }   aura
 
   struct {
      uint32   value
 
      uint32   compType
 
   }   value
 
   struct {
      uint32   minlevel
 
   }   level
 
   struct {
      uint32   gender
 
   }   gender
 
   struct {
      uint32   maxcount
 
   }   map_players
 
   struct {
      uint32   team
 
   }   team
 
   struct {
      uint32   state
 
   }   drunk
 
   struct {
      uint32   id
 
   }   holiday
 
   struct {
      uint32   min_score
 
      uint32   max_score
 
   }   bg_loss_team_score
 
   struct {
      uint32   item_level
 
      uint32   item_quality
 
   }   equipped_item
 
   struct {
      uint32   mapId
 
   }   map_id
 
   struct {
      uint32   title_id
 
   }   known_title
 
   struct {
      uint32   id
 
   }   game_event
 
   struct {
      uint32   value1
 
      uint32   value2
 
   }   raw
 
}; 
 
uint32 ScriptId
 

Constructor & Destructor Documentation

AchievementCriteriaData::AchievementCriteriaData ( )
inline
220  {
221  raw.value1 = 0;
222  raw.value2 = 0;
223  ScriptId = 0;
224  }
uint32 ScriptId
Definition: AchievementMgr.h:217
Definition: AchievementMgr.h:88
AchievementCriteriaDataType dataType
Definition: AchievementMgr.h:117
struct AchievementCriteriaData::@58::@76 raw
AchievementCriteriaData::AchievementCriteriaData ( uint32  _dataType,
uint32  _value1,
uint32  _value2,
uint32  _scriptId 
)
inline
227  {
228  raw.value1 = _value1;
229  raw.value2 = _value2;
230  ScriptId = _scriptId;
231  }
uint32 ScriptId
Definition: AchievementMgr.h:217
AchievementCriteriaDataType dataType
Definition: AchievementMgr.h:117
AchievementCriteriaDataType
Definition: AchievementMgr.h:86
struct AchievementCriteriaData::@58::@76 raw

Member Function Documentation

bool AchievementCriteriaData::IsValid ( AchievementCriteria const criteria)
49 {
51  {
52  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` for criteria (Entry: %u) has wrong data type (%u), ignored.", criteria->ID, dataType);
53  return false;
54  }
55 
56  switch (criteria->Entry->Type)
57  {
62  case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_QUEST: // only hardcoded list
77  case ACHIEVEMENT_CRITERIA_TYPE_COMPLETE_DAILY_QUEST: // only Children's Week achievements
78  case ACHIEVEMENT_CRITERIA_TYPE_USE_ITEM: // only Children's Week achievements
82  break;
83  default:
85  {
86  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` has data for non-supported criteria type (Entry: %u Type: %u), ignored.", criteria->ID, criteria->Entry->Type);
87  return false;
88  }
89  break;
90  }
91 
92  switch (dataType)
93  {
96  return true;
98  if (!creature.id || !sObjectMgr->GetCreatureTemplate(creature.id))
99  {
100  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_CREATURE (%u) has non-existing creature id in value1 (%u), ignored.",
101  criteria->ID, criteria->Entry->Type, dataType, creature.id);
102  return false;
103  }
104  return true;
106  if (!classRace.class_id && !classRace.race_id)
107  {
108  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_CLASS_RACE (%u) must not have 0 in either value field, ignored.",
109  criteria->ID, criteria->Entry->Type, dataType);
110  return false;
111  }
112  if (classRace.class_id && ((1 << (classRace.class_id-1)) & CLASSMASK_ALL_PLAYABLE) == 0)
113  {
114  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_CLASS_RACE (%u) has non-existing class in value1 (%u), ignored.",
115  criteria->ID, criteria->Entry->Type, dataType, classRace.class_id);
116  return false;
117  }
118  if (classRace.race_id && ((1 << (classRace.race_id-1)) & RACEMASK_ALL_PLAYABLE) == 0)
119  {
120  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_PLAYER_CLASS_RACE (%u) has non-existing race in value2 (%u), ignored.",
121  criteria->ID, criteria->Entry->Type, dataType, classRace.race_id);
122  return false;
123  }
124  return true;
126  if (health.percent < 1 || health.percent > 100)
127  {
128  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_PLAYER_LESS_HEALTH (%u) has wrong percent value in value1 (%u), ignored.",
129  criteria->ID, criteria->Entry->Type, dataType, health.percent);
130  return false;
131  }
132  return true;
135  {
136  SpellInfo const* spellEntry = sSpellMgr->GetSpellInfo(aura.spell_id);
137  if (!spellEntry)
138  {
139  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type %s (%u) has wrong spell id in value1 (%u), ignored.",
140  criteria->ID, criteria->Entry->Type, (dataType == ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA ? "ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA" : "ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA"), dataType, aura.spell_id);
141  return false;
142  }
143  SpellEffectInfo const* effect = spellEntry->GetEffect(DIFFICULTY_NONE, aura.effect_idx);
144  if (!effect)
145  {
146  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type %s (%u) has wrong spell effect index in value2 (%u), ignored.",
147  criteria->ID, criteria->Entry->Type, (dataType == ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA ? "ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA" : "ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA"), dataType, aura.effect_idx);
148  return false;
149  }
150  if (!effect->ApplyAuraName)
151  {
152  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type %s (%u) has non-aura spell effect (ID: %u Effect: %u), ignores.",
153  criteria->ID, criteria->Entry->Type, (dataType == ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA ? "ACHIEVEMENT_CRITERIA_DATA_TYPE_S_AURA" : "ACHIEVEMENT_CRITERIA_DATA_TYPE_T_AURA"), dataType, aura.spell_id, aura.effect_idx);
154  return false;
155  }
156  return true;
157  }
159  if (value.compType >= COMP_TYPE_MAX)
160  {
161  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_VALUE (%u) has wrong ComparisionType in value2 (%u), ignored.",
162  criteria->ID, criteria->Entry->Type, dataType, value.compType);
163  return false;
164  }
165  return true;
167  if (level.minlevel > STRONG_MAX_LEVEL)
168  {
169  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_LEVEL (%u) has wrong minlevel in value1 (%u), ignored.",
170  criteria->ID, criteria->Entry->Type, dataType, level.minlevel);
171  return false;
172  }
173  return true;
175  if (gender.gender > GENDER_NONE)
176  {
177  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_GENDER (%u) has wrong gender in value1 (%u), ignored.",
178  criteria->ID, criteria->Entry->Type, dataType, gender.gender);
179  return false;
180  }
181  return true;
183  if (!ScriptId)
184  {
185  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_SCRIPT (%u) does not have ScriptName set, ignored.",
186  criteria->ID, criteria->Entry->Type, dataType);
187  return false;
188  }
189  return true;
191  if (map_players.maxcount <= 0)
192  {
193  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_MAP_PLAYER_COUNT (%u) has wrong max players count in value1 (%u), ignored.",
194  criteria->ID, criteria->Entry->Type, dataType, map_players.maxcount);
195  return false;
196  }
197  return true;
199  if (team.team != ALLIANCE && team.team != HORDE)
200  {
201  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_T_TEAM (%u) has unknown team in value1 (%u), ignored.",
202  criteria->ID, criteria->Entry->Type, dataType, team.team);
203  return false;
204  }
205  return true;
207  if (drunk.state >= MAX_DRUNKEN)
208  {
209  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_S_DRUNK (%u) has unknown drunken state in value1 (%u), ignored.",
210  criteria->ID, criteria->Entry->Type, dataType, drunk.state);
211  return false;
212  }
213  return true;
215  if (!sHolidaysStore.LookupEntry(holiday.id))
216  {
217  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_HOLIDAY (%u) has unknown holiday in value1 (%u), ignored.",
218  criteria->ID, criteria->Entry->Type, dataType, holiday.id);
219  return false;
220  }
221  return true;
223  {
224  GameEventMgr::GameEventDataMap const& events = sGameEventMgr->GetEventMap();
225  if (game_event.id < 1 || game_event.id >= events.size())
226  {
227  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_GAME_EVENT (%u) has unknown game_event in value1 (%u), ignored.",
228  criteria->ID, criteria->Entry->Type, dataType, game_event.id);
229  return false;
230  }
231  return true;
232  }
234  return true; // not check correctness node indexes
236  if (equipped_item.item_quality >= MAX_ITEM_QUALITY)
237  {
238  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_S_EQUIPED_ITEM (%u) has unknown quality state in value1 (%u), ignored.",
239  criteria->ID, criteria->Entry->Type, dataType, equipped_item.item_quality);
240  return false;
241  }
242  return true;
244  if (!classRace.class_id && !classRace.race_id)
245  {
246  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_S_PLAYER_CLASS_RACE (%u) must not have 0 in either value field, ignored.",
247  criteria->ID, criteria->Entry->Type, dataType);
248  return false;
249  }
250  if (classRace.class_id && ((1 << (classRace.class_id-1)) & CLASSMASK_ALL_PLAYABLE) == 0)
251  {
252  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_S_PLAYER_CLASS_RACE (%u) has non-existing class in value1 (%u), ignored.",
253  criteria->ID, criteria->Entry->Type, dataType, classRace.class_id);
254  return false;
255  }
256  if (classRace.race_id && ((1 << (classRace.race_id-1)) & RACEMASK_ALL_PLAYABLE) == 0)
257  {
258  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_S_PLAYER_CLASS_RACE (%u) has non-existing race in value2 (%u), ignored.",
259  criteria->ID, criteria->Entry->Type, dataType, classRace.race_id);
260  return false;
261  }
262  return true;
264  if (!sCharTitlesStore.LookupEntry(known_title.title_id))
265  {
266  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) for data type ACHIEVEMENT_CRITERIA_DATA_TYPE_S_KNOWN_TITLE (%u) have unknown title_id in value1 (%u), ignore.",
267  criteria->ID, criteria->Entry->Type, dataType, known_title.title_id);
268  return false;
269  }
270  return true;
271  default:
272  TC_LOG_ERROR("sql.sql", "Table `achievement_criteria_data` (Entry: %u Type: %u) has data for non-supported data type (%u), ignored.", criteria->ID, criteria->Entry->Type, dataType);
273  return false;
274  }
275 }
Definition: DBCEnums.h:265
Definition: DBCEnums.h:404
Definition: AchievementMgr.h:100
Definition: AchievementMgr.h:109
Definition: DBCEnums.h:221
Definition: SpellInfo.h:326
struct AchievementCriteriaData::@58::@62 health
Definition: Util.h:509
struct AchievementCriteriaData::@58::@61 classRace
uint32 ScriptId
Definition: AchievementMgr.h:217
Definition: AchievementMgr.h:97
uint32 ApplyAuraName
Definition: SpellInfo.h:244
Definition: DBCEnums.h:263
Definition: AchievementMgr.h:88
AchievementCriteriaDataType dataType
Definition: AchievementMgr.h:117
Definition: DBCEnums.h:199
Definition: AchievementMgr.h:95
uint32 value
Definition: AchievementMgr.h:148
Definition: DBCEnums.h:54
#define MAX_ITEM_QUALITY
Definition: SharedDefines.h:330
Definition: DBCEnums.h:198
struct AchievementCriteriaData::@58::@60 creature
struct AchievementCriteriaData::@58::@75 game_event
struct AchievementCriteriaData::@58::@65 level
Definition: AchievementMgr.h:96
#define sObjectMgr
Definition: ObjectMgr.h:1567
DBCStorage< CharTitlesEntry > sCharTitlesStore(CharTitlesfmt)
Definition: DBCEnums.h:246
Definition: SharedDefines.h:1000
Definition: AchievementMgr.h:92
DB2Storage< HolidaysEntry > sHolidaysStore("Holidays.db2", HolidaysEntryFormat, HOTFIX_SEL_HOLIDAYS)
struct AchievementCriteriaData::@58::@70 holiday
#define sSpellMgr
Definition: SpellMgr.h:756
Definition: SpellInfo.h:238
#define CLASSMASK_ALL_PLAYABLE
Definition: SharedDefines.h:183
Definition: AchievementMgr.h:104
struct AchievementCriteriaData::@58::@67 map_players
struct AchievementCriteriaData::@58::@63 aura
Definition: SharedDefines.h:999
SpellEffectInfo const * GetEffect(uint32 difficulty, uint32 index) const
Definition: SpellInfo.cpp:3348
Definition: DBCEnums.h:233
Definition: AchievementMgr.h:93
Definition: DBCEnums.h:201
#define sGameEventMgr
Definition: GameEventMgr.h:184
Definition: AchievementMgr.h:89
uint32 team
Definition: AchievementMgr.h:170
#define MAX_DRUNKEN
Definition: Player.h:513
#define RACEMASK_ALL_PLAYABLE
Definition: SharedDefines.h:133
std::vector< GameEventData > GameEventDataMap
Definition: GameEventMgr.h:107
Definition: DBCEnums.h:290
Definition: AchievementMgr.h:105
#define TC_LOG_ERROR(filterType__,...)
Definition: Log.h:207
uint32 gender
Definition: AchievementMgr.h:159
Definition: AchievementMgr.h:101
Definition: DBCEnums.h:289
Definition: AchievementMgr.h:102
struct AchievementCriteriaData::@58::@72 equipped_item
struct AchievementCriteriaData::@58::@74 known_title
Definition: AchievementMgr.h:110
Definition: AchievementMgr.h:112
Definition: AchievementMgr.h:94
struct AchievementCriteriaData::@58::@69 drunk
Definition: SharedDefines.h:95

+ Here is the call graph for this function:

+ Here is the caller graph for this function:

bool AchievementCriteriaData::Meets ( uint32  criteria_id,
Player const source,
Unit const target,
uint32  miscValue1 = 0 
) const
278 {
279  switch (dataType)
280  {
282  return true;
284  if (!target || target->GetTypeId() != TYPEID_UNIT)
285  return false;
286  return target->GetEntry() == creature.id;
288  if (!target || target->GetTypeId() != TYPEID_PLAYER)
289  return false;
290  if (classRace.class_id && classRace.class_id != target->ToPlayer()->getClass())
291  return false;
292  if (classRace.race_id && classRace.race_id != target->ToPlayer()->getRace())
293  return false;
294  return true;
296  if (source->GetTypeId() != TYPEID_PLAYER)
297  return false;
298  if (classRace.class_id && classRace.class_id != source->ToPlayer()->getClass())
299  return false;
300  if (classRace.race_id && classRace.race_id != source->ToPlayer()->getRace())
301  return false;
302  return true;
304  if (!target || target->GetTypeId() != TYPEID_PLAYER)
305  return false;
306  return !target->HealthAbovePct(health.percent);
308  return source->HasAuraEffect(aura.spell_id, aura.effect_idx);
310  return target && target->HasAuraEffect(aura.spell_id, aura.effect_idx);
312  return CompareValues(ComparisionType(value.compType), miscValue1, value.value);
314  if (!target)
315  return false;
316  return target->getLevel() >= level.minlevel;
318  if (!target)
319  return false;
320  return target->getGender() == gender.gender;
322  return sScriptMgr->OnCriteriaCheck(ScriptId, const_cast<Player*>(source), const_cast<Unit*>(target));
324  return source->GetMap()->GetPlayersCountExceptGMs() <= map_players.maxcount;
326  if (!target || target->GetTypeId() != TYPEID_PLAYER)
327  return false;
328  return target->ToPlayer()->GetTeam() == team.team;
330  return Player::GetDrunkenstateByValue(source->GetDrunkValue()) >= DrunkenState(drunk.state);
332  return IsHolidayActive(HolidayIds(holiday.id));
334  return IsEventActive(game_event.id);
336  {
337  Battleground* bg = source->GetBattleground();
338  if (!bg)
339  return false;
340 
341  uint32 score = bg->GetTeamScore(source->GetTeamId() == TEAM_ALLIANCE ? TEAM_HORDE : TEAM_ALLIANCE);
342  return score >= bg_loss_team_score.min_score && score <= bg_loss_team_score.max_score;
343  }
345  {
346  if (!source->IsInWorld())
347  return false;
348  Map* map = source->GetMap();
349  if (!map->IsDungeon())
350  {
351  TC_LOG_ERROR("achievement", "Achievement system call ACHIEVEMENT_CRITERIA_DATA_TYPE_INSTANCE_SCRIPT (%u) for achievement criteria %u for non-dungeon/non-raid map %u",
352  dataType, criteria_id, map->GetId());
353  return false;
354  }
355  InstanceScript* instance = map->ToInstanceMap()->GetInstanceScript();
356  if (!instance)
357  {
358  TC_LOG_ERROR("achievement", "Achievement system call ACHIEVEMENT_CRITERIA_DATA_TYPE_INSTANCE_SCRIPT (%u) for achievement criteria %u for map %u but map does not have a instance script",
359  dataType, criteria_id, map->GetId());
360  return false;
361  }
362  return instance->CheckAchievementCriteriaMeet(criteria_id, source, target, miscValue1);
363  }
365  {
366  ItemTemplate const* pProto = sObjectMgr->GetItemTemplate(miscValue1);
367  if (!pProto)
368  return false;
369  return pProto->GetBaseItemLevel() >= equipped_item.item_level && pProto->GetQuality() >= equipped_item.item_quality;
370  }
372  return source->GetMapId() == map_id.mapId;
374  {
375  if (CharTitlesEntry const* titleInfo = sCharTitlesStore.LookupEntry(known_title.title_id))
376  return source && source->HasTitle(titleInfo->MaskID);
377 
378  return false;
379  }
380  default:
381  break;
382  }
383  return false;
384 }
uint32 GetBaseItemLevel() const
Definition: ItemTemplate.h:667
Definition: AchievementMgr.h:100
Definition: AchievementMgr.h:109
bool CompareValues(ComparisionType type, T val1, T val2)
Definition: Util.h:513
bool IsEventActive(uint16 event_id)
Definition: GameEventMgr.cpp:1688
struct AchievementCriteriaData::@58::@62 health
struct AchievementCriteriaData::@58::@61 classRace
uint32 ScriptId
Definition: AchievementMgr.h:217
Definition: DBCStructure.h:162
Definition: AchievementMgr.h:97
Definition: AchievementMgr.h:88
AchievementCriteriaDataType dataType
Definition: AchievementMgr.h:117
Definition: ObjectGuid.h:32
Definition: AchievementMgr.h:95
uint32 value
Definition: AchievementMgr.h:148
struct AchievementCriteriaData::@58::@60 creature
bool IsDungeon() const
Definition: Map.h:395
struct AchievementCriteriaData::@58::@75 game_event
struct AchievementCriteriaData::@58::@65 level
Definition: AchievementMgr.h:96
Definition: System.cpp:71
#define sObjectMgr
Definition: ObjectMgr.h:1567
DBCStorage< CharTitlesEntry > sCharTitlesStore(CharTitlesfmt)
DrunkenState
Definition: Player.h:505
virtual bool CheckAchievementCriteriaMeet(uint32, Player const *, Unit const *=NULL, uint32=0)
Definition: InstanceScript.cpp:568
Definition: AchievementMgr.h:92
Definition: AchievementMgr.h:106
uint32 GetTeamScore(uint32 TeamID) const
Definition: Battleground.cpp:1924
uint32 GetId(void) const
Definition: Map.h:325
struct AchievementCriteriaData::@58::@70 holiday
InstanceMap * ToInstanceMap()
Definition: Map.h:495
uint32_t uint32
Definition: Define.h:150
Definition: AchievementMgr.h:104
Definition: SharedDefines.h:992
struct AchievementCriteriaData::@58::@67 map_players
bool IsHolidayActive(HolidayIds id)
Definition: GameEventMgr.cpp:1673
ComparisionType
Definition: Util.h:502
Definition: Map.h:259
struct AchievementCriteriaData::@58::@63 aura
Definition: AchievementMgr.h:93
InstanceScript * GetInstanceScript()
Definition: Map.h:769
Definition: ObjectGuid.h:33
Definition: ItemTemplate.h:647
Definition: AchievementMgr.h:89
uint32 team
Definition: AchievementMgr.h:170
Definition: InstanceScript.h:141
Definition: Battleground.h:235
Definition: AchievementMgr.h:105
#define sScriptMgr
Definition: ScriptMgr.h:837
#define TC_LOG_ERROR(filterType__,...)
Definition: Log.h:207
uint32 gender
Definition: AchievementMgr.h:159
Definition: AchievementMgr.h:101
Definition: SharedDefines.h:993
Definition: AchievementMgr.h:102
struct AchievementCriteriaData::@58::@72 equipped_item
HolidayIds
Definition: SharedDefines.h:3714
struct AchievementCriteriaData::@58::@74 known_title
Definition: AchievementMgr.h:110
struct AchievementCriteriaData::@58::@71 bg_loss_team_score
Definition: AchievementMgr.h:94
struct AchievementCriteriaData::@58::@69 drunk
uint32 GetQuality() const
Definition: ItemTemplate.h:655

+ Here is the call graph for this function:

Member Data Documentation

union { ... }
struct { ... } AchievementCriteriaData::aura
struct { ... } AchievementCriteriaData::bg_loss_team_score
uint32 AchievementCriteriaData::class_id
struct { ... } AchievementCriteriaData::classRace
uint32 AchievementCriteriaData::compType
struct { ... } AchievementCriteriaData::creature
AchievementCriteriaDataType AchievementCriteriaData::dataType
struct { ... } AchievementCriteriaData::drunk
uint32 AchievementCriteriaData::effect_idx
struct { ... } AchievementCriteriaData::equipped_item
struct { ... } AchievementCriteriaData::game_event
uint32 AchievementCriteriaData::gender
struct { ... } AchievementCriteriaData::gender
struct { ... } AchievementCriteriaData::health
struct { ... } AchievementCriteriaData::holiday
uint32 AchievementCriteriaData::id
uint32 AchievementCriteriaData::item_level
uint32 AchievementCriteriaData::item_quality
struct { ... } AchievementCriteriaData::known_title
struct { ... } AchievementCriteriaData::level
struct { ... } AchievementCriteriaData::map_id
struct { ... } AchievementCriteriaData::map_players
uint32 AchievementCriteriaData::mapId
uint32 AchievementCriteriaData::max_score
uint32 AchievementCriteriaData::maxcount
uint32 AchievementCriteriaData::min_score
uint32 AchievementCriteriaData::minlevel
uint32 AchievementCriteriaData::percent
uint32 AchievementCriteriaData::race_id
struct { ... } AchievementCriteriaData::raw
uint32 AchievementCriteriaData::ScriptId
uint32 AchievementCriteriaData::spell_id
uint32 AchievementCriteriaData::state
uint32 AchievementCriteriaData::team
struct { ... } AchievementCriteriaData::team
uint32 AchievementCriteriaData::title_id
uint32 AchievementCriteriaData::value
struct { ... } AchievementCriteriaData::value
uint32 AchievementCriteriaData::value1
uint32 AchievementCriteriaData::value2

The documentation for this struct was generated from the following files: