summaryrefslogtreecommitdiff
path: root/engine/items.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/items.asm')
-rwxr-xr-xengine/items.asm551
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