oaks_aide.asm 1.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. OaksAideScript:
  2. ld hl, OaksAideHiText
  3. call PrintText
  4. call YesNoChoice
  5. ld a, [wCurrentMenuItem]
  6. and a
  7. jr nz, .choseNo
  8. ld hl, wPokedexOwned
  9. ld b, wPokedexOwnedEnd - wPokedexOwned
  10. call CountSetBits
  11. ld a, [wNumSetBits]
  12. ld [hOaksAideNumMonsOwned], a
  13. ld b, a
  14. ld a, [hOaksAideRequirement]
  15. cp b
  16. jr z, .giveItem
  17. jr nc, .notEnoughOwnedMons
  18. .giveItem
  19. ld hl, OaksAideHereYouGoText
  20. call PrintText
  21. ld a, [hOaksAideRewardItem]
  22. ld b, a
  23. ld c, 1
  24. call GiveItem
  25. jr nc, .bagFull
  26. ld hl, OaksAideGotItemText
  27. call PrintText
  28. ld a, $1
  29. jr .done
  30. .bagFull
  31. ld hl, OaksAideNoRoomText
  32. call PrintText
  33. xor a
  34. jr .done
  35. .notEnoughOwnedMons
  36. ld hl, OaksAideUhOhText
  37. call PrintText
  38. ld a, $80
  39. jr .done
  40. .choseNo
  41. ld hl, OaksAideComeBackText
  42. call PrintText
  43. ld a, $ff
  44. .done
  45. ld [hOaksAideResult], a
  46. ret
  47. OaksAideHiText:
  48. TX_FAR _OaksAideHiText
  49. db "@"
  50. OaksAideUhOhText:
  51. TX_FAR _OaksAideUhOhText
  52. db "@"
  53. OaksAideComeBackText:
  54. TX_FAR _OaksAideComeBackText
  55. db "@"
  56. OaksAideHereYouGoText:
  57. TX_FAR _OaksAideHereYouGoText
  58. db "@"
  59. OaksAideGotItemText:
  60. TX_FAR _OaksAideGotItemText
  61. TX_SFX_ITEM_1
  62. db "@"
  63. OaksAideNoRoomText:
  64. TX_FAR _OaksAideNoRoomText
  65. db "@"