- removed st_abort() from lisp reader, client code should check the return value...
authorIngo Ruhnke <grumbel@gmx.de>
Mon, 26 Apr 2004 15:03:24 +0000 (15:03 +0000)
committerIngo Ruhnke <grumbel@gmx.de>
Mon, 26 Apr 2004 15:03:24 +0000 (15:03 +0000)
SVN-Revision: 752

data/images/tilesets/supertux.stgt
src/gameloop.cpp
src/lispreader.cpp
src/sprite_manager.cpp
src/title.cpp
src/worldmap.cpp

index 06380f3..1eed6a0 100644 (file)
                "goal2-1.png"
                "goal2-1.png"))
 
-
+ (tile (id 131)
+       (images "black.png"))
  )
 
index 0d3eb0b..d523bda 100644 (file)
@@ -750,9 +750,12 @@ std::string slotinfo(int slot)
   sprintf(slotfile,"%s/slot%d.stsg",st_save_dir,slot);
 
   lisp_object_t* savegame = lisp_read_from_file(slotfile);
-  LispReader reader(lisp_cdr(savegame));
-  reader.read_string("title", &title);
-  lisp_free(savegame);
+  if (savegame)
+    {
+      LispReader reader(lisp_cdr(savegame));
+      reader.read_string("title", &title);
+      lisp_free(savegame);
+    }
 
   if (access(slotfile, F_OK) == 0)
     {
index e6d8cf7..9074633 100644 (file)
@@ -1317,18 +1317,6 @@ lisp_object_t* lisp_read_from_file(const std::string& filename)
   if (has_suffix(filename.c_str(), ".gz"))
     {
       return lisp_read_from_gzfile(filename.c_str());
-#if 0
-      lisp_object_t* obj = 0;
-      gzFile in = gzopen(filename, "r");
-
-      if (in)
-        {
-          lisp_stream_init_gzfile(&stream, in);
-          obj = lisp_read(&stream);
-          gzclose(in);
-        }
-        return obj;
-#endif
     }
   else
     {
@@ -1341,12 +1329,6 @@ lisp_object_t* lisp_read_from_file(const std::string& filename)
           obj = lisp_read(&stream);
           fclose(in);
         }
-      else {
-        std::cerr << "LispReader: File not found: " << filename << endl;
-        st_abort("aborting", "");
-      }
-      
-
 
       return obj;
     }
index 08a1506..e2343a8 100644 (file)
@@ -38,6 +38,12 @@ void
 SpriteManager::load_resfile(const std::string& filename)
 {
   lisp_object_t* root_obj = lisp_read_from_file(filename);
+  if (!root_obj)
+    {
+      std::cout << "SpriteManager: Couldn't load: " << filename << std::endl;
+      return;
+    }
+
   lisp_object_t* cur = root_obj;
 
   if (strcmp(lisp_symbol(lisp_car(cur)), "supertux-resources") != 0)
index 0bc1248..4064e97 100644 (file)
@@ -364,3 +364,5 @@ void title(void)
   delete logo;
 }
 
+// EOF //
+
index 366deb5..d0b378b 100644 (file)
@@ -921,6 +921,12 @@ WorldMap::loadgame(const std::string& filename)
     return;
   
   lisp_object_t* savegame = lisp_read_from_file(filename);
+  if (savegame)
+    {
+      std::cout << "WorldMap:loadgame: File not found: " << filename << std::endl;
+      return;
+    }
+
   lisp_object_t* cur = savegame;
 
   if (strcmp(lisp_symbol(lisp_car(cur)), "supertux-savegame") != 0)