From 8612a4a531b755b1d323e834980dab5ae896499c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 28 Nov 2015 15:13:40 -0500 Subject: Renaming sections, further dissolving main.asm --- engine/learn.asm | 257 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 257 insertions(+) create mode 100755 engine/learn.asm (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm new file mode 100755 index 000000000..cafbe6f43 --- /dev/null +++ b/engine/learn.asm @@ -0,0 +1,257 @@ +LearnMove: ; 6508 + call LoadTileMapToTempTileMap + ld a, [CurPartyMon] + ld hl, PartyMonNicknames + call GetNick + ld hl, StringBuffer1 + ld de, wd050_MonNick + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.loop + ld hl, PartyMon1Moves + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld d, h + ld e, l + ld b, NUM_MOVES +; Get the first empty move slot. This routine also serves to +; determine whether the Pokemon learning the moves already has +; all four slots occupied, in which case one would need to be +; deleted. +.next + ld a, [hl] + and a + jr z, .learn + inc hl + dec b + jr nz, .next +; If we're here, we enter the routine for forgetting a move +; to make room for the new move we're trying to learn. + push de + call ForgetMove + pop de + jp c, .cancel + + push hl + push de + ld [wd265], a + + ld b, a + ld a, [wBattleMode] + and a + jr z, .not_disabled + ld a, [DisabledMove] + cp b + jr nz, .not_disabled + xor a + ld [DisabledMove], a + ld [PlayerDisableCount], a +.not_disabled + + call GetMoveName + ld hl, UnknownText_0x6684 ; 1, 2 and… + call PrintText + pop de + pop hl + +.learn + ld a, [wd262] + ld [hl], a + ld bc, MON_PP - MON_MOVES + add hl, bc + + push hl + push de + dec a + ld hl, Moves + MOVE_PP + ld bc, MOVE_LENGTH + call AddNTimes + ld a, BANK(Moves) + call GetFarByte + pop de + pop hl + + ld [hl], a + + ld a, [wBattleMode] + and a + jp z, .learned + + ld a, [CurPartyMon] + ld b, a + ld a, [CurBattleMon] + cp b + jp nz, .learned + + ld a, [PlayerSubStatus5] + bit SUBSTATUS_TRANSFORMED, a + jp nz, .learned + + ld h, d + ld l, e + ld de, BattleMonMoves + ld bc, NUM_MOVES + call CopyBytes + ld bc, PartyMon1PP - (PartyMon1Moves + NUM_MOVES) + add hl, bc + ld de, BattleMonPP + ld bc, NUM_MOVES + call CopyBytes + jp .learned + +.cancel + ld hl, UnknownText_0x6675 ; Stop learning ? + call PrintText + call YesNoBox + jp c, .loop + + ld hl, UnknownText_0x667a ; did not learn . + call PrintText + ld b, 0 + ret + +.learned + ld hl, UnknownText_0x666b ; learned ! + call PrintText + ld b, 1 + ret +; 65d3 + +ForgetMove: ; 65d3 + push hl + ld hl, UnknownText_0x667f + call PrintText + call YesNoBox + pop hl + ret c + ld bc, -NUM_MOVES + add hl, bc + push hl + ld de, wListMoves_MoveIndicesBuffer + ld bc, NUM_MOVES + call CopyBytes + pop hl +.loop + push hl + ld hl, UnknownText_0x6670 + call PrintText + hlcoord 5, 2 + ld b, NUM_MOVES * 2 + ld c, MOVE_NAME_LENGTH + call TextBox + hlcoord 5 + 2, 2 + 2 + ld a, SCREEN_WIDTH * 2 + ld [Buffer1], a + predef ListMoves + ; wMenuData3 + ld a, $4 + ld [wcfa1], a + ld a, $6 + ld [wcfa2], a + ld a, [wd0eb] + inc a + ld [wcfa3], a + ld a, $1 + ld [wcfa4], a + ld [MenuSelection2], a + ld [wcfaa], a + ld a, $3 + ld [wcfa8], a + ld a, $20 + ld [wcfa5], a + xor a + ld [wcfa6], a + ld a, $20 + ld [wcfa7], a + call Function1bc9 + push af + call Call_LoadTempTileMapToTileMap + pop af + pop hl + bit 1, a + jr nz, .cancel + push hl + ld a, [MenuSelection2] + dec a + ld c, a + ld b, 0 + add hl, bc + ld a, [hl] + push af + push bc + call IsHMMove + pop bc + pop de + ld a, d + jr c, .hmmove + pop hl + add hl, bc + and a + ret + +.hmmove + ld hl, UnknownText_0x669a + call PrintText + pop hl + jr .loop + +.cancel + scf + ret +; 666b + +UnknownText_0x666b: ; 666b +; learned ! + text_jump UnknownText_0x1c5660 + db "@" +; 6670 + +UnknownText_0x6670: ; 6670 +; Which move should be forgotten? + text_jump UnknownText_0x1c5678 + db "@" +; 6675 + +UnknownText_0x6675: ; 6675 +; Stop learning ? + text_jump UnknownText_0x1c5699 + db "@" +; 667a + +UnknownText_0x667a: ; 667a +; did not learn . + text_jump UnknownText_0x1c56af + db "@" +; 667f + +UnknownText_0x667f: ; 667f +; is trying to learn . But can't learn more than +; four moves. Delete an older move to make room for ? + text_jump UnknownText_0x1c56c9 + db "@" +; 6684 + +UnknownText_0x6684: ; 6684 + text_jump UnknownText_0x1c5740 ; 1, 2 and… + start_asm + push de + ld de, SFX_SWITCH_POKEMON + call PlaySFX + pop de + ld hl, UnknownText_0x6695 + ret +; 6695 + +UnknownText_0x6695: ; 6695 +; Poof! forgot . And… + text_jump UnknownText_0x1c574e + db "@" +; 669a + +UnknownText_0x669a: ; 669a +; HM moves can't be forgotten now. + text_jump UnknownText_0x1c5772 + db "@" +; 669f -- cgit v1.2.3 From be082943ed8fa746ae345b9f93783e5993550373 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 2 Dec 2015 13:24:18 -0500 Subject: More work interpreting the sprite engine --- engine/learn.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm index cafbe6f43..260d50052 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -57,7 +57,7 @@ LearnMove: ; 6508 pop hl .learn - ld a, [wd262] + ld a, [wPutativeTMHMMove] ld [hl], a ld bc, MON_PP - MON_MOVES add hl, bc -- cgit v1.2.3 From 5b94d54a6c81d7ea09497dfc3d1477a7ed3bd954 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 4 Dec 2015 08:46:11 -0500 Subject: More work on animations --- engine/learn.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm index 260d50052..f6df570e7 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -150,7 +150,7 @@ ForgetMove: ; 65d3 ld [wcfa1], a ld a, $6 ld [wcfa2], a - ld a, [wd0eb] + ld a, [wNumMoves] inc a ld [wcfa3], a ld a, $1 -- cgit v1.2.3 From 77ef8404a197d015398674482103afd9651a9f42 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 15 Dec 2015 18:59:49 -0500 Subject: Menu --- engine/learn.asm | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm index f6df570e7..634c29512 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -155,8 +155,8 @@ ForgetMove: ; 65d3 ld [wcfa3], a ld a, $1 ld [wcfa4], a - ld [MenuSelection2], a - ld [wcfaa], a + ld [wMenuCursorY], a + ld [wMenuCursorX], a ld a, $3 ld [wcfa8], a ld a, $20 @@ -165,7 +165,7 @@ ForgetMove: ; 65d3 ld [wcfa6], a ld a, $20 ld [wcfa7], a - call Function1bc9 + call StaticMenuJoypad push af call Call_LoadTempTileMapToTileMap pop af @@ -173,7 +173,7 @@ ForgetMove: ; 65d3 bit 1, a jr nz, .cancel push hl - ld a, [MenuSelection2] + ld a, [wMenuCursorY] dec a ld c, a ld b, 0 -- cgit v1.2.3 From 3d36f1a83711f117274c56f3ddb285d81a869bb3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 18 Dec 2015 20:07:09 -0500 Subject: Events and some WRAM cleanup --- engine/learn.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm index 634c29512..86acf0325 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -4,7 +4,7 @@ LearnMove: ; 6508 ld hl, PartyMonNicknames call GetNick ld hl, StringBuffer1 - ld de, wd050_MonNick + ld de, wMonOrItemNameBuffer ld bc, PKMN_NAME_LENGTH call CopyBytes -- cgit v1.2.3 From 987ed1fafb2ed4920276089f8c93f1be3f31acac Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 19 Dec 2015 14:48:30 -0500 Subject: More work on slots; WRAM cleanup, Move Deleter --- engine/learn.asm | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm index 86acf0325..8520a29f7 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -147,24 +147,24 @@ ForgetMove: ; 65d3 predef ListMoves ; wMenuData3 ld a, $4 - ld [wcfa1], a + ld [w2DMenuCursorInitY], a ld a, $6 - ld [wcfa2], a + ld [w2DMenuCursorInitX], a ld a, [wNumMoves] inc a - ld [wcfa3], a + ld [w2DMenuNumRows], a ld a, $1 - ld [wcfa4], a + ld [w2DMenuNumCols], a ld [wMenuCursorY], a ld [wMenuCursorX], a ld a, $3 - ld [wcfa8], a + ld [w2DMenuFlags4], a ld a, $20 - ld [wcfa5], a + ld [w2DMenuFlags1], a xor a - ld [wcfa6], a + ld [w2DMenuFlags2], a ld a, $20 - ld [wcfa7], a + ld [w2DMenuFlags3], a call StaticMenuJoypad push af call Call_LoadTempTileMapToTileMap -- cgit v1.2.3 From 047effba941ca96bf0b3d16fc2ddef964e4f17d8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 20 Dec 2015 12:54:08 -0500 Subject: Menu joy flags; started with link address space --- engine/learn.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm index 8520a29f7..16f7474c3 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -158,7 +158,7 @@ ForgetMove: ; 65d3 ld [wMenuCursorY], a ld [wMenuCursorX], a ld a, $3 - ld [w2DMenuFlags4], a + ld [wMenuJoypadFilter], a ld a, $20 ld [w2DMenuFlags1], a xor a -- cgit v1.2.3 From 630d789c70fcd2b87336caf4762be2012790d4a8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 21 Dec 2015 14:10:16 -0500 Subject: More link trade shenanigans --- engine/learn.asm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm index 16f7474c3..e5ffabc62 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -164,7 +164,7 @@ ForgetMove: ; 65d3 xor a ld [w2DMenuFlags2], a ld a, $20 - ld [w2DMenuFlags3], a + ld [w2DMenuCursorOffsets], a call StaticMenuJoypad push af call Call_LoadTempTileMapToTileMap -- cgit v1.2.3 From 9bbb65166e4f7674bbdec7b1314b0cf42b43a923 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 29 Dec 2015 13:15:58 -0500 Subject: More movement stuff --- engine/learn.asm | 33 ++++++++++++++++----------------- 1 file changed, 16 insertions(+), 17 deletions(-) (limited to 'engine/learn.asm') diff --git a/engine/learn.asm b/engine/learn.asm index e5ffabc62..64e73c910 100755 --- a/engine/learn.asm +++ b/engine/learn.asm @@ -51,7 +51,7 @@ LearnMove: ; 6508 .not_disabled call GetMoveName - ld hl, UnknownText_0x6684 ; 1, 2 and… + ld hl, Text_1_2_and_Poof ; 1, 2 and… call PrintText pop de pop hl @@ -102,18 +102,18 @@ LearnMove: ; 6508 jp .learned .cancel - ld hl, UnknownText_0x6675 ; Stop learning ? + ld hl, Text_StopLearning ; Stop learning ? call PrintText call YesNoBox jp c, .loop - ld hl, UnknownText_0x667a ; did not learn . + ld hl, Text_DidNotLearn ; did not learn . call PrintText ld b, 0 ret .learned - ld hl, UnknownText_0x666b ; learned ! + ld hl, Text_LearnedMove ; learned ! call PrintText ld b, 1 ret @@ -121,7 +121,7 @@ LearnMove: ; 6508 ForgetMove: ; 65d3 push hl - ld hl, UnknownText_0x667f + ld hl, Text_TryingToLearn call PrintText call YesNoBox pop hl @@ -135,7 +135,7 @@ ForgetMove: ; 65d3 pop hl .loop push hl - ld hl, UnknownText_0x6670 + ld hl, Text_ForgetWhich call PrintText hlcoord 5, 2 ld b, NUM_MOVES * 2 @@ -192,7 +192,7 @@ ForgetMove: ; 65d3 ret .hmmove - ld hl, UnknownText_0x669a + ld hl, Text_CantForgetHM call PrintText pop hl jr .loop @@ -202,55 +202,54 @@ ForgetMove: ; 65d3 ret ; 666b -UnknownText_0x666b: ; 666b +Text_LearnedMove: ; 666b ; learned ! text_jump UnknownText_0x1c5660 db "@" ; 6670 -UnknownText_0x6670: ; 6670 +Text_ForgetWhich: ; 6670 ; Which move should be forgotten? text_jump UnknownText_0x1c5678 db "@" ; 6675 -UnknownText_0x6675: ; 6675 +Text_StopLearning: ; 6675 ; Stop learning ? text_jump UnknownText_0x1c5699 db "@" ; 667a -UnknownText_0x667a: ; 667a +Text_DidNotLearn: ; 667a ; did not learn . text_jump UnknownText_0x1c56af db "@" ; 667f -UnknownText_0x667f: ; 667f +Text_TryingToLearn: ; 667f ; is trying to learn . But can't learn more than ; four moves. Delete an older move to make room for ? text_jump UnknownText_0x1c56c9 db "@" ; 6684 -UnknownText_0x6684: ; 6684 +Text_1_2_and_Poof: ; 6684 text_jump UnknownText_0x1c5740 ; 1, 2 and… start_asm push de ld de, SFX_SWITCH_POKEMON call PlaySFX pop de - ld hl, UnknownText_0x6695 + ld hl, .PoofForgot ret -; 6695 -UnknownText_0x6695: ; 6695 +.PoofForgot ; Poof! forgot . And… text_jump UnknownText_0x1c574e db "@" ; 669a -UnknownText_0x669a: ; 669a +Text_CantForgetHM: ; 669a ; HM moves can't be forgotten now. text_jump UnknownText_0x1c5772 db "@" -- cgit v1.2.3