// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
#include <config.h>
-#include <iostream>
#include <fstream>
#include <sstream>
#include <cassert>
#include <SDL.h>
#include "game_session.hpp"
+#include "msg.hpp"
#include "video/screen.hpp"
#include "audio/sound_manager.hpp"
#include "gui/menu.hpp"
currentsector = 0;
game_pause = false;
- music_playing = false;
fps_fps = 0;
context = new DrawingContext();
if(mode == ST_GL_PLAY || mode == ST_GL_LOAD_LEVEL_FILE)
levelintro();
- if (!music_playing)
- {
- currentsector->play_music(LEVEL_MUSIC);
- music_playing = true;
- }
+ currentsector->play_music(LEVEL_MUSIC);
if(capture_file != "")
record_demo(capture_file);
{
char str[60];
+ sound_manager->stop_music();
+
DrawingContext context;
for(Sector::GameObjects::iterator i = currentsector->gameobjects.begin();
i != currentsector->gameobjects.end(); ++i) {
tux.kill(tux.KILL);
}
if(main_controller->check_cheatcode("whereami")) {
- std::cout << "You are at x " << tux.get_pos().x << ", y " << tux.get_pos().y << "." << std::endl;
+ msg_info("You are at x " << tux.get_pos().x << ", y " << tux.get_pos().y);
}
#if 0
if(main_controller->check_cheatcode("grid")) {
exit_status = ES_LEVEL_FINISHED;
// don't add points to stats though...
}
+ if(main_controller->check_cheatcode("camera")) {
+ msg_info("Camera is at "
+ << Sector::current()->camera->get_translation().x << ","
+ << Sector::current()->camera->get_translation().y);
+ }
}
void
if(newsector != "" && newspawnpoint != "") {
Sector* sector = level->get_sector(newsector);
if(sector == 0) {
- std::cerr << "Sector '" << newsector << "' not found.\n";
+ msg_warning("Sector '" << newsector << "' not found");
}
sector->activate(newspawnpoint);
sector->play_music(LEVEL_MUSIC);
if(sequencename == "endsequence" || sequencename == "fireworks") {
if(end_sequence)
return;
-
+
end_sequence = ENDSEQUENCE_RUNNING;
- endsequence_timer.start(7.0); // 7 seconds until we finish the map
+ endsequence_timer.start(7.3);
last_x_pos = -1;
sound_manager->play_music("music/leveldone.ogg", false);
- currentsector->player->invincible_timer.start(7.0);
+ currentsector->player->invincible_timer.start(7.3);
+
+ // Stop all clocks.
+ for(std::vector<GameObject*>::iterator i = currentsector->gameobjects.begin();
+ i != currentsector->gameobjects.end(); ++i)
+ {
+ GameObject* obj = *i;
+
+ LevelTime* lt = dynamic_cast<LevelTime*> (obj);
+ if(lt)
+ lt->stop();
+ }
if(sequencename == "fireworks") {
currentsector->add_object(new Fireworks());
}
} else if(sequencename == "stoptux") {
if(!end_sequence) {
- std::cout << "WARNING: Final target reached without "
- << "an active end sequence." << std::endl;
+ msg_warning("Final target reached without "
+ << "an active end sequence");
this->start_sequence("endsequence");
}
end_sequence = ENDSEQUENCE_WAITING;
} else {
- std::cout << "Unknown sequence '" << sequencename << "'.\n";
+ msg_warning("Unknown sequence '" << sequencename << "'");
}
}