play_time.asm 863 B

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162
  1. TrackPlayTime:
  2. call CountDownIgnoreInputBitReset
  3. ld a, [wd732]
  4. bit 0, a
  5. ret z
  6. ld a, [wPlayTimeMaxed]
  7. and a
  8. ret nz
  9. ld a, [wPlayTimeFrames]
  10. inc a
  11. ld [wPlayTimeFrames], a
  12. cp 60
  13. ret nz
  14. xor a
  15. ld [wPlayTimeFrames], a
  16. ld a, [wPlayTimeSeconds]
  17. inc a
  18. ld [wPlayTimeSeconds], a
  19. cp 60
  20. ret nz
  21. xor a
  22. ld [wPlayTimeSeconds], a
  23. ld a, [wPlayTimeMinutes]
  24. inc a
  25. ld [wPlayTimeMinutes], a
  26. cp 60
  27. ret nz
  28. xor a
  29. ld [wPlayTimeMinutes], a
  30. ld a, [wPlayTimeHours]
  31. inc a
  32. ld [wPlayTimeHours], a
  33. cp $ff
  34. ret nz
  35. ld a, $ff
  36. ld [wPlayTimeMaxed], a
  37. ret
  38. CountDownIgnoreInputBitReset:
  39. ld a, [wIgnoreInputCounter]
  40. and a
  41. jr nz, .asm_18e40
  42. ld a, $ff
  43. jr .asm_18e41
  44. .asm_18e40
  45. dec a
  46. .asm_18e41
  47. ld [wIgnoreInputCounter], a
  48. and a
  49. ret nz
  50. ld a, [wd730]
  51. res 1, a
  52. res 2, a
  53. bit 5, a
  54. res 5, a
  55. ld [wd730], a
  56. ret z
  57. xor a
  58. ld [hJoyPressed], a
  59. ld [hJoyHeld], a
  60. ret