- increased Tux's safe time to 1250ms
[supertux.git] / src / sprite_manager.cpp
index e0ac012..e2343a8 100644 (file)
@@ -1,7 +1,7 @@
 //  $Id$
 //
-//  Pingus - A free Lemmings clone
-//  Copyright (C) 2002 Ingo Ruhnke <grumbel@gmx.de>
+//  SuperTux
+//  Copyright (C) 2004 Ingo Ruhnke <grumbel@gmx.de>
 //
 //  This program is free software; you can redistribute it and/or
 //  modify it under the terms of the GNU General Public License
@@ -26,10 +26,25 @@ SpriteManager::SpriteManager(const std::string& filename)
   load_resfile(filename);
 }
 
+SpriteManager::~SpriteManager()
+{
+  for(std::map<std::string, Sprite*>::iterator i = sprites.begin();
+      i != sprites.end(); ++i) {
+    delete i->second;
+  }
+}
+
 void
 SpriteManager::load_resfile(const std::string& filename)
 {
-  lisp_object_t* cur = lisp_read_from_file(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)
     return;
@@ -62,6 +77,8 @@ SpriteManager::load_resfile(const std::string& filename)
 
       cur = lisp_cdr(cur);
     }
+
+  lisp_free(root_obj);
 }
 
 Sprite*