diff options
Diffstat (limited to 'src/LivingVillage.Kernel/WorldSave.fs')
| -rw-r--r-- | src/LivingVillage.Kernel/WorldSave.fs | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/src/LivingVillage.Kernel/WorldSave.fs b/src/LivingVillage.Kernel/WorldSave.fs index 8a47c7d..e68a45f 100644 --- a/src/LivingVillage.Kernel/WorldSave.fs +++ b/src/LivingVillage.Kernel/WorldSave.fs @@ -469,7 +469,9 @@ module WorldSave = let save (world: World) : string = let tokens = ResizeArray<string>() - add tokens formatVersion + add tokens "LV_WORLD_SAVE_V2" + addInt tokens mapWidthTiles + addInt tokens mapHeightTiles addInt64 tokens world.Tick addFloat tokens world.Time addUInt64 tokens world.Rng.State @@ -492,8 +494,12 @@ module WorldSave = try let tokens = text.Split([| '|' |], StringSplitOptions.None) let reader = TokenReader(tokens) - if reader.Take("format") <> formatVersion then - invalid "unsupported save format" + match reader.Take("format") with + | "LV_WORLD_SAVE_V2" -> + configureBounds (readInt reader "bounds.w") (readInt reader "bounds.h") + | v1 when v1 = formatVersion -> + configureBounds 64 48 + | _ -> invalid "unsupported save format" let tick = readInt64 reader "tick" let time = readFloat reader "time" let rng = { State = readUInt64 reader "rng" } |
