Added a bunch of constants for the bitflags of each kind of menu. Some are slightly vague or too long, but I'm not sure how to else name them.
104 lines
1.5 KiB
NASM
104 lines
1.5 KiB
NASM
Special_MoveTutor: ; 4925b
|
|
call FadeToMenu
|
|
call ClearBGPalettes
|
|
call ClearScreen
|
|
call DelayFrame
|
|
ld b, SCGB_PACKPALS
|
|
call GetSGBLayout
|
|
xor a
|
|
ld [wItemAttributeParamBuffer], a
|
|
call .GetMoveTutorMove
|
|
ld [wd265], a
|
|
ld [wPutativeTMHMMove], a
|
|
call GetMoveName
|
|
call CopyName1
|
|
farcall ChooseMonToLearnTMHM
|
|
jr c, .cancel
|
|
jr .enter_loop
|
|
|
|
.loop
|
|
farcall ChooseMonToLearnTMHM_NoRefresh
|
|
jr c, .cancel
|
|
.enter_loop
|
|
call CheckCanLearnMoveTutorMove
|
|
jr nc, .loop
|
|
xor a
|
|
ld [ScriptVar], a
|
|
jr .quit
|
|
|
|
.cancel
|
|
ld a, -1
|
|
ld [ScriptVar], a
|
|
.quit
|
|
call CloseSubmenu
|
|
ret
|
|
|
|
.GetMoveTutorMove: ; 492a5
|
|
ld a, [ScriptVar]
|
|
cp 1
|
|
jr z, .flamethrower
|
|
cp 2
|
|
jr z, .thunderbolt
|
|
ld a, ICE_BEAM
|
|
ret
|
|
|
|
.flamethrower
|
|
ld a, FLAMETHROWER
|
|
ret
|
|
|
|
.thunderbolt
|
|
ld a, THUNDERBOLT
|
|
ret
|
|
|
|
CheckCanLearnMoveTutorMove: ; 492b9
|
|
ld hl, .MenuDataHeader
|
|
call LoadMenuDataHeader
|
|
|
|
predef CanLearnTMHMMove
|
|
|
|
push bc
|
|
ld a, [CurPartyMon]
|
|
ld hl, PartyMonNicknames
|
|
call GetNick
|
|
pop bc
|
|
|
|
ld a, c
|
|
and a
|
|
jr nz, .can_learn
|
|
push de
|
|
ld de, SFX_WRONG
|
|
call PlaySFX
|
|
pop de
|
|
ld a, BANK(Text_TMHMNotCompatible)
|
|
ld hl, Text_TMHMNotCompatible
|
|
call FarPrintText
|
|
jr .didnt_learn
|
|
|
|
.can_learn
|
|
callfar KnowsMove
|
|
jr c, .didnt_learn
|
|
|
|
predef LearnMove
|
|
ld a, b
|
|
and a
|
|
jr z, .didnt_learn
|
|
|
|
ld c, HAPPINESS_LEARNMOVE
|
|
callfar ChangeHappiness
|
|
jr .learned
|
|
|
|
.didnt_learn
|
|
call ExitMenu
|
|
and a
|
|
ret
|
|
|
|
.learned
|
|
call ExitMenu
|
|
scf
|
|
ret
|
|
|
|
.MenuDataHeader: ; 0x4930a
|
|
db MENU_BACKUP_TILES ; flags
|
|
db 12, 00 ; start coords
|
|
db 17, 19 ; end coords
|