Add offsets for v1.2

up next: bcsv/msbt
This commit is contained in:
Kurt 2020-04-22 20:09:29 -07:00
parent 3a35e25c64
commit b6878e4ad4
7 changed files with 56 additions and 5 deletions

View File

@ -44,7 +44,7 @@ public static MainSaveOffsets GetOffsets(FileHeaderInfo Info)
3 => new MainSaveOffsets11(),
4 => new MainSaveOffsets11(),
5 => new MainSaveOffsets11(),
6 => new MainSaveOffsets11(),
6 => new MainSaveOffsets12(),
_ => throw new IndexOutOfRangeException("Unknown revision!"),
};
}

View File

@ -23,4 +23,4 @@ public class MainSaveOffsets11 : MainSaveOffsets
public override int RecycleBin => 0xABDE70; // +0x1E70 from v1.0
public override int LastSavedTime => RecycleBin + 0x4958;
}
}
}

View File

@ -0,0 +1,26 @@
namespace NHSE.Core
{
/// <summary>
/// <inheritdoc cref="MainSaveOffsets"/>
/// </summary>
public class MainSaveOffsets12 : MainSaveOffsets
{
public override int Villager => 0x120;
public override int Patterns => 0x1D7310;
public override int EventFlagLand => FieldItem - 0x800;
// GSaveMainField
public override int FieldItem => 0x20191C;
public override int Terrain => Buildings - 0x24C00;
public override int Buildings => 0x2D0F1C;
public override int Acres => 0x2D12B4;
public override int PlayerHouseList => FieldItem + 0xDAA2C;
public override int NpcHouseList => PlayerHouseList + (PlayerCount * PlayerHouse.SIZE);
public override int TurnipExchange => 0x412060;
public override int RecycleBin => 0xACA0A0; // +0xC230 from v1.1
public override int LastSavedTime => RecycleBin + 0x4958;
}
}

View File

@ -39,7 +39,7 @@ public static PersonalOffsets GetOffsets(FileHeaderInfo Info)
3 => new PersonalOffsets11(),
4 => new PersonalOffsets11(),
5 => new PersonalOffsets11(),
6 => new PersonalOffsets11(),
6 => new PersonalOffsets12(),
_ => throw new IndexOutOfRangeException("Unknown revision!"),
};
}

View File

@ -22,4 +22,4 @@ public sealed class PersonalOffsets11 : PersonalOffsets
public override int MaxRecipeID { get; } = 0x2C8;
}
}
}

View File

@ -0,0 +1,25 @@
namespace NHSE.Core
{
/// <summary>
/// <inheritdoc cref="PersonalOffsets"/>
/// </summary>
public sealed class PersonalOffsets12 : PersonalOffsets
{
public override int PersonalId => 0xB0B8;
public override int EventFlagsPlayer => PersonalId + 0x38;
public override int Activity => 0xCF84;
public override int NookMiles => 0x11588;
public override int Photo => 0x117C4; // +0x3FC from v1.1
public override int Pockets1 => 0x35E50; // +0x230 from v1.1
public override int Pockets2 => Pockets1 + (8 * Pockets1Count) + 0x18;
public override int Wallet => Pockets2 + (8 * Pockets2Count) + 0x18;
public override int Storage => Wallet + 0xC;
public override int ReceivedItems => 0x3FE98; // +0x230 from v1.1
public override int Bank => 0x6A424; // +0x17F0 from v1.1
public override int Recipes => Bank + 0x10;
public override int MaxRecipeID { get; } = 0x2C8;
}
}

View File

@ -17,7 +17,7 @@ public static class GameFileDumper
/// <param name="path">Path to dump to</param>
public static void Dump(this HorizonSave sav, string path)
{
sav.Main.DumpVillagerHouses(path);
sav.Main.Dump(path);
foreach (var p in sav.Players)
{
var dir = Path.Combine(path, p.DirectoryName);