diff options
Diffstat (limited to 'engine/items.asm')
-rwxr-xr-x | engine/items.asm | 551 |
1 files changed, 0 insertions, 551 deletions
diff --git a/engine/items.asm b/engine/items.asm deleted file mode 100755 index deafa60c..00000000 --- a/engine/items.asm +++ /dev/null @@ -1,551 +0,0 @@ -_ReceiveItem:: ; d1e2 (3:51e2) - call CheckBagOrPC - jp nz, PutItemInPocketOrPC - push hl - call CheckItemPocket - pop de - ld a, [wItemAttributeParamBuffer] - dec a - ld hl, .Jumptable - rst JumpTable - ret - -.Jumptable - dw ReceiveNormalItem - dw ReceiveKeyItem - dw ReceiveBall - dw ReceiveTMHM - -ReceiveNormalItem: - ld h, d - ld l, e - jp PutItemInPocketOrPC - -ReceiveKeyItem: - ld h, d - ld l, e - jp PutItemInKeyItemPocket - -ReceiveBall: - ld hl, wNumBalls - jp PutItemInPocketOrPC - -ReceiveTMHM: - ld h, d - ld l, e - ld a, [wd002] - ld c, a - call GetTMHMNumber - jp PutItemInTMPocket - -_TossItem:: ; d21a (3:521a) - call CheckBagOrPC - jr nz, remove_item_from_bag_or_pc - push hl - call CheckItemPocket - pop de - ld a, [wItemAttributeParamBuffer] - dec a - ld hl, .Jumptable ; $522d - rst JumpTable - ret - -.Jumptable - dw RemoveNormalItem - dw RemoveKeyItem - dw RemoveBall - dw RemoveTMHM - -RemoveBall: - ld hl, wNumBalls - jp RemoveItemAndQuantity - -RemoveTMHM: - ld h, d - ld l, e - ld a, [wd002] - ld c, a - call GetTMHMNumber - jp RemoveTMorHM - -RemoveKeyItem: - ld h, d - ld l, e - jp RemoveItemWithoutQuantity - -RemoveNormalItem: - ld h, d - ld l, e -remove_item_from_bag_or_pc - jp RemoveItemAndQuantity - -_CheckItem:: ; d251 (3:5251) - call CheckBagOrPC - jr nz, check_item_in_bag_or_pc - push hl - call CheckItemPocket - pop de - ld a, [wItemAttributeParamBuffer] - dec a - ld hl, .Jumptable - rst JumpTable - ret - -.Jumptable - dw CheckNormalItem - dw CheckKeyItem - dw CheckBall - dw CheckTMHM - -CheckBall: - ld hl, wNumBalls - jp CheckItemWithQuantity - -CheckTMHM: - ld h, d - ld l, e - ld a, [wd002] - ld c, a - call GetTMHMNumber - jp CheckTMorHM - -CheckKeyItem: - ld h, d - ld l, e - jp CheckItemWithoutQuantity - -CheckNormalItem: - ld h, d - ld l, e -check_item_in_bag_or_pc - jp CheckItemWithQuantity - -CheckBagOrPC: ; d288 (3:5288) - ld a, l - cp wNumItems % $100 - ret nz - ld a, h - cp wNumItems / $100 - ret - -GetPocketCapacity: ; d290 (3:5290) - ld c, MAX_ITEMS - ld a, e - cp wNumItems % $100 - jr nz, .asm_d29b - ld a, d - cp wNumItems / $100 - ret z -.asm_d29b - ld c, MAX_PC_ITEMS - ld a, e - cp wPCItems % $100 - jr nz, .asm_d2a6 - ld a, d - cp wPCItems / $100 - ret z -.asm_d2a6 - ld c, MAX_BALLS - ret - -PutItemInPocketOrPC: ; d2a9 (3:52a9) - ld d, h - ld e, l - inc hl - ld a, [wd002] - ld c, a - ld b, $0 -.asm_d2b2 - ld a, [hli] - cp $ff - jr z, .asm_d2ca - cp c - jr nz, .asm_d2c7 - ld a, $63 - sub [hl] - add b - ld b, a - ld a, [wItemQuantityChangeBuffer] - cp b - jr z, .asm_d2d3 - jr c, .asm_d2d3 -.asm_d2c7 - inc hl - jr .asm_d2b2 - -.asm_d2ca - call GetPocketCapacity - ld a, [de] - cp c - jr c, .asm_d2d3 - and a - ret - -.asm_d2d3 - ld h, d - ld l, e - ld a, [wd002] - ld c, a - ld a, [wItemQuantityChangeBuffer] - ld [wItemQuantityBuffer], a -.asm_d2df - inc hl - ld a, [hli] - cp $ff - jr z, .asm_d2fc - cp c - jr nz, .asm_d2df - ld a, [wItemQuantityBuffer] - add [hl] - cp $64 - jr nc, .asm_d2f3 - ld [hl], a - jr .asm_d30a - -.asm_d2f3 - ld [hl], $63 - sub $63 - ld [wItemQuantityBuffer], a - jr .asm_d2df - -.asm_d2fc - dec hl - ld a, [wd002] - ld [hli], a - ld a, [wItemQuantityBuffer] - ld [hli], a - ld [hl], $ff - ld h, d - ld l, e - inc [hl] -.asm_d30a - scf - ret - -RemoveItemAndQuantity: ; d30c (3:530c) - ld d, h - ld e, l - ld a, [hli] - ld c, a - ld a, [wd003] - cp c - jr nc, .asm_d325 - ld c, a - ld b, $0 - add hl, bc - add hl, bc - ld a, [wd002] - cp [hl] - inc hl - jr z, .asm_d334 - ld h, d - ld l, e - inc hl -.asm_d325 - ld a, [wd002] - ld b, a -.asm_d329 - ld a, [hli] - cp b - jr z, .asm_d334 - cp $ff - jr z, .asm_d354 - inc hl - jr .asm_d329 - -.asm_d334 - ld a, [wItemQuantityChangeBuffer] - ld b, a - ld a, [hl] - sub b - jr c, .asm_d354 - ld [hl], a - ld [wItemQuantityBuffer], a - and a - jr nz, .asm_d352 - dec hl - ld b, h - ld c, l - inc hl - inc hl -.asm_d348 - ld a, [hli] - ld [bc], a - inc bc - cp $ff - jr nz, .asm_d348 - ld h, d - ld l, e - dec [hl] -.asm_d352 - scf - ret - -.asm_d354 - and a - ret - -CheckItemWithQuantity: ; d356 (3:5356) - ld a, [wd002] - ld c, a -.asm_d35a - inc hl - ld a, [hli] - cp $ff - jr z, .asm_d365 - cp c - jr nz, .asm_d35a - scf - ret - -.asm_d365 - and a - ret - -PutItemInKeyItemPocket: ; d367 (3:5367) - ld hl, wItemsEnd - ld a, [hli] - cp $19 - jr nc, .asm_d37f - ld c, a - ld b, $0 - add hl, bc - ld a, [wd002] - ld [hli], a - ld [hl], $ff - ld hl, wNumKeyItems - inc [hl] - scf - ret - -.asm_d37f - and a - ret - -RemoveItemWithoutQuantity: ; d381 (3:5381) - ld a, [wd003] - ld e, a - ld d, $0 - ld hl, wItemsEnd - ld a, [hl] - cp e - jr nc, .asm_d394 - call FindAndTossKeyItem - ret nc - jr .asm_d397 - -.asm_d394 - dec [hl] - inc hl - add hl, de -.asm_d397 - ld d, h - ld e, l - inc hl -.asm_d39a - ld a, [hli] - ld [de], a - inc de - cp $ff - jr nz, .asm_d39a - scf - ret - -FindAndTossKeyItem: ; d3a3 (3:53a3) - ld hl, wItemsEnd - ld a, [wd002] - ld c, a -.asm_d3aa - inc hl - ld a, [hl] - cp c - jr z, .asm_d3b5 - cp $ff - jr nz, .asm_d3aa - xor a - ret - -.asm_d3b5 - ld a, [wNumKeyItems] - dec a - ld [wNumKeyItems], a - scf - ret - -CheckItemWithoutQuantity: ; d3be (3:53be) - ld a, [wd002] - ld c, a - ld hl, wKeyItems -.asm_d3c5 - ld a, [hli] - cp c - jr z, .asm_d3cf - cp $ff - jr nz, .asm_d3c5 - and a - ret - -.asm_d3cf - scf - ret - -PutItemInTMPocket: ; d3d1 (3:53d1) - dec c - ld b, $0 - ld hl, wTMsHMs - add hl, bc - ld a, [wItemQuantityChangeBuffer] - add [hl] - cp $64 - jr nc, .asm_d3e3 - ld [hl], a - scf - ret - -.asm_d3e3 - and a - ret - -RemoveTMorHM: ; d3e5 (3:53e5) - dec c - ld b, $0 - ld hl, wTMsHMs - add hl, bc - ld a, [wItemQuantityChangeBuffer] - ld b, a - ld a, [hl] - sub b - jr c, .asm_d406 - ld [hl], a - ld [wItemQuantityBuffer], a - jr nz, .asm_d404 - ld a, [wcfd2] - and a - jr z, .asm_d404 - dec a - ld [wcfd2], a -.asm_d404 - scf - ret - -.asm_d406 - and a - ret - -CheckTMorHM: ; d408 (3:5408) - dec c - ld b, $0 - ld hl, wTMsHMs - add hl, bc - ld a, [hl] - and a - ret z - scf - ret - -GetTMHMNumber:: ; d414 (3:5414) - ld a, c - cp ITEM_C3 - jr c, .asm_d41f - cp ITEM_DC - jr c, .asm_d41e - dec a -.asm_d41e - dec a -.asm_d41f - sub $bf - inc a - ld c, a - ret - -GetNumberedTM: - ld a, c - cp ITEM_C3 - (TM01 - 1) - jr c, .asm_d42f - cp ITEM_DC - (TM01 - 1) - 1 - jr c, .asm_d42e - inc a -.asm_d42e - inc a -.asm_d42f - add TM01 - dec a - ld c, a - ret - -_CheckTossableItem:: ; d434 (3:5434) - ld a, $4 - call GetItemAttr - bit 7, a - jr nz, ItemAttr_ReturnCarry - and a - ret - -CheckSelectableItem: - ld a, $4 - call GetItemAttr - bit 6, a - jr nz, ItemAttr_ReturnCarry - and a - ret - -CheckItemPocket: ; d44a (3:544a) - ld a, $5 - call GetItemAttr - and $f - ld [wItemAttributeParamBuffer], a - ret - -CheckItemContext: - ld a, $6 - call GetItemAttr - and $f - ld [wItemAttributeParamBuffer], a - ret - -CheckItemMenu: - ld a, $6 - call GetItemAttr - swap a - and $f - ld [wItemAttributeParamBuffer], a - ret - -GetItemAttr: ; d46d (3:546d) - push hl - push bc - ld hl, ItemAttributes - ld c, a - ld b, $0 - add hl, bc - xor a - ld [wItemAttributeParamBuffer], a - ld a, [wd002] - dec a - ld c, a - ld a, $7 - call AddNTimes - ld a, BANK(ItemAttributes) - call GetFarByte - pop bc - pop hl - ret - -ItemAttr_ReturnCarry - ld a, $1 - ld [wItemAttributeParamBuffer], a - scf - ret - -GetItemPrice: - push hl - push bc - ld a, $0 - call GetItemAttr - ld e, a - ld a, $1 - call GetItemAttr - ld d, a - pop bc - pop hl - ret |