Skip to content

Commit 6cac109

Browse files
committed
Fix parsing areatriggers
1 parent d735dbf commit 6cac109

File tree

4 files changed

+63
-1
lines changed

4 files changed

+63
-1
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
namespace WowPacketParser.Store.Objects.UpdateFields
2+
{
3+
public interface IAreaTriggerActionSetPeriodModifier
4+
{
5+
}
6+
}

WowPacketParserModule.V12_0_0_65390/Parsers/UpdateFieldsHandler1200.cs

Lines changed: 38 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6879,6 +6879,38 @@ public static IForceSetAreaTriggerPositionAndRotation ReadUpdateForceSetAreaTrig
68796879
return data;
68806880
}
68816881

6882+
public static IAreaTriggerActionSetPeriodModifier ReadCreateAreaTriggerActionSetPeriodModifier(Packet packet, params object[] indexes)
6883+
{
6884+
var data = new AreaTriggerActionSetPeriodModifier();
6885+
packet.ResetBitReader();
6886+
data.Field_0 = packet.ReadInt32("Field_0", indexes);
6887+
data.Field_4 = packet.ReadSingle("Field_4", indexes);
6888+
return data;
6889+
}
6890+
6891+
public static IAreaTriggerActionSetPeriodModifier ReadUpdateAreaTriggerActionSetPeriodModifier(Packet packet, params object[] indexes)
6892+
{
6893+
var data = new AreaTriggerActionSetPeriodModifier();
6894+
packet.ResetBitReader();
6895+
var rawChangesMask = new int[1];
6896+
rawChangesMask[0] = (int)packet.ReadBits(3);
6897+
var changesMask = new BitArray(rawChangesMask);
6898+
6899+
packet.ResetBitReader();
6900+
if (changesMask[0])
6901+
{
6902+
if (changesMask[1])
6903+
{
6904+
data.Field_0 = packet.ReadInt32("Field_0", indexes);
6905+
}
6906+
if (changesMask[2])
6907+
{
6908+
data.Field_4 = packet.ReadSingle("Field_4", indexes);
6909+
}
6910+
}
6911+
return data;
6912+
}
6913+
68826914
public static IAreaTriggerSplineCalculator ReadCreateAreaTriggerSplineCalculator(Packet packet, params object[] indexes)
68836915
{
68846916
var data = new AreaTriggerSplineCalculator();
@@ -7336,6 +7368,7 @@ public override IAreaTriggerData ReadCreateAreaTriggerData(Packet packet, Update
73367368
data.Facing = packet.ReadSingle("Facing", indexes);
73377369
data.PathType = packet.ReadInt32("PathType", indexes);
73387370
data.ShapeType = packet.ReadByte("ShapeType", indexes);
7371+
data.PeriodModifier = ReadCreateAreaTriggerActionSetPeriodModifier(packet, indexes, "PeriodModifier");
73397372
if (data.PathType == 3)
73407373
{
73417374
data.MovementScript = ReadCreateAreaTriggerMovementScript(packet, indexes, "MovementScript");
@@ -7397,7 +7430,7 @@ public override IAreaTriggerData ReadUpdateAreaTriggerData(Packet packet, params
73977430
packet.ResetBitReader();
73987431
var rawChangesMask = new int[2];
73997432
rawChangesMask[0] = packet.ReadInt32();
7400-
rawChangesMask[1] = (int)packet.ReadBits(4);
7433+
rawChangesMask[1] = (int)packet.ReadBits(5);
74017434
var changesMask = new BitArray(rawChangesMask);
74027435

74037436
var hasTargetRollPitchYaw = false;
@@ -7516,6 +7549,10 @@ public override IAreaTriggerData ReadUpdateAreaTriggerData(Packet packet, params
75167549
{
75177550
data.ShapeType = packet.ReadByte("ShapeType", indexes);
75187551
}
7552+
if (changesMask[36])
7553+
{
7554+
data.PeriodModifier = ReadUpdateAreaTriggerActionSetPeriodModifier(packet, indexes, "PeriodModifier");
7555+
}
75197556
if (changesMask[34])
75207557
{
75217558
if (data.PathType == 3)
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
// <auto-generated>
2+
// DO NOT EDIT
3+
// </auto-generated>
4+
5+
using System.CodeDom.Compiler;
6+
using WowPacketParser.Misc;
7+
using WowPacketParser.Store.Objects.UpdateFields;
8+
9+
namespace WowPacketParserModule.V12_0_0_65390.UpdateFields.V12_0_0_65390
10+
{
11+
[GeneratedCode("UpdateFieldCodeGenerator.Formats.WowPacketParserHandler", "1.0.0.0")]
12+
public class AreaTriggerActionSetPeriodModifier : IAreaTriggerActionSetPeriodModifier
13+
{
14+
public System.Nullable<int> Field_0 { get; set; }
15+
public System.Nullable<float> Field_4 { get; set; }
16+
}
17+
}
18+

WowPacketParserModule.V12_0_0_65390/UpdateFields/V12_0_0_65390/AreaTriggerData.cs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ public class AreaTriggerData : IAreaTriggerData
3939
public IForceSetAreaTriggerPositionAndRotation ForcedPositionAndRotation { get; set; }
4040
public System.Nullable<int> PathType { get; set; }
4141
public System.Nullable<byte> ShapeType { get; set; }
42+
public IAreaTriggerActionSetPeriodModifier PeriodModifier { get; set; }
4243
public IAreaTriggerMovementScript MovementScript { get; set; }
4344
public IAreaTriggerSphere Sphere { get; set; }
4445
public IAreaTriggerBox Box { get; set; }

0 commit comments

Comments
 (0)