From 62e514f87958b9b61f4d3636b30f4e6d46b9ff5d Mon Sep 17 00:00:00 2001 From: Kurt Date: Sat, 4 Apr 2020 00:10:54 -0700 Subject: [PATCH] Add structure enums --- .../Structures/Building/BridgeMaterial.cs | 15 + NHSE.Core/Structures/Building/BridgeType.cs | 62 +++++ NHSE.Core/Structures/Building/Building.cs | 8 +- NHSE.Core/Structures/Building/BuildingType.cs | 37 +++ NHSE.Core/Structures/Building/DoorKind.cs | 259 ++++++++++++++++++ NHSE.Core/Structures/Building/RoofType.cs | 172 ++++++++++++ NHSE.Core/Structures/Building/SlopeType.cs | 15 + NHSE.Core/Structures/Building/WallType.cs | 155 +++++++++++ NHSE.Parsing/GameBCSVDumper.cs | 6 + NHSE.Tests/BuildingTests.cs | 2 +- 10 files changed, 725 insertions(+), 6 deletions(-) create mode 100644 NHSE.Core/Structures/Building/BridgeMaterial.cs create mode 100644 NHSE.Core/Structures/Building/BridgeType.cs create mode 100644 NHSE.Core/Structures/Building/BuildingType.cs create mode 100644 NHSE.Core/Structures/Building/DoorKind.cs create mode 100644 NHSE.Core/Structures/Building/RoofType.cs create mode 100644 NHSE.Core/Structures/Building/SlopeType.cs create mode 100644 NHSE.Core/Structures/Building/WallType.cs diff --git a/NHSE.Core/Structures/Building/BridgeMaterial.cs b/NHSE.Core/Structures/Building/BridgeMaterial.cs new file mode 100644 index 0000000..3b1f339 --- /dev/null +++ b/NHSE.Core/Structures/Building/BridgeMaterial.cs @@ -0,0 +1,15 @@ +namespace NHSE.Core +{ + public enum BridgeMaterial : byte + { + BridgeStone = 0x00, + BridgeSuspension = 0x01, + BridgeJapanese = 0x02, + BridgeLog = 0x04, + BridgeRed = 0x05, + BridgeIron = 0x06, + BridgeReserved = 0x07, + BridgeWood = 0x0A, + BridgeBricks = 0x0B, + } +} diff --git a/NHSE.Core/Structures/Building/BridgeType.cs b/NHSE.Core/Structures/Building/BridgeType.cs new file mode 100644 index 0000000..c2e5cd0 --- /dev/null +++ b/NHSE.Core/Structures/Building/BridgeType.cs @@ -0,0 +1,62 @@ +namespace NHSE.Core +{ +#pragma warning disable CA1027 // Mark enums with FlagsAttribute + public enum BridgeType : ushort +#pragma warning restore CA1027 // Mark enums with FlagsAttribute + { + BridgeStone03 = 0x00, + BridgeStone04 = 0x01, + BridgeStone05 = 0x02, + BridgeStoneDiagonal025 = 0x03, + BridgeStoneDiagonal030 = 0x04, + BridgeStoneDiagonal035 = 0x05, + BridgeSuspension04 = 0x06, + BridgeSuspension03 = 0x07, + BridgeSuspension05 = 0x08, + BridgeSuspensionDiagonal025 = 0x09, + BridgeSuspensionDiagonal030 = 0x0A, + BridgeSuspensionDiagonal035 = 0x0B, + BridgeJapanese04 = 0x0C, + BridgeLog04 = 0x0D, + BridgeLog03 = 0x0E, + BridgeLog05 = 0x0F, + BridgeLogDiagonal025 = 0x10, + BridgeLogDiagonal030 = 0x11, + BridgeLogDiagonal035 = 0x12, + BridgeJapanese03 = 0x13, + BridgeJapanese05 = 0x14, + BridgeJapaneseDiagonal025 = 0x15, + BridgeJapaneseDiagonal030 = 0x16, + BridgeJapaneseDiagonal035 = 0x17, + BridgeRed04 = 0x18, + BridgeIron04 = 0x19, + BridgeReserved03 = 0x1A, + BridgeReserved04 = 0x1B, + BridgeReserved05 = 0x1C, + BridgeReservedDiagonal025 = 0x1D, + BridgeReservedDiagonal030 = 0x1E, + BridgeReservedDiagonal035 = 0x1F, + BridgeRed03 = 0x20, + BridgeRed05 = 0x21, + BridgeRedDiagonal025 = 0x22, + BridgeRedDiagonal030 = 0x23, + BridgeRedDiagonal035 = 0x24, + BridgeWood04 = 0x25, + BridgeBricks04 = 0x26, + BridgeIron03 = 0x27, + BridgeIron05 = 0x28, + BridgeIronDiagonal025 = 0x29, + BridgeIronDiagonal030 = 0x2A, + BridgeIronDiagonal035 = 0x2B, + BridgeWood03 = 0x2C, + BridgeWood05 = 0x2D, + BridgeWoodDiagonal025 = 0x2E, + BridgeWoodDiagonal030 = 0x2F, + BridgeWoodDiagonal035 = 0x30, + BridgeBricks03 = 0x31, + BridgeBricks05 = 0x34, + BridgeBricksDiagonal025 = 0x35, + BridgeBricksDiagonal030 = 0x36, + BridgeBricksDiagonal035 = 0x37, + } +} diff --git a/NHSE.Core/Structures/Building/Building.cs b/NHSE.Core/Structures/Building/Building.cs index bd49ae4..8650585 100644 --- a/NHSE.Core/Structures/Building/Building.cs +++ b/NHSE.Core/Structures/Building/Building.cs @@ -12,7 +12,7 @@ public class Building : INamedObject private const string Details = nameof(Details); [Category(Details), Description("Type of Building")] - public ushort BuildingId { get; set; } + public BuildingType BuildingType { get; set; } [Category(Details), Description("X Coordinate of Building")] public ushort X { get; set; } @@ -28,7 +28,7 @@ public class Building : INamedObject public void Clear() { - BuildingId = 0; + BuildingType = 0; X = Y = Rotation = 0; Unk08 = Unk0C = Unk10 = 0; } @@ -36,8 +36,6 @@ public void Clear() public static Building[] GetArray(byte[] data) => data.GetArray(SIZE); public static byte[] SetArray(IReadOnlyList data) => data.SetArray(SIZE); public override string ToString() => ToString(Array.Empty()); - - public string ToString(IReadOnlyList names) => - $"{X:000},{Y:000} - {(BuildingId >= names.Count ? $"0x{BuildingId:X2}" : names[BuildingId])}"; + public string ToString(IReadOnlyList names) => $"{X:000},{Y:000} - {BuildingType}"; } } diff --git a/NHSE.Core/Structures/Building/BuildingType.cs b/NHSE.Core/Structures/Building/BuildingType.cs new file mode 100644 index 0000000..5ea9f44 --- /dev/null +++ b/NHSE.Core/Structures/Building/BuildingType.cs @@ -0,0 +1,37 @@ +namespace NHSE.Core +{ +#pragma warning disable CA1027 // Mark enums with FlagsAttribute + public enum BuildingType : ushort +#pragma warning restore CA1027 // Mark enums with FlagsAttribute + { + None = 0, + PlayerHouse1 = 1, + PlayerHouse2 = 2, + PlayerHouse3 = 3, + PlayerHouse4 = 4, + PlayerHouse5 = 5, + PlayerHouse6 = 6, + PlayerHouse7 = 7, + PlayerHouse8 = 8, + Villager1 = 9, + Villager2 = 10, + Villager3 = 11, + Villager4 = 12, + Villager5 = 13, + Villager6 = 14, + Villager7 = 15, + Villager8 = 16, + Villager9 = 17, + Villager10 = 18, + NooksCranny = 19, + ResidentCenterStructure = 20, + Museum = 21, + Airport = 22, + ResidentCenterTent = 23, + AblesSisters = 24, + Campsite = 25, + Bridge = 26, + Incline = 27, + Studio = 29, + } +} diff --git a/NHSE.Core/Structures/Building/DoorKind.cs b/NHSE.Core/Structures/Building/DoorKind.cs new file mode 100644 index 0000000..2be2b3b --- /dev/null +++ b/NHSE.Core/Structures/Building/DoorKind.cs @@ -0,0 +1,259 @@ +namespace NHSE.Core +{ + public enum DoorKind + { + HouseDoorStandardAR = 0x00, + HouseDoorStandardAS = 0x02, + HouseDoorIronAS = 0x03, + HouseDoorIronAR = 0x04, + HouseDoorIronpartsAS = 0x05, + HouseDoorIronpartsAR = 0x06, + HouseTentPADoor = 0x07, + HouseTentNADoor = 0x08, + HouseDoorReliefAS = 0x09, + HouseDoorReliefAR = 0x0A, + HouseDoorJapaneseAS = 0x0E, + HouseDoorJapaneseAR = 0x0F, + HouseDoorWindowAS = 0x10, + HouseDoorWindowAR = 0x11, + HouseDoorIronGrillAS = 0x12, + HouseDoorIronGrillAR = 0x13, + HouseDoorChineseAS = 0x14, + HouseDoorChineseAR = 0x15, + HouseDoorSimpleAS = 0x16, + HouseDoorSimpleAR = 0x17, + _1 = 0x18, + _2 = 0x19, + HouseDoorCarvingAS = 0x1A, + HouseDoorCarvingAR = 0x1B, + HouseDoorCercleWindowAS = 0x1C, + HouseDoorCercleWindowAR = 0x1D, + HouseDoorVerticalWindowAS = 0x1E, + HouseDoorVerticalWindowAR = 0x1F, + HouseDoorLatticeAS = 0x20, + HouseDoorLatticeAR = 0x21, + HouseDoorSimplicityAS = 0x22, + HouseDoorSimplicityAR = 0x23, + _3 = 0x25, + _4 = 0x26, + HouseTentNBDoor = 0x27, + HouseDoorIronGrillBS = 0x28, + HouseDoorIronGrillCS = 0x29, + HouseDoorIronGrillDS = 0x2A, + HouseDoorIronGrillES = 0x2B, + HouseDoorIronGrillFS = 0x2C, + HouseDoorIronGrillBR = 0x2D, + HouseDoorIronGrillCR = 0x2E, + HouseDoorIronGrillDR = 0x2F, + HouseDoorIronGrillER = 0x30, + HouseDoorIronGrillFR = 0x31, + HouseDoorCarvingBS = 0x32, + HouseDoorCarvingCS = 0x33, + HouseDoorCarvingDS = 0x34, + HouseDoorCarvingES = 0x35, + HouseDoorCarvingBR = 0x36, + HouseDoorCarvingCR = 0x37, + HouseDoorCarvingDR = 0x38, + HouseDoorCarvingER = 0x39, + HouseDoorIronGrillGS = 0x3A, + HouseDoorIronGrillGR = 0x3B, + HouseDoorIronGrillHS = 0x3C, + HouseDoorIronGrillHR = 0x3D, + HouseDoorVerticalWindowBS = 0x3E, + HouseDoorVerticalWindowCS = 0x3F, + HouseDoorVerticalWindowDS = 0x40, + HouseDoorVerticalWindowES = 0x41, + HouseDoorVerticalWindowFS = 0x42, + HouseDoorVerticalWindowGS = 0x43, + HouseDoorVerticalWindowHS = 0x44, + HouseDoorVerticalWindowBR = 0x45, + HouseDoorVerticalWindowCR = 0x46, + HouseDoorVerticalWindowDR = 0x47, + HouseDoorVerticalWindowER = 0x48, + HouseDoorVerticalWindowFR = 0x49, + HouseDoorVerticalWindowGR = 0x4A, + HouseDoorVerticalWindowHR = 0x4B, + HouseDoorReliefBS = 0x4C, + HouseDoorReliefCS = 0x4D, + HouseDoorReliefDS = 0x4E, + HouseDoorReliefES = 0x4F, + HouseDoorReliefFS = 0x50, + HouseDoorReliefGS = 0x51, + HouseDoorReliefHS = 0x52, + HouseDoorReliefBR = 0x53, + HouseDoorReliefCR = 0x54, + HouseDoorReliefDR = 0x55, + HouseDoorReliefER = 0x56, + HouseDoorReliefFR = 0x57, + HouseDoorReliefGR = 0x58, + HouseDoorReliefHR = 0x59, + HouseDoorIronpartsBS = 0x5A, + HouseDoorIronpartsCS = 0x5B, + HouseDoorIronpartsDS = 0x5C, + HouseDoorIronpartsES = 0x5D, + HouseDoorIronpartsFS = 0x5E, + HouseDoorIronpartsGS = 0x5F, + HouseDoorIronpartsHS = 0x60, + HouseDoorIronpartsBR = 0x61, + HouseDoorIronpartsCR = 0x62, + HouseDoorIronpartsDR = 0x63, + HouseDoorIronpartsER = 0x64, + HouseDoorIronpartsFR = 0x65, + HouseDoorIronpartsGR = 0x66, + HouseDoorIronpartsHR = 0x67, + HouseDoorSimpleBS = 0x84, + HouseDoorSimpleCS = 0x85, + HouseDoorSimpleDS = 0x86, + HouseDoorSimpleES = 0x87, + HouseDoorSimpleFS = 0x88, + HouseDoorSimpleGS = 0x89, + HouseDoorSimpleHS = 0x8A, + HouseDoorSimpleBR = 0x8B, + HouseDoorSimpleCR = 0x8C, + HouseDoorSimpleDR = 0x8D, + HouseDoorSimpleER = 0x8E, + HouseDoorSimpleFR = 0x8F, + HouseDoorSimpleGR = 0x90, + HouseDoorSimpleHR = 0x91, + HouseDoorJapaneseBS = 0x92, + HouseDoorJapaneseCS = 0x93, + HouseDoorJapaneseDS = 0x94, + HouseDoorJapaneseES = 0x95, + HouseDoorJapaneseFS = 0x96, + HouseDoorJapaneseBR = 0x97, + HouseDoorJapaneseCR = 0x98, + HouseDoorJapaneseDR = 0x99, + HouseDoorJapaneseER = 0x9A, + HouseDoorJapaneseFR = 0x9B, + HouseDoorLatticeBS = 0x9C, + HouseDoorLatticeCS = 0x9D, + HouseDoorLatticeDS = 0x9E, + HouseDoorLatticeES = 0x9F, + HouseDoorLatticeFS = 0xA0, + HouseDoorLatticeGS = 0xA1, + HouseDoorLatticeHS = 0xA2, + HouseDoorLatticeBR = 0xA3, + HouseDoorLatticeCR = 0xA4, + HouseDoorLatticeDR = 0xA5, + HouseDoorLatticeER = 0xA6, + HouseDoorLatticeFR = 0xA7, + HouseDoorLatticeGR = 0xA8, + HouseDoorLatticeHR = 0xA9, + HouseDoorCercleWindowBS = 0xAA, + HouseDoorCercleWindowCS = 0xAB, + HouseDoorCercleWindowDS = 0xAC, + HouseDoorCercleWindowES = 0xAD, + HouseDoorCercleWindowFS = 0xAE, + HouseDoorCercleWindowGS = 0xAF, + HouseDoorCercleWindowHS = 0xB0, + HouseDoorCercleWindowBR = 0xB1, + HouseDoorCercleWindowCR = 0xB2, + HouseDoorCercleWindowDR = 0xB3, + HouseDoorCercleWindowER = 0xB4, + HouseDoorCercleWindowFR = 0xB5, + HouseDoorCercleWindowGR = 0xB6, + HouseDoorCercleWindowHR = 0xB7, + HouseDoorJapaneseGS = 0xB8, + HouseDoorJapaneseGR = 0xB9, + HouseDoorSimplicityBS = 0xBA, + HouseDoorSimplicityCS = 0xBB, + HouseDoorSimplicityDS = 0xBC, + HouseDoorSimplicityES = 0xBD, + HouseDoorSimplicityFS = 0xBE, + HouseDoorSimplicityGS = 0xBF, + HouseDoorSimplicityHS = 0xC0, + HouseDoorSimplicityBR = 0xC1, + HouseDoorSimplicityCR = 0xC2, + HouseDoorSimplicityDR = 0xC3, + HouseDoorSimplicityER = 0xC4, + HouseDoorSimplicityFR = 0xC5, + HouseDoorSimplicityGR = 0xC6, + HouseDoorSimplicityHR = 0xC7, + HouseDoorChineseBS = 0xC8, + HouseDoorChineseCS = 0xC9, + HouseDoorChineseDS = 0xCA, + HouseDoorChineseES = 0xCB, + HouseDoorChineseFS = 0xCC, + HouseDoorChineseGS = 0xCD, + HouseDoorChineseHS = 0xCE, + HouseDoorChineseBR = 0xCF, + HouseDoorChineseCR = 0xD0, + HouseDoorChineseDR = 0xD1, + HouseDoorChineseER = 0xD2, + HouseDoorChineseFR = 0xD3, + HouseDoorChineseGR = 0xD4, + HouseDoorChineseHR = 0xD5, + HouseDoorWindowBS = 0xDD, + HouseDoorWindowCS = 0xDE, + HouseDoorWindowDS = 0xDF, + HouseDoorWindowES = 0xE0, + HouseDoorWindowFS = 0xE1, + HouseDoorWindowGS = 0xE2, + HouseDoorWindowHS = 0xE3, + HouseDoorWindowBR = 0xE4, + HouseDoorWindowCR = 0xE5, + HouseDoorWindowDR = 0xE6, + HouseDoorWindowER = 0xE7, + HouseDoorWindowFR = 0xE8, + HouseDoorWindowGR = 0xE9, + HouseDoorWindowHR = 0xEA, + HouseDoorIronBS = 0xEB, + HouseDoorIronCS = 0xEC, + HouseDoorIronDS = 0xED, + HouseDoorIronES = 0xEE, + HouseDoorIronFS = 0xEF, + HouseDoorIronGS = 0xF0, + HouseDoorIronHS = 0xF1, + HouseDoorIronBR = 0xF2, + HouseDoorIronCR = 0xF3, + HouseDoorIronDR = 0xF4, + HouseDoorIronER = 0xF5, + HouseDoorIronFR = 0xF6, + HouseDoorIronGR = 0xF7, + HouseDoorIronHR = 0xF8, + HouseDoorStandardBS = 0xF9, + HouseDoorStandardCS = 0xFA, + HouseDoorStandardDS = 0xFB, + HouseDoorStandardES = 0xFC, + HouseDoorStandardFS = 0xFD, + HouseDoorStandardGS = 0xFE, + HouseDoorStandardHS = 0xFF, + HouseDoorStandardBR = 0x100, + HouseDoorStandardCR = 0x101, + HouseDoorStandardDR = 0x102, + HouseDoorStandardER = 0x103, + HouseDoorStandardFR = 0x104, + HouseDoorStandardGR = 0x105, + HouseDoorStandardHR = 0x106, + HouseDoorReliefIS = 0x107, + HouseDoorReliefIR = 0x108, + HouseDoorReliefJS = 0x109, + HouseDoorReliefJR = 0x10A, + HouseDoorCarvingFS = 0x10B, + HouseDoorCarvingFR = 0x10C, + HouseDoorCercleWindowIS = 0x10D, + HouseDoorCercleWindowIR = 0x10E, + HouseDoorCercleWindowJS = 0x10F, + HouseDoorCercleWindowJR = 0x110, + HouseDoorVerticalWindowIS = 0x111, + HouseDoorVerticalWindowIR = 0x112, + HouseDoorVerticalWindowJS = 0x113, + HouseDoorVerticalWindowJR = 0x114, + HouseDoorWindowIS = 0x115, + HouseDoorWindowIR = 0x116, + HouseDoorWindowJS = 0x117, + HouseDoorWindowJR = 0x118, + HouseDoorStandardIS = 0x119, + HouseDoorStandardIR = 0x11A, + HouseDoorStandardJS = 0x11B, + HouseDoorStandardJR = 0x11C, + HouseDoorSimplicityIS = 0x11D, + HouseDoorSimplicityIR = 0x11E, + HouseDoorSimplicityJS = 0x11F, + HouseDoorSimplicityJR = 0x120, + HouseDoorIronGrillIS = 0x121, + HouseDoorIronGrillIR = 0x122, + HouseDoorIronGrillJS = 0x123, + HouseDoorIronGrillJR = 0x124, + } +} diff --git a/NHSE.Core/Structures/Building/RoofType.cs b/NHSE.Core/Structures/Building/RoofType.cs new file mode 100644 index 0000000..200f6ad --- /dev/null +++ b/NHSE.Core/Structures/Building/RoofType.cs @@ -0,0 +1,172 @@ +namespace NHSE.Core +{ + public enum RoofType : ushort + { + HouseRoofPA04StandardA = 0x00, + HouseRoofPA04StandardB = 0x03, + _1 = 0x04, + _2 = 0x05, + HouseRoofPA04ThatchedA = 0x06, + HouseRoofPA04StoneA = 0x07, + HouseRoofPA04WesterntileA = 0x08, + _3 = 0x09, + HouseRoofPA00StandardA = 0x0A, + HouseRoofPA00StandardB = 0x0B, + HouseRoofPA00StandardC = 0x0C, + HouseRoofPA00StandardD = 0x0D, + HouseRoofPA00StandardE = 0x0E, + HouseRoofPA00StandardF = 0x0F, + HouseRoofPA00StandardG = 0x10, + HouseRoofPA00StandardH = 0x11, + _4 = 0x12, + HouseRoofNASlateA = 0x13, + HouseRoofNAMetalA = 0x14, + HouseRoofNATileA = 0x15, + HouseRoofPA04ThatchedB = 0x17, + HouseRoofPA04ThatchedC = 0x18, + HouseRoofPA04ThatchedD = 0x19, + HouseRoofPA04ThatchedE = 0x1A, + HouseRoofNBWoodtileA = 0x1B, + HouseRoofNBThatchedA = 0x1C, + HouseRoofNBWoodpanelA = 0x1D, + HouseRoofNCJapaneseA = 0x1E, + HouseRoofNCThatchedA = 0x1F, + HouseRoofNCStoneweightA = 0x20, + _5 = 0x21, + _6 = 0x22, + HouseRoofNDStoneA = 0x23, + HouseRoofNDThatchedA = 0x24, + HouseRoofNDWoodA = 0x25, + HouseRoofPA01StandardA = 0x26, + HouseRoofPA03StandardA = 0x27, + HouseRoofNATileB = 0x28, + HouseRoofNATileC = 0x29, + HouseRoofNATileD = 0x2A, + HouseRoofNATileE = 0x2B, + HouseRoofNATileF = 0x2C, + HouseRoofNATileG = 0x2D, + HouseRoofNATileH = 0x2E, + HouseRoofPA02StandardA = 0x2F, + HouseRoofNAMetalB = 0x30, + HouseRoofNAMetalC = 0x31, + HouseRoofNAMetalD = 0x32, + HouseRoofNAMetalE = 0x33, + HouseRoofNAMetalF = 0x34, + HouseRoofNAMetalG = 0x35, + HouseRoofNAMetalH = 0x36, + HouseRoofNASlateB = 0x37, + HouseRoofNASlateC = 0x38, + HouseRoofNASlateD = 0x39, + HouseRoofNASlateE = 0x3A, + HouseRoofNASlateF = 0x3B, + HouseRoofNASlateG = 0x3C, + HouseRoofNASlateH = 0x3D, + HouseRoofNBWoodtileB = 0x3E, + HouseRoofNBWoodtileC = 0x3F, + HouseRoofNBWoodtileD = 0x40, + HouseRoofNBWoodtileE = 0x41, + HouseRoofNBWoodtileF = 0x42, + HouseRoofNBWoodtileG = 0x43, + HouseRoofNBWoodtileH = 0x44, + HouseRoofNBWoodpanelB = 0x45, + HouseRoofNBWoodpanelC = 0x46, + HouseRoofNBWoodpanelD = 0x47, + HouseRoofNBWoodpanelE = 0x48, + HouseRoofNBWoodpanelF = 0x49, + HouseRoofNBWoodpanelG = 0x4A, + HouseRoofNBWoodpanelH = 0x4B, + HouseRoofPA01StandardB = 0x4C, + HouseRoofPA01StandardC = 0x4D, + HouseRoofPA01StandardD = 0x4E, + HouseRoofPA01StandardE = 0x4F, + HouseRoofPA01StandardF = 0x50, + HouseRoofPA01StandardG = 0x51, + HouseRoofPA01StandardH = 0x52, + HouseRoofNBThatchedB = 0x53, + HouseRoofNBThatchedC = 0x54, + HouseRoofNBThatchedD = 0x55, + HouseRoofNBThatchedE = 0x56, + HouseRoofNBThatchedF = 0x57, + HouseRoofNBThatchedG = 0x58, + HouseRoofNBThatchedH = 0x59, + HouseRoofNCJapaneseB = 0x5A, + HouseRoofNCJapaneseC = 0x5B, + HouseRoofNCJapaneseD = 0x5C, + HouseRoofNCJapaneseE = 0x5D, + HouseRoofNCJapaneseF = 0x5E, + HouseRoofNCJapaneseG = 0x5F, + HouseRoofNCJapaneseH = 0x60, + HouseRoofNCStoneweightB = 0x61, + HouseRoofNCStoneweightC = 0x62, + HouseRoofNCStoneweightD = 0x63, + HouseRoofNCStoneweightE = 0x64, + HouseRoofNCStoneweightF = 0x65, + HouseRoofNDWoodB = 0x66, + HouseRoofNDWoodC = 0x67, + HouseRoofNDWoodD = 0x68, + HouseRoofNDWoodE = 0x69, + HouseRoofNDWoodF = 0x6A, + HouseRoofNDWoodG = 0x6B, + HouseRoofNDWoodH = 0x6C, + HouseRoofNDStoneB = 0x6D, + HouseRoofNDStoneC = 0x6E, + HouseRoofNDStoneD = 0x6F, + HouseRoofNDStoneE = 0x70, + HouseRoofNDStoneF = 0x71, + HouseRoofNDStoneG = 0x72, + HouseRoofNDStoneH = 0x73, + HouseRoofNCThatchedB = 0x74, + HouseRoofNCThatchedC = 0x75, + HouseRoofNCThatchedD = 0x76, + HouseRoofNCThatchedE = 0x77, + HouseRoofNCThatchedF = 0x78, + HouseRoofNDThatchedB = 0x79, + HouseRoofNDThatchedC = 0x7A, + HouseRoofNDThatchedD = 0x7B, + HouseRoofNDThatchedE = 0x7C, + HouseRoofNDThatchedF = 0x7D, + HouseRoofPA02StandardB = 0x7E, + HouseRoofPA02StandardC = 0x7F, + HouseRoofPA02StandardD = 0x80, + HouseRoofPA02StandardE = 0x81, + HouseRoofPA02StandardF = 0x82, + HouseRoofPA02StandardG = 0x83, + HouseRoofPA02StandardH = 0x84, + HouseRoofPA03StandardB = 0x85, + HouseRoofPA03StandardC = 0x86, + HouseRoofPA03StandardD = 0x87, + HouseRoofPA03StandardE = 0x88, + HouseRoofPA03StandardF = 0x89, + HouseRoofPA03StandardG = 0x8A, + HouseRoofPA03StandardH = 0x8B, + HouseRoofPA04StandardC = 0x93, + HouseRoofPA04StandardD = 0x94, + HouseRoofPA04StandardE = 0x95, + HouseRoofPA04StandardF = 0x96, + HouseRoofPA04StandardG = 0x97, + HouseRoofPA04StandardH = 0x98, + HouseRoofPA04StoneB = 0x99, + HouseRoofPA04StoneC = 0x9A, + HouseRoofPA04StoneD = 0x9B, + HouseRoofPA04StoneE = 0x9C, + HouseRoofPA04StoneF = 0x9D, + HouseRoofPA04StoneG = 0x9E, + HouseRoofPA04StoneH = 0x9F, + HouseRoofPA04WesterntileB = 0xA0, + HouseRoofPA04WesterntileC = 0xA1, + HouseRoofPA04WesterntileD = 0xA2, + HouseRoofPA04WesterntileE = 0xA3, + HouseRoofPA04WesterntileF = 0xA4, + HouseRoofPA04WesterntileG = 0xA5, + HouseRoofPA04WesterntileH = 0xA6, + HouseRoofPA04ThatchedF = 0xA7, + HouseRoofPA04ThatchedG = 0xA8, + HouseRoofPA04ThatchedH = 0xA9, + HouseRoofNAMetalI = 0xAA, + HouseRoofNBWoodtileI = 0xAB, + HouseRoofNBWoodtileJ = 0xAC, + HouseRoofNASlateI = 0xAD, + HouseRoofNDWoodI = 0xAE, + HouseRoofNDWoodJ = 0xAF, + } +} diff --git a/NHSE.Core/Structures/Building/SlopeType.cs b/NHSE.Core/Structures/Building/SlopeType.cs new file mode 100644 index 0000000..760b8ae --- /dev/null +++ b/NHSE.Core/Structures/Building/SlopeType.cs @@ -0,0 +1,15 @@ +namespace NHSE.Core +{ + public enum SlopeType : ushort + { + SlopeStoneStair = 0x00, + SlopeIronStair = 0x01, + SlopeWood = 0x02, + SlopeWoodStair = 0x03, + SlopeBrickStair = 0x04, + SlopeReserved = 0x05, + SlopeNatural = 0x1D, + SlopeWoodBlue = 0x1E, + SlopeIronStairBlue = 0x1F, + } +} diff --git a/NHSE.Core/Structures/Building/WallType.cs b/NHSE.Core/Structures/Building/WallType.cs new file mode 100644 index 0000000..840c5cc --- /dev/null +++ b/NHSE.Core/Structures/Building/WallType.cs @@ -0,0 +1,155 @@ +namespace NHSE.Core +{ + public enum WallType : ushort + { + HouseWallPA04StandardA = 0x00, + HouseWallPA04StandardB = 0x05, + HouseWallPA04StandardC = 0x06, + HouseTentPA = 0x07, + HouseTentNA = 0x08, + HouseWallPA04WoodframeA = 0x09, + HouseWallPA04StoneA = 0x0A, + HouseWallNForSale = 0x0B, + HouseWallNSoldOut = 0x0C, + HouseWallPA00StandardA = 0x0D, + HouseWallNAWoodsidingA = 0x0E, + HouseWallNABrickA = 0x0F, + HouseWallNAStuccoA = 0x10, + HouseWallPA04StuccoA = 0x13, + HouseWallPA04WoodframeB = 0x14, + HouseWallPA04WoodframeC = 0x15, + HouseWallPA04WoodframeD = 0x16, + HouseWallPA04WoodframeE = 0x17, + HouseWallNBStuccoA = 0x18, + HouseWallNBLogA = 0x19, + HouseWallNBStoneA = 0x1A, + HouseWallNCJapaneseA = 0x1B, + HouseWallNCOrientalA = 0x1C, + HouseWallNCWoodA = 0x1D, + HouseWallHouseMovingPA = 0x1E, + HouseWallHouseMovingNA = 0x1F, + HouseWallNDStuccoA = 0x20, + HouseWallNDSoilA = 0x21, + HouseWallNDWoodA = 0x22, + HouseWallPA01StandardA = 0x23, + HouseTentNB = 0x24, + HouseWallPA03StandardA = 0x25, + HouseWallNAStuccoB = 0x2A, + HouseWallNAStuccoC = 0x2B, + HouseWallNAStuccoD = 0x2C, + HouseWallNAStuccoE = 0x2D, + HouseWallNAStuccoF = 0x2E, + HouseWallNAStuccoG = 0x2F, + HouseWallNAStuccoH = 0x30, + HouseWallNABrickB = 0x39, + HouseWallNABrickC = 0x3A, + HouseWallNABrickD = 0x3B, + HouseWallNABrickE = 0x3C, + HouseWallNABrickF = 0x3D, + HouseWallNABrickG = 0x3E, + HouseWallNABrickH = 0x3F, + HouseWallPA02StandardA = 0x40, + HouseWallNAWoodsidingB = 0x41, + HouseWallNAWoodsidingC = 0x42, + HouseWallNAWoodsidingD = 0x43, + HouseWallNAWoodsidingE = 0x44, + HouseWallNAWoodsidingF = 0x45, + HouseWallNAWoodsidingG = 0x46, + HouseWallNAWoodsidingH = 0x47, + HouseWallNBStuccoB = 0x48, + HouseWallNBStuccoC = 0x49, + HouseWallNBStuccoD = 0x4A, + HouseWallNBStuccoE = 0x4B, + HouseWallNBStuccoF = 0x4C, + HouseWallNBStuccoG = 0x4D, + HouseWallNBStuccoH = 0x4E, + HouseWallNBStoneB = 0x4F, + HouseWallNBStoneC = 0x50, + HouseWallNBStoneD = 0x51, + HouseWallNBStoneE = 0x52, + HouseWallNBStoneF = 0x53, + HouseWallNBStoneG = 0x54, + HouseWallNBStoneH = 0x55, + HouseWallNBLogB = 0x56, + HouseWallNBLogC = 0x57, + HouseWallNBLogD = 0x58, + HouseWallNBLogE = 0x59, + HouseWallNBLogF = 0x5A, + HouseWallNBLogG = 0x5B, + HouseWallNBLogH = 0x5C, + HouseWallNCOrientalB = 0x64, + HouseWallNCOrientalC = 0x65, + HouseWallNCOrientalD = 0x66, + HouseWallNCOrientalE = 0x67, + HouseWallNCOrientalF = 0x68, + HouseWallNCOrientalG = 0x69, + HouseWallNCOrientalH = 0x6A, + HouseWallNCJapaneseB = 0x6B, + HouseWallNCJapaneseC = 0x6C, + HouseWallNCJapaneseD = 0x6D, + HouseWallNCJapaneseE = 0x6E, + HouseWallNCJapaneseF = 0x6F, + HouseWallNCJapaneseG = 0x70, + HouseWallNCJapaneseH = 0x71, + HouseWallNCWoodB = 0x72, + HouseWallNCWoodC = 0x73, + HouseWallNCWoodD = 0x74, + HouseWallNCWoodE = 0x75, + HouseWallNCWoodF = 0x76, + HouseWallNCWoodG = 0x77, + HouseWallNCWoodH = 0x78, + HouseWallNDSoilB = 0x79, + HouseWallNDSoilC = 0x7A, + HouseWallNDSoilD = 0x7B, + HouseWallNDSoilE = 0x7C, + HouseWallNDSoilF = 0x7D, + HouseWallNDSoilG = 0x7E, + HouseWallNDSoilH = 0x7F, + HouseWallNDStuccoB = 0x80, + HouseWallNDStuccoC = 0x81, + HouseWallNDStuccoD = 0x82, + HouseWallNDStuccoE = 0x83, + HouseWallNDStuccoF = 0x84, + HouseWallNDStuccoG = 0x85, + HouseWallNDStuccoH = 0x86, + HouseWallNDWoodB = 0x87, + HouseWallNDWoodC = 0x88, + HouseWallNDWoodD = 0x89, + HouseWallNDWoodE = 0x8A, + HouseWallNDWoodF = 0x8B, + HouseWallNDWoodG = 0x8C, + HouseWallNDWoodH = 0x8D, + HouseWallPA04WoodframeF = 0x8E, + HouseWallPA04WoodframeG = 0x8F, + HouseWallPA04WoodframeH = 0x90, + HouseWallPA04StoneB = 0x91, + HouseWallPA04StoneC = 0x92, + HouseWallPA04StoneD = 0x93, + HouseWallPA04StoneE = 0x94, + HouseWallPA04StoneF = 0x95, + HouseWallPA04StoneG = 0x96, + HouseWallPA04StoneH = 0x97, + HouseWallPA04StuccoB = 0x98, + HouseWallPA04StuccoC = 0x99, + HouseWallPA04StuccoD = 0x9A, + HouseWallPA04StuccoE = 0x9B, + HouseWallPA04StuccoF = 0x9C, + HouseWallPA04StuccoG = 0x9D, + HouseWallPA04StuccoH = 0x9E, + HouseWallPA04StandardD = 0x9F, + HouseWallPA04StandardE = 0xA0, + HouseWallPA04StandardF = 0xA1, + HouseWallPA04StandardG = 0xA2, + HouseWallPA04StandardH = 0xA3, + HouseWallNAMetalA = 0xA4, + HouseWallNAMetalB = 0xA5, + HouseWallNAMetalC = 0xA6, + HouseWallNAMetalD = 0xA7, + HouseWallNAMetalE = 0xA8, + HouseWallNAMetalF = 0xA9, + HouseWallNAMetalG = 0xAA, + HouseWallNAMetalH = 0xAB, + HouseWallNAWoodsidingI = 0xAC, + HouseWallNAWoodsidingJ = 0xAD, + } +} diff --git a/NHSE.Parsing/GameBCSVDumper.cs b/NHSE.Parsing/GameBCSVDumper.cs index a16c849..a1687fb 100644 --- a/NHSE.Parsing/GameBCSVDumper.cs +++ b/NHSE.Parsing/GameBCSVDumper.cs @@ -47,6 +47,12 @@ void DumpB(string fn, byte[] bytes) DumpS("ItemKind.txt", GetPossibleEnum(pathBCSV, "ItemParam.bcsv", 0xFC275E86)); DumpS("PlantKind.txt", GetPossibleEnum(pathBCSV, "FgMainParam.bcsv", 0x48EF0398)); DumpS("TerrainKind.txt", GetNumberedEnumValues(pathBCSV, "FieldLandMakingUnitModelParam.bcsv", 0x39B5A93D, 0x54706054)); + DumpS("BridgeKind.txt", GetNumberedEnumValues(pathBCSV, "StructureBridgeParam.bcsv", 0x39B5A93D, 0x54706054)); + DumpS("BridgeMaterial.txt", GetNumberedEnumValues(pathBCSV, "StructureBridgeTypeParam.bcsv", 0x68CF5938, 0x54706054)); + DumpS("SlopeKind.txt", GetNumberedEnumValues(pathBCSV, "StructureSlopeParam.bcsv", 0x39B5A93D, 0x54706054)); + DumpS("RoofKind.txt", GetNumberedEnumValues(pathBCSV, "StructureHouseRoofParam.bcsv", 0x39B5A93D, 0x54706054)); + DumpS("DoorKind.txt", GetNumberedEnumValues(pathBCSV, "StructureHouseDoorParam.bcsv", 0x39B5A93D, 0x54706054)); + DumpS("WallKind.txt", GetNumberedEnumValues(pathBCSV, "StructureHouseWallParam.bcsv", 0x39B5A93D, 0x54706054)); DumpB("item_kind.bin", GetItemKindArray(pathBCSV)); DumpS("plants.txt", GetPlantedNames(pathBCSV)); diff --git a/NHSE.Tests/BuildingTests.cs b/NHSE.Tests/BuildingTests.cs index 861b2ff..f177ae5 100644 --- a/NHSE.Tests/BuildingTests.cs +++ b/NHSE.Tests/BuildingTests.cs @@ -18,7 +18,7 @@ public void BuildingMarshal() [Fact] public void BuildingClear() { - var item = new Building {BuildingId = 1, X=5, Y=7}; + var item = new Building {BuildingType = BuildingType.PlayerHouse1, X=5, Y=7}; var bytes = item.ToBytesClass(); bytes.Any(z => z != 0).Should().BeTrue();