Core/Achievements: AchievementMgr refactoring

* Extracted base CriteriaHandler class that deals with criteria only and will be reused for future scenario implementation
* Fixed players earning guild achievements
This commit is contained in:
Shauren
2016-05-07 01:16:29 +02:00
parent 44962fe3a9
commit c75fcbe20b
87 changed files with 4169 additions and 4040 deletions

View File

@@ -17,7 +17,7 @@
*/
#include "DisableMgr.h"
#include "AchievementMgr.h"
#include "CriteriaHandler.h"
#include "ObjectMgr.h"
#include "OutdoorPvP.h"
#include "SpellMgr.h"
@@ -183,14 +183,14 @@ void LoadDisables()
if (flags)
TC_LOG_ERROR("sql.sql", "Disable flags specified for outdoor PvP %u, useless data.", entry);
break;
case DISABLE_TYPE_ACHIEVEMENT_CRITERIA:
if (!sAchievementMgr->GetAchievementCriteria(entry))
case DISABLE_TYPE_CRITERIA:
if (!sCriteriaMgr->GetCriteria(entry))
{
TC_LOG_ERROR("sql.sql", "Achievement Criteria entry %u from `disables` doesn't exist in dbc, skipped.", entry);
TC_LOG_ERROR("sql.sql", "Criteria entry %u from `disables` doesn't exist in dbc, skipped.", entry);
continue;
}
if (flags)
TC_LOG_ERROR("sql.sql", "Disable flags specified for Achievement Criteria %u, useless data.", entry);
TC_LOG_ERROR("sql.sql", "Disable flags specified for Criteria %u, useless data.", entry);
break;
case DISABLE_TYPE_VMAP:
{
@@ -362,7 +362,7 @@ bool IsDisabledFor(DisableType type, uint32 entry, Unit const* unit, uint8 flags
return true;
case DISABLE_TYPE_BATTLEGROUND:
case DISABLE_TYPE_OUTDOORPVP:
case DISABLE_TYPE_ACHIEVEMENT_CRITERIA:
case DISABLE_TYPE_CRITERIA:
case DISABLE_TYPE_MMAP:
return true;
case DISABLE_TYPE_VMAP: