diff options
Diffstat (limited to 'engine/learn_move.asm')
-rwxr-xr-x | engine/learn_move.asm | 250 |
1 files changed, 0 insertions, 250 deletions
diff --git a/engine/learn_move.asm b/engine/learn_move.asm deleted file mode 100755 index 021d0eeb..00000000 --- a/engine/learn_move.asm +++ /dev/null @@ -1,250 +0,0 @@ -LearnMove: - call SaveScreenTilesToBuffer1 - ld a, [wWhichPokemon] - ld hl, wPartyMonNicks - call GetPartyMonName - ld hl, wcd6d - ld de, wLearnMoveMonName - ld bc, NAME_LENGTH - call CopyData - -DontAbandonLearning: - ld hl, wPartyMon1Moves - ld bc, wPartyMon2Moves - wPartyMon1Moves - ld a, [wWhichPokemon] - call AddNTimes - ld d, h - ld e, l - ld b, NUM_MOVES -.findEmptyMoveSlotLoop - ld a, [hl] - and a - jr z, .next - inc hl - dec b - jr nz, .findEmptyMoveSlotLoop - push de - call TryingToLearn - pop de - jp c, AbandonLearning - push hl - push de - ld [wd11e], a - call GetMoveName - ld hl, OneTwoAndText - call PrintText - pop de - pop hl -.next - ld a, [wMoveNum] - ld [hl], a - ld bc, wPartyMon1PP - wPartyMon1Moves - add hl, bc - push hl - push de - dec a - ld hl, Moves - ld bc, MoveEnd - Moves - call AddNTimes - ld de, wBuffer - ld a, BANK(Moves) - call FarCopyData - ld a, [wBuffer + 5] ; a = move's max PP - pop de - pop hl - ld [hl], a - ld a, [wIsInBattle] - and a - jp z, PrintLearnedMove - ld a, [wWhichPokemon] - ld b, a - ld a, [wPlayerMonNumber] - cp b - jp nz, PrintLearnedMove - ld h, d - ld l, e - ld de, wBattleMonMoves - ld bc, NUM_MOVES - call CopyData - ld bc, wPartyMon1PP - wPartyMon1OTID - add hl, bc - ld de, wBattleMonPP - ld bc, NUM_MOVES - call CopyData - jp PrintLearnedMove - -AbandonLearning: - ld hl, AbandonLearningText - call PrintText - coord hl, 14, 7 - lb bc, 8, 15 - ld a, TWO_OPTION_MENU - ld [wTextBoxID], a - call DisplayTextBoxID ; yes/no menu - ld a, [wCurrentMenuItem] - and a - jp nz, DontAbandonLearning - ld hl, DidNotLearnText - call PrintText - ld b, 0 - ret - -PrintLearnedMove: - ld hl, LearnedMove1Text - call PrintText - ld b, 1 - ret - -TryingToLearn: - push hl - ld hl, TryingToLearnText - call PrintText - coord hl, 14, 7 - lb bc, 8, 15 - ld a, TWO_OPTION_MENU - ld [wTextBoxID], a - call DisplayTextBoxID ; yes/no menu - pop hl - ld a, [wCurrentMenuItem] - rra - ret c - ld bc, -NUM_MOVES - add hl, bc - push hl - ld de, wMoves - ld bc, NUM_MOVES - call CopyData - callab FormatMovesString - pop hl -.loop - push hl - ld hl, WhichMoveToForgetText - call PrintText - coord hl, 4, 7 - lb bc, 4, 14 - call TextBoxBorder - coord hl, 6, 8 - ld de, wMovesString - ld a, [hFlags_0xFFFA] - set 2, a - ld [hFlags_0xFFFA], a - call PlaceString - ld a, [hFlags_0xFFFA] - res 2, a - ld [hFlags_0xFFFA], a - ld hl, wTopMenuItemY - ld a, 8 - ld [hli], a ; wTopMenuItemY - ld a, 5 - ld [hli], a ; wTopMenuItemX - xor a - ld [hli], a ; wCurrentMenuItem - inc hl - ld a, [wNumMovesMinusOne] - ld [hli], a ; wMaxMenuItem - ld a, A_BUTTON | B_BUTTON - ld [hli], a ; wMenuWatchedKeys - ld [hl], 0 ; wLastMenuItem - ld hl, hFlags_0xFFFA - set 1, [hl] - call HandleMenuInput - ld hl, hFlags_0xFFFA - res 1, [hl] - push af - call LoadScreenTilesFromBuffer1 - pop af - pop hl - bit 1, a ; pressed b - jr nz, .cancel - push hl - ld a, [wCurrentMenuItem] - ld c, a - ld b, 0 - add hl, bc - ld a, [hl] - push af - push bc - call IsMoveHM - pop bc - pop de - ld a, d - jr c, .hm - pop hl - add hl, bc - and a - ret -.hm - ld hl, HMCantDeleteText - call PrintText - pop hl - jr .loop -.cancel - scf - ret - -LearnedMove1Text: - TX_FAR _LearnedMove1Text - TX_SFX_ITEM_1 ; plays SFX_GET_ITEM_1 in the party menu (rare candy) and plays SFX_LEVEL_UP in battle - TX_BLINK - db "@" - -WhichMoveToForgetText: - TX_FAR _WhichMoveToForgetText - db "@" - -AbandonLearningText: - TX_FAR _AbandonLearningText - db "@" - -DidNotLearnText: - TX_FAR _DidNotLearnText - db "@" - -TryingToLearnText: - TX_FAR _TryingToLearnText - db "@" - -OneTwoAndText: -; bugfix: In Red/Blue, the SFX_SWAP sound was played in the wrong bank, which played an incorrect sound -; Yellow has fixed this by swapping to the correct bank - TX_FAR _OneTwoAndText - TX_DELAY - TX_ASM - push af - push bc - push de - push hl - ld a, $1 - ld [wMuteAudioAndPauseMusic], a - call DelayFrame - ld a, [wAudioROMBank] - push af - ld a, BANK(SFX_Swap_1) - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - call WaitForSoundToFinish - ld a, SFX_SWAP - call PlaySound - call WaitForSoundToFinish - pop af - ld [wAudioROMBank], a - ld [wAudioSavedROMBank], a - xor a - ld [wMuteAudioAndPauseMusic], a - pop hl - pop de - pop bc - pop af - ld hl, PoofText - ret - -PoofText: - TX_FAR _PoofText - TX_DELAY -ForgotAndText: - TX_FAR _ForgotAndText - db "@" - -HMCantDeleteText: - TX_FAR _HMCantDeleteText - db "@" |