pokecrystal-board/engine/battle/move_effects/conversion2.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

65 lines
989 B
NASM

BattleCommand_Conversion2:
; conversion2
ld a, [wAttackMissed]
and a
jr nz, .failed
ld hl, wBattleMonType1
ldh a, [hBattleTurn]
and a
jr z, .got_type
ld hl, wEnemyMonType1
.got_type
ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP
call GetBattleVar
and a
jr z, .failed
push hl
dec a
ld hl, Moves + MOVE_TYPE
call GetMoveAttr
ld d, a
pop hl
cp CURSE_TYPE
jr z, .failed
call AnimateCurrentMove
call BattleCommand_SwitchTurn
.loop
call BattleRandom
maskbits NUM_TYPES
cp UNUSED_TYPES
jr c, .okay
cp UNUSED_TYPES_END
jr c, .loop
cp TYPES_END
jr nc, .loop
.okay
ld [hli], a
ld [hld], a
push hl
ld a, BATTLE_VARS_MOVE_TYPE
call GetBattleVarAddr
push af
push hl
ld a, d
ld [hl], a
call BattleCheckTypeMatchup
pop hl
pop af
ld [hl], a
pop hl
ld a, [wTypeMatchup]
cp EFFECTIVE
jr nc, .loop
call BattleCommand_SwitchTurn
ld a, [hl]
ld [wNamedObjectIndexBuffer], a
predef GetTypeName
ld hl, TransformedTypeText
jp StdBattleTextbox
.failed
jp FailMove