diff options
| author | Traesh <Traesh@users.noreply.github.com> | 2018-08-05 18:57:35 +0200 |
|---|---|---|
| committer | joschiwald <joschiwald.trinity@gmail.com> | 2018-08-05 18:57:35 +0200 |
| commit | a8a071e9d9513b951a61b423ddee612b9d29add8 (patch) | |
| tree | d8f9922d48192ab54b28f7295ed76a5aebf67303 /src/server/game/Server | |
| parent | d520854912af4e40aca67c30a37a6847c13256af (diff) | |
Core/AreaTrigger: handle AREATRIGGER_FLAG_HAS_CIRCULAR_MOVEMENT (#21778)
Diffstat (limited to 'src/server/game/Server')
| -rw-r--r-- | src/server/game/Server/Packets/AreaTriggerPackets.cpp | 38 | ||||
| -rw-r--r-- | src/server/game/Server/Packets/AreaTriggerPackets.h | 21 |
2 files changed, 23 insertions, 36 deletions
diff --git a/src/server/game/Server/Packets/AreaTriggerPackets.cpp b/src/server/game/Server/Packets/AreaTriggerPackets.cpp index d546c6bb6b3..f99d9831f91 100644 --- a/src/server/game/Server/Packets/AreaTriggerPackets.cpp +++ b/src/server/game/Server/Packets/AreaTriggerPackets.cpp @@ -31,26 +31,26 @@ ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::AreaTrigger::AreaTriggerS return data; } -ByteBuffer& operator<<(ByteBuffer& data, WorldPackets::AreaTrigger::AreaTriggerUnkTypeInfo const& areaTriggerUnkType) +ByteBuffer& operator<<(ByteBuffer& data, AreaTriggerCircularMovementInfo const& areaTriggerCircularMovement) { - data.WriteBit(areaTriggerUnkType.AreaTriggerUnkGUID.is_initialized()); - data.WriteBit(areaTriggerUnkType.Center.is_initialized()); - data.WriteBit(areaTriggerUnkType.UnkBit1); - data.WriteBit(areaTriggerUnkType.UnkBit2); + data.WriteBit(areaTriggerCircularMovement.TargetGUID.is_initialized()); + data.WriteBit(areaTriggerCircularMovement.Center.is_initialized()); + data.WriteBit(areaTriggerCircularMovement.CounterClockwise); + data.WriteBit(areaTriggerCircularMovement.CanLoop); - data << uint32(areaTriggerUnkType.UnkUInt1); - data << int32(areaTriggerUnkType.UnkInt1); - data << uint32(areaTriggerUnkType.UnkUInt2); - data << float(areaTriggerUnkType.Radius); - data << float(areaTriggerUnkType.BlendFromRadius); - data << float(areaTriggerUnkType.InitialAngel); - data << float(areaTriggerUnkType.ZOffset); + data << uint32(areaTriggerCircularMovement.TimeToTarget); + data << int32(areaTriggerCircularMovement.ElapsedTimeForMovement); + data << uint32(areaTriggerCircularMovement.StartDelay); + data << float(areaTriggerCircularMovement.Radius); + data << float(areaTriggerCircularMovement.BlendFromRadius); + data << float(areaTriggerCircularMovement.InitialAngle); + data << float(areaTriggerCircularMovement.ZOffset); - if (areaTriggerUnkType.AreaTriggerUnkGUID) - data << *areaTriggerUnkType.AreaTriggerUnkGUID; + if (areaTriggerCircularMovement.TargetGUID) + data << *areaTriggerCircularMovement.TargetGUID; - if (areaTriggerUnkType.Center) - data << *areaTriggerUnkType.Center; + if (areaTriggerCircularMovement.Center) + data << *areaTriggerCircularMovement.Center; return data; } @@ -84,14 +84,14 @@ WorldPacket const* WorldPackets::AreaTrigger::AreaTriggerReShape::Write() _worldPacket << TriggerGUID; _worldPacket.WriteBit(AreaTriggerSpline.is_initialized()); - _worldPacket.WriteBit(AreaTriggerUnkType.is_initialized()); + _worldPacket.WriteBit(AreaTriggerCircularMovement.is_initialized()); _worldPacket.FlushBits(); if (AreaTriggerSpline) _worldPacket << *AreaTriggerSpline; - if (AreaTriggerUnkType) - _worldPacket << *AreaTriggerUnkType; + if (AreaTriggerCircularMovement) + _worldPacket << *AreaTriggerCircularMovement; return &_worldPacket; } diff --git a/src/server/game/Server/Packets/AreaTriggerPackets.h b/src/server/game/Server/Packets/AreaTriggerPackets.h index 4181bad933c..e3872493481 100644 --- a/src/server/game/Server/Packets/AreaTriggerPackets.h +++ b/src/server/game/Server/Packets/AreaTriggerPackets.h @@ -19,9 +19,9 @@ #define AreaTriggerPackets_h__ #include "Packet.h" +#include "AreaTriggerTemplate.h" #include "ObjectGuid.h" #include "Optional.h" -#include "Position.h" namespace WorldPackets { @@ -34,21 +34,6 @@ namespace WorldPackets std::vector<TaggedPosition<Position::XYZ>> Points; }; - struct AreaTriggerUnkTypeInfo - { - Optional<ObjectGuid> AreaTriggerUnkGUID; - Optional<TaggedPosition<Position::XYZ>> Center; - bool UnkBit1 = false; - bool UnkBit2 = false; - uint32 UnkUInt1 = 0; - int32 UnkInt1 = 0; - uint32 UnkUInt2 = 0; - float Radius = 0.0; - float BlendFromRadius = 0.0f; - float InitialAngel = 0.0f; - float ZOffset = 0.0f; - }; - class AreaTrigger final : public ClientPacket { public: @@ -99,10 +84,12 @@ namespace WorldPackets WorldPacket const* Write() override; Optional<AreaTriggerSplineInfo> AreaTriggerSpline; - Optional<AreaTriggerUnkTypeInfo> AreaTriggerUnkType; + Optional<AreaTriggerCircularMovementInfo> AreaTriggerCircularMovement; ObjectGuid TriggerGUID; }; } } +ByteBuffer& operator<<(ByteBuffer& data, AreaTriggerCircularMovementInfo const& areaTriggerCircularMovement); + #endif // AreaTriggerPackets_h__ |
