From 6cff90ab4d8ba819f5af94cf0620bc89b91f1bb4 Mon Sep 17 00:00:00 2001 From: Kurt Date: Mon, 20 Sep 2021 13:52:23 -0700 Subject: [PATCH] Enumerate stand/sitting --- .../Holders/PlacementZone8OtherNPCHolder.cs | 25 ++++++++++++------- .../Holders/PlacementZone8SpeciesHolder.cs | 4 +-- .../Gen8/Placement/Zone/PlacementZone8.cs | 2 ++ pkNX.WinForms/Dumping/GameDumperSWSH.cs | 3 ++- 4 files changed, 22 insertions(+), 12 deletions(-) diff --git a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8OtherNPCHolder.cs b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8OtherNPCHolder.cs index 56b0e23e..5a812d1b 100644 --- a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8OtherNPCHolder.cs +++ b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8OtherNPCHolder.cs @@ -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(); // 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 Models = new() + public static readonly Dictionary 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 { diff --git a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8SpeciesHolder.cs b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8SpeciesHolder.cs index fcb902d2..f8c3a8cd 100644 --- a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8SpeciesHolder.cs +++ b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/Holders/PlacementZone8SpeciesHolder.cs @@ -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, }; } diff --git a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/PlacementZone8.cs b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/PlacementZone8.cs index 08ec8986..8361ccaf 100644 --- a/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/PlacementZone8.cs +++ b/pkNX.Structures.FlatBuffers/Gen8/Placement/Zone/PlacementZone8.cs @@ -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() diff --git a/pkNX.WinForms/Dumping/GameDumperSWSH.cs b/pkNX.WinForms/Dumping/GameDumperSWSH.cs index e40bd3d7..dc6d1182 100644 --- a/pkNX.WinForms/Dumping/GameDumperSWSH.cs +++ b/pkNX.WinForms/Dumping/GameDumperSWSH.cs @@ -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(placement.GetDataFileName("a_wr0101.bin")); var isle_of_armor = FlatBufferConverter.DeserializeFrom(placement.GetDataFileName("a_wr0201.bin")); var crown_tundra = FlatBufferConverter.DeserializeFrom(placement.GetDataFileName("a_wr0301.bin"));