From c6dc614c3297be7a26e2365998680ed9d1924dfb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20Reuh=20Fildadut?= Date: Sat, 10 Apr 2021 14:43:06 +0200 Subject: [PATCH] Only check for major version number when loading saves; don't save undefined arguments --- anselme.lua | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/anselme.lua b/anselme.lua index 3956122..e636125 100644 --- a/anselme.lua +++ b/anselme.lua @@ -293,16 +293,23 @@ local vm_mt = { --- save/load script state -- only saves variables full names and values, so make sure to not change important variables, paragraphs and functions names between a save and a load load = function(self, data) - assert(data.anselme_version == anselme.version, ("trying to load a save from Anselme %s but current Anselme version is %s"):format(data.anselme_version, anselme.version)) + local saveMajor, currentMajor = data.anselme_version:match("^[^%.]*"), anselme.version:match("^[^%.]*") + assert(saveMajor == currentMajor, ("trying to load data from an incompatible version of Anselme; save was done using %s but current version is %s"):format(data.anselme_version, anselme.version)) for k, v in pairs(data.variables) do self.state.variables[k] = v end return self end, save = function(self) + local vars = {} + for k, v in pairs(self.state.variables) do + if v.type ~= "undefined argument" then + vars[k] = v + end + end return { anselme_version = anselme.version, - variables = self.state.variables + variables = vars } end,