ref: 41906725d0736f954ac3a0b596d2b94ed97332bd
parent: db569956efab02d4199a584b2916a188bce6b566
author: yenatch <yenatch@gmail.com>
date: Sun May 25 15:48:35 EDT 2014
Split out item fragment code.
--- /dev/null
+++ b/engine/overworld/item.asm
@@ -1,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
+ call PrintText
+ ret
+
+FoundItemText:
+ TX_FAR _FoundItemText
+ db $0B
+ db "@"
+
+NoMoreRoomForItemText:
+ TX_FAR _NoMoreRoomForItemText
+ db "@"
--- a/main.asm
+++ b/main.asm
@@ -487,63 +487,7 @@
ld [H_AUTOBGTRANSFERENABLED], a
jr .loop
-
-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
- call PrintText
- ret
-
-FoundItemText:
- TX_FAR _FoundItemText
- db $0B
- db "@"
-
-NoMoreRoomForItemText:
- TX_FAR _NoMoreRoomForItemText
- db "@"
-
+INCLUDE "engine/overworld/item.asm"
INCLUDE "engine/overworld/movement.asm"
INCLUDE "engine/cable_club.asm"