mirror of
https://mirror.ghproxy.com/https://github.com/dexyfex/CodeWalker
synced 2025-01-26 15:32:54 +08:00
More MRF corrections
This commit is contained in:
parent
8d399945cd
commit
17b89cf4ee
@ -76,24 +76,24 @@ namespace CodeWalker.GameFiles
|
|||||||
public abstract class MrfNodeBlendAddSubtractBase : MrfNodeInfoBase
|
public abstract class MrfNodeBlendAddSubtractBase : MrfNodeInfoBase
|
||||||
{
|
{
|
||||||
public MrfHeaderNameFlag Header { get; set; }
|
public MrfHeaderNameFlag Header { get; set; }
|
||||||
public uint Unk1 { get; set; }
|
public int Unk1 { get; set; }
|
||||||
public uint Unk2 { get; set; }
|
public int Unk2 { get; set; }
|
||||||
public uint Unk3 { get; set; }
|
public uint Unk3 { get; set; }
|
||||||
public uint Unk4 { get; set; }
|
public float Unk4 { get; set; }
|
||||||
public MetaHash Unk5 { get; set; }
|
public MetaHash Unk5 { get; set; }
|
||||||
public uint Unk6 { get; set; }
|
public uint Unk6 { get; set; }
|
||||||
|
|
||||||
public override void Parse(DataReader r)
|
public override void Parse(DataReader r)
|
||||||
{
|
{
|
||||||
Header = new MrfHeaderNameFlag(r);
|
Header = new MrfHeaderNameFlag(r);
|
||||||
Unk1 = r.ReadUInt32();
|
Unk1 = r.ReadInt32();
|
||||||
Unk2 = r.ReadUInt32();
|
Unk2 = r.ReadInt32();
|
||||||
|
|
||||||
if ((Header.Flags & 0x180000) == 0x80000)
|
if ((Header.Flags & 0x180000) == 0x80000)
|
||||||
Unk3 = r.ReadUInt32();
|
Unk3 = r.ReadUInt32();
|
||||||
|
|
||||||
if ((Header.Flags & 3) != 0)
|
if ((Header.Flags & 3) != 0)
|
||||||
Unk4 = r.ReadUInt32();
|
Unk4 = r.ReadSingle();
|
||||||
|
|
||||||
var unkTypeFlag = (Header.Flags >> 2) & 3;
|
var unkTypeFlag = (Header.Flags >> 2) & 3;
|
||||||
|
|
||||||
@ -141,7 +141,7 @@ namespace CodeWalker.GameFiles
|
|||||||
public MrfHeaderNameFlag Header { get; set; }
|
public MrfHeaderNameFlag Header { get; set; }
|
||||||
public uint Unk1 { get; set; }
|
public uint Unk1 { get; set; }
|
||||||
public MetaHash Unk2 { get; set; }
|
public MetaHash Unk2 { get; set; }
|
||||||
public uint Unk3 { get; set; }
|
public MetaHash Unk3 { get; set; }
|
||||||
|
|
||||||
public override void Parse(DataReader r)
|
public override void Parse(DataReader r)
|
||||||
{
|
{
|
||||||
@ -156,10 +156,10 @@ namespace CodeWalker.GameFiles
|
|||||||
if (unkTypeFlag != 1)
|
if (unkTypeFlag != 1)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
Unk2 = new MetaHash(r.ReadUInt32());
|
Unk2 = new MetaHash(r.ReadUInt32()); // Filter Frame dict hash
|
||||||
}
|
}
|
||||||
|
|
||||||
Unk3 = r.ReadUInt32();
|
Unk3 = new MetaHash(r.ReadUInt32()); // Filter Frame name hash
|
||||||
}
|
}
|
||||||
|
|
||||||
public override long CalculateSize(DataReader r)
|
public override long CalculateSize(DataReader r)
|
||||||
@ -393,8 +393,8 @@ namespace CodeWalker.GameFiles
|
|||||||
public struct MrfStructStateMainSection
|
public struct MrfStructStateMainSection
|
||||||
{
|
{
|
||||||
public uint Unk1 { get; set; }
|
public uint Unk1 { get; set; }
|
||||||
public uint Unk2 { get; set; }
|
public int Unk2 { get; set; }
|
||||||
public uint Unk3 { get; set; }
|
public float Unk3 { get; set; }
|
||||||
public uint Unk4 { get; set; }
|
public uint Unk4 { get; set; }
|
||||||
public uint Unk5 { get; set; }
|
public uint Unk5 { get; set; }
|
||||||
public uint Unk6 { get; set; }
|
public uint Unk6 { get; set; }
|
||||||
@ -405,8 +405,8 @@ namespace CodeWalker.GameFiles
|
|||||||
public MrfStructStateMainSection(DataReader r)
|
public MrfStructStateMainSection(DataReader r)
|
||||||
{
|
{
|
||||||
Unk1 = r.ReadUInt32();
|
Unk1 = r.ReadUInt32();
|
||||||
Unk2 = r.ReadUInt32();
|
Unk2 = r.ReadInt32();
|
||||||
Unk3 = r.ReadUInt32();
|
Unk3 = r.ReadSingle();
|
||||||
Unk4 = r.ReadUInt32();
|
Unk4 = r.ReadUInt32();
|
||||||
Unk5 = r.ReadUInt32();
|
Unk5 = r.ReadUInt32();
|
||||||
Unk6 = r.ReadUInt32();
|
Unk6 = r.ReadUInt32();
|
||||||
@ -568,9 +568,9 @@ namespace CodeWalker.GameFiles
|
|||||||
[TC(typeof(EXP))]
|
[TC(typeof(EXP))]
|
||||||
public struct MrfStructStateInfoSignalDataUnk3
|
public struct MrfStructStateInfoSignalDataUnk3
|
||||||
{
|
{
|
||||||
public uint UnkValue;
|
public uint UnkValue { get; }
|
||||||
public uint UnkDefault;
|
public uint UnkDefault { get; }
|
||||||
public ulong UnkRange;
|
public ulong UnkRange { get; }
|
||||||
|
|
||||||
public MrfStructStateInfoSignalDataUnk3(DataReader r)
|
public MrfStructStateInfoSignalDataUnk3(DataReader r)
|
||||||
{
|
{
|
||||||
@ -580,6 +580,19 @@ namespace CodeWalker.GameFiles
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
[TC(typeof(EXP))]
|
||||||
|
public struct MrfStructStateMachineEntry
|
||||||
|
{
|
||||||
|
public MetaHash Value { get; }
|
||||||
|
public uint Unk { get; }
|
||||||
|
|
||||||
|
public MrfStructStateMachineEntry(DataReader r)
|
||||||
|
{
|
||||||
|
Value = new MetaHash(r.ReadUInt32());
|
||||||
|
Unk = r.ReadUInt32();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
[TC(typeof(EXP))]
|
[TC(typeof(EXP))]
|
||||||
public struct MrfStructStateInfoSignalData
|
public struct MrfStructStateInfoSignalData
|
||||||
{
|
{
|
||||||
@ -741,21 +754,16 @@ namespace CodeWalker.GameFiles
|
|||||||
public class MrfNodeStateMachineClassInfo : MrfNodeInfoBase
|
public class MrfNodeStateMachineClassInfo : MrfNodeInfoBase
|
||||||
{
|
{
|
||||||
public MrfHeaderStateMachine Header { get; set; }
|
public MrfHeaderStateMachine Header { get; set; }
|
||||||
public int[][] Items { get; set; }
|
public MrfStructStateMachineEntry[] Items { get; set; }
|
||||||
public MrfStructStateSection Header_Unk7_Data { get; set; }
|
public MrfStructStateSection Header_Unk7_Data { get; set; }
|
||||||
|
|
||||||
public override void Parse(DataReader r)
|
public override void Parse(DataReader r)
|
||||||
{
|
{
|
||||||
Header = new MrfHeaderStateMachine(r);
|
Header = new MrfHeaderStateMachine(r);
|
||||||
Items = new int[Header.Unk6][];
|
Items = new MrfStructStateMachineEntry[Header.Unk6];
|
||||||
|
|
||||||
for (int i = 0; i < Header.Unk6; i++)
|
for (int i = 0; i < Header.Unk6; i++)
|
||||||
{
|
Items[i] = new MrfStructStateMachineEntry(r);
|
||||||
var unk1 = r.ReadInt32();
|
|
||||||
var unk2 = r.ReadInt32();
|
|
||||||
|
|
||||||
Items[i] = new int[] { unk1, unk2 };
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Header.Unk7 != 0)
|
if (Header.Unk7 != 0)
|
||||||
{
|
{
|
||||||
@ -821,22 +829,17 @@ namespace CodeWalker.GameFiles
|
|||||||
{
|
{
|
||||||
public MrfHeaderStateMachine Header { get; set; }
|
public MrfHeaderStateMachine Header { get; set; }
|
||||||
public uint Unk { get; set; }
|
public uint Unk { get; set; }
|
||||||
public int[][] Items { get; set; }
|
public MrfStructStateMachineEntry[] Items { get; set; }
|
||||||
|
|
||||||
public override void Parse(DataReader r)
|
public override void Parse(DataReader r)
|
||||||
{
|
{
|
||||||
Header = new MrfHeaderStateMachine(r);
|
Header = new MrfHeaderStateMachine(r);
|
||||||
Items = new int[Header.Unk6][];
|
Items = new MrfStructStateMachineEntry[Header.Unk6];
|
||||||
|
|
||||||
Unk = r.ReadUInt32();
|
Unk = r.ReadUInt32();
|
||||||
|
|
||||||
for (int i = 0; i < Header.Unk6; i++)
|
for (int i = 0; i < Header.Unk6; i++)
|
||||||
{
|
Items[i] = new MrfStructStateMachineEntry(r);
|
||||||
var unk1 = r.ReadInt32();
|
|
||||||
var unk2 = r.ReadInt32();
|
|
||||||
|
|
||||||
Items[i] = new int[] { unk1, unk2 };
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override long CalculateSize(DataReader r)
|
public override long CalculateSize(DataReader r)
|
||||||
@ -1052,7 +1055,7 @@ namespace CodeWalker.GameFiles
|
|||||||
public MetaHash DictName { get; set; }
|
public MetaHash DictName { get; set; }
|
||||||
public MetaHash ClipName { get; set; }
|
public MetaHash ClipName { get; set; }
|
||||||
public float Unk5 { get; set; }
|
public float Unk5 { get; set; }
|
||||||
public uint Unk6 { get; set; }
|
public float Unk6 { get; set; }
|
||||||
public uint Unk7 { get; set; }
|
public uint Unk7 { get; set; }
|
||||||
public uint Unk8 { get; set; }
|
public uint Unk8 { get; set; }
|
||||||
|
|
||||||
@ -1081,7 +1084,7 @@ namespace CodeWalker.GameFiles
|
|||||||
Unk5 = r.ReadSingle();
|
Unk5 = r.ReadSingle();
|
||||||
|
|
||||||
if (((Header.Flags >> 4) & 3) != 0)
|
if (((Header.Flags >> 4) & 3) != 0)
|
||||||
Unk6 = r.ReadUInt32();
|
Unk6 = r.ReadSingle();
|
||||||
|
|
||||||
if (((Header.Flags >> 6) & 3) != 0)
|
if (((Header.Flags >> 6) & 3) != 0)
|
||||||
Unk7 = r.ReadUInt32();
|
Unk7 = r.ReadUInt32();
|
||||||
@ -1278,8 +1281,8 @@ namespace CodeWalker.GameFiles
|
|||||||
public MrfHeaderNameFlag Header { get; set; }
|
public MrfHeaderNameFlag Header { get; set; }
|
||||||
public uint Unk1 { get; set; }
|
public uint Unk1 { get; set; }
|
||||||
public uint Unk2 { get; set; }
|
public uint Unk2 { get; set; }
|
||||||
public MetaHash Unk3 { get; set; }
|
public MetaHash ExpressionDict { get; set; }
|
||||||
public uint Unk4 { get; set; }
|
public MetaHash ExpressionName { get; set; }
|
||||||
public uint Unk5 { get; set; }
|
public uint Unk5 { get; set; }
|
||||||
public float Unk6 { get; set; }
|
public float Unk6 { get; set; }
|
||||||
public uint[][] Unk7 { get; set; }
|
public uint[][] Unk7 { get; set; }
|
||||||
@ -1292,8 +1295,8 @@ namespace CodeWalker.GameFiles
|
|||||||
switch (Header.Flags & 3)
|
switch (Header.Flags & 3)
|
||||||
{
|
{
|
||||||
case 1:
|
case 1:
|
||||||
Unk3 = new MetaHash(r.ReadUInt32());
|
ExpressionDict = new MetaHash(r.ReadUInt32());
|
||||||
Unk4 = r.ReadUInt32();
|
ExpressionName = new MetaHash(r.ReadUInt32());
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
Unk5 = r.ReadUInt32();
|
Unk5 = r.ReadUInt32();
|
||||||
@ -1344,7 +1347,7 @@ namespace CodeWalker.GameFiles
|
|||||||
result = 24;
|
result = 24;
|
||||||
break;
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
result = 2;
|
result = 20;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user