aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/AreaTrigger
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2021-12-04 23:47:40 +0100
committerShauren <shauren.trinity@gmail.com>2021-12-04 23:47:40 +0100
commit77ddb4da816b4dfc7ff03b79b88b5ca80918bc2d (patch)
tree5895af04278b84f9e56af742ac92c8e5b0cf84ac /src/server/game/Entities/AreaTrigger
parent759d2fdd862eb86d022e79adcd3a90374fef58e4 (diff)
Core/AreaTriggers: Move ScriptName from areatrigger_template to areatrigger_create_properties and areatrigger tables
Diffstat (limited to 'src/server/game/Entities/AreaTrigger')
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTrigger.cpp10
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTrigger.h2
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp3
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h5
4 files changed, 17 insertions, 3 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
index a3720060d6f..e3902e82a0f 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
+++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
@@ -227,6 +227,8 @@ AreaTrigger* AreaTrigger::CreateAreaTrigger(uint32 areaTriggerCreatePropertiesId
bool AreaTrigger::LoadFromDB(ObjectGuid::LowType spawnId, Map* map, bool /*addToMap*/, bool /*allowDuplicate*/)
{
+ _spawnId = spawnId;
+
AreaTriggerSpawn const* position = sAreaTriggerDataStore->GetAreaTriggerSpawn(spawnId);
if (!position)
return false;
@@ -512,7 +514,13 @@ AreaTriggerTemplate const* AreaTrigger::GetTemplate() const
uint32 AreaTrigger::GetScriptId() const
{
- return GetTemplate() ? GetTemplate()->ScriptId : 0;
+ if (_spawnId)
+ return ASSERT_NOTNULL(sAreaTriggerDataStore->GetAreaTriggerSpawn(_spawnId))->ScriptId;
+
+ if (GetCreateProperties())
+ return GetCreateProperties()->ScriptId;
+
+ return 0;
}
Unit* AreaTrigger::GetCaster() const
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.h b/src/server/game/Entities/AreaTrigger/AreaTrigger.h
index f6bdaf8f583..094d9b4425b 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTrigger.h
+++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.h
@@ -142,6 +142,8 @@ class TC_GAME_API AreaTrigger : public WorldObject, public GridObject<AreaTrigge
void DebugVisualizePosition(); // Debug purpose only
+ ObjectGuid::LowType _spawnId;
+
ObjectGuid _targetGuid;
AuraEffect const* _aurEff;
diff --git a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp
index 4458af15997..c0a623a4b52 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp
+++ b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp
@@ -53,7 +53,6 @@ AreaTriggerTemplate::AreaTriggerTemplate()
{
Id = { 0, false };
Flags = 0;
- ScriptId = 0;
}
AreaTriggerTemplate::~AreaTriggerTemplate()
@@ -85,6 +84,8 @@ AreaTriggerCreateProperties::AreaTriggerCreateProperties()
ExtraScale.Data.Structured.OverrideActive = 1;
Template = nullptr;
+
+ ScriptId = 0;
}
AreaTriggerCreateProperties::~AreaTriggerCreateProperties()
diff --git a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
index 73abbbcc21b..8630075ac42 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
+++ b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
@@ -193,7 +193,6 @@ public:
AreaTriggerId Id;
uint32 Flags;
- uint32 ScriptId;
std::vector<AreaTriggerAction> Actions;
};
@@ -231,6 +230,8 @@ public:
std::vector<Position> SplinePoints;
Optional<AreaTriggerOrbitInfo> OrbitInfo;
+
+ uint32 ScriptId;
};
struct AreaTriggerSpawn
@@ -243,6 +244,8 @@ struct AreaTriggerSpawn
uint8 PhaseUseFlags = 0;
AreaTriggerShapeInfo Shape;
+
+ uint32 ScriptId = 0;
};
#endif