diff options
Diffstat (limited to 'src/server/game/Conditions/ConditionMgr.cpp')
| -rw-r--r-- | src/server/game/Conditions/ConditionMgr.cpp | 21 |
1 files changed, 13 insertions, 8 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 74beed534c6..0217363862e 100644 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -295,9 +295,9 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo) condMeets = ConditionValue2 == sWorld->getWorldState(ConditionValue1); break; } - case CONDITION_PHASEMASK: + case CONDITION_PHASEID: { - condMeets = object->GetPhaseMask() & ConditionValue1; + condMeets = object->IsInPhase(ConditionValue1); break; } case CONDITION_TITLE: @@ -474,7 +474,7 @@ uint32 Condition::GetSearcherTypeMaskForCondition() case CONDITION_WORLD_STATE: mask |= GRID_MAP_TYPE_MASK_ALL; break; - case CONDITION_PHASEMASK: + case CONDITION_PHASEID: mask |= GRID_MAP_TYPE_MASK_ALL; break; case CONDITION_TITLE: @@ -1512,11 +1512,11 @@ bool ConditionMgr::isSourceTypeValid(Condition* cond) } break; case CONDITION_SOURCE_TYPE_PHASE_DEFINITION: - if (!PhaseMgr::IsConditionTypeSupported(cond->ConditionType)) + /*if (!PhaseMgr::IsConditionTypeSupported(cond->ConditionType)) { TC_LOG_ERROR("sql.sql", "Condition source type `CONDITION_SOURCE_TYPE_PHASE_DEFINITION` does not support condition type %u, ignoring.", cond->ConditionType); return false; - } + }*/ break; case CONDITION_SOURCE_TYPE_NPC_VENDOR: { @@ -1995,12 +1995,17 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond) TC_LOG_ERROR("sql.sql", "World state condition has useless data in value3 (%u)!", cond->ConditionValue3); break; } - case CONDITION_PHASEMASK: + case CONDITION_PHASEID: { + if (!sPhaseStore.LookupEntry(cond->ConditionValue1)) + { + TC_LOG_ERROR("sql.sql", "Phase condition has nonexistent phaseid in value1 (%u), skipped", cond->ConditionValue1); + return false; + } if (cond->ConditionValue2) - TC_LOG_ERROR("sql.sql", "Phasemask condition has useless data in value2 (%u)!", cond->ConditionValue2); + TC_LOG_ERROR("sql.sql", "Phase condition has useless data in value2 (%u)!", cond->ConditionValue2); if (cond->ConditionValue3) - TC_LOG_ERROR("sql.sql", "Phasemask condition has useless data in value3 (%u)!", cond->ConditionValue3); + TC_LOG_ERROR("sql.sql", "Phase condition has useless data in value3 (%u)!", cond->ConditionValue3); break; } case CONDITION_TITLE: |
