Skip to content

Commit

Permalink
Print calculated distance and speed for areatrigger splines
Browse files Browse the repository at this point in the history
  • Loading branch information
Shauren committed Jan 8, 2025
1 parent ed60786 commit 1298b3a
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 3 deletions.
15 changes: 14 additions & 1 deletion WowPacketParserModule.V4_4_0_54481/Parsers/AreaTriggerHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ public static class AreaTriggerHandler
{
public static List<AreaTriggerCreatePropertiesSplinePoint> ReadAreaTriggerSpline(AreaTriggerCreateProperties createProperties, Packet packet, params object[] indexes)
{
packet.ReadInt32("TimeToTarget", indexes);
var moveTime = packet.ReadInt32("TimeToTarget", indexes);
packet.ReadInt32("ElapsedTimeForMovement", indexes);

packet.ResetBitReader();

var pointCount = (int)packet.ReadBits("PointsCount", 16, indexes);
var points = new List<AreaTriggerCreatePropertiesSplinePoint>(pointCount);
var distance = 0.0;
var prevPoint = new Vector3();

for (var i = 0u; i < pointCount; ++i)
{
Expand All @@ -32,6 +34,17 @@ public static List<AreaTriggerCreatePropertiesSplinePoint> ReadAreaTriggerSpline
Z = point.Z
});
}

if (i > 0)
distance += Vector3.GetDistance(prevPoint, point);

prevPoint = point;
}

if (distance > 0)
{
packet.AddValue("Computed Distance", distance, indexes);
packet.AddValue("Computed Speed", (distance / moveTime) * 1000, indexes);
}

return points;
Expand Down
17 changes: 15 additions & 2 deletions WowPacketParserModule.V7_0_3_22248/Parsers/AreaTriggerHandler.cs
Original file line number Diff line number Diff line change
Expand Up @@ -10,13 +10,15 @@ public static class AreaTriggerHandler
{
public static List<AreaTriggerCreatePropertiesSplinePoint> ReadAreaTriggerSpline(AreaTriggerCreateProperties createProperties, Packet packet, params object[] indexes)
{
packet.ReadInt32("TimeToTarget", indexes);
var moveTime = packet.ReadInt32("TimeToTarget", indexes);
packet.ReadInt32("ElapsedTimeForMovement", indexes);

packet.ResetBitReader();

var pointCount = (int) packet.ReadBits("PointsCount", 16, indexes);
var pointCount = (int)packet.ReadBits("PointsCount", 16, indexes);
var points = new List<AreaTriggerCreatePropertiesSplinePoint>(pointCount);
var distance = 0.0;
var prevPoint = new Vector3();

for (var i = 0u; i < pointCount; ++i)
{
Expand All @@ -32,6 +34,17 @@ public static List<AreaTriggerCreatePropertiesSplinePoint> ReadAreaTriggerSpline
Z = point.Z
});
}

if (i > 0)
distance += Vector3.GetDistance(prevPoint, point);

prevPoint = point;
}

if (distance > 0)
{
packet.AddValue("Computed Distance", distance, indexes);
packet.AddValue("Computed Speed", (distance / moveTime) * 1000, indexes);
}

return points;
Expand Down

0 comments on commit 1298b3a

Please sign in to comment.