Enumerate stand/sitting

This commit is contained in:
Kurt 2021-09-20 13:52:23 -07:00
parent a128b13df1
commit 6cff90ab4d
4 changed files with 22 additions and 12 deletions

View File

@ -21,19 +21,19 @@ public class PlacementZone8OtherNPCHolder
[FlatBufferItem(03)] public ulong Hash_03 { get; set; }
[FlatBufferItem(04)] public PlacementZone8_F16_ArrayEntry[] Field_04 { get; set; } = Array.Empty<PlacementZone8_F16_ArrayEntry>(); // a_0201.bin[0].[76] @ AAE8
[FlatBufferItem(05)] public ulong Hash_05 { get; set; }
[FlatBufferItem(06)] public bool IsSitting { get; set; }
[FlatBufferItem(07)] public byte Field_07 { get; set; }
[FlatBufferItem(06)] public bool Flag_06 { get; set; }
[FlatBufferItem(07)] public bool Flag_07 { get; set; }
[FlatBufferItem(08)] public uint Field_08 { get; set; }
[FlatBufferItem(09)] public uint Field_09 { get; set; }
[FlatBufferItem(09)] public FlatModelState State { get; set; }
[FlatBufferItem(10)] public float Field_10 { get; set; }
[FlatBufferItem(11)] public PlacementZone8_F02_Nine Field_11 { get; set; } = new();
[FlatBufferItem(12)] public uint Field_12 { get; set; }
[FlatBufferItem(13)] public uint ModelAnimation { get; set; }
[FlatBufferItem(13)] public uint AnimationIndexPrimary { get; set; }
[FlatBufferItem(14)] public uint Field_14 { get; set; }
[FlatBufferItem(15)] public uint Field_15 { get; set; }
[FlatBufferItem(16)] public uint Field_16 { get; set; }
public readonly Dictionary<ulong, string> Models = new()
public static readonly Dictionary<ulong, string> Models = new()
{
// { 0xFAB9E0BC5EB53C61, "???" }, // CROSS_SHADOW_CHR_0
{ 0x6E0EF08728A00183, "Allister" },
@ -200,14 +200,14 @@ public PlacementZone8OtherNPCHolder Clone() => new()
Hash_03 = Hash_03,
Field_04 = Field_04,
Hash_05 = Hash_05,
IsSitting = IsSitting,
Field_07 = Field_07,
Flag_06 = Flag_06,
Flag_07 = Flag_07,
Field_08 = Field_08,
Field_09 = Field_09,
State = State,
Field_10 = Field_10,
Field_11 = Field_11.Clone(),
Field_12 = Field_12,
ModelAnimation = ModelAnimation,
AnimationIndexPrimary = AnimationIndexPrimary,
Field_14 = Field_14,
Field_15 = Field_15,
Field_16 = Field_16,
@ -225,6 +225,13 @@ public class PlacementZone8_F16_ArrayEntry
[FlatBufferItem(05)] public float Field_05 { get; set; }
}
[FlatBufferEnum(typeof(uint))]
public enum FlatModelState : uint
{
Standing = 0,
Sitting = 2,
}
[FlatBufferTable, TypeConverter(typeof(ExpandableObjectConverter))]
public class PlacementZone8_F16
{

View File

@ -75,7 +75,7 @@ public class PlacementZone8_F02_Nine
[FlatBufferItem(05)] public byte Field_05 { get; set; }
[FlatBufferItem(06)] public uint Field_06 { get => 0; set { if (value != 0) throw new ArgumentException("Not Observed"); } } // unused
[FlatBufferItem(07)] public ulong Hash_07 { get; set; }
[FlatBufferItem(08)] public uint Field_08 { get; set; }
[FlatBufferItem(08)] public uint AnimationIndexSecondary { get; set; }
[FlatBufferItem(09)] public uint Field_09 { get; set; }
public PlacementZone8_F02_Nine Clone() => new()
@ -88,7 +88,7 @@ public PlacementZone8_F02_Nine Clone() => new()
Field_05 = Field_05,
Field_06 = Field_06,
Hash_07 = Hash_07,
Field_08 = Field_08,
AnimationIndexSecondary = AnimationIndexSecondary,
Field_09 = Field_09,
};
}

View File

@ -160,6 +160,8 @@ public void Upscale(float factor)
ScaleZ *= factor;
}
public void ResetScale() => ScaleX = ScaleY = ScaleZ = 1;
public override string ToString() => $"{HashObjectName:X16} @ {Location3f}";
public PlacementZoneMetaTripleXYZ8 Clone() => new()

View File

@ -372,7 +372,8 @@ public void DumpPlacement()
var zone_names = new AHTB(placement.GetDataFileName("ZoneNameHashTable.tbl")).ToDictionary();
var zone_descs = SWSHInfo.Zones;
var obj_names = new AHTB(placement.GetDataFileName("ObjectNameHashTable.tbl")).ToDictionary();
var vanish_flags = new AHTB(placement.GetDataFileName("VanishFlagAutoTable.tbl")).ToDictionary();
//var vanish_flags = new AHTB(placement.GetDataFileName("VanishFlagAutoTable.tbl")).ToDictionary();
//var x = placement.GetDataFileName("template_data.bin"); // flatbuffer skybox
var wild_area = FlatBufferConverter.DeserializeFrom<PlacementArea8Archive>(placement.GetDataFileName("a_wr0101.bin"));
var isle_of_armor = FlatBufferConverter.DeserializeFrom<PlacementArea8Archive>(placement.GetDataFileName("a_wr0201.bin"));
var crown_tundra = FlatBufferConverter.DeserializeFrom<PlacementArea8Archive>(placement.GetDataFileName("a_wr0301.bin"));