From 43ec9ae7f74e745b7ccac7c34a253deeb9291c15 Mon Sep 17 00:00:00 2001 From: TiKevin83 <38826675+TiKevin83@users.noreply.github.com> Date: Tue, 22 Jan 2019 14:30:41 -0500 Subject: Label functions, note cause of fast options Some of the functions in here are unlabeled despite having decent labels in pokecrystal (GSC reused yellow's options code). Updated the most relevant ones. This code has a bug/feature called "fast options" that reappears due to its reuse in GSC, added some explanation of it in comments --- engine/menu/options.asm | 34 ++++++++++++++++++---------------- 1 file changed, 18 insertions(+), 16 deletions(-) (limited to 'engine') diff --git a/engine/menu/options.asm b/engine/menu/options.asm index 7bed30ae..b6042ab9 100644 --- a/engine/menu/options.asm +++ b/engine/menu/options.asm @@ -1,16 +1,18 @@ DisplayOptionMenu_: - call Func_41f06 +; executes each menu option's update function via GetOptionPointer, but the joypad isn't cleared until the ret back to optionMenuLoop +; this results in the options each being shifted left or right if the respective button is pressed along with A while opening options + call InitOptions .optionMenuLoop call JoypadLowSensitivity ld a, [hJoy5] and START | B_BUTTON jr nz, .exitOptionMenu - call Func_41eb7 - jr c, .asm_41c86 - call Func_41c95 + call OptionsControl + jr c, .dpadDelay + call GetOptionPointer jr c, .exitOptionMenu -.asm_41c86 - call Func_41ee9 +.dpadDelay + call OptionsMenu_UpdateCursorPosition call DelayFrame call DelayFrame call DelayFrame @@ -18,7 +20,7 @@ DisplayOptionMenu_: .exitOptionMenu ret -Func_41c95: +GetOptionPointer: ld a, [wOptionsCursorLocation] ld e, a ld d, $0 @@ -28,7 +30,7 @@ Func_41c95: ld a, [hli] ld h, [hl] ld l, a - jp hl + jp hl ; jump to the function for the current highlighted option OptionMenuJumpTable: dw OptionsMenu_TextSpeed @@ -41,7 +43,7 @@ OptionMenuJumpTable: dw OptionsMenu_Cancel OptionsMenu_TextSpeed: - call Func_41d07 + call GetTextSpeed ld a, [hJoy5] bit 4, a ; right jr nz, .pressedRight @@ -96,7 +98,7 @@ MidText: SlowText: db "SLOW@" -Func_41d07: +GetTextSpeed: ld a, [wOptions] and $f cp $5 @@ -348,7 +350,7 @@ OptionsMenu_Cancel: scf ret -Func_41eb7: +OptionsControl: ld hl, wOptionsCursorLocation ld a, [hJoy5] cp D_DOWN @@ -388,7 +390,7 @@ Func_41eb7: scf ret -Func_41ee9: +OptionsMenu_UpdateCursorPosition: coord hl, 1, 1 ld de, SCREEN_WIDTH ld c, 16 @@ -404,7 +406,7 @@ Func_41ee9: ld [hl], "▶" ret -Func_41f06: +InitOptions: coord hl, 0, 0 lb bc, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2 call TextBoxBorder @@ -416,13 +418,13 @@ Func_41f06: call PlaceString xor a ld [wOptionsCursorLocation], a - ld c, 5 + ld c, 5 ; the number of options to loop through .loop push bc - call Func_41c95 + call GetOptionPointer ; updates the next option pop bc ld hl, wOptionsCursorLocation - inc [hl] + inc [hl] ; moves the options cursor dec c jr nz, .loop xor a -- cgit v1.2.3 From 3031dfab64772a44b6541114a3f15ae845390f4d Mon Sep 17 00:00:00 2001 From: TiKevin83 <38826675+TiKevin83@users.noreply.github.com> Date: Wed, 23 Jan 2019 10:08:53 -0500 Subject: Note bug in Battle Transitions --- engine/battle/battle_transitions.asm | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'engine') diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index ec95a5d9..8f799867 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -91,6 +91,12 @@ GetBattleTransitionID_WildOrTrainer: ret GetBattleTransitionID_CompareLevels: +; no error handling to check if you have a Pokemon yet +; this causes bugs with the transition in the Oak Pikachu catch +; wPartyMon1HP reads from wRivalName+6 +; this causes the faster transition to be manipulable either by +; using a default rival name or +; setting and then deleting 6 characters in a custom Rival name ld hl, wPartyMon1HP .faintedLoop ld a, [hli] -- cgit v1.2.3 From ec9072fed38f09cf0e035443608e0f060646a290 Mon Sep 17 00:00:00 2001 From: Travis McGeehan Date: Wed, 23 Jan 2019 13:22:30 -0500 Subject: Pull bug descriptions into documentation, add more relevant docs from pokecrystal --- engine/battle/battle_transitions.asm | 6 ------ engine/menu/options.asm | 4 +--- 2 files changed, 1 insertion(+), 9 deletions(-) (limited to 'engine') diff --git a/engine/battle/battle_transitions.asm b/engine/battle/battle_transitions.asm index 8f799867..ec95a5d9 100644 --- a/engine/battle/battle_transitions.asm +++ b/engine/battle/battle_transitions.asm @@ -91,12 +91,6 @@ GetBattleTransitionID_WildOrTrainer: ret GetBattleTransitionID_CompareLevels: -; no error handling to check if you have a Pokemon yet -; this causes bugs with the transition in the Oak Pikachu catch -; wPartyMon1HP reads from wRivalName+6 -; this causes the faster transition to be manipulable either by -; using a default rival name or -; setting and then deleting 6 characters in a custom Rival name ld hl, wPartyMon1HP .faintedLoop ld a, [hli] diff --git a/engine/menu/options.asm b/engine/menu/options.asm index b6042ab9..e78ac2ee 100644 --- a/engine/menu/options.asm +++ b/engine/menu/options.asm @@ -1,6 +1,4 @@ DisplayOptionMenu_: -; executes each menu option's update function via GetOptionPointer, but the joypad isn't cleared until the ret back to optionMenuLoop -; this results in the options each being shifted left or right if the respective button is pressed along with A while opening options call InitOptions .optionMenuLoop call JoypadLowSensitivity @@ -424,7 +422,7 @@ InitOptions: call GetOptionPointer ; updates the next option pop bc ld hl, wOptionsCursorLocation - inc [hl] ; moves the options cursor + inc [hl] ; moves the cursor for the highlighted option dec c jr nz, .loop xor a -- cgit v1.2.3 From 155521e3ab73cd9d8c78e40b2a0fb4cbefbf8b37 Mon Sep 17 00:00:00 2001 From: Travis McGeehan Date: Wed, 20 Feb 2019 13:54:13 -0500 Subject: Improve some labels in the Pikachu Follow code --- engine/pikachu_follow.asm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) (limited to 'engine') diff --git a/engine/pikachu_follow.asm b/engine/pikachu_follow.asm index 6092eabe..db5fa0ee 100755 --- a/engine/pikachu_follow.asm +++ b/engine/pikachu_follow.asm @@ -182,7 +182,7 @@ CalculatePikachuFacingDirection:: ld [wSpritePikachuStateData1FacingDirection], a ret -CalculatePikachuSpawnState1:: +SetPikachuSpawnOutside:: ld a, [wCurMap] cp OAKS_LAB jr z, .oaks_lab @@ -254,7 +254,7 @@ Pointer_fc653:: db FUCHSIA_HOUSE_3 db $ff -CalculatePikachuSpawnState2:: +SetPikachuSpawnWarpPad:: ld a, [wCurMap] cp VIRIDIAN_FOREST_EXIT jr z, .viridian_forest_exit @@ -302,7 +302,7 @@ Pointer_fc68e:: db CINNABAR_LAB_4 db $ff -CalculatePikachuSpawnState3:: +SetPikachuSpawnBackOutside:: ld a, [wCurMap] cp ROUTE_22_GATE jr z, .asm_fc6a7 -- cgit v1.2.3 From 08733d85ff358f38f80909b053e9adea6c3f1baa Mon Sep 17 00:00:00 2001 From: TiKevin83 Date: Mon, 18 May 2020 01:54:54 -0400 Subject: Fix duplicate label --- engine/menu/options.asm | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'engine') diff --git a/engine/menu/options.asm b/engine/menu/options.asm index e78ac2ee..da89ad82 100644 --- a/engine/menu/options.asm +++ b/engine/menu/options.asm @@ -1,5 +1,5 @@ DisplayOptionMenu_: - call InitOptions + call InitOptionsMenu .optionMenuLoop call JoypadLowSensitivity ld a, [hJoy5] @@ -404,7 +404,7 @@ OptionsMenu_UpdateCursorPosition: ld [hl], "▶" ret -InitOptions: +InitOptionsMenu: coord hl, 0, 0 lb bc, SCREEN_HEIGHT - 2, SCREEN_WIDTH - 2 call TextBoxBorder -- cgit v1.2.3