summaryrefslogtreecommitdiff
path: root/src/LivingVillage.Kernel/WorldSave.fs
diff options
context:
space:
mode:
Diffstat (limited to 'src/LivingVillage.Kernel/WorldSave.fs')
-rw-r--r--src/LivingVillage.Kernel/WorldSave.fs12
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" }