tms.asm 560 B

12345678910111213141516171819202122232425262728293031323334353637
  1. ; tests if mon [wcf91] can learn move [wMoveNum]
  2. CanLearnTM:
  3. ld a, [wcf91]
  4. ld [wd0b5], a
  5. call GetMonHeader
  6. ld hl, wMonHLearnset
  7. push hl
  8. ld a, [wMoveNum]
  9. ld b, a
  10. ld c, $0
  11. ld hl, TechnicalMachines
  12. .findTMloop
  13. ld a, [hli]
  14. cp b
  15. jr z, .TMfoundLoop
  16. inc c
  17. jr .findTMloop
  18. .TMfoundLoop
  19. pop hl
  20. ld b, FLAG_TEST
  21. predef_jump FlagActionPredef
  22. ; converts TM/HM number in wd11e into move number
  23. ; HMs start at 51
  24. TMToMove:
  25. ld a, [wd11e]
  26. dec a
  27. ld hl, TechnicalMachines
  28. ld b, $0
  29. ld c, a
  30. add hl, bc
  31. ld a, [hl]
  32. ld [wd11e], a
  33. ret
  34. INCLUDE "data/tms.asm"