diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Conditions/ConditionMgr.cpp | 45 |
1 files changed, 18 insertions, 27 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 4485dcb2290..1df5f72f718 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -60,8 +60,8 @@ char const* const ConditionMgr::StaticSourceTypeData[CONDITION_SOURCE_TYPE_MAX] "Creature Vehicle", "Spell Expl. Target", "Spell Click Event", - "Quest Accept", - "Quest Show Mark", + "Quest Available", + "Unused", "Vehicle Spell", "SmartScript", "Npc Vendor", @@ -1499,12 +1499,6 @@ bool ConditionMgr::addToPhases(Condition* cond) const bool ConditionMgr::isSourceTypeValid(Condition* cond) const { - if (cond->SourceType == CONDITION_SOURCE_TYPE_NONE || cond->SourceType >= CONDITION_SOURCE_TYPE_MAX) - { - TC_LOG_ERROR("sql.sql", "%s Invalid ConditionSourceType in `condition` table, ignoring.", cond->ToString().c_str()); - return false; - } - switch (cond->SourceType) { case CONDITION_SOURCE_TYPE_CREATURE_LOOT_TEMPLATE: @@ -1857,9 +1851,10 @@ bool ConditionMgr::isSourceTypeValid(Condition* cond) const case CONDITION_SOURCE_TYPE_GOSSIP_MENU: case CONDITION_SOURCE_TYPE_GOSSIP_MENU_OPTION: case CONDITION_SOURCE_TYPE_SMART_EVENT: - case CONDITION_SOURCE_TYPE_NONE: - default: break; + default: + TC_LOG_ERROR("sql.sql", "%s Invalid ConditionSourceType in `condition` table, ignoring.", cond->ToString().c_str()); + return false; } return true; @@ -1867,18 +1862,6 @@ bool ConditionMgr::isSourceTypeValid(Condition* cond) const bool ConditionMgr::isConditionTypeValid(Condition* cond) const { - if (cond->ConditionType == CONDITION_NONE || cond->ConditionType >= CONDITION_MAX) - { - TC_LOG_ERROR("sql.sql", "%s Invalid ConditionType in `condition` table, ignoring.", cond->ToString().c_str()); - return false; - } - - if (cond->ConditionTarget >= cond->GetMaxAvailableConditionTargets()) - { - TC_LOG_ERROR("sql.sql", "%s in `condition` table, has incorrect ConditionTarget set, ignoring.", cond->ToString(true).c_str()); - return false; - } - switch (cond->ConditionType) { case CONDITION_AURA: @@ -2302,10 +2285,6 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) const } break; } - case CONDITION_INSTANCE_INFO: - case CONDITION_AREAID: - case CONDITION_ALIVE: - break; case CONDITION_REALM_ACHIEVEMENT: { AchievementEntry const* achievement = sAchievementStore.LookupEntry(cond->ConditionValue1); @@ -2355,11 +2334,23 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) const return false; } break; + case CONDITION_INSTANCE_INFO: + case CONDITION_AREAID: + case CONDITION_ALIVE: case CONDITION_IN_WATER: + case CONDITION_TERRAIN_SWAP: case CONDITION_CHARMED: case CONDITION_TAXI: - default: break; + default: + TC_LOG_ERROR("sql.sql", "%s Invalid ConditionType in `condition` table, ignoring.", cond->ToString().c_str()); + return false; + } + + if (cond->ConditionTarget >= cond->GetMaxAvailableConditionTargets()) + { + TC_LOG_ERROR("sql.sql", "%s in `condition` table, has incorrect ConditionTarget set, ignoring.", cond->ToString(true).c_str()); + return false; } if (cond->ConditionValue1 && !StaticConditionTypeData[cond->ConditionType].HasConditionValue1) |
