Skip to content

Commit 74b8b0e

Browse files
committed
Update areatrigger shape enum
1 parent 82cee2e commit 74b8b0e

14 files changed

Lines changed: 445 additions & 516 deletions

File tree

‎WowPacketParser/Enums/AreaTriggerType.cs‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,10 +4,12 @@ public enum AreaTriggerType : byte
44
{
55
Sphere = 0,
66
Box = 1,
7-
Unk = 2,
7+
Quad2D = 2,
88
Polygon = 3,
99
Cylinder = 4,
10-
Disk = 5,
11-
BoundedPlane = 6,
10+
Script = 5,
11+
FromUnit = 6,
12+
Disk = 7,
13+
BoundedPlane = 8,
1214
}
1315
}

‎WowPacketParser/Store/Objects/AreaTriggerCreateProperties.cs‎

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -217,42 +217,39 @@ public override void LoadValuesFromUpdateFields()
217217
if (AreaTriggerData.FacingCurveId != null)
218218
FacingCurveId = (int)AreaTriggerData.FacingCurveId;
219219

220+
if (AreaTriggerData.ShapeType != null)
221+
Shape = (byte)AreaTriggerData.ShapeType;
222+
220223
if (AreaTriggerData.Sphere != null)
221224
{
222-
Shape = (byte)AreaTriggerType.Sphere;
223225
ShapeData = [AreaTriggerData.Sphere.Radius, AreaTriggerData.Sphere.RadiusTarget, 0, 0, 0, 0, 0, 0];
224226
}
225227
else if (AreaTriggerData.Box != null)
226228
{
227-
Shape = (byte)AreaTriggerType.Box;
228229
ShapeData = [AreaTriggerData.Box.Extents?.X, AreaTriggerData.Box.Extents?.Y, AreaTriggerData.Box.Extents?.Z,
229230
AreaTriggerData.Box.ExtentsTarget?.X, AreaTriggerData.Box.ExtentsTarget?.Y, AreaTriggerData.Box.ExtentsTarget?.Z,
230231
0, 0];
231232
}
232233
else if (AreaTriggerData.Polygon != null)
233234
{
234-
Shape = (byte)AreaTriggerType.Polygon;
235235
ShapeData = [AreaTriggerData.Polygon.Height, AreaTriggerData.Polygon.HeightTarget, 0, 0, 0, 0, 0, 0];
236236
}
237237
else if (AreaTriggerData.Cylinder != null)
238238
{
239-
Shape = (byte)AreaTriggerType.Cylinder;
240239
ShapeData = [AreaTriggerData.Cylinder.Radius, AreaTriggerData.Cylinder.RadiusTarget,
241240
AreaTriggerData.Cylinder.Height, AreaTriggerData.Cylinder.HeightTarget,
242241
AreaTriggerData.Cylinder.LocationZOffset, AreaTriggerData.Cylinder.LocationZOffsetTarget,
243242
0, 0];
244243
}
245244
else if (AreaTriggerData.Disk != null)
246245
{
247-
Shape = (byte)AreaTriggerType.Disk;
248246
ShapeData = [AreaTriggerData.Disk.InnerRadius, AreaTriggerData.Disk.InnerRadiusTarget,
249247
AreaTriggerData.Disk.OuterRadius, AreaTriggerData.Disk.OuterRadiusTarget,
250248
AreaTriggerData.Disk.Height, AreaTriggerData.Disk.HeightTarget,
251249
AreaTriggerData.Disk.LocationZOffset, AreaTriggerData.Disk.LocationZOffsetTarget];
252250
}
253251
else if (AreaTriggerData.BoundedPlane != null)
254252
{
255-
Shape = (byte)AreaTriggerType.BoundedPlane;
256253
ShapeData = [AreaTriggerData.BoundedPlane.ExtentsY, AreaTriggerData.BoundedPlane.ExtentsZ,
257254
AreaTriggerData.BoundedPlane.ExtentsTargetY, AreaTriggerData.BoundedPlane.ExtentsTargetZ,
258255
0, 0, 0, 0];

‎WowPacketParser/Store/Objects/UpdateFields/IAreaTriggerData.cs‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@ public interface IAreaTriggerData
2222
IAreaTriggerOrbit Orbit => null;
2323
float? ZOffset => null;
2424

25+
byte? ShapeType => null;
2526
IAreaTriggerSphere Sphere => null;
2627
IAreaTriggerBox Box => null;
2728
IAreaTriggerPolygon Polygon => null;

‎WowPacketParserModule.V11_0_0_55666/Parsers/UpdateHandler.cs‎

Lines changed: 11 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -841,18 +841,15 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
841841

842842
createProperties.RollPitchYaw = packet.ReadVector3("RollPitchYaw", index);
843843

844-
AreaTriggerType type = AreaTriggerType.Sphere;
845-
switch (packet.ReadSByte())
844+
areaTriggerTemplate.Type = (byte)packet.ReadSByteE<AreaTriggerType>("Type", index);
845+
switch ((AreaTriggerType)areaTriggerTemplate.Type)
846846
{
847-
case 0:
848-
type = AreaTriggerType.Sphere;
847+
case AreaTriggerType.Sphere:
849848
areaTriggerTemplate.Data[0] = packet.ReadSingle("Radius", index);
850849
areaTriggerTemplate.Data[1] = packet.ReadSingle("RadiusTarget", index);
851850
break;
852-
case 1:
851+
case AreaTriggerType.Box:
853852
{
854-
type = AreaTriggerType.Box;
855-
856853
Vector3 extents = packet.ReadVector3("Extents", index);
857854
areaTriggerTemplate.Data[0] = extents.X;
858855
areaTriggerTemplate.Data[1] = extents.Y;
@@ -864,13 +861,11 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
864861
areaTriggerTemplate.Data[5] = extentsTarget.Z;
865862
break;
866863
}
867-
case 2:
868-
case 3:
869-
case 5:
870-
case 6:
864+
case AreaTriggerType.Quad2D:
865+
case AreaTriggerType.Polygon:
866+
case AreaTriggerType.Script:
867+
case AreaTriggerType.FromUnit:
871868
{
872-
type = AreaTriggerType.Polygon;
873-
874869
var verticesCount = packet.ReadUInt32("VerticesCount", index);
875870
var verticesTargetCount = packet.ReadUInt32("VerticesTargetCount", index);
876871

@@ -908,17 +903,15 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
908903

909904
break;
910905
}
911-
case 4:
912-
type = AreaTriggerType.Cylinder;
906+
case AreaTriggerType.Cylinder:
913907
areaTriggerTemplate.Data[0] = packet.ReadSingle("Radius", index);
914908
areaTriggerTemplate.Data[1] = packet.ReadSingle("RadiusTarget", index);
915909
areaTriggerTemplate.Data[2] = packet.ReadSingle("Height", index);
916910
areaTriggerTemplate.Data[3] = packet.ReadSingle("HeightTarget", index);
917911
areaTriggerTemplate.Data[4] = packet.ReadSingle("LocationZOffset", index);
918912
areaTriggerTemplate.Data[5] = packet.ReadSingle("LocationZOffsetTarget", index);
919913
break;
920-
case 7:
921-
type = AreaTriggerType.Disk;
914+
case AreaTriggerType.Disk:
922915
areaTriggerTemplate.Data[0] = packet.ReadSingle("InnerRadius", index);
923916
areaTriggerTemplate.Data[1] = packet.ReadSingle("InnerRadiusTarget", index);
924917
areaTriggerTemplate.Data[2] = packet.ReadSingle("OuterRadius", index);
@@ -928,10 +921,8 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
928921
areaTriggerTemplate.Data[6] = packet.ReadSingle("LocationZOffset", index);
929922
areaTriggerTemplate.Data[7] = packet.ReadSingle("LocationZOffsetTarget", index);
930923
break;
931-
case 8:
924+
case AreaTriggerType.BoundedPlane:
932925
{
933-
type = AreaTriggerType.BoundedPlane;
934-
935926
Vector2 extents = packet.ReadVector2("Extents", index);
936927
areaTriggerTemplate.Data[0] = extents.X;
937928
areaTriggerTemplate.Data[1] = extents.Y;
@@ -943,8 +934,6 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
943934
}
944935
}
945936

946-
areaTriggerTemplate.Type = (byte)packet.AddValue("Type", type, index);
947-
948937
areaTriggerTemplate.Flags = 0;
949938
createProperties.Flags = 0;
950939

‎WowPacketParserModule.V1_13_2_31446/Parsers/UpdateHandler.cs‎

Lines changed: 53 additions & 53 deletions
Original file line numberDiff line numberDiff line change
@@ -455,72 +455,72 @@ private static MovementInfo ReadMovementUpdateBlock(Packet packet, CreateObject
455455
if (hasAnimProgress)
456456
packet.ReadUInt32("AnimProgress", index);
457457

458-
if (areaTriggerTemplate.Type == (byte)AreaTriggerType.Sphere)
458+
switch ((AreaTriggerType)areaTriggerTemplate.Type)
459459
{
460-
areaTriggerTemplate.Data[0] = packet.ReadSingle("Radius", index);
461-
areaTriggerTemplate.Data[1] = packet.ReadSingle("RadiusTarget", index);
462-
}
463-
464-
if (areaTriggerTemplate.Type == (byte)AreaTriggerType.Box)
465-
{
466-
Vector3 Extents = packet.ReadVector3("Extents", index);
467-
Vector3 ExtentsTarget = packet.ReadVector3("ExtentsTarget", index);
468-
469-
areaTriggerTemplate.Data[0] = Extents.X;
470-
areaTriggerTemplate.Data[1] = Extents.Y;
471-
areaTriggerTemplate.Data[2] = Extents.Z;
460+
case AreaTriggerType.Sphere:
461+
areaTriggerTemplate.Data[0] = packet.ReadSingle("Radius", index);
462+
areaTriggerTemplate.Data[1] = packet.ReadSingle("RadiusTarget", index);
463+
break;
464+
case AreaTriggerType.Box:
465+
{
466+
Vector3 Extents = packet.ReadVector3("Extents", index);
467+
Vector3 ExtentsTarget = packet.ReadVector3("ExtentsTarget", index);
472468

473-
areaTriggerTemplate.Data[3] = ExtentsTarget.X;
474-
areaTriggerTemplate.Data[4] = ExtentsTarget.Y;
475-
areaTriggerTemplate.Data[5] = ExtentsTarget.Z;
476-
}
469+
areaTriggerTemplate.Data[0] = Extents.X;
470+
areaTriggerTemplate.Data[1] = Extents.Y;
471+
areaTriggerTemplate.Data[2] = Extents.Z;
477472

478-
if (areaTriggerTemplate.Type == (byte)AreaTriggerType.Polygon)
479-
{
480-
var verticesCount = packet.ReadUInt32("VerticesCount", index);
481-
var verticesTargetCount = packet.ReadUInt32("VerticesTargetCount", index);
473+
areaTriggerTemplate.Data[3] = ExtentsTarget.X;
474+
areaTriggerTemplate.Data[4] = ExtentsTarget.Y;
475+
areaTriggerTemplate.Data[5] = ExtentsTarget.Z;
476+
break;
477+
}
478+
case AreaTriggerType.Polygon:
479+
{
480+
var verticesCount = packet.ReadUInt32("VerticesCount", index);
481+
var verticesTargetCount = packet.ReadUInt32("VerticesTargetCount", index);
482482

483-
List<AreaTriggerCreatePropertiesPolygonVertex> verticesList = new List<AreaTriggerCreatePropertiesPolygonVertex>();
483+
List<AreaTriggerCreatePropertiesPolygonVertex> verticesList = new List<AreaTriggerCreatePropertiesPolygonVertex>();
484484

485-
areaTriggerTemplate.Data[0] = packet.ReadSingle("Height", index);
486-
areaTriggerTemplate.Data[1] = packet.ReadSingle("HeightTarget", index);
485+
areaTriggerTemplate.Data[0] = packet.ReadSingle("Height", index);
486+
areaTriggerTemplate.Data[1] = packet.ReadSingle("HeightTarget", index);
487487

488-
for (uint i = 0; i < verticesCount; ++i)
489-
{
490-
AreaTriggerCreatePropertiesPolygonVertex spellAreatriggerVertices = new AreaTriggerCreatePropertiesPolygonVertex
488+
for (uint i = 0; i < verticesCount; ++i)
491489
{
492-
areatriggerGuid = guid,
493-
Idx = i
494-
};
495-
496-
Vector2 vertices = packet.ReadVector2("Vertices", index, i);
490+
AreaTriggerCreatePropertiesPolygonVertex spellAreatriggerVertices = new AreaTriggerCreatePropertiesPolygonVertex
491+
{
492+
areatriggerGuid = guid,
493+
Idx = i
494+
};
497495

498-
spellAreatriggerVertices.VerticeX = vertices.X;
499-
spellAreatriggerVertices.VerticeY = vertices.Y;
496+
Vector2 vertices = packet.ReadVector2("Vertices", index, i);
500497

501-
verticesList.Add(spellAreatriggerVertices);
502-
}
498+
spellAreatriggerVertices.VerticeX = vertices.X;
499+
spellAreatriggerVertices.VerticeY = vertices.Y;
503500

504-
for (var i = 0; i < verticesTargetCount; ++i)
505-
{
506-
Vector2 verticesTarget = packet.ReadVector2("VerticesTarget", index, i);
501+
verticesList.Add(spellAreatriggerVertices);
502+
}
507503

508-
verticesList[i].VerticeTargetX = verticesTarget.X;
509-
verticesList[i].VerticeTargetY = verticesTarget.Y;
510-
}
504+
for (var i = 0; i < verticesTargetCount; ++i)
505+
{
506+
Vector2 verticesTarget = packet.ReadVector2("VerticesTarget", index, i);
511507

512-
foreach (AreaTriggerCreatePropertiesPolygonVertex vertice in verticesList)
513-
Storage.AreaTriggerCreatePropertiesPolygonVertices.Add(vertice);
514-
}
508+
verticesList[i].VerticeTargetX = verticesTarget.X;
509+
verticesList[i].VerticeTargetY = verticesTarget.Y;
510+
}
515511

516-
if (areaTriggerTemplate.Type == (byte)AreaTriggerType.Cylinder)
517-
{
518-
areaTriggerTemplate.Data[0] = packet.ReadSingle("Radius", index);
519-
areaTriggerTemplate.Data[1] = packet.ReadSingle("RadiusTarget", index);
520-
areaTriggerTemplate.Data[2] = packet.ReadSingle("Height", index);
521-
areaTriggerTemplate.Data[3] = packet.ReadSingle("HeightTarget", index);
522-
areaTriggerTemplate.Data[4] = packet.ReadSingle("LocationZOffset", index);
523-
areaTriggerTemplate.Data[5] = packet.ReadSingle("LocationZOffsetTarget", index);
512+
foreach (AreaTriggerCreatePropertiesPolygonVertex vertice in verticesList)
513+
Storage.AreaTriggerCreatePropertiesPolygonVertices.Add(vertice);
514+
break;
515+
}
516+
case AreaTriggerType.Cylinder:
517+
areaTriggerTemplate.Data[0] = packet.ReadSingle("Radius", index);
518+
areaTriggerTemplate.Data[1] = packet.ReadSingle("RadiusTarget", index);
519+
areaTriggerTemplate.Data[2] = packet.ReadSingle("Height", index);
520+
areaTriggerTemplate.Data[3] = packet.ReadSingle("HeightTarget", index);
521+
areaTriggerTemplate.Data[4] = packet.ReadSingle("LocationZOffset", index);
522+
areaTriggerTemplate.Data[5] = packet.ReadSingle("LocationZOffsetTarget", index);
523+
break;
524524
}
525525

526526
if ((areaTriggerTemplate.Flags & (uint)AreaTriggerCreatePropertiesLegacyFlags.HasOrbit) != 0)

0 commit comments

Comments
 (0)