mirror of
https://gitlab.com/xCrystal/pokecrystal-board.git
synced 2024-11-16 11:27:33 -08:00
eb1e3636bb
Use explicit ldh instruction to access HRAM locations, don't rely on optimizing ld
97 lines
1.2 KiB
NASM
97 lines
1.2 KiB
NASM
BattleCommand_Conversion:
|
|
; conversion
|
|
|
|
ld hl, wBattleMonMoves
|
|
ld de, wBattleMonType1
|
|
ldh a, [hBattleTurn]
|
|
and a
|
|
jr z, .got_moves
|
|
ld hl, wEnemyMonMoves
|
|
ld de, wEnemyMonType1
|
|
.got_moves
|
|
push de
|
|
ld c, 0
|
|
ld de, wStringBuffer1
|
|
.loop
|
|
push hl
|
|
ld b, 0
|
|
add hl, bc
|
|
ld a, [hl]
|
|
pop hl
|
|
and a
|
|
jr z, .okay
|
|
push hl
|
|
push bc
|
|
dec a
|
|
ld hl, Moves + MOVE_TYPE
|
|
call GetMoveAttr
|
|
ld [de], a
|
|
inc de
|
|
pop bc
|
|
pop hl
|
|
inc c
|
|
ld a, c
|
|
cp NUM_MOVES
|
|
jr c, .loop
|
|
.okay
|
|
ld a, $ff
|
|
ld [de], a
|
|
inc de
|
|
ld [de], a
|
|
inc de
|
|
ld [de], a
|
|
pop de
|
|
ld hl, wStringBuffer1
|
|
.loop2
|
|
ld a, [hl]
|
|
cp -1
|
|
jr z, .fail
|
|
cp CURSE_T
|
|
jr z, .next
|
|
ld a, [de]
|
|
cp [hl]
|
|
jr z, .next
|
|
inc de
|
|
ld a, [de]
|
|
dec de
|
|
cp [hl]
|
|
jr nz, .done
|
|
.next
|
|
inc hl
|
|
jr .loop2
|
|
|
|
.fail
|
|
call AnimateFailedMove
|
|
jp PrintButItFailed
|
|
|
|
.done
|
|
.loop3
|
|
call BattleRandom
|
|
maskbits NUM_MOVES
|
|
ld c, a
|
|
ld b, 0
|
|
ld hl, wStringBuffer1
|
|
add hl, bc
|
|
ld a, [hl]
|
|
cp -1
|
|
jr z, .loop3
|
|
cp CURSE_T
|
|
jr z, .loop3
|
|
ld a, [de]
|
|
cp [hl]
|
|
jr z, .loop3
|
|
inc de
|
|
ld a, [de]
|
|
dec de
|
|
cp [hl]
|
|
jr z, .loop3
|
|
ld a, [hl]
|
|
ld [de], a
|
|
inc de
|
|
ld [de], a
|
|
ld [wNamedObjectIndexBuffer], a
|
|
farcall GetTypeName
|
|
call AnimateCurrentMove
|
|
ld hl, TransformedTypeText
|
|
jp StdBattleTextBox
|