From 41906725d0736f954ac3a0b596d2b94ed97332bd Mon Sep 17 00:00:00 2001 From: yenatch Date: Sun, 25 May 2014 19:48:35 -0700 Subject: Split out item fragment code. --- engine/overworld/item.asm | 55 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) create mode 100644 engine/overworld/item.asm (limited to 'engine') diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm new file mode 100644 index 00000000..afc146f1 --- /dev/null +++ b/engine/overworld/item.asm @@ -0,0 +1,55 @@ +PickupItem: + call EnableAutoTextBoxDrawing + + ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + ld b, a + ld hl, W_MISSABLEOBJECTLIST +.missableObjectsListLoop + ld a, [hli] + cp $ff + ret z + cp b + jr z, .isMissable + inc hl + jr .missableObjectsListLoop + +.isMissable + ld a, [hl] + ld [$ffdb], a + + ld hl, W_MAPSPRITEEXTRADATA + ld a, [H_DOWNARROWBLINKCNT2] ; $ff8c + dec a + add a + ld d, 0 + ld e, a + add hl, de + ld a, [hl] + ld b, a ; item + ld c, 1 ; quantity + call GiveItem + jr nc, .BagFull + + ld a, [$ffdb] + ld [$cc4d], a + ld a, $11 ; RemoveMissableObject + call Predef + ld a, 1 + ld [$cc3c], a + ld hl, FoundItemText + jr .print + +.BagFull + ld hl, NoMoreRoomForItemText +.print + call PrintText + ret + +FoundItemText: + TX_FAR _FoundItemText + db $0B + db "@" + +NoMoreRoomForItemText: + TX_FAR _NoMoreRoomForItemText + db "@" -- cgit v1.2.3