SDL_Surface *screen;
struct camera *cam;
double time_scale;
+ int tracers_enabled;
};
static int poll_events(struct sim_status *status, double time)
case SDLK_a:
time_scale_rate = 1 / 1.5;
break;
+ case SDLK_t:
+ status->tracers_enabled =
+ !status->tracers_enabled;
default:
break;
}
status.cam = &camera;
status.time_scale = 1;
status.screen = screen;
+ status.tracers_enabled = 0;
planet = malloc(sizeof(*planet));
init_planet(planet);
last_frame_tick = ticks;
SDL_LockSurface(screen);
- clear_buf(screen);
+
+ if (status.tracers_enabled &&
+ !camera.speed.x && !camera.speed.y &&
+ camera.zoom_rate == 1) {
+ fade_buf(screen, 10 * true_time);
+ } else {
+ clear_buf(screen);
+ }
list_for_each_entry(pl1, &planet->list, list) {
draw_planet(screen, pl1, &camera);