diff options
| author | yenatch <yenatch@gmail.com> | 2014-05-25 19:48:35 -0700 | 
|---|---|---|
| committer | yenatch <yenatch@gmail.com> | 2014-05-25 19:53:43 -0700 | 
| commit | 41906725d0736f954ac3a0b596d2b94ed97332bd (patch) | |
| tree | 0d0509766532789dbacf15a595f85f533f8e2750 /engine/overworld | |
| parent | db569956efab02d4199a584b2916a188bce6b566 (diff) | |
Split out item fragment code.
Diffstat (limited to 'engine/overworld')
| -rw-r--r-- | engine/overworld/item.asm | 55 | 
1 files changed, 55 insertions, 0 deletions
| 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 "@" | 
