msg << "Couldn't find sector '" << reset_sector << "' for resetting tux.";
throw std::runtime_error(msg.str());
}
- level->stats.declare_invalid();
currentsector->activate(reset_pos);
} else {
currentsector = level->get_sector("main");
case MNID_ABORTLEVEL:
MenuManager::set_current(0);
g_screen_manager->exit_screen();
- break;
+ // TODO: revert coins and powerups to previous
+ // values so as to discourage powerup "farming"
}
}
}
while(SDL_PollEvent(&event))
{}
- if (!levelintro_shown) {
+ int total_stats_to_be_collected = level->stats.total_coins + level->stats.total_badguys + level->stats.total_secrets;
+ if ((!levelintro_shown) && (total_stats_to_be_collected > 0)) {
levelintro_shown = true;
g_screen_manager->push_screen(new LevelIntro(level.get(), best_level_statistics));
}