#include <SDL.h>
-#ifndef WIN32
-#include <sys/types.h>
-#include <ctype.h>
-#endif
-
-#include "game_session.h"
-#include "video/screen.h"
-#include "gui/menu.h"
-#include "sector.h"
-#include "level.h"
-#include "tile.h"
-#include "player_status.h"
-#include "object/particlesystem.h"
-#include "object/background.h"
-#include "object/tilemap.h"
-#include "object/camera.h"
-#include "object/player.h"
-#include "lisp/lisp.h"
-#include "lisp/parser.h"
-#include "resources.h"
-#include "worldmap.h"
-#include "misc.h"
-#include "statistics.h"
-#include "timer.h"
-#include "object/fireworks.h"
-#include "textscroller.h"
-#include "control/codecontroller.h"
-#include "control/joystickkeyboardcontroller.h"
-#include "main.h"
-#include "file_system.h"
-#include "gameconfig.h"
-#include "gettext.h"
+#include "game_session.hpp"
+#include "video/screen.hpp"
+#include "audio/sound_manager.hpp"
+#include "gui/menu.hpp"
+#include "sector.hpp"
+#include "level.hpp"
+#include "tile.hpp"
+#include "player_status.hpp"
+#include "object/particlesystem.hpp"
+#include "object/background.hpp"
+#include "object/tilemap.hpp"
+#include "object/camera.hpp"
+#include "object/player.hpp"
+#include "lisp/lisp.hpp"
+#include "lisp/parser.hpp"
+#include "resources.hpp"
+#include "worldmap.hpp"
+#include "misc.hpp"
+#include "statistics.hpp"
+#include "timer.hpp"
+#include "object/fireworks.hpp"
+#include "textscroller.hpp"
+#include "control/codecontroller.hpp"
+#include "control/joystickkeyboardcontroller.hpp"
+#include "main.hpp"
+#include "file_system.hpp"
+#include "gameconfig.hpp"
+#include "gettext.hpp"
// the engine will be run with a logical framerate of 64fps.
// We chose 64fps here because it is a power of 2, so 1/64 gives an "even"
capture_demo_stream(0), playback_demo_stream(0), demo_controller(0)
{
current_ = this;
+ currentsector = 0;
game_pause = false;
music_playing = false;
void
GameSession::levelintro()
{
- //sound_manager->halt_music();
-
char str[60];
DrawingContext context;
newsector = "";
newspawnpoint = "";
}
+
+ // update sounds
+ sound_manager->set_listener_position(currentsector->player->get_pos());
}
void
static const float elapsed_time = 1.0 / LOGICAL_FPS;
// old code... float elapsed_time = float(ticks - lastticks) / 1000.;
if(!game_pause)
- global_time += elapsed_time;
+ game_time += elapsed_time;
// regulate fps
ticks = SDL_GetTicks();
if(!skipdraw)
draw();
+ // update sounds
+ sound_manager->update();
+
/* Time stops in pause mode */
if(game_pause || Menu::current())
{
running = false;
box->draw(*context);
draw();
+ sound_manager->update();
}
delete box;
end_sequence = ENDSEQUENCE_RUNNING;
endsequence_timer.start(7.0); // 7 seconds until we finish the map
last_x_pos = -1;
- sound_manager->play_music(level_end_song, 0);
+ sound_manager->play_music("music/leveldone.ogg", false);
currentsector->player->invincible_timer.start(7.0);
if(sequencename == "fireworks") {
stream << slot;
std::string slotfile = "save/slot" + stream.str() + ".stsg";
+ sound_manager->stop_music();
fadeout(256);
DrawingContext context;
context.draw_text(white_text, "Loading...",