summaryrefslogtreecommitdiff
path: root/engine/learn_move.asm
diff options
context:
space:
mode:
Diffstat (limited to 'engine/learn_move.asm')
-rwxr-xr-xengine/learn_move.asm128
1 files changed, 65 insertions, 63 deletions
diff --git a/engine/learn_move.asm b/engine/learn_move.asm
index 75056edb..ba73d4c0 100755
--- a/engine/learn_move.asm
+++ b/engine/learn_move.asm
@@ -1,28 +1,28 @@
-LearnMove: ; 6e43 (1:6e43)
+LearnMove:
call SaveScreenTilesToBuffer1
ld a, [wWhichPokemon]
ld hl, wPartyMonNicks
call GetPartyMonName
ld hl, wcd6d
- ld de, wd036
- ld bc, $b
+ ld de, wLearnMoveMonName
+ ld bc, NAME_LENGTH
call CopyData
-DontAbandonLearning: ; 6e5b (1:6e5b)
+DontAbandonLearning:
ld hl, wPartyMon1Moves
- ld bc, $2c
+ ld bc, wPartyMon2Moves - wPartyMon1Moves
ld a, [wWhichPokemon]
call AddNTimes
ld d, h
ld e, l
- ld b, $4
-.asm_6e6b
+ ld b, NUM_MOVES
+.findEmptyMoveSlotLoop
ld a, [hl]
and a
- jr z, .asm_6e8b
+ jr z, .next
inc hl
dec b
- jr nz, .asm_6e6b
+ jr nz, .findEmptyMoveSlotLoop
push de
call TryingToLearn
pop de
@@ -35,25 +35,25 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
call PrintText
pop de
pop hl
-.asm_6e8b
+.next
ld a, [wMoveNum]
ld [hl], a
- ld bc, $15
+ ld bc, wPartyMon1PP - wPartyMon1Moves
add hl, bc
push hl
push de
dec a
ld hl, Moves
- ld bc, $6
+ ld bc, MoveEnd - Moves
call AddNTimes
- ld de, wHPBarMaxHP
+ ld de, wBuffer
ld a, BANK(Moves)
call FarCopyData
- ld a, [wHPBarNewHP + 1]
+ ld a, [wBuffer + 5] ; a = move's max PP
pop de
pop hl
ld [hl], a
- ld a, [W_ISINBATTLE]
+ ld a, [wIsInBattle]
and a
jp z, PrintLearnedMove
ld a, [wWhichPokemon]
@@ -66,18 +66,18 @@ DontAbandonLearning: ; 6e5b (1:6e5b)
ld de, wBattleMonMoves
ld bc, NUM_MOVES
call CopyData
- ld bc, $11
+ ld bc, wPartyMon1PP - wPartyMon1OTID
add hl, bc
ld de, wBattleMonPP
- ld bc, $4
+ ld bc, NUM_MOVES
call CopyData
jp PrintLearnedMove
-AbandonLearning: ; 6eda (1:6eda)
+AbandonLearning:
ld hl, AbandonLearningText
call PrintText
- hlCoord 14, 7
- ld bc, $80f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID ; yes/no menu
@@ -86,21 +86,21 @@ AbandonLearning: ; 6eda (1:6eda)
jp nz, DontAbandonLearning
ld hl, DidNotLearnText
call PrintText
- ld b, $0
+ ld b, 0
ret
-PrintLearnedMove: ; 6efe (1:6efe)
+PrintLearnedMove:
ld hl, LearnedMove1Text
call PrintText
- ld b, $1
+ ld b, 1
ret
-TryingToLearn: ; 6f07 (1:6f07)
+TryingToLearn:
push hl
ld hl, TryingToLearnText
call PrintText
- hlCoord 14, 7
- ld bc, $80f
+ coord hl, 14, 7
+ lb bc, 8, 15
ld a, TWO_OPTION_MENU
ld [wTextBoxID], a
call DisplayTextBoxID ; yes/no menu
@@ -108,7 +108,7 @@ TryingToLearn: ; 6f07 (1:6f07)
ld a, [wCurrentMenuItem]
rra
ret c
- ld bc, $fffc
+ ld bc, -NUM_MOVES
add hl, bc
push hl
ld de, wMoves
@@ -116,15 +116,15 @@ TryingToLearn: ; 6f07 (1:6f07)
call CopyData
callab FormatMovesString
pop hl
-.asm_6f39
+.loop
push hl
ld hl, WhichMoveToForgetText
call PrintText
- hlCoord 4, 7
- ld b, $4
- ld c, $e
+ coord hl, 4, 7
+ ld b, 4
+ ld c, 14
call TextBoxBorder
- hlCoord 6, 8
+ coord hl, 6, 8
ld de, wMovesString
ld a, [hFlags_0xFFF6]
set 2, a
@@ -134,18 +134,18 @@ TryingToLearn: ; 6f07 (1:6f07)
res 2, a
ld [hFlags_0xFFF6], a
ld hl, wTopMenuItemY
- ld a, $8
- ld [hli], a
- ld a, $5
- ld [hli], a
+ ld a, 8
+ ld [hli], a ; wTopMenuItemY
+ ld a, 5
+ ld [hli], a ; wTopMenuItemX
xor a
- ld [hli], a
+ ld [hli], a ; wCurrentMenuItem
inc hl
- ld a, [wcd6c]
- ld [hli], a
- ld a, $3
- ld [hli], a
- ld [hl], $0
+ ld a, [wNumMovesMinusOne]
+ ld [hli], a ; wMaxMenuItem
+ ld a, A_BUTTON | B_BUTTON
+ ld [hli], a ; wMenuWatchedKeys
+ ld [hl], 0 ; wLastMenuItem
ld hl, hFlags_0xFFF6
set 1, [hl]
call HandleMenuInput
@@ -155,12 +155,12 @@ TryingToLearn: ; 6f07 (1:6f07)
call LoadScreenTilesFromBuffer1
pop af
pop hl
- bit 1, a
- jr nz, .asm_6fab
+ bit 1, a ; pressed b
+ jr nz, .cancel
push hl
ld a, [wCurrentMenuItem]
ld c, a
- ld b, $0
+ ld b, 0
add hl, bc
ld a, [hl]
push af
@@ -169,56 +169,58 @@ TryingToLearn: ; 6f07 (1:6f07)
pop bc
pop de
ld a, d
- jr c, .asm_6fa2
+ jr c, .hm
pop hl
add hl, bc
and a
ret
-.asm_6fa2
+.hm
ld hl, HMCantDeleteText
call PrintText
pop hl
- jr .asm_6f39
-.asm_6fab
+ jr .loop
+.cancel
scf
ret
-LearnedMove1Text: ; 6fb4 (1:6fb4)
+LearnedMove1Text:
TX_FAR _LearnedMove1Text
- db $b,6,"@"
+ TX_SFX_ITEM_1 ; plays SFX_GET_ITEM_1 in the pary menu (rare candy) and plays SFX_LEVEL_UP in battle
+ TX_BLINK
+ db "@"
-WhichMoveToForgetText: ; 6fb4 (1:6fb4)
+WhichMoveToForgetText:
TX_FAR _WhichMoveToForgetText
db "@"
-AbandonLearningText: ; 6fb9 (1:6fb9)
+AbandonLearningText:
TX_FAR _AbandonLearningText
db "@"
-DidNotLearnText: ; 6fbe (1:6fbe)
+DidNotLearnText:
TX_FAR _DidNotLearnText
db "@"
-TryingToLearnText: ; 6fc3 (1:6fc3)
+TryingToLearnText:
TX_FAR _TryingToLearnText
db "@"
-OneTwoAndText: ; 6fc8 (1:6fc8)
+OneTwoAndText:
TX_FAR _OneTwoAndText
- db $a
- db $8
- ld a, (SFX_02_58 - SFX_Headers_02) / 3
+ TX_DELAY
+ TX_ASM
+ ld a, SFX_SWAP
call PlaySoundWaitForCurrent
ld hl, PoofText
ret
-PoofText: ; 6fd7 (1:6fd7)
+PoofText:
TX_FAR _PoofText
- db $a
-ForgotAndText: ; 6fdc (1:6fdc)
+ TX_DELAY
+ForgotAndText:
TX_FAR _ForgotAndText
db "@"
-HMCantDeleteText: ; 6fe1 (1:6fe1)
+HMCantDeleteText:
TX_FAR _HMCantDeleteText
db "@"