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 | |
parent | db569956efab02d4199a584b2916a188bce6b566 (diff) |
Split out item fragment code.
-rw-r--r-- | engine/overworld/item.asm | 55 | ||||
-rwxr-xr-x | main.asm | 58 |
2 files changed, 56 insertions, 57 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 "@" @@ -487,63 +487,7 @@ TestBattle: 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 -.print - 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" |