aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/AI/SmartScripts
diff options
context:
space:
mode:
authorQAston <qaston@gmail.com>2012-02-10 23:40:38 +0100
committerQAston <qaston@gmail.com>2012-02-10 23:42:08 +0100
commitce4a4ffe50a26fa2040d4af3933621b66813488d (patch)
treeca1afb50445232f1c7e7a30862038c31024d8934 /src/server/game/AI/SmartScripts
parent8c2526e7d0f8cd516e0a3d3ebd6e554774c76c7b (diff)
Core/Db/Conditions: Add ContidionTarget column which allows selection of objects which will be checked by condition, depending on SourceTypeOrReferenceId.
So far usable only with CONDITION_SOURCE_TYPE_SPELL: ContidionTarget = 0 - check caster ContidionTarget = 1 - check explicit target
Diffstat (limited to 'src/server/game/AI/SmartScripts')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp12
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.h12
2 files changed, 13 insertions, 11 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index 42a23236182..01f301cc85d 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -2783,6 +2783,18 @@ void SmartScript::InstallEvents()
}
}
+bool SmartScript::ConditionValid(Unit* u, int32 c, int32 v1, int32 v2, int32 v3)
+{
+ if (c == 0) return true;
+ if (!u || !u->ToPlayer()) return false;
+ Condition cond;
+ cond.mConditionType = ConditionType(uint32(c));
+ cond.mConditionValue1 = uint32(v1);
+ cond.mConditionValue1 = uint32(v2);
+ cond.mConditionValue1 = uint32(v3);
+ return cond.Meets(ConditionSourceInfo(u->ToPlayer()));
+}
+
void SmartScript::OnUpdate(uint32 const diff)
{
if ((mScriptType == SMART_SCRIPT_TYPE_CREATURE || mScriptType == SMART_SCRIPT_TYPE_GAMEOBJECT) && !GetBaseObject())
diff --git a/src/server/game/AI/SmartScripts/SmartScript.h b/src/server/game/AI/SmartScripts/SmartScript.h
index fec38a690ed..f7524582ab7 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.h
+++ b/src/server/game/AI/SmartScripts/SmartScript.h
@@ -84,17 +84,7 @@ class SmartScript
return obj && obj->GetTypeId() == TYPEID_GAMEOBJECT;
}
- bool ConditionValid(Unit* u, int32 c, int32 v1, int32 v2, int32 v3)
- {
- if (c == 0) return true;
- if (!u || !u->ToPlayer()) return false;
- Condition cond;
- cond.mConditionType = ConditionType(uint32(c));
- cond.mConditionValue1 = uint32(v1);
- cond.mConditionValue1 = uint32(v2);
- cond.mConditionValue1 = uint32(v3);
- return cond.Meets(u->ToPlayer());
- }
+ bool ConditionValid(Unit* u, int32 c, int32 v1, int32 v2, int32 v3);
void OnUpdate(const uint32 diff);
void OnMoveInLineOfSight(Unit* who);