28 lines
1.1 KiB
C#
28 lines
1.1 KiB
C#
|
|
namespace Theriapolis.Core.Persistence.SaveMigrations;
|
||
|
|
|
||
|
|
/// <summary>
|
||
|
|
/// Phase 7 M0 — additive migration from save schema v7 (Phase 6.5 ship) to
|
||
|
|
/// v8 (Phase 7 dungeons). Non-destructive: every v7 field carries over
|
||
|
|
/// unchanged. Phase 7 reserves three new save sections — anchors, building
|
||
|
|
/// deltas, and per-PoI dungeon state — but ships M0 with the version bump
|
||
|
|
/// only; the fields default-initialise to empty and a v7 save loads as
|
||
|
|
/// "no anchors persisted, no buildings modified, no dungeons visited"
|
||
|
|
/// which is the truth for any pre-Phase-7 save.
|
||
|
|
///
|
||
|
|
/// Subsequent Phase 7 milestones (M1+) will populate these sections;
|
||
|
|
/// the migration stays additive throughout.
|
||
|
|
/// </summary>
|
||
|
|
public sealed class V7ToV8Migration : ISaveMigration
|
||
|
|
{
|
||
|
|
public int FromVersion => 7;
|
||
|
|
public int ToVersion => 8;
|
||
|
|
|
||
|
|
public void Apply(SaveHeader header, SaveBody body)
|
||
|
|
{
|
||
|
|
// No data translation needed. Phase 7's new save sections
|
||
|
|
// (TAG_ANCHORS / TAG_BUILDINGS / TAG_DUNGEONS) default to empty in
|
||
|
|
// SaveBody and SaveCodec uses the established EOS-check pattern
|
||
|
|
// for additive sections. Pure version bump.
|
||
|
|
}
|
||
|
|
}
|