Core/PacketIO: Remove duplicated areatrigger spline packet writer

Port From (https://github.com/TrinityCore/TrinityCore/commit/dc10ac722f5e059852785372f9ff91e205d730ce)
This commit is contained in:
Hondacrx
2025-08-18 09:37:00 -04:00
parent aee041198d
commit 9fad3e7752
4 changed files with 19 additions and 26 deletions
@@ -1086,7 +1086,7 @@ namespace Game.Entities
reshape.AreaTriggerSpline = new(); reshape.AreaTriggerSpline = new();
reshape.AreaTriggerSpline.ElapsedTimeForMovement = GetElapsedTimeForMovement(); reshape.AreaTriggerSpline.ElapsedTimeForMovement = GetElapsedTimeForMovement();
reshape.AreaTriggerSpline.TimeToTarget = timeToTarget; reshape.AreaTriggerSpline.TimeToTarget = timeToTarget;
reshape.AreaTriggerSpline.Points = _spline.GetPoints(); reshape.AreaTriggerSpline.Points = _spline;
SendMessageToSet(reshape, true); SendMessageToSet(reshape, true);
} }
+5 -12
View File
@@ -577,8 +577,6 @@ namespace Game.Entities
bool hasMorphCurveID = createProperties != null && createProperties.MorphCurveId != 0; bool hasMorphCurveID = createProperties != null && createProperties.MorphCurveId != 0;
bool hasFacingCurveID = createProperties != null && createProperties.FacingCurveId != 0; bool hasFacingCurveID = createProperties != null && createProperties.FacingCurveId != 0;
bool hasMoveCurveID = createProperties != null && createProperties.MoveCurveId != 0; bool hasMoveCurveID = createProperties != null && createProperties.MoveCurveId != 0;
bool hasAreaTriggerSpline = areaTrigger.HasSplines();
bool hasOrbit = areaTrigger.HasOrbit();
bool hasMovementScript = false; bool hasMovementScript = false;
bool hasPositionalSoundKitID = false; bool hasPositionalSoundKitID = false;
@@ -595,19 +593,14 @@ namespace Game.Entities
data.WriteBit(hasFacingCurveID); data.WriteBit(hasFacingCurveID);
data.WriteBit(hasMoveCurveID); data.WriteBit(hasMoveCurveID);
data.WriteBit(hasPositionalSoundKitID); data.WriteBit(hasPositionalSoundKitID);
data.WriteBit(hasAreaTriggerSpline); data.WriteBit(areaTrigger.HasSplines());
data.WriteBit(hasOrbit); data.WriteBit(areaTrigger.HasOrbit());
data.WriteBit(hasMovementScript); data.WriteBit(hasMovementScript);
data.FlushBits(); data.FlushBits();
if (hasAreaTriggerSpline) if (areaTrigger.HasSplines())
{ AreaTriggerSplineInfo.WriteAreaTriggerSpline(data, areaTrigger.GetTimeToTarget(), areaTrigger.GetElapsedTimeForMovement(), areaTrigger.GetSpline());
data.WriteUInt32(areaTrigger.GetTimeToTarget());
data.WriteUInt32(areaTrigger.GetElapsedTimeForMovement());
MovementExtensions.WriteCreateObjectAreaTriggerSpline(areaTrigger.GetSpline(), data);
}
if (hasTargetRollPitchYaw) if (hasTargetRollPitchYaw)
data.WriteVector3(areaTrigger.GetTargetRollPitchYaw()); data.WriteVector3(areaTrigger.GetTargetRollPitchYaw());
@@ -630,7 +623,7 @@ namespace Game.Entities
//if (hasMovementScript) //if (hasMovementScript)
// *data << *areaTrigger.GetMovementScript(); // AreaTriggerMovementScriptInfo // *data << *areaTrigger.GetMovementScript(); // AreaTriggerMovementScriptInfo
if (hasOrbit) if (areaTrigger.HasOrbit())
areaTrigger.GetOrbit().Write(data); areaTrigger.GetOrbit().Write(data);
} }
@@ -4,6 +4,7 @@
using Framework.Constants; using Framework.Constants;
using Framework.Dynamic; using Framework.Dynamic;
using Game.Entities; using Game.Entities;
using Game.Movement;
using System.Collections.Generic; using System.Collections.Generic;
using System.Numerics; using System.Numerics;
@@ -95,20 +96,26 @@ namespace Game.Networking.Packets
//Structs //Structs
class AreaTriggerSplineInfo class AreaTriggerSplineInfo
{ {
public void Write(WorldPacket data) public static void WriteAreaTriggerSpline(WorldPacket data, uint timeToTarget, uint elapsedTimeForMovement, Spline<float> areaTriggerSpline)
{ {
data.WriteUInt32(TimeToTarget); data.WriteUInt32(timeToTarget);
data.WriteUInt32(ElapsedTimeForMovement); data.WriteUInt32(elapsedTimeForMovement);
data.WriteBits(Points.Length, 16); var points = areaTriggerSpline.GetPoints();
data.WriteBits(points.Length, 16);
data.FlushBits(); data.FlushBits();
foreach (Vector3 point in Points) foreach (Vector3 point in points)
data.WriteVector3(point); data.WriteVector3(point);
} }
public void Write(WorldPacket data)
{
WriteAreaTriggerSpline(data, TimeToTarget, ElapsedTimeForMovement, Points);
}
public uint TimeToTarget; public uint TimeToTarget;
public uint ElapsedTimeForMovement; public uint ElapsedTimeForMovement;
public Vector3[] Points = new Vector3[0]; public Spline<float> Points;
} }
} }
@@ -342,13 +342,6 @@ namespace Game.Networking.Packets
} }
} }
public static void WriteCreateObjectAreaTriggerSpline(Spline<float> spline, WorldPacket data)
{
data.WriteBits(spline.GetPoints().Length, 16);
foreach (var point in spline.GetPoints())
data.WriteVector3(point);
}
public static void WriteMovementForceWithDirection(MovementForce movementForce, WorldPacket data, Position objectPosition = null) public static void WriteMovementForceWithDirection(MovementForce movementForce, WorldPacket data, Position objectPosition = null)
{ {
data.WritePackedGuid(movementForce.ID); data.WritePackedGuid(movementForce.ID);