{
this->next_screen.reset(screen);
this->screen_fade.reset(screen_fade);
- if(nextpop)
- nextpush = false;
- else
- nextpush = true;
+ nextpush = !nextpop;
nextpop = false;
speed = 1.0;
}
char str[60];
snprintf(str, sizeof(str), "%3.1f", fps_fps);
const char* fpstext = "FPS";
- context.draw_text(white_text, fpstext, Vector(SCREEN_WIDTH - white_text->get_text_width(fpstext) - gold_text->get_text_width(" 99999") - BORDER_X, BORDER_Y + 20), LEFT_ALLIGN, LAYER_FOREGROUND1);
- context.draw_text(gold_text, str, Vector(SCREEN_WIDTH - BORDER_X, BORDER_Y + 20), RIGHT_ALLIGN, LAYER_FOREGROUND1);
+ context.draw_text(white_text, fpstext, Vector(SCREEN_WIDTH - white_text->get_text_width(fpstext) - gold_text->get_text_width(" 99999") - BORDER_X, BORDER_Y + 20), LEFT_ALLIGN, LAYER_HUD);
+ context.draw_text(gold_text, str, Vector(SCREEN_WIDTH - BORDER_X, BORDER_Y + 20), RIGHT_ALLIGN, LAYER_HUD);
}
void
MainLoop::run()
{
- DrawingContext context;
-
+ DrawingContext context;
+
unsigned int frame_count = 0;
- unsigned int rand_prints = 0;
float fps_fps = 0;
Uint32 fps_ticks = SDL_GetTicks();
Uint32 fps_nextframe_ticks = SDL_GetTicks();
Uint32 ticks;
bool skipdraw = false;
-
+
running = true;
while(running) {
- while( (next_screen.get() != NULL || nextpop == true) &&
+ while( (next_screen.get() != NULL || nextpop) &&
(screen_fade.get() == NULL || screen_fade->done())) {
if(current_screen.get() != NULL) {
current_screen->leave();
if(nextpush && current_screen.get() != NULL) {
screen_stack.push_back(current_screen.release());
}
-
+
nextpush = false;
nextpop = false;
speed = 1.0;
if(!running || current_screen.get() == NULL)
break;
-
+
float elapsed_time = 1.0 / LOGICAL_FPS;
ticks = SDL_GetTicks();
if(ticks > fps_nextframe_ticks) {
- if(skipdraw == true) {
+ if(skipdraw) {
// already skipped last frame? we have to slow down the game then...
skipdraw = false;
fps_nextframe_ticks -= (Uint32) (1000.0 / LOGICAL_FPS);
if(config->show_fps)
{
++frame_count;
-
+
if(SDL_GetTicks() - fps_ticks >= 500)
{
fps_fps = (float) frame_count / .5;
real_time += elapsed_time;
elapsed_time *= speed;
game_time += elapsed_time;
-
+
Scripting::update_debugger();
Scripting::TimeScheduler::instance->update(game_time);
current_screen->update(elapsed_time);
if(screen_fade.get() != NULL)
screen_fade->update(elapsed_time);
Console::instance->update(elapsed_time);
-
+
main_controller->update();
SDL_Event event;
while(SDL_PollEvent(&event)) {
}
sound_manager->update();
-
- // insert calls for debug (there are few rand calls otherwise)
- if (0 && rand_prints++ % 20 == 0)
- log_info << "== periodic rand() call " << systemRandom.rand() <<
- " at frame " << rand_prints << "==" <<std::endl;
+
+ //log_info << "== periodic rand() = " << systemRandom.rand() << std::endl;
}
}
-