aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Entities/AreaTrigger
diff options
context:
space:
mode:
authorShauren <shauren.trinity@gmail.com>2018-10-04 18:50:21 +0200
committerShauren <shauren.trinity@gmail.com>2018-11-05 00:00:34 +0100
commit0a779bd791fb63b2fc1663206279c7eaa9c02c6f (patch)
treecf13cec2eaab909646f278242981dd51349fddfd /src/server/game/Entities/AreaTrigger
parent7512ffb0587eccd8fbb2a2841900d572056dbae3 (diff)
Core/PacketIO: Updated packet structures to 8.0.1
Diffstat (limited to 'src/server/game/Entities/AreaTrigger')
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTrigger.cpp19
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp3
-rw-r--r--src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h12
3 files changed, 21 insertions, 13 deletions
diff --git a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
index b03bdab76ce..4e4e70e1b0a 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
+++ b/src/server/game/Entities/AreaTrigger/AreaTrigger.cpp
@@ -46,7 +46,8 @@ AreaTrigger::AreaTrigger() : WorldObject(false), MapObject(), _aurEff(nullptr),
m_objectType |= TYPEMASK_AREATRIGGER;
m_objectTypeId = TYPEID_AREATRIGGER;
- m_updateFlag = UPDATEFLAG_STATIONARY_POSITION | UPDATEFLAG_AREATRIGGER;
+ m_updateFlag.Stationary = true;
+ m_updateFlag.AreaTrigger = true;
m_valuesCount = AREATRIGGER_END;
_dynamicValuesCount = AREATRIGGER_DYNAMIC_END;
@@ -142,7 +143,7 @@ bool AreaTrigger::Create(uint32 spellMiscId, Unit* caster, Unit* target, SpellIn
{
AreaTriggerCircularMovementInfo cmi = GetMiscTemplate()->CircularMovementInfo;
if (target && GetTemplate()->HasFlag(AREATRIGGER_FLAG_HAS_ATTACHED))
- cmi.TargetGUID = target->GetGUID();
+ cmi.PathTarget = target->GetGUID();
else
cmi.Center = pos;
@@ -637,12 +638,12 @@ void AreaTrigger::InitSplines(std::vector<G3D::Vector3> splinePoints, uint32 tim
{
if (_reachedDestination)
{
- WorldPackets::AreaTrigger::AreaTriggerReShape reshape;
+ WorldPackets::AreaTrigger::AreaTriggerRePath reshape;
reshape.TriggerGUID = GetGUID();
SendMessageToSet(reshape.Write(), true);
}
- WorldPackets::AreaTrigger::AreaTriggerReShape reshape;
+ WorldPackets::AreaTrigger::AreaTriggerRePath reshape;
reshape.TriggerGUID = GetGUID();
reshape.AreaTriggerSpline = boost::in_place();
reshape.AreaTriggerSpline->ElapsedTimeForMovement = GetElapsedTimeForMovement();
@@ -664,7 +665,7 @@ bool AreaTrigger::HasSplines() const
void AreaTrigger::InitCircularMovement(AreaTriggerCircularMovementInfo const& cmi, uint32 timeToTarget)
{
// Circular movement requires either a center position or an attached unit
- ASSERT(cmi.Center.is_initialized() || cmi.TargetGUID.is_initialized());
+ ASSERT(cmi.Center.is_initialized() || cmi.PathTarget.is_initialized());
// should be sent in object create packets only
m_uint32Values[AREATRIGGER_TIME_TO_TARGET] = timeToTarget;
@@ -676,7 +677,7 @@ void AreaTrigger::InitCircularMovement(AreaTriggerCircularMovementInfo const& cm
if (IsInWorld())
{
- WorldPackets::AreaTrigger::AreaTriggerReShape reshape;
+ WorldPackets::AreaTrigger::AreaTriggerRePath reshape;
reshape.TriggerGUID = GetGUID();
reshape.AreaTriggerCircularMovement = _circularMovementInfo;
@@ -691,11 +692,11 @@ bool AreaTrigger::HasCircularMovement() const
Position const* AreaTrigger::GetCircularMovementCenterPosition() const
{
- if (_circularMovementInfo.is_initialized())
+ if (!_circularMovementInfo.is_initialized())
return nullptr;
- if (_circularMovementInfo->TargetGUID.is_initialized())
- if (WorldObject* center = ObjectAccessor::GetWorldObject(*this, *_circularMovementInfo->TargetGUID))
+ if (_circularMovementInfo->PathTarget.is_initialized())
+ if (WorldObject* center = ObjectAccessor::GetWorldObject(*this, *_circularMovementInfo->PathTarget))
return center;
if (_circularMovementInfo->Center.is_initialized())
diff --git a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp
index 633988b17b0..431c4cc7d57 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp
+++ b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.cpp
@@ -96,6 +96,9 @@ AreaTriggerMiscTemplate::AreaTriggerMiscTemplate()
MorphCurveId = 0;
FacingCurveId = 0;
+ AnimId = 0;
+ AnimKitId = 0;
+
DecalPropertiesId = 0;
TimeToTarget = 0;
diff --git a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
index 35be0f40f7f..2371c65cf09 100644
--- a/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
+++ b/src/server/game/Entities/AreaTrigger/AreaTriggerTemplate.h
@@ -36,10 +36,11 @@ enum AreaTriggerFlags
AREATRIGGER_FLAG_HAS_FOLLOWS_TERRAIN = 0x00010, // NYI
AREATRIGGER_FLAG_UNK1 = 0x00020,
AREATRIGGER_FLAG_HAS_TARGET_ROLL_PITCH_YAW = 0x00040, // NYI
- AREATRIGGER_FLAG_UNK2 = 0x00080,
+ AREATRIGGER_FLAG_HAS_ANIM_ID = 0x00080,
AREATRIGGER_FLAG_UNK3 = 0x00100,
- AREATRIGGER_FLAG_UNK4 = 0x00200,
- AREATRIGGER_FLAG_HAS_CIRCULAR_MOVEMENT = 0x00400
+ AREATRIGGER_FLAG_HAS_ANIM_KIT_ID = 0x00200,
+ AREATRIGGER_FLAG_HAS_CIRCULAR_MOVEMENT = 0x00400,
+ AREATRIGGER_FLAG_UNK5 = 0x00800,
};
enum AreaTriggerTypes
@@ -96,7 +97,7 @@ struct AreaTriggerScaleInfo
struct AreaTriggerCircularMovementInfo
{
- Optional<ObjectGuid> TargetGUID;
+ Optional<ObjectGuid> PathTarget;
Optional<TaggedPosition<Position::XYZ>> Center;
bool CounterClockwise = false;
bool CanLoop = false;
@@ -190,6 +191,9 @@ public:
uint32 MorphCurveId;
uint32 FacingCurveId;
+ int32 AnimId;
+ int32 AnimKitId;
+
uint32 DecalPropertiesId;
uint32 TimeToTarget;