aboutsummaryrefslogtreecommitdiff
path: root/src/server/game/Server
diff options
context:
space:
mode:
authorTraesh <Traesh@users.noreply.github.com>2018-08-05 18:57:35 +0200
committerjoschiwald <joschiwald.trinity@gmail.com>2018-08-05 18:57:35 +0200
commita8a071e9d9513b951a61b423ddee612b9d29add8 (patch)
treed8f9922d48192ab54b28f7295ed76a5aebf67303 /src/server/game/Server
parentd520854912af4e40aca67c30a37a6847c13256af (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.cpp38
-rw-r--r--src/server/game/Server/Packets/AreaTriggerPackets.h21
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__