void
GameSession::levelintro()
{
- //sound_manager->halt_music();
-
char str[60];
DrawingContext context;
context.draw_center_text(gold_text, level->get_name(), Vector(0, 160),
LAYER_FOREGROUND1);
- sprintf(str, "TUX x %d", player_status.lives);
+ sprintf(str, "TUX x %d", player_status->lives);
context.draw_text(white_text, str, Vector(SCREEN_WIDTH/2, 210),
CENTER_ALLIGN, LAYER_FOREGROUND1);
tux.set_bonus(ICE_BONUS, false);
}
if(main_controller->check_cheatcode("lifeup")) {
- player_status.lives++;
+ player_status->lives++;
}
if(main_controller->check_cheatcode("lifedown")) {
- player_status.lives--;
+ player_status->lives--;
}
if(main_controller->check_cheatcode("grease")) {
tux.physic.set_velocity_x(tux.physic.get_velocity_x()*3);
}
if(main_controller->check_cheatcode("kill")) {
// kill Tux, but without losing a life
- player_status.lives++;
+ player_status->lives++;
tux.kill(tux.KILL);
}
#if 0
exit_status = ES_LEVEL_FINISHED;
return;
} else if (!end_sequence && tux->is_dead()) {
- if (player_status.lives < 0) { // No more lives!?
+ if (player_status->lives < 0) { // No more lives!?
exit_status = ES_GAME_OVER;
} else { // Still has lives, so reset Tux to the levelstart
restart_level();
// update sounds
sound_manager->set_listener_position(currentsector->player->get_pos());
- sound_manager->update();
}
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;
void
GameSession::drawstatus(DrawingContext& context)
{
- player_status.draw(context);
+ player_status->draw(context);
if(config->show_fps) {
char str[60];
snprintf(str, sizeof(str), "%2.1f", fps_fps);
context.draw_text(white_text, "FPS",
Vector(SCREEN_WIDTH -
- white_text->get_text_width("FPS "), 40),
+ white_text->get_text_width("FPS ") - BORDER_X, BORDER_Y + 40),
LEFT_ALLIGN, LAYER_FOREGROUND1);
context.draw_text(gold_text, str,
- Vector(SCREEN_WIDTH-4*16, 40),
+ Vector(SCREEN_WIDTH-4*16 - BORDER_X, BORDER_Y + 40),
LEFT_ALLIGN, LAYER_FOREGROUND1);
}
}
sprintf(str, _("SCORE: %d"), global_stats.get_points(SCORE_STAT));
context.draw_text(gold_text, str, Vector(SCREEN_WIDTH/2, 224), CENTER_ALLIGN, LAYER_FOREGROUND1);
- sprintf(str, _("COINS: %d"), player_status.coins);
+ sprintf(str, _("COINS: %d"), player_status->coins);
context.draw_text(gold_text, str, Vector(SCREEN_WIDTH/2, 256), CENTER_ALLIGN, LAYER_FOREGROUND1);
context.do_drawing();
stream << slot;
std::string slotfile = "save/slot" + stream.str() + ".stsg";
+ sound_manager->stop_music();
fadeout(256);
DrawingContext context;
context.draw_text(white_text, "Loading...",