diff options
Diffstat (limited to 'engine/menu/main_menu.asm')
-rwxr-xr-x | engine/menu/main_menu.asm | 281 |
1 files changed, 127 insertions, 154 deletions
diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 7e34feca..4044da43 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -2,82 +2,77 @@ MainMenu: ; 5af2 (1:5af2) ; Check save file call Func_5bff xor a - ld [$D08A],a + ld [wd08a],a inc a - ld [$D088],a + ld [wd088],a call Func_609e jr nc,.next0 ; Predef 52 loads the save from SRAM to RAM - ld a,$52 - call Predef + predef LoadSAV .next0 ld c,20 call DelayFrames xor a - ld [$D12B],a - ld hl,$CC2B + ld [W_ISLINKBATTLE],a + ld hl,wcc2b ld [hli],a ld [hli],a ld [hli],a ld [hl],a - ld [$D07C],a - ld hl,$D72E + ld [W_ANIMATIONID],a + ld hl,wd72e res 6,[hl] call ClearScreen call GoPAL_SET_CF1C call LoadTextBoxTilePatterns call LoadFontTilePatterns - ld hl,$D730 + ld hl,wd730 set 6,[hl] - ld a,[$D088] + ld a,[wd088] cp a,1 jr z,.next1 - FuncCoord 0,0 - ld hl,Coord + hlCoord 0, 0 ld b,6 ld c,13 call TextBoxBorder - FuncCoord 2,2 - ld hl,Coord + hlCoord 2, 2 ld de,ContinueText call PlaceString jr .next2 .next1 - FuncCoord 0,0 - ld hl,Coord + hlCoord 0, 0 ld b,4 ld c,13 call TextBoxBorder - FuncCoord 2,2 - ld hl,Coord + hlCoord 2, 2 ld de,NewGameText call PlaceString .next2 - ld hl,$D730 + ld hl,wd730 res 6,[hl] call UpdateSprites ; OAM? xor a - ld [$CC26],a - ld [$CC2A],a - ld [$CC34],a + ld [wCurrentMenuItem],a + ld [wLastMenuItem],a + ld [wMenuJoypadPollCount],a inc a - ld [$CC25],a + ld [wTopMenuItemX],a inc a - ld [$CC24],a + ld [wTopMenuItemY],a ld a,$B - ld [$CC29],a - ld a,[$D088] - ld [$CC28],a + ld [wMenuWatchedKeys],a + ld a,[wd088] + ld [wMaxMenuItem],a call HandleMenuInput bit 1,a jp nz,LoadTitlescreenGraphics ; load title screen (gfx and arrangement) ld c,20 call DelayFrames - ld a,[$CC26] + ld a,[wCurrentMenuItem] ld b,a - ld a,[$D088] + ld a,[wd088] cp a,2 jp z,.next3 inc b ; adjust MenuArrow_Counter @@ -89,19 +84,19 @@ MainMenu: ; 5af2 (1:5af2) jp z,Func_5d52 ; if press_A on NewGame call DisplayOptionMenu ; if press_a on Options ld a,1 - ld [$D08A],a + ld [wd08a],a jp .next0 .next4 call ContinueGame - ld hl,$D126 + ld hl,wd126 set 5,[hl] .next6 xor a - ld [H_NEWLYPRESSEDBUTTONS],a - ld [H_NEWLYRELEASEDBUTTONS],a - ld [H_CURRENTPRESSEDBUTTONS],a - call GetJoypadState - ld a,[H_CURRENTPRESSEDBUTTONS] + ld [hJoyPressed],a + ld [hJoyReleased],a + ld [hJoyHeld],a + call Joypad + ld a,[hJoyHeld] bit 0,a jr nz,.next5 bit 1,a @@ -111,52 +106,50 @@ MainMenu: ; 5af2 (1:5af2) call GBPalWhiteOutWithDelay3 call ClearScreen ld a,4 - ld [$D52A],a + ld [wd52a],a ld c,10 call DelayFrames - ld a,[$D5A2] + ld a,[wd5a2] and a jp z,Func_5d5f ld a,[W_CURMAP] ; map ID cp a,HALL_OF_FAME jp nz,Func_5d5f xor a - ld [$D71A],a - ld hl,$D732 + ld [wd71a],a + ld hl,wd732 set 2,[hl] call Func_62ce jp Func_5d5f Func_5bff: ; 5bff (1:5bff) ld a,1 - ld [$D358],a + ld [wd358],a ld a,3 - ld [$D355],a + ld [W_OPTIONS],a ret LinkMenu: ; 5c0a (1:5c0a) xor a - ld [$d358], a - ld hl, $d72e + ld [wd358], a + ld hl, wd72e set 6, [hl] ld hl, TextTerminator_6b20 ; $6b20 call PrintText call SaveScreenTilesToBuffer1 ld hl, WhereWouldYouLikeText call PrintText - FuncCoord 5, 5 ; $c409 - ld hl, Coord + hlCoord 5, 5 ld b, $6 ld c, $d call TextBoxBorder call UpdateSprites - FuncCoord 7, 7 ; $c433 - ld hl, Coord + hlCoord 7, 7 ld de, TradeCenterText call PlaceString xor a - ld [$cd37], a - ld [$d72d], a - ld hl, wTopMenuItemY ; $cc24 + ld [wcd37], a + ld [wd72d], a + ld hl, wTopMenuItemY ; wTopMenuItemY ld a, $7 ld [hli], a ld a, $6 @@ -176,19 +169,19 @@ LinkMenu: ; 5c0a (1:5c0a) add a add a ld b, a - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem add b add $d0 - ld [$cc42], a - ld [$cc43], a + ld [wcc42], a + ld [wcc43], a .asm_5c66 call Func_2247 - ld a, [$cc3d] + ld a, [wcc3d] ld b, a and $f0 cp $d0 jr z, .asm_5c7d - ld a, [$cc3e] + ld a, [wcc3e] ld b, a and $f0 cp $d0 @@ -197,12 +190,12 @@ LinkMenu: ; 5c0a (1:5c0a) ld a, b and $c jr nz, .asm_5c8b - ld a, [$cc42] + ld a, [wcc42] and $c jr z, .asm_5c52 jr .asm_5ca1 .asm_5c8b - ld a, [$cc42] + ld a, [wcc42] and $c jr z, .asm_5c98 ld a, [$ffaa] @@ -210,9 +203,9 @@ LinkMenu: ; 5c0a (1:5c0a) jr z, .asm_5ca1 .asm_5c98 ld a, b - ld [$cc42], a + ld [wcc42], a and $3 - ld [wCurrentMenuItem], a ; $cc26 + ld [wCurrentMenuItem], a ; wCurrentMenuItem .asm_5ca1 ld a, [$ffaa] cp $2 @@ -225,10 +218,10 @@ LinkMenu: ; 5c0a (1:5c0a) ld b, $7f ld c, $7f ld d, $ec - ld a, [$cc42] + ld a, [wcc42] and $8 jr nz, .asm_5ccc - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $2 jr z, .asm_5ccc ld c, d @@ -239,58 +232,55 @@ LinkMenu: ; 5c0a (1:5c0a) ld c, d .asm_5ccc ld a, b - FuncCoord 6, 7 ; $c432 - ld [Coord], a + Coorda 6, 7 ld a, c - FuncCoord 6, 9 ; $c45a - ld [Coord], a + Coorda 6, 9 ld a, d - FuncCoord 6, 11 ; $c482 - ld [Coord], a + Coorda 6, 11 ld c, $28 call DelayFrames call LoadScreenTilesFromBuffer1 - ld a, [$cc42] + ld a, [wcc42] and $8 jr nz, .asm_5d2d - ld a, [wCurrentMenuItem] ; $cc26 + ld a, [wCurrentMenuItem] ; wCurrentMenuItem cp $2 jr z, .asm_5d2d xor a - ld [$d700], a - ld a, [wCurrentMenuItem] ; $cc26 + ld [wd700], a + ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a ld a, TRADE_CENTER jr nz, .asm_5cfc ld a, BATTLE_CENTER .asm_5cfc - ld [$d72d], a + ld [wd72d], a ld hl, PleaseWaitText call PrintText ld c, $32 call DelayFrames - ld hl, $d732 + ld hl, wd732 res 1, [hl] - ld a, [W_ANIMATIONID] ; $d07c - ld [$d71a], a + ld a, [W_ANIMATIONID] ; W_ANIMATIONID + ld [wd71a], a call Func_62ce ld c, $14 call DelayFrames xor a - ld [wMenuJoypadPollCount], a ; $cc34 - ld [$cc42], a + ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount + ld [wcc42], a inc a - ld [W_ISLINKBATTLE], a ; $d12b - ld [$cc47], a + ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE + ld [wcc47], a jr Func_5d5f .asm_5d2d xor a - ld [wMenuJoypadPollCount], a ; $cc34 + ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount call Delay3 call Func_72d7 ld hl, LinkCanceledText call PrintText - ld hl, $d72e + ld hl, wd72e res 6, [hl] ret @@ -307,7 +297,7 @@ LinkCanceledText: ; 5d4d (1:5d4d) db "@" Func_5d52: ; 5d52 (1:5d52) - ld hl, $d732 + ld hl, wd732 res 1, [hl] call OakSpeech ld c, $14 @@ -315,16 +305,16 @@ Func_5d52: ; 5d52 (1:5d52) Func_5d5f: ; 5d5f (1:5d5f) xor a - ld [H_NEWLYPRESSEDBUTTONS], a - ld [H_CURRENTPRESSEDBUTTONS], a + ld [hJoyPressed], a + ld [hJoyHeld], a ld [$ffb5], a - ld [$d72d], a - ld hl, $d732 + ld [wd72d], a + ld hl, wd732 set 0, [hl] call ResetPlayerSpriteData ld c, $14 call DelayFrames - ld a, [$cc47] + ld a, [wcc47] and a ret nz jp EnterMap @@ -344,27 +334,21 @@ TradeCenterText: ; 5d97 (1:5d97) ContinueGame: ; 5db5 (1:5db5) xor a ld [H_AUTOBGTRANSFERENABLED], a ; $ffba - FuncCoord 4, 7 ; $c430 - ld hl, Coord + hlCoord 4, 7 ld b, $8 ld c, $e call TextBoxBorder - FuncCoord 5, 9 ; $c459 - ld hl, Coord + hlCoord 5, 9 ld de, SaveScreenInfoText call PlaceString - FuncCoord 12, 9 ; $c460 - ld hl, Coord - ld de, W_PLAYERNAME ; $d158 + hlCoord 12, 9 + ld de, wPlayerName ; wd158 call PlaceString - FuncCoord 17, 11 ; $c48d - ld hl, Coord + hlCoord 17, 11 call Func_5e2f - FuncCoord 16, 13 ; $c4b4 - ld hl, Coord + hlCoord 16, 13 call Func_5e42 - FuncCoord 13, 15 ; $c4d9 - ld hl, Coord + hlCoord 13, 15 call Func_5e55 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ; $ffba @@ -374,23 +358,23 @@ ContinueGame: ; 5db5 (1:5db5) PrintSaveScreenText: ; 5def (1:5def) xor a ld [H_AUTOBGTRANSFERENABLED], a - ld hl, $c3a4 + ld hl, wTileMap + $4 ld b, $8 ld c, $e call TextBoxBorder call LoadTextBoxTilePatterns call UpdateSprites - ld hl, $c3cd + ld hl, wTileMap + $2d ld de, SaveScreenInfoText call PlaceString - ld hl, $c3d4 - ld de, W_PLAYERNAME + ld hl, wTileMap + $34 + ld de, wPlayerName call PlaceString - ld hl, $c401 + ld hl, wTileMap + $61 call Func_5e2f - ld hl, $c428 + ld hl, wTileMap + $88 call Func_5e42 - ld hl, $c44d + ld hl, wTileMap + $ad call Func_5e55 ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a @@ -403,27 +387,27 @@ Func_5e2f: ; 5e2f (1:5e2f) ld b, $1 call CountSetBits pop hl - ld de, $d11e + ld de, wd11e ld bc, $102 jp PrintNumber Func_5e42: ; 5e42 (1:5e42) push hl - ld hl, wPokedexOwned ; $d2f7 + ld hl, wPokedexOwned ; wPokedexOwned ld b, wPokedexOwnedEnd - wPokedexOwned call CountSetBits pop hl - ld de, $d11e + ld de, wd11e ld bc, $103 jp PrintNumber Func_5e55: ; 5e55 (1:5e55) - ld de, $da41 + ld de, W_PLAYTIMEHOURS + 1 ld bc, $103 call PrintNumber ld [hl], $6d inc hl - ld de, $da43 + ld de, W_PLAYTIMEMINUTES + 1 ld bc, $8102 jp PrintNumber @@ -434,47 +418,40 @@ SaveScreenInfoText: ; 5e6a (1:5e6a) next "TIME@" DisplayOptionMenu: ; 5e8a (1:5e8a) - FuncCoord 0,0 - ld hl,Coord + hlCoord 0, 0 ld b,3 ld c,18 call TextBoxBorder - FuncCoord 0,5 - ld hl,Coord + hlCoord 0, 5 ld b,3 ld c,18 call TextBoxBorder - FuncCoord 0,10 - ld hl,Coord + hlCoord 0, 10 ld b,3 ld c,18 call TextBoxBorder - FuncCoord 1,1 - ld hl,Coord + hlCoord 1, 1 ld de,TextSpeedOptionText call PlaceString - FuncCoord 1,6 - ld hl,Coord + hlCoord 1, 6 ld de,BattleAnimationOptionText call PlaceString - FuncCoord 1,11 - ld hl,Coord + hlCoord 1, 11 ld de,BattleStyleOptionText call PlaceString - FuncCoord 2,16 - ld hl,Coord + hlCoord 2, 16 ld de,OptionMenuCancelText call PlaceString xor a ld [wCurrentMenuItem],a ld [wLastMenuItem],a inc a - ld [$d358],a - ld [$cd40],a + ld [wd358],a + ld [wTrainerScreenY],a ld a,3 ; text speed cursor Y coordinate ld [wTopMenuItemY],a call SetCursorPositionsFromOptions - ld a,[$cd3d] ; text speed cursor X coordinate + ld a,[wWhichTrade] ; text speed cursor X coordinate ld [wTopMenuItemX],a ld a,$01 ld [H_AUTOBGTRANSFERENABLED],a ; enable auto background transfer @@ -483,7 +460,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) call PlaceMenuCursor call SetOptionsFromCursorPositions .getJoypadStateLoop - call GetJoypadStateLowSensitivity + call JoypadLowSensitivity ld a,[$ffb5] ld b,a and a,%11111011 ; any key besides select pressed? @@ -524,7 +501,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) .downPressed cp a,16 ld b,-13 - ld hl,$cd3d + ld hl,wWhichTrade jr z,.updateMenuVariables ld b,5 cp a,3 @@ -539,7 +516,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) .upPressed cp a,8 ld b,-5 - ld hl,$cd3d + ld hl,wWhichTrade jr z,.updateMenuVariables cp a,13 inc hl @@ -558,17 +535,17 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) call PlaceUnfilledArrowMenuCursor jp .loop .cursorInBattleAnimation - ld a,[$cd3e] ; battle animation cursor X coordinate + ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate xor a,$0b ; toggle between 1 and 10 - ld [$cd3e],a + ld [wTrainerEngageDistance],a jp .eraseOldMenuCursor .cursorInBattleStyle - ld a,[$cd3f] ; battle style cursor X coordinate + ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate xor a,$0b ; toggle between 1 and 10 - ld [$cd3f],a + ld [wTrainerFacingDirection],a jp .eraseOldMenuCursor .pressedLeftInTextSpeed - ld a,[$cd3d] ; text speed cursor X coordinate + ld a,[wWhichTrade] ; text speed cursor X coordinate cp a,1 jr z,.updateTextSpeedXCoord cp a,7 @@ -579,7 +556,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) sub a,7 jr .updateTextSpeedXCoord .pressedRightInTextSpeed - ld a,[$cd3d] ; text speed cursor X coordinate + ld a,[wWhichTrade] ; text speed cursor X coordinate cp a,14 jr z,.updateTextSpeedXCoord cp a,7 @@ -589,7 +566,7 @@ DisplayOptionMenu: ; 5e8a (1:5e8a) .fromFastToMedium add a,6 .updateTextSpeedXCoord - ld [$cd3d],a ; text speed cursor X coordinate + ld [wWhichTrade],a ; text speed cursor X coordinate jp .eraseOldMenuCursor TextSpeedOptionText: ; 5fc0 (1:5fc0) @@ -610,7 +587,7 @@ OptionMenuCancelText: ; 6018 (1:6018) ; sets the options variable according to the current placement of the menu cursors in the options menu SetOptionsFromCursorPositions: ; 601f (1:601f) ld hl,TextSpeedOptionData - ld a,[$cd3d] ; text speed cursor X coordinate + ld a,[wWhichTrade] ; text speed cursor X coordinate ld c,a .loop ld a,[hli] @@ -621,7 +598,7 @@ SetOptionsFromCursorPositions: ; 601f (1:601f) .textSpeedMatchFound ld a,[hl] ld d,a - ld a,[$cd3e] ; battle animation cursor X coordinate + ld a,[wTrainerEngageDistance] ; battle animation cursor X coordinate dec a jr z,.battleAnimationOn .battleAnimationOff @@ -630,7 +607,7 @@ SetOptionsFromCursorPositions: ; 601f (1:601f) .battleAnimationOn res 7,d .checkBattleStyle - ld a,[$cd3f] ; battle style cursor X coordinate + ld a,[wTrainerFacingDirection] ; battle style cursor X coordinate dec a jr z,.battleStyleShift .battleStyleSet @@ -655,31 +632,27 @@ SetCursorPositionsFromOptions: ; 604c (1:604c) pop bc dec hl ld a,[hl] - ld [$cd3d],a ; text speed cursor X coordinate - FuncCoord 0,3 - ld hl,Coord + ld [wWhichTrade],a ; text speed cursor X coordinate + hlCoord 0, 3 call .placeUnfilledRightArrow sla c ld a,1 ; On jr nc,.storeBattleAnimationCursorX ld a,10 ; Off .storeBattleAnimationCursorX - ld [$cd3e],a ; battle animation cursor X coordinate - FuncCoord 0,8 - ld hl,Coord + ld [wTrainerEngageDistance],a ; battle animation cursor X coordinate + hlCoord 0, 8 call .placeUnfilledRightArrow sla c ld a,1 jr nc,.storeBattleStyleCursorX ld a,10 .storeBattleStyleCursorX - ld [$cd3f],a ; battle style cursor X coordinate - FuncCoord 0,13 - ld hl,Coord + ld [wTrainerFacingDirection],a ; battle style cursor X coordinate + hlCoord 0, 13 call .placeUnfilledRightArrow ; cursor in front of Cancel - FuncCoord 0,16 - ld hl,Coord + hlCoord 0, 16 ld a,1 .placeUnfilledRightArrow ld e,a |