refactor: include more unknown fields in packet

This commit is contained in:
Anna 2020-08-11 10:20:37 -04:00
parent 3638357730
commit aa7c792698

View File

@ -19,19 +19,26 @@ namespace NoSoliciting {
[StructLayout(LayoutKind.Sequential)] [StructLayout(LayoutKind.Sequential)]
public struct PFListing { public struct PFListing {
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 28)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 12)]
private readonly byte[] header1; private readonly byte[] header1;
internal readonly ushort duty; private readonly uint unknownInt1;
internal readonly ushort dutyType; private readonly ushort unknownShort1;
private readonly ushort unknownShort2;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 10)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
private readonly byte[] header2; private readonly byte[] header2;
internal readonly ushort duty;
internal readonly byte dutyType;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 11)]
private readonly byte[] header3;
internal readonly ushort world; internal readonly ushort world;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
private readonly byte[] header3; private readonly byte[] header4;
internal readonly byte objective; internal readonly byte objective;
internal readonly byte beginnersWelcome; internal readonly byte beginnersWelcome;
@ -40,32 +47,32 @@ namespace NoSoliciting {
internal readonly byte lootRules; internal readonly byte lootRules;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 3)]
internal readonly byte[] header4; // all zero in every pf I've examined internal readonly byte[] header5; // all zero in every pf I've examined
internal readonly uint lastPatchHotfixTimestamp; // last time the servers were restarted? internal readonly uint lastPatchHotfixTimestamp; // last time the servers were restarted?
internal readonly ushort secondsRemaining; internal readonly ushort secondsRemaining;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 6)]
private readonly byte[] header5; // 00 00 01 00 00 00 in every pf I've examined private readonly byte[] header6; // 00 00 01 00 00 00 in every pf I've examined
internal readonly ushort minimumItemLevel; internal readonly ushort minimumItemLevel;
internal readonly ushort homeWorld; internal readonly ushort homeWorld;
internal readonly ushort currentWorld; internal readonly ushort currentWorld;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
private readonly byte[] header6; // 02 XX 01 00 in every pf I've examined private readonly byte[] header7; // 02 XX 01 00 in every pf I've examined
internal readonly byte searchArea; internal readonly byte searchArea;
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 5)]
private readonly byte[] header7; // 00 01 00 00 00 for every pf except alliance raids where it's 01 03 00 00 00 (second byte # parties?) private readonly byte[] header8; // 00 01 00 00 00 for every pf except alliance raids where it's 01 03 00 00 00 (second byte # parties?)
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
internal readonly uint[] slots; internal readonly uint[] slots;
private readonly uint job; // job started as? private readonly uint job; // job started as?
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
private readonly byte[] header8; // all zero in every pf I've examined private readonly byte[] header9; // all zero in every pf I've examined
// Note that ByValTStr will not work here because the strings are UTF-8 and there's only a CharSet for UTF-16 in C#. // Note that ByValTStr will not work here because the strings are UTF-8 and there's only a CharSet for UTF-16 in C#.
[MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)]