#include "settings.h" #include "save.h" static Settings settings = {0}; static int settings_cursor_loc = 0; void draw_settings_cursor(void) { int x = 6; int y = 17 + settings_cursor_loc * 12; draw_line(x + 1, y + 3, x + 1, y + 7, COL_ACC_0); draw_line(x + 2, y + 4, x + 2, y + 6, COL_ACC_0); draw_line(x + 3, y + 5, x + 3, y + 5, COL_ACC_0); } void handle_settings_input(void) { if (key_tap(KEY_DOWN)) { if (settings_cursor_loc == (N_SETTINGS - 1)) { settings_cursor_loc = 0; } else { settings_cursor_loc++; } clear_screen = true; } if (key_tap(KEY_UP)) { if (settings_cursor_loc == 0) { settings_cursor_loc = N_SETTINGS - 1; } else { settings_cursor_loc--; } clear_screen = true; } if (key_tap(KEY_R)) { switch (settings_cursor_loc) { case 0: { if ((settings.sync + 1) >= SYNC_NUM) { settings.sync = 0; } else { settings.sync++; } } break; case 1: { if ((settings.theme + 1) >= THEME_NUM) { settings.theme = 0; } else { settings.theme++; } swap_palette(settings.theme); } break; case 2: { if ((settings.cursor + 1) >= CURSOR_NUM) { settings.cursor = 0; } else { settings.cursor++; } } break; } save_metadata(); clear_screen = true; } if (key_tap(KEY_L)) { switch (settings_cursor_loc) { case 0: { if (settings.sync == 0) { settings.sync = SYNC_NUM - 1; } else { settings.sync--; } } break; case 1: { if (settings.theme == 0) { settings.theme = THEME_NUM - 1; } else { settings.theme--; } swap_palette(settings.theme); } break; case 2: { if (settings.cursor == 0) { settings.cursor = CURSOR_NUM - 1; } else { settings.cursor--; } } break; } save_metadata(); clear_screen = true; } if (key_tap(KEY_A)) { next_scene = SCENE_SEQUENCER; } }