pokecrystal-board/engine/battle/move_effects/conversion.asm
Rangi 0345e4fb0e Add suffixes to some constants to avoid ambiguity
- `PSYCHIC` → `PSYCHIC_TYPE` (not the trainer `PSYCHIC_T` or the move `PSYCHIC_M`)
- `BLACKBELT` → `BLACKBELT_I` (not the trainer `BLACKBELT_T`)
- `CURSE_T` → `CURSE_TYPE` (not the move `CURSE`)
- `TOWN_MAP_D` → `TOWN_MAP_POSTER` (not the item `TOWN_MAP`)

This also uncovered a misidentified event: `EVENT_DECO_PLANT_4` → `EVENT_DECO_POSTER_1`. (There are three plants and four posters.)
2020-03-21 17:59:26 -04:00

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_TYPE
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_TYPE
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