diff options
Diffstat (limited to 'src')
| -rwxr-xr-x | src/server/game/Conditions/ConditionMgr.cpp | 17 | ||||
| -rwxr-xr-x | src/server/game/Conditions/ConditionMgr.h | 2 | 
2 files changed, 6 insertions, 13 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp index 7628906f0fc..7ee286fb301 100755 --- a/src/server/game/Conditions/ConditionMgr.cpp +++ b/src/server/game/Conditions/ConditionMgr.cpp @@ -279,16 +279,9 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)                  condMeets = player->HasTitle(ConditionValue1);              break;          } -        case CONDITION_MAP_DIFFICULTY: +        case CONDITION_SPAWNMASK:          { -            if (Unit* unit = object->ToUnit()) -            { -                if (unit->GetMap()->IsRaid()) -                    if (unit->GetMap()->Is25ManRaid() != ((ConditionValue1 & RAID_DIFFICULTY_MASK_25MAN) != 0)) -                        return false; - -                condMeets = unit->GetMap()->GetSpawnMode() >= ConditionValue1; -            } +            condMeets = ((1 << object->GetMap()->GetSpawnMode()) & ConditionValue1);              break;          }          default: @@ -442,7 +435,7 @@ uint32 Condition::GetSearcherTypeMaskForCondition()          case CONDITION_TITLE:              mask |= GRID_MAP_TYPE_MASK_PLAYER;              break; -        case CONDITION_MAP_DIFFICULTY: +        case CONDITION_SPAWNMASK:              mask |= GRID_MAP_TYPE_MASK_ALL;              break;          default: @@ -1857,9 +1850,9 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)              }              break;          } -        case CONDITION_MAP_DIFFICULTY: +        case CONDITION_SPAWNMASK:          { -            if (cond->ConditionValue1 >= MAX_DIFFICULTY) +            if (cond->ConditionValue1 > SPAWNMASK_RAID_ALL)              {                  sLog->outError(LOG_FILTER_SQL, "Map Difficulty condition has non existing map difficulty in value1 (%u), skipped", cond->ConditionValue1);                  return false; diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h index 3b0e6cc69f3..185d33ac681 100755 --- a/src/server/game/Conditions/ConditionMgr.h +++ b/src/server/game/Conditions/ConditionMgr.h @@ -49,7 +49,7 @@ enum ConditionTypes      CONDITION_RACE                  = 16,                   // race             0              0                  true if player's race is equal to race      CONDITION_ACHIEVEMENT           = 17,                   // achievement_id   0              0                  true if achievement is complete      CONDITION_TITLE                 = 18,                   // title id         0              0                  true if player has title -    CONDITION_MAP_DIFFICULTY        = 19,                   // difficulty       0              0 +    CONDITION_SPAWNMASK             = 19,                   // spawnMask        0              0      CONDITION_UNUSED_20             = 20,                   //      CONDITION_UNUSED_21             = 21,                   //      CONDITION_MAPID                 = 22,                   // map_id           0              0                  true if in map_id  | 
