1 #include "system/stacktrace.h"
4 Settings create_settings(void)
13 .volume_slider_scale = {
18 .base_color = {0.5f, 0.8f, 0.5f, 1.0f}
29 void settings_render(const Settings *settings, const Camera *camera)
31 trace_assert(settings);
34 background_render(&settings->background, camera);
36 const Rect viewport = camera_view_port_screen(camera);
39 const Rect position = {
40 .w = viewport.w * settings->volume_slider_scale.x,
41 .h = viewport.h * settings->volume_slider_scale.y,
42 .x = viewport.w - viewport.w * settings->volume_slider_scale.x - 5.0f,
47 slider_render(&settings->volume_slider, camera, position);
50 void settings_event(Settings *settings, Camera *camera, const SDL_Event *event)
52 trace_assert(settings);
55 const Rect viewport = camera_view_port_screen(camera);
56 const Rect position = {
57 .w = viewport.w * settings->volume_slider_scale.x,
58 .h = viewport.h * settings->volume_slider_scale.y,
59 .x = viewport.w - viewport.w * settings->volume_slider_scale.x - 5.0f,
64 &settings->volume_slider,
66 position, NULL) < 0) {
71 void settings_update(Settings *settings, Camera *camera, float dt)
73 trace_assert(settings);
76 vec_add(&settings->camera_position,
77 vec(50.0f * dt, 0.0f));
78 camera_center_at(camera, settings->camera_position);