diff --git a/PlanetarySystem.h b/PlanetarySystem.h index dca040ac4f4cfb1b372d76619603e0be6ef17521..4fdf97fe53d19402d65404dbf1e577d23a003fe7 100644 --- a/PlanetarySystem.h +++ b/PlanetarySystem.h @@ -14,7 +14,7 @@ typedef struct { CelestialObject **objects; double interval; double zoom_factor; - uint32_t reference_frame_object_index; + int32_t reference_frame_object_index; } PlanetarySystem; PlanetarySystem *planetary_system_create(double interval); diff --git a/main.c b/main.c index 0aeb50b7014ed458260aa1daa7b3935d01b21342..336ce592e500fbec6127a6a4f355b9169eacbe12 100644 --- a/main.c +++ b/main.c @@ -60,7 +60,10 @@ int main() { if (event.key.keysym.sym == SDLK_LEFT) { planetary_system->reference_frame_object_index -= 1; - planetary_system->reference_frame_object_index %= planetary_system->objects_length; + + if (planetary_system->reference_frame_object_index < 0) { + planetary_system->reference_frame_object_index = planetary_system->objects_length - 1; + } } if (event.key.keysym.sym == SDLK_RIGHT) { @@ -70,11 +73,6 @@ int main() { } } - // if (gfx_keypressed() == SDLK_ESCAPE) - // break; - // if (gfx_keypressed() == SDL_MOUSEBUTTONDOWN) { - // printf("A"); - // } struct timespec t = {.tv_sec = 0, .tv_nsec = sleep_duration}; nanosleep(&t, NULL); elapsed_time += 1;