X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=src%2Fresources.cpp;h=e57ee37bf0145654c03fe02d9fe15b0387eb6dd7;hb=62ff7f7776875e9389d10ae2e7b6348e9e5cb9c7;hp=ac23078d4d20deba7f9afa78dc279aa5f938c9b5;hpb=8b667c97ef73b811b75727febeeb6c7cc8c5ceec;p=supertux.git diff --git a/src/resources.cpp b/src/resources.cpp index ac23078d4..e57ee37bf 100644 --- a/src/resources.cpp +++ b/src/resources.cpp @@ -25,9 +25,10 @@ #include "gui/menu.h" #include "gui/button.h" #include "scene.h" -#include "player.h" -#include "gameobjs.h" #include "resources.h" +#include "tile_manager.h" +#include "object/gameobjs.h" +#include "object/player.h" Surface* img_waves[3]; Surface* img_water; @@ -52,6 +53,7 @@ MusicRef herring_song; MusicRef level_end_song; SpriteManager* sprite_manager = 0; +TileManager* tile_manager = 0; char * soundfilenames[NUM_SOUNDS] = { "/sounds/jump.wav", @@ -114,7 +116,9 @@ void loadshared() int i; - sprite_manager = new SpriteManager(datadir + "/images/supertux.strf"); + sprite_manager = new SpriteManager( + get_resource_filename("/images/supertux.strf")); + tile_manager = new TileManager("/images/tilesets/supertux.stgt"); /* Tuxes: */ smalltux_star = sprite_manager->create("smalltux-star"); @@ -302,5 +306,20 @@ void unloadshared(void) delete sprite_manager; sprite_manager = 0; + delete tile_manager; + tile_manager = 0; } +std::string get_resource_filename(const std::string& resource) +{ + std::string filepath = st_dir + resource; + if(access(filepath.c_str(), R_OK) == 0) + return filepath; + + filepath = datadir + resource; + if(access(filepath.c_str(), R_OK) == 0) + return filepath; + + std::cerr << "Couldn't find resource: '" << resource << "'." << std::endl; + return ""; +}