Issue 952: Unloading/freeing all tilesets prior to shutdown
authorTobias Markus <tobbi@mozilla-uk.org>
Fri, 27 Sep 2013 16:48:49 +0000 (18:48 +0200)
committerTobias Markus <tobbi@mozilla-uk.org>
Fri, 27 Sep 2013 16:48:49 +0000 (18:48 +0200)
src/supertux/resources.cpp
src/supertux/resources.hpp

index 2d5224b..589dcc6 100644 (file)
@@ -36,6 +36,10 @@ SurfacePtr Resources::back;
 SurfacePtr Resources::arrow_left;
 SurfacePtr Resources::arrow_right;
 
+TileSet* Resources::general_tiles;
+TileSet* Resources::worldmap_tiles;
+TileSet* Resources::iceworld_tiles;
+
 /* Load graphics/sounds shared between all levels: */
 void
 Resources::load_shared()
@@ -59,6 +63,11 @@ Resources::load_shared()
 
   tile_manager   = new TileManager();
   sprite_manager = new SpriteManager();
+  
+  /* Create a reference to tilesets */
+  general_tiles = tile_manager->get_tileset("images/tiles.strf");
+  worldmap_tiles = tile_manager->get_tileset("images/worldmap.strf");
+  iceworld_tiles = tile_manager->get_tileset("images/ice_world.strf");
 }
 
 /* Free shared data: */
@@ -77,6 +86,14 @@ Resources::unload_shared()
   normal_font.reset();
   small_font.reset();
   big_font.reset();
+  
+  /* Free tilesets */
+  delete worldmap_tiles;
+  worldmap_tiles = NULL;
+  delete general_tiles;
+  general_tiles = NULL;
+  delete iceworld_tiles;
+  iceworld_tiles = NULL;
 
   delete sprite_manager;
   sprite_manager = NULL;
index 8648a91..8dc5b11 100644 (file)
@@ -20,6 +20,7 @@
 
 #include "video/font_ptr.hpp"
 #include "video/surface_ptr.hpp"
+#include "supertux/tile_set.hpp"
 
 class MouseCursor;
 
@@ -39,6 +40,11 @@ public:
   static SurfacePtr arrow_left;
   static SurfacePtr arrow_right;
 
+private:
+  static TileSet* general_tiles;
+  static TileSet* worldmap_tiles;
+  static TileSet* iceworld_tiles;
+  
 public:
   static void load_shared();
   static void unload_shared();