aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Conditions/ConditionMgr.cpp
diff options
context:
space:
mode:
authorKittnz <frederik156@hotmail.com>2015-04-18 17:11:03 +0200
committerKittnz <frederik156@hotmail.com>2015-04-18 17:11:03 +0200
commit5f8db047614a492dd178325b429839609d9f7fc5 (patch)
tree2f5d89023cc7056b9c7d373cb35963b6c735493f /src/server/game/Conditions/ConditionMgr.cpp
parentfa5931189dfe0e6aec8b7fd58075216077fff8c0 (diff)
Core/Condition: Add In Water Condition
Updates #7019
Diffstat (limited to 'src/server/game/Conditions/ConditionMgr.cpp')
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 8400e4cee00..25fbef2ca86 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -100,7 +100,8 @@ ConditionMgr::ConditionTypeInfo const ConditionMgr::StaticConditionTypeData[COND
{ "Alive", false, false, false },
{ "Health Value", true, true, false },
{ "Health Pct", true, true, false },
- { "Realm Achievement", true, false, false }
+ { "Realm Achievement", true, false, false },
+ { "In Water", false, false, false }
};
// Checks if object meets the condition
@@ -424,6 +425,12 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
condMeets = true;
break;
}
+ case CONDITION_IN_WATER:
+ {
+ if (Unit* unit = object->ToUnit())
+ condMeets = unit->IsInWater();
+ break;
+ }
default:
condMeets = false;
break;
@@ -591,6 +598,9 @@ uint32 Condition::GetSearcherTypeMaskForCondition()
case CONDITION_REALM_ACHIEVEMENT:
mask |= GRID_MAP_TYPE_MASK_ALL;
break;
+ case CONDITION_IN_WATER:
+ mask |= GRID_MAP_TYPE_MASK_CREATURE | GRID_MAP_TYPE_MASK_PLAYER;
+ break;
default:
ASSERT(false && "Condition::GetSearcherTypeMaskForCondition - missing condition handling!");
break;
@@ -2077,6 +2087,8 @@ bool ConditionMgr::isConditionTypeValid(Condition* cond)
}
break;
}
+ case CONDITION_IN_WATER:
+ break;
default:
break;
}