static void demo_play_timer(int id, float dt) { game_step_fade(dt); gui_timer(id, dt); hud_timer(dt); /* * Introduce a one-second pause at the start of replay playback. (One * second is the time during which the "Replay" label is being displayed.) * HACK ALERT! "id == 0" means we got here from the pause screen, so no * label has been created and there's no need to wait. */ if (id != 0 && time_state() < 1.0f) return; /* Spin or skip depending on how fast the demo wants to run. */ if (!demo_replay_step(dt)) { demo_paused = 0; goto_state(&st_demo_end); } else progress_step(); }
static void play_loop_timer(int id, float dt) { float k = (fast_rotate ? (float) config_get_d(CONFIG_ROTATE_FAST) / 100.0f : (float) config_get_d(CONFIG_ROTATE_SLOW) / 100.0f); float r = 0.0f; gui_timer(id, dt); hud_timer(dt); switch (rot_get(&r)) { case ROT_HOLD: /* * Cam 3 could be anything. But let's assume it's a manual cam * and holding down both rotation buttons freezes the camera * rotation. */ game_set_rot(0.0f); game_set_cam(CAM_3); break; case ROT_ROTATE: case ROT_NONE: game_set_rot(r * k); game_set_cam(config_get_d(CONFIG_CAMERA)); break; } game_step_fade(dt); game_server_step(dt); game_client_sync(demo_fp); game_client_blend(game_server_blend()); switch (curr_status()) { case GAME_GOAL: progress_stat(GAME_GOAL); goto_state(&st_goal); break; case GAME_FALL: progress_stat(GAME_FALL); goto_state(&st_fail); break; case GAME_TIME: progress_stat(GAME_TIME); goto_state(&st_fail); break; default: progress_step(); break; } }
static void demo_play_timer(int id, float dt) { game_step_fade(dt); gui_timer(id, dt); hud_timer(dt); /* Pause briefly before starting playback. */ if (time_state() < prelude) return; if (!demo_replay_step(dt)) { demo_paused = 0; goto_state(&st_demo_end); } else { progress_step(); game_client_blend(demo_replay_blend()); } }
static void pause_timer(int id, float dt) { gui_timer(id, dt); hud_timer (dt); }