NHSE/NHSE.Core/Save/Offsets/MainSaveOffsets10.cs
Josh (vector_cmdr) 2bfb5759bd
Add: Tour Hemisphere + Weather (#748)
Added the offset for tour weather area + offsets for tour hemisphere and tour weather seed.
Added to UI.
2026-02-12 23:47:34 +11:00

79 lines
3.7 KiB
C#

using System;
namespace NHSE.Core;
/// <summary>
/// <inheritdoc cref="MainSaveOffsets"/>
/// </summary>
public sealed class MainSaveOffsets10 : MainSaveOffsets
{
#region GSaveLand
public const int GSaveLandStart = 0x108;
public override int Animal => GSaveLandStart + 0x08;
public override int LandMyDesign => GSaveLandStart + 0x1D71E8;
public override int PatternsPRO => LandMyDesign + (PatternCount * DesignPattern.SIZE);
public override int PatternFlag => PatternsPRO + (PatternCount * DesignPatternPRO.SIZE);
public override int PatternTailor => PatternFlag + DesignPattern.SIZE;
public override int PatternsEditFlagStart => GSaveLandStart + 0x8BE150; // x100, HasPlayerEdited?
public override int PatternsProEditFlagStart => PatternsEditFlagStart + 0x64; // x100, HasPlayerEdited?
public const int GSaveWeather = GSaveLandStart + 0x1D6FB0;
public override int WeatherArea => GSaveWeather + 0x14; // Hemisphere
public override int WeatherRandSeed => GSaveWeather + 0x18;
public override int EventFlagLand => GSaveLandStart + 0x200FF4;
// Flag region for the five fruit.
public override int FruitFlags => EventFlagLand + 246;
// GSaveMainField
public const int GSaveMainFieldStart = GSaveLandStart + 0x2017F4;
public override int FieldItem => GSaveMainFieldStart + 0x00000;
public override int LandMakingMap => GSaveMainFieldStart + 0xAAA00;
public override int MainFieldStructure => GSaveMainFieldStart + 0xCF600;
public override int OutsideField => GSaveMainFieldStart + 0xCF998;
public override int MyDesignMap => GSaveMainFieldStart + 0xCFA34;
public override int PlayerHouseList => GSaveLandStart + 0x2DBAA0;
public override int NpcHouseList => GSaveLandStart + 0x40DAA0;
public const int GSaveShop = GSaveLandStart + 0x40ECE8;
public override int ShopKabu => GSaveShop + 0x2AD0; // part of shop
public override int Museum => GSaveLandStart + 0x411A80;
public override int Visitor => GSaveLandStart + 0x414E84;
public override int SaveFg => GSaveLandStart + 0x4150B4;
public override int SpecialtyFruit => SaveFg + 0x900;
public override int SisterFruit => SpecialtyFruit + 2;
public override int SisterFlower => SaveFg + 0x924;
public override int SpecialtyFlower => SisterFlower + 1;
public override int BulletinBoard => GSaveLandStart + 0x4159F8;
public override int AirportThemeColor => GSaveLandStart + 0x4F6600;
public override int GSaveCampSite => GSaveLandStart + 0x4f64e8;
public override int GSaveNpcCamp => GSaveCampSite + 4;
public override int CampLastVisitTime => GSaveCampSite + 0x110;
#endregion
#region GSaveLandOther
public const int GSaveLandOtherStart = 0x4FA1E0;
public override int LostItemBox => GSaveLandOtherStart + 0x5C1E20;
public override int LastSavedTime => GSaveLandOtherStart + 0x5C6748;
public override int TourWeatherArea => GSaveLandOtherStart + 0x5c6598;
public override int TourHemisphere => TourWeatherArea + 0x14;
public override int TourWeatherRandSeed => TourWeatherArea + 0x18;
#endregion
public override int VillagerSize => Villager1.SIZE;
public override IVillager ReadVillager(Memory<byte> data) => new Villager1(data);
public override int VillagerHouseSize => VillagerHouse1.SIZE;
public override IVillagerHouse ReadVillagerHouse(Memory<byte> data) => new VillagerHouse1(data);
public override int PlayerHouseSize => PlayerHouse1.SIZE;
public override IPlayerHouse ReadPlayerHouse(Memory<byte> data) => new PlayerHouse1(data);
public override int PlayerRoomSize => PlayerRoom1.SIZE;
public override IPlayerRoom ReadPlayerRoom(Memory<byte> data) => new PlayerRoom1(data);
}