Added Scripting class to bundle up all the Squirrel init code
[supertux.git] / src / supertux / savegame.cpp
index c7a7330..df484ec 100644 (file)
@@ -21,9 +21,9 @@
 #include "lisp/parser.hpp"
 #include "lisp/writer.hpp"
 #include "physfs/ifile_streambuf.hpp"
+#include "scripting/scripting.hpp"
 #include "scripting/serialize.hpp"
 #include "scripting/squirrel_util.hpp"
-#include "scripting/squirrel_util.hpp"
 #include "supertux/player_status.hpp"
 #include "util/file_system.hpp"
 #include "util/log.hpp"
@@ -256,12 +256,6 @@ Savegame::clear_state_table()
   // delete existing state table, if it exists
   sq_pushroottable(vm);
   {
-    /*sq_pushstring(vm, "state", -1);
-    if(SQ_FAILED(sq_deleteslot(vm, -2, SQFalse)))
-    {
-      sq_pop(vm, 1);
-      }*/
-
     // create a new empty state table
     sq_pushstring(vm, "state", -1);
     sq_newtable(vm);
@@ -466,7 +460,9 @@ Savegame::set_levelset_state(const std::string& basedir,
     get_or_create_table_entry(vm, "levels");
     get_or_create_table_entry(vm, level_filename);
 
-    scripting::store_bool(vm, "solved", solved);
+    bool old_solved = false;
+    scripting::get_bool(vm, "solved", old_solved);
+    scripting::store_bool(vm, "solved", solved || old_solved);
   }
   catch(const std::exception& err)
   {