pokecrystal-board/engine/battle/consume_held_item.asm
Rangi eb1e3636bb Use labels instead of constants for HRAM
Use explicit ldh instruction to access HRAM locations, don't rely on optimizing ld
2018-08-25 14:28:22 -04:00

58 lines
690 B
NASM

ConsumeHeldItem:
push hl
push de
push bc
ldh a, [hBattleTurn]
and a
ld hl, wOTPartyMon1Item
ld de, wEnemyMonItem
ld a, [wCurOTMon]
jr z, .theirturn
ld hl, wPartyMon1Item
ld de, wBattleMonItem
ld a, [wCurBattleMon]
.theirturn
push hl
push af
ld a, [de]
ld b, a
farcall GetItemHeldEffect
ld hl, ConsumableEffects
.loop
ld a, [hli]
cp b
jr z, .ok
inc a
jr nz, .loop
pop af
pop hl
pop bc
pop de
pop hl
ret
.ok
xor a
ld [de], a
pop af
pop hl
call GetPartyLocation
ldh a, [hBattleTurn]
and a
jr nz, .ourturn
ld a, [wBattleMode]
dec a
jr z, .done
.ourturn
ld [hl], NO_ITEM
.done
pop bc
pop de
pop hl
ret
INCLUDE "data/battle/held_consumables.asm"