// You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
-
#ifndef SUPERTUX_RESOURCES_H
#define SUPERTUX_RESOURCES_H
+#include <string>
#include "audio/musicref.h"
class SpriteManager;
+class Menu;
+class Font;
+class Surface;
class SoundManager;
-
-/* Sound files: */
-enum {
- SND_JUMP,
- SND_BIGJUMP,
- SND_SKID,
- SND_DISTRO,
- SND_HERRING,
- SND_BRICK,
- SND_HURT,
- SND_SQUISH,
- SND_FALL,
- SND_RICOCHET,
- SND_BUMP_UPGRADE,
- SND_UPGRADE,
- SND_EXCELLENT,
- SND_COFFEE,
- SND_SHOOT,
- SND_LIFEUP,
- SND_STOMP,
- SND_KICK,
- SND_EXPLODE,
- NUM_SOUNDS
-};
-
-extern char* soundfilenames[NUM_SOUNDS];
-
-extern Surface* img_waves[3];
-extern Surface* img_water;
-extern Surface* img_pole;
-extern Surface* img_poletop;
-extern Surface* img_flag[2];
-extern Surface* img_cloud[2][4];
+class TileManager;
+class MouseCursor;
extern Surface* img_super_bkgd;
+extern Surface* tux_life;
extern MusicRef herring_song;
extern MusicRef level_end_song;
extern SpriteManager* sprite_manager;
+extern TileManager* tile_manager;
extern SoundManager* sound_manager;
-void loadshared();
-void unloadshared();
+extern Menu* contrib_menu;
+extern Menu* contrib_subset_menu;
+extern Menu* main_menu;
+extern Menu* game_menu;
+extern Menu* options_menu;
+extern Menu* load_game_menu;
-#endif
+extern MouseCursor* mouse_cursor;
-/* EOF */
+extern Font* gold_text;
+extern Font* white_text;
+extern Font* blue_text;
+extern Font* gray_text;
+extern Font* white_small_text;
+extern Font* white_big_text;
+extern Font* yellow_nums;
+extern std::string datadir;
+extern std::string user_dir;
+
+/** maps a virtual resource path to a real path (ie. levels/bla is mapped to
+ * $DATADIR/levels/bla or $HOME/.supertux/levels/bla)
+ * All paths inside the game should be handled in as virtual paths and then
+ * expanded with this function just before the call to fopen or std::ifstream.
+ */
+std::string get_resource_filename(const std::string& resource);
+
+void load_shared();
+void unload_shared();
+
+#endif