aboutsummaryrefslogtreecommitdiffstats
path: root/engine/overworld/item.asm
diff options
context:
space:
mode:
authoryenatch <yenatch@gmail.com>2014-07-12 09:02:49 -0400
committeryenatch <yenatch@gmail.com>2014-07-12 09:02:49 -0400
commitfb11ff7e55be56cef9234c8443614f04f2157a1e (patch)
treea6aa8d0745bd07d0b80090491b5e4b6652de4420 /engine/overworld/item.asm
parentPull a lot of engine out of main.asm (diff)
parentUpdate INSTALL.md (diff)
downloadpokeyellow-fb11ff7e55be56cef9234c8443614f04f2157a1e.tar.gz
pokeyellow-fb11ff7e55be56cef9234c8443614f04f2157a1e.tar.xz
pokeyellow-fb11ff7e55be56cef9234c8443614f04f2157a1e.zip
Merge pull request #48 from yenatch/master
Clean up post-split main.asm. Get rid of static wram addresses. Lay out a foundation for Yellow.
Diffstat (limited to 'engine/overworld/item.asm')
-rw-r--r--engine/overworld/item.asm54
1 files changed, 54 insertions, 0 deletions
diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm
new file mode 100644
index 00000000..a69ec106
--- /dev/null
+++ b/engine/overworld/item.asm
@@ -0,0 +1,54 @@
+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 [wcc4d], a
+ predef HideObject
+ ld a, 1
+ ld [wcc3c], 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 "@"