item.asm 802 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. PickUpItem:
  2. call EnableAutoTextBoxDrawing
  3. ld a, [hSpriteIndexOrTextID]
  4. ld b, a
  5. ld hl, wMissableObjectList
  6. .missableObjectsListLoop
  7. ld a, [hli]
  8. cp $ff
  9. ret z
  10. cp b
  11. jr z, .isMissable
  12. inc hl
  13. jr .missableObjectsListLoop
  14. .isMissable
  15. ld a, [hl]
  16. ld [$ffdb], a
  17. ld hl, wMapSpriteExtraData
  18. ld a, [hSpriteIndexOrTextID]
  19. dec a
  20. add a
  21. ld d, 0
  22. ld e, a
  23. add hl, de
  24. ld a, [hl]
  25. ld b, a ; item
  26. ld c, 1 ; quantity
  27. call GiveItem
  28. jr nc, .BagFull
  29. ld a, [$ffdb]
  30. ld [wMissableObjectIndex], a
  31. predef HideObject
  32. ld a, 1
  33. ld [wDoNotWaitForButtonPressAfterDisplayingText], a
  34. ld hl, FoundItemText
  35. jr .print
  36. .BagFull
  37. ld hl, NoMoreRoomForItemText
  38. .print
  39. call PrintText
  40. ret
  41. FoundItemText:
  42. TX_FAR _FoundItemText
  43. TX_SFX_ITEM_1
  44. db "@"
  45. NoMoreRoomForItemText:
  46. TX_FAR _NoMoreRoomForItemText
  47. db "@"