From fc62bc7d1812f46b999326054b9e11c16fbcbc5e Mon Sep 17 00:00:00 2001 From: Tobias Markus Date: Fri, 27 Sep 2013 18:48:49 +0200 Subject: [PATCH] Issue 952: Unloading/freeing all tilesets prior to shutdown --- src/supertux/resources.cpp | 17 +++++++++++++++++ src/supertux/resources.hpp | 6 ++++++ 2 files changed, 23 insertions(+) diff --git a/src/supertux/resources.cpp b/src/supertux/resources.cpp index 2d5224b53..589dcc6e2 100644 --- a/src/supertux/resources.cpp +++ b/src/supertux/resources.cpp @@ -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; diff --git a/src/supertux/resources.hpp b/src/supertux/resources.hpp index 8648a91fb..8dc5b119a 100644 --- a/src/supertux/resources.hpp +++ b/src/supertux/resources.hpp @@ -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(); -- 2.11.0