- data/levels/default/ moved to data/levels/worldmap/
[supertux.git] / src / resources.cpp
index 64a60cf..a36825a 100644 (file)
@@ -25,6 +25,7 @@
 #include "special.h"
 #include "resources.h"
 #include "sprite_manager.h"
+#include "sound_manager.h"
 #include "setup.h"
 
 Surface* img_waves[3]; 
@@ -33,13 +34,13 @@ Surface* img_pole;
 Surface* img_poletop;
 Surface* img_flag[2];
 Surface* img_cloud[2][4];
-
-Surface* img_red_glow;
+Surface* img_distro[4];
 
 MusicRef herring_song;
+MusicRef level_end_song;
 
 SpriteManager* sprite_manager = 0;
-MusicManager* music_manager = 0;
+SoundManager* sound_manager = 0;
 
 /* Load graphics/sounds shared between all levels: */
 void loadshared()
@@ -47,14 +48,24 @@ void loadshared()
   int i;
 
   sprite_manager = new SpriteManager(datadir + "/supertux.strf");
-  music_manager = new MusicManager();
-  music_manager->enable_music(use_music);
+  sound_manager = new SoundManager();
+  sound_manager->enable_music(use_music);
 
   /* Tuxes: */
   smalltux_star = sprite_manager->load("smalltux-star");
   largetux_star = sprite_manager->load("largetux-star");
   smalltux_gameover = sprite_manager->load("smalltux-gameover");
 
+  char img_name[1024];
+  for (int i = 0; i < GROWING_FRAMES; i++)
+  {
+    sprintf(img_name, "%s/images/shared/tux-grow-left-%i.png", datadir.c_str(), i+1);
+    growingtux_left[i] = new Surface(img_name, false);
+
+    sprintf(img_name, "%s/images/shared/tux-grow-right-%i.png", datadir.c_str(), i+1);
+    growingtux_right[i] = new Surface(img_name, false);
+  }
+
   smalltux.stand_left  = sprite_manager->load("smalltux-stand-left");
   smalltux.stand_right = sprite_manager->load("smalltux-stand-right");
   smalltux.walk_left   = sprite_manager->load("smalltux-walk-left");
@@ -67,6 +78,7 @@ void loadshared()
   smalltux.skid_right  = sprite_manager->load("smalltux-skid-right");
   smalltux.grab_left   = sprite_manager->load("smalltux-grab-left");
   smalltux.grab_right  = sprite_manager->load("smalltux-grab-right");
+  smalltux.stomp       = sprite_manager->load("stomp");
 
   largetux.stand_left  = sprite_manager->load("largetux-stand-left");
   largetux.stand_right = sprite_manager->load("largetux-stand-right");
@@ -82,6 +94,7 @@ void loadshared()
   largetux.grab_right  = sprite_manager->load("largetux-grab-right");
   largetux.duck_left   = sprite_manager->load("largetux-duck-left");
   largetux.duck_right  = sprite_manager->load("largetux-duck-right");
+  largetux.stomp       = sprite_manager->load("stomp");
 
   firetux.stand_left  = sprite_manager->load("firetux-stand-left");
   firetux.stand_right = sprite_manager->load("firetux-stand-right");
@@ -97,6 +110,24 @@ void loadshared()
   firetux.grab_right  = sprite_manager->load("firetux-grab-right");
   firetux.duck_left   = sprite_manager->load("firetux-duck-left");
   firetux.duck_right  = sprite_manager->load("firetux-duck-right");
+  firetux.stomp       = sprite_manager->load("stomp");
+
+  icetux.stand_left  = sprite_manager->load("icetux-stand-left");
+  icetux.stand_right = sprite_manager->load("icetux-stand-right");
+  icetux.walk_left   = sprite_manager->load("icetux-walk-left");
+  icetux.walk_right  = sprite_manager->load("icetux-walk-right");
+  icetux.jump_left   = sprite_manager->load("icetux-jump-left");
+  icetux.jump_right  = sprite_manager->load("icetux-jump-right");
+  icetux.kick_left   = sprite_manager->load("icetux-kick-left");
+  icetux.kick_right  = sprite_manager->load("icetux-kick-right");
+  icetux.skid_right  = sprite_manager->load("icetux-skid-right");
+  icetux.skid_left   = sprite_manager->load("icetux-skid-left");
+  icetux.grab_left   = sprite_manager->load("icetux-grab-left");
+  icetux.grab_right  = sprite_manager->load("icetux-grab-right");
+  icetux.duck_left   = sprite_manager->load("icetux-duck-left");
+  icetux.duck_right  = sprite_manager->load("icetux-duck-right");
+  icetux.stomp       = sprite_manager->load("stomp");
+
 
   /* Water: */
   img_water = new Surface(datadir + "/images/shared/water.png", IGNORE_ALPHA);
@@ -160,9 +191,8 @@ void loadshared()
   /* Upgrades: */
   load_special_gfx();
 
-  /* Weapons: */
-  img_red_glow = new Surface(datadir + "/images/shared/red-glow.png",
-               USE_ALPHA);
+  /* Objects */
+  load_object_gfx();
 
   /* Distros: */
   img_distro[0] = new Surface(datadir + "/images/tilesets/coin1.png",
@@ -196,7 +226,8 @@ void loadshared()
     sounds[i] = load_sound(datadir + soundfilenames[i]);
 
   /* Herring song */
-  herring_song = music_manager->load_music(datadir + "/music/SALCON.MOD");
+  herring_song = sound_manager->load_music(datadir + "/music/SALCON.MOD");
+  level_end_song = sound_manager->load_music(datadir + "/music/leveldone.mod");
 }
 
 
@@ -218,7 +249,6 @@ void unloadshared(void)
   for (i = 0; i < 2; i++)
     delete img_flag[i];
 
-  delete img_red_glow;
   for (i = 0; i < 4; i++)
     {
       delete img_distro[i];
@@ -228,13 +258,19 @@ void unloadshared(void)
 
   delete tux_life;
 
+  for (int i = 0; i < GROWING_FRAMES; i++)
+  {
+    delete growingtux_left[i];
+    delete growingtux_right[i];
+  }
+
   for (i = 0; i < NUM_SOUNDS; i++)
     free_chunk(sounds[i]);
 
   delete sprite_manager;
   sprite_manager = 0;
-  delete music_manager;
-  music_manager = 0;
+  delete sound_manager;
+  sound_manager = 0;
 }
 
 /* EOF */