aboutsummaryrefslogtreecommitdiff
path: root/src/server/game
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2014-09-14 23:23:23 +0200
committerShauren <shauren.trinity@gmail.com>2014-09-14 23:23:23 +0200
commit56f46e3ce543af8ffdc708eaa4ceecc173a5eb29 (patch)
tree90922cd7f1177a7fb6601812f7e9212765a89765 /src/server/game
parentd72c4085de0b2ac0ff3bee24a5dae80c0d5dac2c (diff)
Scripts
* Introduced GetGuidData/SetGuidData to store guids in instance scripts (GetData64/SetData64 are still there) * CONDITION_INSTANCE_INFO: Changed existing DATA64 condition to GUID_DATA to preserve current use of this instance info type (most/all assume the data is a guid) and moved DATA64 to a different value - no db changes needed * Fixed compile in boss scripts starting with letter A
Diffstat (limited to 'src/server/game')
-rw-r--r--src/server/game/AI/SmartScripts/SmartScript.cpp2
-rw-r--r--src/server/game/Conditions/ConditionMgr.cpp7
-rw-r--r--src/server/game/Conditions/ConditionMgr.h5
-rw-r--r--src/server/game/Maps/ZoneScript.h3
4 files changed, 12 insertions, 5 deletions
diff --git a/src/server/game/AI/SmartScripts/SmartScript.cpp b/src/server/game/AI/SmartScripts/SmartScript.cpp
index acac8663122..1e60cde90d0 100644
--- a/src/server/game/AI/SmartScripts/SmartScript.cpp
+++ b/src/server/game/AI/SmartScripts/SmartScript.cpp
@@ -956,7 +956,7 @@ void SmartScript::ProcessAction(SmartScriptHolder& e, Unit* unit, uint32 var0, u
if (!targets)
break;
- instance->SetData64(e.action.setInstanceData64.field, targets->front()->GetGUID().GetRawValue());
+ instance->SetGuidData(e.action.setInstanceData64.field, targets->front()->GetGUID());
TC_LOG_DEBUG("scripts.ai", "SmartScript::ProcessAction: SMART_ACTION_SET_INST_DATA64: Field: %u, data: " UI64FMTD,
e.action.setInstanceData64.field, targets->front()->GetGUID());
diff --git a/src/server/game/Conditions/ConditionMgr.cpp b/src/server/game/Conditions/ConditionMgr.cpp
index 03051451193..094a8345395 100644
--- a/src/server/game/Conditions/ConditionMgr.cpp
+++ b/src/server/game/Conditions/ConditionMgr.cpp
@@ -166,12 +166,15 @@ bool Condition::Meets(ConditionSourceInfo& sourceInfo)
case INSTANCE_INFO_DATA:
condMeets = instance->GetData(ConditionValue1) == ConditionValue2;
break;
- case INSTANCE_INFO_DATA64:
- condMeets = instance->GetData64(ConditionValue1) == ConditionValue2;
+ case INSTANCE_INFO_GUID_DATA:
+ condMeets = instance->GetGuidData(ConditionValue1) == ObjectGuid(uint64(ConditionValue2));
break;
case INSTANCE_INFO_BOSS_STATE:
condMeets = instance->GetBossState(ConditionValue1) == EncounterState(ConditionValue2);
break;
+ case INSTANCE_INFO_DATA64:
+ condMeets = instance->GetData64(ConditionValue1) == ConditionValue2;
+ break;
}
}
}
diff --git a/src/server/game/Conditions/ConditionMgr.h b/src/server/game/Conditions/ConditionMgr.h
index ff508210fb1..24e44c662ba 100644
--- a/src/server/game/Conditions/ConditionMgr.h
+++ b/src/server/game/Conditions/ConditionMgr.h
@@ -146,8 +146,9 @@ enum RelationType
enum InstanceInfo
{
INSTANCE_INFO_DATA = 0,
- INSTANCE_INFO_DATA64,
- INSTANCE_INFO_BOSS_STATE
+ INSTANCE_INFO_GUID_DATA,
+ INSTANCE_INFO_BOSS_STATE,
+ INSTANCE_INFO_DATA64
};
enum MaxConditionTargets
diff --git a/src/server/game/Maps/ZoneScript.h b/src/server/game/Maps/ZoneScript.h
index 5925806db75..9b1f7622b54 100644
--- a/src/server/game/Maps/ZoneScript.h
+++ b/src/server/game/Maps/ZoneScript.h
@@ -41,6 +41,9 @@ class ZoneScript
virtual void OnUnitDeath(Unit*) { }
//All-purpose data storage 64 bit
+ virtual ObjectGuid GetGuidData(uint32 /*DataId*/) const { return ObjectGuid::Empty; }
+ virtual void SetGuidData(uint32 /*DataId*/, ObjectGuid /*Value*/) { }
+
virtual uint64 GetData64(uint32 /*DataId*/) const { return 0; }
virtual void SetData64(uint32 /*DataId*/, uint64 /*Value*/) { }