diff options
Diffstat (limited to 'engine')
50 files changed, 362 insertions, 354 deletions
diff --git a/engine/battle/14.asm b/engine/battle/14.asm index 01a8f48a..530032a0 100755 --- a/engine/battle/14.asm +++ b/engine/battle/14.asm @@ -15,7 +15,7 @@ Func_525af: ; 525af (14:65af) ld [wPartyGainExpFlags], a ld [wPlayerMonNumber], a ; wPlayerMonNumber ld [wEscapedFromBattle], a - ld [wd35d], a + ld [wMapPalOffset], a ld hl, wcf1d ld [hli], a ld [hl], a diff --git a/engine/battle/1c.asm b/engine/battle/1c.asm index 3f23a27c..1c69c00f 100755 --- a/engine/battle/1c.asm +++ b/engine/battle/1c.asm @@ -89,7 +89,7 @@ BattleTransition: ; 7096d (1c:496d) xor a ld [hVBlankWY], a dec a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a call DelayFrame ld hl, wSpriteStateData1 + 2 ld a, [H_DOWNARROWBLINKCNT2] diff --git a/engine/battle/4_2.asm b/engine/battle/4_2.asm index 79594bdd..133acdcc 100755 --- a/engine/battle/4_2.asm +++ b/engine/battle/4_2.asm @@ -71,7 +71,7 @@ EndOfBattle: ; 137aa (4:77aa) call WaitForSoundToFinish call GBPalWhiteOut ld a, $ff - ld [wd42f], a + ld [wDestinationWarpID], a ret YouWinText: ; 13853 (4:7853) @@ -94,7 +94,7 @@ Func_13870: ; 13870 (4:7870) ld a, [wd736] and a ret nz - callab Func_c49d + callab IsPlayerStandingOnDoorTileOrWarpTile jr nc, .asm_13888 .asm_13884 ld a, $1 diff --git a/engine/battle/animations.asm b/engine/battle/animations.asm index a094b34c..15d94f05 100755 --- a/engine/battle/animations.asm +++ b/engine/battle/animations.asm @@ -517,7 +517,7 @@ Func_78e01: ; 78e01 (1e:4e01) ret Func_78e23: ; 78e23 (1e:4e23) - ld a, [wcf1b] + ld a, [wOnSGB] and a ld a, $e4 jr z, .asm_78e47 @@ -1091,7 +1091,7 @@ CallWithTurnFlipped: ; 79155 (1e:5155) AnimationFlashScreenLong: ; 79165 (1e:5165) ld a,3 ; cycle through the palettes 3 times ld [wd08a],a - ld a,[wcf1b] ; running on SGB? + ld a,[wOnSGB] ; running on SGB? and a ld hl,FlashScreenLongMonochrome jr z,.loop @@ -1211,7 +1211,7 @@ Func_791f9: ; 791f9 (1e:51f9) ld bc, $4040 Func_791fc: ; 791fc (1e:51fc) - ld a, [wcf1b] + ld a, [wOnSGB] and a ld a, b jr z, .asm_79204 diff --git a/engine/battle/core.asm b/engine/battle/core.asm index 4b1ceedd..26465b8f 100755 --- a/engine/battle/core.asm +++ b/engine/battle/core.asm @@ -139,7 +139,7 @@ SlidePlayerAndEnemySilhouettesOnScreen: ; 3c04c (f:404c) ld [$ffd7], a ld [hVBlankSCY], a dec a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a call Delay3 xor a ld [H_AUTOBGTRANSFERENABLED], a @@ -6247,7 +6247,7 @@ DoBattleTransitionAndInitBattleVariables: ; 3ec32 (f:6c32) ld [wMenuJoypadPollCount], a callab DisplayLinkBattleVersusTextBox ld a, $1 - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a call ClearScreen .next call DelayFrame @@ -6256,7 +6256,7 @@ DoBattleTransitionAndInitBattleVariables: ; 3ec32 (f:6c32) ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ld a, $ff - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a call ClearSprites call ClearScreen xor a @@ -6729,16 +6729,16 @@ asm_3ef23: ; 3ef23 (f:6f23) bit 1, a jr z, .asm_3ef2f ld a, [hJoyHeld] - bit 1, a + bit 1, a ; B button pressed? ret nz .asm_3ef2f - ld a, [wd13c] + ld a, [wNumberOfNoRandomBattleStepsLeft] and a ret nz callab Func_13870 ret nz asm_3ef3d: ; 3ef3d (f:6f3d) - ld a, [wd35d] + ld a, [wMapPalOffset] push af ld hl, wd358 ld a, [hl] @@ -6849,7 +6849,7 @@ InitBattle_Common: ; 3efeb (f:6feb) pop af ld [wd358], a pop af - ld [wd35d], a + ld [wMapPalOffset], a ld a, [wd0d4] ld [$ffd7], a scf diff --git a/engine/battle/d.asm b/engine/battle/d.asm index dcd58ec4..94a07eb6 100755 --- a/engine/battle/d.asm +++ b/engine/battle/d.asm @@ -17,7 +17,7 @@ DisplayLinkBattleVersusTextBox: ; 372d6 (d:72d6) ld [hli], a ld [hl], $6a xor a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a callab SetupPlayerAndEnemyPokeballs ld c, 150 jp DelayFrames diff --git a/engine/cable_club.asm b/engine/cable_club.asm index 8cb70cbf..9b4017e2 100755 --- a/engine/cable_club.asm +++ b/engine/cable_club.asm @@ -570,13 +570,13 @@ Func_577d: ; 577d (1:577d) xor a ld [wd72d], a dec a - ld [wd42f], a + ld [wDestinationWarpID], a call LoadMapData callba Func_c335 pop hl pop af ld [hl], a - call GBFadeIn2 + call GBFadeInFromWhite ret Func_57a2: diff --git a/engine/evos_moves.asm b/engine/evos_moves.asm index 61ddb4e7..240fd9fa 100755 --- a/engine/evos_moves.asm +++ b/engine/evos_moves.asm @@ -127,7 +127,7 @@ Evolution_PartyMonLoop: ; loop over party mons ld a, $1 ld [H_AUTOBGTRANSFERENABLED], a ld a, $ff - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a call ClearSprites callab Func_7bde9 jp c, CancelledEvolution diff --git a/engine/give_pokemon.asm b/engine/give_pokemon.asm index dd5e9264..d4d45bfb 100755 --- a/engine/give_pokemon.asm +++ b/engine/give_pokemon.asm @@ -43,7 +43,7 @@ _GivePokemon: ; 4fda5 (13:7da5) call SetPokedexOwnedFlag call AddPartyMon ld a, $1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld [wccd3], a scf ret diff --git a/engine/hall_of_fame.asm b/engine/hall_of_fame.asm index dd988cf1..30ae6266 100755 --- a/engine/hall_of_fame.asm +++ b/engine/hall_of_fame.asm @@ -18,7 +18,7 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) ld bc, HOF_TEAM call FillMemory xor a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld [$ffd7], a ld [W_SPRITEFLIPPED], a ld [wd358], a @@ -66,7 +66,7 @@ AnimateHallOfFame: ; 701a0 (1c:41a0) call PlaceString ld c, 180 call DelayFrames - call GBFadeOut2 + call GBFadeOutToWhite pop bc pop hl jr .asm_701fb @@ -125,7 +125,7 @@ Func_70278: ; 70278 (1c:4278) call Func_7036d ld d, $a0 ld e, $4 - ld a, [wcf1b] + ld a, [wOnSGB] and a jr z, .asm_702c7 sla e @@ -282,4 +282,4 @@ Func_70423: ; 70423 (1c:4423) ld [wcfc9], a ld a, $ff ld [wMusicHeaderPointer], a - jp GBFadeOut2 + jp GBFadeOutToWhite diff --git a/engine/hidden_object_functions14.asm b/engine/hidden_object_functions14.asm index 0d3598f2..a162c905 100755 --- a/engine/hidden_object_functions14.asm +++ b/engine/hidden_object_functions14.asm @@ -1,7 +1,7 @@ PrintNotebookText: ; 52996 (14:6996) call EnableAutoTextBoxDrawing ld a, $1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, [wTrainerSpriteOffset] jp PrintPredefTextID diff --git a/engine/hidden_object_functions17.asm b/engine/hidden_object_functions17.asm index fccd4267..f1a07542 100755 --- a/engine/hidden_object_functions17.asm +++ b/engine/hidden_object_functions17.asm @@ -89,7 +89,7 @@ DisplayMonFrontSpriteInBox: ; 5dbd9 (17:5bd9) PrintBlackboardLinkCableText: ; 5dc1a (17:5c1a) call EnableAutoTextBoxDrawing ld a, $1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, [wWhichTrade] call PrintPredefTextID ret diff --git a/engine/hidden_object_functions18.asm b/engine/hidden_object_functions18.asm index 5ccb43c2..9dd7fac7 100755 --- a/engine/hidden_object_functions18.asm +++ b/engine/hidden_object_functions18.asm @@ -181,7 +181,7 @@ OpenPokemonCenterPC: ; 62516 (18:6516) ret nz call EnableAutoTextBoxDrawing ld a, $1 - ld [wcf0c], a + ld [wAutoTextBoxDrawingControl], a ld a, $1f ; PredefText1f jp PrintPredefTextID diff --git a/engine/hidden_object_functions3.asm b/engine/hidden_object_functions3.asm index 11b91cd3..09d9ebcc 100755 --- a/engine/hidden_object_functions3.asm +++ b/engine/hidden_object_functions3.asm @@ -114,7 +114,7 @@ TownMapText: ; fc12 (3:7c12) db $06 db $08 ; asm ld a, $1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, wd730 set 6, [hl] call GBPalWhiteOutWithDelay3 diff --git a/engine/hidden_object_functions7.asm b/engine/hidden_object_functions7.asm index 07cf5651..c00749e4 100755 --- a/engine/hidden_object_functions7.asm +++ b/engine/hidden_object_functions7.asm @@ -83,7 +83,7 @@ asm_1e9b0: ; 1e9b0 (7:69b0) ld a, $9c ld [H_DOWNARROWBLINKCNT1], a ; $ff8b ld a, $3 - ld [wd42f], a + ld [wDestinationWarpID], a ld a, $5 ld [W_SAFARIZONEENTRANCECURSCRIPT], a ld hl, wd790 @@ -152,7 +152,7 @@ CinnabarGymQuiz: ; 1ea25 (7:6a25) ld l, a call PrintText ld a, $1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a call CinnabarGymQuiz_1ea92 jp TextScriptEnd @@ -334,7 +334,7 @@ BillsHousePC: ; 1eb6e (7:6b6e) jp PrintPredefTextID .asm_1eb8b ld a, $1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $2e call PrintPredefTextID ld c, $20 @@ -363,7 +363,7 @@ BillsHousePC: ; 1eb6e (7:6b6e) ret .asm_1ebd2 ld a, $1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, $2f call PrintPredefTextID ret diff --git a/engine/in_game_trades.asm b/engine/in_game_trades.asm index ad9de8b1..4f232eb4 100755 --- a/engine/in_game_trades.asm +++ b/engine/in_game_trades.asm @@ -88,7 +88,7 @@ Func_71c07: ; 71c07 (1c:5c07) xor a ld [wd07d],a dec a - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a call DisplayPartyMenu push af call Func_71ca2 diff --git a/engine/intro.asm b/engine/intro.asm index 801324a5..68bf8b50 100755 --- a/engine/intro.asm +++ b/engine/intro.asm @@ -5,7 +5,7 @@ PlayIntro: ; 41682 (10:5682) ld [H_AUTOBGTRANSFERENABLED], a call PlayShootingStar call PlayIntroScene - call GBFadeOut2 + call GBFadeOutToWhite xor a ld [$ffae], a ld [H_AUTOBGTRANSFERENABLED], a diff --git a/engine/items/items.asm b/engine/items/items.asm index 860479e7..b2bff822 100755 --- a/engine/items/items.asm +++ b/engine/items/items.asm @@ -507,8 +507,8 @@ ItemUseBicycle: ; d977 (3:5977) ld a,[W_ISINBATTLE] and a jp nz,ItemUseNotTime - ld a,[wd700] - ld [wd11a],a + ld a,[wWalkBikeSurfState] + ld [wWalkBikeSurfStateCopy],a cp a,2 ; is the player surfing? jp z,ItemUseNotTime dec a ; is player already bicycling? @@ -516,7 +516,7 @@ ItemUseBicycle: ; d977 (3:5977) .getOffBike call ItemUseReloadOverworldData xor a - ld [wd700],a ; change player state to walking + ld [wWalkBikeSurfState],a ; change player state to walking call PlayDefaultMusic ; play walking music ld hl,GotOffBicycleText jr .printText @@ -527,7 +527,7 @@ ItemUseBicycle: ; d977 (3:5977) xor a ; no keys pressed ld [hJoyHeld],a ; current joypad state inc a - ld [wd700],a ; change player state to bicycling + ld [wWalkBikeSurfState],a ; change player state to bicycling ld hl,GotOnBicycleText call PlayDefaultMusic ; play bike riding music .printText @@ -535,8 +535,8 @@ ItemUseBicycle: ; d977 (3:5977) ; used for Surf out-of-battle effect ItemUseSurfboard: ; d9b4 (3:59b4) - ld a,[wd700] - ld [wd11a],a + ld a,[wWalkBikeSurfState] + ld [wWalkBikeSurfStateCopy],a cp a,2 ; is the player already surfing? jr z,.tryToStopSurfing .tryToSurf @@ -550,7 +550,7 @@ ItemUseSurfboard: ; d9b4 (3:59b4) ld hl,wd730 set 7,[hl] ld a,2 - ld [wd700],a ; change player state to surfing + ld [wWalkBikeSurfState],a ; change player state to surfing call PlayDefaultMusic ; play surfing music ld hl,SurfingGotOnText jp PrintText @@ -570,7 +570,7 @@ ItemUseSurfboard: ; d9b4 (3:59b4) ld a,[hli] ld h,[hl] ld l,a ; hl now points to passable tiles - ld a,[wcfc6] ; tile in front of the player + ld a,[wTileInFrontOfPlayer] ; tile in front of the player ld b,a .passableTileLoop ld a,[hli] @@ -586,7 +586,7 @@ ItemUseSurfboard: ; d9b4 (3:59b4) ld hl,wd730 set 7,[hl] xor a - ld [wd700],a ; change player state to walking + ld [wWalkBikeSurfState],a ; change player state to walking dec a ld [wJoyIgnore],a call PlayDefaultMusic ; play walking music @@ -636,7 +636,7 @@ ItemUseEvoStone: ; da5b (3:5a5b) ld a,$05 ; evolution stone party menu ld [wd07d],a ld a,$ff - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a call DisplayPartyMenu pop bc jr c,.canceledItemUse @@ -681,7 +681,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld a,$01 ld [wd07d],a ; item use party menu ld a,$ff - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a ld a,[wd152] and a ; using Softboiled? jr z,.notUsingSoftboiled @@ -1096,7 +1096,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld [H_AUTOBGTRANSFERENABLED],a call ClearScreen dec a - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a call RedrawPartyMenu ; redraws the party menu and displays the message ld a,1 ld [H_AUTOBGTRANSFERENABLED],a @@ -1278,7 +1278,7 @@ ItemUseMedicine: ; dabb (3:5abb) ld [wccd4],a callab TryEvolvingMon ; evolve pokemon, if appropriate ld a,$01 - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a pop af ld [wcf91],a pop af @@ -1424,8 +1424,8 @@ ItemUseXAccuracy: ; e013 (3:6013) ItemUseCardKey: ; e022 (3:6022) xor a ld [wd71f],a - call Func_c586 - ld a,[Func_c586] ; $4586 + call GetTileAndCoordsInFrontOfPlayer + ld a,[GetTileAndCoordsInFrontOfPlayer] ; $4586 cp a,$18 jr nz,.next0 ld hl,CardKeyTable1 @@ -1796,7 +1796,7 @@ RodResponse: ; e28d (3:628d) ld [W_CUROPPONENT], a .next - ld hl, wd700 + ld hl, wWalkBikeSurfState ld a, [hl] ; store the value in a push af push hl @@ -1818,7 +1818,7 @@ FishingInit: ; e2b4 (3:62b4) .notInBattle call IsNextTileShoreOrWater ret c - ld a,[wd700] + ld a,[wWalkBikeSurfState] cp a,2 ; Surfing? jr z,.surfing call ItemUseReloadOverworldData @@ -1877,7 +1877,7 @@ ItemUsePPRestore: ; e31e (3:631e) ld [wWhichTrade],a .chooseMon xor a - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a ld a,$01 ; item use party menu ld [wd07d],a call DisplayPartyMenu @@ -2117,7 +2117,7 @@ ItemUseTMHM: ; e479 (3:6479) ld bc,14 call CopyData ld a,$ff - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a ld a,$03 ; teach TM/HM party menu ld [wd07d],a call DisplayPartyMenu @@ -2744,7 +2744,7 @@ IsNextTileShoreOrWater: ; e8b8 (3:68b8) jr nc, .notShoreOrWater ld a, [W_CURMAPTILESET] cp SHIP_PORT ; Vermilion Dock tileset - ld a, [wcfc6] ; tile in front of player + ld a, [wTileInFrontOfPlayer] ; tile in front of player jr z, .skipShoreTiles ; if it's the Vermilion Dock tileset cp $48 ; eastern shore tile in Safari Zone jr z, .shoreOrWater diff --git a/engine/menu/diploma.asm b/engine/menu/diploma.asm index adf4c396..95b2a87d 100755 --- a/engine/menu/diploma.asm +++ b/engine/menu/diploma.asm @@ -3,7 +3,7 @@ DisplayDiploma: ; 566e2 (15:66e2) call GBPalWhiteOutWithDelay3 call ClearScreen xor a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld hl, wd730 set 6, [hl] call DisableLCD diff --git a/engine/menu/league_pc.asm b/engine/menu/league_pc.asm index 4833e57d..ffde236a 100755 --- a/engine/menu/league_pc.asm +++ b/engine/menu/league_pc.asm @@ -4,14 +4,14 @@ PKMNLeaguePC: ; 0x7657e ld hl, wd730 set 6, [hl] push hl - ld a, [wcfcb] + ld a, [wUpdateSpritesEnabled] push af ld a, [$ffD7] push af xor a ld [$ffD7], a ld [W_SPRITEFLIPPED], a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld [wTrainerScreenX], a ld [wcd42], a ld a, [wd5a2] @@ -40,7 +40,7 @@ PKMNLeaguePC: ; 0x7657e pop af ld [$ffD7], a pop af - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a pop hl res 6, [hl] call GBPalWhiteOutWithDelay3 diff --git a/engine/menu/main_menu.asm b/engine/menu/main_menu.asm index 4044da43..6ffc6249 100755 --- a/engine/menu/main_menu.asm +++ b/engine/menu/main_menu.asm @@ -111,16 +111,16 @@ MainMenu: ; 5af2 (1:5af2) call DelayFrames ld a,[wd5a2] and a - jp z,Func_5d5f + jp z,SpecialEnterMap ld a,[W_CURMAP] ; map ID cp a,HALL_OF_FAME - jp nz,Func_5d5f + jp nz,SpecialEnterMap xor a - ld [wd71a],a + ld [wDestinationMap],a ld hl,wd732 - set 2,[hl] - call Func_62ce - jp Func_5d5f + set 2,[hl] ; fly warp or dungeon warp + call SpecialWarpIn + jp SpecialEnterMap Func_5bff: ; 5bff (1:5bff) ld a,1 ld [wd358],a @@ -247,7 +247,7 @@ LinkMenu: ; 5c0a (1:5c0a) cp $2 jr z, .asm_5d2d xor a - ld [wd700], a + ld [wWalkBikeSurfState], a ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a ld a, TRADE_CENTER @@ -262,8 +262,8 @@ LinkMenu: ; 5c0a (1:5c0a) ld hl, wd732 res 1, [hl] ld a, [W_ANIMATIONID] ; W_ANIMATIONID - ld [wd71a], a - call Func_62ce + ld [wDestinationMap], a + call SpecialWarpIn ld c, $14 call DelayFrames xor a @@ -272,7 +272,7 @@ LinkMenu: ; 5c0a (1:5c0a) inc a ld [W_ISLINKBATTLE], a ; W_ISLINKBATTLE ld [wcc47], a - jr Func_5d5f + jr SpecialEnterMap .asm_5d2d xor a ld [wMenuJoypadPollCount], a ; wMenuJoypadPollCount @@ -303,16 +303,17 @@ Func_5d52: ; 5d52 (1:5d52) ld c, $14 call DelayFrames -Func_5d5f: ; 5d5f (1:5d5f) +; enter map after using a special warp or loading the game from the main menu +SpecialEnterMap: ; 5d5f (1:5d5f) xor a ld [hJoyPressed], a ld [hJoyHeld], a ld [$ffb5], a ld [wd72d], a ld hl, wd732 - set 0, [hl] + set 0, [hl] ; count play time call ResetPlayerSpriteData - ld c, $14 + ld c, 20 call DelayFrames ld a, [wcc47] and a diff --git a/engine/menu/naming_screen.asm b/engine/menu/naming_screen.asm index f7fc883c..b7db452a 100755 --- a/engine/menu/naming_screen.asm +++ b/engine/menu/naming_screen.asm @@ -22,10 +22,10 @@ AskName: ; 64eb (1:64eb) ld a, [wCurrentMenuItem] ; wCurrentMenuItem and a jr nz, .asm_654c - ld a, [wcfcb] + ld a, [wUpdateSpritesEnabled] push af xor a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a push hl ld a, $2 ld [wd07d], a @@ -38,7 +38,7 @@ AskName: ; 64eb (1:64eb) call LoadScreenTilesFromBuffer1 pop hl pop af - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld a, [wcf4b] cp $50 ret nz @@ -56,7 +56,7 @@ DoYouWantToNicknameText: ; 0x6557 Func_655c: ; 655c (1:655c) ld hl, wHPBarMaxHP xor a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld a, $2 ld [wd07d], a call DisplayNamingScreen diff --git a/engine/menu/pc.asm b/engine/menu/pc.asm index 4df6c826..97895ca6 100755 --- a/engine/menu/pc.asm +++ b/engine/menu/pc.asm @@ -86,7 +86,7 @@ BillsPC: ; 17ee4 (5:7ee4) callba BillsPC_ ReloadMainMenu: ; 17f06 (5:7f06) xor a - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a call ReloadMapData call UpdateSprites ;XXX: moves sprites jp PCMainMenu diff --git a/engine/menu/players_pc.asm b/engine/menu/players_pc.asm index 4ff1b16f..5f1175eb 100755 --- a/engine/menu/players_pc.asm +++ b/engine/menu/players_pc.asm @@ -78,7 +78,7 @@ Func_796d: ; 796d (1:796d) ld hl, wd730 res 6, [hl] xor a - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ret Func_7995: ; 7995 (1:7995) diff --git a/engine/menu/start_menu.asm b/engine/menu/start_menu.asm index be172a67..da17822b 100755 --- a/engine/menu/start_menu.asm +++ b/engine/menu/start_menu.asm @@ -2,8 +2,8 @@ DisplayStartMenu:: ; 2acd (0:2acd) ld a,$04 ; hardcoded Bank, not sure what's it refers to ld [H_LOADEDROMBANK],a ld [$2000],a ; ROM bank 4 - ld a,[wd700] ; walking/biking/surfing - ld [wd11a],a + ld a,[wWalkBikeSurfState] ; walking/biking/surfing + ld [wWalkBikeSurfStateCopy],a ld a, (SFX_02_3f - SFX_Headers_02) / 3 ; Start menu sound call PlaySound diff --git a/engine/menu/start_sub_menus.asm b/engine/menu/start_sub_menus.asm index e774565a..e91386b0 100755 --- a/engine/menu/start_sub_menus.asm +++ b/engine/menu/start_sub_menus.asm @@ -13,7 +13,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) xor a ld [wMenuItemToSwap],a ld [wd07d],a - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a call DisplayPartyMenu jr .checkIfPokemonChosen .loop @@ -184,7 +184,7 @@ StartMenu_Pokemon: ; 130a9 (4:70a9) bit 0,a ; does the player have the Boulder Badge? jp z,.newBadgeRequired xor a - ld [wd35d],a + ld [wMapPalOffset],a ld hl,.flashLightsAreaText call PrintText call GBPalWhiteOutWithDelay3 @@ -406,7 +406,7 @@ StartMenu_Item: ; 13302 (4:7302) jp z,ItemMenuLoop jp CloseStartMenu .useItem_partyMenu - ld a,[wcfcb] + ld a,[wUpdateSpritesEnabled] push af call UseItem ld a,[wcd6a] @@ -415,11 +415,11 @@ StartMenu_Item: ; 13302 (4:7302) call GBPalWhiteOutWithDelay3 call RestoreScreenTilesAndReloadTilePatterns pop af - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a jp StartMenu_Item .partyMenuNotDisplayed pop af - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a jp ItemMenuLoop .tossItem call IsKeyItem diff --git a/engine/mon_party_sprites.asm b/engine/mon_party_sprites.asm index e05bdd55..5fa5c3bc 100755 --- a/engine/mon_party_sprites.asm +++ b/engine/mon_party_sprites.asm @@ -21,7 +21,7 @@ GetAnimationSpeed: ; 7170a (1c:570a) ld c, a ld hl, PartyMonSpeeds add hl, bc - ld a, [wcf1b] + ld a, [wOnSGB] xor $1 add [hl] ld c, a diff --git a/engine/oak_speech.asm b/engine/oak_speech.asm index e54741f2..518bea2a 100755 --- a/engine/oak_speech.asm +++ b/engine/oak_speech.asm @@ -49,8 +49,8 @@ OakSpeech: ; 6115 (1:6115) ld [wcf96],a call AddItemToInventory ; give one potion ld a,[W_ANIMATIONID] - ld [wd71a],a - call Func_62ce + ld [wDestinationMap],a + call SpecialWarpIn xor a ld [$FFD7],a ld a,[wd732] @@ -62,7 +62,7 @@ OakSpeech: ; 6115 (1:6115) call FadeInIntroPic ld hl,OakSpeechText1 call PrintText ; prints text box - call GBFadeOut2 + call GBFadeOutToWhite call ClearScreen ld a,NIDORINO ld [wd0b5],a ; pic displayed is stored at this location @@ -73,7 +73,7 @@ OakSpeech: ; 6115 (1:6115) call MovePicLeft ld hl,OakSpeechText2 call PrintText ; Prints text box - call GBFadeOut2 + call GBFadeOutToWhite call ClearScreen ld de,RedPicFront ld bc,(Bank(RedPicFront) << 8) | $00 @@ -82,7 +82,7 @@ OakSpeech: ; 6115 (1:6115) ld hl,IntroducePlayerText call PrintText call LoadDefaultNamesPlayer ; brings up NewName/Red/etc menu - call GBFadeOut2 + call GBFadeOutToWhite call ClearScreen ld de,Rival1Pic ld bc,(Bank(Rival1Pic) << 8) | $00 @@ -93,12 +93,12 @@ OakSpeech: ; 6115 (1:6115) call LoadDefaultNamesRival Func_61bc: ; 61bc (1:61bc) - call GBFadeOut2 + call GBFadeOutToWhite call ClearScreen ld de,RedPicFront ld bc,(Bank(RedPicFront) << 8) | $00 call IntroPredef3B - call GBFadeIn2 + call GBFadeInFromWhite ld a,[wd72d] and a jr nz,.next @@ -148,10 +148,10 @@ Func_61bc: ; 61bc (1:61bc) call ClearScreenArea call LoadTextBoxTilePatterns ld a,1 - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a ld c,$32 call DelayFrames - call GBFadeOut2 + call GBFadeOutToWhite jp ClearScreen OakSpeechText1: ; 6253 (1:6253) TX_FAR _OakSpeechText1 diff --git a/engine/overworld/card_key.asm b/engine/overworld/card_key.asm index f48c26f4..885932d5 100755 --- a/engine/overworld/card_key.asm +++ b/engine/overworld/card_key.asm @@ -8,8 +8,8 @@ PrintCardKeyText: ; 52673 (14:6673) ret z cp b jr nz, .asm_5267a - predef Func_c586 - ld a, [wcfc6] + predef GetTileAndCoordsInFrontOfPlayer + ld a, [wTileInFrontOfPlayer] cp $18 jr z, .asm_5269c cp $24 diff --git a/engine/overworld/cut.asm b/engine/overworld/cut.asm index 59abe791..0cbc0214 100755 --- a/engine/overworld/cut.asm +++ b/engine/overworld/cut.asm @@ -6,13 +6,13 @@ UsedCut: ; ef54 (3:6f54) jr z, .asm_ef6b cp GYM jr nz, .asm_ef77 - ld a, [wcfc6] + ld a, [wTileInFrontOfPlayer] cp $50 ; gym cut tree jr nz, .asm_ef77 jr asm_ef82 .asm_ef6b dec a - ld a, [wcfc6] + ld a, [wTileInFrontOfPlayer] cp $3d ; cut tree jr z, asm_ef82 cp $52 ; grass @@ -52,14 +52,14 @@ asm_ef82: ; ef82 (3:6f82) ld hl, wd730 res 6, [hl] ld a, $ff - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a call AnimateCutTree ld de, CutTreeBlockSwaps ; $7100 call Func_f09f call Func_eedc callba Func_79e96 ld a, $1 - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld a, (SFX_02_56 - SFX_Headers_02) / 3 call PlaySound ld a, $90 @@ -178,7 +178,7 @@ Func_f09f: ; f09f (3:709f) ld c, a ld b, $0 ld d, $0 - ld hl, wd35f + ld hl, wCurrentTileBlockMapViewPointer ld a, [hli] ld h, [hl] ld l, a diff --git a/engine/overworld/doors.asm b/engine/overworld/doors.asm index 85ff58b2..ac345af9 100755 --- a/engine/overworld/doors.asm +++ b/engine/overworld/doors.asm @@ -1,5 +1,5 @@ -; returns whether the player is standing on a door in carry -IsPlayerStandingOnDoor: ; 1a609 (6:6609) +; returns whether the player is standing on a door tile in carry +IsPlayerStandingOnDoorTile: ; 1a609 (6:6609) push de ld hl, DoorTileIDPointers ; $662c ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET diff --git a/engine/overworld/emotion_bubbles.asm b/engine/overworld/emotion_bubbles.asm index ae7702b4..7106063b 100755 --- a/engine/overworld/emotion_bubbles.asm +++ b/engine/overworld/emotion_bubbles.asm @@ -11,10 +11,10 @@ EmotionBubble: ; 17c47 (5:7c47) ld hl, vChars1 + $780 ld bc, (BANK(EmotionBubblesPointerTable) << 8) + $04 call CopyVideoData - ld a, [wcfcb] + ld a, [wUpdateSpritesEnabled] push af ld a, $ff - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld a, [wd736] bit 6, a ld hl, wOAMBuffer + $8f @@ -51,7 +51,7 @@ EmotionBubble: ; 17c47 (5:7c47) ld c, $3c call DelayFrames pop af - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a call DelayFrame jp UpdateSprites diff --git a/engine/overworld/healing_machine.asm b/engine/overworld/healing_machine.asm index 9c93583d..53174630 100755 --- a/engine/overworld/healing_machine.asm +++ b/engine/overworld/healing_machine.asm @@ -3,7 +3,7 @@ AnimateHealingMachine: ; 70433 (1c:4433) ld hl, vChars0 + $7c0 ld bc, (BANK(PokeCenterFlashingMonitorAndHealBall) << 8) + $03 call CopyVideoData - ld hl, wcfcb + ld hl, wUpdateSpritesEnabled ld a, [hl] push af ld [hl], $ff diff --git a/engine/overworld/hidden_items.asm b/engine/overworld/hidden_items.asm index 77bd8fe6..befe2935 100755 --- a/engine/overworld/hidden_items.asm +++ b/engine/overworld/hidden_items.asm @@ -12,7 +12,7 @@ HiddenItems: ; 76688 (1d:6688) ret nz call EnableAutoTextBoxDrawing ld a, $1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld a, [wWhichTrade] ; item ID ld [wd11e], a call GetItemName @@ -42,7 +42,7 @@ FoundHiddenItemText: ; 7675b (1d:675b) .BagFull call WaitForTextScrollButtonPress ; wait for button press xor a - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, HiddenItemBagFullText call PrintText jp TextScriptEnd diff --git a/engine/overworld/hidden_objects.asm b/engine/overworld/hidden_objects.asm index d2114293..1be5170c 100755 --- a/engine/overworld/hidden_objects.asm +++ b/engine/overworld/hidden_objects.asm @@ -1,13 +1,13 @@ Func_46981: ; 46981 (11:6981) xor a - ld [wd71e], a + ld [wWhichDungeonWarp], a ld a, [wd72d] bit 4, a ret nz call ArePlayerCoordsInArray ret nc ld a, [wWhichTrade] ; wWhichTrade - ld [wd71e], a + ld [wWhichDungeonWarp], a ld hl, wd72d set 4, [hl] ld hl, wd732 diff --git a/engine/overworld/item.asm b/engine/overworld/item.asm index a69ec106..a49fc268 100644 --- a/engine/overworld/item.asm +++ b/engine/overworld/item.asm @@ -34,7 +34,7 @@ PickupItem: ld [wcc4d], a predef HideObject ld a, 1 - ld [wcc3c], a + ld [wDoNotWaitForButtonPressAfterDisplayingText], a ld hl, FoundItemText jr .print diff --git a/engine/overworld/ledges.asm b/engine/overworld/ledges.asm index 21e1b567..b8c19181 100755 --- a/engine/overworld/ledges.asm +++ b/engine/overworld/ledges.asm @@ -1,48 +1,48 @@ HandleLedges: ; 1a672 (6:6672) ld a, [wd736] - bit 6, a + bit 6, a ; already jumping down ledge ret nz ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET and a ; OVERWORLD ret nz - predef Func_c586 + predef GetTileAndCoordsInFrontOfPlayer ld a, [wSpriteStateData1 + 9] ld b, a aCoord 8, 9 ld c, a - ld a, [wcfc6] + ld a, [wTileInFrontOfPlayer] ld d, a - ld hl, LedgeTiles ; $66cf -.asm_1a691 + ld hl, LedgeTiles +.loop ld a, [hli] cp $ff ret z cp b - jr nz, .asm_1a6a4 + jr nz, .nextLedgeTile1 ld a, [hli] cp c - jr nz, .asm_1a6a5 + jr nz, .nextLedgeTile2 ld a, [hli] cp d - jr nz, .asm_1a6a6 + jr nz, .nextLedgeTile3 ld a, [hl] ld e, a - jr .asm_1a6a9 -.asm_1a6a4 + jr .foundMatch +.nextLedgeTile1 inc hl -.asm_1a6a5 +.nextLedgeTile2 inc hl -.asm_1a6a6 +.nextLedgeTile3 inc hl - jr .asm_1a691 -.asm_1a6a9 + jr .loop +.foundMatch ld a, [hJoyHeld] and e ret z ld a, $ff ld [wJoyIgnore], a ld hl, wd736 - set 6, [hl] + set 6, [hl] ; jumping down ledge call StartSimulatingJoypadStates ld a, e ld [wSimulatedJoypadStatesEnd], a @@ -56,24 +56,24 @@ HandleLedges: ; 1a672 (6:6672) ; (player direction) (tile player standing on) (ledge tile) (input required) LedgeTiles: ; 1a6cf (6:66cf) - db $00,$2C,$37,$80 - db $00,$39,$36,$80 - db $00,$39,$37,$80 - db $08,$2C,$27,$20 - db $08,$39,$27,$20 - db $0C,$2C,$0D,$10 - db $0C,$2C,$1D,$10 - db $0C,$39,$0D,$10 + db SPRITE_FACING_DOWN, $2C,$37,D_DOWN + db SPRITE_FACING_DOWN, $39,$36,D_DOWN + db SPRITE_FACING_DOWN, $39,$37,D_DOWN + db SPRITE_FACING_LEFT, $2C,$27,D_LEFT + db SPRITE_FACING_LEFT, $39,$27,D_LEFT + db SPRITE_FACING_RIGHT,$2C,$0D,D_RIGHT + db SPRITE_FACING_RIGHT,$2C,$1D,D_RIGHT + db SPRITE_FACING_RIGHT,$39,$0D,D_RIGHT db $FF LoadHoppingShadowOAM: ; 1a6f0 (6:66f0) ld hl, vChars1 + $7f0 - ld de, LedgeHoppingShadow ; $6708 + ld de, LedgeHoppingShadow ld bc, (BANK(LedgeHoppingShadow) << 8) + $01 call CopyVideoDataDouble ld a, $9 ld bc, $5448 ; b, c = y, x coordinates of shadow - ld de, LedgeHoppingShadowOAM ; $6710 + ld de, LedgeHoppingShadowOAM call WriteOAMBlock ret diff --git a/engine/overworld/npc_movement.asm b/engine/overworld/npc_movement.asm index e49c6af1..07a73be6 100755 --- a/engine/overworld/npc_movement.asm +++ b/engine/overworld/npc_movement.asm @@ -1,7 +1,7 @@ PlayerStepOutFromDoor: ; 1a3e0 (6:63e0) ld hl, wd730 res 1, [hl] - call IsPlayerStandingOnDoor + call IsPlayerStandingOnDoorTile jr nc, .notStandingOnDoor ld a, $fc ld [wJoyIgnore], a @@ -62,7 +62,7 @@ Func_1a44c: ; 1a44c (6:644c) ld a, $80 call FillMemory ld [hl], $ff - ld a, [wcf13] + ld a, [wSpriteIndex] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c ld de, wNPCMovementDirections2 call MoveSprite @@ -100,18 +100,18 @@ Func_1a4a1: ; 1a4a1 (6:64a1) Func_1a4a6: ; 1a4a6 (6:64a6) xor a ld [wOverrideSimulatedJoypadStatesMask], a - ld a, [wcf13] + ld a, [wSpriteIndex] swap a ld [wNPCMovementScriptSpriteOffset], a xor a ld [wSpriteStateData2 + $06], a ld hl, wSimulatedJoypadStatesEnd - ld de, RLEList_1a4e9 + ld de, RLEList_PlayerWalkToLab call DecodeRLEList dec a ld [wSimulatedJoypadStatesIndex], a ld hl, wNPCMovementDirections2 - ld de, RLEList_1a4dc + ld de, RLEList_ProfOakWalkToLab call DecodeRLEList ld hl, wd72e res 7, [hl] @@ -121,7 +121,7 @@ Func_1a4a6: ; 1a4a6 (6:64a6) ld [wNPCMovementScriptFunctionNum], a ret -RLEList_1a4dc: ; 1a4dc (6:64dc) +RLEList_ProfOakWalkToLab: ; 1a4dc (6:64dc) db $00, $05 db $80, $01 db $00, $05 @@ -130,7 +130,7 @@ RLEList_1a4dc: ; 1a4dc (6:64dc) db $E0, $01 db $FF -RLEList_1a4e9: ; 1a4e9 (6:64e9) +RLEList_PlayerWalkToLab: ; 1a4e9 (6:64e9) db D_UP, $02 db D_RIGHT, $03 db D_DOWN, $05 @@ -162,7 +162,7 @@ Func_1a514: ; 1a514 (6:6514) ld a, MUSIC_MUSEUM_GUY ld [wc0ee], a call PlaySound - ld a, [wcf13] + ld a, [wSpriteIndex] swap a ld [wNPCMovementScriptSpriteOffset], a call StartSimulatingJoypadStates @@ -218,7 +218,7 @@ Func_1a581: ; 1a581 (6:6581) ld a, MUSIC_MUSEUM_GUY ld [wc0ee], a call PlaySound - ld a, [wcf13] + ld a, [wSpriteIndex] swap a ld [wNPCMovementScriptSpriteOffset], a xor a @@ -276,7 +276,7 @@ Func_1a5e7: ; 1a5e7 (6:65e7) ret z jr .loop .notRival - ld a, [wcf13] + ld a, [wSpriteIndex] ld [H_DOWNARROWBLINKCNT2], a ; $ff8c jp SetSpriteMovementBytesToFF diff --git a/engine/overworld/oam.asm b/engine/overworld/oam.asm index 63495d22..b4247257 100644 --- a/engine/overworld/oam.asm +++ b/engine/overworld/oam.asm @@ -2,13 +2,13 @@ PrepareOAMData: ; Determine OAM data for currently visible ; sprites and write it to wOAMBuffer. - ld a, [wcfcb] + ld a, [wUpdateSpritesEnabled] dec a jr z, .asm_4b1e cp 0 - 1 ret nz - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a jp HideSprites .asm_4b1e diff --git a/engine/overworld/player_animations.asm b/engine/overworld/player_animations.asm index f915a2b9..473b0d5a 100755 --- a/engine/overworld/player_animations.asm +++ b/engine/overworld/player_animations.asm @@ -1,66 +1,67 @@ -Func_70510: ; 70510 (1c:4510) - call Func_706ef +EnterMapAnim: ; 70510 (1c:4510) + call InitFacingDirectionBuffer ld a, $ec - ld [wSpriteStateData1 + 4], a + ld [wSpriteStateData1 + 4], a ; player's sprite Y screen position call Delay3 push hl - call GBFadeIn2 + call GBFadeInFromWhite ld hl, W_FLAGS_D733 - bit 7, [hl] + bit 7, [hl] ; used fly out of battle? res 7, [hl] - jr nz, .asm_70568 + jr nz, .flyAnimation ld a, (SFX_02_4c - SFX_Headers_02) / 3 call PlaySound ld hl, wd732 - bit 4, [hl] + bit 4, [hl] ; used dungeon warp? res 4, [hl] pop hl - jr nz, .asm_7055e - call Func_705aa + jr nz, .dungeonWarpAnimation + call PlayerSpinWhileMovingDown ld a, (SFX_02_4f - SFX_Headers_02) / 3 call PlaySound - call Func_70787 + call IsPlayerStandingOnWarpPadOrHole ld a, b and a - jr nz, .asm_7055b - ld hl, wWhichTrade ; wWhichTrade + jr nz, .done +; if the player is not standing on a warp pad or hole + ld hl, wPlayerSpinInPlaceAnimFrameDelay xor a - ld [hli], a + ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelay inc a - ld [hli], a + ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayDelta ld a, $8 - ld [hli], a - ld [hl], $ff + ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayEndValue + ld [hl], $ff ; wPlayerSpinInPlaceAnimSoundID ld hl, wcd48 - call Func_70730 -.asm_70558 + call PlayerSpinInPlace +.restoreDefaultMusic call PlayDefaultMusic -.asm_7055b - jp Func_70772 -.asm_7055e - ld c, $32 +.done + jp RestoreFacingDirectionAndYScreenPos +.dungeonWarpAnimation + ld c, 50 call DelayFrames - call Func_705aa - jr .asm_7055b -.asm_70568 + call PlayerSpinWhileMovingDown + jr .done +.flyAnimation pop hl - ld de, BirdSprite ; $4d80 + ld de, BirdSprite ld hl, vNPCSprites ld bc, (BANK(BirdSprite) << 8) + $0c call CopyVideoData - call Func_706d7 + call LoadBirdSpriteGraphics ld a, (SFX_02_50 - SFX_Headers_02) / 3 call PlaySound - ld hl, wWhichTrade ; wWhichTrade - xor a - ld [hli], a - ld a, $c - ld [hli], a - ld [hl], $8 + ld hl, wFlyAnimUsingCoordList + xor a ; is using coord list + ld [hli], a ; wFlyAnimUsingCoordList + ld a, 12 + ld [hli], a ; wFlyAnimCounter + ld [hl], $8 ; wFlyAnimBirdSpriteImageIndex (facing right) ld de, FlyAnimationEnterScreenCoords ; $4592 - call Func_706ae + call DoFlyAnimation call LoadPlayerSpriteGraphics - jr .asm_70558 + jr .restoreDefaultMusic FlyAnimationEnterScreenCoords: ; 70592 (1c:4592) ; y, x pairs @@ -79,90 +80,92 @@ FlyAnimationEnterScreenCoords: ; 70592 (1c:4592) db $3C, $48 db $3C, $40 -Func_705aa: ; 705aa (1c:45aa) - ld hl, wWhichTrade ; wWhichTrade +PlayerSpinWhileMovingDown: ; 705aa (1c:45aa) + ld hl, wPlayerSpinWhileMovingUpOrDownAnimDeltaY ld a, $10 - ld [hli], a + ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimDeltaY ld a, $3c - ld [hli], a - call Func_7077f - ld [hl], a - jp Func_70755 + ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimMaxY + call GetPlayerTeleportAnimFrameDelay + ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay + jp PlayerSpinWhileMovingUpOrDown _LeaveMapAnim: ; 705ba (1c:45ba) - call Func_706ef - call Func_70787 + call InitFacingDirectionBuffer + call IsPlayerStandingOnWarpPadOrHole ld a, b and a - jr z, .asm_705ef + jr z, .playerNotStandingOnWarpPadOrHole dec a - jp nz, Func_7067d -.asm_705c8 + jp nz, LeaveMapThroughHoleAnim +.spinWhileMovingUp ld a, (SFX_02_4b - SFX_Headers_02) / 3 call PlaySound - ld hl, wWhichTrade ; wWhichTrade - ld a, $f0 - ld [hli], a + ld hl, wPlayerSpinWhileMovingUpOrDownAnimDeltaY + ld a, -$10 + ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimDeltaY ld a, $ec - ld [hli], a - call Func_7077f - ld [hl], a - call Func_70755 - call Func_70787 + ld [hli], a ; wPlayerSpinWhileMovingUpOrDownAnimMaxY + call GetPlayerTeleportAnimFrameDelay + ld [hl], a ; wPlayerSpinWhileMovingUpOrDownAnimFrameDelay + call PlayerSpinWhileMovingUpOrDown + call IsPlayerStandingOnWarpPadOrHole ld a, b dec a - jr z, .asm_705e9 - ld c, $a + jr z, .playerStandingOnWarpPad +; if not standing on a warp pad, there is an extra delay + ld c, 10 call DelayFrames -.asm_705e9 - call GBFadeOut2 - jp Func_70772 -.asm_705ef +.playerStandingOnWarpPad + call GBFadeOutToWhite + jp RestoreFacingDirectionAndYScreenPos +.playerNotStandingOnWarpPadOrHole ld a, $4 call StopMusic ld a, [wd732] - bit 6, a - jr z, .asm_70610 - ld hl, wWhichTrade ; wWhichTrade - ld a, $10 - ld [hli], a - ld a, $ff - ld [hli], a + bit 6, a ; is the last used pokemon center the destination? + jr z, .flyAnimation +; if going to the last used pokemon center + ld hl, wPlayerSpinInPlaceAnimFrameDelay + ld a, 16 + ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelay + ld a, -1 + ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayDelta xor a - ld [hli], a - ld [hl], $a1 + ld [hli], a ; wPlayerSpinInPlaceAnimFrameDelayEndValue + ld [hl], $a1 ; wPlayerSpinInPlaceAnimSoundID ld hl, wcd48 - call Func_70730 - jr .asm_705c8 -.asm_70610 - call Func_706d7 - ld hl, wWhichTrade ; wWhichTrade - ld a, $ff - ld [hli], a - ld a, $8 - ld [hli], a - ld [hl], $c - call Func_706ae + call PlayerSpinInPlace + jr .spinWhileMovingUp +.flyAnimation + call LoadBirdSpriteGraphics + ld hl, wFlyAnimUsingCoordList + ld a, $ff ; is not using coord list (flap in place) + ld [hli], a ; wFlyAnimUsingCoordList + ld a, 8 + ld [hli], a ; wFlyAnimCounter + ld [hl], $c ; wFlyAnimBirdSpriteImageIndex + call DoFlyAnimation ld a, (SFX_02_50 - SFX_Headers_02) / 3 call PlaySound - ld hl, wWhichTrade ; wWhichTrade - xor a - ld [hli], a + ld hl, wFlyAnimUsingCoordList + xor a ; is using coord list + ld [hli], a ; wFlyAnimUsingCoordList ld a, $c - ld [hli], a - ld [hl], $c + ld [hli], a ; wFlyAnimCounter + ld [hl], $c ; wFlyAnimBirdSpriteImageIndex (facing right) ld de, FlyAnimationScreenCoords1 ; $464f - call Func_706ae - ld c, $28 + call DoFlyAnimation + ld c, 40 call DelayFrames - ld hl, wTrainerEngageDistance - ld a, $b - ld [hli], a - ld [hl], $8 + ld hl, wFlyAnimCounter + ld a, 11 + ld [hli], a ; wFlyAnimCounter + ld [hl], $8 ; wFlyAnimBirdSpriteImageIndex (facing left) ld de, FlyAnimationScreenCoords2 ; $4667 - call Func_706ae - call GBFadeOut2 - jp Func_70772 + call DoFlyAnimation + call GBFadeOutToWhite + jp RestoreFacingDirectionAndYScreenPos FlyAnimationScreenCoords1: ; 7064f (1c:464f) ; y, x pairs @@ -198,33 +201,35 @@ FlyAnimationScreenCoords2: ; 70667 (1c:4667) db $F0, $00 -Func_7067d: ; 7067d (1c:467d) +LeaveMapThroughHoleAnim: ; 7067d (1c:467d) ld a, $ff - ld [wcfcb], a - ld a, [wOAMBuffer + $02] - ld [wOAMBuffer + $0a], a - ld a, [wOAMBuffer + $06] - ld [wOAMBuffer + $0e], a + ld [wUpdateSpritesEnabled], a ; disable UpdateSprites + ; shift upper half of player's sprite down 8 pixels and hide lower half + ld a, [wOAMBuffer + 0 * 4 + 2] + ld [wOAMBuffer + 2 * 4 + 2], a + ld a, [wOAMBuffer + 1 * 4 + 2] + ld [wOAMBuffer + 3 * 4 + 2], a ld a, $a0 - ld [wOAMBuffer], a - ld [wOAMBuffer + $04], a - ld c, $2 + ld [wOAMBuffer + 0 * 4], a + ld [wOAMBuffer + 1 * 4], a + ld c, 2 call DelayFrames + ; hide lower half of player's sprite ld a, $a0 - ld [wOAMBuffer + $08], a - ld [wOAMBuffer + $0c], a - call GBFadeOut2 + ld [wOAMBuffer + 2 * 4], a + ld [wOAMBuffer + 3 * 4], a + call GBFadeOutToWhite ld a, $1 - ld [wcfcb], a - jp Func_70772 + ld [wUpdateSpritesEnabled], a ; enable UpdateSprites + jp RestoreFacingDirectionAndYScreenPos -Func_706ae: ; 706ae (1c:46ae) - ld a, [wTrainerFacingDirection] - xor $1 - ld [wTrainerFacingDirection], a +DoFlyAnimation: ; 706ae (1c:46ae) + ld a, [wFlyAnimBirdSpriteImageIndex] + xor $1 ; make the bird flap its wings + ld [wFlyAnimBirdSpriteImageIndex], a ld [wSpriteStateData1 + 2], a call Delay3 - ld a, [wWhichTrade] ; wWhichTrade + ld a, [wFlyAnimUsingCoordList] cp $ff jr z, .asm_706cd ld hl, wSpriteStateData1 + 4 @@ -236,13 +241,13 @@ Func_706ae: ; 706ae (1c:46ae) inc de ld [hl], a .asm_706cd - ld a, [wTrainerEngageDistance] + ld a, [wFlyAnimCounter] dec a - ld [wTrainerEngageDistance], a - jr nz, Func_706ae + ld [wFlyAnimCounter], a + jr nz, DoFlyAnimation ret -Func_706d7: ; 706d7 (1c:46d7) +LoadBirdSpriteGraphics: ; 706d7 (1c:46d7) ld de, BirdSprite ; $4d80 ld hl, vNPCSprites ld bc, (BANK(BirdSprite) << 8) + $0c @@ -252,32 +257,32 @@ Func_706d7: ; 706d7 (1c:46d7) ld bc, (BANK(BirdSprite) << 8) + $0c jp CopyVideoData -Func_706ef: ; 706ef (1c:46ef) - ld a, [wSpriteStateData1 + 2] +InitFacingDirectionBuffer: ; 706ef (1c:46ef) + ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction (image index is locked to standing images) ld [wcd50], a - ld a, [wSpriteStateData1 + 4] + ld a, [wSpriteStateData1 + 4] ; player's sprite Y screen position ld [wcd4f], a - ld hl, PlayerSpinningFacingOrder ; $4713 + ld hl, PlayerSpinningFacingOrder ld de, wcd48 ld bc, $4 call CopyData - ld a, [wSpriteStateData1 + 2] + ld a, [wSpriteStateData1 + 2] ; player's sprite facing direction (image index is locked to standing images) ld hl, wcd48 -.asm_7070d +.loop cp [hl] inc hl - jr nz, .asm_7070d + jr nz, .loop dec hl ret PlayerSpinningFacingOrder: ; 70713 (1c:4713) ; The order of the direction the player's sprite is facing when teleporting ; away. Creates a spinning effect. - db $00, $08, $04, $0C ; down, left, up, right + db SPRITE_FACING_DOWN, SPRITE_FACING_LEFT, SPRITE_FACING_UP, SPRITE_FACING_RIGHT -Func_70717: ; 70717 (1c:4717) +SpinPlayerSprite: ; 70717 (1c:4717) ld a, [hl] - ld [wSpriteStateData1 + 2], a + ld [wSpriteStateData1 + 2], a ; player's sprite facing direction (image index is locked to standing images) push hl ld hl, wcd48 ld de, wcd47 @@ -288,84 +293,85 @@ Func_70717: ; 70717 (1c:4717) pop hl ret -Func_70730: ; 70730 (1c:4730) - call Func_70717 - ld a, [wWhichTrade] ; wWhichTrade +PlayerSpinInPlace: ; 70730 (1c:4730) + call SpinPlayerSprite + ld a, [wPlayerSpinInPlaceAnimFrameDelay] ld c, a and $3 jr nz, .asm_70743 - ld a, [wTrainerScreenY] + ld a, [wPlayerSpinInPlaceAnimSoundID] cp $ff call nz, PlaySound .asm_70743 - ld a, [wTrainerEngageDistance] + ld a, [wPlayerSpinInPlaceAnimFrameDelayDelta] add c - ld [wWhichTrade], a ; wWhichTrade + ld [wPlayerSpinInPlaceAnimFrameDelay], a ld c, a - ld a, [wTrainerFacingDirection] + ld a, [wPlayerSpinInPlaceAnimFrameDelayEndValue] cp c ret z call DelayFrames - jr Func_70730 + jr PlayerSpinInPlace -Func_70755: ; 70755 (1c:4755) - call Func_70717 - ld a, [wWhichTrade] ; wWhichTrade +PlayerSpinWhileMovingUpOrDown: ; 70755 (1c:4755) + call SpinPlayerSprite + ld a, [wPlayerSpinWhileMovingUpOrDownAnimDeltaY] ld c, a - ld a, [wSpriteStateData1 + 4] + ld a, [wSpriteStateData1 + 4] ; player's sprite Y screen position add c ld [wSpriteStateData1 + 4], a ld c, a - ld a, [wTrainerEngageDistance] + ld a, [wPlayerSpinWhileMovingUpOrDownAnimMaxY] cp c ret z - ld a, [wTrainerFacingDirection] + ld a, [wPlayerSpinWhileMovingUpOrDownAnimFrameDelay] ld c, a call DelayFrames - jr Func_70755 + jr PlayerSpinWhileMovingUpOrDown -Func_70772: ; 70772 (1c:4772) +RestoreFacingDirectionAndYScreenPos: ; 70772 (1c:4772) ld a, [wcd4f] ld [wSpriteStateData1 + 4], a ld a, [wcd50] ld [wSpriteStateData1 + 2], a ret -Func_7077f: ; 7077f (1c:477f) - ld a, [wcf1b] +; if SGB, 2 frames, else 3 frames +GetPlayerTeleportAnimFrameDelay: ; 7077f (1c:477f) + ld a, [wOnSGB] xor $1 inc a inc a ret -Func_70787: ; 70787 (1c:4787) +IsPlayerStandingOnWarpPadOrHole: ; 70787 (1c:4787) ld b, 0 - ld hl, DataTable_707a9 ; $47a9 - ld a, [W_CURMAPTILESET] ; W_CURMAPTILESET + ld hl, .warpPadAndHoleData + ld a, [W_CURMAPTILESET] ld c, a -.asm_70790 +.loop ld a, [hli] cp $ff - jr z, .asm_707a4 + jr z, .done cp c - jr nz, .asm_7079e + jr nz, .nextEntry aCoord 8, 9 cp [hl] - jr z, .asm_707a2 -.asm_7079e + jr z, .foundMatch +.nextEntry inc hl inc hl - jr .asm_70790 -.asm_707a2 + jr .loop +.foundMatch inc hl ld b, [hl] -.asm_707a4 +.done ld a, b ld [wcd5b], a ret ; format: db tileset id, tile id, value to be put in wcd5b -DataTable_707a9: ; 707a9 (1c:47a9) +.warpPadAndHoleData: ; 707a9 (1c:47a9) db FACILITY, $20, 1 ; warp pad db FACILITY, $11, 2 ; hole db CAVERN, $22, 2 ; hole @@ -454,7 +460,7 @@ ItsABiteText: ; 70851 (1c:4851) db "@" FishingRodGfxProperties: ; 70856 (1c:4856) -; specicies how the fishing rod should be drawn on the screen +; specifies how the fishing rod should be drawn on the screen ; first byte = screen y coordinate ; second byte = screen x coordinate ; third byte = tile number @@ -482,21 +488,21 @@ RedFishingTiles: ; 70866 (1c:4866) dw vNPCSprites2 + $7d0 _HandleMidJump: ; 7087e (1c:487e) - ld a, [wd714] + ld a, [wPlayerJumpingYScreenCoordsIndex] ld c, a inc a cp $10 - jr nc, .asm_70895 - ld [wd714], a - ld b, $0 - ld hl, PlayerJumpingYScreenCoords ; $48ba + jr nc, .finishedJump + ld [wPlayerJumpingYScreenCoordsIndex], a + ld b, 0 + ld hl, PlayerJumpingYScreenCoords add hl, bc ld a, [hl] ld [wSpriteStateData1 + 4], a ; player's sprite y coordinate ret -.asm_70895 - ld a, [wWalkCounter] ; wcfc5 - cp $0 +.finishedJump + ld a, [wWalkCounter] + cp 0 ret nz call UpdateSprites call Delay3 @@ -504,11 +510,11 @@ _HandleMidJump: ; 7087e (1c:487e) ld [hJoyHeld], a ld [hJoyPressed], a ld [hJoyReleased], a - ld [wd714], a + ld [wPlayerJumpingYScreenCoordsIndex], a ld hl, wd736 - res 6, [hl] + res 6, [hl] ; not jumping down a ledge any more ld hl, wd730 - res 7, [hl] + res 7, [hl] ; not simulating joypad states any more xor a ld [wJoyIgnore], a ret diff --git a/engine/overworld/pokemart.asm b/engine/overworld/pokemart.asm index 1c2c23bf..a27f6b0a 100755 --- a/engine/overworld/pokemart.asm +++ b/engine/overworld/pokemart.asm @@ -203,7 +203,7 @@ DisplayPokemartDialogue_: ; 6c20 (1:6c20) ld hl,PokemartThankYouText call PrintText ld a,$01 - ld [wcfcb],a + ld [wUpdateSpritesEnabled],a call UpdateSprites ; move sprites ld a,[wd07e] ld [wListScrollOffset],a diff --git a/engine/overworld/ssanne.asm b/engine/overworld/ssanne.asm index bdbbd17e..f1a8ecf9 100755 --- a/engine/overworld/ssanne.asm +++ b/engine/overworld/ssanne.asm @@ -1,10 +1,10 @@ AnimateBoulderDust: ; 79f54 (1e:5f54) ld a, $1 ld [wcd50], a ; select the boulder dust offsets - ld a, [wcfcb] + ld a, [wUpdateSpritesEnabled] push af ld a, $ff - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld a, %11100100 ld [rOBP1], a call LoadSmokeTileFourTimes @@ -26,7 +26,7 @@ AnimateBoulderDust: ; 79f54 (1e:5f54) dec c jr nz, .loop pop af - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a jp LoadPlayerSpriteGraphics GetMoveBoulderDustFunctionPointer: ; 79f92 (1e:5f92) diff --git a/engine/overworld/trainers.asm b/engine/overworld/trainers.asm index 5237df0d..4aaab3ed 100755 --- a/engine/overworld/trainers.asm +++ b/engine/overworld/trainers.asm @@ -1,7 +1,7 @@ _GetSpritePosition1: ; 567f9 (15:67f9) ld hl, wSpriteStateData1 ld de, $4 - ld a, [wcf13] + ld a, [wSpriteIndex] ld [H_SPRITEINDEX], a call GetSpriteDataPointer ld a, [hli] @@ -20,7 +20,7 @@ _GetSpritePosition1: ; 567f9 (15:67f9) _GetSpritePosition2: ; 56819 (15:6819) ld hl, wSpriteStateData1 ld de, $4 - ld a, [wcf13] + ld a, [wSpriteIndex] ld [H_SPRITEINDEX], a call GetSpriteDataPointer ld a, [hli] ; c1x4 (screen Y pos) @@ -39,7 +39,7 @@ _GetSpritePosition2: ; 56819 (15:6819) _SetSpritePosition1: ; 5683d (15:683d) ld hl, wSpriteStateData1 ld de, $4 - ld a, [wcf13] + ld a, [wSpriteIndex] ld [H_SPRITEINDEX], a call GetSpriteDataPointer ld a, [$ffeb] ; c1x4 (screen Y pos) @@ -58,7 +58,7 @@ _SetSpritePosition1: ; 5683d (15:683d) _SetSpritePosition2: ; 5685d (15:685d) ld hl, wSpriteStateData1 ld de, $0004 - ld a, [wcf13] + ld a, [wSpriteIndex] ld [H_SPRITEINDEX], a call GetSpriteDataPointer ld a, [wd130] @@ -75,7 +75,7 @@ _SetSpritePosition2: ; 5685d (15:685d) ret TrainerWalkUpToPlayer: ; 56881 (15:6881) - ld a, [wcf13] + ld a, [wSpriteIndex] swap a ld [wTrainerSpriteOffset], a ; wWhichTrade call ReadTrainerScreenPosition @@ -143,7 +143,7 @@ TrainerWalkUpToPlayer: ; 56881 (15:6881) ld de, wNPCMovementDirections2 call FillMemory ; write the necessary steps to reach player ld [hl], $ff ; write end of list sentinel - ld a, [wcf13] + ld a, [wSpriteIndex] ld [H_SPRITEINDEX], a jp MoveSprite_ diff --git a/engine/palettes.asm b/engine/palettes.asm index eafd8ef6..67afc12d 100755 --- a/engine/palettes.asm +++ b/engine/palettes.asm @@ -380,11 +380,11 @@ SendSGBPacket: ; 71feb (1c:5feb) LoadSGB: ; 7202b (1c:602b) xor a - ld [wcf1b], a + ld [wOnSGB], a call Func_7209b ret nc ld a, $1 - ld [wcf1b], a + ld [wOnSGB], a ld a, [wGBC] and a jr z, .asm_7203f diff --git a/engine/predefs.asm b/engine/predefs.asm index c492a206..0a5eff03 100755 --- a/engine/predefs.asm +++ b/engine/predefs.asm @@ -71,19 +71,19 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef FlagActionPredef add_predef HideObject add_predef IsObjectHidden - add_predef Func_c69c + add_predef ApplyOutOfBattlePoisonDamage add_predef AnyPartyAlive add_predef ShowObject add_predef ShowObject2 add_predef Func_ee9e add_predef InitPlayerData2 - add_predef Func_c754 + add_predef LoadTilesetHeader add_predef LearnMoveFromLevelUp add_predef LearnMove add_predef IsItemInBag_ ; 1C, used in Pokémon Tower dbw $03,Func_3eb5 ; for these two, the bank number is actually 0 dbw $03,GiveItem - add_predef Func_480eb + add_predef ChangeBGPalColor0_4Frames add_predef FindPathToPlayer add_predef Func_480ff add_predef CalcPositionOfPlayerRelativeToNPC @@ -105,7 +105,7 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef PlayIntro add_predef Func_79869 add_predef FlashScreen - add_predef Func_c586 + add_predef GetTileAndCoordsInFrontOfPlayer add_predef StatusScreen add_predef StatusScreen2 add_predef Func_410e2 @@ -140,9 +140,9 @@ PredefPointers:: ; 4fe79 (13:7e79) add_predef HallOfFamePC add_predef DisplayDexRating dbw $1E, _LeaveMapAnim ; wrong bank - dbw $1E, Func_70510 ; wrong bank - add_predef Func_c5be - add_predef Func_c60b + dbw $1E, EnterMapAnim ; wrong bank + add_predef GetTileTwoStepsInFrontOfPlayer + add_predef CheckForCollisionWhenPushingBoulder add_predef PrintStrengthTxt add_predef PickupItem add_predef Func_27d98 diff --git a/engine/predefs12.asm b/engine/predefs12.asm index 380cfc1c..90032a14 100755 --- a/engine/predefs12.asm +++ b/engine/predefs12.asm @@ -1,13 +1,14 @@ -Func_480eb: ; 480eb (12:40eb) +; b = new colour for BG colour 0 (usually white) for 4 frames +ChangeBGPalColor0_4Frames: ; 480eb (12:40eb) call GetPredefRegisters - ld a, [rBGP] ; $ff47 + ld a, [rBGP] or b - ld [rBGP], a ; $ff47 + ld [rBGP], a ld c, $4 call DelayFrames - ld a, [rBGP] ; $ff47 - and $fc - ld [rBGP], a ; $ff47 + ld a, [rBGP] + and %11111100 + ld [rBGP], a ret Func_480ff: ; 480ff (12:40ff) diff --git a/engine/predefs7.asm b/engine/predefs7.asm index 469fe0c4..b6c3bbbc 100755 --- a/engine/predefs7.asm +++ b/engine/predefs7.asm @@ -31,7 +31,7 @@ Func_1c9c6: ; 1c9c6 (7:49c6) ld b, a ld a, [hl] ld c, a - ld hl, wd3af + ld hl, wWarpEntries call Func_1ca0d Func_1ca0d: ; 1ca0d (7:4a0d) diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm index ed6f52fb..6964b94e 100755 --- a/engine/slot_machine.asm +++ b/engine/slot_machine.asm @@ -1,7 +1,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e) call SaveScreenTilesToBuffer2 ld a, BANK(DisplayTextIDInit) - ld [wcf0c], a + ld [wAutoTextBoxDrawingControl], a ld b, a ld hl, DisplayTextIDInit call Bankswitch @@ -12,7 +12,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e) and a jr nz, .skip dec a - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld hl, wcd4f xor a ld [hli], a @@ -40,7 +40,7 @@ PromptUserToPlaySlots: ; 3730e (d:730e) ld [W_SUBANIMSUBENTRYADDR], a call GBPalWhiteOutWithDelay3 ld a, $1 - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a call GoPAL_SET_CF1C call ReloadMapSpriteTilePatterns call ReloadTilesetTilePatterns @@ -221,7 +221,7 @@ SlotMachine_374ad: ; 374ad (d:74ad) call SlotMachine_374fb call SlotMachine_37517 ret c - ld a, [wcf1b] + ld a, [wOnSGB] xor $1 inc a ld c, a diff --git a/engine/town_map.asm b/engine/town_map.asm index 2cd37284..6d10c222 100755 --- a/engine/town_map.asm +++ b/engine/town_map.asm @@ -1,6 +1,6 @@ DisplayTownMap: ; 70e3e (1c:4e3e) call LoadTownMap - ld hl, wcfcb + ld hl, wUpdateSpritesEnabled ld a, [hl] push af ld [hl], $ff @@ -111,7 +111,7 @@ TownMapCursor: ; 70f40 (1c:4f40) LoadTownMap_Nest: ; 70f60 (1c:4f60) call LoadTownMap - ld hl, wcfcb + ld hl, wUpdateSpritesEnabled ld a, [hl] push af ld [hl], $ff @@ -148,7 +148,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) ld bc, (BANK(TownMapUpArrow) << 8) + $01 call CopyVideoDataDouble call Func_71070 - ld hl, wcfcb + ld hl, wUpdateSpritesEnabled ld a, [hl] push af ld [hl], $ff @@ -206,7 +206,7 @@ LoadTownMap_Fly: ; 70f90 (1c:4f90) ld a, (SFX_02_3e - SFX_Headers_02) / 3 call PlaySound ld a, [hl] - ld [wd71a], a + ld [wDestinationMap], a ld hl, wd732 set 3, [hl] inc hl diff --git a/engine/trade.asm b/engine/trade.asm index 0f245fc5..5be77f3e 100755 --- a/engine/trade.asm +++ b/engine/trade.asm @@ -119,10 +119,10 @@ LoadTradingGFXAndMonNames: ; 411a1 (10:51a1) call FillMemory call ClearSprites ld a, $ff - ld [wcfcb], a + ld [wUpdateSpritesEnabled], a ld hl, wd730 set 6, [hl] - ld a, [wcf1b] + ld a, [wOnSGB] and a ld a, $e4 jr z, .asm_411e5 |