diff --git a/PlayOnline.FFXI/FileTypes/MonsterSpellInfo.cs b/PlayOnline.FFXI/FileTypes/MonsterSpellInfo.cs index 91020e1..ea17571 100644 --- a/PlayOnline.FFXI/FileTypes/MonsterSpellInfo.cs +++ b/PlayOnline.FFXI/FileTypes/MonsterSpellInfo.cs @@ -63,6 +63,7 @@ public static List AllFields private byte? Unknown2_; private byte? Unknown3_; private byte? Unknown4_; + private uint? Unknown5_; #endregion @@ -83,6 +84,7 @@ public override void Clear() this.Unknown2_ = null; this.Unknown3_ = null; this.Unknown4_ = null; + this.Unknown5_ = null; } #endregion @@ -312,7 +314,7 @@ public bool Read(BinaryReader BR) this.Clear(); try { - byte[] Bytes = BR.ReadBytes(0x50); + byte[] Bytes = BR.ReadBytes(0x58); //if (Bytes[0x3] != 0x00 || Bytes[0x5] != 0x00 || Bytes[0x7] != 0x00 || Bytes[0x9] != 0x00 || Bytes[0xf] != 0xff || Bytes[0x3f] != 0xff) //return false; if (!FFXIEncryption.DecodeDataBlockMask(Bytes)) @@ -344,6 +346,7 @@ public bool Read(BinaryReader BR) this.Unknown2_ = BR.ReadByte(); this.Unknown3_ = BR.ReadByte(); this.Unknown4_ = BR.ReadByte(); + this.Unknown5_ = BR.ReadUInt32(); #if DEBUG // Check the padding bytes for unexpected data for (byte i = 0; i < 14; ++i) { diff --git a/PlayOnline.FFXI/FileTypes/SpellAndAbilityInfo.cs b/PlayOnline.FFXI/FileTypes/SpellAndAbilityInfo.cs index 540bc2b..4224a5a 100644 --- a/PlayOnline.FFXI/FileTypes/SpellAndAbilityInfo.cs +++ b/PlayOnline.FFXI/FileTypes/SpellAndAbilityInfo.cs @@ -65,11 +65,11 @@ public override ThingList Load(BinaryReader BR, ProgressCallback ProgressCallbac goto Failed; } uint BlockSize = (SizeInfo & 0xFFFFFF80) >> 3; - if ((BlockSize - 0x10) % 0x50 != 0) + if ((BlockSize - 0x10) % 0x58 != 0) { goto Failed; } - uint EntryCount = (BlockSize - 0x10) / 0x50; + uint EntryCount = (BlockSize - 0x10) / 0x58; while (EntryCount-- > 0) { Things.MonsterSpellInfo2 MSI2 = new Things.MonsterSpellInfo2(); @@ -98,11 +98,11 @@ public override ThingList Load(BinaryReader BR, ProgressCallback ProgressCallbac goto Failed; } uint BlockSize = (SizeInfo & 0xFFFFFF80) >> 3; - if ((BlockSize - 0x10) % 0x50 != 0) + if ((BlockSize - 0x10) % 0x58 != 0) { goto Failed; } - uint EntryCount = (BlockSize - 0x10) / 0x50; + uint EntryCount = (BlockSize - 0x10) / 0x58; while (EntryCount-- > 0) { Things.SpellInfo2 SI2 = new Things.SpellInfo2(); diff --git a/PlayOnline.FFXI/Things/Item.cs b/PlayOnline.FFXI/Things/Item.cs index a0e5ca2..4dfc3e2 100644 --- a/PlayOnline.FFXI/Things/Item.cs +++ b/PlayOnline.FFXI/Things/Item.cs @@ -122,6 +122,7 @@ public static List AllFields private ushort? Unknown2_; private uint? Unknown3_; private uint? Unknown4_; + private uint? Unknown5_; #endregion @@ -166,7 +167,8 @@ public override void Clear() this.Unknown1_ = null; this.Unknown2_ = null; this.Unknown3_ = null; - this.Unknown4_ = null; + this.Unknown4_ = null; + this.Unknown5_ = null; } #endregion @@ -724,7 +726,8 @@ public bool Read(BinaryReader BR, Type T) } this.ReuseDelay_ = BR.ReadUInt32(); this.Unknown2_ = BR.ReadUInt16(); - this.iLevel_ = BR.ReadUInt16(); + this.iLevel_ = BR.ReadUInt16(); + this.Unknown5_ = BR.ReadUInt32(); } else if (T == Type.PuppetItem) { diff --git a/PlayOnline.FFXI/Things/SpellInfo.cs b/PlayOnline.FFXI/Things/SpellInfo.cs index 6bcbab2..456c277 100644 --- a/PlayOnline.FFXI/Things/SpellInfo.cs +++ b/PlayOnline.FFXI/Things/SpellInfo.cs @@ -341,6 +341,7 @@ public bool Read(BinaryReader BR) } this.ID_ = BR.ReadUInt16(); this.ListIconID_ = BR.ReadByte(); + BR.ReadBytes(0x04); FFXIEncoding E = new FFXIEncoding(); this.JapaneseName_ = E.GetString(BR.ReadBytes(20)).TrimEnd('\0'); this.EnglishName_ = E.GetString(BR.ReadBytes(20)).TrimEnd('\0'); diff --git a/PlayOnline.FFXI/Things/SpellInfo2.cs b/PlayOnline.FFXI/Things/SpellInfo2.cs index 2b696b5..a29e15d 100644 --- a/PlayOnline.FFXI/Things/SpellInfo2.cs +++ b/PlayOnline.FFXI/Things/SpellInfo2.cs @@ -59,7 +59,8 @@ public static List AllFields private byte? Unknown1_; private byte? Unknown2_; private byte? Unknown3_; - private byte? Unknown4_; + private byte? Unknown4_; + private uint? Unknown5_; #endregion @@ -343,7 +344,8 @@ public bool Read(BinaryReader BR) this.Unknown1_ = BR.ReadByte(); this.Unknown2_ = BR.ReadByte(); this.Unknown3_ = BR.ReadByte(); - this.Unknown4_ = BR.ReadByte(); + this.Unknown4_ = BR.ReadByte(); + this.Unknown5_ = BR.ReadUInt32(); #if DEBUG // Check the padding bytes for unexpected data for (byte i = 0; i < 14; ++i)