diff options
author | Bad Diode <bd@badd10de.dev> | 2022-11-28 18:23:59 +0100 |
---|---|---|
committer | Bad Diode <bd@badd10de.dev> | 2022-11-28 18:23:59 +0100 |
commit | a12953ab78933bbfef36fa7cff04e5829ab0c947 (patch) | |
tree | 487277535fd95f6b83dc7e69de3ecb525240d78b | |
parent | 656d36ed6971d12c668b19e609e8f25aba49cb88 (diff) | |
download | uxngba-a12953ab78933bbfef36fa7cff04e5829ab0c947.tar.gz uxngba-a12953ab78933bbfef36fa7cff04e5829ab0c947.zip |
Change controller behaviour to avoid repeats on hold
-rw-r--r-- | src/main.c | 26 | ||||
-rw-r--r-- | src/ppu.c | 2 |
2 files changed, 14 insertions, 14 deletions
@@ -342,42 +342,42 @@ handle_input(Uxn *u) { | |||
342 | // TODO: We don't need ifs if we use KEY_INPUTS directly and mayvbe just | 342 | // TODO: We don't need ifs if we use KEY_INPUTS directly and mayvbe just |
343 | // swap some things if needed. | 343 | // swap some things if needed. |
344 | u8 *flag = &devctrl->dat[2]; | 344 | u8 *flag = &devctrl->dat[2]; |
345 | if (key_pressed(KEY_A)) { | 345 | if (key_tap(KEY_A)) { |
346 | *flag |= 0x01; | 346 | *flag |= 0x01; |
347 | } else { | 347 | } else { |
348 | *flag &= ~0x01; | 348 | *flag &= ~0x01; |
349 | } | 349 | } |
350 | if (key_pressed(KEY_B)) { | 350 | if (key_tap(KEY_B)) { |
351 | *flag |= 0x02; | 351 | *flag |= 0x02; |
352 | } else { | 352 | } else { |
353 | *flag &= ~0x02; | 353 | *flag &= ~0x02; |
354 | } | 354 | } |
355 | if (key_pressed(KEY_L)) { | 355 | if (key_tap(KEY_L)) { |
356 | *flag |= 0x04; | 356 | *flag |= 0x04; |
357 | } else { | 357 | } else { |
358 | *flag &= ~0x04; | 358 | *flag &= ~0x04; |
359 | } | 359 | } |
360 | if (key_pressed(KEY_R)) { | 360 | if (key_tap(KEY_R)) { |
361 | *flag |= 0x08; | 361 | *flag |= 0x08; |
362 | } else { | 362 | } else { |
363 | *flag &= ~0x08; | 363 | *flag &= ~0x08; |
364 | } | 364 | } |
365 | if (key_pressed(KEY_UP)) { | 365 | if (key_tap(KEY_UP)) { |
366 | *flag |= 0x10; | 366 | *flag |= 0x10; |
367 | } else { | 367 | } else { |
368 | *flag &= ~0x10; | 368 | *flag &= ~0x10; |
369 | } | 369 | } |
370 | if (key_pressed(KEY_DOWN)) { | 370 | if (key_tap(KEY_DOWN)) { |
371 | *flag |= 0x20; | 371 | *flag |= 0x20; |
372 | } else { | 372 | } else { |
373 | *flag &= ~0x20; | 373 | *flag &= ~0x20; |
374 | } | 374 | } |
375 | if (key_pressed(KEY_LEFT)) { | 375 | if (key_tap(KEY_LEFT)) { |
376 | *flag |= 0x40; | 376 | *flag |= 0x40; |
377 | } else { | 377 | } else { |
378 | *flag &= ~0x40; | 378 | *flag &= ~0x40; |
379 | } | 379 | } |
380 | if (key_pressed(KEY_RIGHT)) { | 380 | if (key_tap(KEY_RIGHT)) { |
381 | *flag |= 0x80; | 381 | *flag |= 0x80; |
382 | } else { | 382 | } else { |
383 | *flag &= ~0x80; | 383 | *flag &= ~0x80; |
@@ -409,14 +409,14 @@ handle_input(Uxn *u) { | |||
409 | } | 409 | } |
410 | 410 | ||
411 | // Detect mouse movement. | 411 | // Detect mouse movement. |
412 | if (key_pressed(KEY_UP)) { | 412 | if (key_tap(KEY_UP)) { |
413 | mouse.y = CLAMP(mouse.y - MOUSE_DELTA, 0, SCREEN_HEIGHT - 8); | 413 | mouse.y = CLAMP(mouse.y - MOUSE_DELTA, 0, SCREEN_HEIGHT - 8); |
414 | } else if (key_pressed(KEY_DOWN)) { | 414 | } else if (key_tap(KEY_DOWN)) { |
415 | mouse.y = CLAMP(mouse.y + MOUSE_DELTA, 0, SCREEN_HEIGHT - 8); | 415 | mouse.y = CLAMP(mouse.y + MOUSE_DELTA, 0, SCREEN_HEIGHT - 8); |
416 | } | 416 | } |
417 | if (key_pressed(KEY_LEFT)) { | 417 | if (key_tap(KEY_LEFT)) { |
418 | mouse.x = CLAMP(mouse.x - MOUSE_DELTA, 0, SCREEN_WIDTH - 8); | 418 | mouse.x = CLAMP(mouse.x - MOUSE_DELTA, 0, SCREEN_WIDTH - 8); |
419 | } else if (key_pressed(KEY_RIGHT)) { | 419 | } else if (key_tap(KEY_RIGHT)) { |
420 | mouse.x = CLAMP(mouse.x + MOUSE_DELTA, 0, SCREEN_WIDTH - 8); | 420 | mouse.x = CLAMP(mouse.x + MOUSE_DELTA, 0, SCREEN_WIDTH - 8); |
421 | } | 421 | } |
422 | 422 | ||
@@ -475,7 +475,7 @@ handle_input(Uxn *u) { | |||
475 | 475 | ||
476 | static Uxn u; | 476 | static Uxn u; |
477 | EWRAM_BSS | 477 | EWRAM_BSS |
478 | static u8 umem[KB(65)]; | 478 | static u8 umem[KB(64)]; |
479 | 479 | ||
480 | int main(void) { | 480 | int main(void) { |
481 | // Adjust system wait times. | 481 | // Adjust system wait times. |
@@ -169,7 +169,7 @@ putcolors(u8 *addr) { | |||
169 | IWRAM_CODE | 169 | IWRAM_CODE |
170 | void | 170 | void |
171 | ppu_pixel(u32 *layer, u16 x, u16 y, u8 color) { | 171 | ppu_pixel(u32 *layer, u16 x, u16 y, u8 color) { |
172 | if (x >= SCREEN_WIDTH || y >= SCREEN_HEIGHT) return; | 172 | if (x > SCREEN_WIDTH || y > SCREEN_HEIGHT) return; |
173 | size_t tile_x = x / 8; | 173 | size_t tile_x = x / 8; |
174 | size_t tile_y = y / 8; | 174 | size_t tile_y = y / 8; |
175 | size_t start_col = x % 8; | 175 | size_t start_col = x % 8; |