diff options
author | Bad Diode <bd@badd10de.dev> | 2024-02-09 16:07:42 +0100 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2024-02-09 16:07:42 +0100 |
commit | c9a48c8cbea8718181632c461a7ed9abae9988e3 (patch) | |
tree | 0f2a5b59ae5a77b4950baae81a205d2d4f684d2d | |
parent | 56d69da83d1f004c79d2c3c5d27c28a5f3ec973e (diff) | |
download | stepper-c9a48c8cbea8718181632c461a7ed9abae9988e3.tar.gz stepper-c9a48c8cbea8718181632c461a7ed9abae9988e3.zip |
Use a more loose time for nudging triggers
-rw-r--r-- | src/drawing.c | 5 | ||||
-rw-r--r-- | src/gba/gba.h | 80 | ||||
-rw-r--r-- | src/globals.c | 1 | ||||
-rw-r--r-- | src/sequencer.c | 4 |
4 files changed, 36 insertions, 54 deletions
diff --git a/src/drawing.c b/src/drawing.c index 1d91d86..befbdde 100644 --- a/src/drawing.c +++ b/src/drawing.c | |||
@@ -1055,11 +1055,14 @@ draw_parameters_wave(ChannelWaveParams *params, bool global) { | |||
1055 | u8 col_env = cols[7] != COL_OFF && cols[8] != COL_OFF ? COL_ACC_2 : COL_OFF; | 1055 | u8 col_env = cols[7] != COL_OFF && cols[8] != COL_OFF ? COL_ACC_2 : COL_OFF; |
1056 | if (params->wave_attack != 0) { | 1056 | if (params->wave_attack != 0) { |
1057 | draw_line(x0, y0, x1, y1, col_env); | 1057 | draw_line(x0, y0, x1, y1, col_env); |
1058 | } else { | ||
1059 | draw_line(x0, y0, x0, y0 - 15, col_env); | ||
1058 | } | 1060 | } |
1059 | if (params->wave_decay == 0) { | 1061 | if (params->wave_decay == 0) { |
1060 | x2 = x + PARAMS_BOX_OFFSET_X * 2 - 4; | 1062 | x2 = x + PARAMS_BOX_OFFSET_X * 2 - 4; |
1061 | y2 = y; | 1063 | y2 = y; |
1062 | draw_line(x1, y1, x2, y2, col_env); | 1064 | draw_line(x1, y1, x2, y2, col_env); |
1065 | draw_line(x2, y2, x2, y2 + 15, col_env); | ||
1063 | } else { | 1066 | } else { |
1064 | draw_line(x1, y1, x2, y2, col_env); | 1067 | draw_line(x1, y1, x2, y2, col_env); |
1065 | draw_line(x2, y2, x + PARAMS_BOX_OFFSET_X * 2 - 4, y2, col_env); | 1068 | draw_line(x2, y2, x + PARAMS_BOX_OFFSET_X * 2 - 4, y2, col_env); |
@@ -2049,7 +2052,7 @@ draw_notif_bar() { | |||
2049 | 2052 | ||
2050 | if (settings.help == TOGGLE_ON) { | 2053 | if (settings.help == TOGGLE_ON) { |
2051 | if (input_handler == handle_trigger_selection) { | 2054 | if (input_handler == handle_trigger_selection) { |
2052 | if (key_pressed(KEY_B) && ctrl.key_b > 10) { | 2055 | if (nudge) { |
2053 | txt_draws_small("D-PAD:NUDGE TRIGGER", x0 + 2, y0 + 1, color); | 2056 | txt_draws_small("D-PAD:NUDGE TRIGGER", x0 + 2, y0 + 1, color); |
2054 | } else if (key_pressed(KEY_SELECT)) { | 2057 | } else if (key_pressed(KEY_SELECT)) { |
2055 | txt_draws_small("SEL+B:COPY TRIG SEL+A:PASTE TRIG", x0 + 2, y0 + 1, color); | 2058 | txt_draws_small("SEL+B:COPY TRIG SEL+A:PASTE TRIG", x0 + 2, y0 + 1, color); |
diff --git a/src/gba/gba.h b/src/gba/gba.h index 2cc167f..3f629fd 100644 --- a/src/gba/gba.h +++ b/src/gba/gba.h | |||
@@ -347,64 +347,44 @@ _key_retrig(int key, int offset, int frames) { | |||
347 | } | 347 | } |
348 | switch (key) { | 348 | switch (key) { |
349 | case KEY_L: { | 349 | case KEY_L: { |
350 | if (key_hold(key)) { | 350 | if (ctrl.key_l < offset) { return false; } |
351 | if (ctrl.key_l < offset) { return false; } | 351 | if (ctrl.key_l % frames == 0) { return true; } |
352 | if (ctrl.key_l % frames == 0) { return true; } | ||
353 | } | ||
354 | } break; | 352 | } break; |
355 | case KEY_R: { | 353 | case KEY_R: { |
356 | if (key_hold(key)) { | 354 | if (ctrl.key_r < offset) { return false; } |
357 | if (ctrl.key_r < offset) { return false; } | 355 | if (ctrl.key_r % frames == 0) { return true; } |
358 | if (ctrl.key_r % frames == 0) { return true; } | ||
359 | } | ||
360 | } break; | 356 | } break; |
361 | case KEY_A: { | 357 | case KEY_A: { |
362 | if (key_hold(key)) { | 358 | if (ctrl.key_a < offset) { return false; } |
363 | if (ctrl.key_a < offset) { return false; } | 359 | if (ctrl.key_a % frames == 0) { return true; } |
364 | if (ctrl.key_a % frames == 0) { return true; } | ||
365 | } | ||
366 | } break; | 360 | } break; |
367 | case KEY_B: { | 361 | case KEY_B: { |
368 | if (key_hold(key)) { | 362 | if (ctrl.key_b < offset) { return false; } |
369 | if (ctrl.key_b < offset) { return false; } | 363 | if (ctrl.key_b % frames == 0) { return true; } |
370 | if (ctrl.key_b % frames == 0) { return true; } | ||
371 | } | ||
372 | } break; | 364 | } break; |
373 | case KEY_SELECT: { | 365 | case KEY_SELECT: { |
374 | if (key_hold(key)) { | 366 | if (ctrl.key_select < offset) { return false; } |
375 | if (ctrl.key_select < offset) { return false; } | 367 | if (ctrl.key_select % frames == 0) { return true; } |
376 | if (ctrl.key_select % frames == 0) { return true; } | ||
377 | } | ||
378 | } break; | 368 | } break; |
379 | case KEY_START: { | 369 | case KEY_START: { |
380 | if (key_hold(key)) { | 370 | if (ctrl.key_start < offset) { return false; } |
381 | if (ctrl.key_start < offset) { return false; } | 371 | if (ctrl.key_start % frames == 0) { return true; } |
382 | if (ctrl.key_start % frames == 0) { return true; } | ||
383 | } | ||
384 | } break; | 372 | } break; |
385 | case KEY_UP: { | 373 | case KEY_UP: { |
386 | if (key_hold(key)) { | 374 | if (ctrl.key_up < offset) { return false; } |
387 | if (ctrl.key_up < offset) { return false; } | 375 | if (ctrl.key_up % frames == 0) { return true; } |
388 | if (ctrl.key_up % frames == 0) { return true; } | ||
389 | } | ||
390 | } break; | 376 | } break; |
391 | case KEY_DOWN: { | 377 | case KEY_DOWN: { |
392 | if (key_hold(key)) { | 378 | if (ctrl.key_down < offset) { return false; } |
393 | if (ctrl.key_down < offset) { return false; } | 379 | if (ctrl.key_down % frames == 0) { return true; } |
394 | if (ctrl.key_down % frames == 0) { return true; } | ||
395 | } | ||
396 | } break; | 380 | } break; |
397 | case KEY_LEFT: { | 381 | case KEY_LEFT: { |
398 | if (key_hold(key)) { | 382 | if (ctrl.key_left < offset) { return false; } |
399 | if (ctrl.key_left < offset) { return false; } | 383 | if (ctrl.key_left % frames == 0) { return true; } |
400 | if (ctrl.key_left % frames == 0) { return true; } | ||
401 | } | ||
402 | } break; | 384 | } break; |
403 | case KEY_RIGHT: { | 385 | case KEY_RIGHT: { |
404 | if (key_hold(key)) { | 386 | if (ctrl.key_right < offset) { return false; } |
405 | if (ctrl.key_right < offset) { return false; } | 387 | if (ctrl.key_right % frames == 0) { return true; } |
406 | if (ctrl.key_right % frames == 0) { return true; } | ||
407 | } | ||
408 | } break; | 388 | } break; |
409 | } | 389 | } |
410 | return false; | 390 | return false; |
@@ -419,16 +399,16 @@ key_retrig(int key) { | |||
419 | static inline | 399 | static inline |
420 | void | 400 | void |
421 | update_controller(void) { | 401 | update_controller(void) { |
422 | if (key_pressed(KEY_UP)) { ctrl.key_up++; } else if (key_released(KEY_UP)) { ctrl.key_up = 0; } | 402 | if (key_pressed(KEY_UP)) { ctrl.key_up++; } else { ctrl.key_up = 0; } |
423 | if (key_pressed(KEY_DOWN)) { ctrl.key_down++; } else if (key_released(KEY_DOWN)) { ctrl.key_down = 0; } | 403 | if (key_pressed(KEY_DOWN)) { ctrl.key_down++; } else { ctrl.key_down = 0; } |
424 | if (key_pressed(KEY_LEFT)) { ctrl.key_left++; } else if (key_released(KEY_LEFT)) { ctrl.key_left = 0; } | 404 | if (key_pressed(KEY_LEFT)) { ctrl.key_left++; } else { ctrl.key_left = 0; } |
425 | if (key_pressed(KEY_RIGHT)) { ctrl.key_right++; } else if (key_released(KEY_RIGHT)) { ctrl.key_right = 0; } | 405 | if (key_pressed(KEY_RIGHT)) { ctrl.key_right++; } else { ctrl.key_right = 0; } |
426 | if (key_pressed(KEY_L)) { ctrl.key_l++; } else if (key_released(KEY_L)) { ctrl.key_l = 0; } | 406 | if (key_pressed(KEY_L)) { ctrl.key_l++; } else { ctrl.key_l = 0; } |
427 | if (key_pressed(KEY_R)) { ctrl.key_r++; } else if (key_released(KEY_R)) { ctrl.key_r = 0; } | 407 | if (key_pressed(KEY_R)) { ctrl.key_r++; } else { ctrl.key_r = 0; } |
428 | if (key_pressed(KEY_A)) { ctrl.key_a++; } else if (key_released(KEY_A)) { ctrl.key_a = 0; } | 408 | if (key_pressed(KEY_A)) { ctrl.key_a++; } else { ctrl.key_a = 0; } |
429 | if (key_pressed(KEY_B)) { ctrl.key_b++; } else if (key_released(KEY_B)) { ctrl.key_b = 0; } | 409 | if (key_pressed(KEY_B)) { ctrl.key_b++; } else { ctrl.key_b = 0; } |
430 | if (key_pressed(KEY_SELECT)) { ctrl.key_select++; } else if (key_released(KEY_SELECT)) { ctrl.key_select = 0; } | 410 | if (key_pressed(KEY_SELECT)) { ctrl.key_select++; } else { ctrl.key_select = 0; } |
431 | if (key_pressed(KEY_START)) { ctrl.key_start++; } else if (key_released(KEY_START)) { ctrl.key_start = 0; } | 411 | if (key_pressed(KEY_START)) { ctrl.key_start++; } else { ctrl.key_start = 0; } |
432 | } | 412 | } |
433 | 413 | ||
434 | static inline | 414 | static inline |
diff --git a/src/globals.c b/src/globals.c index 9d0a5bb..b653eaf 100644 --- a/src/globals.c +++ b/src/globals.c | |||
@@ -19,6 +19,7 @@ u32 last_pattern_loc = 0; | |||
19 | u32 last_right_col_loc = 0; | 19 | u32 last_right_col_loc = 0; |
20 | u32 last_step_counter = 0; | 20 | u32 last_step_counter = 0; |
21 | bool clear_screen = true; | 21 | bool clear_screen = true; |
22 | bool nudge = false; | ||
22 | 23 | ||
23 | // | 24 | // |
24 | // Color indexes. | 25 | // Color indexes. |
diff --git a/src/sequencer.c b/src/sequencer.c index 4b7d174..9efd506 100644 --- a/src/sequencer.c +++ b/src/sequencer.c | |||
@@ -951,7 +951,6 @@ handle_pattern_chain(void) { | |||
951 | switch (param_selection_loc) { | 951 | switch (param_selection_loc) { |
952 | case CHAIN_BTN_ENABLE: { | 952 | case CHAIN_BTN_ENABLE: { |
953 | chain.enabled ^= 1; | 953 | chain.enabled ^= 1; |
954 | // chain.playing ^= 1; | ||
955 | } break; | 954 | } break; |
956 | case CHAIN_BTN_CLEAR: { | 955 | case CHAIN_BTN_CLEAR: { |
957 | chain.len = 0; | 956 | chain.len = 0; |
@@ -1689,9 +1688,8 @@ void | |||
1689 | handle_trigger_selection(void) { | 1688 | handle_trigger_selection(void) { |
1690 | TriggerNote *trig = get_current_trig(); | 1689 | TriggerNote *trig = get_current_trig(); |
1691 | 1690 | ||
1692 | static bool nudge = false; | ||
1693 | bool empty = patterns[pattern_selection_loc].empty; | 1691 | bool empty = patterns[pattern_selection_loc].empty; |
1694 | if (key_pressed(KEY_B) && ctrl.key_b > 10) { | 1692 | if (ctrl.key_b > 30) { |
1695 | nudge = true; | 1693 | nudge = true; |
1696 | } else if (key_released(KEY_B)) { | 1694 | } else if (key_released(KEY_B)) { |
1697 | if (nudge) { | 1695 | if (nudge) { |