MoveTutor: call FadeToMenu call ClearBGPalettes call ClearScreen call DelayFrame ld b, CGB_PACKPALS call GetCGBLayout xor a ld [wItemAttributeValue], a call .GetMoveTutorMove ld [wNamedObjectIndex], 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 ; FALSE ldh [hScriptVar], a jr .quit .cancel ld a, -1 ldh [hScriptVar], a .quit call CloseSubmenu ret .GetMoveTutorMove: ldh a, [hScriptVar] cp MOVETUTOR_FLAMETHROWER jr z, .flamethrower cp MOVETUTOR_THUNDERBOLT jr z, .thunderbolt ; MOVETUTOR_ICE_BEAM ld a, MT03_MOVE ; ICE_BEAM ret .flamethrower ld a, MT01_MOVE ; FLAMETHROWER ret .thunderbolt ld a, MT02_MOVE ; THUNDERBOLT ret CheckCanLearnMoveTutorMove: ld hl, .MenuHeader call LoadMenuHeader predef CanLearnTMHMMove push bc ld a, [wCurPartyMon] ld hl, wPartyMonNicknames call GetNickname pop bc ld a, c and a jr nz, .can_learn push de ld de, SFX_WRONG call PlaySFX pop de ld a, BANK(TMHMNotCompatibleText) ld hl, TMHMNotCompatibleText call FarPrintText1bpp 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 .MenuHeader: db MENU_BACKUP_TILES ; flags menu_coords 0, 12, SCREEN_WIDTH - 1, SCREEN_HEIGHT - 1