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 /src/gba/gba.h | |
parent | 56d69da83d1f004c79d2c3c5d27c28a5f3ec973e (diff) | |
download | stepper-c9a48c8cbea8718181632c461a7ed9abae9988e3.tar.gz stepper-c9a48c8cbea8718181632c461a7ed9abae9988e3.zip |
Use a more loose time for nudging triggers
Diffstat (limited to 'src/gba/gba.h')
-rw-r--r-- | src/gba/gba.h | 80 |
1 files changed, 30 insertions, 50 deletions
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 |