From 4a16bbe45a3d547c44aadd127253f6f5eaf78f54 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 3 Nov 2015 09:16:56 -0500 Subject: sprite_header and emote_header --- constants/map_constants.asm | 1 + constants/wram_constants.asm | 1 - gfx/misc/fishing.2bpp | Bin 96 -> 0 bytes gfx/misc/fishing1.2bpp | 1 + gfx/misc/fishing2.2bpp | Bin 0 -> 32 bytes gfx/misc/fishing3.2bpp | Bin 0 -> 32 bytes gfx/misc/fishing4.2bpp | 1 + gfx/overworld/sprite_headers.asm | 414 ++++++++++----------------------------- main.asm | 111 ++++------- wram.asm | 2 +- 10 files changed, 154 insertions(+), 377 deletions(-) delete mode 100644 gfx/misc/fishing.2bpp create mode 100644 gfx/misc/fishing1.2bpp create mode 100644 gfx/misc/fishing2.2bpp create mode 100644 gfx/misc/fishing3.2bpp create mode 100644 gfx/misc/fishing4.2bpp diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 0880a4f1e..35a26b9e2 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -566,6 +566,7 @@ const_value SET 1 const MAPOBJECT_FLAG_HI ; d const MAPOBJECT_E ; unused const MAPOBJECT_F ; unused +OBJECT_LENGTH EQU const_value MAPOBJECT_SCREEN_HEIGHT EQU 11 MAPOBJECT_SCREEN_WIDTH EQU 12 diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index 9bb72b2a2..dd2c6f40b 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -54,7 +54,6 @@ SATURDAY EQU 6 PLAYER_OBJECT EQU 0 NUM_OBJECTS EQU $10 -OBJECT_LENGTH EQU $10 ; InputType: ; c2c7 AUTO_INPUT EQU $ff diff --git a/gfx/misc/fishing.2bpp b/gfx/misc/fishing.2bpp deleted file mode 100644 index 0f7fd175d..000000000 Binary files a/gfx/misc/fishing.2bpp and /dev/null differ diff --git a/gfx/misc/fishing1.2bpp b/gfx/misc/fishing1.2bpp new file mode 100644 index 000000000..b62b99ffc --- /dev/null +++ b/gfx/misc/fishing1.2bpp @@ -0,0 +1 @@ +???? \ No newline at end of file diff --git a/gfx/misc/fishing2.2bpp b/gfx/misc/fishing2.2bpp new file mode 100644 index 000000000..bb3ed2bbf Binary files /dev/null and b/gfx/misc/fishing2.2bpp differ diff --git a/gfx/misc/fishing3.2bpp b/gfx/misc/fishing3.2bpp new file mode 100644 index 000000000..f8b9f0180 Binary files /dev/null and b/gfx/misc/fishing3.2bpp differ diff --git a/gfx/misc/fishing4.2bpp b/gfx/misc/fishing4.2bpp new file mode 100644 index 000000000..987a4ad34 --- /dev/null +++ b/gfx/misc/fishing4.2bpp @@ -0,0 +1 @@ +@ 2 d 6  \ No newline at end of file diff --git a/gfx/overworld/sprite_headers.asm b/gfx/overworld/sprite_headers.asm index 42822224a..8e99a24f3 100644 --- a/gfx/overworld/sprite_headers.asm +++ b/gfx/overworld/sprite_headers.asm @@ -3,614 +3,416 @@ ; Length, Bank ; Type, Palette +sprite_header: MACRO + dw \1 + db \2 * $40, BANK(\1) + db \3, \4 +ENDM + ChrisSprite: ; 14736 - dw ChrisSpriteGFX - db $3 * $40, BANK(ChrisSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header ChrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1473c ChrisBikeSprite: ; 1473c - dw ChrisBikeSpriteGFX - db $3 * $40, BANK(ChrisBikeSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header ChrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14742 GameboyKidSprite: ; 14742 - dw GameboyKidSpriteGFX - db $3 * $40, BANK(GameboyKidSpriteGFX) - db STANDING_SPRITE, PAL_OW_GREEN + sprite_header GameboyKidSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN ; 14748 SilverSprite: ; 14748 - dw SilverSpriteGFX - db $3 * $40, BANK(SilverSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header SilverSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1474e OakSprite: ; 1474e - dw OakSpriteGFX - db $3 * $40, BANK(OakSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header OakSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14754 RedSprite: ; 14754 - dw RedSpriteGFX - db $3 * $40, BANK(RedSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header RedSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1475a BlueSprite: ; 1475a - dw BlueSpriteGFX - db $3 * $40, BANK(BlueSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header BlueSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14760 BillSprite: ; 14760 - dw BillSpriteGFX - db $3 * $40, BANK(BillSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header BillSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14766 ElderSprite: ; 14766 - dw ElderSpriteGFX - db $3 * $40, BANK(ElderSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header ElderSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 1476c JanineSprite: ; 1476c - dw JanineSpriteGFX - db $3 * $40, BANK(JanineSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header JanineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14772 KurtSprite: ; 14772 - dw KurtSpriteGFX - db $3 * $40, BANK(KurtSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header KurtSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14778 MomSprite: ; 14778 - dw MomSpriteGFX - db $3 * $40, BANK(MomSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header MomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1477e BlaineSprite: ; 1477e - dw BlaineSpriteGFX - db $3 * $40, BANK(BlaineSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header BlaineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14784 RedsMomSprite: ; 14784 - dw RedsMomSpriteGFX - db $3 * $40, BANK(RedsMomSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header RedsMomSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1478a DaisySprite: ; 1478a - dw DaisySpriteGFX - db $3 * $40, BANK(DaisySpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header DaisySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14790 ElmSprite: ; 14790 - dw ElmSpriteGFX - db $3 * $40, BANK(ElmSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header ElmSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14796 WillSprite: ; 14796 - dw WillSpriteGFX - db $3 * $40, BANK(WillSpriteGFX) - db STANDING_SPRITE, PAL_OW_RED + sprite_header WillSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED ; 1479c FalknerSprite: ; 1479c - dw FalknerSpriteGFX - db $3 * $40, BANK(FalknerSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header FalknerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 147a2 WhitneySprite: ; 147a2 - dw WhitneySpriteGFX - db $3 * $40, BANK(WhitneySpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header WhitneySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147a8 BugsySprite: ; 147a8 - dw BugsySpriteGFX - db $3 * $40, BANK(BugsySpriteGFX) - db WALKING_SPRITE, PAL_OW_GREEN + sprite_header BugsySpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 147ae MortySprite: ; 147ae - dw MortySpriteGFX - db $3 * $40, BANK(MortySpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header MortySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 147b4 ChuckSprite: ; 147b4 - dw ChuckSpriteGFX - db $3 * $40, BANK(ChuckSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header ChuckSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147ba JasmineSprite: ; 147ba - dw JasmineSpriteGFX - db $3 * $40, BANK(JasmineSpriteGFX) - db WALKING_SPRITE, PAL_OW_GREEN + sprite_header JasmineSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 147c0 PryceSprite: ; 147c0 - dw PryceSpriteGFX - db $3 * $40, BANK(PryceSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header PryceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 147c6 ClairSprite: ; 147c6 - dw ClairSpriteGFX - db $3 * $40, BANK(ClairSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header ClairSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147cc BrockSprite: ; 147cc - dw BrockSpriteGFX - db $3 * $40, BANK(BrockSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header BrockSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 147d2 KarenSprite: ; 147d2 - dw KarenSpriteGFX - db $3 * $40, BANK(KarenSpriteGFX) - db STANDING_SPRITE, PAL_OW_BLUE + sprite_header KarenSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE ; 147d8 BrunoSprite: ; 147d8 - dw BrunoSpriteGFX - db $3 * $40, BANK(BrunoSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header BrunoSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147de MistySprite: ; 147de - dw MistySpriteGFX - db $3 * $40, BANK(MistySpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header MistySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 147e4 LanceSprite: ; 147e4 - dw LanceSpriteGFX - db $3 * $40, BANK(LanceSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header LanceSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 147ea SurgeSprite: ; 147ea - dw SurgeSpriteGFX - db $3 * $40, BANK(SurgeSpriteGFX) - db WALKING_SPRITE, PAL_OW_GREEN + sprite_header SurgeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 147f0 ErikaSprite: ; 147f0 - dw ErikaSpriteGFX - db $3 * $40, BANK(ErikaSpriteGFX) - db WALKING_SPRITE, PAL_OW_GREEN + sprite_header ErikaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 147f6 KogaSprite: ; 147f6 - dw KogaSpriteGFX - db $3 * $40, BANK(KogaSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header KogaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 147fc SabrinaSprite: ; 147fc - dw SabrinaSpriteGFX - db $3 * $40, BANK(SabrinaSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header SabrinaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14802 CooltrainerMSprite: ; 14802 - dw CooltrainerMSpriteGFX - db $3 * $40, BANK(CooltrainerMSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header CooltrainerMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14808 CooltrainerFSprite: ; 14808 - dw CooltrainerFSpriteGFX - db $3 * $40, BANK(CooltrainerFSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header CooltrainerFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 1480e BugCatcherSprite: ; 1480e - dw BugCatcherSpriteGFX - db $3 * $40, BANK(BugCatcherSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header BugCatcherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14814 TwinSprite: ; 14814 - dw TwinSpriteGFX - db $3 * $40, BANK(TwinSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header TwinSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1481a YoungsterSprite: ; 1481a - dw YoungsterSpriteGFX - db $3 * $40, BANK(YoungsterSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header YoungsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14820 LassSprite: ; 14820 - dw LassSpriteGFX - db $3 * $40, BANK(LassSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header LassSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14826 TeacherSprite: ; 14826 - dw TeacherSpriteGFX - db $3 * $40, BANK(TeacherSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header TeacherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1482c BuenaSprite: ; 1482c - dw BuenaSpriteGFX - db $3 * $40, BANK(BuenaSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header BuenaSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14832 SuperNerdSprite: ; 14832 - dw SuperNerdSpriteGFX - db $3 * $40, BANK(SuperNerdSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header SuperNerdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14838 RockerSprite: ; 14838 - dw RockerSpriteGFX - db $3 * $40, BANK(RockerSpriteGFX) - db WALKING_SPRITE, PAL_OW_GREEN + sprite_header RockerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 1483e PokefanMSprite: ; 1483e - dw PokefanMSpriteGFX - db $3 * $40, BANK(PokefanMSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header PokefanMSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14844 PokefanFSprite: ; 14844 - dw PokefanFSpriteGFX - db $3 * $40, BANK(PokefanFSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header PokefanFSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 1484a GrampsSprite: ; 1484a - dw GrampsSpriteGFX - db $3 * $40, BANK(GrampsSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header GrampsSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14850 GrannySprite: ; 14850 - dw GrannySpriteGFX - db $3 * $40, BANK(GrannySpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header GrannySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14856 SwimmerGuySprite: ; 14856 - dw SwimmerGuySpriteGFX - db $3 * $40, BANK(SwimmerGuySpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header SwimmerGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 1485c SwimmerGirlSprite: ; 1485c - dw SwimmerGirlSpriteGFX - db $3 * $40, BANK(SwimmerGirlSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header SwimmerGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14862 BigSnorlaxSprite: ; 14862 - dw BigSnorlaxSpriteGFX - db $3 * $40, BANK(BigSnorlaxSpriteGFX) - db STANDING_SPRITE, PAL_OW_BLUE + sprite_header BigSnorlaxSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE ; 14868 SurfingPikachuSprite: ; 14868 - dw SurfingPikachuSpriteGFX - db $3 * $40, BANK(SurfingPikachuSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header SurfingPikachuSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1486e RocketSprite: ; 1486e - dw RocketSpriteGFX - db $3 * $40, BANK(RocketSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header RocketSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 14874 RocketGirlSprite: ; 14874 - dw RocketGirlSpriteGFX - db $3 * $40, BANK(RocketGirlSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header RocketGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 1487a NurseSprite: ; 1487a - dw NurseSpriteGFX - db $3 * $40, BANK(NurseSpriteGFX) - db STANDING_SPRITE, PAL_OW_RED + sprite_header NurseSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED ; 14880 LinkReceptionistSprite: ; 14880 - dw LinkReceptionistSpriteGFX - db $3 * $40, BANK(LinkReceptionistSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header LinkReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14886 ClerkSprite: ; 14886 - dw ClerkSpriteGFX - db $3 * $40, BANK(ClerkSpriteGFX) - db WALKING_SPRITE, PAL_OW_GREEN + sprite_header ClerkSpriteGFX, 3, WALKING_SPRITE, PAL_OW_GREEN ; 1488c FisherSprite: ; 1488c - dw FisherSpriteGFX - db $3 * $40, BANK(FisherSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header FisherSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14892 FishingGuruSprite: ; 14892 - dw FishingGuruSpriteGFX - db $3 * $40, BANK(FishingGuruSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header FishingGuruSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14898 ScientistSprite: ; 14898 - dw ScientistSpriteGFX - db $3 * $40, BANK(ScientistSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header ScientistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 1489e KimonoGirlSprite: ; 1489e - dw KimonoGirlSpriteGFX - db $3 * $40, BANK(KimonoGirlSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header KimonoGirlSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 148a4 SageSprite: ; 148a4 - dw SageSpriteGFX - db $3 * $40, BANK(SageSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header SageSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148aa UnusedGuySprite: ; 148aa - dw UnusedGuySpriteGFX - db $3 * $40, BANK(UnusedGuySpriteGFX) - db STANDING_SPRITE, PAL_OW_RED + sprite_header UnusedGuySpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED ; 148b0 GentlemanSprite: ; 148b0 - dw GentlemanSpriteGFX - db $3 * $40, BANK(GentlemanSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header GentlemanSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148b6 BlackBeltSprite: ; 148b6 - dw BlackBeltSpriteGFX - db $3 * $40, BANK(BlackBeltSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header BlackBeltSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148bc ReceptionistSprite: ; 148bc - dw ReceptionistSpriteGFX - db $3 * $40, BANK(ReceptionistSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header ReceptionistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148c2 OfficerSprite: ; 148c2 - dw OfficerSpriteGFX - db $3 * $40, BANK(OfficerSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header OfficerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148c8 CalSprite: ; 148c8 - dw CalSpriteGFX - db $3 * $40, BANK(CalSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header CalSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148ce SlowpokeSprite: ; 148ce - dw SlowpokeSpriteGFX - db $1 * $40, BANK(SlowpokeSpriteGFX) - db STILL_SPRITE, PAL_OW_RED + sprite_header SlowpokeSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 148d4 CaptainSprite: ; 148d4 - dw CaptainSpriteGFX - db $3 * $40, BANK(CaptainSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header CaptainSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148da BigLaprasSprite: ; 148da - dw BigLaprasSpriteGFX - db $3 * $40, BANK(BigLaprasSpriteGFX) - db STANDING_SPRITE, PAL_OW_BLUE + sprite_header BigLaprasSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE ; 148e0 GymGuySprite: ; 148e0 - dw GymGuySpriteGFX - db $3 * $40, BANK(GymGuySpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header GymGuySpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148e6 SailorSprite: ; 148e6 - dw SailorSpriteGFX - db $3 * $40, BANK(SailorSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header SailorSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148ec BikerSprite: ; 148ec - dw BikerSpriteGFX - db $3 * $40, BANK(BikerSpriteGFX) - db WALKING_SPRITE, PAL_OW_BROWN + sprite_header BikerSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BROWN ; 148f2 PharmacistSprite: ; 148f2 - dw PharmacistSpriteGFX - db $3 * $40, BANK(PharmacistSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header PharmacistSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 148f8 MonsterSprite: ; 148f8 - dw MonsterSpriteGFX - db $3 * $40, BANK(MonsterSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header MonsterSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 148fe FairySprite: ; 148fe - dw FairySpriteGFX - db $3 * $40, BANK(FairySpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header FairySpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14904 BirdSprite: ; 14904 - dw BirdSpriteGFX - db $3 * $40, BANK(BirdSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header BirdSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 1490a DragonSprite: ; 1490a - dw DragonSpriteGFX - db $3 * $40, BANK(DragonSpriteGFX) - db WALKING_SPRITE, PAL_OW_RED + sprite_header DragonSpriteGFX, 3, WALKING_SPRITE, PAL_OW_RED ; 14910 BigOnixSprite: ; 14910 - dw BigOnixSpriteGFX - db $3 * $40, BANK(BigOnixSpriteGFX) - db STANDING_SPRITE, PAL_OW_BROWN + sprite_header BigOnixSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN ; 14916 N64Sprite: ; 14916 - dw N64SpriteGFX - db $1 * $40, BANK(N64SpriteGFX) - db STILL_SPRITE, PAL_OW_BROWN + sprite_header N64SpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN ; 1491c SudowoodoSprite: ; 1491c - dw SudowoodoSpriteGFX - db $3 * $40, BANK(SudowoodoSpriteGFX) - db STANDING_SPRITE, PAL_OW_GREEN + sprite_header SudowoodoSpriteGFX, 3, STANDING_SPRITE, PAL_OW_GREEN ; 14922 SurfSprite: ; 14922 - dw SurfSpriteGFX - db $3 * $40, BANK(SurfSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header SurfSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14928 PokeBallSprite: ; 14928 - dw PokeBallSpriteGFX - db $1 * $40, BANK(PokeBallSpriteGFX) - db STILL_SPRITE, PAL_OW_RED + sprite_header PokeBallSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 1492e PokedexSprite: ; 1492e - dw PokedexSpriteGFX - db $1 * $40, BANK(PokedexSpriteGFX) - db STILL_SPRITE, PAL_OW_BROWN + sprite_header PokedexSpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN ; 14934 PaperSprite: ; 14934 - dw PaperSpriteGFX - db $1 * $40, BANK(PaperSpriteGFX) - db STILL_SPRITE, PAL_OW_BLUE + sprite_header PaperSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE ; 1493a VirtualBoySprite: ; 1493a - dw VirtualBoySpriteGFX - db $1 * $40, BANK(VirtualBoySpriteGFX) - db STILL_SPRITE, PAL_OW_RED + sprite_header VirtualBoySpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 14940 OldLinkReceptionistSprite: ; 14940 - dw OldLinkReceptionistSpriteGFX - db $3 * $40, BANK(OldLinkReceptionistSpriteGFX) - db STANDING_SPRITE, PAL_OW_RED + sprite_header OldLinkReceptionistSpriteGFX, 3, STANDING_SPRITE, PAL_OW_RED ; 14946 RockSprite: ; 14946 - dw RockSpriteGFX - db $1 * $40, BANK(RockSpriteGFX) - db STILL_SPRITE, PAL_OW_ROCK + sprite_header RockSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK ; 1494c BoulderSprite: ; 1494c - dw BoulderSpriteGFX - db $1 * $40, BANK(BoulderSpriteGFX) - db STILL_SPRITE, PAL_OW_ROCK + sprite_header BoulderSpriteGFX, 1, STILL_SPRITE, PAL_OW_ROCK ; 14952 SnesSprite: ; 14952 - dw SnesSpriteGFX - db $1 * $40, BANK(SnesSpriteGFX) - db STILL_SPRITE, PAL_OW_BLUE + sprite_header SnesSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE ; 14958 FamicomSprite: ; 14958 - dw FamicomSpriteGFX - db $1 * $40, BANK(FamicomSpriteGFX) - db STILL_SPRITE, PAL_OW_RED + sprite_header FamicomSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 1495e FruitTreeSprite: ; 1495e - dw FruitTreeSpriteGFX - db $1 * $40, BANK(FruitTreeSpriteGFX) - db STILL_SPRITE, PAL_OW_TREE + sprite_header FruitTreeSpriteGFX, 1, STILL_SPRITE, PAL_OW_TREE ; 14964 GoldTrophySprite: ; 14964 - dw GoldTrophySpriteGFX - db $1 * $40, BANK(GoldTrophySpriteGFX) - db STILL_SPRITE, PAL_OW_BROWN + sprite_header GoldTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_BROWN ; 1496a SilverTrophySprite: ; 1496a - dw SilverTrophySpriteGFX - db $1 * $40, BANK(SilverTrophySpriteGFX) - db STILL_SPRITE, PAL_OW_SILVER + sprite_header SilverTrophySpriteGFX, 1, STILL_SPRITE, PAL_OW_SILVER ; 14970 KrisSprite: ; 14970 - dw KrisSpriteGFX - db $3 * $40, BANK(KrisSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header KrisSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 14976 KrisBikeSprite: ; 14976 - dw KrisBikeSpriteGFX - db $3 * $40, BANK(KrisBikeSpriteGFX) - db WALKING_SPRITE, PAL_OW_BLUE + sprite_header KrisBikeSpriteGFX, 3, WALKING_SPRITE, PAL_OW_BLUE ; 1497c KurtOutsideSprite: ; 1497c - dw KurtOutsideSpriteGFX - db $3 * $40, BANK(KurtOutsideSpriteGFX) - db STANDING_SPRITE, PAL_OW_BROWN + sprite_header KurtOutsideSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BROWN ; 14982 SuicuneSprite: ; 14982 - dw SuicuneSpriteGFX - db $1 * $40, BANK(SuicuneSpriteGFX) - db STILL_SPRITE, PAL_OW_BLUE + sprite_header SuicuneSpriteGFX, 1, STILL_SPRITE, PAL_OW_BLUE ; 14988 EnteiSprite: ; 14988 - dw EnteiSpriteGFX - db $1 * $40, BANK(EnteiSpriteGFX) - db STILL_SPRITE, PAL_OW_RED + sprite_header EnteiSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 1498e RaikouSprite: ; 1498e - dw RaikouSpriteGFX - db $1 * $40, BANK(RaikouSpriteGFX) - db STILL_SPRITE, PAL_OW_RED + sprite_header RaikouSpriteGFX, 1, STILL_SPRITE, PAL_OW_RED ; 14994 StandingYoungsterSprite: ; 14994 - dw StandingYoungsterSpriteGFX - db $3 * $40, BANK(StandingYoungsterSpriteGFX) - db STANDING_SPRITE, PAL_OW_BLUE + sprite_header StandingYoungsterSpriteGFX, 3, STANDING_SPRITE, PAL_OW_BLUE ; 1499a diff --git a/main.asm b/main.asm index 1dc2a87b8..ef38086e4 100644 --- a/main.asm +++ b/main.asm @@ -16193,26 +16193,26 @@ Function14135:: ; 14135 ; 14146 Function14146: ; 14146 - ld hl, wd13e + ld hl, wSpriteFlags ld a, [hl] push af res 7, [hl] set 6, [hl] call RunCallback_04 pop af - ld [wd13e], a + ld [wSpriteFlags], a ret ; 14157 Function14157: ; 14157 - ld hl, wd13e + ld hl, wSpriteFlags ld a, [hl] push af set 7, [hl] res 6, [hl] call RunCallback_04 pop af - ld [wd13e], a + ld [wSpriteFlags], a ret ; 14168 @@ -16225,7 +16225,7 @@ Function14168:: ; 14168 Function1416f: ; 1416f xor a - ld bc, $0040 + ld bc, UsedSpritesEnd - UsedSprites ld hl, UsedSprites call ByteFill call GetPlayerSprite @@ -16254,7 +16254,7 @@ GetPlayerSprite: ; 14183 .loop ld a, [hli] cp c - jr z, .asm_141ac + jr z, .good inc hl cp $ff jr nz, .loop @@ -16263,15 +16263,15 @@ GetPlayerSprite: ; 14183 xor a ; ld a, PLAYER_NORMAL ld [PlayerState], a ld a, SPRITE_CHRIS - jr .asm_141ad + jr .finish -.asm_141ac +.good ld a, [hl] -.asm_141ad +.finish ld [UsedSprites + 0], a - ld [PlayerStruct + 0], a - ld [MapObjects + OBJECT_LENGTH * 0 + 1], a + ld [PlayerSprite], a + ld [MapObjects + OBJECT_LENGTH * PLAYER_OBJECT + MAPOBJECT_SPRITE], a ret .Chris @@ -16303,7 +16303,7 @@ AddMapSprites: ; 141c9 AddIndoorSprites: ; 141d9 - ld hl, MapObjects + 1 * OBJECT_LENGTH + 1 ; sprite + ld hl, MapObjects + 1 * OBJECT_LENGTH + MAPOBJECT_SPRITE ; sprite ld a, 1 .loop push af @@ -16352,7 +16352,7 @@ RunCallback_04: ; 14209 ; 14215 Function14215: ; 14215 - ld a, [wd13e] + ld a, [wSpriteFlags] bit 6, a ret nz ld c, $8 @@ -16755,9 +16755,9 @@ Function1439b: ; 1439b ld hl, UsedSprites ld c, SPRITE_GFX_LIST_CAPACITY .loop - ld a, [wd13e] + ld a, [wSpriteFlags] res 5, a - ld [wd13e], a + ld [wSpriteFlags], a ld a, [hli] and a jr z, .done @@ -16766,9 +16766,9 @@ Function1439b: ; 1439b ld [hUsedSpriteTile], a bit 7, a jr z, .dont_set - ld a, [wd13e] + ld a, [wSpriteFlags] set 5, a - ld [wd13e], a + ld [wSpriteFlags], a .dont_set push bc @@ -16791,7 +16791,7 @@ Function143c8: ; 143c8 push hl push de push bc - ld a, [wd13e] + ld a, [wSpriteFlags] bit 7, a jr nz, .asm_143df call Function14418 @@ -16808,7 +16808,7 @@ endr ld d, h ld e, l pop hl - ld a, [wd13e] + ld a, [wSpriteFlags] bit 5, a jr nz, .asm_14405 bit 6, a @@ -16845,7 +16845,7 @@ endr Function14418: ; 14418 ld a, [rVBK] push af - ld a, [wd13e] + ld a, [wSpriteFlags] bit 5, a ld a, $1 jr z, .asm_14426 @@ -16889,59 +16889,29 @@ LoadEmote:: ; 1442f ret ; 1444d +emote_header: MACRO + dw \1 + db \2 * $10, BANK(\1) + dw \3 +ENDM + EmotesPointers: ; 144d ; dw source address ; db length, bank ; dw dest address - dw ShockEmote - db 4 * $10, BANK(ShockEmote) - dw VTiles1 tile $78 - - dw QuestionEmote - db 4 * $10, BANK(QuestionEmote) - dw VTiles1 tile $78 - - dw HappyEmote - db 4 * $10, BANK(HappyEmote) - dw VTiles1 tile $78 - - dw SadEmote - db 4 * $10, BANK(SadEmote) - dw VTiles1 tile $78 - - dw HeartEmote - db 4 * $10, BANK(HeartEmote) - dw VTiles1 tile $78 - - dw BoltEmote - db 4 * $10, BANK(BoltEmote) - dw VTiles1 tile $78 - - dw SleepEmote - db 4 * $10, BANK(SleepEmote) - dw VTiles1 tile $78 - - dw FishEmote - db 4 * $10, BANK(FishEmote) - dw VTiles1 tile $78 - - dw FishingRodGFX + $00 - db 1 * $10, BANK(FishingRodGFX) - dw VTiles1 tile $7c - - dw FishingRodGFX + $10 - db 2 * $10, BANK(FishingRodGFX) - dw VTiles1 tile $7c - - dw FishingRodGFX + $30 - db 2 * $10, BANK(FishingRodGFX) - dw VTiles1 tile $7e - - dw FishingRodGFX + $50 - db 1 * $10, BANK(FishingRodGFX) - dw VTiles1 tile $7e - + emote_header ShockEmote, 4, VTiles1 tile $78 + emote_header QuestionEmote, 4, VTiles1 tile $78 + emote_header HappyEmote, 4, VTiles1 tile $78 + emote_header SadEmote, 4, VTiles1 tile $78 + emote_header HeartEmote, 4, VTiles1 tile $78 + emote_header BoltEmote, 4, VTiles1 tile $78 + emote_header SleepEmote, 4, VTiles1 tile $78 + emote_header FishEmote, 4, VTiles1 tile $78 + emote_header FishingRodGFX1, 1, VTiles1 tile $7c + emote_header FishingRodGFX2, 2, VTiles1 tile $7c + emote_header FishingRodGFX3, 2, VTiles1 tile $7e + emote_header FishingRodGFX4, 1, VTiles1 tile $7e ; 14495 @@ -78058,7 +78028,10 @@ HeartEmote: INCBIN "gfx/emotes/heart.2bpp" BoltEmote: INCBIN "gfx/emotes/bolt.2bpp" SleepEmote: INCBIN "gfx/emotes/sleep.2bpp" FishEmote: INCBIN "gfx/emotes/fish.2bpp" -FishingRodGFX: INCBIN "gfx/misc/fishing.2bpp" +FishingRodGFX1: INCBIN "gfx/misc/fishing1.2bpp" +FishingRodGFX2: INCBIN "gfx/misc/fishing2.2bpp" +FishingRodGFX3: INCBIN "gfx/misc/fishing3.2bpp" +FishingRodGFX4: INCBIN "gfx/misc/fishing4.2bpp" RunCallback_05_03: ; 1045b0 diff --git a/wram.asm b/wram.asm index 0cb0e5ce2..8ec526bbd 100644 --- a/wram.asm +++ b/wram.asm @@ -1568,7 +1568,7 @@ wd10e:: TempMon:: party_struct TempMon -wd13e:: ds 1 +wSpriteFlags:: ds 1 wd13f:: ds 2 -- cgit v1.2.3 From 40eae001a168502782338340db9f47216ae850f4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 3 Nov 2015 09:45:25 -0500 Subject: Status strings --- battle/core.asm | 4 ++-- engine/predef.asm | 4 ++-- main.asm | 30 +++++++++++++++--------------- 3 files changed, 19 insertions(+), 19 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index f42fe3c55..d136b33e2 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -4945,7 +4945,7 @@ PrintPlayerHUD: ; 3dfbf push af push hl ld de, BattleMonStatus - predef Function50d2e + predef PlaceNonFaintStatus pop hl pop bc ret nz @@ -5024,7 +5024,7 @@ DrawEnemyHUD: ; 3e043 push af push hl ld de, EnemyMonStatus - predef Function50d2e + predef PlaceNonFaintStatus pop hl pop bc jr nz, .asm_3e0be diff --git a/engine/predef.asm b/engine/predef.asm index 9fa26875a..8f6a17779 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -63,7 +63,7 @@ PredefPointers:: ; 856b add_predef Function28f24 add_predef CopyPkmnToTempMon add_predef ListMoves ; $20 - add_predef Function50d2e + add_predef PlaceNonFaintStatus add_predef Function50cdb add_predef Function50c50 add_predef GetGender @@ -99,7 +99,7 @@ PredefPointers:: ; 856b add_predef ConvertMon_1to2 add_predef Functionfb877 add_predef Functiond0000 - add_predef Function50d0a + add_predef PlaceStatusString add_predef Functiond00a3 add_predef Functiond008e add_predef Functiond0669 ; $48 diff --git a/main.asm b/main.asm index ef38086e4..52279f048 100644 --- a/main.asm +++ b/main.asm @@ -44486,7 +44486,7 @@ Function4e013: ; 4e013 (13:6013) hlcoord 6, 13 push hl ld de, TempMonStatus - predef Function50d0a + predef PlaceStatusString pop hl jr nz, .asm_4e066 jr .asm_4e060 @@ -46219,7 +46219,7 @@ Function501b2: ; 501b2 ld e, l ld d, h pop hl - call Function50d0a + call PlaceStatusString .asm_501d5 pop hl @@ -47916,7 +47916,7 @@ Function50cdb: ; 50cdb ; 50d0a -Function50d0a: ; 50d0a +PlaceStatusString: ; 50d0a push de rept 2 inc de @@ -47927,10 +47927,10 @@ endr ld a, [de] or b pop de - jr nz, Function50d2e + jr nz, PlaceNonFaintStatus push de ld de, FntString - call Function50d25 + call CopyStatusString pop de ld a, $1 and a @@ -47941,7 +47941,7 @@ FntString: ; 50d22 db "FNT@" ; 50d25 -Function50d25: ; 50d25 +CopyStatusString: ; 50d25 ld a, [de] inc de ld [hli], a @@ -47953,31 +47953,31 @@ Function50d25: ; 50d25 ret ; 50d2e -Function50d2e: ; 50d2e +PlaceNonFaintStatus: ; 50d2e push de ld a, [de] ld de, PsnString bit PSN, a - jr nz, .asm_50d53 + jr nz, .place ld de, BrnString bit BRN, a - jr nz, .asm_50d53 + jr nz, .place ld de, FrzString bit FRZ, a - jr nz, .asm_50d53 + jr nz, .place ld de, ParString bit PAR, a - jr nz, .asm_50d53 + jr nz, .place ld de, SlpString and SLP - jr z, .asm_50d59 + jr z, .no_status -.asm_50d53 - call Function50d25 +.place + call CopyStatusString ld a, $1 and a -.asm_50d59 +.no_status pop de ret ; 50d5b -- cgit v1.2.3 From b1dc88b7281e0486cb952c8f8c62dab705eb4b9d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 3 Nov 2015 12:36:33 -0500 Subject: Experience and level calculations --- battle/core.asm | 12 ++--- engine/pack.asm | 10 ++-- gfx/overworld/sprite_headers.asm | 2 +- items/item_effects.asm | 2 +- macros.asm | 1 + main.asm | 110 ++++++++++++++++++++------------------- 6 files changed, 71 insertions(+), 66 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index d136b33e2..e828485c3 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -7543,7 +7543,7 @@ endr call GetBaseData push bc ld d, MAX_LEVEL - callab Function50e47 + callab CalcExpAtLevel pop bc ld hl, $000a add hl, bc @@ -7572,7 +7572,7 @@ endr xor a ; PARTYMON ld [MonType], a predef CopyPkmnToTempMon - callab Function50e1b + callab CalcLevel pop bc ld hl, PartyMon1Level - PartyMon1 add hl, bc @@ -7864,7 +7864,7 @@ endr .asm_3f186 ld d, MAX_LEVEL - callab Function50e47 + callab CalcExpAtLevel ld a, [hMultiplicand] ld b, a ld a, [$ffb5] @@ -7887,7 +7887,7 @@ endr ld [hld], a .asm_3f1a8 - callab Function50e1b + callab CalcLevel ld a, d pop bc pop de @@ -8235,7 +8235,7 @@ Function3f39c: ; 3f39c push de ld d, b push de - callab Function50e47 + callab CalcExpAtLevel pop de ld hl, hMultiplicand ld a, [hli] @@ -8245,7 +8245,7 @@ Function3f39c: ; 3f39c ld a, [hl] push af inc d - callab Function50e47 + callab CalcExpAtLevel ld hl, $ffb6 ld a, [hl] ld [$ffba], a diff --git a/engine/pack.asm b/engine/pack.asm index b753d6ade..d62323efc 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -1407,11 +1407,11 @@ Function10955: ; 10955 call DisableLCD ld hl, PackMenuGFX ld de, VTiles2 - ld bc, $0600 + ld bc, $60 tiles ld a, BANK(PackMenuGFX) call FarCopyBytes hlcoord 0, 1 - ld bc, 220 + ld bc, 11 * SCREEN_WIDTH ld a, $24 call ByteFill hlcoord 5, 1 @@ -1419,12 +1419,12 @@ Function10955: ; 10955 call ClearBox hlcoord 0, 0 ld a, $28 - ld c, $14 -.asm_1098a + ld c, SCREEN_WIDTH +.loop ld [hli], a inc a dec c - jr nz, .asm_1098a + jr nz, .loop call DrawPocketName call Function109a5 hlcoord 0, 12 diff --git a/gfx/overworld/sprite_headers.asm b/gfx/overworld/sprite_headers.asm index 8e99a24f3..94b6fd691 100644 --- a/gfx/overworld/sprite_headers.asm +++ b/gfx/overworld/sprite_headers.asm @@ -5,7 +5,7 @@ sprite_header: MACRO dw \1 - db \2 * $40, BANK(\1) + db \2 * 4 tiles, BANK(\1) db \3, \4 ENDM diff --git a/items/item_effects.asm b/items/item_effects.asm index f7eeffce5..5df6a1a6c 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -1382,7 +1382,7 @@ RareCandy: ; ef14 ld [CurPartyLevel], a push de ld d, a - callba Function50e47 + callba CalcExpAtLevel pop de ld a, PartyMon1Exp - PartyMon1 diff --git a/macros.asm b/macros.asm index 68436697f..10cb99264 100644 --- a/macros.asm +++ b/macros.asm @@ -175,4 +175,5 @@ bcd: MACRO endr ENDM +tiles EQUS "* $10" tile EQUS "+ $10 *" diff --git a/main.asm b/main.asm index 52279f048..5d4711ec7 100644 --- a/main.asm +++ b/main.asm @@ -8068,7 +8068,7 @@ endr push de ld a, [CurPartyLevel] ld d, a - callab Function50e47 + callab CalcExpAtLevel pop de ld a, [hMultiplicand] ld [de], a @@ -8527,7 +8527,7 @@ SentGetPkmnIntoFromBox: ; db3f add $2 ld [MonType], a predef CopyPkmnToTempMon - callab Function50e1b + callab CalcLevel ld a, d ld [CurPartyLevel], a pop hl @@ -8777,7 +8777,7 @@ Functiondd64: ; dd64 callba HealPartyMon ld a, [CurPartyLevel] ld d, a - callab Function50e47 + callab CalcExpAtLevel pop bc ld hl, $0008 add hl, bc @@ -8892,7 +8892,7 @@ SentPkmnIntoBox: ; de6e push de ld a, [CurPartyLevel] ld d, a - callab Function50e47 + callab CalcExpAtLevel pop de ld a, [hMultiplicand] ld [de], a @@ -10134,7 +10134,7 @@ Functione698: ; e698 ld de, TempMon ld bc, $0020 call CopyBytes - callab Function50e1b + callab CalcLevel ld a, [wBreedMon1Level] ld b, a ld a, d @@ -10149,7 +10149,7 @@ Functione6b3: ; e6b3 ld de, TempMon ld bc, $0020 call CopyBytes - callab Function50e1b + callab CalcLevel ld a, [wBreedMon2Level] ld b, a ld a, d @@ -16891,7 +16891,7 @@ LoadEmote:: ; 1442f emote_header: MACRO dw \1 - db \2 * $10, BANK(\1) + db \2 tiles, BANK(\1) dw \3 ENDM @@ -20345,7 +20345,7 @@ Function16a66: ; 16a66 ld [hl], a ld a, [CurPartyLevel] ld d, a - callab Function50e47 + callab CalcExpAtLevel ld hl, wEggMonExp ld a, [hMultiplicand] ld [hli], a @@ -44560,7 +44560,7 @@ Function4e0e7: ; 4e0e7 (13:60e7) jr z, .asm_4e111 inc a ld d, a - callba Function50e47 + callba CalcExpAtLevel rept 2 ld hl, TempMonExp + 2 endr @@ -48102,43 +48102,43 @@ Function50db9: ; 50db9 ; 50e1b -Function50e1b: ; 50e1b +CalcLevel: ; 50e1b ld a, [TempMonSpecies] ld [CurSpecies], a call GetBaseData ld d, 1 -.asm_50e26 +.next_level inc d ld a, d cp (MAX_LEVEL + 1) % $100 - jr z, .asm_50e45 - call Function50e47 + jr z, .got_level + call CalcExpAtLevel push hl ld hl, TempMonExp + 2 - ld a, [hMultiplicand + 2] + ld a, [hProduct + 3] ld c, a ld a, [hld] sub c - ld a, [hMultiplicand + 1] + ld a, [hProduct + 2] ld c, a ld a, [hld] sbc c - ld a, [hMultiplicand + 0] + ld a, [hProduct + 1] ld c, a ld a, [hl] sbc c pop hl - jr nc, .asm_50e26 + jr nc, .next_level -.asm_50e45 +.got_level dec d ret ; 50e47 -Function50e47: ; 50e47 - +CalcExpAtLevel: ; 50e47 +; (a/b)*n**3 + c*n**2 + d*n - e ld a, [BaseGrowthRate] rept 2 add a @@ -48147,36 +48147,38 @@ endr ld b, 0 ld hl, GrowthRates add hl, bc - call Function50eed +; Cube the level + call .LevelSquared ld a, d ld [hMultiplier], a call Multiply +; Multiply by a ld a, [hl] and $f0 swap a ld [hMultiplier], a call Multiply - +; Divide by b ld a, [hli] and $f ld [hDivisor], a - ld b, $4 + ld b, 4 call Divide - +; Push the cubic term to the stack ld a, [hQuotient + 0] push af ld a, [hQuotient + 1] push af ld a, [hQuotient + 2] push af - - call Function50eed +; Square the level and multiply by the lower 7 bits of c + call .LevelSquared ld a, [hl] and $7f ld [hMultiplier], a call Multiply - +; Push the absolute value of the quadratic term to the stack ld a, [hProduct + 1] push af ld a, [hProduct + 2] @@ -48185,7 +48187,7 @@ endr push af ld a, [hli] push af - +; Multiply the level by d xor a ld [hMultiplicand + 0], a ld [hMultiplicand + 1], a @@ -48194,68 +48196,70 @@ endr ld a, [hli] ld [hMultiplier], a call Multiply - +; Subtract e ld b, [hl] ld a, [hProduct + 3] sub b - ld [$ffb6], a + ld [hMultiplicand + 2], a ld b, $0 ld a, [hProduct + 2] sbc b - ld [$ffb5], a + ld [hMultiplicand + 1], a ld a, [hProduct + 1] sbc b ld [hMultiplicand], a - +; If bit 7 of c is set, c is negative; otherwise, it's positive pop af and $80 - jr nz, .asm_50ec8 - + jr nz, .subtract +; Add c*n**2 to (d*n - e) pop bc - ld a, [$ffb6] + ld a, [hProduct + 3] add b - ld [$ffb6], a + ld [hMultiplicand + 2], a pop bc - ld a, [$ffb5] + ld a, [hProduct + 2] adc b - ld [$ffb5], a + ld [hMultiplicand + 1], a pop bc - ld a, [hMultiplicand] + ld a, [hProduct + 1] adc b ld [hMultiplicand], a - jr .asm_50eda + jr .done_quadratic -.asm_50ec8 +.subtract +; Subtract c*n**2 from (d*n - e) pop bc - ld a, [$ffb6] + ld a, [hProduct + 3] sub b - ld [$ffb6], a + ld [hMultiplicand + 2], a pop bc - ld a, [$ffb5] + ld a, [hProduct + 2] sbc b - ld [$ffb5], a + ld [hMultiplicand + 1], a pop bc - ld a, [hMultiplicand] + ld a, [hProduct + 1] sbc b ld [hMultiplicand], a -.asm_50eda +.done_quadratic +; Add (a/b)*n**3 to (d*n - e +/- c*n**2) pop bc - ld a, [$ffb6] + ld a, [hProduct + 3] add b - ld [$ffb6], a + ld [hMultiplicand + 2], a pop bc - ld a, [$ffb5] + ld a, [hProduct + 2] adc b - ld [$ffb5], a + ld [hMultiplicand + 1], a pop bc - ld a, [hMultiplicand] + ld a, [hProduct + 1] adc b ld [hMultiplicand], a ret ; 50eed -Function50eed: ; 50eed +.LevelSquared: ; 50eed xor a ld [hMultiplicand + 0], a ld [hMultiplicand + 1], a -- cgit v1.2.3 From 10beeb3c0611b9114a8e5ff6ab0b8c5d7716defe Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 3 Nov 2015 15:05:19 -0500 Subject: Battle Tower --- constants.asm | 1 + constants/battle_tower_constants.asm | 33 + constants/item_constants.asm | 2 +- constants/misc_constants.asm | 2 +- data/battle_tower.asm | 53 +- data/battle_tower_2.asm | 72 ++ engine/scripting.asm | 2 +- engine/specials.asm | 4 +- macros.asm | 32 + main.asm | 1082 ++++++++++++------------ maps/BattleTower1F.asm | 92 +-- maps/BattleTowerBattleRoom.asm | 48 +- maps/BattleTowerElevator.asm | 4 +- maps/GoldenrodPokeCenter1F.asm | 8 +- maps/LancesRoom.asm | 2 +- maps/Route35NationalParkgate.asm | 4 +- maps/Route36NationalParkgate.asm | 4 +- misc/battle_tower_45.asm | 1490 ++++++++++++++++++++++++++++++++++ misc/mobile_45.asm | 1490 +--------------------------------- wram.asm | 24 +- 20 files changed, 2291 insertions(+), 2158 deletions(-) create mode 100755 constants/battle_tower_constants.asm create mode 100755 data/battle_tower_2.asm create mode 100755 misc/battle_tower_45.asm diff --git a/constants.asm b/constants.asm index e0a2961d4..1d8f7d9b2 100644 --- a/constants.asm +++ b/constants.asm @@ -28,3 +28,4 @@ INCLUDE "constants/deco_constants.asm" INCLUDE "constants/radio_constants.asm" INCLUDE "constants/sprite_constants.asm" INCLUDE "constants/tilemap_constants.asm" +INCLUDE "constants/battle_tower_constants.asm" diff --git a/constants/battle_tower_constants.asm b/constants/battle_tower_constants.asm new file mode 100755 index 000000000..49311f35d --- /dev/null +++ b/constants/battle_tower_constants.asm @@ -0,0 +1,33 @@ + const_def + const BATTLE_TOWER_ACTION_00 + const BATTLE_TOWER_ACTION_01 + const BATTLE_TOWER_ACTION_02 + const BATTLE_TOWER_ACTION_03 + const BATTLE_TOWER_ACTION_04 + const BATTLE_TOWER_ACTION_05 + const BATTLE_TOWER_ACTION_06 + const BATTLE_TOWER_ACTION_07 + const BATTLE_TOWER_ACTION_08 + const BATTLE_TOWER_ACTION_09 + const BATTLE_TOWER_ACTION_0A + const BATTLE_TOWER_ACTION_0B + const BATTLE_TOWER_ACTION_0C + const BATTLE_TOWER_ACTION_0D + const BATTLE_TOWER_ACTION_0E + const BATTLE_TOWER_ACTION_0F + const BATTLE_TOWER_ACTION_10 + const BATTLE_TOWER_ACTION_11 + const BATTLE_TOWER_ACTION_12 + const BATTLE_TOWER_ACTION_13 + const BATTLE_TOWER_ACTION_14 + const BATTLE_TOWER_ACTION_15 + const BATTLE_TOWER_ACTION_16 + const BATTLE_TOWER_ACTION_17 + const BATTLE_TOWER_ACTION_18 + const BATTLE_TOWER_ACTION_19 + const BATTLE_TOWER_ACTION_1A + const BATTLE_TOWER_ACTION_1B + const BATTLE_TOWER_ACTION_1C + const BATTLE_TOWER_ACTION_1D + const BATTLE_TOWER_ACTION_1E + const BATTLE_TOWER_ACTION_1F diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 4a144515f..20b51c300 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -259,13 +259,13 @@ NUM_HMS = const_value - HM01 add_mt THUNDERBOLT add_mt ICE_BEAM +ITEM_FROM_MEM EQU $ff ; leftovers from red SAFARI_BALL EQU 8 ; MOON_STONE MOON_STONE_RED EQU 10 ; BURN_HEAL FULL_HEAL_RED EQU 52 ; X_SPEED - MAIL_MAX_LENGTH EQU $20 ; pockets diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index d8e5fc9e5..a4e89fd93 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -109,10 +109,10 @@ const_value = 1 const MOM_ITEM const MOM_DOLL -BATTLETOWER_PKMNSTRUCTLENGTH EQU $30 BATTLETOWER_NROFPKMNS EQU 3 BATTLETOWER_TRAINERDATALENGTH EQU $24 BATTLETOWER_NROFTRAINERS EQU 7 +BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7 WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY) diff --git a/data/battle_tower.asm b/data/battle_tower.asm index b0455eb10..264685d2f 100644 --- a/data/battle_tower.asm +++ b/data/battle_tower.asm @@ -1,7 +1,7 @@ Function_LoadOpponentTrainerAndPokemons: ; 1f8000 ld a, [rSVBK] push af - ld a, $3 + ld a, BANK(BT_OTrainer) ld [rSVBK], a ; Fill BT_OTrainer with zeros @@ -21,32 +21,32 @@ Function_LoadOpponentTrainerAndPokemons: ; 1f8000 ld a, [hRandomAdd] ld b, a -.asm_1f8022 ; loop to find a random trainer +.resample ; loop to find a random trainer call Random ld a, [hRandomAdd] add b ld b, a ; b contains the nr of the trainer IF DEF(CRYSTAL11) - and $7f - cp $46 + and (1 << 7) - 1 + cp 70 ELSE - and $1f - cp $15 + and (1 << 5) - 1 + cp 21 ENDC - jr nc, .asm_1f8022 + jr nc, .resample ld b, a - ld a, BANK(sNrOfBeatenBattleTowerTrainers) + ld a, BANK(sBTTrainers) call GetSRAMBank ld c, BATTLETOWER_NROFTRAINERS ld hl, sBTTrainers -.asm_1f803a +.next_trainer ld a, [hli] cp b - jr z, .asm_1f8022 + jr z, .resample dec c - jr nz, .asm_1f803a ; c <= 7 initialise all 7 trainers? + jr nz, .next_trainer ; c <= 7 initialise all 7 trainers? ld hl, sBTTrainers ld a, [sNrOfBeatenBattleTowerTrainers] @@ -61,9 +61,9 @@ ENDC push af ; Copy name (10 bytes) and class (1 byte) of trainer ld hl, BattleTowerTrainers - ld bc, 11 + ld bc, NAME_LENGTH call AddNTimes - ld bc, 11 + ld bc, NAME_LENGTH call CopyBytes call Function_LoadRandomBattleTowerPkmn @@ -73,7 +73,7 @@ ENDC ld bc, BATTLETOWER_TRAINERDATALENGTH call AddNTimes ld bc, BATTLETOWER_TRAINERDATALENGTH -.asm_1f8070 +.copy_bt_trainer_data_loop ld a, BANK(BattleTowerTrainerData) call GetFarByte ld [de], a @@ -82,7 +82,7 @@ ENDC dec bc ld a, b or c - jr nz, .asm_1f8070 + jr nz, .copy_bt_trainer_data_loop pop af ld [rSVBK], a @@ -108,20 +108,20 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081 ld a, [hRandomAdd] ld b, a -.asm_1f8099 +.resample call Random ld a, [hRandomAdd] add b ld b, a and $1f - cp (BattleTowerMons2 - BattleTowerMons1) / ($3b) - jr nc, .asm_1f8099 + cp BATTLETOWER_NRMONSPERLEVELBRACKET + jr nc, .resample ; in register 'a' is the chosen Pkmn of the LevelGroup ; Check if Pkmn was already loaded before ; Check current and the 2 previous teams ; includes check if item is double at the current team - ld bc, BATTLETOWER_PKMNSTRUCTLENGTH + $b + ld bc, party_struct_length + PKMN_NAME_LENGTH call AddNTimes ld a, [hli] ld b, a @@ -164,17 +164,17 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081 cp b jr z, .FindARandomBattleTowerPkmn - ld bc, BATTLETOWER_PKMNSTRUCTLENGTH + $b + ld bc, party_struct_length + PKMN_NAME_LENGTH call CopyBytes - ld a, [wd265] + ld a, [wNamedObjectIndexBuffer] push af push de - ld hl, - (BATTLETOWER_PKMNSTRUCTLENGTH + $b) + ld hl, - (party_struct_length + PKMN_NAME_LENGTH) add hl, de ld a, [hl] - ld [wd265], a - ld bc, BATTLETOWER_PKMNSTRUCTLENGTH + ld [wNamedObjectIndexBuffer], a + ld bc, party_struct_length add hl, bc push hl call GetPokemonName @@ -186,7 +186,7 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081 pop de pop af - ld [wd265], a + ld [wNamedObjectIndexBuffer], a pop bc dec c jp nz, .loop @@ -229,6 +229,7 @@ BattleTowerTrainers: ; 1f814e db "KAUFMAN@@@", SWIMMERM db "LANCASTER@", SKIER db "McMAHILL@@", CAMPER +; The following can only be sampled in Crystal 1.1. db "OBRIEN@@@@", GENTLEMAN db "FROST@@@@@", BEAUTY db "MORSE@@@@@", SUPER_NERD @@ -282,7 +283,7 @@ BattleTowerTrainers: ; 1f814e BattleTowerMons: ; 1f8450 - +; 10 groups of 21 mons. BattleTowerMons1: db JOLTEON diff --git a/data/battle_tower_2.asm b/data/battle_tower_2.asm new file mode 100755 index 000000000..8d6e6d59d --- /dev/null +++ b/data/battle_tower_2.asm @@ -0,0 +1,72 @@ +BattleTowerTrainerData:: ; What exactly it is, I don't know +; Size is 70 (Nr of Trainers in BattleTower) * 0x24 (Nr of Bytes that are copied) + db $37, $03, $0e, $09, $25, $0b, $1c, $0d, $12, $0d, $00, $05, $0e, $09, $1a, $0b, $30, $04, $3f, $06, $20, $04, $21, $0d, $0e, $09, $30, $04, $20, $04, $0b, $06, $34, $03, $06, $05 + db $36, $03, $ca, $00, $22, $08, $20, $04, $33, $0d, $11, $0d, $37, $05, $06, $05, $3f, $06, $ca, $00, $20, $04, $06, $0d, $ca, $00, $21, $03, $09, $06, $12, $04, $28, $0b, $0c, $0d + db $32, $06, $31, $04, $02, $02, $03, $04, $22, $02, $00, $05, $40, $04, $2d, $06, $13, $0d, $18, $03, $3f, $04, $13, $0d, $1a, $0c, $33, $04, $32, $0d, $09, $06, $22, $02, $13, $0d + db $22, $0c, $22, $0c, $0a, $09, $0b, $08, $2f, $06, $22, $07, $22, $06, $2c, $04, $1a, $06, $0d, $07, $3f, $0d, $00, $05, $0b, $08, $09, $06, $2c, $04, $1f, $0e, $1c, $0b, $41, $0b + db $a3, $00, $41, $03, $1f, $04, $29, $00, $1c, $04, $03, $02, $3d, $05, $38, $06, $71, $00, $18, $03, $30, $06, $53, $00, $1e, $05, $b9, $00, $21, $0d, $30, $06, $d1, $00, $0a, $06 + db $13, $02, $31, $06, $04, $02, $1c, $04, $0d, $0d, $31, $0d, $39, $07, $31, $06, $24, $07, $3d, $04, $40, $04, $30, $0d, $03, $06, $08, $05, $02, $05, $14, $07, $08, $05, $1a, $0d + db $0d, $02, $07, $02, $00, $05, $22, $02, $10, $0b, $0a, $0d, $16, $02, $01, $02, $08, $0d, $2c, $04, $23, $07, $23, $0d, $16, $02, $01, $02, $08, $0d, $02, $03, $20, $04, $23, $0d + db $1e, $02, $22, $02, $00, $05, $20, $08, $2c, $04, $03, $02, $1d, $05, $41, $08, $41, $08, $35, $05, $40, $0b, $00, $05, $0b, $05, $0b, $02, $00, $05, $04, $04, $14, $08, $00, $05 + db $06, $0c, $09, $06, $00, $00, $0b, $09, $1e, $0c, $37, $0d, $41, $03, $06, $04, $34, $06, $22, $0c, $15, $09, $23, $0d, $02, $03, $22, $08, $41, $0d, $26, $04, $31, $0d, $01, $05 + db $22, $0c, $30, $04, $01, $05, $2c, $04, $23, $07, $01, $05, $37, $03, $3d, $04, $3c, $0d, $1c, $03, $29, $08, $3c, $0d, $18, $04, $30, $0d, $06, $05, $14, $07, $30, $0d, $06, $05 + db $0e, $06, $04, $05, $2c, $04, $1e, $0c, $38, $0d, $00, $05, $3f, $03, $3f, $06, $20, $04, $33, $0d, $04, $0d, $00, $00, $20, $04, $26, $0d, $04, $05, $0c, $04, $26, $0d, $04, $05 + db $18, $02, $33, $03, $28, $04, $2c, $04, $09, $07, $03, $05, $30, $04, $08, $09, $00, $05, $1a, $02, $32, $03, $00, $05, $3f, $05, $26, $07, $01, $05, $26, $05, $0f, $02, $00, $05 + db $3a, $0b, $3a, $0b, $00, $05, $42, $03, $19, $08, $30, $04, $39, $03, $13, $06, $13, $06, $19, $08, $21, $0d, $00, $00, $39, $03, $09, $02, $00, $05, $40, $03, $3a, $08, $2a, $0d + db $31, $05, $11, $0e, $30, $04, $1b, $08, $07, $08, $0c, $0d, $1b, $02, $1b, $02, $01, $05, $15, $02, $0a, $04, $0e, $0d, $22, $05, $31, $06, $02, $05, $1d, $06, $3b, $07, $0e, $0d + db $1b, $02, $2c, $04, $0d, $0d, $34, $03, $00, $03, $11, $0d, $1b, $08, $31, $04, $0b, $0d, $2f, $08, $01, $05, $00, $00, $06, $05, $10, $05, $0f, $06, $11, $0d, $06, $05, $00, $00 + db $42, $03, $30, $04, $1f, $0b, $16, $0e, $10, $07, $34, $0d, $17, $0e, $04, $0d, $00, $00, $42, $03, $19, $08, $30, $04, $0c, $05, $35, $05, $01, $05, $1e, $06, $36, $08, $41, $0d + db $18, $03, $42, $03, $43, $04, $3a, $0b, $3b, $0b, $03, $05, $2c, $05, $06, $05, $1b, $03, $43, $04, $39, $0b, $3c, $04, $14, $0b, $0f, $05, $06, $05, $40, $03, $3f, $04, $20, $0e + db $0c, $05, $36, $07, $30, $04, $27, $0b, $10, $08, $31, $0d, $11, $0e, $30, $04, $41, $03, $07, $0d, $2f, $08, $03, $05, $06, $05, $3f, $06, $11, $0e, $30, $04, $30, $07, $06, $05 + db $36, $03, $06, $06, $44, $04, $0b, $0e, $16, $0d, $00, $05, $32, $0d, $08, $06, $09, $0e, $44, $04, $09, $08, $22, $0d, $04, $0e, $09, $0e, $44, $04, $29, $08, $05, $0d, $00, $00 + db $3f, $06, $2c, $04, $34, $0d, $14, $05, $13, $02, $04, $02, $0c, $05, $3f, $04, $38, $0d, $02, $03, $29, $08, $32, $0d, $35, $05, $15, $06, $40, $05, $02, $03, $34, $07, $04, $0d + db $12, $03, $02, $04, $07, $07, $28, $04, $2c, $0d, $00, $05, $2c, $03, $12, $03, $2b, $06, $0a, $04, $06, $0d, $31, $0d, $2c, $03, $12, $03, $06, $04, $0d, $06, $28, $0b, $02, $05 + db $41, $04, $3c, $0b, $34, $0d, $40, $03, $00, $03, $0d, $0d, $13, $0c, $33, $08, $31, $0d, $1e, $09, $27, $07, $3b, $0d, $22, $08, $15, $04, $11, $0d, $2c, $03, $0c, $04, $3b, $0d + db $03, $0a, $3a, $0d, $2c, $04, $1c, $0b, $35, $07, $26, $0d, $24, $09, $43, $04, $26, $0d, $0f, $03, $1f, $07, $04, $05, $02, $03, $24, $08, $26, $0d, $3f, $03, $13, $04, $04, $05 + db $06, $05, $06, $05, $06, $05, $06, $05, $2c, $04, $03, $05, $06, $05, $06, $05, $06, $05, $06, $05, $07, $04, $03, $05, $06, $05, $06, $05, $06, $05, $06, $05, $33, $04, $03, $05 + db $27, $05, $01, $05, $00, $00, $18, $04, $19, $0d, $01, $05, $41, $05, $00, $00, $00, $00, $16, $06, $3d, $04, $19, $0d, $20, $04, $05, $05, $00, $00, $21, $03, $0c, $04, $19, $0d + db $03, $02, $43, $03, $27, $04, $28, $04, $2d, $0d, $00, $05, $30, $05, $04, $05, $02, $03, $38, $06, $3e, $04, $41, $0d, $16, $0e, $04, $05, $02, $03, $38, $06, $20, $04, $41, $0d + db $34, $03, $00, $03, $11, $0d, $03, $04, $1c, $0b, $07, $0d, $29, $05, $00, $05, $00, $00, $40, $04, $11, $0d, $3e, $0d, $03, $06, $11, $0d, $00, $05, $16, $0e, $0d, $06, $20, $06 + db $19, $03, $17, $0b, $20, $06, $1b, $0b, $06, $0c, $1a, $0b, $34, $03, $06, $04, $20, $06, $1b, $0b, $06, $0c, $1a, $0b, $34, $03, $36, $04, $20, $06, $1b, $0b, $06, $0c, $1a, $0b + db $0a, $03, $0c, $0c, $25, $0a, $21, $0e, $2c, $04, $03, $02, $10, $09, $03, $08, $09, $06, $0a, $03, $31, $04, $16, $0d, $27, $05, $17, $07, $04, $05, $02, $0c, $0a, $09, $2f, $0d + db $15, $02, $2c, $04, $03, $02, $24, $04, $39, $04, $0f, $0d, $1e, $02, $11, $02, $01, $05, $0d, $04, $39, $08, $05, $0d, $29, $05, $08, $02, $00, $05, $43, $03, $0c, $04, $3b, $0d + db $10, $0b, $04, $04, $00, $05, $05, $08, $21, $0d, $00, $00, $1f, $05, $01, $02, $00, $05, $18, $03, $3c, $08, $31, $0d, $02, $06, $23, $0b, $31, $03, $43, $03, $13, $07, $16, $0d + db $0f, $0e, $19, $0d, $00, $05, $0b, $0e, $2c, $04, $19, $0d, $0e, $0e, $2c, $04, $06, $05, $1f, $07, $19, $0d, $01, $05, $06, $05, $37, $03, $29, $04, $32, $0d, $19, $0d, $01, $05 + db $35, $03, $06, $04, $0d, $06, $29, $0b, $05, $0d, $00, $00, $16, $0e, $30, $04, $0b, $0d, $29, $08, $16, $0d, $00, $05, $11, $0e, $30, $04, $30, $07, $06, $05, $29, $08, $03, $05 + db $18, $04, $03, $05, $0b, $0d, $2c, $04, $1e, $0c, $01, $05, $1f, $05, $1d, $07, $1d, $07, $2c, $04, $21, $07, $01, $05, $0a, $05, $12, $02, $32, $0d, $11, $0c, $0c, $06, $1a, $0d + db $0c, $0c, $37, $03, $1a, $03, $40, $04, $23, $0b, $26, $0a, $3f, $06, $09, $04, $1b, $07, $37, $03, $22, $08, $27, $06, $04, $0e, $03, $05, $00, $00, $26, $0a, $3b, $08, $1b, $07 + db $18, $03, $1b, $08, $29, $0b, $40, $08, $32, $0d, $00, $05, $2f, $06, $29, $0b, $0b, $0d, $2f, $08, $23, $0d, $02, $0d, $35, $05, $13, $0e, $2e, $06, $22, $06, $2f, $08, $27, $06 + db $1c, $03, $02, $0e, $31, $03, $2a, $0d, $24, $0d, $00, $00, $18, $03, $0b, $0d, $30, $08, $40, $08, $04, $05, $00, $00, $1c, $05, $01, $05, $03, $03, $02, $0e, $27, $04, $34, $0d + db $33, $03, $30, $04, $2c, $04, $1c, $0b, $35, $07, $00, $05, $30, $04, $2c, $04, $20, $06, $1e, $09, $40, $06, $40, $04, $30, $04, $2c, $04, $20, $06, $1e, $09, $40, $06, $22, $07 + db $22, $0c, $22, $0c, $16, $0a, $35, $0d, $1c, $0b, $3f, $0d, $13, $05, $16, $0a, $40, $06, $23, $07, $06, $0d, $06, $05, $3f, $06, $16, $0a, $16, $0d, $37, $03, $2c, $04, $26, $07 + db $0e, $06, $05, $08, $04, $0d, $00, $00, $00, $00, $00, $00, $14, $05, $06, $05, $12, $02, $00, $00, $00, $00, $00, $00, $23, $05, $01, $06, $18, $0d, $00, $00, $00, $00, $00, $00 + db $18, $03, $27, $03, $03, $05, $20, $0b, $27, $06, $06, $05, $20, $0e, $12, $07, $2b, $0d, $2c, $03, $0e, $08, $35, $07, $37, $03, $27, $03, $03, $05, $42, $07, $2f, $08, $06, $05 + db $36, $03, $30, $04, $17, $04, $2c, $03, $0c, $04, $3b, $0d, $18, $03, $32, $07, $15, $0d, $35, $05, $0d, $07, $07, $0d, $09, $05, $06, $05, $0f, $0c, $09, $04, $07, $0d, $3b, $0d + db $0b, $05, $14, $06, $24, $04, $0a, $0d, $3c, $0d, $00, $05, $14, $05, $09, $02, $32, $0d, $1e, $06, $04, $07, $06, $0d, $1a, $05, $33, $04, $03, $05, $16, $02, $00, $02, $07, $05 + db $0a, $03, $32, $07, $0b, $0e, $22, $06, $2c, $04, $29, $0b, $0a, $03, $12, $0d, $24, $04, $1a, $0b, $33, $0d, $03, $0d, $0a, $03, $35, $04, $1b, $07, $06, $05, $1e, $06, $14, $07 + db $0e, $06, $2c, $04, $00, $0d, $06, $03, $31, $04, $04, $0d, $0c, $05, $12, $02, $00, $05, $40, $03, $09, $04, $01, $0d, $35, $05, $36, $08, $00, $05, $02, $03, $31, $04, $21, $0d + db $22, $05, $07, $0e, $30, $04, $c5, $00, $10, $02, $01, $05, $0c, $0c, $00, $01, $30, $04, $82, $00, $21, $04, $01, $05, $10, $01, $11, $05, $30, $04, $c3, $00, $3f, $04, $06, $05 + db $3a, $07, $3b, $07, $36, $03, $30, $04, $21, $04, $06, $0d, $17, $0e, $03, $05, $00, $00, $3f, $06, $21, $04, $21, $0d, $36, $05, $36, $03, $30, $04, $33, $06, $3f, $04, $0c, $0d + db $43, $03, $20, $04, $41, $0d, $17, $06, $06, $03, $0a, $04, $3a, $06, $13, $04, $04, $0d, $08, $06, $3f, $04, $31, $0d, $43, $03, $39, $04, $04, $05, $17, $06, $39, $04, $41, $0d + db $36, $03, $16, $04, $08, $06, $09, $08, $06, $0d, $00, $00, $1f, $0b, $03, $05, $12, $0e, $0f, $0e, $2c, $0d, $00, $05, $3a, $06, $16, $04, $38, $06, $38, $06, $2c, $0d, $00, $05 + db $11, $05, $25, $03, $33, $04, $2f, $08, $19, $0d, $00, $05, $11, $05, $25, $03, $3f, $06, $26, $04, $19, $0d, $00, $05, $11, $05, $21, $03, $35, $04, $14, $07, $19, $0d, $06, $05 + db $2c, $04, $0a, $0d, $04, $05, $33, $03, $29, $0b, $05, $0d, $00, $06, $04, $05, $09, $02, $33, $03, $07, $04, $35, $07, $33, $03, $3a, $08, $05, $0d, $3f, $06, $29, $08, $05, $0d + db $05, $03, $1b, $04, $41, $03, $39, $0b, $3a, $0b, $01, $05, $2c, $04, $03, $05, $00, $00, $40, $07, $3e, $0d, $00, $05, $00, $0e, $09, $05, $04, $05, $19, $09, $1d, $0b, $03, $05 + db $1c, $0c, $20, $06, $05, $08, $3e, $0d, $00, $05, $00, $00, $18, $03, $1f, $0e, $11, $0a, $1c, $0b, $15, $0b, $1c, $06, $03, $0e, $06, $0c, $21, $0c, $14, $0d, $06, $05, $1f, $08 + db $37, $03, $0e, $01, $08, $01, $19, $06, $27, $0b, $03, $02, $0e, $01, $08, $01, $1b, $08, $05, $08, $21, $0d, $00, $00, $36, $03, $33, $04, $04, $05, $00, $04, $41, $08, $3b, $0d + db $06, $02, $00, $05, $34, $03, $00, $03, $0d, $0d, $00, $05, $3c, $06, $05, $08, $16, $04, $2f, $08, $33, $0d, $02, $0d, $1c, $05, $00, $05, $18, $03, $05, $08, $1b, $04, $0c, $0d + db $2c, $04, $13, $09, $20, $06, $39, $03, $20, $04, $3c, $0d, $05, $03, $43, $04, $0b, $0d, $22, $04, $06, $0d, $31, $0d, $24, $08, $00, $05, $02, $03, $09, $08, $06, $0d, $3b, $0d + db $06, $03, $20, $04, $24, $0d, $24, $04, $10, $0b, $00, $05, $39, $07, $00, $05, $2a, $06, $04, $04, $3c, $04, $00, $00, $24, $04, $1c, $0b, $07, $0d, $2f, $08, $09, $06, $06, $05 + db $44, $07, $23, $0b, $33, $0d, $2c, $04, $20, $06, $24, $08, $24, $08, $00, $05, $0e, $0e, $12, $08, $09, $0b, $28, $06, $24, $08, $00, $05, $02, $03, $13, $06, $11, $08, $41, $0d + db $36, $03, $06, $06, $30, $04, $0f, $0b, $02, $0b, $3b, $0d, $31, $0d, $00, $05, $39, $03, $20, $04, $21, $0d, $00, $00, $04, $0e, $02, $05, $06, $06, $20, $0e, $0b, $06, $27, $06 + db $14, $05, $04, $02, $09, $0e, $08, $08, $2e, $08, $41, $0d, $34, $05, $2e, $08, $21, $0d, $3f, $03, $18, $08, $00, $05, $36, $05, $05, $02, $00, $05, $17, $06, $39, $04, $00, $05 + db $34, $03, $00, $03, $11, $0d, $41, $08, $0b, $06, $06, $04, $39, $07, $00, $05, $00, $00, $36, $03, $30, $04, $07, $08, $10, $05, $15, $08, $00, $05, $3a, $06, $1e, $06, $14, $0d + db $37, $05, $37, $05, $00, $05, $38, $05, $38, $05, $41, $05, $25, $05, $04, $05, $32, $05, $31, $05, $41, $05, $41, $05, $0f, $05, $04, $05, $0f, $05, $0f, $05, $16, $05, $01, $05 + db $1f, $0e, $36, $04, $40, $0d, $2f, $08, $1a, $0d, $00, $05, $21, $06, $35, $05, $24, $06, $1a, $06, $12, $0e, $00, $00, $1b, $05, $31, $06, $02, $05, $28, $0d, $27, $0d, $00, $00 + db $41, $08, $0b, $06, $37, $03, $08, $06, $20, $04, $3b, $0d, $15, $02, $16, $06, $26, $07, $13, $0c, $33, $08, $32, $0d, $2d, $07, $00, $05, $35, $03, $0b, $04, $28, $06, $06, $05 + db $0c, $08, $2c, $04, $1c, $0b, $06, $07, $0a, $0d, $03, $05, $30, $06, $06, $07, $00, $05, $2c, $04, $20, $06, $24, $07, $30, $06, $0b, $07, $00, $05, $2c, $04, $20, $06, $22, $07 + db $22, $0c, $22, $0c, $0a, $09, $04, $0b, $02, $07, $27, $06, $0f, $0c, $0a, $0a, $22, $06, $02, $07, $27, $06, $04, $05, $3a, $06, $0e, $0a, $22, $06, $05, $08, $02, $07, $04, $05 + db $2d, $0b, $02, $08, $37, $0d, $10, $05, $29, $07, $03, $05, $20, $0e, $0e, $0e, $0d, $06, $42, $07, $30, $08, $28, $06, $10, $05, $04, $05, $04, $05, $10, $05, $10, $05, $04, $05 + db $3f, $03, $16, $0e, $3f, $08, $0b, $0d, $2f, $08, $41, $0d, $34, $05, $00, $05, $02, $03, $3a, $06, $31, $07, $31, $0d, $21, $0e, $03, $05, $3f, $03, $16, $0e, $26, $07, $03, $05 + db $3a, $06, $2c, $03, $12, $03, $17, $0c, $28, $0b, $06, $0d, $3a, $06, $17, $0c, $23, $0b, $0d, $06, $2f, $08, $22, $0d, $14, $07, $04, $05, $17, $0c, $1c, $0b, $1b, $07, $00, $05 + db $1b, $02, $00, $05, $0c, $08, $2c, $04, $23, $0b, $32, $0d, $2b, $07, $1f, $04, $3b, $0d, $09, $07, $09, $07, $00, $05, $26, $05, $00, $05, $3f, $03, $22, $07, $d1, $00, $32, $0d diff --git a/engine/scripting.asm b/engine/scripting.asm index 5a3895038..9458efb3e 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2339,7 +2339,7 @@ Script_giveitem: ; 0x977ca ; quantity (SingleByteParam) call GetScriptByte - cp -1 + cp ITEM_FROM_MEM jr nz, .ok ; 0x977cf $3 ld a, [ScriptVar] .ok diff --git a/engine/specials.asm b/engine/specials.asm index ef53daedc..0dc12a542 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -139,7 +139,7 @@ SpecialsPointers:: ; c029 add_special Function1700b0 add_special Function1700ba add_special Function170114 - add_special Function170215 + add_special BattleTowerBattle add_special Function1704e1 add_special Function17021d add_special Function_LoadOpponentTrainerAndPokemonsWithOTSprite @@ -154,7 +154,7 @@ SpecialsPointers:: ; c029 add_special Function4925b add_special SpecialOmanyteChamber add_special Function11c1ab - add_special Function170687 + add_special BattleTowerAction add_special Special_DisplayUnownWords add_special Special_Menu_ChallengeExplanationCancel add_special Function17d2b6 diff --git a/macros.asm b/macros.asm index 10cb99264..67e3be236 100644 --- a/macros.asm +++ b/macros.asm @@ -177,3 +177,35 @@ ENDM tiles EQUS "* $10" tile EQUS "+ $10 *" + +partymon: MACRO + db \1 + db \2 + db \3, \4, \5, \6 + dw \7 + dt \8 +rept 8 + shift +endr +rept 5 + bigdw \1 + shift +endr + db \1, \2 + db \3, \4, \5, \6 +rept 6 + shift +endr + db \1 + db \2, \3, \4 + db \5 + db \6, \7 +rept 7 + shift +endr +rept 7 + bigdw \1 + shift +endr + db \1 +ENDM diff --git a/main.asm b/main.asm index 5d4711ec7..9fbe197ba 100644 --- a/main.asm +++ b/main.asm @@ -563,7 +563,7 @@ Function5e85: ; 5e85 call Function6e3 and $80 jr z, .asm_5e93 - ld de, $0408 + ld de, $408 call Function5eaf ret @@ -650,17 +650,17 @@ MenuData2_0x5f03: ; 5f03 Function5f1c: ; 5f1c call GetMemTileCoord push hl - ld de, $005d + ld de, $5d add hl, de call DisplayBadgeCount pop hl push hl - ld de, $0084 + ld de, $84 add hl, de call DisplayPokedexNumCaught pop hl push hl - ld de, $0030 + ld de, $30 add hl, de ld de, .Player call PlaceString @@ -672,14 +672,14 @@ Function5f1c: ; 5f1c ; 5f40 Function5f40: ; 5f40 - ld de, $00a9 + ld de, $a9 add hl, de call DisplayGameTime ret ; 5f48 Function5f48: ; 5f48 - ld de, $00a9 + ld de, $a9 add hl, de ld de, .text_5f53 call PlaceString @@ -1390,7 +1390,7 @@ Function639b: ; unreferenced and $3 ret nz ld bc, wc3a4 - ld hl, $000a + ld hl, $a add hl, bc ; over-the-top compicated way to load wc3ae into hl ld l, [hl] ld h, 0 @@ -1568,7 +1568,7 @@ Function64db: ; 64db ld [rSVBK], a ld a, $60 ld hl, w6_d000 - ld bc, $400 + lb bc, 4, 0 call ByteFill ld a, w6_d000 / $100 ld [rHDMA1], a @@ -7600,7 +7600,7 @@ Functiond670: ; d670 ld [wd1f5], a ld a, [wd1ee] ld [wd1f6], a - ld bc, $0001 + ld bc, 1 jr .asm_d6d9 .asm_d6c1 @@ -7753,11 +7753,11 @@ Functiond784: ; d784 ret z cp $1 jr z, .asm_d792 - ld de, $0016 + ld de, $16 jr .asm_d795 .asm_d792 - ld de, $0015 + ld de, $15 .asm_d795 push hl @@ -7893,7 +7893,7 @@ Functiond839: ; d839 .asm_d85e push bc - ld bc, $0080 + ld bc, $80 add hl, bc pop bc ld a, l @@ -8533,14 +8533,14 @@ SentGetPkmnIntoFromBox: ; db3f pop hl ld b, h ld c, l - ld hl, $001f + ld hl, $1f add hl, bc ld [hl], a - ld hl, $0024 + ld hl, $24 add hl, bc ld d, h ld e, l - ld hl, $000a + ld hl, $a add hl, bc push bc ld b, $1 @@ -8549,11 +8549,11 @@ SentGetPkmnIntoFromBox: ; db3f ld a, [wd10b] and a jr nz, .asm_dcac - ld hl, $0020 + ld hl, $20 add hl, bc xor a ld [hl], a - ld hl, $0022 + ld hl, $22 add hl, bc ld d, h ld e, l @@ -8742,21 +8742,21 @@ Functiondd64: ; dd64 push hl call Functionde1a pop hl - ld bc, $0020 + ld bc, $20 call CopyBytes call GetBaseData call Functionde1a ld b, d ld c, e - ld hl, $001f + ld hl, $1f add hl, bc ld a, [CurPartyLevel] ld [hl], a - ld hl, $0024 + ld hl, $24 add hl, bc ld d, h ld e, l - ld hl, $000a + ld hl, $a add hl, bc push bc ld b, $1 @@ -8779,7 +8779,7 @@ Functiondd64: ; dd64 ld d, a callab CalcExpAtLevel pop bc - ld hl, $0008 + ld hl, $8 add hl, bc ld a, [hMultiplicand] ld [hli], a @@ -9232,7 +9232,7 @@ Functione039: ; e039 cp [hl] jr z, .asm_e131 ld hl, s0_a600 - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes push hl add hl, bc @@ -9242,11 +9242,11 @@ Functione039: ; e039 .asm_e11a push bc push hl - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call CopyBytes pop hl push hl - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item add hl, bc pop de pop bc @@ -9352,7 +9352,7 @@ endr srl c pop hl push bc - ld bc, $000b + ld bc, NAME_LENGTH add hl, bc pop bc ld a, c @@ -9986,10 +9986,10 @@ ClearPCItemScreen: ; e58b ld a, " " call ByteFill hlcoord 0,0 - ld bc, $0a12 + lb bc, 10, 18 call TextBox hlcoord 0,12 - ld bc, $0412 + lb bc, 4, 18 call TextBox call Function3200 call SetPalettes ; load regular palettes? @@ -9999,10 +9999,10 @@ ClearPCItemScreen: ; e58b Functione5bb: ; e5bb ld a, [CurPartyMon] ld hl, sBoxMon1Species - ld bc, $0020 + ld bc, $20 call AddNTimes ld de, TempMonSpecies - ld bc, $0020 + ld bc, $20 ld a, BANK(sBoxMon1Species) call GetSRAMBank call CopyBytes @@ -10016,7 +10016,7 @@ Functione5d9: ; unreferenced jr z, .asm_e5f1 ld a, b ld hl, Unknown_e66e - ld bc, $0003 + ld bc, 3 call AddNTimes ld a, [hli] push af @@ -10033,7 +10033,7 @@ Functione5d9: ; unreferenced .asm_e5f6 call GetSRAMBank ld a, [hl] - ld bc, $0016 + ld bc, $16 add hl, bc ld b, a ld c, $0 @@ -10047,7 +10047,7 @@ Functione5d9: ; unreferenced ld a, c ld bc, 0 add hl, bc - ld bc, $0020 + ld bc, $20 call AddNTimes ld a, [hl] ld [de], a @@ -10059,7 +10059,7 @@ Functione5d9: ; unreferenced push hl push bc ld a, c - ld bc, $035c + ld bc, $35c add hl, bc call SkipNames call CopyBytes @@ -10068,9 +10068,9 @@ Functione5d9: ; unreferenced push hl push bc ld a, c - ld bc, $001f + ld bc, $1f add hl, bc - ld bc, $0020 + ld bc, $20 call AddNTimes ld a, [hl] ld [de], a @@ -10080,9 +10080,9 @@ Functione5d9: ; unreferenced push hl push bc ld a, c - ld bc, $0015 + ld bc, $15 add hl, bc - ld bc, $0020 + ld bc, $20 call AddNTimes ld a, [hli] and $f0 @@ -10132,7 +10132,7 @@ Unknown_e66e: ; e66e Functione698: ; e698 ld hl, wBreedMon1Stats ld de, TempMon - ld bc, $0020 + ld bc, $20 call CopyBytes callab CalcLevel ld a, [wBreedMon1Level] @@ -10147,7 +10147,7 @@ Functione698: ; e698 Functione6b3: ; e6b3 ld hl, wBreedMon2Stats ld de, TempMon - ld bc, $0020 + ld bc, $20 call CopyBytes callab CalcLevel ld a, [wBreedMon2Level] @@ -10773,7 +10773,7 @@ Function118ca: ; 118ca dec c jr nz, .asm_11905 push de - ld de, $0017 + ld de, $17 add hl, de pop de dec b @@ -13530,12 +13530,12 @@ Function12cfe: ; 12cfe (4:6cfe) ld [de], a ld a, [CurPartyMon] ld hl, s0_a600 - ld bc, $2f + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes ld d, h ld e, l ld hl, DefaultFlypoint - ld bc, $2f + ld bc, PartyMon1StatsEnd - PartyMon1Item ld a, BANK(s0_a600) call GetSRAMBank call CopyBytes @@ -14125,19 +14125,19 @@ Function12fd5: ; 12fd5 push hl call Function1313a pop hl - ld bc, $0015 + ld bc, $15 add hl, bc call Function1313a ld a, [wBattleMode] jr z, .asm_13113 ld hl, BattleMonMoves - ld bc, $0020 + ld bc, $20 ld a, [CurPartyMon] call AddNTimes push hl call Function1313a pop hl - ld bc, $0006 + ld bc, 6 add hl, bc call Function1313a @@ -14640,7 +14640,7 @@ Function1344a: ; 1344a Function1345a: ; 1345a ld de, OBPals + 8 * 6 - ld bc, $0004 + ld bc, 4 ld hl, wd03f ld a, [hli] ld h, [hl] @@ -14720,12 +14720,12 @@ Function134c0: ; 134c0 ld l, a inc hl pop af - ld bc, $0004 + ld bc, 4 call AddNTimes inc hl ld de, wdcac ld a, [EngineBuffer1] - ld bc, $0003 + ld bc, 3 call FarCopyBytes ret ; 134dd @@ -15317,7 +15317,7 @@ Function1383e: ; 1383e jr c, .next ld hl, EndFlypoint ld de, wd00a - ld bc, $0004 + ld bc, 4 call CopyBytes ld hl, DefaultFlypoint ld de, EndFlypoint @@ -15845,7 +15845,7 @@ Function13a47: ; unreferenced ld d, h ld e, l ld hl, PlayerName - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes .asm_13b34 pop bc @@ -17754,13 +17754,13 @@ CheckCutCollision: ; 149f5 Function14a07:: ; 14a07 ld a, [PlayerStandingTile] - ld de, $001f + ld de, $1f cp $71 ; door ret z - ld de, $0013 + ld de, $13 cp $7c ; warp pad ret z - ld de, $0023 + ld de, $23 ret ; 14a1a @@ -19908,13 +19908,13 @@ Function1686d: ; 1686d ld a, d ld [StringBuffer2 + 1], a ld de, StringBuffer1 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld hl, 0 - ld bc, $0064 + ld bc, $64 ld a, [StringBuffer2 + 1] call AddNTimes - ld de, $0064 + ld de, $64 add hl, de xor a ld [StringBuffer2 + 2], a @@ -20189,7 +20189,7 @@ Function169ac: ; 169ac ld hl, wEggNick call CopyBytes ld hl, PartyMonOT - ld bc, $000b + ld bc, NAME_LENGTH call Function16a31 ld hl, wEggOT call CopyBytes @@ -20418,14 +20418,14 @@ Function16a66: ; 16a66 .asm_16bab ld hl, StringBuffer1 ld de, wd050 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld hl, wEggMonMoves ld de, wEggMonPP predef FillPP ld hl, wd050 ld de, StringBuffer1 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld a, [BaseEggSteps] ld hl, wEggMonHappiness @@ -20471,7 +20471,7 @@ Function16be4: ; 16be4 call Request1bpp hlcoord 0, 0 - ld bc, $0312 + lb bc, 3, 18 call TextBox hlcoord 0, 5 @@ -20479,7 +20479,7 @@ Function16be4: ; 16be4 call TextBox hlcoord 0, 14 - ld bc, $0212 + lb bc, 2, 18 call TextBox hlcoord 1, 2 @@ -20629,7 +20629,7 @@ Function16d20: ; 16d20 xor a call GetSRAMBank ld hl, sScratch - ld bc, $0310 ; 784 + ld bc, $310 ; 784 xor a call ByteFill ld hl, VTiles2 tile $31 @@ -21411,7 +21411,7 @@ Function17254: ; 17254 (5:7254) ld [hBGMapAddress + 1], a ld a, c ld [$ffad], a - ld bc, $707 + lb bc, 7, 7 predef FillBox pop af call Function17363 @@ -21656,7 +21656,7 @@ UnknownText_0x17467: ; 0x17467 Function1746c: ; 1746c push bc ld de, StringBuffer1 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes call Function16e1d pop bc @@ -22147,7 +22147,7 @@ Function240db: ; 240db dec c jr nz, .asm_240f1 pop hl - ld bc, $0028 + ld bc, $28 add hl, bc pop bc dec b @@ -23362,7 +23362,7 @@ Function247f0: ; 247f0 .asm_2480d call GetMemTileCoord - ld bc, $0015 + ld bc, $15 add hl, bc ld a, [wcf92] ld b, a @@ -23380,7 +23380,7 @@ Function247f0: ; 247f0 push hl call Function2486e pop hl - ld bc, $0028 + ld bc, $28 add hl, bc pop bc inc c @@ -23741,7 +23741,7 @@ Function24a6c: ; 24a6c (9:4a6c) dec a cpl .asm_24a76 - ld hl, $0 + ld hl, $ call AddNTimes ld b, h ld c, l @@ -23813,7 +23813,7 @@ PlaceMenuItemQuantity: ; 0x24ac3 pop hl and a jr nz, .done - ld de, $0015 + ld de, $15 add hl, de ld [hl], "×" inc hl @@ -23837,13 +23837,13 @@ Function24af0: ; 24af0 Function24af8: ; 24af8 ld hl, MenuDataHeader_0x24b15 - ld de, $000b + ld de, $b call Function1e2e Function24b01: ; 24b01 call Function1cbb call GetMemTileCoord - ld de, $0015 + ld de, $15 add hl, de ld de, Money lb bc, PRINTNUM_MONEY | 3, 6 @@ -24192,7 +24192,7 @@ MonMenuLoop: ; 24d59 PopulateMonMenu: ; 24d91 call GetMemTileCoord - ld bc, $002a ; 42 + ld bc, $2a ; 42 add hl, bc ld de, Buffer2 .loop @@ -24205,7 +24205,7 @@ PopulateMonMenu: ; 24d91 call GetMonMenuString pop hl call PlaceString - ld bc, $0028 ; 40 + ld bc, $28 ; 40 add hl, bc pop de jr .loop @@ -24680,7 +24680,7 @@ Function2500e: ; 2500e Function25072: ; 25072 call Function1cbb call GetMemTileCoord - ld de, $0015 + ld de, $15 add hl, de ld [hl], $f1 inc hl @@ -25818,7 +25818,7 @@ Function2686c: ; 2686c ld hl, DefaultFlypoint ld [hli], a ld a, -1 - ld bc, $0010 + ld bc, $10 call ByteFill ret ; 2687a @@ -27297,19 +27297,19 @@ Function2805d: ; 2805d ld [rIE], a ld hl, wd1f3 ld de, EnemyMonSpecies - ld bc, $0011 + ld bc, $11 call Function75f ld a, $fe ld [de], a ld hl, OverworldMap ld de, wd26b - ld bc, $01a8 + ld bc, $1a8 call Function75f ld a, $fe ld [de], a ld hl, wc608 ld de, wc6d0 - ld bc, $00c8 + ld bc, $c8 call Function75f xor a ld [rIF], a @@ -27319,7 +27319,7 @@ Function2805d: ; 2805d ld hl, wd26b call Function287ca push hl - ld bc, $000b + ld bc, NAME_LENGTH add hl, bc ld a, [hl] pop hl @@ -27328,7 +27328,7 @@ Function2805d: ; 2805d cp $7 jp nc, Function28b22 ld de, OverworldMap - ld bc, $01a2 + ld bc, $1a2 call Function2879e ld de, wc6d0 ld hl, wc813 @@ -27362,7 +27362,7 @@ Function2805d: ; 2805d jr nz, .asm_280fe ld hl, OverworldMap ld de, wd26b - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld de, OTPartyCount ld a, [hli] @@ -27440,26 +27440,26 @@ Function28177: ; 28177 ld [rIE], a ld hl, wd1f3 ld de, EnemyMonSpecies - ld bc, $0011 + ld bc, $11 call Function75f ld a, $fe ld [de], a ld hl, OverworldMap ld de, wd26b - ld bc, $01c2 + ld bc, $1c2 call Function75f ld a, $fe ld [de], a ld hl, wc608 ld de, wc6d0 - ld bc, $00c8 + ld bc, $c8 call Function75f ld a, [wLinkMode] cp LINK_TRADECENTER jr nz, .asm_281fd ld hl, wc9f4 ld de, wcb84 - ld bc, $0186 + ld bc, $186 call Function283f2 .asm_281fd @@ -27473,7 +27473,7 @@ Function28177: ; 28177 ld hl, wd26b call Function287ca ld de, OverworldMap - ld bc, $01b9 + ld bc, $1b9 call Function2879e ld de, wc6d0 ld hl, wc813 @@ -27521,10 +27521,10 @@ Function28177: ; 28177 jr z, .asm_28259 dec hl ld de, wcb84 - ld bc, $0190 + ld bc, $190 call CopyBytes ld hl, wcb84 - ld bc, $00c6 + ld bc, $c6 .asm_28272 ld a, [hl] cp $21 @@ -27557,7 +27557,7 @@ Function28177: ; 28177 ld b, $6 .asm_2829c push bc - ld bc, $0021 + ld bc, $21 call CopyBytes ld a, $e add e @@ -27578,7 +27578,7 @@ Function28177: ; 28177 ld a, $0 adc d ld d, a - ld bc, $000e + ld bc, $e call CopyBytes pop bc dec b @@ -27604,7 +27604,7 @@ Function28177: ; 28177 .asm_282ee pop de - ld hl, $002f + ld hl, $2f add hl, de ld d, h ld e, l @@ -27618,16 +27618,16 @@ Function28177: ; 28177 .asm_282fe ld hl, OverworldMap ld de, wd26b - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld de, OTPartyCount - ld bc, $0008 + ld bc, 8 call CopyBytes ld de, wd276 - ld bc, $0002 + ld bc, 2 call CopyBytes ld de, OTPartyMon1Species - ld bc, $01a4 + ld bc, $1a4 call CopyBytes ld a, OTPartyMonOT % $100 ld [wd102], a @@ -27772,7 +27772,7 @@ String28419: ; 28419 Function28426: ; 28426 ld hl, OverworldMap - ld bc, $0514 + lb bc, 5, SCREEN_WIDTH .asm_2842c xor a ld [hli], a @@ -27849,7 +27849,7 @@ endr ld a, $ff ld [de], a inc de - ld bc, $100 + lb bc, 1, 0 jr .asm_28464 .asm_28495 @@ -27868,7 +27868,7 @@ Function28499: ; 28499 dec b jr nz, .asm_284a0 ld hl, PlayerName - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes push de ld hl, PartyCount @@ -27893,7 +27893,7 @@ Function28499: ; 28499 .asm_284ce ld [de], a pop de - ld hl, $0008 + ld hl, $8 add hl, de ld d, h ld e, l @@ -27911,7 +27911,7 @@ Function28499: ; 28499 call .asm_284f0 ld hl, PartyMonNicknames .asm_284f0 - ld bc, $0042 + ld bc, $42 jp CopyBytes ; 284f6 @@ -27928,7 +27928,7 @@ Function284f6: ; 284f6 ld a, [wd265] ld [de], a inc de - ld hl, $0022 + ld hl, $22 add hl, bc ld a, [hli] ld [de], a @@ -27939,7 +27939,7 @@ Function284f6: ; 284f6 xor a ld [de], a inc de - ld hl, $0020 + ld hl, $20 add hl, bc ld a, [hl] ld [de], a @@ -27971,13 +27971,13 @@ Function284f6: ; 284f6 .asm_28544 push bc - ld hl, $0001 + ld hl, $1 add hl, bc ld bc, $1a call CopyBytes pop bc - ld hl, $001f + ld hl, $1f add hl, bc ld a, [hl] ld [de], a @@ -27985,9 +27985,9 @@ Function284f6: ; 284f6 inc de push bc - ld hl, $0024 + ld hl, $24 add hl, bc - ld bc, $0008 + ld bc, 8 call CopyBytes pop bc @@ -28006,7 +28006,7 @@ Function284f6: ; 284f6 ld [BaseSpecialAttack], a pop bc - ld hl, $000a + ld hl, $a add hl, bc ld c, $5 ld b, $1 @@ -28036,22 +28036,22 @@ Function28595: ; 28595 dec b jr nz, .loop1 ld hl, PlayerName - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld hl, PartyCount - ld bc, $0008 + ld bc, 8 call CopyBytes ld hl, PlayerID - ld bc, $0002 + ld bc, 2 call CopyBytes ld hl, PartyMon1Species - ld bc, $0120 + ld bc, $120 call CopyBytes ld hl, PartyMonOT - ld bc, $0042 + ld bc, $42 call CopyBytes ld hl, PartyMonNicknames - ld bc, $0042 + ld bc, $42 call CopyBytes ld a, [wLinkMode] cp LINK_TRADECENTER @@ -28062,28 +28062,28 @@ Function28595: ; 28595 ld a, BANK(s0_a600) call GetSRAMBank ld hl, s0_a600 - ld b, $6 + ld b, PARTY_LENGTH .loop2 push bc - ld bc, $0021 + ld bc, $21 call CopyBytes - ld bc, $000e + ld bc, $e add hl, bc pop bc dec b jr nz, .loop2 ld hl, s0_a600 - ld b, $6 + ld b, PARTY_LENGTH .loop3 push bc - ld bc, $0021 + ld bc, $21 add hl, bc - ld bc, $000e + ld bc, $e call CopyBytes pop bc dec b jr nz, .loop3 - ld b, $6 + ld b, PARTY_LENGTH ld de, s0_a600 ld hl, wc9f9 .loop4 @@ -28108,19 +28108,19 @@ Function28595: ; 28595 .next pop de - ld hl, $002f + ld hl, PartyMon1StatsEnd - PartyMon1Item add hl, de ld d, h ld e, l pop hl - ld bc, $0021 + ld bc, $21 add hl, bc pop bc dec b jr nz, .loop4 call CloseSRAM ld hl, wc9f9 - ld bc, $00c6 + ld bc, $c6 .loop5 ld a, [hl] cp $fe @@ -28184,13 +28184,13 @@ Function2868a: ; 2868a dec c jr nz, .loop pop hl - ld bc, $0108 + lb bc, 1, 8 add hl, bc ld de, OTPartyMonOT - ld bc, $0042 + ld bc, $42 call CopyBytes ld de, OTPartyMonNicknames - ld bc, $0042 + ld bc, $42 jp CopyBytes ; 286ba @@ -28208,7 +28208,7 @@ Function286ba: ; 286ba ld a, [wd265] ld [bc], a ld [CurSpecies], a - ld hl, $0022 + ld hl, $22 add hl, bc ld a, [de] inc de @@ -28217,7 +28217,7 @@ Function286ba: ; 286ba inc de ld [hl], a inc de - ld hl, $0020 + ld hl, $20 add hl, bc ld a, [de] inc de @@ -28237,7 +28237,7 @@ Function286ba: ; 286ba ld a, h ld [wcbe9], a push bc - ld hl, $0001 + ld hl, $1 add hl, bc push hl ld h, d @@ -28251,25 +28251,25 @@ Function286ba: ; 286ba ld [de], a inc de pop bc - ld bc, $0019 + ld bc, $19 call CopyBytes pop bc ld d, h ld e, l - ld hl, $001f + ld hl, $1f add hl, bc ld a, [de] inc de ld [hl], a ld [CurPartyLevel], a push bc - ld hl, $0024 + ld hl, $24 add hl, bc push hl ld h, d ld l, e pop de - ld bc, $0008 + ld bc, 8 call CopyBytes pop bc call GetBaseData @@ -28277,7 +28277,7 @@ Function286ba: ; 286ba push bc ld d, h ld e, l - ld hl, $000a + ld hl, $a add hl, bc ld c, $5 ld b, $1 @@ -28290,7 +28290,7 @@ Function286ba: ; 286ba ld [hli], a push hl push bc - ld hl, $000a + ld hl, $a add hl, bc ld c, $6 ld b, $1 @@ -28302,7 +28302,7 @@ Function286ba: ; 286ba ld a, [$ffb6] ld [hli], a push hl - ld hl, $001b + ld hl, $1b add hl, bc ld a, $46 ld [hli], a @@ -28484,7 +28484,7 @@ Function28835: ; 28835 call Function1bf7 push hl push bc - ld bc, $000b + ld bc, NAME_LENGTH add hl, bc ld [hl], $7f pop bc @@ -28546,7 +28546,7 @@ Function288c5: ; 288c5 call Function1bf7 push hl push bc - ld bc, $000b + ld bc, NAME_LENGTH add hl, bc ld [hl], $7f pop bc @@ -28566,7 +28566,7 @@ Function288c5: ; 288c5 call Function1bf7 push hl push bc - ld bc, $000b + ld bc, NAME_LENGTH add hl, bc ld [hl], $7f pop bc @@ -28663,12 +28663,12 @@ Function28926: ; 28926 callba Function4d319 call Call_LoadTempTileMapToTileMap hlcoord 6, 1 - ld bc, $0601 - ld a, $7f + lb bc, 6, 1 + ld a, " " call Function28b77 hlcoord 17, 1 - ld bc, $0601 - ld a, $7f + lb bc, 6, 1 + ld a, " " call Function28b77 jp Function2888b @@ -28765,7 +28765,7 @@ Function28ac9: ; 28ac9 call Function1bf7 push hl push bc - ld bc, $000b + ld bc, NAME_LENGTH add hl, bc ld [hl], $7f pop bc @@ -28888,7 +28888,7 @@ Function28b87: ; 28b87 call GetPokemonName ld hl, StringBuffer1 ld de, wd004 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes ld a, [wd003] ld hl, OTPartySpecies @@ -28943,8 +28943,8 @@ Function28b87: ; 28b87 ld a, $1 ld [wcf56], a hlcoord 0, 12 - ld b, $4 - ld c, $12 + ld b, 4 + ld c, 18 call Function28eef hlcoord 1, 14 ld de, String28ece @@ -28960,8 +28960,8 @@ Function28b87: ; 28b87 dec a jr nz, .asm_28c7b hlcoord 0, 12 - ld b, $4 - ld c, $12 + ld b, 4 + ld c, 18 call Function28eef hlcoord 1, 14 ld de, String28ece @@ -28971,13 +28971,13 @@ Function28b87: ; 28b87 .asm_28c7b ld hl, s0_a600 ld a, [DefaultFlypoint] - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes ld a, BANK(s0_a600) call GetSRAMBank ld d, h ld e, l - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item add hl, bc ld a, [DefaultFlypoint] ld c, a @@ -28987,7 +28987,7 @@ Function28b87: ; 28b87 cp $6 jr z, .asm_28ca6 push bc - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call CopyBytes pop bc jr .asm_28c96 @@ -28996,20 +28996,20 @@ Function28b87: ; 28b87 ld hl, s0_a600 ld a, [PartyCount] dec a - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes push hl ld hl, wc9f4 ld a, [wd003] - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call AddNTimes pop de - ld bc, $002f + ld bc, PartyMon1StatsEnd - PartyMon1Item call CopyBytes call CloseSRAM ld hl, PlayerName ld de, wc6e7 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld a, [DefaultFlypoint] ld hl, PartySpecies @@ -29023,7 +29023,7 @@ Function28b87: ; 28b87 ld hl, PartyMonOT call SkipNames ld de, wc6f2 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld hl, PartyMon1ID ld a, [DefaultFlypoint] @@ -29049,7 +29049,7 @@ Function28b87: ; 28b87 ld [wc701], a ld hl, wd26b ld de, wc719 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld a, [wd003] ld hl, OTPartySpecies @@ -29062,7 +29062,7 @@ Function28b87: ; 28b87 ld hl, OTPartyMonOT call SkipNames ld de, wc724 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ld hl, OTPartyMon1ID ld a, [wd003] @@ -29110,7 +29110,7 @@ Function28b87: ; 28b87 add hl, bc ld a, [hl] ld [wd003], a - ld c, $64 + ld c, 100 call DelayFrames call ClearTileMap call LoadFontsBattleExtra @@ -29187,17 +29187,17 @@ Function28b87: ; 28b87 callba Function14a58 callba MobileFn_1060af callba Function106187 - ld c, $28 + ld c, 40 call DelayFrames hlcoord 0, 12 - ld b, $4 - ld c, $12 + ld b, 4 + ld c, 18 call Function28eef hlcoord 1, 14 ld de, String28ebd call PlaceString callba Function4d354 - ld c, $32 + ld c, 50 call DelayFrames ld a, [wLinkMode] cp LINK_TIMECAPSULE @@ -29425,12 +29425,12 @@ Function28fdb: ; 28fdb call Decompress ld hl, TradeArrowGFX ld de, VTiles1 tile $6d - ld bc, $0010 + ld bc, $10 ld a, BANK(TradeArrowGFX) call FarCopyBytes ld hl, TradeArrowGFX + $10 ld de, VTiles1 tile $6e - ld bc, $0010 + ld bc, $10 ld a, BANK(TradeArrowGFX) call FarCopyBytes xor a @@ -29598,7 +29598,7 @@ Function2914e: ; 2914e call DisableLCD callab Function8cf53 ld hl, $9874 - ld bc, $000c + ld bc, $c ld a, $60 call ByteFill pop af @@ -29614,14 +29614,14 @@ Function2914e: ; 2914e pop de ld a, $11 call Function3b2a - ld hl, $000b + ld hl, $b add hl, bc pop bc ld [hl], b pop de ld a, $12 call Function3b2a - ld hl, $000b + ld hl, $b add hl, bc pop bc ld [hl], b @@ -29795,7 +29795,7 @@ Function29297: ; 29297 hlcoord 9, 3 ld [hl], $5b inc hl - ld bc, $000a + ld bc, $a ld a, $60 call ByteFill hlcoord 3, 2 @@ -29815,7 +29815,7 @@ Function292af: ; 292af Function292be: ; 292be call Function297cf hlcoord 0, 3 - ld bc, $0011 + ld bc, $11 ld a, $60 call ByteFill hlcoord 17, 3 @@ -29875,7 +29875,7 @@ Function292f6: ; 292f6 ld de, wc741 call PlaceString hlcoord 7, 2 - ld bc, $0006 + ld bc, 6 pop af call ByteFill call WaitBGMap @@ -30097,7 +30097,7 @@ Function294a9: ; 294a9 call GetPokemonName ld hl, StringBuffer1 pop de - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ret ; 294bb @@ -30112,7 +30112,7 @@ Function294c0: ; 294c0 Function294c3: ; 294c3 call DelayFrame ld hl, VTiles2 - ld bc, $0a31 + ld bc, $a31 call Request2bpp call WaitTop call Function297cf @@ -30318,10 +30318,10 @@ Function2962c: ; 2962c lb de, $54, $58 ld a, $e call Function3b2a - ld hl, $000b + ld hl, $b add hl, bc ld [hl], $1 - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], $dc call Function29114 @@ -30421,7 +30421,7 @@ Function296bd: ; 296bd (a:56bd) inc [hl] ret .asm_296c8 - ld hl, $0 + ld hl, $ add hl, bc ld [hl], $0 ret @@ -30459,7 +30459,7 @@ Function296f2: ; 296f2 (a:56f2) dec [hl] and a ret nz - ld hl, $0 + ld hl, $ add hl, bc ld [hl], $0 ret @@ -30644,11 +30644,11 @@ Function297ed: ; 297ed Function297ff: ; 297ff push de ld de, wc736 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes pop hl ld de, wc741 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ret ; 29814 @@ -31428,7 +31428,7 @@ endr .asm_2a067 pop hl - ld bc, $002f + ld bc, $2f add hl, bc jr .asm_2a052 ; 2a06e @@ -31452,7 +31452,7 @@ Function2a06e: ; 2a06e .asm_2a081 pop hl - ld bc, $0009 + ld bc, 9 add hl, bc jr .asm_2a06e ; 2a088 @@ -32479,7 +32479,7 @@ Function2b930: ; 2b930 Function2b995: ; 2b995 ld c, $0 ld b, $3 - ld de, $002f + ld de, $2f .asm_2b99c ld a, [hli] or [hl] @@ -32529,7 +32529,7 @@ Function2b9a6: ; 2b9a6 .asm_2b9d7 push de - ld de, $002f + ld de, $2f add hl, de pop de dec c @@ -32575,7 +32575,7 @@ Function2ba01: ; 2ba01 .asm_2ba10 push de - ld de, $002e + ld de, $2e add hl, de pop de dec d @@ -32699,7 +32699,7 @@ endr .asm_2c08e ld a, b ld [de], a - ld bc, $0032 + ld bc, $32 add hl, bc ret ; 2c095 @@ -34918,7 +34918,7 @@ Function41a7f: ; 41a7f hlcoord 0, 17 ld [hl], $3b inc hl - ld bc, $0013 + ld bc, $13 ld a, " " call ByteFill callba Function4424d @@ -36047,7 +36047,7 @@ endr hlcoord 2, 11 call ClearBox hlcoord 1, 10 - ld bc, $0013 + ld bc, $13 ld a, $61 call ByteFill hlcoord 1, 9 @@ -36074,7 +36074,7 @@ endr hlcoord 2, 11 call ClearBox hlcoord 1, 10 - ld bc, $0013 + ld bc, $13 ld a, $61 call ByteFill hlcoord 1, 9 @@ -36377,21 +36377,21 @@ GivePokeItem:: ; 446cc push bc push af ld hl, s0_a600 - ld bc, $002f + ld bc, $2f call AddNTimes ld d, h ld e, l ld hl, wd002 - ld bc, $0021 + ld bc, $21 ld a, BANK(s0_a600) call GetSRAMBank call CopyBytes pop af push af ld hl, PartyMonOT - ld bc, $000b + ld bc, NAME_LENGTH call AddNTimes - ld bc, $000a + ld bc, $a call CopyBytes pop af ld hl, PartyMon1ID @@ -36418,11 +36418,11 @@ Function44725: ; 44725 call GetSRAMBank ld hl, s0_a600 ld de, s0_a71a - ld bc, $11a + ld bc, 6 * (party_struct_length + PartyMon1 - PartyMon1Item) call CopyBytes ld hl, s0_a834 ld de, s0_aa0b - ld bc, $1d7 + ld bc, 1 + 10 * (party_struct_length + PartyMon1 - PartyMon1Item) call CopyBytes jp CloseSRAM ; 44745 @@ -36432,11 +36432,11 @@ Function44745: ; 44745 (11:4745) call GetSRAMBank ld hl, s0_a71a ld de, s0_a600 - ld bc, $11a + ld bc, 6 * (party_struct_length + PartyMon1 - PartyMon1Item) call CopyBytes ld hl, s0_aa0b ld de, s0_a834 - ld bc, $1d7 + ld bc, 1 + 10 * (party_struct_length + PartyMon1 - PartyMon1Item) call CopyBytes jp CloseSRAM @@ -36445,11 +36445,11 @@ Function44765: ; 44765 (11:4765) call GetSRAMBank xor a ld hl, s0_a600 - ld bc, $11a + ld bc, 6 * (party_struct_length + PartyMon1 - PartyMon1Item) call ByteFill xor a ld hl, s0_a834 - ld bc, $1d7 + ld bc, 1 + 10 * (party_struct_length + PartyMon1 - PartyMon1Item) call ByteFill jp CloseSRAM ; 44781 (11:4781) @@ -36527,7 +36527,7 @@ InitMail: ; 0x447b9 Function447da: ; 0x447da dec a ld hl, s0_a835 + $21 - ld bc, $002f + ld bc, $2f call AddNTimes ld a, BANK(s0_a834) call GetSRAMBank @@ -36657,7 +36657,7 @@ Function4484a: ; 0x4484a call GetSRAMBank pop af ld hl, s0_a835 + $2e - ld bc, $002f + ld bc, $2f call AddNTimes ld a, [hl] ld [CurItem], a @@ -38917,33 +38917,33 @@ Function4936e: ; 4936e (12:536e) Function49384: ; 49384 (12:5384) hlcoord 0, 0, AttrMap - ld bc, $401 + lb bc, 4, 1 ld a, $1 call Function49336 - ld bc, $201 + lb bc, 2, 1 ld a, $2 call Function49336 - ld bc, $601 + lb bc, 6, 1 ld a, $3 call Function49336 hlcoord 1, 0, AttrMap ld a, $1 - ld bc, $312 + lb bc, 3, 18 call Function49336 - ld bc, $212 + lb bc, 2, 18 ld a, $2 call Function49336 - ld bc, $c12 + lb bc, 12, 18 ld a, $3 call Function49336 hlcoord 19, 0, AttrMap - ld bc, $401 + lb bc, 4, 1 ld a, $1 call Function49336 - ld bc, $201 + lb bc, 2, 1 ld a, $2 call Function49336 - ld bc, $601 + lb bc, 6, 1 ld a, $3 call Function49336 hlcoord 0, 12, AttrMap @@ -38984,7 +38984,7 @@ Palette_493e1: ; 493e1 Function49409:: ; 49409 ld hl, Palette_49418 ld de, Unkn1Pals + 8 * 7 - ld bc, $0008 + ld bc, 8 ld a, $5 call FarCopyWRAM ret @@ -39048,7 +39048,7 @@ Palette_49478: ; 49478 Function49480: ; 49480 hlcoord 0, 0, AttrMap - ld bc, $0414 + lb bc, 4, SCREEN_WIDTH ld a, $7 call Function49336 hlcoord 0, 2, AttrMap @@ -39061,7 +39061,7 @@ Function49480: ; 49480 Function49496: ; 49496 hlcoord 0, 0, AttrMap - ld bc, $0214 + lb bc, 2, SCREEN_WIDTH ld a, $7 call Function49336 hlcoord 0, 1, AttrMap @@ -39131,7 +39131,7 @@ LoadPokeComPalette: ; 494f2 ld a, $5 ld de, Unkn1Pals ld hl, PokeComPalette - ld bc, $0040 + ld bc, $40 call FarCopyWRAM ret ; 49501 @@ -39144,7 +39144,7 @@ LoadBattleTowerPalette: ; 49541 ld a, $5 ld de, Unkn1Pals ld hl, BattleTowerPalette - ld bc, $0040 + ld bc, $40 call FarCopyWRAM ret ; 49550 @@ -39157,7 +39157,7 @@ LoadIcePathPalette: ; 49590 ld a, $5 ld de, Unkn1Pals ld hl, IcePathPalette - ld bc, $0040 + ld bc, $40 call FarCopyWRAM ret ; 4959f @@ -39170,7 +39170,7 @@ LoadHousePalette: ; 495df ld a, $5 ld de, Unkn1Pals ld hl, HousePalette - ld bc, $0040 + ld bc, $40 call FarCopyWRAM ret ; 495ee @@ -39183,7 +39183,7 @@ LoadRadioTowerPalette: ; 4962e ld a, $5 ld de, Unkn1Pals ld hl, RadioTowerPalette - ld bc, $0040 + ld bc, $40 call FarCopyWRAM ret ; 4963d @@ -39246,22 +39246,22 @@ LoadMansionPalette: ; 496c5 ld a, $5 ld de, Unkn1Pals ld hl, MansionPalette1 - ld bc, $0040 + ld bc, $40 call FarCopyWRAM ld a, $5 ld de, Unkn1Pals + $20 ld hl, MansionPalette2 - ld bc, $0008 + ld bc, 8 call FarCopyWRAM ld a, $5 ld de, Unkn1Pals + $18 ld hl, MansionPalette3 - ld bc, $0008 + ld bc, 8 call FarCopyWRAM ld a, $5 ld de, Unkn1Pals + $30 ld hl, MansionPalette4 - ld bc, $0008 + ld bc, 8 call FarCopyWRAM ret ; 496fe @@ -39276,7 +39276,7 @@ MansionPalette2: ; 496fe Function49706: ; 49706 ld hl, Palette_49732 ld de, Unkn1Pals - ld bc, $0008 + ld bc, 8 ld a, $5 call FarCopyWRAM callba Function96a4 @@ -39284,7 +39284,7 @@ Function49706: ; 49706 callba Function96b3 ld hl, Palette_4973a ld de, Unkn2Pals - ld bc, $0008 + ld bc, 8 ld a, $5 call FarCopyWRAM ret @@ -39307,7 +39307,7 @@ Palette_4973a: ; 4973a Function49742: ; 49742 ld hl, Palette_49757 ld de, Unkn1Pals - ld bc, $0040 + ld bc, $40 ld a, $5 call FarCopyWRAM callba Function96a4 @@ -39358,38 +39358,38 @@ Palette_49757: ; 49757 Function49797: ; 49797 hlcoord 0, 0, AttrMap - ld bc, $1002 + lb bc, 16, 2 ld a, $4 call Function49336 ld a, $3 ldcoord_a 0, 1, AttrMap ldcoord_a 0, 14, AttrMap hlcoord 2, 0, AttrMap - ld bc, $0812 + lb bc, 8, 18 ld a, $5 call Function49336 hlcoord 2, 8, AttrMap - ld bc, $0812 + lb bc, 8, 18 ld a, $6 call Function49336 hlcoord 0, 16, AttrMap - ld bc, $0214 + lb bc, 2, SCREEN_WIDTH ld a, $4 call Function49336 ld a, $3 - ld bc, $0601 + lb bc, 6, 1 hlcoord 6, 1, AttrMap call Function49336 ld a, $3 - ld bc, $0601 + lb bc, 6, 1 hlcoord 17, 1, AttrMap call Function49336 ld a, $3 - ld bc, $0601 + lb bc, 6, 1 hlcoord 6, 9, AttrMap call Function49336 ld a, $3 - ld bc, $0601 + lb bc, 6, 1 hlcoord 17, 9, AttrMap call Function49336 ld a, $2 @@ -39411,7 +39411,7 @@ endr Function49811: ; 49811 ld hl, Palette_49826 ld de, wd010 - ld bc, $0030 + ld bc, $30 ld a, $5 call FarCopyWRAM callba Function96a4 @@ -39472,16 +39472,16 @@ Special_CelebiShrineEvent: ; 4989a xor a ld [VramState], a call LoadCelebiGFX - ld de, $0750 + ld de, $750 ld a, $2c call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $84 - ld hl, $0002 + ld hl, $2 add hl, bc ld [hl], $1f - ld hl, $000f + ld hl, $f add hl, bc ld a, $80 ld [hl], a @@ -39527,7 +39527,7 @@ endr dec c jr nz, .loop ld hl, Sprites + $10 - ld bc, $0090 + ld bc, $90 xor a call ByteFill ret @@ -39576,7 +39576,7 @@ Function49944: ; 49944 ld e, $0 ld a, $18 call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $80 ret @@ -39717,7 +39717,7 @@ endr ld e, [hl] inc hl ld d, [hl] - ld hl, $0 + ld hl, $ .asm_49b61 srl a jr nc, .asm_49b66 @@ -39772,7 +39772,7 @@ Function49bae: ; 49bae ld a, $90 .asm_49bde - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], a jr .asm_49be9 @@ -40570,8 +40570,8 @@ Strings_4a23d: ; 4a23d Function4a28a: ; 4a28a (12:628a) hlcoord 2, 3 - ld bc, $601 - ld a, $7f + lb bc, 6, 1 + ld a, " " call Function4a6d8 call Function1bee call WaitBGMap @@ -40724,64 +40724,64 @@ Function4a3a7: ; 4a3a7 (12:63a7) call Function4a485 Function4a3aa: ; 4a3aa hlcoord 0, 0 - ld bc, $301 + lb bc, 3, 1 xor a call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $1 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 xor a call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $1 call Function4a6d8 - ld bc, $401 + lb bc, 4, 1 ld a, $2 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $3 call Function4a6d8 - ld bc, $101 - ld a, $7f + lb bc, 1, 1 + ld a, " " call Function4a6d8 hlcoord 1, 0 ld a, $1 - ld bc, $312 + lb bc, 3, 18 call Function4a6d8 - ld bc, $112 + lb bc, 1, 18 ld a, $0 call Function4a6d8 - ld bc, $112 + lb bc, 1, 18 ld a, $1 call Function4a6d8 - ld bc, $112 + lb bc, 1, 18 ld a, $2 call Function4a6d8 - ld bc, $b12 - ld a, $7f + lb bc, 11, 18 + ld a, " " call Function4a6d8 hlcoord 19, 0 - ld bc, $301 + lb bc, 3, 1 ld a, $0 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $1 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 xor a call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $1 call Function4a6d8 - ld bc, $401 + lb bc, 4, 1 ld a, $2 call Function4a6d8 - ld bc, $101 + lb bc, 1, 1 ld a, $3 call Function4a6d8 - ld bc, $101 - ld a, $7f + lb bc, 1, 1 + ld a, " " call Function4a6d8 ret ; 4a449 (12:6449) @@ -41624,7 +41624,7 @@ Function4a9d7: ; 4a9d7 ld h, d ld l, e ld de, EndFlypoint - ld bc, $0006 + ld bc, 6 call CopyBytes ld a, [wd003] ld hl, PartyMonNicknames @@ -41632,7 +41632,7 @@ Function4a9d7: ; 4a9d7 ld h, d ld l, e ld de, wd00c - ld bc, $0006 + ld bc, 6 call CopyBytes ld a, [wd004] ld hl, PartyMonNicknames @@ -41640,7 +41640,7 @@ Function4a9d7: ; 4a9d7 ld h, d ld l, e ld de, wd012 - ld bc, $0006 + ld bc, 6 call CopyBytes ld hl, UnknownText_0x4aa1d call PrintText @@ -41731,13 +41731,13 @@ Function4aa7a: ; 4aa7a push hl ld c, l ld b, h - ld hl, $0002 + ld hl, $2 add hl, bc ld [hl], a pop hl .next - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .inner_loop @@ -41765,7 +41765,7 @@ Function4aab6: ; 4aab6 push de push hl hlcoord 0, 1 - ld bc, $0028 + ld bc, $28 call AddNTimes ld [hl], $ec pop hl @@ -42004,7 +42004,7 @@ endr ld a, [PartyCount] hlcoord 6, 1 .asm_4ac3b - ld bc, $0028 + ld bc, $28 add hl, bc dec a jr nz, .asm_4ac3b @@ -42295,7 +42295,7 @@ Function4ae12: ; 4ae12 ; 4ae1f Function4ae1f: ; 4ae1f - ld bc, $0e07 + lb bc, 14, 7 push bc ld hl, YesNoMenuDataHeader call CopyMenuDataHeader @@ -42616,7 +42616,7 @@ Function4d15b:: ; 4d15b ld a, [wd196] and a jr z, .asm_4d168 - ld bc, $0030 + ld bc, $30 add hl, bc .asm_4d168 @@ -43579,7 +43579,7 @@ CheckPartyFullAfterContest: ; 4d9e5 call GetPokemonName ld hl, StringBuffer1 ld de, wd050 - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes call GiveANickname_YesNo jr c, .asm_4da66 @@ -45235,7 +45235,7 @@ _EvolutionAnimation: ; 4e607 ld de, VTiles2 ld hl, VTiles2 tile $31 - ld bc, $0031 + ld bc, $31 call Request2bpp ld a, $31 @@ -45352,7 +45352,7 @@ Function4e711: ; 4e711 Function4e726: ; 4e726 call ClearJoypad - ld bc, $010e + lb bc, 1, 14 .asm_4e72c push bc call Function4e779 @@ -45393,7 +45393,7 @@ Function4e755: ; 4e755 ld [hBGMapMode], a hlcoord 7, 2 lb bc, 7, 7 - ld de, $000d + ld de, $d .asm_4e762 push bc .asm_4e763 @@ -45497,7 +45497,7 @@ Function4e7e8: ; 4e7e8 ld de, $4858 ld a, $13 call Function3b2a - ld hl, $000b + ld hl, $b add hl, bc ld a, [wJumptableIndex] and $e @@ -45505,10 +45505,10 @@ Function4e7e8: ; 4e7e8 pop de add e ld [hl], a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $0 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $10 ret @@ -45788,7 +45788,7 @@ endr Function4e9d6: ; 4e9d6 ld hl, Sprites + 1 ld c, $12 - ld de, $0004 + ld de, $4 .asm_4e9de rept 2 dec [hl] @@ -45839,11 +45839,11 @@ Function4ea0a: ; 4ea0a call MobileTextBorder pop af dec a - ld bc, $000c + ld bc, $c ld hl, wdc1a call AddNTimes ld de, wcd53 - ld bc, $000c + ld bc, $c ld a, $5 call FarCopyWRAM ld a, [rSVBK] @@ -46023,7 +46023,7 @@ Function5009b: ; 5009b pop hl call PlaceString pop hl - ld de, $0028 + ld de, $28 add hl, de pop bc inc b @@ -46077,7 +46077,7 @@ Function500cf: ; 500cf ld hl, wcda9 inc [hl] pop hl - ld de, $0028 + ld de, $28 add hl, de pop bc inc b @@ -46149,7 +46149,7 @@ endr .asm_5016b pop hl - ld de, $0028 + ld de, $28 add hl, de pop bc inc b @@ -46183,7 +46183,7 @@ Function50176: ; 50176 jr nc, .asm_501a1 ld a, "" ld [hli], a - ld bc, $4102 + lb bc, PRINTNUM_RIGHTALIGN | 1, 2 ; Missing a jr in here .asm_501a1 lb bc, PRINTNUM_RIGHTALIGN | 1, 3 call PrintNum @@ -46319,7 +46319,7 @@ endr .asm_5025d pop hl - ld de, $0028 + ld de, $28 add hl, de pop bc inc b @@ -46407,7 +46407,7 @@ Function502b1: ; 502b1 .asm_502e3 pop hl - ld de, $0028 + ld de, $28 add hl, de pop bc inc b @@ -46442,7 +46442,7 @@ Function50307: ; 50307 ld de, String_50372 call PlaceString pop hl - ld de, $0028 + ld de, $28 add hl, de pop bc inc b @@ -46468,7 +46468,7 @@ Function50307: ; 50307 .asm_50340 and a jr z, .asm_5034a - ld de, $0028 + ld de, $28 add hl, de dec a jr .asm_50340 @@ -46695,7 +46695,7 @@ PartyMenuSelect: ; 0x50457 PrintPartyMenuText: ; 5049a hlcoord 0, 14 - ld bc, $0212 + lb bc, 2, 18 call TextBox ld a, [PartyCount] and a @@ -47595,7 +47595,7 @@ DrawHP: ; 50b10 pop hl ; Print HP - ld bc, $0015 ; move (1,1) + ld bc, $15 ; move (1,1) add hl, bc ld de, TempMonHP ld a, [MonType] @@ -47886,7 +47886,7 @@ Function50cd0: ; 50cd0 ret ; 50cdb -Function50cdb: ; 50cdb +Function50cdb: ; unreferenced predef push hl push hl ld hl, PartyMonNicknames @@ -47900,12 +47900,12 @@ Function50cdb: ; 50cdb cp EGG jr z, .asm_50d09 push hl - ld bc, $fff4 + ld bc, -12 add hl, bc ld b, $0 call DrawEnemyHP pop hl - ld bc, $0005 + ld bc, 5 add hl, bc push de call PrintLevel @@ -49783,24 +49783,24 @@ Function8036f: ; 8036f bit 0, [hl] jr z, .asm_8039c - ld hl, $0007 + ld hl, $7 add hl, bc ld a, [hl] cp $ff jr nz, .asm_8039c - ld hl, $0006 + ld hl, $6 add hl, bc bit 6, [hl] jr z, .asm_8039c - ld hl, $0005 + ld hl, $5 add hl, bc set 2, [hl] ld a, [WalkingDirection] ld d, a - ld hl, $0020 + ld hl, $20 add hl, bc ld a, [hl] and $fc @@ -50271,7 +50271,7 @@ Function818fd: ; 818fd push hl call Function81928 pop hl - ld bc, $0008 + ld bc, 8 add hl, bc pop bc dec c @@ -50287,7 +50287,7 @@ Function81911: ; 81911 push hl call Function81928 pop hl - ld bc, $0004 + ld bc, 4 add hl, bc pop bc dec c @@ -50346,15 +50346,15 @@ Function81948: ; 81948 Function8197c: ; 8197c ld hl, DebugColorTestGFX + $10 ld de, VTiles2 tile $6a - ld bc, $0160 + ld bc, $160 call CopyBytes ld hl, DebugColorTestGFX ld de, VTiles0 - ld bc, $0010 + ld bc, $10 call CopyBytes call Functione51 ld hl, VTiles1 - ld bc, $0800 + lb bc, 8, 0 .asm_8199d ld a, [hl] xor $ff @@ -50376,7 +50376,7 @@ Function819a7: ; 819a7 ld [rSVBK], a ld hl, Palette_819f4 ld de, BGPals - ld bc, $0080 + ld bc, $80 call CopyBytes ld a, $80 ld [rBGPI], a @@ -50620,7 +50620,7 @@ Function81adb: ; 81adb ld a, $31 ld [$ffad], a hlcoord 2, 4 - ld bc, $0606 + lb bc, 6, 6 predef FillBox ld a, [wd003] and a @@ -50683,13 +50683,13 @@ Function81bde: ; 81bde push af ld a, $6a ld [hli], a - ld bc, $000f + ld bc, $f ld a, $6b call ByteFill ld l, e ld h, d pop af - ld bc, $0028 + ld bc, $28 call ByteFill ret ; 81bf4 @@ -50705,7 +50705,7 @@ endr ld de, OverworldMap add hl, de ld de, wc608 - ld bc, $0004 + ld bc, 4 call CopyBytes xor a ld [wcf64], a @@ -50960,7 +50960,7 @@ Function81d89: ; 81d89 Function81d8e: ; 81d8e hlcoord 0, 10 - ld bc, $00a0 + ld bc, $a0 ld a, $6f call ByteFill hlcoord 2, 12 @@ -51082,7 +51082,7 @@ endr ; 81e5e Function81e5e: ; 81e5e - ld bc, $000a + ld bc, $a ld a, $6f call ByteFill ret @@ -51163,7 +51163,7 @@ endr ld e, l ld d, h ld hl, wc608 - ld bc, $0004 + ld bc, 4 call CopyBytes ret ; 81ee3 @@ -51387,16 +51387,16 @@ TilesetColorTest: ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, $7 call ByteFill - ld de, $0015 + ld de, $15 ld a, $6c call Function821d2 - ld de, $001a + ld de, $1a ld a, $6d call Function821d2 - ld de, $001f + ld de, $1f ld a, $6e call Function821d2 - ld de, $0024 + ld de, $24 ld a, $6f call Function821d2 call Function821f4 @@ -51421,12 +51421,12 @@ Function821de: ; 821de rept 4 ld [hli], a endr - ld bc, $0010 + ld bc, $10 add hl, bc rept 4 ld [hli], a endr - ld bc, $0010 + ld bc, $10 add hl, bc rept 4 ld [hli], a @@ -51464,7 +51464,7 @@ endr ld de, Unkn1Pals add hl, de ld de, wc608 - ld bc, $0008 + ld bc, 8 call CopyBytes ld de, wc608 call Function81ea5 @@ -51496,13 +51496,13 @@ Function82236: ; 82236 .asm_82253 ld [hl], a - ld de, $0015 + ld de, $15 call Function821d8 - ld de, $001a + ld de, $1a call Function821d8 - ld de, $001f + ld de, $1f call Function821d8 - ld de, $0024 + ld de, $24 call Function821d8 ld a, [rSVBK] push af @@ -51510,10 +51510,10 @@ Function82236: ; 82236 ld [rSVBK], a ld hl, BGPals ld a, [wcf64] - ld bc, $0008 + ld bc, 8 call AddNTimes ld de, wc608 - ld bc, $0008 + ld bc, 8 call CopyBytes pop af ld [rSVBK], a @@ -51540,12 +51540,12 @@ Function822a3: ; 822a3 ld [rSVBK], a ld hl, BGPals ld a, [wcf64] - ld bc, $0008 + ld bc, 8 call AddNTimes ld e, l ld d, h ld hl, wc608 - ld bc, $0008 + ld bc, 8 call CopyBytes hlcoord 1, 0 ld de, wc608 @@ -51738,7 +51738,7 @@ SECTION "bank21", ROMX, BANK[$21] Function84000: ; 84000 ld hl, OverworldMap - ld bc, $040c + lb bc, 4, 12 xor a call Function842ab xor a @@ -52045,7 +52045,7 @@ endr ret Function84219: ; 84219 (21:4219) - ld hl, $0 + ld hl, $ ld bc, $4 ld de, wca82 call Function8423c @@ -52860,7 +52860,7 @@ Function84785: ; 84785 xor a ld [hBGMapMode], a hlcoord 0, 5 - ld bc, $0a12 + lb bc, 10, 18 call TextBox pop af ld e, a @@ -53329,7 +53329,7 @@ Function864c3: ; 864c3 cp 6 jr nc, .done ld hl, wc608 + 1 - ld bc, $0010 + ld bc, $10 call AddNTimes ld a, [hl] cp -1 @@ -53486,7 +53486,7 @@ endr ld a, $31 ld [$ffad], a hlcoord 6, 6 - ld bc, $0606 + lb bc, 6, 6 predef FillBox ld a, $d0 ld [hSCY], a @@ -53595,7 +53595,7 @@ Function86692: ; 86692 cp $6 jr nc, .asm_866a7 ld hl, wc608 + 1 - ld bc, $0010 + ld bc, $10 call AddNTimes ld a, [hl] cp $ff @@ -53820,10 +53820,10 @@ Function86810: ; 86810 xor a ld [hBGMapMode], a hlcoord 0, 2 - ld bc, $0809 + lb bc, 8, 9 call TextBox hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, 18 call TextBox hlcoord 2, 4 ld de, PlayerName @@ -54219,7 +54219,7 @@ ShakeHeadbuttTree: ; 8c80a call Function8cad3 ld a, $1b call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $84 ld a, $90 @@ -54250,7 +54250,7 @@ ShakeHeadbuttTree: ; 8c80a ld [hBGMapMode], a callba Function8cf53 ld hl, Sprites + $90 - ld bc, $0010 + ld bc, $10 xor a call ByteFill ld de, Font @@ -54434,7 +54434,7 @@ Function8ca73: ; 8ca73 (23:4a73) ret Function8ca8e: ; 8ca8e (23:4a8e) - ld de, $0 + ld de, $ ld a, [wd197] bit 0, a jr z, .asm_8ca9a @@ -54784,7 +54784,7 @@ Function8ccc9: ; 8ccc9 ld hl, VTiles0 ld c, $4 call Request2bpp - ld hl, $00c0 + ld hl, $c0 add hl, de ld d, h ld e, l @@ -54892,11 +54892,11 @@ MagnetTrainBGTiles: ; 8cd82 Function8cda6: ; 8cda6 ld hl, LYOverrides - ld bc, $0090 + ld bc, $90 ld a, [wd192] call ByteFill ld hl, LYOverridesBackup - ld bc, $0090 + ld bc, $90 ld a, [wd192] call ByteFill ld a, $43 @@ -54910,25 +54910,25 @@ SetMagnetTrainPals: ; 8cdc3 ; bushes ld hl, VBGMap0 - ld bc, $0080 + ld bc, 8 tiles ld a, $2 call ByteFill ; train ld hl, VBGMap0 tile $08 - ld bc, $0140 + ld bc, 20 tiles xor a call ByteFill ; more bushes ld hl, VBGMap0 tile $1c - ld bc, $0080 + ld bc, 8 tiles ld a, $2 call ByteFill ; train window - ld hl, $9907 - ld bc, $0006 + ld hl, VBGMap0 tile $10 + 7 + ld bc, 6 ld a, $4 call ByteFill @@ -54986,7 +54986,7 @@ Function8ce19: ; 8ce19 ld [rSVBK], a ld a, b call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $0 call Function8ce14 @@ -55139,7 +55139,7 @@ Function8cf4f: ; 8cf4f Function8cf53: ; 8cf53 ld hl, wc300 - ld bc, $00c1 + ld bc, $c1 .asm_8cf59 ld [hl], $0 inc hl @@ -55192,7 +55192,7 @@ Function8cf7a: ; 8cf7a jr c, .done .next - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .loop @@ -55231,7 +55231,7 @@ Function8cfa8: ; 8cfa8 (23:4fa8) jr c, .done .next - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .loop @@ -55259,7 +55259,7 @@ Function8cfd6:: ; 8cfd6 ld a, [hl] and a jr z, .found - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .loop @@ -55304,7 +55304,7 @@ endr ld [hli], a pop de - ld hl, $0004 + ld hl, $4 add hl, bc ld a, e ld [hli], a @@ -55479,7 +55479,7 @@ Function8d0de: ; 8d0de Function8d0ec: ; 8d0ec xor a ld [wc3b8], a - ld hl, $0003 + ld hl, $3 add hl, bc ld a, [hli] ld [wc3ba], a @@ -55520,13 +55520,13 @@ Function8d109: ; 8d109 ; 8d120 Function8d120:: ; 8d120 - ld hl, $0001 + ld hl, $1 add hl, bc ld [hl], a - ld hl, $0008 + ld hl, $8 add hl, bc ld [hl], $0 - ld hl, $000a + ld hl, $a add hl, bc ld [hl], $ff ret @@ -55535,7 +55535,7 @@ Function8d120:: ; 8d120 Function8d132: ; 8d132 .loop - ld hl, $0008 + ld hl, $8 add hl, bc ld a, [hl] and a @@ -55547,7 +55547,7 @@ Function8d132: ; 8d132 jr .skip .ok - ld hl, $000a + ld hl, $a add hl, bc inc [hl] call Function8d189 @@ -55560,10 +55560,10 @@ Function8d132: ; 8d132 ld a, [hl] push hl and $3f - ld hl, $0009 + ld hl, $9 add hl, bc add [hl] - ld hl, $0008 + ld hl, $8 add hl, bc ld [hl], a pop hl @@ -55578,10 +55578,10 @@ Function8d132: ; 8d132 .minus_1 xor a - ld hl, $0008 + ld hl, $8 add hl, bc ld [hl], a - ld hl, $000a + ld hl, $a add hl, bc rept 2 dec [hl] @@ -55590,11 +55590,11 @@ endr .minus_2 xor a - ld hl, $0008 + ld hl, $8 add hl, bc ld [hl], a dec a - ld hl, $000a + ld hl, $a add hl, bc ld [hl], a jr .loop @@ -55603,7 +55603,7 @@ endr Function8d189: ; 8d189 ; Get the [bc+10]th entry in the data table ; indexed at [bc+1] in Unknown_8d6e6 - ld hl, $0001 + ld hl, $1 add hl, bc ld e, [hl] ld d, 0 @@ -55614,7 +55614,7 @@ endr ld e, [hl] inc hl ld d, [hl] - ld hl, $000a + ld hl, $a add hl, bc ld l, [hl] ld h, 0 @@ -55706,7 +55706,7 @@ Unknown_8d1c4: ; 8d1c4 Function8d24b: ; 8d24b - ld hl, $0002 + ld hl, $2 add hl, bc ld e, [hl] ld d, 0 @@ -55764,7 +55764,7 @@ endr .one: ; 8d2a2 (23:52a2) ld a, [wcfa9] - ld hl, $0 + ld hl, $ add hl, bc cp [hl] jr z, .two @@ -55815,7 +55815,7 @@ endr .three: ; 8d2ea (23:52ea) ld a, [wcfa9] - ld hl, $0 + ld hl, $ add hl, bc cp [hl] jr z, .asm_8d2fb @@ -55844,44 +55844,44 @@ endr ld hl, 0 add hl, bc ld a, [hl] - ld hl, $000d + ld hl, $d add hl, bc and $3 ld [hl], a inc [hl] swap a - ld hl, $000c + ld hl, $c add hl, bc ld [hl], a .four_one: ; 8d321 - ld hl, $0004 + ld hl, $4 add hl, bc ld a, [hl] cp $a4 jr nc, .asm_8d356 - ld hl, $000d + ld hl, $d add hl, bc add $4 - ld hl, $0004 + ld hl, $4 add hl, bc ld [hl], a - ld hl, $0005 + ld hl, $5 add hl, bc inc [hl] - ld hl, $000d + ld hl, $d add hl, bc ld a, [hl] sla a sla a ld d, $2 - ld hl, $000c + ld hl, $c add hl, bc ld a, [hl] add $3 ld [hl], a call Function8d6de - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], a ret @@ -56101,17 +56101,17 @@ endr .sixteen_zero: ; 8d493 ld a, $14 call Function8d120 - ld hl, $000b + ld hl, $b add hl, bc ld [hl], $2 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $20 ret ; 8d4a5 .sixteen_two: ; 8d4a5 - ld hl, $000c + ld hl, $c add hl, bc ld a, [hl] and a @@ -56121,12 +56121,12 @@ endr .asm_8d4af call Function8d6d8 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $40 .sixteen_three: ; 8d4b8 - ld hl, $000c + ld hl, $c add hl, bc ld a, [hl] cp $30 @@ -56134,7 +56134,7 @@ endr dec [hl] ld d, $28 call Function8d6de - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], a ret @@ -56146,42 +56146,42 @@ endr ; 8d4d5 .sixteen_one: ; 8d4d5 - ld hl, $000b + ld hl, $b add hl, bc ld [hl], $4 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $30 - ld hl, $000d + ld hl, $d add hl, bc ld [hl], $24 ret ; 8d4e8 .sixteen_four: ; 8d4e8 - ld hl, $000d + ld hl, $d add hl, bc ld a, [hl] and a jr z, .asm_8d51c ld d, a - ld hl, $000c + ld hl, $c add hl, bc ld a, [hl] call Function8e72c - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], a - ld hl, $000c + ld hl, $c add hl, bc inc [hl] ld a, [hl] and $3f ret nz - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $20 - ld hl, $000d + ld hl, $d add hl, bc ld a, [hl] sub $c @@ -56192,7 +56192,7 @@ endr .asm_8d51c xor a - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], a call Function8d6d8 @@ -56505,7 +56505,7 @@ endr ; 8d6d8 (23:56d8) Function8d6d8: ; 8d6d8 - ld hl, $000b + ld hl, $b add hl, bc inc [hl] ret @@ -58473,13 +58473,13 @@ Function8ea4a: ; 8ea4a push hl ld c, l ld b, h - ld hl, $0002 + ld hl, $2 add hl, bc ld [hl], a pop hl .next - ld bc, $0010 + ld bc, $10 add hl, bc dec e jr nz, .loop @@ -58755,7 +58755,7 @@ endr ld [de], a inc de push de - ld hl, $0003 + ld hl, $3 add hl, de ld a, [de] inc de @@ -59665,7 +59665,7 @@ Function90e72: ; 90e72 ld de, RadioTilemapRLE call Function914bb hlcoord 0, 12 - ld bc, $412 + lb bc, 4, 18 call TextBox ret ; 90e82 @@ -59674,7 +59674,7 @@ Function90e82: ; 90e82 ld de, PhoneTilemapRLE call Function914bb hlcoord 0, 12 - ld bc, $412 + lb bc, 4, 18 call TextBox call Function90e98 call Function912d8 @@ -59997,7 +59997,7 @@ Function9106a: ; 9106a .asm_91079 ld a, b call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $10 pop af @@ -60005,10 +60005,10 @@ Function9106a: ; 9106a push bc callba GetLandmarkCoords pop bc - ld hl, $0004 + ld hl, $4 add hl, bc ld [hl], e - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], d ret @@ -60019,10 +60019,10 @@ Function91098: ; 91098 ld de, 0 ld a, $d call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $4 - ld hl, $0002 + ld hl, $2 add hl, bc ld [hl], $0 pop af @@ -60053,10 +60053,10 @@ Function910d4: ; 910d4 ld e, a callba GetLandmarkCoords pop bc - ld hl, $0004 + ld hl, $4 add hl, bc ld [hl], e - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], d ret @@ -60887,7 +60887,7 @@ Function91a04: ; 91a04 .asm_91a11 callba Function91ae1 ld a, $7 - ld bc, $0006 + ld bc, 6 hlcoord 1, 0 call ByteFill hlcoord 0, 0 @@ -60899,7 +60899,7 @@ Function91a04: ; 91a04 hlcoord 7, 2 ld [hl], $26 ld a, $7 - ld bc, $000b + ld bc, NAME_LENGTH hlcoord 8, 2 call ByteFill hlcoord 19, 2 @@ -60961,7 +60961,7 @@ endr .jump_return push de hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, 18 call TextBox hlcoord 1, 14 ld [hl], $72 @@ -61219,10 +61219,10 @@ GetMapCursorCoordinates: ; 91c17 ld c, a ld a, [wd004] ld b, a - ld hl, $0004 + ld hl, $4 add hl, bc ld [hl], e - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], d ret @@ -61541,7 +61541,7 @@ Function91dcd: ; 91dcd .asm_91ddc hlcoord 0, 0 ld de, Sprites - ld bc, $00a0 + ld bc, $a0 call CopyBytes ret ; 91de9 @@ -61604,7 +61604,7 @@ Function91e1e: ; 91e1e .asm_91e4d ld hl, Sprites decoord 0, 0 - ld bc, $00a0 + ld bc, $a0 call CopyBytes ret ; 91e5a @@ -61869,7 +61869,7 @@ TownMapPlayerIcon: ; 91fa6 call Request2bpp ; Walking icon - ld hl, $00c0 + ld hl, $c0 add hl, de ld d, h ld e, l @@ -61889,7 +61889,7 @@ TownMapPlayerIcon: ; 91fa6 ld a, b call Function3b2a - ld hl, $0003 + ld hl, $3 add hl, bc ld [hl], $10 @@ -62101,7 +62101,7 @@ Function926f7: ; 926f7 (24:66f7) call DelayFrame call DisableLCD ld hl, VBGMap0 tile $00 - ld bc, $400 + lb bc, 4, 0 ld a, $7f call ByteFill ld b, $5 @@ -62694,7 +62694,7 @@ Function92a98: ; 92a98 (24:6a98) ret Function92af9: ; 92af9 (24:6af9) - ld hl, $0 + ld hl, $ add hl, bc ld [hl], $0 ld hl, $3 @@ -62890,53 +62890,53 @@ Function92c16: ; 92c16 ; 92c17 Function92c17: ; 92c17 - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $10 ret ; 92c1e Function92c1e: ; 92c1e - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $8 ret ; 92c25 Function92c25: ; 92c25 - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $4 ret ; 92c2c Function92c2c: ; 92c2c - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $2 ret ; 92c33 Function92c33: ; 92c33 - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $1 ret ; 92c3a Function92c3a: ; 92c3a - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $0 ld hl, 0 add hl, bc ld [hl], $1 - ld hl, $000f + ld hl, $f add hl, bc ld [hl], $3 Function92c4c: ; 92c4c - ld hl, $000f + ld hl, $f add hl, bc ld a, [hl] and a @@ -62956,7 +62956,7 @@ Function92c5e: ; 92c5e ld a, [wc709] cp $ff jr z, .asm_92c72 - ld hl, $0009 + ld hl, $9 add hl, bc ld a, [hl] and a @@ -62997,7 +62997,7 @@ Function92c86: ; 92c86 ld a, [wc709] cp $ff jr z, .asm_92ca5 - ld hl, $0009 + ld hl, $9 add hl, bc ld a, [hl] and a @@ -63016,7 +63016,7 @@ Function92ca9: ; 92ca9 ld hl, wc709 cp [hl] jr z, .asm_92cce - ld hl, $0009 + ld hl, $9 add hl, bc ld a, [hl] and a @@ -63028,7 +63028,7 @@ Function92ca9: ; 92ca9 ld a, [wc709] cp $ff jr z, .asm_92cce - ld hl, $0009 + ld hl, $9 add hl, bc ld a, [hl] and a @@ -63056,17 +63056,17 @@ Function92cd2: ; 92cd2 ld hl, 0 add hl, bc inc [hl] - ld hl, $000a + ld hl, $a add hl, bc ld [hl], $20 - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $0 ret ; 92cf8 Function92cf8: ; 92cf8 - ld hl, $000a + ld hl, $a add hl, bc ld a, [hl] and a @@ -63080,7 +63080,7 @@ Function92cf8: ; 92cf8 ld hl, 0 add hl, bc inc [hl] - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $8 ret @@ -63105,7 +63105,7 @@ Function92d20: ; 92d20 ld hl, 0 add hl, bc inc [hl] - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $0 call Function92fc0 @@ -63114,7 +63114,7 @@ Function92d20: ; 92d20 ld de, $6068 ld a, $6 call Function3b2a - ld hl, $000e + ld hl, $e add hl, bc pop af ld [hl], a @@ -63139,7 +63139,7 @@ Function92d4f: ; 92d4f ld hl, 0 add hl, bc inc [hl] - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $8 ret @@ -63151,7 +63151,7 @@ Function92d6e: ; 92d6e ld hl, 0 add hl, bc dec [hl] - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $0 ret @@ -63166,7 +63166,7 @@ Function92d7e: ; 92d7e ld hl, 0 add hl, bc inc [hl] - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $0 push bc @@ -63196,15 +63196,15 @@ Function92db3: ; 92db3 ld hl, 0 add hl, bc inc [hl] - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $10 - ld hl, $000a + ld hl, $a add hl, bc ld [hl], $11 Function92dca: ; 92dca - ld hl, $000a + ld hl, $a add hl, bc ld a, [hl] and a @@ -63223,7 +63223,7 @@ Function92dca: ; 92dca ret .asm_92de5 - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $0 ld hl, 0 @@ -63246,12 +63246,12 @@ Function92df7: ; 92df7 add hl, bc inc [hl] call Function92fc0 - ld hl, $000a + ld hl, $a add hl, bc ld [hl], a Function92e10: ; 92e10 - ld hl, $000a + ld hl, $a add hl, bc ld a, [hl] and a @@ -63265,15 +63265,15 @@ Function92e10: ; 92e10 ld hl, 0 add hl, bc inc [hl] - ld hl, $000b + ld hl, $b add hl, bc ld [hl], $20 - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $0 Function92e31: ; 92e31 - ld hl, $000b + ld hl, $b add hl, bc ld a, [hl] and a @@ -63285,7 +63285,7 @@ Function92e31: ; 92e31 ld hl, 0 add hl, bc dec [hl] - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $8 ret @@ -63297,18 +63297,18 @@ Function92e47: ; 92e47 ld a, SFX_STOP_SLOT call Function9331e call Function93316 - ld hl, $0005 + ld hl, $5 add hl, bc ld [hl], $1 ld hl, 0 add hl, bc inc [hl] - ld hl, $000a + ld hl, $a add hl, bc ld [hl], $10 Function92e64: ; 92e64 - ld hl, $000a + ld hl, $a add hl, bc ld a, [hl] and a @@ -63571,7 +63571,7 @@ Function92fb4: ; 92fb4 ; 92fc0 Function92fc0: ; 92fc0 - ld hl, $0003 + ld hl, $3 add hl, bc ld a, [hl] push af @@ -63590,7 +63590,7 @@ Function92fcf: ; 92fcf jr nz, .asm_92fe8 ld e, $0 .asm_92fd7 - ld hl, $0003 + ld hl, $3 add hl, bc inc [hl] inc e @@ -63611,7 +63611,7 @@ Function92fcf: ; 92fcf .asm_92ff2 ld a, e inc e - ld hl, $0003 + ld hl, $3 add hl, bc add [hl] ld [hl], a @@ -63996,7 +63996,7 @@ Function93233: ; 93233 (24:7233) jr nz, .asm_93247 ld a, $2 ld [wcf64], a - ld hl, $0 + ld hl, $ add hl, bc ld [hl], $0 ret @@ -64112,7 +64112,7 @@ Function932e0: ; 932e0 (24:72e0) jr z, .asm_932f1 cp $5 ret nz - ld hl, $0 + ld hl, $ add hl, bc ld [hl], $0 ret @@ -65149,7 +65149,7 @@ Functionb92b8: ; b92b8 push hl ld a, $0 call GetSRAMBank - ld de, $002b + ld de, $2b add hl, de ld a, [hli] ld [Buffer1], a @@ -65403,7 +65403,7 @@ Functionb9491: ; b9491 Functionb94d6: ; b94d6 push bc ld hl, VTiles2 tile $31 - ld bc, $0028 + ld bc, $28 call Functionb97f8 ld de, Unknown_b9c96 ld c, 8 @@ -65483,7 +65483,7 @@ Functionb9582: ; b9582 ld c, $8 call Functionb9915 ld a, $ff - ld bc, $0010 + ld bc, $10 call ByteFill ld de, Unknown_b992e ld c, $8 @@ -65660,7 +65660,7 @@ Functionb9710: ; b9710 ld c, $30 call Functionb991e xor a - ld bc, $0010 + ld bc, $10 call ByteFill ld de, Unknown_b9cfe ld c, $18 @@ -65692,7 +65692,7 @@ Functionb9710: ; b9710 Functionb9776: ; b9776 push bc ld hl, VTiles2 tile $31 - ld bc, $0028 + ld bc, $28 call Functionb97f8 ld de, Unknown_b992e ld c, $8 @@ -65763,7 +65763,7 @@ Functionb97f8: ; b97f8 ; b9803 Functionb9803: ; b9803 - ld bc, $002f + ld bc, $2f ld de, wd002 ld a, $0 call GetSRAMBank @@ -65771,7 +65771,7 @@ Functionb9803: ; b9803 call CloseSRAM ld hl, wd023 ld de, wd050 - ld bc, $000a + ld bc, $a call CopyBytes ld a, $50 ld [wd023], a @@ -65943,7 +65943,7 @@ Functionb98ee: ; b98ee ld [hli], a inc a ld [hl], a - ld bc, $0013 + ld bc, $13 add hl, bc inc a ld [hli], a @@ -66453,7 +66453,7 @@ endr ld hl, wd012 call Functione004e pop hl - ld bc, $0010 + ld bc, $10 add hl, bc pop bc inc c @@ -66462,7 +66462,7 @@ endr jr c, .asm_e000b ld hl, OverworldMap ld de, sScratch - ld bc, $0310 + ld bc, $310 call CopyBytes pop hl ld de, sScratch @@ -66707,7 +66707,7 @@ endr xor a ld [hBGMapMode], a hlcoord 0, 0 - ld bc, $0c09 + lb bc, 12, 9 call Functione04e5 hlcoord 9, 0 ld bc, SCREEN_WIDTH @@ -66768,7 +66768,7 @@ endr xor $1 ld [hl], a call Functione03ac - ld bc, $0605 + lb bc, 6, 5 call Functione04e5 pop af ld [wcf66], a @@ -66896,7 +66896,7 @@ endr Functione0366: ; e0366 ld hl, wc6d0 - ld bc, $0018 + ld bc, $18 xor a call ByteFill ld de, wc6d0 @@ -66918,14 +66918,14 @@ Functione0366: ; e0366 xor a ld [wc6e8], a ld hl, wc6ea - ld bc, $0018 + ld bc, $18 call ByteFill ret ; e0398 Functione0398: ; e0398 ld hl, 0 - ld bc, $0006 + ld bc, 6 ld a, [wcf64] call AddNTimes ld b, $0 @@ -66988,7 +66988,7 @@ endr ld e, a ld d, [hl] pop hl - ld bc, $0017 + ld bc, $17 add hl, bc ld [hl], e ld bc, SCREEN_HEIGHT @@ -67083,7 +67083,7 @@ Functione04c1: ; e04c1 (38:44c1) lb bc, 12, 11 call Functione04f7 hlcoord 0, 12 - ld bc, $412 + lb bc, 4, 18 call TextBox ret ; e04e5 (38:44e5) @@ -68146,23 +68146,23 @@ Functione0c37: ; e0c37 (38:4c37) xor a call ByteFill hlcoord 12, 1, AttrMap - ld bc, $202 + lb bc, 2, 2 ld a, $1 call Functione04e7 hlcoord 14, 1, AttrMap - ld bc, $202 + lb bc, 2, 2 ld a, $2 call Functione04e7 hlcoord 16, 1, AttrMap - ld bc, $202 + lb bc, 2, 2 ld a, $3 call Functione04e7 hlcoord 18, 1, AttrMap - ld bc, $202 + lb bc, 2, 2 ld a, $4 call Functione04e7 hlcoord 9, 0, AttrMap - ld bc, $c01 + lb bc, 12, 1 ld a, $1 call Functione04e7 ld a, [rSVBK] ; $ff00+$70 @@ -68267,12 +68267,12 @@ Functione1190: ; e1190 ld [hBGMapMode], a call DisableLCD ld hl, wc608 - ld bc, $01e0 + ld bc, $1e0 xor a call ByteFill ld hl, GFX_e17c5 ld de, VTiles1 tile $60 - ld bc, $0040 + ld bc, $40 call CopyBytes ld hl, LZ_e1805 ld de, VTiles1 tile $6d @@ -68283,7 +68283,7 @@ Functione1190: ; e1190 ld a, $ee call ByteFill hlcoord 4, 3 - ld bc, $0c0c + lb bc, 12, 12 ld a, $ef call Functione13ee call Functione124e @@ -68391,7 +68391,7 @@ Functione128d: ; e128d hlcoord 4, 15 ld a, $f0 ld [hli], a - ld bc, $000a + ld bc, $a ld a, $f1 call ByteFill hlcoord 15, 15 @@ -68400,7 +68400,7 @@ Functione128d: ; e128d hlcoord 4, 16 ld a, $f3 ld [hli], a - ld bc, $000a + ld bc, $a ld a, $ef call ByteFill hlcoord 15, 16 @@ -68409,7 +68409,7 @@ Functione128d: ; e128d hlcoord 4, 17 ld a, $f4 ld [hli], a - ld bc, $000a + ld bc, $a ld a, $f1 call ByteFill hlcoord 15, 17 @@ -68895,11 +68895,11 @@ Functione1631: ; e1631 push hl call Functione1654 pop hl - ld bc, $0008 + ld bc, 8 add hl, bc call Functione1654 pop hl - ld bc, $0060 + ld bc, $60 add hl, bc pop bc dec b @@ -68970,7 +68970,7 @@ Functione1654: ; e1654 dec c jr nz, .asm_e1681 pop hl - ld bc, $0010 + ld bc, $10 add hl, bc pop bc dec c @@ -69038,12 +69038,12 @@ Functione16e2: ; e16e2 dec b jr nz, .asm_e16ea pop hl - ld de, $0030 + ld de, $30 add hl, de pop de dec c jr nz, .asm_e16e6 - ld bc, $0180 + ld bc, $180 add hl, bc pop bc dec b @@ -69462,7 +69462,7 @@ UnknownText_0xe2098: ; 0xe2098 Functione209d: ; e209d ld hl, wc6d0 - ld bc, $002d + ld bc, $2d xor a call ByteFill call Functione2101 @@ -69612,7 +69612,7 @@ Functione2183: ; e2183 add $9 ld e, a hlcoord 1, 2 - ld bc, $0028 + ld bc, $28 .asm_e2195 ld a, d and a @@ -69650,7 +69650,7 @@ Functione21a1: ; e21a1 (38:61a1) jr nz, .asm_e220d ret .asm_e21c8 - ld hl, $0 + ld hl, $ add hl, bc ld [hl], $0 ret @@ -70717,7 +70717,7 @@ Functione2a6c: ; e2a6c Functione2a6e: ; e2a6e (38:6a6e) push de hlcoord 0, 15 - ld bc, $112 + lb bc, 1, 18 call TextBox pop de hlcoord 1, 16 @@ -71594,7 +71594,7 @@ Functione307c: ; e307c (38:707c) lb bc, 1, 3 call ClearBox hlcoord 0, 15 - ld bc, $112 + lb bc, 1, 18 call TextBox call WaitBGMap hlcoord 1, 16 @@ -71649,7 +71649,7 @@ TryWithdrawPokemon: ; e30fa (38:70fa) lb bc, 1, 3 call ClearBox hlcoord 0, 15 - ld bc, $112 + lb bc, 1, 18 call TextBox call WaitBGMap hlcoord 1, 16 @@ -71686,7 +71686,7 @@ Functione3180: ; e3180 (38:7180) lb bc, 1, 3 call ClearBox hlcoord 0, 15 - ld bc, $112 + lb bc, 1, 18 call TextBox call WaitBGMap @@ -71707,7 +71707,7 @@ Functione3180: ; e3180 (38:7180) ld c, 80 call DelayFrames hlcoord 0, 15 - ld bc, $112 + lb bc, 1, 18 call TextBox hlcoord 1, 16 ld de, PCString_Bye @@ -71731,7 +71731,7 @@ Functione31e7: ; e31e7 push bc push af hlcoord 0, 15 - ld bc, $0112 + lb bc, 1, 18 call TextBox hlcoord 1, 16 ld de, String_e3233 @@ -72367,7 +72367,7 @@ String_e37d3: ; e37d3 Functione37e3: ; e37e3 (38:77e3) push de hlcoord 0, 14 - ld bc, $212 + lb bc, 2, 18 call TextBox pop de hlcoord 1, 16 @@ -72798,7 +72798,7 @@ GetPrinterSetting: ; e4491 .IsLight ld c, $1 - ld de, $0040 ;the 2 values next to this setting + ld de, $40 ;the 2 values next to this setting ret .IsDark @@ -72959,7 +72959,7 @@ Functione455c: ; e455c dec c jr nz, .asm_e4564 hlcoord 1, 2 - ld bc, $0028 + ld bc, $28 ld a, [wJumptableIndex] call AddNTimes ld [hl], $ed @@ -73033,11 +73033,11 @@ Functione45e8: ; e45e8 call FarDecompress ld hl, VTiles0 ld de, w6_d000 - ld bc, $0180 + ld bc, $180 call Request2bpp ld hl, VTiles1 ld de, w6_d000 + $800 - ld bc, $0180 + ld bc, $180 call Request2bpp pop af ld [rSVBK], a @@ -73045,13 +73045,13 @@ Functione45e8: ; e45e8 ld de, $5458 ld a, $3 call Function3b2a - ld hl, $0007 + ld hl, $7 add hl, bc ld [hl], $a0 - ld hl, $000c + ld hl, $c add hl, bc ld [hl], $60 - ld hl, $000d + ld hl, $d add hl, bc ld [hl], $30 xor a @@ -74901,9 +74901,9 @@ Functione546d: ; e546d (39:546d) ld [Requested2bppSource], a ld a, [hli] ld [Requested2bppSource + 1], a - ld a, $9090 % $100 + ld a, (VTiles2 tile $09) % $100 ld [Requested2bppDest], a - ld a, $9090 / $100 + ld a, (VTiles2 tile $09) / $100 ld [Requested2bppDest + 1], a ld a, $4 ld [Requested2bpp], a @@ -75641,7 +75641,7 @@ _LoadFontsBattleExtra:: ; fb4be Functionfb4cc: ; fb4cc ld a, [TextBoxFrame] and 7 - ld bc, $0030 + ld bc, $30 ld hl, Frames call AddNTimes ld d, h @@ -76687,7 +76687,7 @@ Functionfcc63: ; fcc63 call Functionfcdf4 ld hl, PartyMonOT - ld bc, $000b + ld bc, NAME_LENGTH call Functionfcdd7 ld de, wc6f2 call Functionfcdf4 @@ -76771,7 +76771,7 @@ Functionfcc63: ; fcc63 call Functionfcdf4 ld hl, PartyMonOT - ld bc, $000b + ld bc, NAME_LENGTH call Functionfcdde ld hl, wc724 call Functionfcdf4 @@ -76870,13 +76870,13 @@ Functionfcde8: ; fcde8 ; fcdf4 Functionfcdf4: ; fcdf4 - ld bc, $000b + ld bc, NAME_LENGTH call CopyBytes ret ; fcdfb Functionfcdfb: ; fcdfb - ld bc, $0004 + ld bc, 4 call CopyBytes ld a, $50 ld [de], a @@ -76884,7 +76884,7 @@ Functionfcdfb: ; fcdfb ; fce05 Functionfce05: ; fce05 - ld bc, $0003 + ld bc, 3 call CopyBytes ld a, $50 ld [de], a @@ -77930,12 +77930,12 @@ Function1042b2:: ; 1042b2 ld c, $10 call .asm_1042d6 pop de - ld hl, $0080 + ld hl, $80 add hl, de ld d, h ld e, l pop hl - ld bc, $100 + lb bc, 1, 0 add hl, bc pop bc ld a, c @@ -78296,13 +78296,13 @@ Function104770: ; 104770 (41:4770) ld a, $1 ld [rVBK], a ; $ff00+$4f xor a - ld bc, $400 + lb bc, 4, 0 ld hl, VBGMap0 tile $00 call ByteFill pop af ld [rVBK], a ; $ff00+$4f ld a, $60 - ld bc, $400 + lb bc, 4, 0 ld hl, VBGMap0 tile $00 call ByteFill ret @@ -80021,7 +80021,7 @@ Function1057d7: ; 1057d7 (41:57d7) ld hl, MysteryGiftJP_GFX ld de, VTiles2 tile $00 ld a, BANK(MysteryGiftJP_GFX) - ld bc, $400 + lb bc, 4, 0 call FarCopyBytes ld hl, MysteryGiftJP_GFX + $400 ld de, VTiles0 tile $00 @@ -80537,19 +80537,19 @@ Mobile_HallOfFame2:: mobile ; 0x105ef6 call GetSRAMBank ld hl, GameTimeHours ld de, $a001 - ld bc, $0004 + ld bc, 4 call CopyBytes ld hl, $a010 ld de, $a005 - ld bc, $0004 + ld bc, 4 call CopyBytes ld hl, $a039 ld de, $a009 - ld bc, $0004 + ld bc, 4 call CopyBytes ld hl, $a01b ld de, $a00d - ld bc, $0003 + ld bc, 3 call CopyBytes call Function106162 call CloseSRAM @@ -80979,7 +80979,7 @@ Function106162: ; 106162 Function10616e: ; 10616e push bc ld hl, $a001 - ld bc, $0080 + ld bc, $80 xor a ld de, 0 .asm_106179 @@ -81050,7 +81050,7 @@ Function1061c0: ; 1061c0 (41:61c0) Function1061cd: ; 1061cd ld hl, $a001 - ld bc, $0082 + ld bc, $82 xor a call ByteFill ld hl, $a07d @@ -81060,7 +81060,7 @@ Function1061cd: ; 1061cd call Function106162 ld hl, $a001 ld de, $a084 - ld bc, $0082 + ld bc, $82 call CopyBytes ret ; 1061ef @@ -81344,8 +81344,8 @@ Jumptable_10636a: ; 10636a Function10637c: ; 10637c ld de, wcd30 - ld hl, $0041 - ld bc, $0041 + ld hl, $41 + ld bc, $41 ld a, $40 call Function3e32 ld a, [wcd25] @@ -81522,7 +81522,7 @@ Function106464:: ; 106464 Function10649b: ; 10649b ld a, [TextBoxFrame] and $7 - ld bc, $0030 + ld bc, $30 ld hl, Frames call AddNTimes ld d, h @@ -81725,7 +81725,7 @@ INCBIN "gfx/misc/unown_font.2bpp" Function1dc1b0: ; 1dc1b0 hlcoord 0, 0 ld de, wca90 - ld bc, $0154 + ld bc, $154 call CopyBytes ld hl, wcab5 ld a, $62 @@ -81776,7 +81776,7 @@ Function1dc1b0: ; 1dc1b0 Function1dc213: ; 1dc213 ld hl, wca90 - ld bc, $00a0 + ld bc, $a0 ld a, $7f call ByteFill ld hl, wca90 @@ -82015,7 +82015,7 @@ Function1dc507: ; 1dc507 ; 1dc50e Function1dc50e: ; 1dc50e - ld bc, $000b + ld bc, NAME_LENGTH ld a, [CurPartyMon] call AddNTimes ld e, l @@ -82197,7 +82197,7 @@ INCBIN "gfx/unknown/1de0e1.2bpp.lz" Function1de171: ; 1de171 (77:6171) ld a, $32 hlcoord 0, 17 - lb bc, 0, 12 + ld bc, 12 call ByteFill hlcoord 0, 1 lb bc, 15, 11 @@ -82417,7 +82417,7 @@ INCBIN "gfx/misc/pokegear.2bpp.lz" Function1de5c8: ; 1de5c8 ld c, $0 - ld hl, $0029 + ld hl, $29 add hl, de ld a, [hli] cp $84 @@ -82548,9 +82548,7 @@ INCLUDE "text/battle_tower.asm" SECTION "bank7C", ROMX, BANK[$7C] -BattleTowerTrainerData:: ; What exactly it is, I don't know -; Size is 70 (Nr of Trainers in BattleTower) * 0x24 (Nr of Bytes that are copied) -INCBIN "unknown/1f0000.bin" +INCLUDE "data/battle_tower_2.asm" SECTION "bank7D", ROMX, BANK[$7D] diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm index 83b8e002b..cb71cb232 100644 --- a/maps/BattleTower1F.asm +++ b/maps/BattleTower1F.asm @@ -10,11 +10,11 @@ BattleTower1F_MapScriptHeader: db 0 UnknownScript_0x9e39d: - writebyte $9 - special Function170687 + writebyte BATTLE_TOWER_ACTION_09 + special BattleTowerAction iffalse UnknownScript_0x9e3d1 - writebyte $2 - special Function170687 + writebyte BATTLE_TOWER_ACTION_02 + special BattleTowerAction if_equal $0, UnknownScript_0x9e3d1 if_equal $2, UnknownScript_0x9e3c4 if_equal $3, UnknownScript_0x9e3d1 @@ -30,10 +30,10 @@ UnknownScript_0x9e3c4: priorityjump UnknownScript_0x9e555 UnknownScript_0x9e3c7: - writebyte $4 - special Function170687 - writebyte $6 - special Function170687 + writebyte BATTLE_TOWER_ACTION_04 + special BattleTowerAction + writebyte BATTLE_TOWER_ACTION_06 + special BattleTowerAction UnknownScript_0x9e3d1: dotrigger $1 UnknownScript_0x9e3d3: @@ -51,14 +51,14 @@ UnknownScript_0x9e3e0: end ReceptionistScript_0x9e3e2: - writebyte $2 - special Function170687 - if_equal $3, BattleTowerBattleRoomScript_0x9f4e4 + writebyte BATTLE_TOWER_ACTION_02 + special BattleTowerAction + if_equal $3, BattleTowerBattleRoomScript_0x9f4e4 ; maps/BattleTowerBattleRoom.asm loadfont writetext Text_BattleTowerWelcomesYou keeptextopen - writebyte $0 - special Function170687 + writebyte BATTLE_TOWER_ACTION_00 + special BattleTowerAction if_not_equal $0, Script_Menu_ChallengeExplanationCancel jump Script_BattleTowerIntroductionYesNo @@ -71,8 +71,8 @@ Script_Menu_ChallengeExplanationCancel: ; 0x9e3fc jump UnknownScript_0x9e4b0 Script_ChoseChallenge: ; 0x9e40f - writebyte $1a - special Function170687 + writebyte BATTLE_TOWER_ACTION_1A ; ResetBattleTowerTrainerSRAM + special BattleTowerAction special SpecialCheckForBattleTowerRules if_not_equal $0, Script_CloseText writetext Text_SaveBeforeEnteringBattleRoom @@ -82,24 +82,24 @@ Script_ChoseChallenge: ; 0x9e40f special Special_TryQuickSave iffalse Script_Menu_ChallengeExplanationCancel dotrigger $1 - writebyte $1 - special Function170687 + writebyte BATTLE_TOWER_ACTION_01 + special BattleTowerAction special Function1700b0 if_equal $a, Script_Menu_ChallengeExplanationCancel if_not_equal $0, UnknownScript_0x9e550 - writebyte $11 - special Function170687 + writebyte BATTLE_TOWER_ACTION_11 + special BattleTowerAction writetext Text_RightThisWayToYourBattleRoom closetext loadmovesprites - writebyte $1e - special Function170687 + writebyte BATTLE_TOWER_ACTION_1E + special BattleTowerAction jump UnknownScript_0x9e454 UnknownScript_0x9e44e: loadmovesprites - writebyte $8 - special Function170687 + writebyte BATTLE_TOWER_ACTION_08 + special BattleTowerAction UnknownScript_0x9e454: musicfadeout MUSIC_NONE, $8 domaptrigger BATTLE_TOWER_BATTLE_ROOM, $0 @@ -107,8 +107,8 @@ UnknownScript_0x9e454: domaptrigger BATTLE_TOWER_HALLWAY, $0 follow $2, PLAYER applymovement $2, MovementData_0x9e571 - writebyte $a - special Function170687 + writebyte BATTLE_TOWER_ACTION_0A + special BattleTowerAction warpsound disappear $2 stopfollow @@ -117,16 +117,16 @@ UnknownScript_0x9e454: end Script_GivePlayerHisPrize: ; 0x9e47a - writebyte $1c - special Function170687 - writebyte $1b - special Function170687 + writebyte BATTLE_TOWER_ACTION_1C + special BattleTowerAction + writebyte BATTLE_TOWER_ACTION_1B + special BattleTowerAction if_equal $12, Script_YourPackIsStuffedFull itemtotext $0, $1 - giveitem $ff, $5 + giveitem ITEM_FROM_MEM, 5 writetext Text_PlayerGotFive - writebyte $1d - special Function170687 + writebyte BATTLE_TOWER_ACTION_1D + special BattleTowerAction loadmovesprites end @@ -143,8 +143,8 @@ Script_BattleTowerIntroductionYesNo: ; 0x9e49e Script_BattleTowerExplanation: ; 0x9e4a5 writetext Text_BattleTowerIntroduction_2 UnknownScript_0x9e4a8: - writebyte $1 - special Function170687 + writebyte BATTLE_TOWER_ACTION_01 + special BattleTowerAction jump Script_Menu_ChallengeExplanationCancel UnknownScript_0x9e4b0: @@ -170,8 +170,8 @@ UnknownScript_0x9e4be: iffalse Script_Menu_ChallengeExplanationCancel special Special_TryQuickSave iffalse Script_Menu_ChallengeExplanationCancel - writebyte $1 - special Function170687 + writebyte BATTLE_TOWER_ACTION_01 + special BattleTowerAction special Function1700ba if_equal $a, Script_Menu_ChallengeExplanationCancel if_not_equal $0, UnknownScript_0x9e550 @@ -184,16 +184,16 @@ UnknownScript_0x9e4be: end UnknownScript_0x9e4ea: - writebyte $18 - special Function170687 + writebyte BATTLE_TOWER_ACTION_18 + special BattleTowerAction if_not_equal $0, Script_APkmnLevelExceeds - writebyte $19 - special Function170687 + writebyte BATTLE_TOWER_ACTION_19 + special BattleTowerAction if_not_equal $0, Script_MayNotEnterABattleRoomUnderL70 special SpecialCheckForBattleTowerRules if_not_equal $0, Script_CloseText - writebyte $5 - special Function170687 + writebyte BATTLE_TOWER_ACTION_05 + special BattleTowerAction if_equal $0, UnknownScript_0x9e512 writetext UnknownText_0x9ecb0 jump UnknownScript_0x9e515 @@ -210,10 +210,10 @@ UnknownScript_0x9e515: special Special_TryQuickSave iffalse Script_Menu_ChallengeExplanationCancel dotrigger $1 - writebyte $6 - special Function170687 - writebyte $12 - special Function170687 + writebyte BATTLE_TOWER_ACTION_06 + special BattleTowerAction + writebyte BATTLE_TOWER_ACTION_12 + special BattleTowerAction writetext Text_RightThisWayToYourBattleRoom closetext jump UnknownScript_0x9e44e diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm index 82966d56a..ce8f10aa3 100644 --- a/maps/BattleTowerBattleRoom.asm +++ b/maps/BattleTowerBattleRoom.asm @@ -30,10 +30,10 @@ Script_BattleRoomLoop: ; 0x9f425 storetext 1 keeptextopen loadmovesprites - special Function170215 ; calls predef startbattle + special BattleTowerBattle ; calls predef startbattle special FadeBlackBGMap reloadmap - if_not_equal $0, UnknownScript_0x9f4c2 + if_not_equal $0, Script_FailedBattleTowerChallenge copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64 if_equal BATTLETOWER_NROFTRAINERS, Script_BeatenAllTrainers applymovement $2, MovementData_0x9e597 @@ -65,12 +65,12 @@ Script_DontBattleNextOpponent: ; 0x9f483 writetext Text_SaveAndEndTheSession yesorno iffalse Script_DontSaveAndEndTheSession - writebyte $7 - special Function170687 - writebyte $1f - special Function170687 - writebyte $3 - special Function170687 + writebyte BATTLE_TOWER_ACTION_07 + special BattleTowerAction + writebyte BATTLE_TOWER_ACTION_1F + special BattleTowerAction + writebyte BATTLE_TOWER_ACTION_03 + special BattleTowerAction playsound SFX_SAVE waitbutton special FadeBlackBGMap @@ -79,22 +79,22 @@ Script_DontSaveAndEndTheSession: ; 0x9f4a3 writetext Text_CancelYourBattleRoomChallenge yesorno iffalse Script_ContinueAndBattleNextOpponent - writebyte $4 - special Function170687 - writebyte $6 - special Function170687 + writebyte BATTLE_TOWER_ACTION_04 + special BattleTowerAction + writebyte BATTLE_TOWER_ACTION_06 + special BattleTowerAction loadmovesprites special FadeBlackBGMap - warpfacing $1, BATTLE_TOWER_1F, $7, $7 + warpfacing UP, BATTLE_TOWER_1F, $7, $7 loadfont jump UnknownScript_0x9e4b0 -UnknownScript_0x9f4c2: +Script_FailedBattleTowerChallenge: pause 60 special Special_BattleTowerFade - warpfacing $1, BATTLE_TOWER_1F, $7, $7 - writebyte $4 - special Function170687 + warpfacing UP, BATTLE_TOWER_1F, $7, $7 + writebyte BATTLE_TOWER_ACTION_04 + special BattleTowerAction loadfont writetext Text_ThanksForVisiting closetext @@ -104,15 +104,15 @@ UnknownScript_0x9f4c2: Script_BeatenAllTrainers: ; 0x9f4d9 pause 60 special Special_BattleTowerFade - warpfacing $1, BATTLE_TOWER_1F, $7, $7 + warpfacing UP, BATTLE_TOWER_1F, $7, $7 BattleTowerBattleRoomScript_0x9f4e4: loadfont writetext Text_CongratulationsYouveBeatenAllTheTrainers jump Script_GivePlayerHisPrize UnknownScript_0x9f4eb: - writebyte $4 - special Function170687 + writebyte BATTLE_TOWER_ACTION_04 + special BattleTowerAction loadfont writetext Text_TooMuchTimeElapsedNoRegister closetext @@ -120,10 +120,10 @@ UnknownScript_0x9f4eb: end UnknownScript_0x9f4f7: - writebyte $4 - special Function170687 - writebyte $6 - special Function170687 + writebyte BATTLE_TOWER_ACTION_04 + special BattleTowerAction + writebyte BATTLE_TOWER_ACTION_06 + special BattleTowerAction loadfont writetext Text_ThanksForVisiting writetext Text_WeHopeToServeYouAgain diff --git a/maps/BattleTowerElevator.asm b/maps/BattleTowerElevator.asm index 8ba599340..944f15988 100644 --- a/maps/BattleTowerElevator.asm +++ b/maps/BattleTowerElevator.asm @@ -20,8 +20,8 @@ UnknownScript_0x9f568: follow $2, PLAYER applymovement $2, MovementData_0x9f58f applymovement PLAYER, MovementData_0x9f592 - writebyte $a - special Function170687 + writebyte BATTLE_TOWER_ACTION_0A + special BattleTowerAction playsound SFX_ELEVATOR earthquake 60 waitbutton diff --git a/maps/GoldenrodPokeCenter1F.asm b/maps/GoldenrodPokeCenter1F.asm index 4b6299ffe..3a4792403 100644 --- a/maps/GoldenrodPokeCenter1F.asm +++ b/maps/GoldenrodPokeCenter1F.asm @@ -9,8 +9,8 @@ NurseScript_0x60f91: jumpstd pokecenternurse UnknownScript_0x60f94: - writebyte $b - special Function170687 + writebyte BATTLE_TOWER_ACTION_0B + special BattleTowerAction if_equal $b, UnknownScript_0x60f9e end @@ -41,8 +41,8 @@ UnknownScript_0x60fd8: end UnknownScript_0x60fd9: - writebyte $b - special Function170687 + writebyte BATTLE_TOWER_ACTION_0B + special BattleTowerAction if_equal $b, UnknownScript_0x60fe3 end diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index 0b8fa2d02..91bb5a8ad 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -127,7 +127,7 @@ LanceScript_0x180e7b: applymovement $3, MovementData_0x180f5b special FadeBlackBGMap pause 15 - warpfacing $1, HALL_OF_FAME, $4, $d + warpfacing UP, HALL_OF_FAME, $4, $d end MovementData_0x180f33: diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm index e061aff66..786f110ba 100644 --- a/maps/Route35NationalParkgate.asm +++ b/maps/Route35NationalParkgate.asm @@ -77,7 +77,7 @@ Route35NationalParkgate_GoBackIn: playsound SFX_ENTER_DOOR special FadeBlackBGMap waitbutton - warpfacing $1, NATIONAL_PARK_BUG_CONTEST, $a, $2f + warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f end OfficerScript_0x6a204: @@ -115,7 +115,7 @@ Route35NationalParkgate_OkayToProceed: special FadeBlackBGMap waitbutton special Special_SelectRandomBugContestContestants - warpfacing $1, NATIONAL_PARK_BUG_CONTEST, $a, $2f + warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f end Route35NationalParkgate_EnterContest: diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm index 87d6cf897..025133902 100644 --- a/maps/Route36NationalParkgate.asm +++ b/maps/Route36NationalParkgate.asm @@ -85,7 +85,7 @@ Route36NationalParkgate_MapScriptHeader: playsound SFX_EXIT_BUILDING special FadeBlackBGMap waitbutton - warpfacing $2, NATIONAL_PARK_BUG_CONTEST, $21, $12 + warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 end .CopyContestants: @@ -169,7 +169,7 @@ Route36OfficerScriptContest: special FadeBlackBGMap waitbutton special Special_SelectRandomBugContestContestants - warpfacing $2, NATIONAL_PARK_BUG_CONTEST, $21, $12 + warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 end .LeaveMonsWithOfficer: diff --git a/misc/battle_tower_45.asm b/misc/battle_tower_45.asm new file mode 100755 index 000000000..1b7d0dd1a --- /dev/null +++ b/misc/battle_tower_45.asm @@ -0,0 +1,1490 @@ +BattleTowerBattle: ; 170215 + xor a + ld [wJumptableIndex], a + call Function17022c + ret +; 17021d + +Function17021d: ; 17021d + ret +; 17021e + +Function17021e: ; 17021e + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ret +; 17022c + +Function17022c: ; 17022c +.loop + call Jumpto_BattleTowerBattleFunction + call DelayFrame + ld a, [wJumptableIndex] + cp $1 + jr nz, .loop + ret +; 17023a + +Jumpto_BattleTowerBattleFunction: ; 17023a + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_BattleTowerBattleFunctions +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170249 + +Jumptable_BattleTowerBattleFunctions: ; 170249 + dw RunBattleTowerBattle + dw SkipBattleTowerBattle +; 17024d + +RunBattleTowerBattle: ; 17024d + ld a, [Options] + push af + ld hl, Options + set 6, [hl] + ld a, [InBattleTowerBattle] + push af + or $1 + ld [InBattleTowerBattle], a + xor a + ld [wLinkMode], a + callba Mobile_HealParty + callba HealParty + call Function1702b7 + call Function170bf7 + predef StartBattle + callba LoadPokemonData + callba HealParty + ld a, [wBattleResult] + ld [ScriptVar], a + and a + jr nz, .lost + ld a, BANK(sNrOfBeatenBattleTowerTrainers) + call GetSRAMBank + ld a, [sNrOfBeatenBattleTowerTrainers] + ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 + call CloseSRAM + ld hl, StringBuffer3 + ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 + add $f7 + ld [hli], a + ld a, $50 + ld [hl], a + +.lost + pop af + ld [InBattleTowerBattle], a + pop af + ld [Options], a + ld a, $1 + ld [wJumptableIndex], a + ret + + +Function1702b7: ; 1702b7 +; Initialise the BattleTower-Trainer and his Pkmn + call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_1702db + + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_1702db + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_1702fc + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_1702fc + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_17031d + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_17031d + ld a, $50 + ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d + ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688 + ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3 + call Function170c98 + ld de, wBT_OTTempCopy + ld c, $a + callba Function17d073 + jr nc, .asm_17033d + ld hl, String_170426 + jr .asm_170340 + +.asm_17033d + ld hl, wBT_OTTempCopy ; 0xc608 + +.asm_170340 + ld de, wd26b + ld bc, $000a + call CopyBytes + ld a, $50 + ld [de], a + ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass + ld a, [hli] + ld [OtherTrainerClass], a + ld a, $ea + ld [BGMapBuffer], a + ld a, $d3 + ld [wcd21], a + + ; Copy Pkmn into Memory from the address in hl + ld de, OTPartyMon1Species + ld bc, OTPartyCount + ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has + ld [bc], a + inc bc +.asm_170367 + push af + ld a, [hl] + ld [bc], a + inc bc + push bc + ld bc, party_struct_length + call CopyBytes + push de + ld a, [BGMapBuffer] + ld e, a + ld a, [wcd21] + ld d, a + ld bc, $000b + call CopyBytes + ld a, e + ld [BGMapBuffer], a + ld a, d + ld [wcd21], a + pop de + pop bc + pop af + dec a + and a + jr nz, .asm_170367 + ld a, $ff + ld [bc], a + ret +; 170394 + +Function170394: ; 170394 + ld hl, $c608 + 11 + ld d, $3 +.asm_170399 + push de + push hl + ld b, h + ld c, l + ld a, [hl] + and a + jr z, .asm_1703b1 + cp $ff + jr z, .asm_1703b1 + cp $fe + jr z, .asm_1703b1 + cp $fd + jr z, .asm_1703b1 + cp $fc + jr nz, .asm_1703b4 + +.asm_1703b1 + ld a, $eb + ld [hl], a + +.asm_1703b4 + ld [CurSpecies], a + call GetBaseData + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld e, a + ld hl, $001f + add hl, bc + ld a, [hl] + cp $2 + ld a, $2 + jr c, .asm_1703d6 + ld a, [hl] + cp e + jr c, .asm_1703d7 + ld a, e + +.asm_1703d6 + ld [hl], a + +.asm_1703d7 + ld [CurPartyLevel], a + ld hl, $0002 + add hl, bc + ld d, $3 + ld a, [hli] + and a + jr z, .asm_1703ea + cp $fc + jr nc, .asm_1703ea + jr .asm_1703f4 + +.asm_1703ea + dec hl + ld a, $1 + ld [hli], a + xor a +rept 2 + ld [hli], a +endr + ld [hl], a + jr .asm_1703ff + +.asm_1703f4 + ld a, [hl] + cp $fc + jr c, .asm_1703fb + ld [hl], $0 + +.asm_1703fb + inc hl + dec d + jr nz, .asm_1703f4 + +.asm_1703ff + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + push hl + push de + ld hl, $000a + add hl, bc + ld b, $1 + predef CalcPkmnStats + pop de + pop hl +rept 2 + dec de +endr + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + pop hl + ld bc, $003b + add hl, bc + pop de + dec d + jp nz, .asm_170399 + ret +; 170426 + +String_170426: ; 170426 + db "CHRIS@" +; 17042c + +Function17042c: ; 17042c + ld hl, OTPartyMon2ID + ld a, $7 +.asm_170431 + push af + push hl + ld c, $12 +.asm_170435 + ld a, [hli] + ld b, a + ld a, [hli] + and a + jr z, .asm_170451 + cp $f + jr nc, .asm_17045b + push hl + ld hl, Unknown_170470 + dec a + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + pop hl + cp b + jr c, .asm_17045b + jr z, .asm_17045b + jr .asm_170456 + +.asm_170451 + ld a, b + cp $fc + jr nc, .asm_17045b + +.asm_170456 + dec c + jr nz, .asm_170435 + jr .asm_170466 + +.asm_17045b + pop de + push de + ld hl, Unknown_17047e + ld bc, $0024 + call CopyBytes + +.asm_170466 + pop hl + ld de, $00e0 + add hl, de + pop af + dec a + jr nz, .asm_170431 + ret +; 170470 + +Unknown_170470: + db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 + +Unknown_17047e: + db $03, $04, $05, $08 + db $03, $05, $0e, $06 + db $03, $02, $00, $00 + db $39, $07, $07, $04 + db $00, $05, $04, $07 + db $01, $05, $00, $00 + db $0f, $05, $14, $07 + db $05, $05, $11, $0c + db $0c, $06, $06, $04 + + +CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 +; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy' + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, BT_OTrainer ; $d100 + ld de, wBT_OTTempCopy ; $c608 + ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 + ; = $a + $1 + BATTLETOWER_NROFPKMNS * (party_struct_length + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH + call CopyBytes + pop af + ld [rSVBK], a + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $2 + ld [s1_be45], a + ld hl, sNrOfBeatenBattleTowerTrainers + inc [hl] + call CloseSRAM +SkipBattleTowerBattle: ; 1704c9 + ret +; 1704ca + + +Function1704ca: ; 1704ca + ld a, [$be46] + cp $7 + jr c, .asm_1704d3 + ld a, $6 + +.asm_1704d3 + ld hl, $afce + ld de, -$e0 +.asm_1704d9 + and a + jr z, .asm_1704e0 + add hl, de + dec a + jr .asm_1704d9 + +.asm_1704e0 + ret +; 1704e1 + +Function1704e1: ; 1704e1 + call SpeechTextBox + call FadeToMenu + call Function17021e + call Function1704f1 + call Function2b3c + ret +; 1704f1 + +Function1704f1: ; 1704f1 + call WhiteBGMap + call ClearSprites + call ClearScreen +.asm_1704fa + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_17050f + call Function170510 + callba Function104061 + jr .asm_1704fa + +.asm_17050f + ret +; 170510 + +Function170510: ; 170510 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_17051f +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17051f + +Jumptable_17051f: ; 17051f + dw Function170525 + dw Function170571 + dw Function170577 +; 170525 + +Function170525: ; 170525 + ld a, $5 + call GetSRAMBank + + ld hl, $a89c + ld de, StringBuffer3 + ld bc, $0016 + call CopyBytes + + ld hl, $a8b2 + ld de, $c608 + ld bc, $0096 + call CopyBytes + + call CloseSRAM + hlcoord 1, 1 + ld de, StringBuffer3 + call PlaceString + hlcoord 1, 3 + ld de, String_170676 + call PlaceString + hlcoord 4, 3 + ld de, StringBuffer4 + call PlaceString + hlcoord 8, 3 + ld de, String_17067a + call PlaceString + call Function1705b7 + call Function1705f0 + jr Function1705b2 + + +Function170571: + call SetPalettes + call Function1705b2 + + +Function170577: + ld hl, hJoyPressed + ld a, [hl] + and $1 + jr nz, .asm_1705ac + ld a, [hl] + and $2 + jr nz, .asm_1705ac + ld a, [hl] + and $40 + jr nz, .asm_17058f + ld a, [hl] + and $80 + jr nz, .asm_17059d + ret + +.asm_17058f + ld a, [wcf64] + and a + ret z + sub $f + ld [wcf64], a + call Function1705f0 + ret + +.asm_17059d + ld a, [wcf64] + cp $3c + ret z + add $f + ld [wcf64], a + call Function1705f0 + ret + +.asm_1705ac + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function1705b2: + ld hl, wJumptableIndex + inc [hl] + ret +; 1705b7 + +Function1705b7: ; 1705b7 + hlcoord 0, 4 + ld a, $79 + ld [hli], a + ld c, $12 +.asm_1705bf + ld a, $7a + ld [hli], a + dec c + jr nz, .asm_1705bf + ld a, $7b + ld [hli], a + ld de, $0014 + ld c, $c +.asm_1705cd + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_1705cd + ld a, $7d + ld [hli], a + ld c, $12 +.asm_1705d9 + ld a, $7a + ld [hli], a + dec c + jr nz, .asm_1705d9 + ld a, $7e + ld [hl], a + ld de, $ffec + add hl, de + ld c, $c +.asm_1705e8 + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_1705e8 + ret +; 1705f0 + +Function1705f0: ; 1705f0 + call Function17064b + call Function17065d + ld a, $50 + ld [wcd4e], a + ld hl, $c608 + ld a, [wcf64] + ld c, a + xor a + ld b, a + add hl, bc + push hl + pop bc + hlcoord 1, 6 + ld a, $6 +.asm_17060c + push af + push hl + ld a, $3 +.asm_170610 + push af + ld de, wcd49 + ld a, [bc] + and a + jr z, .asm_170625 + ld a, $5 +.asm_17061a + push af + ld a, [bc] + ld [de], a + inc bc + inc de + pop af + dec a + jr nz, .asm_17061a + jr .asm_170631 + +.asm_170625 + ld a, $5 +.asm_170627 + push af + ld a, $e3 + ld [de], a + inc de + inc bc + pop af + dec a + jr nz, .asm_170627 + +.asm_170631 + ld de, wcd49 + push bc + call PlaceString + ld de, $0006 + add hl, de + pop bc + pop af + dec a + jr nz, .asm_170610 + pop hl + ld de, $0028 + add hl, de + pop af + dec a + jr nz, .asm_17060c + ret +; 17064b + +Function17064b: ; 17064b + hlcoord 1, 5 + xor a + ld b, $c +.asm_170651 + ld c, $12 +.asm_170653 + ld [hli], a + dec c + jr nz, .asm_170653 +rept 2 + inc hl +endr + dec b + jr nz, .asm_170651 + ret +; 17065d + +Function17065d: ; 17065d + ld a, [wcf64] + and a + jr z, .asm_170669 + hlcoord 18, 5 + ld a, $61 + ld [hl], a + +.asm_170669 + ld a, [wcf64] + cp $3c + ret z + hlcoord 18, 16 + ld a, $ee + ld [hl], a + ret +; 170676 + +String_170676: ; 170676 + db "ルーム@" +; 17067a + +String_17067a: ; 17067a + db "れきだいりーダーいちらん@" +; 170687 + +BattleTowerAction: ; 170687 + ld a, [ScriptVar] + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170696 + + +.jumptable: ; 170696 (5c:4696) + dw Function17075f ; 0x00 + dw Function170788 ; 0x01 + dw Function170778 ; 0x02 + dw Function170799 ; 0x03 + dw Function17079d ; 0x04 + dw Function1707ac ; 0x05 + dw Function1707f4 ; 0x06 + dw Function170868 ; 0x07 + dw Function170881 ; 0x08 + dw Function17089a ; 0x09 + dw Function1708b1 ; 0x0a + dw Function1708b9 ; 0x0b + dw Function1708c8 ; 0x0c + dw Function1708f0 ; 0x0d + dw Function17093c ; 0x0e + dw Function1709aa ; 0x0f + dw Function1709bb ; 0x10 + dw Function170a9c ; 0x11 + dw Function170aa0 ; 0x12 + dw Function170aaf ; 0x13 + dw Function170abe ; 0x14 + dw Function170ad7 ; 0x15 + dw Function170807 ; 0x16 + dw Function17081d ; 0x17 + dw Function170ae8 ; 0x18 + dw Function170b16 ; 0x19 + dw ResetBattleTowerTrainersSRAM ; 0x1a + dw Function1706ee ; 0x1b + dw Function17071b ; 0x1c + dw Function170729 ; 0x1d + dw Function17073e ; 0x1e + dw Function170737 ; 0x1f + + +; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) +ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a + ld a, BANK(sBTTrainers) + call GetSRAMBank + + ld a, $ff + ld hl, sBTTrainers + ld bc, BATTLETOWER_NROFTRAINERS + call ByteFill + + xor a + ld [sNrOfBeatenBattleTowerTrainers], a + + call CloseSRAM + + ret + +Function1706ee: ; 1706ee (5c:46ee) + ld a, BANK(sbe50) + call GetSRAMBank + + ld a, [sbe50] + call CloseSRAM + ld [ScriptVar], a + ld hl, NumItems + ld a, [hli] + cp $14 + ret c + ld b, $14 + ld a, [ScriptVar] + ld c, a +.asm_170709 + ld a, [hli] + cp c + jr nz, .asm_170711 + ld a, [hl] + cp $5f + ret c +.asm_170711 + inc hl + dec b + jr nz, .asm_170709 + ld a, $12 + ld [ScriptVar], a + ret + +Function17071b: ; 17071b (5c:471b) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $3 + ld [s1_be45], a + call CloseSRAM + ret + +Function170729: ; 170729 (5c:4729) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $4 + ld [s1_be45], a + call CloseSRAM + ret + +Function170737: ; 170737 (5c:4737) + callba SaveOptions + ret + +Function17073e: ; 17073e (5c:473e) + call Random + ld a, [hRandomAdd] ; $ff00+$e1 + and $7 + cp $6 + jr c, .asm_17074b + sub $6 +.asm_17074b + add $1a + cp $1e + jr z, Function17073e + push af + ld a, BANK(sbe50) + call GetSRAMBank + pop af + ld [sbe50], a + call CloseSRAM + ret + +Function17075f: ; 17075f (5c:475f) + call Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + and $2 + ld [ScriptVar], a + call CloseSRAM + ret + +Function170778: ; 170778 (5c:4778) + ld hl, s1_be45 + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, [hl] + ld [ScriptVar], a + call CloseSRAM + ret + +Function170788: ; 170788 (5c:4788) + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + or $2 + ld [sbe4f], a + call CloseSRAM + ret + +Function170799: ; 170799 (5c:4799) + ld c, $1 + jr asm_17079f + +Function17079d: ; 17079d (5c:479d) + ld c, $0 +asm_17079f: ; 17079f (5c:479f) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, c + ld [s1_be45], a + call CloseSRAM + ret + +Function1707ac: ; 1707ac (5c:47ac) + ld a, $5 + call GetSRAMBank + ld a, [$aa8c] + ld b, a + ld a, [$be46] + ld [ScriptVar], a + call CloseSRAM + and a + ret z + ld a, b + cp $2 + jr nc, .asm_1707ef + push bc + call UpdateTime + pop bc + ld a, $5 + call GetSRAMBank + ld a, [$aa8b] + call CloseSRAM + ld c, a + ld a, [CurDay] + sub c + jr c, .asm_1707e5 + cp $8 + jr nc, .asm_1707ef + ld a, b + and a + jr nz, .asm_1707ef + ret +.asm_1707e5 + ld hl, CurDay + ld a, $8c + sub c + add [hl] + cp $8 + ret c +.asm_1707ef + ld a, $8 + ld [ScriptVar], a + +Function1707f4: ; 1707f4 (5c:47f4) + ld a, $5 + call GetSRAMBank + xor a + ld [$be46], a + ld [$aa8b], a + ld [$aa8c], a + call CloseSRAM + ret + +Function170807: ; 170807 (5c:4807) + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [CurDay] + ld [$b2f9], a + xor a + ld [$b2fa], a + call CloseSRAM + ret + +Function17081d: ; 17081d (5c:481d) + xor a + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + ld a, [$b2f9] + ld c, a + ld a, [$b2fa] + ld b, a + call CloseSRAM + cp $2 + jr nc, .asm_170853 + push bc + call UpdateTime + pop bc + ld a, [CurDay] + sub c + jr c, .asm_170849 + cp $b + jr nc, .asm_170853 + ld a, b + and a + jr nz, .asm_170853 + ret +.asm_170849 + ld hl, CurDay + ld a, $8c + sub c + add [hl] + cp $b + ret c +.asm_170853 + ld a, $1 + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + xor a + ld [$b2f9], a + ld [$b2fa], a + call CloseSRAM + ret + +Function170868: ; 170868 (5c:4868) + ld a, BANK(sbe47) + call GetSRAMBank + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $3 + ld [rSVBK], a ; $ff00+$70 + ld a, [wd000 + $800] + ld [sbe47], a + pop af + ld [rSVBK], a ; $ff00+$70 + call CloseSRAM + ret + +Function170881: ; 170881 (5c:4881) + ld a, BANK(sbe47) + call GetSRAMBank + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $3 + ld [rSVBK], a ; $ff00+$70 + ld a, [sbe47] + ld [wd000 + $800], a + pop af + ld [rSVBK], a ; $ff00+$70 + call CloseSRAM + ret + +Function17089a: ; 17089a + ld a, [wcfcd] + and a + jr z, .asm_1708ad + callba Function14bcb + jr z, .asm_1708ab + xor a + jr .asm_1708ad + +.asm_1708ab + ld a, $1 + +.asm_1708ad + ld [ScriptVar], a + ret +; 1708b1 + + +Function1708b1: ; 1708b1 (5c:48b1) + xor a + ld [MusicFade], a + call MaxVolume + ret + +Function1708b9: ; 1708b9 (5c:48b9) + ld a, BANK(s1_be3c) + call GetSRAMBank + ld a, [s1_be3c] + ld [ScriptVar], a + call CloseSRAM + ret + +Function1708c8: ; 1708c8 (5c:48c8) + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [CurDay] + ld [$aa8b], a + xor a + ld [$aa8c], a + ld a, [$aa5d] + cp $2 + jr nc, .asm_1708ec + ld a, [CurDay] + ld [$aa48], a + ld a, $1 + ld [$aa47], a +.asm_1708ec + call CloseSRAM + ret + +Function1708f0: ; 1708f0 (5c:48f0) + xor a + ld [ScriptVar], a + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [$aa48] + ld c, a + ld a, [$aa47] + call CloseSRAM + and a + ret z + ld hl, CurDay + ld a, c + cp [hl] + jr nz, Function170923 + ld a, $5 + call GetSRAMBank + ld a, [$aa5d] + call CloseSRAM + cp $5 + ret c + ld a, $1 + ld [ScriptVar], a + ret + + +Function170923: ; 170923 + ld a, $5 + call GetSRAMBank + xor a + ld [$aa48], a + ld [$aa47], a + ld hl, $aa5d + ld bc, $0011 + call ByteFill + call CloseSRAM + ret +; 17093c + + +Function17093c: ; 17093c (5c:493c) + xor a + ld [ScriptVar], a + ld a, EGG_TICKET + ld [CurItem], a + ld hl, NumItems + call CheckItem + ret nc + ld a, [PartyCount] + ld b, 0 + ld c, a + ld hl, PartySpecies +.asm_170955 + ld a, [hli] + cp EGG + jr nz, .asm_17099f + push hl + ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) + ld de, $6 + ld a, b + and a + jr z, .asm_170969 +.asm_170965 + add hl, de + dec a + jr nz, .asm_170965 +.asm_170969 + ld de, String_1709a4 + ld a, $6 +.asm_17096e + push af + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_17099d + pop af + dec a + jr nz, .asm_17096e +rept 4 + dec hl +endr + ld a, $50 +rept 2 + ld [hli], a +endr + pop hl + ld a, EGG_TICKET + ld [CurItem], a + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld a, $ff + ld [wd107], a + ld hl, NumItems + call TossItem + ld a, $1 + ld [ScriptVar], a + ret + +.asm_17099d + pop af + pop hl +.asm_17099f + inc b + dec c + jr nz, .asm_170955 + ret +; 1709a4 (5c:49a4) + +String_1709a4: ; 1709a4 + db "なぞナゾ@@" + +Function1709aa: ; 1709aa (5c:49aa) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $3 + ld [rSVBK], a ; $ff00+$70 + ld a, [StringBuffer2 + 10] + ld [ScriptVar], a + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +Function1709bb: ; 1709bb (5c:49bb) + xor a + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + ld a, [$a800] + call CloseSRAM + cp 6 + jr nc, .asm_1709da + ld e, a + ld d, 0 + ld hl, Jumptable_1709e7 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +.asm_1709da + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + call CloseSRAM + ret +; 1709e7 (5c:49e7) + +Jumptable_1709e7: ; 1709e7 + dw Function170a00 + dw Function170a00 + dw Function1709f3 + dw Function1709f3 + dw Function170a01 + dw Function170a33 +; 1709f3 + +Function1709f3: ; 1709f3 + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$a800], a + call CloseSRAM + +Function170a00: ; 170a00 + ret +; 170a01 + +Function170a01: ; 170a01 + ld a, $5 + call GetSRAMBank + ld hl, $b023 + ld de, $c608 + ld bc, $0069 + call CopyBytes + ld a, [$a825] + ld [wcd30], a + ld a, [$a826] + ld [wcd31], a + call CloseSRAM + callba Function11b6b4 + callba Function17d0f3 + ld a, $1 + ld [ScriptVar], a + ret +; 170a33 + +Function170a33: ; 170a33 + ld a, $0 + call GetSRAMBank + ld hl, wRTC + ld de, $c608 + ld bc, $0004 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $b08c + ld de, $c608 + ld c, $4 +.asm_170a54 + ld a, [de] + inc de + cp [hl] + jr nz, .asm_170a78 + inc hl + dec c + jr nz, .asm_170a54 + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_170a72 + ld a, [de] + and a + ret nz + +.asm_170a72 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_170a78 + call CloseSRAM + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + call CloseSRAM + ld [ScriptVar], a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_170a9b + xor a + ld [de], a + +.asm_170a9b + ret +; 170a9c + +Function170a9c: ; 170a9c (5c:4a9c) + ld c, $0 + jr asm_170aa2 + +Function170aa0: ; 170aa0 (5c:4aa0) + ld c, $1 +asm_170aa2: ; 170aa2 (5c:4aa2) + ld a, $5 + call GetSRAMBank + ld a, c + ld [$aa8d], a + call CloseSRAM + ret + +Function170aaf: ; 170aaf (5c:4aaf) + ld a, $5 + call GetSRAMBank + ld a, [$aa8d] + ld [ScriptVar], a + call CloseSRAM + ret + +Function170abe: ; 170abe (5c:4abe) + call Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + and $1 + ld [ScriptVar], a + call CloseSRAM + ret + +Function170ad7: ; 170ad7 (5c:4ad7) + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + or $1 + ld [sbe4f], a + call CloseSRAM + ret + +Function170ae8: ; 170ae8 (5c:4ae8) + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld c, $a + call SimpleDivide + ld a, b + ld [wcd4f], a + xor a + ld [ScriptVar], a + callba Function119d93 + ret nc + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld [ScriptVar], a + ret + +Function170b16: ; 170b16 (5c:4b16) + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld c, 10 + call SimpleDivide + ld a, b + ld [wcd4f], a + xor a + ld [ScriptVar], a + callba Function119dd1 + ret nc + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld [ScriptVar], a + ret + +Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 + callba Function_LoadOpponentTrainerAndPokemons + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, wd10a + ld a, [hl] + dec a + ld c, a + ld b, $0 + pop af + ld [rSVBK], a + ld hl, Unknown_170b90 + add hl, bc + ld a, [hl] + ld [wcd49], a + +; Load sprite of the opponent trainer +; because s/he is chosen randomly and appears out of nowhere + ld a, [ScriptVar] + dec a + sla a + ld e, a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld d, $0 + ld hl, MapObjects + add hl, bc + inc hl + ld a, [wcd49] + ld [hl], a + ld hl, UsedSprites + add hl, de + ld [hli], a + ld [hUsedSpriteIndex], a + ld a, [hl] + ld [hUsedSpriteTile], a + callba Function143c8 + ret +; 170b90 + +Unknown_170b90: + db $12, $13, $14, $15, $18, $17 + db $16, $19, $04, $05, $11, $01 + db $1c, $1b, $21, $1e, $1a, $1d + db $1f, $3c, $20, $27, $27, $27 + db $28, $0a, $23, $24, $2a, $2b + db $35, $40, $2a, $29, $22, $25 + db $3a, $2b, $24, $49, $2b, $07 + db $2c, $2d, $4a, $0d, $4b, $3a + db $2b, $41, $35, $27, $28, $27 + db $36, $3e, $30, $2c, $2d, $3d + db $26, $2e, $06, $07, $43, $36 + +Function170bd2: ; 170bd2 + ret +; 170bd3 + +SpecialCheckForBattleTowerRules: ; 170bd3 + callba CheckForBattleTowerRules + jr c, .asm_170bde + xor a + jr .asm_170be0 + +.asm_170bde + ld a, $1 + +.asm_170be0 + ld [ScriptVar], a + ret +; 170be4 diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 1a891ce6c..dad53c287 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -22782,1495 +22782,7 @@ Function17020c: ; 17020c ret ; 170215 -Function170215: ; 170215 - xor a - ld [wJumptableIndex], a - call Function17022c - ret -; 17021d - -Function17021d: ; 17021d - ret -; 17021e - -Function17021e: ; 17021e - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ret -; 17022c - -Function17022c: ; 17022c -.asm_17022c - call Jumpto_BattleTowerBattleFunction - call DelayFrame - ld a, [wJumptableIndex] - cp $1 - jr nz, .asm_17022c - ret -; 17023a - -Jumpto_BattleTowerBattleFunction: ; 17023a - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_BattleTowerBattleFunctions -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 170249 - -Jumptable_BattleTowerBattleFunctions: ; 170249 - dw RunBattleTowerBattle - dw SkipBattleTowerBattle -; 17024d - -RunBattleTowerBattle: ; 17024d - ld a, [Options] - push af - ld hl, Options - set 6, [hl] - ld a, [InBattleTowerBattle] - push af - or $1 - ld [InBattleTowerBattle], a - xor a - ld [wLinkMode], a - callba Mobile_HealParty - callba HealParty - call Function1702b7 - call Function170bf7 - predef StartBattle - callba LoadPokemonData - callba HealParty - ld a, [wBattleResult] - ld [ScriptVar], a - and a - jr nz, .asm_1702a9 - ld a, BANK(sNrOfBeatenBattleTowerTrainers) - call GetSRAMBank - ld a, [sNrOfBeatenBattleTowerTrainers] - ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 - call CloseSRAM - ld hl, StringBuffer3 - ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 - add $f7 - ld [hli], a - ld a, $50 - ld [hl], a - -.asm_1702a9 - pop af - ld [InBattleTowerBattle], a - pop af - ld [Options], a - ld a, $1 - ld [wJumptableIndex], a - ret - - -Function1702b7: ; 1702b7 -; Initialise the BattleTower-Trainer and his Pkmn - call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_1702db - - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_1702db - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_1702fc - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_1702fc - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_17031d - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_17031d - ld a, $50 - ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d - ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688 - ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3 - call Function170c98 - ld de, wBT_OTTempCopy - ld c, $a - callba Function17d073 - jr nc, .asm_17033d - ld hl, String_170426 - jr .asm_170340 - -.asm_17033d - ld hl, wBT_OTTempCopy ; 0xc608 - -.asm_170340 - ld de, wd26b - ld bc, $000a - call CopyBytes - ld a, $50 - ld [de], a - ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass - ld a, [hli] - ld [OtherTrainerClass], a - ld a, $ea - ld [BGMapBuffer], a - ld a, $d3 - ld [wcd21], a - - ; Copy Pkmn into Memory from the address in hl - ld de, OTPartyMon1Species - ld bc, OTPartyCount - ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has - ld [bc], a - inc bc -.asm_170367 - push af - ld a, [hl] - ld [bc], a - inc bc - push bc - ld bc, BATTLETOWER_PKMNSTRUCTLENGTH - call CopyBytes - push de - ld a, [BGMapBuffer] - ld e, a - ld a, [wcd21] - ld d, a - ld bc, $000b - call CopyBytes - ld a, e - ld [BGMapBuffer], a - ld a, d - ld [wcd21], a - pop de - pop bc - pop af - dec a - and a - jr nz, .asm_170367 - ld a, $ff - ld [bc], a - ret -; 170394 - -Function170394: ; 170394 - ld hl, $c608 + 11 - ld d, $3 -.asm_170399 - push de - push hl - ld b, h - ld c, l - ld a, [hl] - and a - jr z, .asm_1703b1 - cp $ff - jr z, .asm_1703b1 - cp $fe - jr z, .asm_1703b1 - cp $fd - jr z, .asm_1703b1 - cp $fc - jr nz, .asm_1703b4 - -.asm_1703b1 - ld a, $eb - ld [hl], a - -.asm_1703b4 - ld [CurSpecies], a - call GetBaseData - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld e, a - ld hl, $001f - add hl, bc - ld a, [hl] - cp $2 - ld a, $2 - jr c, .asm_1703d6 - ld a, [hl] - cp e - jr c, .asm_1703d7 - ld a, e - -.asm_1703d6 - ld [hl], a - -.asm_1703d7 - ld [CurPartyLevel], a - ld hl, $0002 - add hl, bc - ld d, $3 - ld a, [hli] - and a - jr z, .asm_1703ea - cp $fc - jr nc, .asm_1703ea - jr .asm_1703f4 - -.asm_1703ea - dec hl - ld a, $1 - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - jr .asm_1703ff - -.asm_1703f4 - ld a, [hl] - cp $fc - jr c, .asm_1703fb - ld [hl], $0 - -.asm_1703fb - inc hl - dec d - jr nz, .asm_1703f4 - -.asm_1703ff - ld hl, $0024 - add hl, bc - ld d, h - ld e, l - push hl - push de - ld hl, $000a - add hl, bc - ld b, $1 - predef CalcPkmnStats - pop de - pop hl -rept 2 - dec de -endr - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - pop hl - ld bc, $003b - add hl, bc - pop de - dec d - jp nz, .asm_170399 - ret -; 170426 - -String_170426: ; 170426 - db "CHRIS@" -; 17042c - -Function17042c: ; 17042c - ld hl, OTPartyMon2ID - ld a, $7 -.asm_170431 - push af - push hl - ld c, $12 -.asm_170435 - ld a, [hli] - ld b, a - ld a, [hli] - and a - jr z, .asm_170451 - cp $f - jr nc, .asm_17045b - push hl - ld hl, Unknown_170470 - dec a - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - pop hl - cp b - jr c, .asm_17045b - jr z, .asm_17045b - jr .asm_170456 - -.asm_170451 - ld a, b - cp $fc - jr nc, .asm_17045b - -.asm_170456 - dec c - jr nz, .asm_170435 - jr .asm_170466 - -.asm_17045b - pop de - push de - ld hl, Unknown_17047e - ld bc, $0024 - call CopyBytes - -.asm_170466 - pop hl - ld de, $00e0 - add hl, de - pop af - dec a - jr nz, .asm_170431 - ret -; 170470 - -Unknown_170470: - db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 - -Unknown_17047e: - db $03, $04, $05, $08 - db $03, $05, $0e, $06 - db $03, $02, $00, $00 - db $39, $07, $07, $04 - db $00, $05, $04, $07 - db $01, $05, $00, $00 - db $0f, $05, $14, $07 - db $05, $05, $11, $0c - db $0c, $06, $06, $04 - - -CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 -; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy' - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, BT_OTrainer ; $d100 - ld de, wBT_OTTempCopy ; $c608 - ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 - ; = $a + $1 + BATTLETOWER_NROFPKMNS * (BATTLETOWER_PKMNSTRUCTLENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH - call CopyBytes - pop af - ld [rSVBK], a - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $2 - ld [s1_be45], a - ld hl, sNrOfBeatenBattleTowerTrainers - inc [hl] - call CloseSRAM -SkipBattleTowerBattle: ; 1704c9 - ret -; 1704ca - -Function1704ca: ; 1704ca - ld a, [$be46] - cp $7 - jr c, .asm_1704d3 - ld a, $6 - -.asm_1704d3 - ld hl, $afce - ld de, -$e0 -.asm_1704d9 - and a - jr z, .asm_1704e0 - add hl, de - dec a - jr .asm_1704d9 - -.asm_1704e0 - ret -; 1704e1 - -Function1704e1: ; 1704e1 - call SpeechTextBox - call FadeToMenu - call Function17021e - call Function1704f1 - call Function2b3c - ret -; 1704f1 - -Function1704f1: ; 1704f1 - call WhiteBGMap - call ClearSprites - call ClearScreen -.asm_1704fa - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_17050f - call Function170510 - callba Function104061 - jr .asm_1704fa - -.asm_17050f - ret -; 170510 - -Function170510: ; 170510 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_17051f -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 17051f - -Jumptable_17051f: ; 17051f - dw Function170525 - dw Function170571 - dw Function170577 -; 170525 - -Function170525: ; 170525 - ld a, $5 - call GetSRAMBank - - ld hl, $a89c - ld de, StringBuffer3 - ld bc, $0016 - call CopyBytes - - ld hl, $a8b2 - ld de, $c608 - ld bc, $0096 - call CopyBytes - - call CloseSRAM - hlcoord 1, 1 - ld de, StringBuffer3 - call PlaceString - hlcoord 1, 3 - ld de, String_170676 - call PlaceString - hlcoord 4, 3 - ld de, StringBuffer4 - call PlaceString - hlcoord 8, 3 - ld de, String_17067a - call PlaceString - call Function1705b7 - call Function1705f0 - jr Function1705b2 - - -Function170571: - call SetPalettes - call Function1705b2 - - -Function170577: - ld hl, hJoyPressed - ld a, [hl] - and $1 - jr nz, .asm_1705ac - ld a, [hl] - and $2 - jr nz, .asm_1705ac - ld a, [hl] - and $40 - jr nz, .asm_17058f - ld a, [hl] - and $80 - jr nz, .asm_17059d - ret - -.asm_17058f - ld a, [wcf64] - and a - ret z - sub $f - ld [wcf64], a - call Function1705f0 - ret - -.asm_17059d - ld a, [wcf64] - cp $3c - ret z - add $f - ld [wcf64], a - call Function1705f0 - ret - -.asm_1705ac - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function1705b2: - ld hl, wJumptableIndex - inc [hl] - ret -; 1705b7 - -Function1705b7: ; 1705b7 - hlcoord 0, 4 - ld a, $79 - ld [hli], a - ld c, $12 -.asm_1705bf - ld a, $7a - ld [hli], a - dec c - jr nz, .asm_1705bf - ld a, $7b - ld [hli], a - ld de, $0014 - ld c, $c -.asm_1705cd - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_1705cd - ld a, $7d - ld [hli], a - ld c, $12 -.asm_1705d9 - ld a, $7a - ld [hli], a - dec c - jr nz, .asm_1705d9 - ld a, $7e - ld [hl], a - ld de, $ffec - add hl, de - ld c, $c -.asm_1705e8 - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_1705e8 - ret -; 1705f0 - -Function1705f0: ; 1705f0 - call Function17064b - call Function17065d - ld a, $50 - ld [wcd4e], a - ld hl, $c608 - ld a, [wcf64] - ld c, a - xor a - ld b, a - add hl, bc - push hl - pop bc - hlcoord 1, 6 - ld a, $6 -.asm_17060c - push af - push hl - ld a, $3 -.asm_170610 - push af - ld de, wcd49 - ld a, [bc] - and a - jr z, .asm_170625 - ld a, $5 -.asm_17061a - push af - ld a, [bc] - ld [de], a - inc bc - inc de - pop af - dec a - jr nz, .asm_17061a - jr .asm_170631 - -.asm_170625 - ld a, $5 -.asm_170627 - push af - ld a, $e3 - ld [de], a - inc de - inc bc - pop af - dec a - jr nz, .asm_170627 - -.asm_170631 - ld de, wcd49 - push bc - call PlaceString - ld de, $0006 - add hl, de - pop bc - pop af - dec a - jr nz, .asm_170610 - pop hl - ld de, $0028 - add hl, de - pop af - dec a - jr nz, .asm_17060c - ret -; 17064b - -Function17064b: ; 17064b - hlcoord 1, 5 - xor a - ld b, $c -.asm_170651 - ld c, $12 -.asm_170653 - ld [hli], a - dec c - jr nz, .asm_170653 -rept 2 - inc hl -endr - dec b - jr nz, .asm_170651 - ret -; 17065d - -Function17065d: ; 17065d - ld a, [wcf64] - and a - jr z, .asm_170669 - hlcoord 18, 5 - ld a, $61 - ld [hl], a - -.asm_170669 - ld a, [wcf64] - cp $3c - ret z - hlcoord 18, 16 - ld a, $ee - ld [hl], a - ret -; 170676 - -String_170676: ; 170676 - db "ルーム@" -; 17067a - -String_17067a: ; 17067a - db "れきだいりーダーいちらん@" -; 170687 - -Function170687: ; 170687 - ld a, [ScriptVar] - ld e, a - ld d, 0 - ld hl, Jumptable_170696 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 170696 - - -Jumptable_170696: ; 170696 (5c:4696) - dw Function17075f ; 0x00 - dw Function170788 ; 0x01 - dw Function170778 ; 0x02 - dw Function170799 ; 0x03 - dw Function17079d ; 0x04 - dw Function1707ac ; 0x05 - dw Function1707f4 ; 0x06 - dw Function170868 ; 0x07 - dw Function170881 ; 0x08 - dw Function17089a ; 0x09 - dw Function1708b1 ; 0x0a - dw Function1708b9 ; 0x0b - dw Function1708c8 ; 0x0c - dw Function1708f0 ; 0x0d - dw Function17093c ; 0x0e - dw Function1709aa ; 0x0f - dw Function1709bb ; 0x10 - dw Function170a9c ; 0x11 - dw Function170aa0 ; 0x12 - dw Function170aaf ; 0x13 - dw Function170abe ; 0x14 - dw Function170ad7 ; 0x15 - dw Function170807 ; 0x16 - dw Function17081d ; 0x17 - dw Function170ae8 ; 0x18 - dw Function170b16 ; 0x19 - dw ResetBattleTowerTrainersSRAM ; 0x1a - dw Function1706ee ; 0x1b - dw Function17071b ; 0x1c - dw Function170729 ; 0x1d - dw Function17073e ; 0x1e - dw Function170737 ; 0x1f - - -; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) -ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) - ld a, BANK(sBTTrainers) - call GetSRAMBank - - ld a, $ff - ld hl, sBTTrainers - ld bc, BATTLETOWER_NROFTRAINERS - call ByteFill - - xor a - ld [sNrOfBeatenBattleTowerTrainers], a - - call CloseSRAM - - ret - -Function1706ee: ; 1706ee (5c:46ee) - ld a, BANK(sbe50) - call GetSRAMBank - - ld a, [sbe50] - call CloseSRAM - ld [ScriptVar], a - ld hl, NumItems - ld a, [hli] - cp $14 - ret c - ld b, $14 - ld a, [ScriptVar] - ld c, a -.asm_170709 - ld a, [hli] - cp c - jr nz, .asm_170711 - ld a, [hl] - cp $5f - ret c -.asm_170711 - inc hl - dec b - jr nz, .asm_170709 - ld a, $12 - ld [ScriptVar], a - ret - -Function17071b: ; 17071b (5c:471b) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $3 - ld [s1_be45], a - call CloseSRAM - ret - -Function170729: ; 170729 (5c:4729) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $4 - ld [s1_be45], a - call CloseSRAM - ret - -Function170737: ; 170737 (5c:4737) - callba SaveOptions - ret - -Function17073e: ; 17073e (5c:473e) - call Random - ld a, [hRandomAdd] ; $ff00+$e1 - and $7 - cp $6 - jr c, .asm_17074b - sub $6 -.asm_17074b - add $1a - cp $1e - jr z, Function17073e - push af - ld a, BANK(sbe50) - call GetSRAMBank - pop af - ld [sbe50], a - call CloseSRAM - ret - -Function17075f: ; 17075f (5c:475f) - call Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - and $2 - ld [ScriptVar], a - call CloseSRAM - ret - -Function170778: ; 170778 (5c:4778) - ld hl, s1_be45 - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, [hl] - ld [ScriptVar], a - call CloseSRAM - ret - -Function170788: ; 170788 (5c:4788) - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - or $2 - ld [sbe4f], a - call CloseSRAM - ret - -Function170799: ; 170799 (5c:4799) - ld c, $1 - jr asm_17079f - -Function17079d: ; 17079d (5c:479d) - ld c, $0 -asm_17079f: ; 17079f (5c:479f) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, c - ld [s1_be45], a - call CloseSRAM - ret - -Function1707ac: ; 1707ac (5c:47ac) - ld a, $5 - call GetSRAMBank - ld a, [$aa8c] - ld b, a - ld a, [$be46] - ld [ScriptVar], a - call CloseSRAM - and a - ret z - ld a, b - cp $2 - jr nc, .asm_1707ef - push bc - call UpdateTime - pop bc - ld a, $5 - call GetSRAMBank - ld a, [$aa8b] - call CloseSRAM - ld c, a - ld a, [CurDay] - sub c - jr c, .asm_1707e5 - cp $8 - jr nc, .asm_1707ef - ld a, b - and a - jr nz, .asm_1707ef - ret -.asm_1707e5 - ld hl, CurDay - ld a, $8c - sub c - add [hl] - cp $8 - ret c -.asm_1707ef - ld a, $8 - ld [ScriptVar], a - -Function1707f4: ; 1707f4 (5c:47f4) - ld a, $5 - call GetSRAMBank - xor a - ld [$be46], a - ld [$aa8b], a - ld [$aa8c], a - call CloseSRAM - ret - -Function170807: ; 170807 (5c:4807) - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [CurDay] - ld [$b2f9], a - xor a - ld [$b2fa], a - call CloseSRAM - ret - -Function17081d: ; 17081d (5c:481d) - xor a - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - ld a, [$b2f9] - ld c, a - ld a, [$b2fa] - ld b, a - call CloseSRAM - cp $2 - jr nc, .asm_170853 - push bc - call UpdateTime - pop bc - ld a, [CurDay] - sub c - jr c, .asm_170849 - cp $b - jr nc, .asm_170853 - ld a, b - and a - jr nz, .asm_170853 - ret -.asm_170849 - ld hl, CurDay - ld a, $8c - sub c - add [hl] - cp $b - ret c -.asm_170853 - ld a, $1 - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - xor a - ld [$b2f9], a - ld [$b2fa], a - call CloseSRAM - ret - -Function170868: ; 170868 (5c:4868) - ld a, BANK(sbe47) - call GetSRAMBank - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $3 - ld [rSVBK], a ; $ff00+$70 - ld a, [wd000 + $800] - ld [sbe47], a - pop af - ld [rSVBK], a ; $ff00+$70 - call CloseSRAM - ret - -Function170881: ; 170881 (5c:4881) - ld a, BANK(sbe47) - call GetSRAMBank - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $3 - ld [rSVBK], a ; $ff00+$70 - ld a, [sbe47] - ld [wd000 + $800], a - pop af - ld [rSVBK], a ; $ff00+$70 - call CloseSRAM - ret - -Function17089a: ; 17089a - ld a, [wcfcd] - and a - jr z, .asm_1708ad - callba Function14bcb - jr z, .asm_1708ab - xor a - jr .asm_1708ad - -.asm_1708ab - ld a, $1 - -.asm_1708ad - ld [ScriptVar], a - ret -; 1708b1 - - -Function1708b1: ; 1708b1 (5c:48b1) - xor a - ld [MusicFade], a - call MaxVolume - ret - -Function1708b9: ; 1708b9 (5c:48b9) - ld a, BANK(s1_be3c) - call GetSRAMBank - ld a, [s1_be3c] - ld [ScriptVar], a - call CloseSRAM - ret - -Function1708c8: ; 1708c8 (5c:48c8) - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [CurDay] - ld [$aa8b], a - xor a - ld [$aa8c], a - ld a, [$aa5d] - cp $2 - jr nc, .asm_1708ec - ld a, [CurDay] - ld [$aa48], a - ld a, $1 - ld [$aa47], a -.asm_1708ec - call CloseSRAM - ret - -Function1708f0: ; 1708f0 (5c:48f0) - xor a - ld [ScriptVar], a - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [$aa48] - ld c, a - ld a, [$aa47] - call CloseSRAM - and a - ret z - ld hl, CurDay - ld a, c - cp [hl] - jr nz, Function170923 - ld a, $5 - call GetSRAMBank - ld a, [$aa5d] - call CloseSRAM - cp $5 - ret c - ld a, $1 - ld [ScriptVar], a - ret - - -Function170923: ; 170923 - ld a, $5 - call GetSRAMBank - xor a - ld [$aa48], a - ld [$aa47], a - ld hl, $aa5d - ld bc, $0011 - call ByteFill - call CloseSRAM - ret -; 17093c - - -Function17093c: ; 17093c (5c:493c) - xor a - ld [ScriptVar], a - ld a, EGG_TICKET - ld [CurItem], a - ld hl, NumItems - call CheckItem - ret nc - ld a, [PartyCount] - ld b, 0 - ld c, a - ld hl, PartySpecies -.asm_170955 - ld a, [hli] - cp EGG - jr nz, .asm_17099f - push hl - ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) - ld de, $6 - ld a, b - and a - jr z, .asm_170969 -.asm_170965 - add hl, de - dec a - jr nz, .asm_170965 -.asm_170969 - ld de, String_1709a4 - ld a, $6 -.asm_17096e - push af - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_17099d - pop af - dec a - jr nz, .asm_17096e -rept 4 - dec hl -endr - ld a, $50 -rept 2 - ld [hli], a -endr - pop hl - ld a, EGG_TICKET - ld [CurItem], a - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld a, $ff - ld [wd107], a - ld hl, NumItems - call TossItem - ld a, $1 - ld [ScriptVar], a - ret - -.asm_17099d - pop af - pop hl -.asm_17099f - inc b - dec c - jr nz, .asm_170955 - ret -; 1709a4 (5c:49a4) - -String_1709a4: ; 1709a4 - db "なぞナゾ@@" - -Function1709aa: ; 1709aa (5c:49aa) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $3 - ld [rSVBK], a ; $ff00+$70 - ld a, [StringBuffer2 + 10] - ld [ScriptVar], a - pop af - ld [rSVBK], a ; $ff00+$70 - ret - -Function1709bb: ; 1709bb (5c:49bb) - xor a - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - ld a, [$a800] - call CloseSRAM - cp 6 - jr nc, .asm_1709da - ld e, a - ld d, 0 - ld hl, Jumptable_1709e7 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -.asm_1709da - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - call CloseSRAM - ret -; 1709e7 (5c:49e7) - -Jumptable_1709e7: ; 1709e7 - dw Function170a00 - dw Function170a00 - dw Function1709f3 - dw Function1709f3 - dw Function170a01 - dw Function170a33 -; 1709f3 - -Function1709f3: ; 1709f3 - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$a800], a - call CloseSRAM - -Function170a00: ; 170a00 - ret -; 170a01 - -Function170a01: ; 170a01 - ld a, $5 - call GetSRAMBank - ld hl, $b023 - ld de, $c608 - ld bc, $0069 - call CopyBytes - ld a, [$a825] - ld [wcd30], a - ld a, [$a826] - ld [wcd31], a - call CloseSRAM - callba Function11b6b4 - callba Function17d0f3 - ld a, $1 - ld [ScriptVar], a - ret -; 170a33 - -Function170a33: ; 170a33 - ld a, $0 - call GetSRAMBank - ld hl, wRTC - ld de, $c608 - ld bc, $0004 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $b08c - ld de, $c608 - ld c, $4 -.asm_170a54 - ld a, [de] - inc de - cp [hl] - jr nz, .asm_170a78 - inc hl - dec c - jr nz, .asm_170a54 - call CloseSRAM - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_170a72 - ld a, [de] - and a - ret nz - -.asm_170a72 - ld a, $1 - ld [ScriptVar], a - ret - -.asm_170a78 - call CloseSRAM - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - call CloseSRAM - ld [ScriptVar], a - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_170a9b - xor a - ld [de], a - -.asm_170a9b - ret -; 170a9c - -Function170a9c: ; 170a9c (5c:4a9c) - ld c, $0 - jr asm_170aa2 - -Function170aa0: ; 170aa0 (5c:4aa0) - ld c, $1 -asm_170aa2: ; 170aa2 (5c:4aa2) - ld a, $5 - call GetSRAMBank - ld a, c - ld [$aa8d], a - call CloseSRAM - ret - -Function170aaf: ; 170aaf (5c:4aaf) - ld a, $5 - call GetSRAMBank - ld a, [$aa8d] - ld [ScriptVar], a - call CloseSRAM - ret - -Function170abe: ; 170abe (5c:4abe) - call Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - and $1 - ld [ScriptVar], a - call CloseSRAM - ret - -Function170ad7: ; 170ad7 (5c:4ad7) - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - or $1 - ld [sbe4f], a - call CloseSRAM - ret - -Function170ae8: ; 170ae8 (5c:4ae8) - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld c, $a - call SimpleDivide - ld a, b - ld [wcd4f], a - xor a - ld [ScriptVar], a - callba Function119d93 - ret nc - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld [ScriptVar], a - ret - -Function170b16: ; 170b16 (5c:4b16) - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld c, 10 - call SimpleDivide - ld a, b - ld [wcd4f], a - xor a - ld [ScriptVar], a - callba Function119dd1 - ret nc - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld [ScriptVar], a - ret - -Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 - callba Function_LoadOpponentTrainerAndPokemons - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, wd10a - ld a, [hl] - dec a - ld c, a - ld b, $0 - pop af - ld [rSVBK], a - ld hl, Unknown_170b90 - add hl, bc - ld a, [hl] - ld [wcd49], a - -; Load sprite of the opponent trainer -; because s/he is chosen randomly and appears out of nowhere - ld a, [ScriptVar] - dec a - sla a - ld e, a - sla a - sla a - sla a - ld c, a - ld b, $0 - ld d, $0 - ld hl, MapObjects - add hl, bc - inc hl - ld a, [wcd49] - ld [hl], a - ld hl, UsedSprites - add hl, de - ld [hli], a - ld [hUsedSpriteIndex], a - ld a, [hl] - ld [hUsedSpriteTile], a - callba Function143c8 - ret -; 170b90 - -Unknown_170b90: - db $12, $13, $14, $15, $18, $17 - db $16, $19, $04, $05, $11, $01 - db $1c, $1b, $21, $1e, $1a, $1d - db $1f, $3c, $20, $27, $27, $27 - db $28, $0a, $23, $24, $2a, $2b - db $35, $40, $2a, $29, $22, $25 - db $3a, $2b, $24, $49, $2b, $07 - db $2c, $2d, $4a, $0d, $4b, $3a - db $2b, $41, $35, $27, $28, $27 - db $36, $3e, $30, $2c, $2d, $3d - db $26, $2e, $06, $07, $43, $36 - -Function170bd2: ; 170bd2 - ret -; 170bd3 - -SpecialCheckForBattleTowerRules: ; 170bd3 - callba CheckForBattleTowerRules - jr c, .asm_170bde - xor a - jr .asm_170be0 - -.asm_170bde - ld a, $1 - -.asm_170be0 - ld [ScriptVar], a - ret -; 170be4 +INCLUDE "misc/battle_tower_45.asm" Function170be4: ; 170be4 ld a, $5 diff --git a/wram.asm b/wram.asm index 8ec526bbd..ab0cd5d11 100644 --- a/wram.asm +++ b/wram.asm @@ -2645,23 +2645,17 @@ w3_d000:: ; d000 BT_OTrainer:: w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24) BT_OTrainer_Name:: - ds $A + ds NAME_LENGTH + -1 BT_OTrainer_TrainerClass:: - ds $1 -BT_OTPkmn1:: ; w3_d10b - ds $1 -BT_OTPkmn1Item:: - ds $3b-1 -BT_OTPkmn2:: ; w3_d146 - ds $1 -BT_OTPkmn2Item:: - ds $3b-1 -BT_OTPkmn3:: ; w3_d181 - ds $1 -BT_OTPkmn3Item:: - ds $3b-1 + ds 1 +BT_OTPkmn1:: party_struct BT_OTPkmn1 +BT_OTPkmn1Name:: ds PKMN_NAME_LENGTH +BT_OTPkmn2:: party_struct BT_OTPkmn2 +BT_OTPkmn2Name:: ds PKMN_NAME_LENGTH +BT_OTPkmn3:: party_struct BT_OTPkmn3 +BT_OTPkmn3Name:: ds PKMN_NAME_LENGTH - ds $24 +BT_OTrainerData:: ds $24 BT_OTrainerEnd:: ; we_d1e0 ds $20 -- cgit v1.2.3 From c5527a02ae1423479af567acf7dc38708f50f9b3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 3 Nov 2015 19:43:47 -0500 Subject: dbw BANK, addr replaced with dba --- audio/cry_pointers.asm | 136 +++++++------- audio/music_pointers.asm | 206 ++++++++++---------- audio/sfx_pointers.asm | 414 ++++++++++++++++++++--------------------- battle/anim_commands.asm | 4 +- constants/misc_constants.asm | 1 + engine/map_setup.asm | 92 ++++----- engine/pack.asm | 54 +++--- engine/std_scripts.asm | 104 +++++------ event/kurt.asm | 6 +- home.asm | 8 +- maps/BattleTower1F.asm | 24 ++- maps/BattleTowerHallway.asm | 58 +++--- maps/EarlsPokemonAcademy.asm | 2 +- maps/GoldenrodPokeCenter1F.asm | 24 +-- misc/battle_tower_45.asm | 27 +-- misc/mobile_22_2.asm | 6 +- sram.asm | 8 +- tilesets/tileset_headers.asm | 4 +- wram.asm | 4 +- 19 files changed, 593 insertions(+), 589 deletions(-) diff --git a/audio/cry_pointers.asm b/audio/cry_pointers.asm index d58a6f090..5185eafd5 100644 --- a/audio/cry_pointers.asm +++ b/audio/cry_pointers.asm @@ -1,70 +1,70 @@ ; e91b0 - dbw BANK(Cry_00), Cry_00 - dbw BANK(Cry_01), Cry_01 - dbw BANK(Cry_02), Cry_02 - dbw BANK(Cry_03), Cry_03 - dbw BANK(Cry_04), Cry_04 - dbw BANK(Cry_05), Cry_05 - dbw BANK(Cry_06), Cry_06 - dbw BANK(Cry_07), Cry_07 - dbw BANK(Cry_08), Cry_08 - dbw BANK(Cry_09), Cry_09 - dbw BANK(Cry_0A), Cry_0A - dbw BANK(Cry_0B), Cry_0B - dbw BANK(Cry_0C), Cry_0C - dbw BANK(Cry_0D), Cry_0D - dbw BANK(Cry_0E), Cry_0E - dbw BANK(Cry_0F), Cry_0F - dbw BANK(Cry_10), Cry_10 - dbw BANK(Cry_11), Cry_11 - dbw BANK(Cry_12), Cry_12 - dbw BANK(Cry_13), Cry_13 - dbw BANK(Cry_14), Cry_14 - dbw BANK(Cry_15), Cry_15 - dbw BANK(Cry_16), Cry_16 - dbw BANK(Cry_17), Cry_17 - dbw BANK(Cry_18), Cry_18 - dbw BANK(Cry_19), Cry_19 - dbw BANK(Cry_1A), Cry_1A - dbw BANK(Cry_1B), Cry_1B - dbw BANK(Cry_1C), Cry_1C - dbw BANK(Cry_1D), Cry_1D - dbw BANK(Cry_1E), Cry_1E - dbw BANK(Cry_1F), Cry_1F - dbw BANK(Cry_20), Cry_20 - dbw BANK(Cry_21), Cry_21 - dbw BANK(Cry_22), Cry_22 - dbw BANK(Cry_23), Cry_23 - dbw BANK(Cry_24), Cry_24 - dbw BANK(Cry_25), Cry_25 - dbw BANK(Cry_26), Cry_26 - dbw BANK(Cry_27), Cry_27 - dbw BANK(Cry_28), Cry_28 - dbw BANK(Cry_29), Cry_29 - dbw BANK(Cry_2A), Cry_2A - dbw BANK(Cry_2B), Cry_2B - dbw BANK(Cry_2C), Cry_2C - dbw BANK(Cry_2D), Cry_2D - dbw BANK(Cry_2E), Cry_2E - dbw BANK(Cry_2F), Cry_2F - dbw BANK(Cry_30), Cry_30 - dbw BANK(Cry_31), Cry_31 - dbw BANK(Cry_32), Cry_32 - dbw BANK(Cry_33), Cry_33 - dbw BANK(Cry_34), Cry_34 - dbw BANK(Cry_35), Cry_35 - dbw BANK(Cry_36), Cry_36 - dbw BANK(Cry_37), Cry_37 - dbw BANK(Cry_38), Cry_38 - dbw BANK(Cry_39), Cry_39 - dbw BANK(Cry_3A), Cry_3A - dbw BANK(Cry_3B), Cry_3B - dbw BANK(Cry_3C), Cry_3C - dbw BANK(Cry_3D), Cry_3D - dbw BANK(Cry_3E), Cry_3E - dbw BANK(Cry_3F), Cry_3F - dbw BANK(Cry_40), Cry_40 - dbw BANK(Cry_41), Cry_41 - dbw BANK(Cry_42), Cry_42 - dbw BANK(Cry_43), Cry_43 + dba Cry_00 + dba Cry_01 + dba Cry_02 + dba Cry_03 + dba Cry_04 + dba Cry_05 + dba Cry_06 + dba Cry_07 + dba Cry_08 + dba Cry_09 + dba Cry_0A + dba Cry_0B + dba Cry_0C + dba Cry_0D + dba Cry_0E + dba Cry_0F + dba Cry_10 + dba Cry_11 + dba Cry_12 + dba Cry_13 + dba Cry_14 + dba Cry_15 + dba Cry_16 + dba Cry_17 + dba Cry_18 + dba Cry_19 + dba Cry_1A + dba Cry_1B + dba Cry_1C + dba Cry_1D + dba Cry_1E + dba Cry_1F + dba Cry_20 + dba Cry_21 + dba Cry_22 + dba Cry_23 + dba Cry_24 + dba Cry_25 + dba Cry_26 + dba Cry_27 + dba Cry_28 + dba Cry_29 + dba Cry_2A + dba Cry_2B + dba Cry_2C + dba Cry_2D + dba Cry_2E + dba Cry_2F + dba Cry_30 + dba Cry_31 + dba Cry_32 + dba Cry_33 + dba Cry_34 + dba Cry_35 + dba Cry_36 + dba Cry_37 + dba Cry_38 + dba Cry_39 + dba Cry_3A + dba Cry_3B + dba Cry_3C + dba Cry_3D + dba Cry_3E + dba Cry_3F + dba Cry_40 + dba Cry_41 + dba Cry_42 + dba Cry_43 ; e927c diff --git a/audio/music_pointers.asm b/audio/music_pointers.asm index e42f9cc9f..11d55fe2c 100644 --- a/audio/music_pointers.asm +++ b/audio/music_pointers.asm @@ -9,110 +9,110 @@ ; Songs V ; e906e - dbw BANK(Music_Nothing), Music_Nothing ; 0xe91a3 - dbw BANK(Music_TitleScreen), Music_TitleScreen ; 0xeb808 - dbw BANK(Music_Route1), Music_Route1 ; 0xec000 - dbw BANK(Music_Route3), Music_Route3 ; 0xec2ca - dbw BANK(Music_Route12), Music_Route12 ; 0xec506 - dbw BANK(Music_MagnetTrain), Music_MagnetTrain ; 0xef5f0 - dbw BANK(Music_KantoGymBattle), Music_KantoGymBattle ; 0xec720 - dbw BANK(Music_KantoTrainerBattle), Music_KantoTrainerBattle ; 0xec9fa - dbw BANK(Music_KantoWildBattle), Music_KantoWildBattle ; 0xed06d - dbw BANK(Music_PokemonCenter), Music_PokemonCenter ; 0xed5c6 - dbw BANK(Music_LookHiker), Music_LookHiker ; 0xf7411 - dbw BANK(Music_LookLass), Music_LookLass ; 0xed79b - dbw BANK(Music_LookOfficer), Music_LookOfficer ; 0xed82d - dbw BANK(Music_HealPokemon), Music_HealPokemon ; 0xf0697 - dbw BANK(Music_LavenderTown), Music_LavenderTown ; 0xef72f - dbw BANK(Music_Route2), Music_Route2 ; 0xed8dd - dbw BANK(Music_MtMoon), Music_MtMoon ; 0xedb29 - dbw BANK(Music_ShowMeAround), Music_ShowMeAround ; 0xedbd8 - dbw BANK(Music_GameCorner), Music_GameCorner ; 0xedd6d - dbw BANK(Music_Bicycle), Music_Bicycle ; 0xee119 - dbw BANK(Music_HallOfFame), Music_HallOfFame ; 0xf05bf - dbw BANK(Music_ViridianCity), Music_ViridianCity ; 0xf4000 - dbw BANK(Music_CeladonCity), Music_CeladonCity ; 0xf435b - dbw BANK(Music_TrainerVictory), Music_TrainerVictory ; 0xebeab - dbw BANK(Music_WildPokemonVictory), Music_WildPokemonVictory ; 0xf4518 - dbw BANK(Music_GymLeaderVictory), Music_GymLeaderVictory ; 0xf462c - dbw BANK(Music_MtMoonSquare), Music_MtMoonSquare ; 0xf4815 - dbw BANK(Music_Gym), Music_Gym ; 0xf48ae - dbw BANK(Music_PalletTown), Music_PalletTown ; 0xf4b0c - dbw BANK(Music_ProfOaksPokemonTalk), Music_ProfOaksPokemonTalk ; 0xf4c9f - dbw BANK(Music_ProfOak), Music_ProfOak ; 0xf4dea - dbw BANK(Music_LookRival), Music_LookRival ; 0xf4f79 - dbw BANK(Music_AfterTheRivalFight), Music_AfterTheRivalFight ; 0xf5127 - dbw BANK(Music_Surf), Music_Surf ; 0xf518a - dbw BANK(Music_Evolution), Music_Evolution ; 0xf06e1 - dbw BANK(Music_NationalPark), Music_NationalPark ; 0xf54e8 - dbw BANK(Music_Credits), Music_Credits ; 0x1f31c - dbw BANK(Music_AzaleaTown), Music_AzaleaTown ; 0xf57e8 - dbw BANK(Music_CherrygroveCity), Music_CherrygroveCity ; 0xf5b03 - dbw BANK(Music_LookKimonoGirl), Music_LookKimonoGirl ; 0xf79b8 - dbw BANK(Music_UnionCave), Music_UnionCave ; 0xf5c60 - dbw BANK(Music_JohtoWildBattle), Music_JohtoWildBattle ; 0xf5dc5 - dbw BANK(Music_JohtoTrainerBattle), Music_JohtoTrainerBattle ; 0xf6096 - dbw BANK(Music_Route30), Music_Route30 ; 0xefc01 - dbw BANK(Music_EcruteakCity), Music_EcruteakCity ; 0xef2d0 - dbw BANK(Music_VioletCity), Music_VioletCity ; 0xf0000 - dbw BANK(Music_JohtoGymBattle), Music_JohtoGymBattle ; 0xea50d - dbw BANK(Music_ChampionBattle), Music_ChampionBattle ; 0xea9c1 - dbw BANK(Music_RivalBattle), Music_RivalBattle ; 0xe974f - dbw BANK(Music_RocketBattle), Music_RocketBattle ; 0xe9b6f - dbw BANK(Music_ElmsLab), Music_ElmsLab ; 0xea040 - dbw BANK(Music_DarkCave), Music_DarkCave ; 0xea2be - dbw BANK(Music_Route29), Music_Route29 ; 0xf0386 - dbw BANK(Music_Route36), Music_Route36 ; 0xe94e9 - dbw BANK(Music_SSAqua), Music_SSAqua ; 0xead99 - dbw BANK(Music_LookYoungster), Music_LookYoungster ; 0xf66c3 - dbw BANK(Music_LookBeauty), Music_LookBeauty ; 0xeee3e - dbw BANK(Music_LookRocket), Music_LookRocket ; 0xf74a2 - dbw BANK(Music_LookPokemaniac), Music_LookPokemaniac ; 0xebde1 - dbw BANK(Music_LookSage), Music_LookSage ; 0xee35e - dbw BANK(Music_NewBarkTown), Music_NewBarkTown ; 0xeb2d3 - dbw BANK(Music_GoldenrodCity), Music_GoldenrodCity ; 0xeb453 - dbw BANK(Music_VermilionCity), Music_VermilionCity ; 0xeb676 - dbw BANK(Music_PokemonChannel), Music_PokemonChannel ; 0xee45f - dbw BANK(Music_PokeFluteChannel), Music_PokeFluteChannel ; 0xf7b13 - dbw BANK(Music_TinTower), Music_TinTower ; 0xf6811 - dbw BANK(Music_SproutTower), Music_SproutTower ; 0xf6974 - dbw BANK(Music_BurnedTower), Music_BurnedTower ; 0xf6a99 - dbw BANK(Music_Lighthouse), Music_Lighthouse ; 0xee569 - dbw BANK(Music_LakeOfRage), Music_LakeOfRage ; 0xee6c5 - dbw BANK(Music_IndigoPlateau), Music_IndigoPlateau ; 0xee852 - dbw BANK(Music_Route37), Music_Route37 ; 0xee94b - dbw BANK(Music_RocketHideout), Music_RocketHideout ; 0xeeb75 - dbw BANK(Music_DragonsDen), Music_DragonsDen ; 0xeece8 - dbw BANK(Music_JohtoWildBattleNight), Music_JohtoWildBattleNight ; 0xf605c - dbw BANK(Music_RuinsOfAlphRadio), Music_RuinsOfAlphRadio ; 0xeedcb - dbw BANK(Music_SuccessfulCapture), Music_SuccessfulCapture ; 0xf4602 - dbw BANK(Music_Route26), Music_Route26 ; 0xeefb2 - dbw BANK(Music_Mom), Music_Mom ; 0xf6bf2 - dbw BANK(Music_VictoryRoad), Music_VictoryRoad ; 0xf6c72 - dbw BANK(Music_PokemonLullaby), Music_PokemonLullaby ; 0xf6d79 - dbw BANK(Music_PokemonMarch), Music_PokemonMarch ; 0xf6e23 - dbw BANK(Music_GoldSilverOpening), Music_GoldSilverOpening ; 0xf7055 - dbw BANK(Music_GoldSilverOpening2), Music_GoldSilverOpening2 ; 0xf7308 - dbw BANK(Music_MainMenu), Music_MainMenu ; 0xf78fd - dbw BANK(Music_RuinsOfAlphInterior), Music_RuinsOfAlphInterior ; 0xebd9e - dbw BANK(Music_RocketTheme), Music_RocketTheme ; 0xf766d - dbw BANK(Music_DancingHall), Music_DancingHall ; 0xef9bc - dbw BANK(Music_ContestResults), Music_ContestResults ; 0xefb3e - dbw BANK(Music_BugCatchingContest), Music_BugCatchingContest ; 0xf7c16 - dbw BANK(Music_LakeOfRageRocketRadio), Music_LakeOfRageRocketRadio ; 0xef5b1 - dbw BANK(Music_Printer), Music_Printer ; 0xf07fd - dbw BANK(Music_PostCredits), Music_PostCredits ; 0xcfd9e + dba Music_Nothing ; 0xe91a3 + dba Music_TitleScreen ; 0xeb808 + dba Music_Route1 ; 0xec000 + dba Music_Route3 ; 0xec2ca + dba Music_Route12 ; 0xec506 + dba Music_MagnetTrain ; 0xef5f0 + dba Music_KantoGymBattle ; 0xec720 + dba Music_KantoTrainerBattle ; 0xec9fa + dba Music_KantoWildBattle ; 0xed06d + dba Music_PokemonCenter ; 0xed5c6 + dba Music_LookHiker ; 0xf7411 + dba Music_LookLass ; 0xed79b + dba Music_LookOfficer ; 0xed82d + dba Music_HealPokemon ; 0xf0697 + dba Music_LavenderTown ; 0xef72f + dba Music_Route2 ; 0xed8dd + dba Music_MtMoon ; 0xedb29 + dba Music_ShowMeAround ; 0xedbd8 + dba Music_GameCorner ; 0xedd6d + dba Music_Bicycle ; 0xee119 + dba Music_HallOfFame ; 0xf05bf + dba Music_ViridianCity ; 0xf4000 + dba Music_CeladonCity ; 0xf435b + dba Music_TrainerVictory ; 0xebeab + dba Music_WildPokemonVictory ; 0xf4518 + dba Music_GymLeaderVictory ; 0xf462c + dba Music_MtMoonSquare ; 0xf4815 + dba Music_Gym ; 0xf48ae + dba Music_PalletTown ; 0xf4b0c + dba Music_ProfOaksPokemonTalk ; 0xf4c9f + dba Music_ProfOak ; 0xf4dea + dba Music_LookRival ; 0xf4f79 + dba Music_AfterTheRivalFight ; 0xf5127 + dba Music_Surf ; 0xf518a + dba Music_Evolution ; 0xf06e1 + dba Music_NationalPark ; 0xf54e8 + dba Music_Credits ; 0x1f31c + dba Music_AzaleaTown ; 0xf57e8 + dba Music_CherrygroveCity ; 0xf5b03 + dba Music_LookKimonoGirl ; 0xf79b8 + dba Music_UnionCave ; 0xf5c60 + dba Music_JohtoWildBattle ; 0xf5dc5 + dba Music_JohtoTrainerBattle ; 0xf6096 + dba Music_Route30 ; 0xefc01 + dba Music_EcruteakCity ; 0xef2d0 + dba Music_VioletCity ; 0xf0000 + dba Music_JohtoGymBattle ; 0xea50d + dba Music_ChampionBattle ; 0xea9c1 + dba Music_RivalBattle ; 0xe974f + dba Music_RocketBattle ; 0xe9b6f + dba Music_ElmsLab ; 0xea040 + dba Music_DarkCave ; 0xea2be + dba Music_Route29 ; 0xf0386 + dba Music_Route36 ; 0xe94e9 + dba Music_SSAqua ; 0xead99 + dba Music_LookYoungster ; 0xf66c3 + dba Music_LookBeauty ; 0xeee3e + dba Music_LookRocket ; 0xf74a2 + dba Music_LookPokemaniac ; 0xebde1 + dba Music_LookSage ; 0xee35e + dba Music_NewBarkTown ; 0xeb2d3 + dba Music_GoldenrodCity ; 0xeb453 + dba Music_VermilionCity ; 0xeb676 + dba Music_PokemonChannel ; 0xee45f + dba Music_PokeFluteChannel ; 0xf7b13 + dba Music_TinTower ; 0xf6811 + dba Music_SproutTower ; 0xf6974 + dba Music_BurnedTower ; 0xf6a99 + dba Music_Lighthouse ; 0xee569 + dba Music_LakeOfRage ; 0xee6c5 + dba Music_IndigoPlateau ; 0xee852 + dba Music_Route37 ; 0xee94b + dba Music_RocketHideout ; 0xeeb75 + dba Music_DragonsDen ; 0xeece8 + dba Music_JohtoWildBattleNight ; 0xf605c + dba Music_RuinsOfAlphRadio ; 0xeedcb + dba Music_SuccessfulCapture ; 0xf4602 + dba Music_Route26 ; 0xeefb2 + dba Music_Mom ; 0xf6bf2 + dba Music_VictoryRoad ; 0xf6c72 + dba Music_PokemonLullaby ; 0xf6d79 + dba Music_PokemonMarch ; 0xf6e23 + dba Music_GoldSilverOpening ; 0xf7055 + dba Music_GoldSilverOpening2 ; 0xf7308 + dba Music_MainMenu ; 0xf78fd + dba Music_RuinsOfAlphInterior ; 0xebd9e + dba Music_RocketTheme ; 0xf766d + dba Music_DancingHall ; 0xef9bc + dba Music_ContestResults ; 0xefb3e + dba Music_BugCatchingContest ; 0xf7c16 + dba Music_LakeOfRageRocketRadio ; 0xef5b1 + dba Music_Printer ; 0xf07fd + dba Music_PostCredits ; 0xcfd9e ; Crystal adds the following songs: - dbw BANK(Music_Clair), Music_Clair ; 0x1fa8d - dbw BANK(Music_MobileAdapterMenu), Music_MobileAdapterMenu ; 0x17801f - dbw BANK(Music_MobileAdapter), Music_MobileAdapter ; 0x1fc87 - dbw BANK(Music_BuenasPassword), Music_BuenasPassword ; 0x178153 - dbw BANK(Music_LookMysticalMan), Music_LookMysticalMan ; 0x17843b - dbw BANK(Music_CrystalOpening), Music_CrystalOpening ; 0x1786e8 - dbw BANK(Music_BattleTowerTheme), Music_BattleTowerTheme ; 0x178889 - dbw BANK(Music_SuicuneBattle), Music_SuicuneBattle ; 0x178b81 - dbw BANK(Music_BattleTowerLobby), Music_BattleTowerLobby ; 0x17948b - dbw BANK(Music_MobileCenter), Music_MobileCenter ; 0x17961d + dba Music_Clair ; 0x1fa8d + dba Music_MobileAdapterMenu ; 0x17801f + dba Music_MobileAdapter ; 0x1fc87 + dba Music_BuenasPassword ; 0x178153 + dba Music_LookMysticalMan ; 0x17843b + dba Music_CrystalOpening ; 0x1786e8 + dba Music_BattleTowerTheme ; 0x178889 + dba Music_SuicuneBattle ; 0x178b81 + dba Music_BattleTowerLobby ; 0x17948b + dba Music_MobileCenter ; 0x17961d ; e91a3 diff --git a/audio/sfx_pointers.asm b/audio/sfx_pointers.asm index d0f24fea2..c5a2b02bf 100644 --- a/audio/sfx_pointers.asm +++ b/audio/sfx_pointers.asm @@ -1,212 +1,212 @@ ; e927c - dbw BANK(Sfx_DexFanfare5079), Sfx_DexFanfare5079 - dbw BANK(Sfx_Item), Sfx_Item - dbw BANK(Sfx_CaughtMon), Sfx_CaughtMon - dbw BANK(Sfx_PokeballsPlacedOnTable), Sfx_PokeballsPlacedOnTable - dbw BANK(Sfx_Potion), Sfx_Potion - dbw BANK(Sfx_FullHeal), Sfx_FullHeal - dbw BANK(Sfx_Menu), Sfx_Menu - dbw BANK(Sfx_ReadText), Sfx_ReadText - dbw BANK(Sfx_ReadText2), Sfx_ReadText2 - dbw BANK(Sfx_DexFanfare2049), Sfx_DexFanfare2049 - dbw BANK(Sfx_DexFanfare80109), Sfx_DexFanfare80109 - dbw BANK(Sfx_Poison), Sfx_Poison - dbw BANK(Sfx_GotSafariBalls), Sfx_GotSafariBalls - dbw BANK(Sfx_BootPc), Sfx_BootPc - dbw BANK(Sfx_ShutDownPc), Sfx_ShutDownPc - dbw BANK(Sfx_ChoosePcOption), Sfx_ChoosePcOption - dbw BANK(Sfx_EscapeRope), Sfx_EscapeRope - dbw BANK(Sfx_PushButton), Sfx_PushButton - dbw BANK(Sfx_SecondPartOfItemfinder), Sfx_SecondPartOfItemfinder - dbw BANK(Sfx_WarpTo), Sfx_WarpTo - dbw BANK(Sfx_WarpFrom), Sfx_WarpFrom - dbw BANK(Sfx_ChangeDexMode), Sfx_ChangeDexMode - dbw BANK(Sfx_JumpOverLedge), Sfx_JumpOverLedge - dbw BANK(Sfx_GrassRustle), Sfx_GrassRustle - dbw BANK(Sfx_Fly), Sfx_Fly - dbw BANK(Sfx_Wrong), Sfx_Wrong - dbw BANK(Sfx_Squeak), Sfx_Squeak - dbw BANK(Sfx_Strength), Sfx_Strength - dbw BANK(Sfx_Boat), Sfx_Boat - dbw BANK(Sfx_WallOpen), Sfx_WallOpen - dbw BANK(Sfx_PlacePuzzlePieceDown), Sfx_PlacePuzzlePieceDown - dbw BANK(Sfx_EnterDoor), Sfx_EnterDoor - dbw BANK(Sfx_SwitchPokemon), Sfx_SwitchPokemon - dbw BANK(Sfx_Tally), Sfx_Tally - dbw BANK(Sfx_Transaction), Sfx_Transaction - dbw BANK(Sfx_ExitBuilding), Sfx_ExitBuilding - dbw BANK(Sfx_Bump), Sfx_Bump - dbw BANK(Sfx_Save), Sfx_Save - dbw BANK(Sfx_Pokeflute), Sfx_Pokeflute - dbw BANK(Sfx_ElevatorEnd), Sfx_ElevatorEnd - dbw BANK(Sfx_ThrowBall), Sfx_ThrowBall - dbw BANK(Sfx_BallPoof), Sfx_BallPoof - dbw BANK(Sfx_Unknown3A), Sfx_Unknown3A - dbw BANK(Sfx_Run), Sfx_Run - dbw BANK(Sfx_SlotMachineStart), Sfx_SlotMachineStart - dbw BANK(Sfx_Fanfare), Sfx_Fanfare - dbw BANK(Sfx_Peck), Sfx_Peck - dbw BANK(Sfx_Kinesis), Sfx_Kinesis - dbw BANK(Sfx_Lick), Sfx_Lick - dbw BANK(Sfx_Pound), Sfx_Pound - dbw BANK(Sfx_MovePuzzlePiece), Sfx_MovePuzzlePiece - dbw BANK(Sfx_CometPunch), Sfx_CometPunch - dbw BANK(Sfx_MegaPunch), Sfx_MegaPunch - dbw BANK(Sfx_Scratch), Sfx_Scratch - dbw BANK(Sfx_Vicegrip), Sfx_Vicegrip - dbw BANK(Sfx_RazorWind), Sfx_RazorWind - dbw BANK(Sfx_Cut), Sfx_Cut - dbw BANK(Sfx_WingAttack), Sfx_WingAttack - dbw BANK(Sfx_Whirlwind), Sfx_Whirlwind - dbw BANK(Sfx_Bind), Sfx_Bind - dbw BANK(Sfx_VineWhip), Sfx_VineWhip - dbw BANK(Sfx_DoubleKick), Sfx_DoubleKick - dbw BANK(Sfx_MegaKick), Sfx_MegaKick - dbw BANK(Sfx_Headbutt), Sfx_Headbutt - dbw BANK(Sfx_HornAttack), Sfx_HornAttack - dbw BANK(Sfx_Tackle), Sfx_Tackle - dbw BANK(Sfx_PoisonSting), Sfx_PoisonSting - dbw BANK(Sfx_Powder), Sfx_Powder - dbw BANK(Sfx_Doubleslap), Sfx_Doubleslap - dbw BANK(Sfx_Bite), Sfx_Bite - dbw BANK(Sfx_JumpKick), Sfx_JumpKick - dbw BANK(Sfx_Stomp), Sfx_Stomp - dbw BANK(Sfx_TailWhip), Sfx_TailWhip - dbw BANK(Sfx_KarateChop), Sfx_KarateChop - dbw BANK(Sfx_Submission), Sfx_Submission - dbw BANK(Sfx_WaterGun), Sfx_WaterGun - dbw BANK(Sfx_SwordsDance), Sfx_SwordsDance - dbw BANK(Sfx_Thunder), Sfx_Thunder - dbw BANK(Sfx_Supersonic), Sfx_Supersonic - dbw BANK(Sfx_Leer), Sfx_Leer - dbw BANK(Sfx_Ember), Sfx_Ember - dbw BANK(Sfx_Bubblebeam), Sfx_Bubblebeam - dbw BANK(Sfx_HydroPump), Sfx_HydroPump - dbw BANK(Sfx_Surf), Sfx_Surf - dbw BANK(Sfx_Psybeam), Sfx_Psybeam - dbw BANK(Sfx_Charge), Sfx_Charge - dbw BANK(Sfx_Thundershock), Sfx_Thundershock - dbw BANK(Sfx_Psychic), Sfx_Psychic - dbw BANK(Sfx_Screech), Sfx_Screech - dbw BANK(Sfx_BoneClub), Sfx_BoneClub - dbw BANK(Sfx_Sharpen), Sfx_Sharpen - dbw BANK(Sfx_EggBomb), Sfx_EggBomb - dbw BANK(Sfx_Sing), Sfx_Sing - dbw BANK(Sfx_HyperBeam), Sfx_HyperBeam - dbw BANK(Sfx_Shine), Sfx_Shine - dbw BANK(Sfx_Unknown5F), Sfx_Unknown5F - dbw BANK(Sfx_Unknown60), Sfx_Unknown60 - dbw BANK(Sfx_Unknown61), Sfx_Unknown61 - dbw BANK(Sfx_Unknown62), Sfx_Unknown62 - dbw BANK(Sfx_Unknown63), Sfx_Unknown63 - dbw BANK(Sfx_Burn), Sfx_Burn - dbw BANK(Sfx_TitleScreenEntrance), Sfx_TitleScreenEntrance - dbw BANK(Sfx_Unknown66), Sfx_Unknown66 - dbw BANK(Sfx_GetCoinFromSlots), Sfx_GetCoinFromSlots - dbw BANK(Sfx_PayDay), Sfx_PayDay - dbw BANK(Sfx_Metronome), Sfx_Metronome - dbw BANK(Sfx_Call), Sfx_Call - dbw BANK(Sfx_HangUp), Sfx_HangUp - dbw BANK(Sfx_NoSignal), Sfx_NoSignal - dbw BANK(Sfx_Sandstorm), Sfx_Sandstorm - dbw BANK(Sfx_Elevator), Sfx_Elevator - dbw BANK(Sfx_Protect), Sfx_Protect - dbw BANK(Sfx_Sketch), Sfx_Sketch - dbw BANK(Sfx_RainDance), Sfx_RainDance - dbw BANK(Sfx_Aeroblast), Sfx_Aeroblast - dbw BANK(Sfx_Spark), Sfx_Spark - dbw BANK(Sfx_Curse), Sfx_Curse - dbw BANK(Sfx_Rage), Sfx_Rage - dbw BANK(Sfx_Thief), Sfx_Thief - dbw BANK(Sfx_Thief2), Sfx_Thief2 - dbw BANK(Sfx_SpiderWeb), Sfx_SpiderWeb - dbw BANK(Sfx_MindReader), Sfx_MindReader - dbw BANK(Sfx_Nightmare), Sfx_Nightmare - dbw BANK(Sfx_Snore), Sfx_Snore - dbw BANK(Sfx_SweetKiss), Sfx_SweetKiss - dbw BANK(Sfx_SweetKiss2), Sfx_SweetKiss2 - dbw BANK(Sfx_BellyDrum), Sfx_BellyDrum - dbw BANK(Sfx_Unknown7F), Sfx_Unknown7F - dbw BANK(Sfx_SludgeBomb), Sfx_SludgeBomb - dbw BANK(Sfx_Foresight), Sfx_Foresight - dbw BANK(Sfx_Spite), Sfx_Spite - dbw BANK(Sfx_Outrage), Sfx_Outrage - dbw BANK(Sfx_PerishSong), Sfx_PerishSong - dbw BANK(Sfx_GigaDrain), Sfx_GigaDrain - dbw BANK(Sfx_Attract), Sfx_Attract - dbw BANK(Sfx_Kinesis2), Sfx_Kinesis2 - dbw BANK(Sfx_ZapCannon), Sfx_ZapCannon - dbw BANK(Sfx_MeanLook), Sfx_MeanLook - dbw BANK(Sfx_HealBell), Sfx_HealBell - dbw BANK(Sfx_Return), Sfx_Return - dbw BANK(Sfx_ExpBar), Sfx_ExpBar - dbw BANK(Sfx_MilkDrink), Sfx_MilkDrink - dbw BANK(Sfx_Present), Sfx_Present - dbw BANK(Sfx_MorningSun), Sfx_MorningSun - dbw BANK(Sfx_LevelUp), Sfx_LevelUp - dbw BANK(Sfx_KeyItem), Sfx_KeyItem - dbw BANK(Sfx_Fanfare2), Sfx_Fanfare2 - dbw BANK(Sfx_RegisterPhoneNumber), Sfx_RegisterPhoneNumber - dbw BANK(Sfx_3RdPlace), Sfx_3RdPlace - dbw BANK(Sfx_GetEggFromDaycareMan), Sfx_GetEggFromDaycareMan - dbw BANK(Sfx_GetEggFromDaycareLady), Sfx_GetEggFromDaycareLady - dbw BANK(Sfx_MoveDeleted), Sfx_MoveDeleted - dbw BANK(Sfx_2ndPlace), Sfx_2ndPlace - dbw BANK(Sfx_1stPlace), Sfx_1stPlace - dbw BANK(Sfx_ChooseACard), Sfx_ChooseACard - dbw BANK(Sfx_GetTm), Sfx_GetTm - dbw BANK(Sfx_GetBadge), Sfx_GetBadge - dbw BANK(Sfx_QuitSlots), Sfx_QuitSlots - dbw BANK(Sfx_EggCrack), Sfx_EggCrack - dbw BANK(Sfx_DexFanfareLessThan20), Sfx_DexFanfareLessThan20 - dbw BANK(Sfx_DexFanfare140169), Sfx_DexFanfare140169 - dbw BANK(Sfx_DexFanfare170199), Sfx_DexFanfare170199 - dbw BANK(Sfx_DexFanfare200229), Sfx_DexFanfare200229 - dbw BANK(Sfx_DexFanfare230Plus), Sfx_DexFanfare230Plus - dbw BANK(Sfx_Evolved), Sfx_Evolved - dbw BANK(Sfx_MasterBall), Sfx_MasterBall - dbw BANK(Sfx_EggHatch), Sfx_EggHatch - dbw BANK(Sfx_GsIntroCharizardFireball), Sfx_GsIntroCharizardFireball - dbw BANK(Sfx_GsIntroPokemonAppears), Sfx_GsIntroPokemonAppears - dbw BANK(Sfx_Flash), Sfx_Flash - dbw BANK(Sfx_GameFreakLogoGs), Sfx_GameFreakLogoGs - dbw BANK(Sfx_NotVeryEffective), Sfx_NotVeryEffective - dbw BANK(Sfx_Damage), Sfx_Damage - dbw BANK(Sfx_SuperEffective), Sfx_SuperEffective - dbw BANK(Sfx_BallBounce), Sfx_BallBounce - dbw BANK(Sfx_Moonlight), Sfx_Moonlight - dbw BANK(Sfx_Encore), Sfx_Encore - dbw BANK(Sfx_BeatUp), Sfx_BeatUp - dbw BANK(Sfx_BatonPass), Sfx_BatonPass - dbw BANK(Sfx_BallWiggle), Sfx_BallWiggle - dbw BANK(Sfx_SweetScent), Sfx_SweetScent - dbw BANK(Sfx_SweetScent2), Sfx_SweetScent2 - dbw BANK(Sfx_HitEndOfExpBar), Sfx_HitEndOfExpBar - dbw BANK(Sfx_GiveTrademon), Sfx_GiveTrademon - dbw BANK(Sfx_GetTrademon), Sfx_GetTrademon - dbw BANK(Sfx_TrainArrived), Sfx_TrainArrived - dbw BANK(Sfx_StopSlot), Sfx_StopSlot - dbw BANK(Sfx_2Boops), Sfx_2Boops - dbw BANK(Sfx_GlassTing), Sfx_GlassTing - dbw BANK(Sfx_GlassTing2), Sfx_GlassTing2 + dba Sfx_DexFanfare5079 + dba Sfx_Item + dba Sfx_CaughtMon + dba Sfx_PokeballsPlacedOnTable + dba Sfx_Potion + dba Sfx_FullHeal + dba Sfx_Menu + dba Sfx_ReadText + dba Sfx_ReadText2 + dba Sfx_DexFanfare2049 + dba Sfx_DexFanfare80109 + dba Sfx_Poison + dba Sfx_GotSafariBalls + dba Sfx_BootPc + dba Sfx_ShutDownPc + dba Sfx_ChoosePcOption + dba Sfx_EscapeRope + dba Sfx_PushButton + dba Sfx_SecondPartOfItemfinder + dba Sfx_WarpTo + dba Sfx_WarpFrom + dba Sfx_ChangeDexMode + dba Sfx_JumpOverLedge + dba Sfx_GrassRustle + dba Sfx_Fly + dba Sfx_Wrong + dba Sfx_Squeak + dba Sfx_Strength + dba Sfx_Boat + dba Sfx_WallOpen + dba Sfx_PlacePuzzlePieceDown + dba Sfx_EnterDoor + dba Sfx_SwitchPokemon + dba Sfx_Tally + dba Sfx_Transaction + dba Sfx_ExitBuilding + dba Sfx_Bump + dba Sfx_Save + dba Sfx_Pokeflute + dba Sfx_ElevatorEnd + dba Sfx_ThrowBall + dba Sfx_BallPoof + dba Sfx_Unknown3A + dba Sfx_Run + dba Sfx_SlotMachineStart + dba Sfx_Fanfare + dba Sfx_Peck + dba Sfx_Kinesis + dba Sfx_Lick + dba Sfx_Pound + dba Sfx_MovePuzzlePiece + dba Sfx_CometPunch + dba Sfx_MegaPunch + dba Sfx_Scratch + dba Sfx_Vicegrip + dba Sfx_RazorWind + dba Sfx_Cut + dba Sfx_WingAttack + dba Sfx_Whirlwind + dba Sfx_Bind + dba Sfx_VineWhip + dba Sfx_DoubleKick + dba Sfx_MegaKick + dba Sfx_Headbutt + dba Sfx_HornAttack + dba Sfx_Tackle + dba Sfx_PoisonSting + dba Sfx_Powder + dba Sfx_Doubleslap + dba Sfx_Bite + dba Sfx_JumpKick + dba Sfx_Stomp + dba Sfx_TailWhip + dba Sfx_KarateChop + dba Sfx_Submission + dba Sfx_WaterGun + dba Sfx_SwordsDance + dba Sfx_Thunder + dba Sfx_Supersonic + dba Sfx_Leer + dba Sfx_Ember + dba Sfx_Bubblebeam + dba Sfx_HydroPump + dba Sfx_Surf + dba Sfx_Psybeam + dba Sfx_Charge + dba Sfx_Thundershock + dba Sfx_Psychic + dba Sfx_Screech + dba Sfx_BoneClub + dba Sfx_Sharpen + dba Sfx_EggBomb + dba Sfx_Sing + dba Sfx_HyperBeam + dba Sfx_Shine + dba Sfx_Unknown5F + dba Sfx_Unknown60 + dba Sfx_Unknown61 + dba Sfx_Unknown62 + dba Sfx_Unknown63 + dba Sfx_Burn + dba Sfx_TitleScreenEntrance + dba Sfx_Unknown66 + dba Sfx_GetCoinFromSlots + dba Sfx_PayDay + dba Sfx_Metronome + dba Sfx_Call + dba Sfx_HangUp + dba Sfx_NoSignal + dba Sfx_Sandstorm + dba Sfx_Elevator + dba Sfx_Protect + dba Sfx_Sketch + dba Sfx_RainDance + dba Sfx_Aeroblast + dba Sfx_Spark + dba Sfx_Curse + dba Sfx_Rage + dba Sfx_Thief + dba Sfx_Thief2 + dba Sfx_SpiderWeb + dba Sfx_MindReader + dba Sfx_Nightmare + dba Sfx_Snore + dba Sfx_SweetKiss + dba Sfx_SweetKiss2 + dba Sfx_BellyDrum + dba Sfx_Unknown7F + dba Sfx_SludgeBomb + dba Sfx_Foresight + dba Sfx_Spite + dba Sfx_Outrage + dba Sfx_PerishSong + dba Sfx_GigaDrain + dba Sfx_Attract + dba Sfx_Kinesis2 + dba Sfx_ZapCannon + dba Sfx_MeanLook + dba Sfx_HealBell + dba Sfx_Return + dba Sfx_ExpBar + dba Sfx_MilkDrink + dba Sfx_Present + dba Sfx_MorningSun + dba Sfx_LevelUp + dba Sfx_KeyItem + dba Sfx_Fanfare2 + dba Sfx_RegisterPhoneNumber + dba Sfx_3RdPlace + dba Sfx_GetEggFromDaycareMan + dba Sfx_GetEggFromDaycareLady + dba Sfx_MoveDeleted + dba Sfx_2ndPlace + dba Sfx_1stPlace + dba Sfx_ChooseACard + dba Sfx_GetTm + dba Sfx_GetBadge + dba Sfx_QuitSlots + dba Sfx_EggCrack + dba Sfx_DexFanfareLessThan20 + dba Sfx_DexFanfare140169 + dba Sfx_DexFanfare170199 + dba Sfx_DexFanfare200229 + dba Sfx_DexFanfare230Plus + dba Sfx_Evolved + dba Sfx_MasterBall + dba Sfx_EggHatch + dba Sfx_GsIntroCharizardFireball + dba Sfx_GsIntroPokemonAppears + dba Sfx_Flash + dba Sfx_GameFreakLogoGs + dba Sfx_NotVeryEffective + dba Sfx_Damage + dba Sfx_SuperEffective + dba Sfx_BallBounce + dba Sfx_Moonlight + dba Sfx_Encore + dba Sfx_BeatUp + dba Sfx_BatonPass + dba Sfx_BallWiggle + dba Sfx_SweetScent + dba Sfx_SweetScent2 + dba Sfx_HitEndOfExpBar + dba Sfx_GiveTrademon + dba Sfx_GetTrademon + dba Sfx_TrainArrived + dba Sfx_StopSlot + dba Sfx_2Boops + dba Sfx_GlassTing + dba Sfx_GlassTing2 ; Crystal adds the following SFX: - dbw BANK(Sfx_IntroUnown1), Sfx_IntroUnown1 - dbw BANK(Sfx_IntroUnown2), Sfx_IntroUnown2 - dbw BANK(Sfx_IntroUnown3), Sfx_IntroUnown3 - dbw BANK(Sfx_DittoPopUp), Sfx_DittoPopUp - dbw BANK(Sfx_DittoTransform), Sfx_DittoTransform - dbw BANK(Sfx_IntroSuicune1), Sfx_IntroSuicune1 - dbw BANK(Sfx_IntroPichu), Sfx_IntroPichu - dbw BANK(Sfx_IntroSuicune2), Sfx_IntroSuicune2 - dbw BANK(Sfx_IntroSuicune3), Sfx_IntroSuicune3 - dbw BANK(Sfx_DittoBounce), Sfx_DittoBounce - dbw BANK(Sfx_IntroSuicune4), Sfx_IntroSuicune4 - dbw BANK(Sfx_GameFreakPresents), Sfx_GameFreakPresents - dbw BANK(Sfx_Tingle), Sfx_Tingle - dbw BANK(Sfx_UnknownCB), Sfx_UnknownCB - dbw BANK(Sfx_TwoPcBeeps), Sfx_TwoPcBeeps - dbw BANK(Sfx_4NoteDitty), Sfx_4NoteDitty - dbw BANK(Sfx_Twinkle), Sfx_Twinkle + dba Sfx_IntroUnown1 + dba Sfx_IntroUnown2 + dba Sfx_IntroUnown3 + dba Sfx_DittoPopUp + dba Sfx_DittoTransform + dba Sfx_IntroSuicune1 + dba Sfx_IntroPichu + dba Sfx_IntroSuicune2 + dba Sfx_IntroSuicune3 + dba Sfx_DittoBounce + dba Sfx_IntroSuicune4 + dba Sfx_GameFreakPresents + dba Sfx_Tingle + dba Sfx_UnknownCB + dba Sfx_TwoPcBeeps + dba Sfx_4NoteDitty + dba Sfx_Twinkle ; e94e9 diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index 82d5eab62..b6dff896c 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -168,8 +168,8 @@ BattleAnimRestoreHuds: ; cc1bb ld [rSVBK], a ld hl, UpdateBattleHuds - ld a, $f - rst FarCall + ld a, BANK(UpdatePlayerHUD) + rst FarCall ; Why the heck is this a callab? pop af ld [rSVBK], a diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index a4e89fd93..924dc7d0a 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -117,6 +117,7 @@ BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTR NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7 WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY) +MOBILE_EVENT_OBJECT_GS_BALL EQU $b PRINTNUM_MONEY_F EQU 5 PRINTNUM_RIGHTALIGN_F EQU 6 diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 0e391b31c..7d0a9affb 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -243,52 +243,52 @@ endr ; 15440 MapSetupCommands: ; 15440 - dbw BANK(EnableLCD), EnableLCD ; 00 - dbw BANK(DisableLCD), DisableLCD ; 01 - dbw BANK(SoundRestart), SoundRestart ; 02 - dbw BANK(PlayMapMusic), PlayMapMusic ; 03 - dbw BANK(RestartMapMusic), RestartMapMusic ; 04 - dbw BANK(FadeToMapMusic), FadeToMapMusic ; 05 - dbw BANK(FadeOutMapAndMusic), FadeOutMapAndMusic ; 06 - dbw BANK(EnterMapMusic), EnterMapMusic ; 07 - dbw BANK(ForceMapMusic), ForceMapMusic ; 08 - dbw BANK(CrankUpTheVolume), CrankUpTheVolume ; 09 - dbw BANK(LoadBlockData), LoadBlockData ; 0a - dbw BANK(LoadNeighboringBlockData), LoadNeighboringBlockData ; 0b - dbw BANK(SaveScreen), SaveScreen ; 0c - dbw BANK(BufferScreen), BufferScreen ; 0d - dbw BANK(LoadGraphics), LoadGraphics ; 0e - dbw BANK(LoadTilesetHeader), LoadTilesetHeader ; 0f - dbw BANK(LoadMapTimeOfDay), LoadMapTimeOfDay ; 10 - dbw BANK(LoadMapPalettes), LoadMapPalettes ; 11 - dbw BANK(LoadWildMonData), LoadWildMonData ; 12 - dbw BANK(RefreshMapSprites), RefreshMapSprites ; 13 - dbw BANK(RunCallback_05_03), RunCallback_05_03 ; 14 - dbw BANK(RunCallback_03), RunCallback_03 ; 15 - dbw BANK(LoadObjectsRunCallback_02), LoadObjectsRunCallback_02 ; 16 - dbw BANK(LoadSpawnPoint), LoadSpawnPoint ; 17 - dbw BANK(EnterMapConnection), EnterMapConnection ; 18 - dbw BANK(LoadWarpData), LoadWarpData ; 19 - dbw BANK(LoadMapAttributes), LoadMapAttributes ; 1a - dbw BANK(LoadMapAttributes_IgnoreHidden), LoadMapAttributes_IgnoreHidden ; 1b - dbw BANK(WhiteBGMap), WhiteBGMap ; 1c - dbw BANK(FadeBlackBGMap), FadeBlackBGMap ; 1d - dbw BANK(FadeInBGMap), FadeInBGMap ; 1e - dbw BANK(GetCoordOfUpperLeftCorner), GetCoordOfUpperLeftCorner ; 1f - dbw BANK(RestoreFacingAfterWarp), RestoreFacingAfterWarp ; 20 - dbw BANK(SpawnInFacingDown), SpawnInFacingDown ; 21 - dbw BANK(GetSpawnCoord), GetSpawnCoord ; 22 - dbw BANK(RefreshPlayerCoords), RefreshPlayerCoords ; 23 - dbw BANK(DelayClearingOldSprites), DelayClearingOldSprites ; 24 - dbw BANK(DelayLoadingNewSprites), DelayLoadingNewSprites ; 25 - dbw BANK(UpdateRoamMons), UpdateRoamMons ; 26 - dbw BANK(JumpRoamMons), JumpRoamMons ; 27 - dbw BANK(FadeOldMapMusic), FadeOldMapMusic ; 28 - dbw BANK(ActivateMapAnims), ActivateMapAnims ; 29 - dbw BANK(SuspendMapAnims), SuspendMapAnims ; 2a - dbw BANK(RetainOldPalettes), RetainOldPalettes ; 2b - dbw BANK(DontScrollText), DontScrollText ; 2c - dbw BANK(ReturnFromMapSetupScript), ReturnFromMapSetupScript ; 2d + dba EnableLCD ; 00 + dba DisableLCD ; 01 + dba SoundRestart ; 02 + dba PlayMapMusic ; 03 + dba RestartMapMusic ; 04 + dba FadeToMapMusic ; 05 + dba FadeOutMapAndMusic ; 06 + dba EnterMapMusic ; 07 + dba ForceMapMusic ; 08 + dba CrankUpTheVolume ; 09 + dba LoadBlockData ; 0a + dba LoadNeighboringBlockData ; 0b + dba SaveScreen ; 0c + dba BufferScreen ; 0d + dba LoadGraphics ; 0e + dba LoadTilesetHeader ; 0f + dba LoadMapTimeOfDay ; 10 + dba LoadMapPalettes ; 11 + dba LoadWildMonData ; 12 + dba RefreshMapSprites ; 13 + dba RunCallback_05_03 ; 14 + dba RunCallback_03 ; 15 + dba LoadObjectsRunCallback_02 ; 16 + dba LoadSpawnPoint ; 17 + dba EnterMapConnection ; 18 + dba LoadWarpData ; 19 + dba LoadMapAttributes ; 1a + dba LoadMapAttributes_IgnoreHidden ; 1b + dba WhiteBGMap ; 1c + dba FadeBlackBGMap ; 1d + dba FadeInBGMap ; 1e + dba GetCoordOfUpperLeftCorner ; 1f + dba RestoreFacingAfterWarp ; 20 + dba SpawnInFacingDown ; 21 + dba GetSpawnCoord ; 22 + dba RefreshPlayerCoords ; 23 + dba DelayClearingOldSprites ; 24 + dba DelayLoadingNewSprites ; 25 + dba UpdateRoamMons ; 26 + dba JumpRoamMons ; 27 + dba FadeOldMapMusic ; 28 + dba ActivateMapAnims ; 29 + dba SuspendMapAnims ; 2a + dba RetainOldPalettes ; 2b + dba DontScrollText ; 2c + dba ReturnFromMapSetupScript ; 2d ; 154ca diff --git a/engine/pack.asm b/engine/pack.asm index d62323efc..6b471e045 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -1170,9 +1170,9 @@ MenuData2_0x107f7: ; 0x107f7 db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, OTPartyMons - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 10807 Function10807: ; 10807 (4:4807) @@ -1194,9 +1194,9 @@ MenuData2_0x10816: ; 0x10816 db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, OTPartyMon1Exp + 2 - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 10826 Function10826: ; 10826 (4:4826) @@ -1227,9 +1227,9 @@ MenuData2_0x1084a: ; 0x1084a db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, OTPartyMon1CaughtGender - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 1085a Function1085a: ; 1085a (4:485a) @@ -1538,9 +1538,9 @@ MenuData2_0x10a57: ; 0x10a57 db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, NumItems - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 10a67 MenuDataHeader_0x10a67: ; 0x10a67 @@ -1556,9 +1556,9 @@ MenuData2_0x10a6f: ; 0x10a6f db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, NumItems - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 10a7f MenuDataHeader_0x10a7f: ; 0x10a7f @@ -1574,9 +1574,9 @@ MenuData2_0x10a87: ; 0x10a87 db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, NumKeyItems - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 10a97 MenuDataHeader_0x10a97: ; 0x10a97 @@ -1592,9 +1592,9 @@ MenuData2_0x10a9f: ; 0x10a9f db 5, 8 ; rows, columns db 1 ; horizontal spacing dbw 0, NumKeyItems - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 10aaf MenuDataHeader_0x10aaf: ; 0x10aaf @@ -1610,9 +1610,9 @@ MenuData2_0x10ab7: ; 0x10ab7 db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, NumBalls - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 10ac7 MenuDataHeader_0x10ac7: ; 0x10ac7 @@ -1628,9 +1628,9 @@ MenuData2_0x10acf: ; 0x10acf db 5, 8 ; rows, columns db 2 ; horizontal spacing dbw 0, NumBalls - dbw BANK(PlaceMenuItemName), PlaceMenuItemName - dbw BANK(PlaceMenuItemQuantity), PlaceMenuItemQuantity - dbw BANK(Function244c3), Function244c3 + dba PlaceMenuItemName + dba PlaceMenuItemQuantity + dba Function244c3 ; 10adf UnknownText_0x10adf: ; 0x10adf diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm index 5c0df0355..88135ea63 100644 --- a/engine/std_scripts.asm +++ b/engine/std_scripts.asm @@ -1,56 +1,56 @@ StdScripts:: - dbw BANK(PokeCenterNurseScript), PokeCenterNurseScript - dbw BANK(DifficultBookshelfScript), DifficultBookshelfScript - dbw BANK(PictureBookshelfScript), PictureBookshelfScript - dbw BANK(MagazineBookshelfScript), MagazineBookshelfScript - dbw BANK(TeamRocketOathScript), TeamRocketOathScript - dbw BANK(IncenseBurnerScript), IncenseBurnerScript - dbw BANK(MerchandiseShelfScript), MerchandiseShelfScript - dbw BANK(TownMapScript), TownMapScript - dbw BANK(WindowScript), WindowScript - dbw BANK(TVScript), TVScript - dbw BANK(HomepageScript), HomepageScript - dbw BANK(Radio1Script), Radio1Script - dbw BANK(Radio2Script), Radio2Script - dbw BANK(TrashCanScript), TrashCanScript - dbw BANK(StrengthBoulderScript), StrengthBoulderScript - dbw BANK(SmashRockScript), SmashRockScript - dbw BANK(PokeCenterSignScript), PokeCenterSignScript - dbw BANK(MartSignScript), MartSignScript - dbw BANK(GoldenrodRocketsScript), GoldenrodRocketsScript - dbw BANK(RadioTowerRocketsScript), RadioTowerRocketsScript - dbw BANK(ElevatorButtonScript), ElevatorButtonScript - dbw BANK(DayToTextScript), DayToTextScript - dbw BANK(BugContestResultsWarpScript), BugContestResultsWarpScript - dbw BANK(BugContestResultsScript), BugContestResultsScript - dbw BANK(InitializeEventsScript), InitializeEventsScript - dbw BANK(AskNumber1MScript), AskNumber1MScript - dbw BANK(AskNumber2MScript), AskNumber2MScript - dbw BANK(RegisteredNumberMScript), RegisteredNumberMScript - dbw BANK(NumberAcceptedMScript), NumberAcceptedMScript - dbw BANK(NumberDeclinedMScript), NumberDeclinedMScript - dbw BANK(PhoneFullMScript), PhoneFullMScript - dbw BANK(RematchMScript), RematchMScript - dbw BANK(GiftMScript), GiftMScript - dbw BANK(PackFullMScript), PackFullMScript - dbw BANK(RematchGiftMScript), RematchGiftMScript - dbw BANK(AskNumber1FScript), AskNumber1FScript - dbw BANK(AskNumber2FScript), AskNumber2FScript - dbw BANK(RegisteredNumberFScript), RegisteredNumberFScript - dbw BANK(NumberAcceptedFScript), NumberAcceptedFScript - dbw BANK(NumberDeclinedFScript), NumberDeclinedFScript - dbw BANK(PhoneFullFScript), PhoneFullFScript - dbw BANK(RematchFScript), RematchFScript - dbw BANK(GiftFScript), GiftFScript - dbw BANK(PackFullFScript), PackFullFScript - dbw BANK(RematchGiftFScript), RematchGiftFScript - dbw BANK(GymStatue1Script), GymStatue1Script - dbw BANK(GymStatue2Script), GymStatue2Script - dbw BANK(ReceiveItemScript), ReceiveItemScript - dbw BANK(ReceiveTogepiEggScript), ReceiveTogepiEggScript - dbw BANK(PCScript), PCScript - dbw BANK(GameCornerCoinVendorScript), GameCornerCoinVendorScript - dbw BANK(HappinessCheckScript), HappinessCheckScript + dba PokeCenterNurseScript + dba DifficultBookshelfScript + dba PictureBookshelfScript + dba MagazineBookshelfScript + dba TeamRocketOathScript + dba IncenseBurnerScript + dba MerchandiseShelfScript + dba TownMapScript + dba WindowScript + dba TVScript + dba HomepageScript + dba Radio1Script + dba Radio2Script + dba TrashCanScript + dba StrengthBoulderScript + dba SmashRockScript + dba PokeCenterSignScript + dba MartSignScript + dba GoldenrodRocketsScript + dba RadioTowerRocketsScript + dba ElevatorButtonScript + dba DayToTextScript + dba BugContestResultsWarpScript + dba BugContestResultsScript + dba InitializeEventsScript + dba AskNumber1MScript + dba AskNumber2MScript + dba RegisteredNumberMScript + dba NumberAcceptedMScript + dba NumberDeclinedMScript + dba PhoneFullMScript + dba RematchMScript + dba GiftMScript + dba PackFullMScript + dba RematchGiftMScript + dba AskNumber1FScript + dba AskNumber2FScript + dba RegisteredNumberFScript + dba NumberAcceptedFScript + dba NumberDeclinedFScript + dba PhoneFullFScript + dba RematchFScript + dba GiftFScript + dba PackFullFScript + dba RematchGiftFScript + dba GymStatue1Script + dba GymStatue2Script + dba ReceiveItemScript + dba ReceiveTogepiEggScript + dba PCScript + dba GameCornerCoinVendorScript + dba HappinessCheckScript PokeCenterNurseScript: ; EVENT_WELCOMED_TO_POKECOM_CENTER is never set diff --git a/event/kurt.asm b/event/kurt.asm index 78dbd5aef..4924fdf6a 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -98,9 +98,9 @@ Kurt_SelectApricorn: ; 88055 db 4, 7 db 1 dbw 0, Buffer1 - dbw BANK(.Name), .Name - dbw BANK(.Quantity), .Quantity - dbw BANK(NULL), NULL + dba .Name + dba .Quantity + dba NULL .Name: ; 8809f ld a, [MenuSelection] diff --git a/home.asm b/home.asm index 2a5fe0da0..69a413db0 100644 --- a/home.asm +++ b/home.asm @@ -830,13 +830,13 @@ INCLUDE "home/pokedex_flags.asm" NamesPointers:: ; 33ab - dbw BANK(PokemonNames), PokemonNames - dbw BANK(MoveNames), MoveNames + dba PokemonNames + dba MoveNames dbw 0, 0 - dbw BANK(ItemNames), ItemNames + dba ItemNames dbw 0, PartyMonOT dbw 0, OTPartyMonOT - dbw BANK(TrainerClassNames), TrainerClassNames + dba TrainerClassNames ; 33c0 Function33c0: diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm index cb71cb232..d41f9acc3 100644 --- a/maps/BattleTower1F.asm +++ b/maps/BattleTower1F.asm @@ -3,22 +3,22 @@ BattleTower1F_MapScriptHeader: db 2 ; triggers - dw UnknownScript_0x9e39d, 0 - dw UnknownScript_0x9e3d3, 0 + dw .Trigger0, 0 + dw .Trigger1, 0 .MapCallbacks: db 0 -UnknownScript_0x9e39d: +.Trigger0: writebyte BATTLE_TOWER_ACTION_09 special BattleTowerAction - iffalse UnknownScript_0x9e3d1 + iffalse .SkipEverything writebyte BATTLE_TOWER_ACTION_02 special BattleTowerAction - if_equal $0, UnknownScript_0x9e3d1 - if_equal $2, UnknownScript_0x9e3c4 - if_equal $3, UnknownScript_0x9e3d1 - if_equal $4, UnknownScript_0x9e3d1 + if_equal $0, .SkipEverything + if_equal $2, .priorityjump1 + if_equal $3, .SkipEverything + if_equal $4, .SkipEverything loadfont writetext UnknownText_0x9f037 closetext @@ -26,17 +26,15 @@ UnknownScript_0x9e39d: priorityjump UnknownScript_0x9e44e end -UnknownScript_0x9e3c4: +.priorityjump1: priorityjump UnknownScript_0x9e555 - -UnknownScript_0x9e3c7: writebyte BATTLE_TOWER_ACTION_04 special BattleTowerAction writebyte BATTLE_TOWER_ACTION_06 special BattleTowerAction -UnknownScript_0x9e3d1: +.SkipEverything: dotrigger $1 -UnknownScript_0x9e3d3: +.Trigger1: end MapBattleTower1FSignpost0Script: diff --git a/maps/BattleTowerHallway.asm b/maps/BattleTowerHallway.asm index d0b80362f..8e5ed3743 100644 --- a/maps/BattleTowerHallway.asm +++ b/maps/BattleTowerHallway.asm @@ -3,29 +3,29 @@ BattleTowerHallway_MapScriptHeader: db 2 ; triggers - dw UnknownScript_0x9f5bb, 0 - dw UnknownScript_0x9f5c0, 0 + dw .Trigger0, 0 + dw .Trigger1, 0 .MapCallbacks: db 0 -UnknownScript_0x9f5bb: - priorityjump UnknownScript_0x9f5c1 +.Trigger0: + priorityjump .ChooseBattleRoom dotrigger $1 -UnknownScript_0x9f5c0: +.Trigger1: end -UnknownScript_0x9f5c1: +.ChooseBattleRoom: follow $2, PLAYER - callasm Function_0x9f5cb - jump Script_WalkToChosenBattleRoom + callasm .asm_load_battle_room + jump .WalkToChosenBattleRoom -Function_0x9f5cb: +.asm_load_battle_room: ld a, [rSVBK] push af - ld a, 3 + ld a, BANK(wBTChoiceOfLvlGroup) ld [rSVBK], a ld a, [wBTChoiceOfLvlGroup] ld [ScriptVar], a @@ -38,35 +38,35 @@ Function_0x9f5cb: ; enter different rooms for different levels to battle against ; at least it should look like that ; because all warps lead to the same room -Script_WalkToChosenBattleRoom: ; 0x9f5dc - if_equal 3, Script_WalkToBattleRoomL30L40 - if_equal 4, Script_WalkToBattleRoomL30L40 - if_equal 5, Script_WalkToBattleRoomL50L60 - if_equal 6, Script_WalkToBattleRoomL50L60 - if_equal 7, Script_WalkToBattleRoomL70L80 - if_equal 8, Script_WalkToBattleRoomL70L80 - if_equal 9, Script_WalkToBattleRoomL90L100 - if_equal 10, Script_WalkToBattleRoomL90L100 +.WalkToChosenBattleRoom: ; 0x9f5dc + if_equal 3, .L30L40 + if_equal 4, .L30L40 + if_equal 5, .L50L60 + if_equal 6, .L50L60 + if_equal 7, .L70L80 + if_equal 8, .L70L80 + if_equal 9, .L90L100 + if_equal 10, .L90L100 applymovement $2, MovementData_0x9e57a - jump Script_PlayerEntersBattleRoom + jump .EnterBattleRoom -Script_WalkToBattleRoomL30L40: ; 0x9f603 +.L30L40: ; 0x9f603 applymovement $2, MovementData_0x9e57c - jump Script_PlayerEntersBattleRoom + jump .EnterBattleRoom -Script_WalkToBattleRoomL50L60: ; 0x9f60a +.L50L60: ; 0x9f60a applymovement $2, MovementData_0x9e586 - jump Script_PlayerEntersBattleRoom + jump .EnterBattleRoom -Script_WalkToBattleRoomL70L80: ; 0x9f611 +.L70L80: ; 0x9f611 applymovement $2, MovementData_0x9e584 - jump Script_PlayerEntersBattleRoom + jump .EnterBattleRoom -Script_WalkToBattleRoomL90L100: ; 0x9f618 +.L90L100: ; 0x9f618 applymovement $2, MovementData_0x9e582 - jump Script_PlayerEntersBattleRoom + jump .EnterBattleRoom -Script_PlayerEntersBattleRoom: ; 0x9f61f +.EnterBattleRoom: ; 0x9f61f faceperson PLAYER, $2 loadfont writetext Text_PleaseStepThisWay diff --git a/maps/EarlsPokemonAcademy.asm b/maps/EarlsPokemonAcademy.asm index 64128c160..4b1c8c37f 100644 --- a/maps/EarlsPokemonAcademy.asm +++ b/maps/EarlsPokemonAcademy.asm @@ -105,7 +105,7 @@ AcademyBlackboard: db $80 ; flags dn 3, 2 ; rows, columns db 5 ; spacing - dbw BANK(.Text), .Text + dba .Text dbw $1a, 0 .Text diff --git a/maps/GoldenrodPokeCenter1F.asm b/maps/GoldenrodPokeCenter1F.asm index 3a4792403..b3095b278 100644 --- a/maps/GoldenrodPokeCenter1F.asm +++ b/maps/GoldenrodPokeCenter1F.asm @@ -8,15 +8,15 @@ GoldenrodPokeCenter1F_MapScriptHeader: NurseScript_0x60f91: jumpstd pokecenternurse -UnknownScript_0x60f94: +GoldenrodPokeCenter1F_GSBallTriggerLeft: writebyte BATTLE_TOWER_ACTION_0B special BattleTowerAction - if_equal $b, UnknownScript_0x60f9e + if_equal MOBILE_EVENT_OBJECT_GS_BALL, .gsball end -UnknownScript_0x60f9e: +.gsball: checkevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER - iftrue UnknownScript_0x60fd8 + iftrue .cancel playsound SFX_EXIT_BUILDING moveperson $3, $0, $7 disappear $3 @@ -37,18 +37,18 @@ UnknownScript_0x60f9e: special RestartMapMusic disappear $3 playsound SFX_EXIT_BUILDING -UnknownScript_0x60fd8: +.cancel: end -UnknownScript_0x60fd9: +GoldenrodPokeCenter1F_GSBallTriggerRight: writebyte BATTLE_TOWER_ACTION_0B special BattleTowerAction - if_equal $b, UnknownScript_0x60fe3 + if_equal MOBILE_EVENT_OBJECT_GS_BALL, .gsball end -UnknownScript_0x60fe3: +.gsball: checkevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER - iftrue UnknownScript_0x6101d + iftrue .cancel playsound SFX_EXIT_BUILDING moveperson $3, $0, $7 disappear $3 @@ -69,7 +69,7 @@ UnknownScript_0x60fe3: special RestartMapMusic disappear $3 playsound SFX_EXIT_BUILDING -UnknownScript_0x6101d: +.cancel: end GameboyKidScript_0x6101e: @@ -810,8 +810,8 @@ GoldenrodPokeCenter1F_MapEventHeader: .XYTriggers: db 2 - xy_trigger 0, $7, $3, $0, UnknownScript_0x60f94, $0, $0 - xy_trigger 0, $7, $4, $0, UnknownScript_0x60fd9, $0, $0 + xy_trigger 0, $7, $3, $0, GoldenrodPokeCenter1F_GSBallTriggerLeft, $0, $0 + xy_trigger 0, $7, $4, $0, GoldenrodPokeCenter1F_GSBallTriggerRight, $0, $0 .Signposts: db 0 diff --git a/misc/battle_tower_45.asm b/misc/battle_tower_45.asm index 1b7d0dd1a..53a960e1f 100755 --- a/misc/battle_tower_45.asm +++ b/misc/battle_tower_45.asm @@ -1049,7 +1049,7 @@ Function1708b1: ; 1708b1 (5c:48b1) call MaxVolume ret -Function1708b9: ; 1708b9 (5c:48b9) +Function1708b9: ; 1708b9 (5c:48b9) something to do with GS Ball ld a, BANK(s1_be3c) call GetSRAMBank ld a, [s1_be3c] @@ -1129,21 +1129,21 @@ Function17093c: ; 17093c (5c:493c) ld b, 0 ld c, a ld hl, PartySpecies -.asm_170955 +.loop ld a, [hli] cp EGG - jr nz, .asm_17099f + jr nz, .not_egg push hl ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) ld de, $6 ld a, b and a - jr z, .asm_170969 -.asm_170965 + jr z, .skip +.loop2 add hl, de dec a - jr nz, .asm_170965 -.asm_170969 + jr nz, .loop2 +.skip ld de, String_1709a4 ld a, $6 .asm_17096e @@ -1179,10 +1179,10 @@ endr .asm_17099d pop af pop hl -.asm_17099f +.not_egg inc b dec c - jr nz, .asm_170955 + jr nz, .loop ret ; 1709a4 (5c:49a4) @@ -1192,9 +1192,9 @@ String_1709a4: ; 1709a4 Function1709aa: ; 1709aa (5c:49aa) ld a, [rSVBK] ; $ff00+$70 push af - ld a, $3 + ld a, BANK(w3_d090) ld [rSVBK], a ; $ff00+$70 - ld a, [StringBuffer2 + 10] + ld a, [w3_d090] ld [ScriptVar], a pop af ld [rSVBK], a ; $ff00+$70 @@ -1208,7 +1208,7 @@ Function1709bb: ; 1709bb (5c:49bb) ld a, [$a800] call CloseSRAM cp 6 - jr nc, .asm_1709da + jr nc, .invalid ld e, a ld d, 0 ld hl, Jumptable_1709e7 @@ -1219,7 +1219,8 @@ endr ld h, [hl] ld l, a jp [hl] -.asm_1709da + +.invalid ld a, $5 call GetSRAMBank xor a diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index af4e834a3..40196ae9a 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -916,9 +916,9 @@ MenuData2_0x8b870: ; 0x8b870 db 5 ; items db 3, 1 dbw 0, wd002 - dbw BANK(Function8b880), Function8b880 - dbw BANK(Function8b88c), Function8b88c - dbw BANK(Function8b8c8), Function8b8c8 + dba Function8b880 + dba Function8b88c + dba Function8b8c8 ; 8b880 Function8b880: ; 8b880 diff --git a/sram.asm b/sram.asm index b5fc9571d..04a1bfdaa 100644 --- a/sram.asm +++ b/sram.asm @@ -1,5 +1,9 @@ +SRAM_Begin EQU $a000 +SRAM_End EQU $c000 +GLOBAL SRAM_Begin, SRAM_End + + SECTION "Scratch", SRAM, BANK [0] -SRAM_Begin:: sScratch:: @@ -52,8 +56,6 @@ sBackupGameDataEnd:: sBackupChecksum:: ds 2 s0_bf0f:: ds 1 sStackTop:: ds 2 - ds $ee -SRAM_End:: SECTION "SRAM Bank 1", SRAM, BANK [1] diff --git a/tilesets/tileset_headers.asm b/tilesets/tileset_headers.asm index 65f01dea3..1ef928b3a 100644 --- a/tilesets/tileset_headers.asm +++ b/tilesets/tileset_headers.asm @@ -1,7 +1,7 @@ tileset: macro dbw BANK(\1GFX), \1GFX - dbw BANK(\1Meta), \1Meta - dbw BANK(\1Coll), \1Coll + dba \1Meta + dba \1Coll dw \1Anim dw NULL dw \1PalMap diff --git a/wram.asm b/wram.asm index ab0cd5d11..51fb49092 100644 --- a/wram.asm +++ b/wram.asm @@ -2640,7 +2640,9 @@ w2_d188:: ds 1 SECTION "WRAM 3", WRAMX, BANK [3] w3_d000:: ; d000 - ds $100 + ds $90 +w3_d090:: + ds $70 BT_OTrainer:: w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24) -- cgit v1.2.3 From 91ea4a2f9b3d169a8e06aed62f19466c643eff83 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 3 Nov 2015 22:35:36 -0500 Subject: Battle Tower trainer text --- battle/core.asm | 40 +- engine/scripting.asm | 10 +- home/farcall.asm | 12 +- macros/event.asm | 6 +- maps/BattleTowerBattleRoom.asm | 2 +- misc/battle_tower_45.asm | 1491 -------- misc/battle_tower_47.asm | 7773 ++++++++++++++++++++++++++++++++++++++++ misc/mobile_45.asm | 6280 +------------------------------- wram.asm | 6 +- 9 files changed, 7812 insertions(+), 7808 deletions(-) delete mode 100755 misc/battle_tower_45.asm create mode 100755 misc/battle_tower_47.asm diff --git a/battle/core.asm b/battle/core.asm index e828485c3..90c05ea98 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2469,32 +2469,32 @@ WinTrainerBattle: ; 3cfa4 call StdBattleTextBox call IsMobileBattle - jr z, .asm_3cff5 + jr z, .mobile ld a, [wLinkMode] and a ret nz ld a, [InBattleTowerBattle] bit 0, a - jr nz, .asm_3d006 + jr nz, .battle_tower call Function3ebd8 ld c, $28 call DelayFrames ld a, [BattleType] cp BATTLETYPE_CANLOSE - jr nz, .asm_3cfe8 + jr nz, .skip_heal predef HealParty -.asm_3cfe8 +.skip_heal ld a, [wc2cc] bit 0, a - jr nz, .asm_3cff2 + jr nz, .skip_whatever_this_is call Function3718 -.asm_3cff2 +.skip_whatever_this_is jp Function3d02b -.asm_3cff5 +.mobile call Function3ebd8 ld c, $28 call DelayFrames @@ -2502,13 +2502,13 @@ WinTrainerBattle: ; 3cfa4 callba Function4ea0a ret -.asm_3d006 +.battle_tower call Function3ebd8 ld c, $28 call DelayFrames call EmptyBattleTextBox ld c, $3 - callba StoreText + callba BattleTowerText call Functiona80 ld hl, wPayDayMoney ld a, [hli] @@ -3087,11 +3087,11 @@ LostBattle: ; 3d38e ld a, [InBattleTowerBattle] bit 0, a - jr nz, .asm_3d3bd + jr nz, .battle_tower ld a, [BattleType] cp BATTLETYPE_CANLOSE - jr nz, .asm_3d3e3 + jr nz, .not_canlose ; Remove the enemy from the screen. hlcoord 0, 0 @@ -3104,12 +3104,12 @@ LostBattle: ; 3d38e ld a, [wc2cc] bit 0, a - jr nz, .asm_3d3bc + jr nz, .skip call Function3718 -.asm_3d3bc +.skip ret -.asm_3d3bd +.battle_tower ; Remove the enemy from the screen. hlcoord 0, 0 lb bc, 8, 21 @@ -3121,13 +3121,13 @@ LostBattle: ; 3d38e call EmptyBattleTextBox ld c, 2 - callba StoreText + callba BattleTowerText call Functiona80 call ClearTileMap call WhiteBGMap ret -.asm_3d3e3 +.not_canlose ld a, [wLinkMode] and a jr nz, .LostLinkBattle @@ -3141,7 +3141,7 @@ LostBattle: ; 3d38e .LostLinkBattle call UpdateEnemyMonInParty call CheckEnemyTrainerDefeated - jr nz, .asm_3d40a + jr nz, .not_tied ld hl, TiedAgainstText ld a, [wBattleResult] and $c0 @@ -3149,10 +3149,10 @@ LostBattle: ; 3d38e ld [wBattleResult], a jr .text -.asm_3d40a +.not_tied ld hl, LostAgainstText call IsMobileBattle - jr z, .asm_3d417 + jr z, .mobile .text call StdBattleTextBox @@ -3161,7 +3161,7 @@ LostBattle: ; 3d38e scf ret -.asm_3d417 +.mobile ; Remove the enemy from the screen. hlcoord 0, 0 lb bc, 8, 21 diff --git a/engine/scripting.asm b/engine/scripting.asm index 9458efb3e..246314f79 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -236,7 +236,7 @@ ENDC dw Script_halloffame dw Script_credits dw Script_warpfacing - dw Script_storetext + dw Script_battletowertext dw Script_displaylocation dw Script_trainerclassname dw Script_name @@ -537,7 +537,7 @@ Script_interpretmenu: ; 0x96f41 ret ; 0x96f52 -Script_storetext: ; 0x96f52 +Script_battletowertext: ; 0x96f52 ; script command 0xa4 ; parameters: ; pointer (PointerLabelBeforeBank) @@ -546,7 +546,7 @@ Script_storetext: ; 0x96f52 call SetUpTextBox call GetScriptByte ld c, a - callba StoreText + callba BattleTowerText ret ; 0x96f60 @@ -2370,8 +2370,8 @@ Script_takeitem: ; 0x977f0 ld [CurItem], a call GetScriptByte ld [wItemQuantityChangeBuffer], a - ld a, $ff - ld [wd107], a + ld a, -1 + ld [ItemCountBuffer], a ld hl, NumItems call TossItem ret nc diff --git a/home/farcall.asm b/home/farcall.asm index a74bcc3ae..7c9fe1050 100644 --- a/home/farcall.asm +++ b/home/farcall.asm @@ -25,7 +25,7 @@ FarCall_hl:: ; 2d63 push af ld a, [hBuffer] rst Bankswitch - call Function2d82 + call FarJump_hl ; 2d6e ReturnFarCall:: ; 2d6e @@ -33,22 +33,22 @@ ReturnFarCall:: ; 2d6e ; To do this, we can pop to bc instead of af. ld a, b - ld [PredefAddress + 2], a + ld [wFarCallBCBuffer], a ld a, c - ld [PredefAddress + 3], a + ld [wFarCallBCBuffer + 1], a ; Restore the working bank. pop bc ld a, b rst Bankswitch - ld a, [PredefAddress + 2] + ld a, [wFarCallBCBuffer] ld b, a - ld a, [PredefAddress + 3] + ld a, [wFarCallBCBuffer + 1] ld c, a ret ; 2d82 -Function2d82:: ; 2d82 +FarJump_hl:: ; 2d82 jp [hl] ; 2d83 diff --git a/macros/event.asm b/macros/event.asm index 22652abbd..df2baab65 100644 --- a/macros/event.asm +++ b/macros/event.asm @@ -1022,9 +1022,9 @@ warpfacing: macro db \4 ; y endm - enum storetext_command -storetext: macro - db storetext_command + enum battletowertext_command +battletowertext: macro + db battletowertext_command db \1 ; memory endm diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm index ce8f10aa3..349a61e56 100644 --- a/maps/BattleTowerBattleRoom.asm +++ b/maps/BattleTowerBattleRoom.asm @@ -27,7 +27,7 @@ Script_BattleRoomLoop: ; 0x9f425 waitbutton applymovement $2, MovementData_0x9e592 loadfont - storetext 1 + battletowertext 1 keeptextopen loadmovesprites special BattleTowerBattle ; calls predef startbattle diff --git a/misc/battle_tower_45.asm b/misc/battle_tower_45.asm deleted file mode 100755 index 53a960e1f..000000000 --- a/misc/battle_tower_45.asm +++ /dev/null @@ -1,1491 +0,0 @@ -BattleTowerBattle: ; 170215 - xor a - ld [wJumptableIndex], a - call Function17022c - ret -; 17021d - -Function17021d: ; 17021d - ret -; 17021e - -Function17021e: ; 17021e - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ret -; 17022c - -Function17022c: ; 17022c -.loop - call Jumpto_BattleTowerBattleFunction - call DelayFrame - ld a, [wJumptableIndex] - cp $1 - jr nz, .loop - ret -; 17023a - -Jumpto_BattleTowerBattleFunction: ; 17023a - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_BattleTowerBattleFunctions -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 170249 - -Jumptable_BattleTowerBattleFunctions: ; 170249 - dw RunBattleTowerBattle - dw SkipBattleTowerBattle -; 17024d - -RunBattleTowerBattle: ; 17024d - ld a, [Options] - push af - ld hl, Options - set 6, [hl] - ld a, [InBattleTowerBattle] - push af - or $1 - ld [InBattleTowerBattle], a - xor a - ld [wLinkMode], a - callba Mobile_HealParty - callba HealParty - call Function1702b7 - call Function170bf7 - predef StartBattle - callba LoadPokemonData - callba HealParty - ld a, [wBattleResult] - ld [ScriptVar], a - and a - jr nz, .lost - ld a, BANK(sNrOfBeatenBattleTowerTrainers) - call GetSRAMBank - ld a, [sNrOfBeatenBattleTowerTrainers] - ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 - call CloseSRAM - ld hl, StringBuffer3 - ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 - add $f7 - ld [hli], a - ld a, $50 - ld [hl], a - -.lost - pop af - ld [InBattleTowerBattle], a - pop af - ld [Options], a - ld a, $1 - ld [wJumptableIndex], a - ret - - -Function1702b7: ; 1702b7 -; Initialise the BattleTower-Trainer and his Pkmn - call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_1702db - - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_1702db - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_1702fc - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_1702fc - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_17031d - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_17031d - ld a, $50 - ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d - ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688 - ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3 - call Function170c98 - ld de, wBT_OTTempCopy - ld c, $a - callba Function17d073 - jr nc, .asm_17033d - ld hl, String_170426 - jr .asm_170340 - -.asm_17033d - ld hl, wBT_OTTempCopy ; 0xc608 - -.asm_170340 - ld de, wd26b - ld bc, $000a - call CopyBytes - ld a, $50 - ld [de], a - ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass - ld a, [hli] - ld [OtherTrainerClass], a - ld a, $ea - ld [BGMapBuffer], a - ld a, $d3 - ld [wcd21], a - - ; Copy Pkmn into Memory from the address in hl - ld de, OTPartyMon1Species - ld bc, OTPartyCount - ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has - ld [bc], a - inc bc -.asm_170367 - push af - ld a, [hl] - ld [bc], a - inc bc - push bc - ld bc, party_struct_length - call CopyBytes - push de - ld a, [BGMapBuffer] - ld e, a - ld a, [wcd21] - ld d, a - ld bc, $000b - call CopyBytes - ld a, e - ld [BGMapBuffer], a - ld a, d - ld [wcd21], a - pop de - pop bc - pop af - dec a - and a - jr nz, .asm_170367 - ld a, $ff - ld [bc], a - ret -; 170394 - -Function170394: ; 170394 - ld hl, $c608 + 11 - ld d, $3 -.asm_170399 - push de - push hl - ld b, h - ld c, l - ld a, [hl] - and a - jr z, .asm_1703b1 - cp $ff - jr z, .asm_1703b1 - cp $fe - jr z, .asm_1703b1 - cp $fd - jr z, .asm_1703b1 - cp $fc - jr nz, .asm_1703b4 - -.asm_1703b1 - ld a, $eb - ld [hl], a - -.asm_1703b4 - ld [CurSpecies], a - call GetBaseData - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld e, a - ld hl, $001f - add hl, bc - ld a, [hl] - cp $2 - ld a, $2 - jr c, .asm_1703d6 - ld a, [hl] - cp e - jr c, .asm_1703d7 - ld a, e - -.asm_1703d6 - ld [hl], a - -.asm_1703d7 - ld [CurPartyLevel], a - ld hl, $0002 - add hl, bc - ld d, $3 - ld a, [hli] - and a - jr z, .asm_1703ea - cp $fc - jr nc, .asm_1703ea - jr .asm_1703f4 - -.asm_1703ea - dec hl - ld a, $1 - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - jr .asm_1703ff - -.asm_1703f4 - ld a, [hl] - cp $fc - jr c, .asm_1703fb - ld [hl], $0 - -.asm_1703fb - inc hl - dec d - jr nz, .asm_1703f4 - -.asm_1703ff - ld hl, $0024 - add hl, bc - ld d, h - ld e, l - push hl - push de - ld hl, $000a - add hl, bc - ld b, $1 - predef CalcPkmnStats - pop de - pop hl -rept 2 - dec de -endr - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - pop hl - ld bc, $003b - add hl, bc - pop de - dec d - jp nz, .asm_170399 - ret -; 170426 - -String_170426: ; 170426 - db "CHRIS@" -; 17042c - -Function17042c: ; 17042c - ld hl, OTPartyMon2ID - ld a, $7 -.asm_170431 - push af - push hl - ld c, $12 -.asm_170435 - ld a, [hli] - ld b, a - ld a, [hli] - and a - jr z, .asm_170451 - cp $f - jr nc, .asm_17045b - push hl - ld hl, Unknown_170470 - dec a - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - pop hl - cp b - jr c, .asm_17045b - jr z, .asm_17045b - jr .asm_170456 - -.asm_170451 - ld a, b - cp $fc - jr nc, .asm_17045b - -.asm_170456 - dec c - jr nz, .asm_170435 - jr .asm_170466 - -.asm_17045b - pop de - push de - ld hl, Unknown_17047e - ld bc, $0024 - call CopyBytes - -.asm_170466 - pop hl - ld de, $00e0 - add hl, de - pop af - dec a - jr nz, .asm_170431 - ret -; 170470 - -Unknown_170470: - db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 - -Unknown_17047e: - db $03, $04, $05, $08 - db $03, $05, $0e, $06 - db $03, $02, $00, $00 - db $39, $07, $07, $04 - db $00, $05, $04, $07 - db $01, $05, $00, $00 - db $0f, $05, $14, $07 - db $05, $05, $11, $0c - db $0c, $06, $06, $04 - - -CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 -; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy' - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, BT_OTrainer ; $d100 - ld de, wBT_OTTempCopy ; $c608 - ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 - ; = $a + $1 + BATTLETOWER_NROFPKMNS * (party_struct_length + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH - call CopyBytes - pop af - ld [rSVBK], a - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $2 - ld [s1_be45], a - ld hl, sNrOfBeatenBattleTowerTrainers - inc [hl] - call CloseSRAM -SkipBattleTowerBattle: ; 1704c9 - ret -; 1704ca - - -Function1704ca: ; 1704ca - ld a, [$be46] - cp $7 - jr c, .asm_1704d3 - ld a, $6 - -.asm_1704d3 - ld hl, $afce - ld de, -$e0 -.asm_1704d9 - and a - jr z, .asm_1704e0 - add hl, de - dec a - jr .asm_1704d9 - -.asm_1704e0 - ret -; 1704e1 - -Function1704e1: ; 1704e1 - call SpeechTextBox - call FadeToMenu - call Function17021e - call Function1704f1 - call Function2b3c - ret -; 1704f1 - -Function1704f1: ; 1704f1 - call WhiteBGMap - call ClearSprites - call ClearScreen -.asm_1704fa - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_17050f - call Function170510 - callba Function104061 - jr .asm_1704fa - -.asm_17050f - ret -; 170510 - -Function170510: ; 170510 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_17051f -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 17051f - -Jumptable_17051f: ; 17051f - dw Function170525 - dw Function170571 - dw Function170577 -; 170525 - -Function170525: ; 170525 - ld a, $5 - call GetSRAMBank - - ld hl, $a89c - ld de, StringBuffer3 - ld bc, $0016 - call CopyBytes - - ld hl, $a8b2 - ld de, $c608 - ld bc, $0096 - call CopyBytes - - call CloseSRAM - hlcoord 1, 1 - ld de, StringBuffer3 - call PlaceString - hlcoord 1, 3 - ld de, String_170676 - call PlaceString - hlcoord 4, 3 - ld de, StringBuffer4 - call PlaceString - hlcoord 8, 3 - ld de, String_17067a - call PlaceString - call Function1705b7 - call Function1705f0 - jr Function1705b2 - - -Function170571: - call SetPalettes - call Function1705b2 - - -Function170577: - ld hl, hJoyPressed - ld a, [hl] - and $1 - jr nz, .asm_1705ac - ld a, [hl] - and $2 - jr nz, .asm_1705ac - ld a, [hl] - and $40 - jr nz, .asm_17058f - ld a, [hl] - and $80 - jr nz, .asm_17059d - ret - -.asm_17058f - ld a, [wcf64] - and a - ret z - sub $f - ld [wcf64], a - call Function1705f0 - ret - -.asm_17059d - ld a, [wcf64] - cp $3c - ret z - add $f - ld [wcf64], a - call Function1705f0 - ret - -.asm_1705ac - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function1705b2: - ld hl, wJumptableIndex - inc [hl] - ret -; 1705b7 - -Function1705b7: ; 1705b7 - hlcoord 0, 4 - ld a, $79 - ld [hli], a - ld c, $12 -.asm_1705bf - ld a, $7a - ld [hli], a - dec c - jr nz, .asm_1705bf - ld a, $7b - ld [hli], a - ld de, $0014 - ld c, $c -.asm_1705cd - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_1705cd - ld a, $7d - ld [hli], a - ld c, $12 -.asm_1705d9 - ld a, $7a - ld [hli], a - dec c - jr nz, .asm_1705d9 - ld a, $7e - ld [hl], a - ld de, $ffec - add hl, de - ld c, $c -.asm_1705e8 - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_1705e8 - ret -; 1705f0 - -Function1705f0: ; 1705f0 - call Function17064b - call Function17065d - ld a, $50 - ld [wcd4e], a - ld hl, $c608 - ld a, [wcf64] - ld c, a - xor a - ld b, a - add hl, bc - push hl - pop bc - hlcoord 1, 6 - ld a, $6 -.asm_17060c - push af - push hl - ld a, $3 -.asm_170610 - push af - ld de, wcd49 - ld a, [bc] - and a - jr z, .asm_170625 - ld a, $5 -.asm_17061a - push af - ld a, [bc] - ld [de], a - inc bc - inc de - pop af - dec a - jr nz, .asm_17061a - jr .asm_170631 - -.asm_170625 - ld a, $5 -.asm_170627 - push af - ld a, $e3 - ld [de], a - inc de - inc bc - pop af - dec a - jr nz, .asm_170627 - -.asm_170631 - ld de, wcd49 - push bc - call PlaceString - ld de, $0006 - add hl, de - pop bc - pop af - dec a - jr nz, .asm_170610 - pop hl - ld de, $0028 - add hl, de - pop af - dec a - jr nz, .asm_17060c - ret -; 17064b - -Function17064b: ; 17064b - hlcoord 1, 5 - xor a - ld b, $c -.asm_170651 - ld c, $12 -.asm_170653 - ld [hli], a - dec c - jr nz, .asm_170653 -rept 2 - inc hl -endr - dec b - jr nz, .asm_170651 - ret -; 17065d - -Function17065d: ; 17065d - ld a, [wcf64] - and a - jr z, .asm_170669 - hlcoord 18, 5 - ld a, $61 - ld [hl], a - -.asm_170669 - ld a, [wcf64] - cp $3c - ret z - hlcoord 18, 16 - ld a, $ee - ld [hl], a - ret -; 170676 - -String_170676: ; 170676 - db "ルーム@" -; 17067a - -String_17067a: ; 17067a - db "れきだいりーダーいちらん@" -; 170687 - -BattleTowerAction: ; 170687 - ld a, [ScriptVar] - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 170696 - - -.jumptable: ; 170696 (5c:4696) - dw Function17075f ; 0x00 - dw Function170788 ; 0x01 - dw Function170778 ; 0x02 - dw Function170799 ; 0x03 - dw Function17079d ; 0x04 - dw Function1707ac ; 0x05 - dw Function1707f4 ; 0x06 - dw Function170868 ; 0x07 - dw Function170881 ; 0x08 - dw Function17089a ; 0x09 - dw Function1708b1 ; 0x0a - dw Function1708b9 ; 0x0b - dw Function1708c8 ; 0x0c - dw Function1708f0 ; 0x0d - dw Function17093c ; 0x0e - dw Function1709aa ; 0x0f - dw Function1709bb ; 0x10 - dw Function170a9c ; 0x11 - dw Function170aa0 ; 0x12 - dw Function170aaf ; 0x13 - dw Function170abe ; 0x14 - dw Function170ad7 ; 0x15 - dw Function170807 ; 0x16 - dw Function17081d ; 0x17 - dw Function170ae8 ; 0x18 - dw Function170b16 ; 0x19 - dw ResetBattleTowerTrainersSRAM ; 0x1a - dw Function1706ee ; 0x1b - dw Function17071b ; 0x1c - dw Function170729 ; 0x1d - dw Function17073e ; 0x1e - dw Function170737 ; 0x1f - - -; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) -ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a - ld a, BANK(sBTTrainers) - call GetSRAMBank - - ld a, $ff - ld hl, sBTTrainers - ld bc, BATTLETOWER_NROFTRAINERS - call ByteFill - - xor a - ld [sNrOfBeatenBattleTowerTrainers], a - - call CloseSRAM - - ret - -Function1706ee: ; 1706ee (5c:46ee) - ld a, BANK(sbe50) - call GetSRAMBank - - ld a, [sbe50] - call CloseSRAM - ld [ScriptVar], a - ld hl, NumItems - ld a, [hli] - cp $14 - ret c - ld b, $14 - ld a, [ScriptVar] - ld c, a -.asm_170709 - ld a, [hli] - cp c - jr nz, .asm_170711 - ld a, [hl] - cp $5f - ret c -.asm_170711 - inc hl - dec b - jr nz, .asm_170709 - ld a, $12 - ld [ScriptVar], a - ret - -Function17071b: ; 17071b (5c:471b) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $3 - ld [s1_be45], a - call CloseSRAM - ret - -Function170729: ; 170729 (5c:4729) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $4 - ld [s1_be45], a - call CloseSRAM - ret - -Function170737: ; 170737 (5c:4737) - callba SaveOptions - ret - -Function17073e: ; 17073e (5c:473e) - call Random - ld a, [hRandomAdd] ; $ff00+$e1 - and $7 - cp $6 - jr c, .asm_17074b - sub $6 -.asm_17074b - add $1a - cp $1e - jr z, Function17073e - push af - ld a, BANK(sbe50) - call GetSRAMBank - pop af - ld [sbe50], a - call CloseSRAM - ret - -Function17075f: ; 17075f (5c:475f) - call Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - and $2 - ld [ScriptVar], a - call CloseSRAM - ret - -Function170778: ; 170778 (5c:4778) - ld hl, s1_be45 - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, [hl] - ld [ScriptVar], a - call CloseSRAM - ret - -Function170788: ; 170788 (5c:4788) - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - or $2 - ld [sbe4f], a - call CloseSRAM - ret - -Function170799: ; 170799 (5c:4799) - ld c, $1 - jr asm_17079f - -Function17079d: ; 17079d (5c:479d) - ld c, $0 -asm_17079f: ; 17079f (5c:479f) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, c - ld [s1_be45], a - call CloseSRAM - ret - -Function1707ac: ; 1707ac (5c:47ac) - ld a, $5 - call GetSRAMBank - ld a, [$aa8c] - ld b, a - ld a, [$be46] - ld [ScriptVar], a - call CloseSRAM - and a - ret z - ld a, b - cp $2 - jr nc, .asm_1707ef - push bc - call UpdateTime - pop bc - ld a, $5 - call GetSRAMBank - ld a, [$aa8b] - call CloseSRAM - ld c, a - ld a, [CurDay] - sub c - jr c, .asm_1707e5 - cp $8 - jr nc, .asm_1707ef - ld a, b - and a - jr nz, .asm_1707ef - ret -.asm_1707e5 - ld hl, CurDay - ld a, $8c - sub c - add [hl] - cp $8 - ret c -.asm_1707ef - ld a, $8 - ld [ScriptVar], a - -Function1707f4: ; 1707f4 (5c:47f4) - ld a, $5 - call GetSRAMBank - xor a - ld [$be46], a - ld [$aa8b], a - ld [$aa8c], a - call CloseSRAM - ret - -Function170807: ; 170807 (5c:4807) - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [CurDay] - ld [$b2f9], a - xor a - ld [$b2fa], a - call CloseSRAM - ret - -Function17081d: ; 17081d (5c:481d) - xor a - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - ld a, [$b2f9] - ld c, a - ld a, [$b2fa] - ld b, a - call CloseSRAM - cp $2 - jr nc, .asm_170853 - push bc - call UpdateTime - pop bc - ld a, [CurDay] - sub c - jr c, .asm_170849 - cp $b - jr nc, .asm_170853 - ld a, b - and a - jr nz, .asm_170853 - ret -.asm_170849 - ld hl, CurDay - ld a, $8c - sub c - add [hl] - cp $b - ret c -.asm_170853 - ld a, $1 - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - xor a - ld [$b2f9], a - ld [$b2fa], a - call CloseSRAM - ret - -Function170868: ; 170868 (5c:4868) - ld a, BANK(sbe47) - call GetSRAMBank - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $3 - ld [rSVBK], a ; $ff00+$70 - ld a, [wd000 + $800] - ld [sbe47], a - pop af - ld [rSVBK], a ; $ff00+$70 - call CloseSRAM - ret - -Function170881: ; 170881 (5c:4881) - ld a, BANK(sbe47) - call GetSRAMBank - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $3 - ld [rSVBK], a ; $ff00+$70 - ld a, [sbe47] - ld [wd000 + $800], a - pop af - ld [rSVBK], a ; $ff00+$70 - call CloseSRAM - ret - -Function17089a: ; 17089a - ld a, [wcfcd] - and a - jr z, .asm_1708ad - callba Function14bcb - jr z, .asm_1708ab - xor a - jr .asm_1708ad - -.asm_1708ab - ld a, $1 - -.asm_1708ad - ld [ScriptVar], a - ret -; 1708b1 - - -Function1708b1: ; 1708b1 (5c:48b1) - xor a - ld [MusicFade], a - call MaxVolume - ret - -Function1708b9: ; 1708b9 (5c:48b9) something to do with GS Ball - ld a, BANK(s1_be3c) - call GetSRAMBank - ld a, [s1_be3c] - ld [ScriptVar], a - call CloseSRAM - ret - -Function1708c8: ; 1708c8 (5c:48c8) - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [CurDay] - ld [$aa8b], a - xor a - ld [$aa8c], a - ld a, [$aa5d] - cp $2 - jr nc, .asm_1708ec - ld a, [CurDay] - ld [$aa48], a - ld a, $1 - ld [$aa47], a -.asm_1708ec - call CloseSRAM - ret - -Function1708f0: ; 1708f0 (5c:48f0) - xor a - ld [ScriptVar], a - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [$aa48] - ld c, a - ld a, [$aa47] - call CloseSRAM - and a - ret z - ld hl, CurDay - ld a, c - cp [hl] - jr nz, Function170923 - ld a, $5 - call GetSRAMBank - ld a, [$aa5d] - call CloseSRAM - cp $5 - ret c - ld a, $1 - ld [ScriptVar], a - ret - - -Function170923: ; 170923 - ld a, $5 - call GetSRAMBank - xor a - ld [$aa48], a - ld [$aa47], a - ld hl, $aa5d - ld bc, $0011 - call ByteFill - call CloseSRAM - ret -; 17093c - - -Function17093c: ; 17093c (5c:493c) - xor a - ld [ScriptVar], a - ld a, EGG_TICKET - ld [CurItem], a - ld hl, NumItems - call CheckItem - ret nc - ld a, [PartyCount] - ld b, 0 - ld c, a - ld hl, PartySpecies -.loop - ld a, [hli] - cp EGG - jr nz, .not_egg - push hl - ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) - ld de, $6 - ld a, b - and a - jr z, .skip -.loop2 - add hl, de - dec a - jr nz, .loop2 -.skip - ld de, String_1709a4 - ld a, $6 -.asm_17096e - push af - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_17099d - pop af - dec a - jr nz, .asm_17096e -rept 4 - dec hl -endr - ld a, $50 -rept 2 - ld [hli], a -endr - pop hl - ld a, EGG_TICKET - ld [CurItem], a - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld a, $ff - ld [wd107], a - ld hl, NumItems - call TossItem - ld a, $1 - ld [ScriptVar], a - ret - -.asm_17099d - pop af - pop hl -.not_egg - inc b - dec c - jr nz, .loop - ret -; 1709a4 (5c:49a4) - -String_1709a4: ; 1709a4 - db "なぞナゾ@@" - -Function1709aa: ; 1709aa (5c:49aa) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, BANK(w3_d090) - ld [rSVBK], a ; $ff00+$70 - ld a, [w3_d090] - ld [ScriptVar], a - pop af - ld [rSVBK], a ; $ff00+$70 - ret - -Function1709bb: ; 1709bb (5c:49bb) - xor a - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - ld a, [$a800] - call CloseSRAM - cp 6 - jr nc, .invalid - ld e, a - ld d, 0 - ld hl, Jumptable_1709e7 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.invalid - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - call CloseSRAM - ret -; 1709e7 (5c:49e7) - -Jumptable_1709e7: ; 1709e7 - dw Function170a00 - dw Function170a00 - dw Function1709f3 - dw Function1709f3 - dw Function170a01 - dw Function170a33 -; 1709f3 - -Function1709f3: ; 1709f3 - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$a800], a - call CloseSRAM - -Function170a00: ; 170a00 - ret -; 170a01 - -Function170a01: ; 170a01 - ld a, $5 - call GetSRAMBank - ld hl, $b023 - ld de, $c608 - ld bc, $0069 - call CopyBytes - ld a, [$a825] - ld [wcd30], a - ld a, [$a826] - ld [wcd31], a - call CloseSRAM - callba Function11b6b4 - callba Function17d0f3 - ld a, $1 - ld [ScriptVar], a - ret -; 170a33 - -Function170a33: ; 170a33 - ld a, $0 - call GetSRAMBank - ld hl, wRTC - ld de, $c608 - ld bc, $0004 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $b08c - ld de, $c608 - ld c, $4 -.asm_170a54 - ld a, [de] - inc de - cp [hl] - jr nz, .asm_170a78 - inc hl - dec c - jr nz, .asm_170a54 - call CloseSRAM - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_170a72 - ld a, [de] - and a - ret nz - -.asm_170a72 - ld a, $1 - ld [ScriptVar], a - ret - -.asm_170a78 - call CloseSRAM - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - call CloseSRAM - ld [ScriptVar], a - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_170a9b - xor a - ld [de], a - -.asm_170a9b - ret -; 170a9c - -Function170a9c: ; 170a9c (5c:4a9c) - ld c, $0 - jr asm_170aa2 - -Function170aa0: ; 170aa0 (5c:4aa0) - ld c, $1 -asm_170aa2: ; 170aa2 (5c:4aa2) - ld a, $5 - call GetSRAMBank - ld a, c - ld [$aa8d], a - call CloseSRAM - ret - -Function170aaf: ; 170aaf (5c:4aaf) - ld a, $5 - call GetSRAMBank - ld a, [$aa8d] - ld [ScriptVar], a - call CloseSRAM - ret - -Function170abe: ; 170abe (5c:4abe) - call Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - and $1 - ld [ScriptVar], a - call CloseSRAM - ret - -Function170ad7: ; 170ad7 (5c:4ad7) - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - or $1 - ld [sbe4f], a - call CloseSRAM - ret - -Function170ae8: ; 170ae8 (5c:4ae8) - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld c, $a - call SimpleDivide - ld a, b - ld [wcd4f], a - xor a - ld [ScriptVar], a - callba Function119d93 - ret nc - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld [ScriptVar], a - ret - -Function170b16: ; 170b16 (5c:4b16) - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld c, 10 - call SimpleDivide - ld a, b - ld [wcd4f], a - xor a - ld [ScriptVar], a - callba Function119dd1 - ret nc - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld [ScriptVar], a - ret - -Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 - callba Function_LoadOpponentTrainerAndPokemons - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, wd10a - ld a, [hl] - dec a - ld c, a - ld b, $0 - pop af - ld [rSVBK], a - ld hl, Unknown_170b90 - add hl, bc - ld a, [hl] - ld [wcd49], a - -; Load sprite of the opponent trainer -; because s/he is chosen randomly and appears out of nowhere - ld a, [ScriptVar] - dec a - sla a - ld e, a - sla a - sla a - sla a - ld c, a - ld b, $0 - ld d, $0 - ld hl, MapObjects - add hl, bc - inc hl - ld a, [wcd49] - ld [hl], a - ld hl, UsedSprites - add hl, de - ld [hli], a - ld [hUsedSpriteIndex], a - ld a, [hl] - ld [hUsedSpriteTile], a - callba Function143c8 - ret -; 170b90 - -Unknown_170b90: - db $12, $13, $14, $15, $18, $17 - db $16, $19, $04, $05, $11, $01 - db $1c, $1b, $21, $1e, $1a, $1d - db $1f, $3c, $20, $27, $27, $27 - db $28, $0a, $23, $24, $2a, $2b - db $35, $40, $2a, $29, $22, $25 - db $3a, $2b, $24, $49, $2b, $07 - db $2c, $2d, $4a, $0d, $4b, $3a - db $2b, $41, $35, $27, $28, $27 - db $36, $3e, $30, $2c, $2d, $3d - db $26, $2e, $06, $07, $43, $36 - -Function170bd2: ; 170bd2 - ret -; 170bd3 - -SpecialCheckForBattleTowerRules: ; 170bd3 - callba CheckForBattleTowerRules - jr c, .asm_170bde - xor a - jr .asm_170be0 - -.asm_170bde - ld a, $1 - -.asm_170be0 - ld [ScriptVar], a - ret -; 170be4 diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm new file mode 100755 index 000000000..529e9e37b --- /dev/null +++ b/misc/battle_tower_47.asm @@ -0,0 +1,7773 @@ +BattleTowerText:: ; 11c000 +; Print text c for trainer [BT_OTrainer_TrainerClass] +; 1: Intro text +; 2: Player lost +; 3: Player won + ld a, [rSVBK] + push af + ld a, 3 ; BANK(BT_OTrainer_TrainerClass) + ld [rSVBK], a +IF DEF(CRYSTAL11) + ld hl, BT_OTrainer_TrainerClass +ELSE + ld hl, BT_OTrainer_Name + 5 +ENDC + ld a, [hl] + dec a + ld e, a + ld d, 0 + ld hl, BTTrainerTextSelectorTable + add hl, de + ld a, [hl] + and a + jr nz, .textset_1 + ld a, [hRandomAdd] + and $1f + cp 25 + jr c, .okay0 + sub 25 + +.okay0 + ld hl, BTTrainerTexts + jr .proceed + +.textset_1 + ld a, [hRandomAdd] + and $f + cp 15 + jr c, .okay1 + sub 15 + +.okay1 + ld hl, BTTrainerTexts2 + +.proceed + ld b, 0 + dec c + jr nz, .restore + ld [BT_TrainerTextIndex], a + jr .okay2 + +.restore + ld a, [BT_TrainerTextIndex] + +.okay2 + push af +rept 2 + add hl, bc +endr + ld a, [hli] + ld c, a + ld a, [hl] + ld h, a + ld l, c + pop af + ld c, a + ld b, 0 +rept 2 + add hl, bc +endr + ld a, [hli] + ld c, a + ld a, [hl] + ld l, c + ld h, a + bccoord 1, 14 + pop af + ld [rSVBK], a + call PlaceWholeStringInBoxAtOnce + ret +; 11c05d + +Function11c05d: ; 11c05d + ld a, e + or d + jr z, .asm_11c071 + ld a, e + and d + cp $ff + jr z, .asm_11c071 + push hl + call Function11c156 + pop hl + call PlaceString + and a + ret + +.asm_11c071 + ld c, l + ld b, h + scf + ret +; 11c075 + +Function11c075: ; 11c075 + push de + ld a, c + call Function11c254 + pop de + ld bc, wcd36 + call Function11c08f + ret +; 11c082 + +Function11c082: ; 11c082 + push de + ld a, c + call Function11c254 + pop de + ld bc, wcd36 + call Function11c0c6 + ret +; 11c08f + +Function11c08f: ; 11c08f + ld l, e + ld h, d + push hl + ld a, $3 +.asm_11c094 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + push bc + call Function11c05d + jr c, .asm_11c0a2 + inc bc + +.asm_11c0a2 + ld l, c + ld h, b + pop bc + pop af + dec a + jr nz, .asm_11c094 + pop hl + ld de, $0028 + add hl, de + ld a, $3 +.asm_11c0b0 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + push bc + call Function11c05d + jr c, .asm_11c0be + inc bc + +.asm_11c0be + ld l, c + ld h, b + pop bc + pop af + dec a + jr nz, .asm_11c0b0 + ret +; 11c0c6 + + +Function11c0c6: ; 11c0c6 + ld a, [wJumptableIndex] + ld l, a + ld a, [wcf64] + ld h, a + push hl + ld hl, $c608 + 16 + ld a, $0 + ld [hli], a + push de + xor a + ld [wJumptableIndex], a + ld a, $12 + ld [wcf64], a + ld a, $6 +.asm_11c0e1 + push af + ld a, [bc] + ld e, a + inc bc + ld a, [bc] + ld d, a + inc bc + or e + jr z, .asm_11c133 + push hl + push bc + call Function11c156 + call Function11c14a + ld e, c + pop bc + pop hl + ld a, e + or a + jr z, .asm_11c133 +.asm_11c0fa + ld a, [wcf64] + cp $12 + jr z, .asm_11c102 + inc e + +.asm_11c102 + cp e + jr nc, .asm_11c11c + ld a, [wJumptableIndex] + inc a + ld [wJumptableIndex], a + ld [hl], $4e + rra + jr c, .asm_11c113 + ld [hl], $55 + +.asm_11c113 + inc hl + ld a, $12 + ld [wcf64], a + dec e + jr .asm_11c0fa + +.asm_11c11c + cp $12 + jr z, .asm_11c123 + ld [hl], $7f + inc hl + +.asm_11c123 + sub e + ld [wcf64], a + ld de, $c608 +.asm_11c12a + ld a, [de] + cp $50 + jr z, .asm_11c133 + inc de + ld [hli], a + jr .asm_11c12a + +.asm_11c133 + pop af + dec a + jr nz, .asm_11c0e1 + ld [hl], $57 + pop bc + ld hl, $c608 + 16 + call PlaceWholeStringInBoxAtOnce + pop hl + ld a, l + ld [wJumptableIndex], a + ld a, h + ld [wcf64], a + ret +; 11c14a + +Function11c14a: ; 11c14a + ld c, $0 + ld hl, $c608 +.asm_11c14f + ld a, [hli] + cp $50 + ret z + inc c + jr .asm_11c14f +; 11c156 + +Function11c156: ; 11c156 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, $50 + ld hl, $c608 + ld bc, $000b + call ByteFill + ld a, d + and a + jr z, .asm_11c19c + ld hl, Unknown_11daac + dec d + sla d + ld c, d + ld b, $0 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + push bc + pop hl + ld c, e + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + ld bc, $0005 +.asm_11c18f + ld de, $c608 + call CopyBytes + ld de, $c608 + pop af + ld [rSVBK], a + ret + +.asm_11c19c + ld a, e + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld bc, $000a + jr .asm_11c18f +; 11c1ab + +Function11c1ab: ; 11c1ab + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function11c1b9 + pop af + ld [hInMenu], a + ret +; 11c1b9 + +Function11c1b9: ; 11c1b9 + call Function11c1ca + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call Function11c283 + pop af + ld [rSVBK], a + ret +; 11c1ca + +Function11c1ca: ; 11c1ca + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [wcd23], a + ld [BGMapBuffer], a + ld [wcd21], a + ld [CreditsTimer], a + ld [wcd35], a + ld [wcd2b], a + ld a, $ff + ld [wcd24], a + ld a, [wcfa9] + dec a + call Function11c254 + call WhiteBGMap + call ClearSprites + call ClearScreen + call Function11d323 + call SetPalettes + call DisableLCD + ld hl, GFX_11d67e + ld de, VTiles2 + ld bc, $60 + call CopyBytes + ld hl, LZ_11d6de + ld de, VTiles0 + call Decompress + call EnableLCD + callba Function104061 + callba Function8cf53 + callba LoadPokemonData + callba Function40c30 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, $c6d0 + ld de, LYOverrides + ld bc, $100 + call CopyBytes + pop af + ld [rSVBK], a + call Function11d4aa + call Function11d3ba + ret +; 11c254 + +Function11c254: ; 11c254 + push af + ld a, $4 + call GetSRAMBank + ld hl, $a007 + pop af + sla a + sla a + ld c, a + sla a + add c + ld c, a + ld b, $0 + add hl, bc + ld de, wcd36 + ld bc, $000c + call CopyBytes + call CloseSRAM + ret +; 11c277 + + +Function11c277: ; 11c277 (47:4277) + ld a, $7f + hlcoord 0, 6 + ld bc, $f0 + call ByteFill + ret + +Function11c283: ; 11c283 +.asm_11c283 + call JoyTextDelay + ld a, [hJoyPressed] + ld [hJoypadPressed], a + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_11c2a2 + call Function11c2ac + callba Function8cf69 + callba Function104061 + jr .asm_11c283 + +.asm_11c2a2 + callba Function8cf53 + call ClearSprites + ret +; 11c2ac + +Function11c2ac: ; 11c2ac + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_11c2bb +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11c2bb + + +Jumptable_11c2bb: ; 11c2bb (47:42bb) + dw Function11c2e9 + dw Function11c346 + dw Function11c35f + dw Function11c373 + dw Function11c3c2 + dw Function11c3ed + dw Function11c52c + dw Function11c53d + dw Function11c658 + dw Function11c675 + dw Function11c9bd + dw Function11c9c3 + dw Function11caad + dw Function11cab3 + dw Function11cb52 + dw Function11cb66 + dw Function11cbf5 + dw Function11ccef + dw Function11cd04 + dw Function11cd20 + dw Function11cd54 + dw Function11ce0b + dw Function11ce2b + + +Function11c2e9: ; 11c2e9 (47:42e9) + lb de, $1a, $0d + ld a, $1d + call Function3b2a + lb de, $42, $0d + ld a, $1d + call Function3b2a + ld hl, $c + add hl, bc + ld a, $1 + ld [hl], a + lb de, $4a, $10 + ld a, $1d + call Function3b2a + ld hl, $c + add hl, bc + ld a, $3 + ld [hl], a + lb de, $50, $80 + ld a, $1d + call Function3b2a + ld hl, $c + add hl, bc + ld a, $4 + ld [hl], a + lb de, $50, $20 + ld a, $1d + call Function3b2a + ld hl, $c + add hl, bc + ld a, $5 + ld [hl], a + lb de, $50, $10 + ld a, $1d + call Function3b2a + ld hl, $c + add hl, bc + ld a, $2 + ld [hl], a + ld hl, wcd23 + set 1, [hl] + set 2, [hl] + jp Function11cfb5 + +Function11c346: ; 11c346 (47:4346) + ld a, $9 + ld [wcd2d], a + ld a, $2 + ld [wcd2e], a + ld [wcd2f], a + ld [wcd30], a + ld de, wcd2d + call Function11cfce + jp Function11cfb5 + +Function11c35f: ; 11c35f (47:435f) + ld hl, wcd2f +rept 2 + inc [hl] +endr +rept 2 + dec hl +endr + dec [hl] + push af + ld de, wcd2d + call Function11cfce + pop af + ret nz + jp Function11cfb5 + +Function11c373: ; 11c373 (47:4373) + ld hl, wcd30 +rept 2 + inc [hl] +endr +rept 2 + dec hl +endr + dec [hl] + push af + ld de, wcd2d + call Function11cfce + pop af + ret nz + call Function11c38a + jp Function11cfb5 + +Function11c38a: ; 11c38a (47:438a) + ld hl, Unknown_11c986 + ld bc, wcd36 + ld a, $6 +.asm_11c392 + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + push de + pop hl + ld a, [bc] + inc bc + ld e, a + ld a, [bc] + inc bc + ld d, a + push bc + or e + jr z, .asm_11c3af + ld a, e + and d + cp $ff + jr z, .asm_11c3af + call Function11c05d + jr .asm_11c3b5 +.asm_11c3af + ld de, String_11c3bc + call PlaceString +.asm_11c3b5 + pop bc + pop hl + pop af + dec a + jr nz, .asm_11c392 + ret +; 11c3bc (47:43bc) + +String_11c3bc: ; 11c3bc + db "ーーーーー@" +; 11c3c2 + +Function11c3c2: ; 11c3c2 (47:43c2) + call Function11c277 + ld de, Unknown_11cfbe + call Function11d035 + hlcoord 1, 7 + ld de, String_11c4db + call PlaceString + hlcoord 1, 16 + ld de, String_11c51b + call PlaceString + call Function11c4be + ld hl, wcd23 + set 0, [hl] + ld hl, wcd24 + res 0, [hl] + call Function11cfb5 + +Function11c3ed: ; 11c3ed (47:43ed) + ld hl, BGMapBuffer ; wcd20 (aliases: CreditsPos) + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $8 + jr nz, .asm_11c426 + ld a, [de] + and $2 + jr nz, .asm_11c41a + ld a, [de] + and $1 + jr nz, .asm_11c42c + ld de, hJoyLast + ld a, [de] + and $40 + jr nz, .asm_11c47c + ld a, [de] + and $80 + jr nz, .asm_11c484 + ld a, [de] + and $20 + jr nz, .asm_11c48c + ld a, [de] + and $10 + jr nz, .asm_11c498 + ret +.asm_11c41a + call PlayClickSFX +.asm_11c41d + ld hl, wcd24 + set 0, [hl] + ld a, $c + jr .asm_11c475 +.asm_11c426 + ld a, $8 + ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) + ret +.asm_11c42c + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + cp $6 + jr c, .asm_11c472 + sub $6 + jr z, .asm_11c469 + dec a + jr z, .asm_11c41d + ld hl, wcd36 + ld c, $c + xor a +.asm_11c440 + or [hl] + inc hl + dec c + jr nz, .asm_11c440 + and a + jr z, .asm_11c460 + ld de, Unknown_11cfba + call Function11cfce + decoord 1, 2 + ld bc, wcd36 + call Function11c08f + ld hl, wcd24 + set 0, [hl] + ld a, $e + jr .asm_11c475 +.asm_11c460 + ld hl, wcd24 + set 0, [hl] + ld a, $11 + jr .asm_11c475 +.asm_11c469 + ld hl, wcd24 + set 0, [hl] + ld a, $a + jr .asm_11c475 +.asm_11c472 + call Function11c4a5 +.asm_11c475 + ld [wJumptableIndex], a + call PlayClickSFX + ret +.asm_11c47c + ld a, [hl] + cp $3 + ret c + sub $3 + jr .asm_11c4a3 +.asm_11c484 + ld a, [hl] + cp $6 + ret nc + add $3 + jr .asm_11c4a3 +.asm_11c48c + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + dec a + jr .asm_11c4a3 +.asm_11c498 + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + inc a +.asm_11c4a3 + ld [hl], a + ret + +Function11c4a5: ; 11c4a5 (47:44a5) + ld hl, wcd23 + res 0, [hl] + ld a, [wcd2b] + and a + jr nz, .asm_11c4b7 + xor a + ld [wcd21], a + ld a, $6 + ret +.asm_11c4b7 + xor a + ld [CreditsTimer], a + ld a, $15 + ret + +Function11c4be: ; 11c4be (47:44be) + ld a, $1 + hlcoord 0, 6, AttrMap + ld bc, $a0 + call ByteFill + ld a, $7 + hlcoord 0, 14, AttrMap + ld bc, $28 + call ByteFill + callba Function104061 + ret +; 11c4db (47:44db) + +String_11c4db: ; 11c4db + db "6つのことば", $1f, "くみあわせます" + next "かえたいところ", $1f, "えらぶと でてくる" + next "ことばのグループから いれかえたい" + next "たんご", $1f, "えらんでください" + db "@" +; 11c51b + +String_11c51b: ; 11c51b + db "ぜんぶけす やめる けってい@" +; 11c52c + +Function11c52c: ; 11c52c (47:452c) + call Function11c277 + call Function11c5f0 + call Function11c618 + ld hl, wcd24 + res 1, [hl] + call Function11cfb5 + +Function11c53d: ; 11c53d (47:453d) + ld hl, wcd21 + ld de, hJoypadPressed ; $ffa3 + + ld a, [de] + and START + jr nz, .start + + ld a, [de] + and SELECT + jr nz, .select + + ld a, [de] + and B_BUTTON + jr nz, .b + + ld a, [de] + and A_BUTTON + jr nz, .a + + ld de, hJoyLast + + ld a, [de] + and D_UP + jr nz, .up + + ld a, [de] + and D_DOWN + jr nz, .down + + ld a, [de] + and D_LEFT + jr nz, .left + + ld a, [de] + and D_RIGHT + jr nz, .right + + ret + +.a + ld a, [wcd21] + cp $f + jr c, .asm_11c59d + sub $f + jr z, .asm_11c5ab + dec a + jr z, .asm_11c599 + jr .b + +.start + ld hl, wcd24 + set 0, [hl] + ld a, $8 + ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) + +.b + ld a, $4 + jr .asm_11c59f + +.select + ld a, [wcd2b] + xor $1 + ld [wcd2b], a + ld a, $15 + jr .asm_11c59f + +.asm_11c599 + ld a, $13 + jr .asm_11c59f + +.asm_11c59d + ld a, $8 + +.asm_11c59f + ld hl, wcd24 + set 1, [hl] + ld [wJumptableIndex], a + call PlayClickSFX + ret + +.asm_11c5ab + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + call Function11ca6a + call PlayClickSFX + ret + +.up + ld a, [hl] + cp $3 + ret c + sub $3 + jr .asm_11c5ee + +.down + ld a, [hl] + cp $f + ret nc + add $3 + jr .asm_11c5ee + +.left + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + cp $9 + ret z + cp $c + ret z + cp $f + ret z + dec a + jr .asm_11c5ee + +.right + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + cp $b + ret z + cp $e + ret z + cp $11 + ret z + inc a + +.asm_11c5ee + ld [hl], a + ret +; 11c5f0 + +Function11c5f0: ; 11c5f0 (47:45f0) + ld de, Strings_11da52 + ld bc, Unknown_11c63a + ld a, $f +.asm_11c5f8 + push af + ld a, [bc] + inc bc + ld l, a + ld a, [bc] + inc bc + ld h, a + push bc + call PlaceString +.asm_11c603 + inc de + ld a, [de] + cp $50 + jr z, .asm_11c603 + pop bc + pop af + dec a + jr nz, .asm_11c5f8 + hlcoord 1, 17 + ld de, String_11c62a + call PlaceString + ret + +Function11c618: ; 11c618 (47:4618) + ld a, $2 + hlcoord 0, 6, AttrMap + ld bc, $c8 + call ByteFill + callba Function104061 + ret +; 11c62a (47:462a) + +String_11c62a: ; 11c62a + db "けす モード やめる@" +; 11c63a + +Unknown_11c63a: ; 11c63a + dwcoord 1, 7 + dwcoord 7, 7 + dwcoord 13, 7 + dwcoord 1, 9 + dwcoord 7, 9 + dwcoord 13, 9 + dwcoord 1, 11 + dwcoord 7, 11 + dwcoord 13, 11 + dwcoord 1, 13 + dwcoord 7, 13 + dwcoord 13, 13 + dwcoord 1, 15 + dwcoord 7, 15 + dwcoord 13, 15 +; 11c658 + +Function11c658: ; 11c658 (47:4658) + call Function11c277 + call Function11c770 + ld de, Unknown_11cfc2 + call Function11d035 + call Function11c9ab + call Function11c7bc + call Function11c86e + ld hl, wcd24 + res 3, [hl] + call Function11cfb5 + +Function11c675: ; 11c675 (47:4675) + ld hl, wcd25 + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and A_BUTTON + jr nz, .a + ld a, [de] + and B_BUTTON + jr nz, .b + ld a, [de] + and START + jr nz, .start + ld a, [de] + and SELECT + jr z, .select + + ld a, [wcd26] + and a + ret z + sub $c + jr nc, .asm_11c699 + xor a +.asm_11c699 + ld [wcd26], a + jr .asm_11c6c4 + +.start + ld hl, wcd28 + ld a, [wcd26] + add $c + cp [hl] + ret nc + ld [wcd26], a + ld a, [hl] + ld b, a + ld hl, wcd25 + ld a, [wcd26] + add [hl] + jr c, .asm_11c6b9 + cp b + jr c, .asm_11c6c4 +.asm_11c6b9 + ld a, [wcd28] + ld hl, wcd26 + sub [hl] + dec a + ld [wcd25], a +.asm_11c6c4 + call Function11c992 + call Function11c7bc + call Function11c86e + ret + +.select + ld de, hJoyLast + ld a, [de] + and D_UP + jr nz, .asm_11c708 + ld a, [de] + and D_DOWN + jr nz, .asm_11c731 + ld a, [de] + and D_LEFT + jr nz, .asm_11c746 + ld a, [de] + and D_RIGHT + jr nz, .asm_11c755 + ret + +.a + call Function11c8f6 + ld a, $4 + ld [wcd35], a + jr .asm_11c6fc +.b + ld a, [wcd2b] + and a + jr nz, .asm_11c6fa + ld a, $6 + jr .asm_11c6fc +.asm_11c6fa + ld a, $15 +.asm_11c6fc + ld [wJumptableIndex], a + ld hl, wcd24 + set 3, [hl] + call PlayClickSFX + ret +.asm_11c708 + ld a, [hl] + cp $3 + jr c, .asm_11c711 + sub $3 + jr .asm_11c76e +.asm_11c711 + ld a, [wcd26] + sub $3 + ret c + ld [wcd26], a + jr .asm_11c6c4 +.asm_11c71c + ld hl, wcd28 + ld a, [wcd26] + add $c + ret c + cp [hl] + ret nc + ld a, [wcd26] + add $3 + ld [wcd26], a + jr .asm_11c6c4 +.asm_11c731 + ld a, [wcd28] + ld b, a + ld a, [wcd26] + add [hl] + add $3 + cp b + ret nc + ld a, [hl] + cp $9 + jr nc, .asm_11c71c + add $3 + jr .asm_11c76e +.asm_11c746 + ld a, [hl] + and a + ret z + cp $3 + ret z + cp $6 + ret z + cp $9 + ret z + dec a + jr .asm_11c76e +.asm_11c755 + ld a, [wcd28] + ld b, a + ld a, [wcd26] + add [hl] + inc a + cp b + ret nc + ld a, [hl] + cp $2 + ret z + cp $5 + ret z + cp $8 + ret z + cp $b + ret z + inc a +.asm_11c76e + ld [hl], a + ret + +Function11c770: ; 11c770 (47:4770) + xor a + ld [wcd25], a + ld [wcd26], a + ld [wcd27], a + ld a, [wcd2b] + and a + jr nz, .asm_11c7ab + ld a, [wcd21] + and a + jr z, .asm_11c799 + dec a + sla a + ld hl, Unknown_11f220 + ld c, a + ld b, 0 + add hl, bc + ld a, [hli] + ld [wcd28], a + ld a, [hl] +.asm_11c795 + ld [wcd29], a + ret +.asm_11c799 + ld a, [wc7d2] + ld [wcd28], a +.asm_11c79f + ld c, $c + call SimpleDivide + and a + jr nz, .asm_11c7a8 + dec b +.asm_11c7a8 + ld a, b + jr .asm_11c795 +.asm_11c7ab + ld hl, $c68a + 30 + ld a, [CreditsTimer] + ld c, a + ld b, 0 +rept 2 + add hl, bc +endr + ld a, [hl] + ld [wcd28], a + jr .asm_11c79f + +Function11c7bc: ; 11c7bc (47:47bc) + ld bc, Unknown_11c854 + ld a, [wcd2b] + and a + jr nz, .asm_11c814 + ld a, [wcd21] + ld d, a + and a + jr z, .asm_11c7e9 + ld a, [wcd26] + ld e, a +.asm_11c7d0 + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + ret z + push bc + push de + call Function11c05d + pop de + pop bc + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c7d0 + ret +.asm_11c7e9 + ld hl, wd100 + ld a, [wcd26] + ld e, a + add hl, de +.asm_11c7f1 + push de + ld a, [hli] + ld e, a + ld d, $0 + push hl + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + jr z, .asm_11c811 + push bc + call Function11c05d + pop bc + pop hl + pop de + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c7f1 + ret +.asm_11c811 + pop hl + pop de + ret +.asm_11c814 + ld hl, $c648 + ld a, [wcd22] + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wcd26] + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [wcd26] + ld e, a +.asm_11c831 + push de + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld a, [bc] + ld l, a + inc bc + ld a, [bc] + ld h, a + inc bc + and l + cp $ff + jr z, .asm_11c851 + push bc + call Function11c05d + pop bc + pop hl + pop de + inc e + ld a, [wcd28] + cp e + jr nz, .asm_11c831 + ret +.asm_11c851 + pop hl + pop de + ret +; 11c854 (47:4854) + +Unknown_11c854: ; 11c854 + dwcoord 2, 8 + dwcoord 8, 8 + dwcoord 14, 8 + dwcoord 2, 10 + dwcoord 8, 10 + dwcoord 14, 10 + dwcoord 2, 12 + dwcoord 8, 12 + dwcoord 14, 12 + dwcoord 2, 14 + dwcoord 8, 14 + dwcoord 14, 14 + dw -1 +; 11c86e + +Function11c86e: ; 11c86e (47:486e) + ld a, [wcd26] + and a + jr z, .asm_11c88a + hlcoord 2, 17 + ld de, String_11c8f0 + call PlaceString + hlcoord 6, 17 + ld c, $3 + xor a +.asm_11c883 + ld [hli], a + inc a + dec c + jr nz, .asm_11c883 + jr .asm_11c895 +.asm_11c88a + hlcoord 2, 17 + ld c, $7 + ld a, $7f +.asm_11c891 + ld [hli], a + dec c + jr nz, .asm_11c891 +.asm_11c895 + ld hl, wcd28 + ld a, [wcd26] + add $c + jr c, .asm_11c8b7 + cp [hl] + jr nc, .asm_11c8b7 + hlcoord 16, 17 + ld de, String_11c8f3 + call PlaceString + hlcoord 11, 17 + ld a, $3 + ld c, a +.asm_11c8b1 + ld [hli], a + inc a + dec c + jr nz, .asm_11c8b1 + ret +.asm_11c8b7 + hlcoord 17, 16 + ld a, $7f + ld [hl], a + hlcoord 11, 17 + ld c, $7 +.asm_11c8c2 + ld [hli], a + dec c + jr nz, .asm_11c8c2 + ret +; 11c8c7 (47:48c7) + +Function11c8c7: ; 11c8c7 + inc a + push af + and $f + ld [hDividend], a + pop af + and $f0 + swap a + ld [hQuotient], a + xor a + ld [$ffb5], a + push hl + callba Function11a80c + pop hl + ld a, [wcd63] + add $f6 + ld [hli], a + ld a, [wcd62] + add $f6 + ld [hli], a + ret +; 11c8ec + +String_11c8ec: ; 11c8ec + db "ぺージ@" +; 11c8f0 + +String_11c8f0: ; 11c8f0 + db "まえ@" +; 11c8f3 + +String_11c8f3: ; 11c8f3 + db "つぎ@" +; 11c8f6 + +Function11c8f6: ; 11c8f6 (47:48f6) + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + call Function11c95d + push hl + ld a, [wcd2b] + and a + jr nz, .asm_11c938 + ld a, [wcd21] + ld d, a + and a + jr z, .asm_11c927 + ld hl, wcd26 + ld a, [wcd25] + add [hl] +.asm_11c911 + ld e, a +.asm_11c912 + pop hl + push de + call Function11c05d + pop de + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + ld c, a + ld b, $0 + ld hl, wcd36 +rept 2 + add hl, bc +endr + ld [hl], e + inc hl + ld [hl], d + ret +.asm_11c927 + ld hl, wcd26 + ld a, [wcd25] + add [hl] + ld c, a + ld b, $0 + ld hl, wd100 + add hl, bc + ld a, [hl] + jr .asm_11c911 +.asm_11c938 + ld hl, $c648 + ld a, [wcd22] + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + push de + pop hl + ld a, [wcd26] + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [wcd25] + ld e, a +rept 2 + add hl, de +endr + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + jr .asm_11c912 + +Function11c95d: ; 11c95d (47:495d) + sla a + ld c, a + ld b, 0 + ld hl, Unknown_11c986 + add hl, bc + ld a, [hli] + ld c, a + ld a, [hl] + ld b, a + push bc + push bc + pop hl + ld a, $5 + ld c, a + ld a, $7f +.asm_11c972 + ld [hli], a + dec c + jr nz, .asm_11c972 + dec hl + ld bc, -20 + add hl, bc + ld a, $5 + ld c, a + ld a, $7f +.asm_11c980 + ld [hld], a + dec c + jr nz, .asm_11c980 + pop hl + ret +; 11c986 (47:4986) + +Unknown_11c986: + dwcoord 1, 2 + dwcoord 7, 2 + dwcoord 13, 2 + dwcoord 1, 4 + dwcoord 7, 4 + dwcoord 13, 4 +; 11c992 + +Function11c992: ; 11c992 (47:4992) + ld a, $8 + hlcoord 2, 7 +.asm_11c997 + push af + ld a, $7f + push hl + ld bc, $11 + call ByteFill + pop hl + ld bc, $14 + add hl, bc + pop af + dec a + jr nz, .asm_11c997 + ret + +Function11c9ab: ; 11c9ab (47:49ab) + ld a, $7 + hlcoord 0, 6, AttrMap + ld bc, $c8 + call ByteFill + callba Function104061 + ret + +Function11c9bd: ; 11c9bd (47:49bd) + ld de, String_11ca38 + call Function11ca7f + +Function11c9c3: ; 11c9c3 (47:49c3) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11c9de + ld a, [de] + and $2 + jr nz, .asm_11c9e9 + ld a, [de] + and $40 + jr nz, .asm_11c9f7 + ld a, [de] + and $80 + jr nz, .asm_11c9fc + ret +.asm_11c9de + ld a, [hl] + and a + jr nz, .asm_11c9e9 + call Function11ca5e + xor a + ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) +.asm_11c9e9 + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + call PlayClickSFX + ret +.asm_11c9f7 + ld a, [hl] + and a + ret z + dec [hl] + ret +.asm_11c9fc + ld a, [hl] + and a + ret nz + inc [hl] + ret + +Function11ca01: ; 11ca01 (47:4a01) + hlcoord 14, 7, AttrMap + ld de, $14 + ld a, $5 + ld c, a +.asm_11ca0a + push hl + ld a, $6 + ld b, a + ld a, $7 +.asm_11ca10 + ld [hli], a + dec b + jr nz, .asm_11ca10 + pop hl + add hl, de + dec c + jr nz, .asm_11ca0a + +Function11ca19: ; 11ca19 (47:4a19) + hlcoord 0, 12, AttrMap + ld de, $14 + ld a, $6 + ld c, a +.asm_11ca22 + push hl + ld a, $14 + ld b, a + ld a, $7 +.asm_11ca28 + ld [hli], a + dec b + jr nz, .asm_11ca28 + pop hl + add hl, de + dec c + jr nz, .asm_11ca22 + callba Function104061 + ret +; 11ca38 (47:4a38) + +String_11ca38: ; 11ca38 + db "とうろくちゅう", $25, "あいさつ", $1f, "ぜんぶ" + next "けしても よろしいですか?@" +; 11ca57 + +String_11ca57: ; 11ca57 + db "はい" + next "いいえ@" +; 11ca5e + +Function11ca5e: ; 11ca5e (47:4a5e) + xor a +.asm_11ca5f + push af + call Function11ca6a + pop af + inc a + cp $6 + jr nz, .asm_11ca5f + ret + +Function11ca6a: ; 11ca6a (47:4a6a) + ld hl, wcd36 + ld c, a + ld b, $0 +rept 2 + add hl, bc +endr + ld [hl], b + inc hl + ld [hl], b + call Function11c95d + ld de, String_11c3bc + call PlaceString + ret + +Function11ca7f: ; 11ca7f (47:4a7f) + push de + ld de, Unknown_11cfc6 + call Function11cfce + ld de, Unknown_11cfca + call Function11cfce + hlcoord 1, 14 + pop de + call PlaceString + hlcoord 16, 8 + ld de, String_11ca57 + call PlaceString + call Function11ca01 + ld a, $1 + ld [wcd2a], a + ld hl, wcd24 + res 4, [hl] + call Function11cfb5 + ret + +Function11caad: ; 11caad (47:4aad) + ld de, String_11cb1c + call Function11ca7f + +Function11cab3: ; 11cab3 (47:4ab3) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11cace + ld a, [de] + and $2 + jr nz, .asm_11caf9 + ld a, [de] + and $40 + jr nz, .asm_11cb12 + ld a, [de] + and $80 + jr nz, .asm_11cb17 + ret +.asm_11cace + call PlayClickSFX + ld a, [hl] + and a + jr nz, .asm_11cafc + ld a, [wcd35] + and a + jr z, .asm_11caf3 + cp $ff + jr z, .asm_11caf3 + ld a, $ff + ld [wcd35], a + hlcoord 1, 14 + ld de, String_11cb31 + call PlaceString + ld a, $1 + ld [wcd2a], a + ret +.asm_11caf3 + ld hl, wJumptableIndex + set 7, [hl] + ret +.asm_11caf9 + call PlayClickSFX +.asm_11cafc + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + ld a, [wcd35] + cp $ff + ret nz + ld a, $1 + ld [wcd35], a + ret +.asm_11cb12 + ld a, [hl] + and a + ret z + dec [hl] + ret +.asm_11cb17 + ld a, [hl] + and a + ret nz + inc [hl] + ret +; 11cb1c (47:4b1c) + +String_11cb1c: ; 11cb1c + db "あいさつ", $25, "とうろく", $1f, "ちゅうし" + next "しますか?@" +; 11cb31 + +String_11cb31: ; 11cb31 + db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん" + next "されません", $4a, "よろしい ですか?@" +; 11cb52 + +Function11cb52: ; 11cb52 (47:4b52) + ld hl, Unknown_11cc01 + ld a, [wcfa9] +.asm_11cb58 + dec a + jr z, .asm_11cb5f +rept 2 + inc hl +endr + jr .asm_11cb58 +.asm_11cb5f + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + call Function11ca7f + +Function11cb66: ; 11cb66 (47:4b66) + ld hl, wcd2a + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and $1 + jr nz, .asm_11cb81 + ld a, [de] + and $2 + jr nz, .asm_11cbd7 + ld a, [de] + and $40 + jr nz, .asm_11cbeb + ld a, [de] + and $80 + jr nz, .asm_11cbf0 + ret +.asm_11cb81 + ld a, [hl] + and a + jr nz, .asm_11cbd4 + ld a, $4 + call GetSRAMBank + ld hl, $a007 + ld a, [wcfa9] + dec a + sla a + sla a + ld c, a + sla a + add c + ld c, a + ld b, $0 + add hl, bc + ld de, wcd36 + ld c, $c +.asm_11cba2 + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .asm_11cba2 + call CloseSRAM + call PlayClickSFX + ld de, Unknown_11cfc6 + call Function11cfce + ld hl, Unknown_11cc7e + ld a, [wcfa9] +.asm_11cbba + dec a + jr z, .asm_11cbc1 +rept 2 + inc hl +endr + jr .asm_11cbba +.asm_11cbc1 + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + hlcoord 1, 14 + call PlaceString + ld hl, wJumptableIndex + inc [hl] + inc hl + ld a, $10 + ld [hl], a + ret +.asm_11cbd4 + call PlayClickSFX +.asm_11cbd7 + ld de, Unknown_11cfba + call Function11cfce + call Function11c38a + ld hl, wcd24 + set 4, [hl] + ld a, $4 + ld [wJumptableIndex], a + ret +.asm_11cbeb + ld a, [hl] + and a + ret z + dec [hl] + ret +.asm_11cbf0 + ld a, [hl] + and a + ret nz + inc [hl] + ret + +Function11cbf5: ; 11cbf5 (47:4bf5) + call WaitSFX + ld hl, wcf64 + dec [hl] + ret nz + dec hl + set 7, [hl] + ret +; 11cc01 (47:4c01) + +Unknown_11cc01: ; 11cc01 + dw String_11cc09 + dw String_11cc23 + dw String_11cc42 + dw String_11cc60 + +String_11cc09: ; 11cc09 + db "じこしょうかい は" + next "この あいさつで いいですか?@" + +String_11cc23: ; 11cc23 + db "たいせん ", $4a, "はじまるとき は" + next "この あいさつで いいですか?@" + +String_11cc42: ; 11cc42 + db "たいせん ", $1d, "かったとき は" + next "この あいさつで いいですか?@" + +String_11cc60: ; 11cc60 + db "たいせん ", $1d, "まけたとき は" + next "この あいさつで いいですか?@" +; 11cc7e + +Unknown_11cc7e: ; 11cc7e + dw String_11cc86 + dw String_11cc9d + dw String_11ccb9 + dw String_11ccd4 + +String_11cc86: ; 11cc86 + db "じこしょうかい の" + next "あいさつ", $1f, "とうろくした!@" + +String_11cc9d: ; 11cc9d + db "たいせん ", $4a, "はじまるとき の" + next "あいさつ", $1f, "とうろくした!@" + +String_11ccb9: ; 11ccb9 + db "たいせん ", $1d, "かったとき の" + next "あいさつ", $1f, "とうろくした!@" + +String_11ccd4: ; 11ccd4 + db "たいせん ", $1d, "まけたとき の" + next "あいさつ", $1f, "とうろくした!@" +; 11ccef + +Function11ccef: ; 11ccef (47:4cef) + ld de, Unknown_11cfc6 + call Function11cfce + hlcoord 1, 14 + ld de, String_11cd10 + call PlaceString + call Function11ca19 + call Function11cfb5 + +Function11cd04: ; 11cd04 (47:4d04) + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and a + ret z + ld a, $4 + ld [wJumptableIndex], a + ret +; 11cd10 (47:4d10) + +String_11cd10: ; 11cd10 + db "なにか ことば", $1f, "いれてください@" +; 11cd20 + +Function11cd20: ; 11cd20 (47:4d20) + call Function11c277 + ld de, Unknown_11cfc6 + call Function11cfce + hlcoord 1, 14 + ld a, [wcd2b] + ld [wcd2c], a + and a + jr nz, .asm_11cd3a + ld de, String_11cdc7 + jr .asm_11cd3d +.asm_11cd3a + ld de, String_11cdd9 +.asm_11cd3d + call PlaceString + hlcoord 4, 8 + ld de, String_11cdf5 + call PlaceString + call Function11cdaa + ld hl, wcd24 + res 5, [hl] + call Function11cfb5 + +Function11cd54: ; 11cd54 (47:4d54) + ld hl, wcd2c + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and A_BUTTON + jr nz, .asm_11cd6f + ld a, [de] + and B_BUTTON + jr nz, .asm_11cd73 + ld a, [de] + and D_UP + jr nz, .asm_11cd8b + ld a, [de] + and D_DOWN + jr nz, .asm_11cd94 + ret + +.asm_11cd6f + ld a, [hl] + ld [wcd2b], a +.asm_11cd73 + ld a, [wcd2b] + and a + jr nz, .asm_11cd7d + ld a, $6 + jr .asm_11cd7f + +.asm_11cd7d + ld a, $15 +.asm_11cd7f + ld [wJumptableIndex], a + ld hl, wcd24 + set 5, [hl] + call PlayClickSFX + ret + +.asm_11cd8b + ld a, [hl] + and a + ret z + dec [hl] + ld de, String_11cdc7 + jr .asm_11cd9b + +.asm_11cd94 + ld a, [hl] + and a + ret nz + inc [hl] + ld de, String_11cdd9 +.asm_11cd9b + push de + ld de, Unknown_11cfc6 + call Function11cfce + pop de + hlcoord 1, 14 + call PlaceString + ret + +Function11cdaa: ; 11cdaa (47:4daa) + ld a, $2 + hlcoord 0, 6, AttrMap + ld bc, $78 + call ByteFill + ld a, $7 + hlcoord 0, 12, AttrMap + ld bc, $50 + call ByteFill + callba Function104061 + ret +; 11cdc7 (47:4dc7) + +String_11cdc7: ; 11cdc7 + db "ことば", $1f, "しゅるいべつに" + next "えらべます@" +; 11cdd9 + +String_11cdd9: ; 11cdd9 + db "ことば", $1f, "アイウエォ の" + next "じゅんばんで ひょうじ します@" +; 11cdf5 + +String_11cdf5: ; 11cdf5 + db "しゅるいべつ モード" + next "アイウエォ モード@" +; 11ce0b + +Function11ce0b: ; 11ce0b (47:4e0b) + call Function11c277 + hlcoord 1, 7 + ld de, String_11cf79 + call PlaceString + hlcoord 1, 17 + ld de, String_11c62a + call PlaceString + call Function11c618 + ld hl, wcd24 + res 2, [hl] + call Function11cfb5 + +Function11ce2b: ; 11ce2b (47:4e2b) + ld a, [CreditsTimer] + sla a + sla a + ld c, a + ld b, 0 + ld hl, Unknown_11ceb9 + add hl, bc + + ld de, hJoypadPressed ; $ffa3 + ld a, [de] + and START + jr nz, .start + ld a, [de] + and SELECT + jr nz, .select + ld a, [de] + and A_BUTTON + jr nz, .a + ld a, [de] + and B_BUTTON + jr nz, .b + + ld de, hJoyLast + ld a, [de] + and D_UP + jr nz, .up + ld a, [de] + and D_DOWN + jr nz, .down + ld a, [de] + and D_LEFT + jr nz, .left + ld a, [de] + and D_RIGHT + jr nz, .right + + ret + +.a + ld a, [CreditsTimer] + cp $2d + jr c, .asm_11ce92 + sub $2d + jr z, .asm_11cea4 + dec a + jr z, .asm_11ce96 + jr .b + +.start + ld hl, wcd24 + set 0, [hl] + ld a, $8 + ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) +.b + ld a, $4 + jr .asm_11ce98 +.select + ld a, [wcd2b] + xor $1 + ld [wcd2b], a + ld a, $6 + jr .asm_11ce98 + +.asm_11ce92 + ld a, $8 + jr .asm_11ce98 + +.asm_11ce96 + ld a, $13 +.asm_11ce98 + ld [wJumptableIndex], a + ld hl, wcd24 + set 2, [hl] + call PlayClickSFX + ret +.asm_11cea4 + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + call Function11ca6a + call PlayClickSFX + ret + +.left + inc hl +.down + inc hl +.right + inc hl +.up + ld a, [hl] + cp $ff + ret z + ld [CreditsTimer], a + ret +; 11ceb9 (47:4eb9) + +Unknown_11ceb9: ; 11ceb9 + ; up left down right + db $ff, $01, $05, $ff + db $ff, $02, $06, $00 + db $ff, $03, $07, $01 + db $ff, $04, $08, $02 + db $ff, $14, $09, $03 + db $00, $06, $0a, $ff + db $01, $07, $0b, $05 + db $02, $08, $0c, $06 + db $03, $09, $0d, $07 + db $04, $19, $0e, $08 + db $05, $0b, $0f, $ff + db $06, $0c, $10, $0a + db $07, $0d, $11, $0b + db $08, $0e, $12, $0c + db $09, $1e, $13, $0d + db $0a, $10, $2d, $ff + db $0b, $11, $2d, $0f + db $0c, $12, $2d, $10 + db $0d, $13, $2d, $11 + db $0e, $26, $2d, $12 + db $ff, $15, $19, $04 + db $ff, $16, $1a, $14 + db $ff, $17, $1b, $15 + db $ff, $18, $1c, $16 + db $ff, $23, $1d, $17 + db $14, $1a, $1e, $09 + db $15, $1b, $1f, $19 + db $16, $1c, $20, $1a + db $17, $1d, $21, $1b + db $18, $2b, $22, $1c + db $19, $1f, $26, $0e + db $1a, $20, $27, $1e + db $1b, $21, $28, $1f + db $1c, $22, $29, $20 + db $1d, $2c, $2a, $21 + db $ff, $24, $2b, $18 + db $ff, $25, $2b, $23 + db $ff, $ff, $2b, $24 + db $1e, $27, $2e, $13 + db $1f, $28, $2e, $26 + db $20, $29, $2e, $27 + db $21, $2a, $2e, $28 + db $22, $ff, $2e, $29 + db $23, $ff, $2c, $1d + db $2b, $ff, $2f, $22 + db $0f, $2e, $ff, $ff + db $26, $2f, $ff, $2d + db $2c, $ff, $ff, $2e +; 11cf79 + +String_11cf79: ; 11cf79 + db "あいうえお なにぬねの や ゆ よ" + next "かきくけこ はひふへほ わ" + next "さしすせそ まみむめも そのた" + next "たちつてと らりるれろ" + db "@" +; 11cfb5 + +Function11cfb5: ; 11cfb5 (47:4fb5) + ld hl, wJumptableIndex + inc [hl] + ret +; 11cfba (47:4fba) + +Unknown_11cfba: + db 0, 0 ; start coords + db 20, 6 ; end coords + +Unknown_11cfbe: + db 0, 14 ; start coords + db 20, 4 ; end coords + +Unknown_11cfc2: + db 0, 6 ; start coords + db 20, 10 ; end coords + +Unknown_11cfc6: + db 0, 12 ; start coords + db 20, 6 ; end coords + +Unknown_11cfca: + db 14, 7 ; start coords + db 6, 5 ; end coords +; 11cfce + +Function11cfce: ; 11cfce (47:4fce) + hlcoord 0, 0 + ld bc, $14 + ld a, [de] + inc de + push af + ld a, [de] + inc de + and a +.asm_11cfda + jr z, .asm_11cfe0 + add hl, bc + dec a + jr .asm_11cfda +.asm_11cfe0 + pop af + ld c, a + ld b, 0 + add hl, bc + push hl + ld a, $79 + ld [hli], a + ld a, [de] + inc de +rept 2 + dec a +endr + jr z, .asm_11cff6 + ld c, a + ld a, $7a +.asm_11cff2 + ld [hli], a + dec c + jr nz, .asm_11cff2 +.asm_11cff6 + ld a, $7b + ld [hl], a + pop hl + ld bc, $14 + add hl, bc + ld a, [de] + dec de +rept 2 + dec a +endr + jr z, .asm_11d022 + ld b, a +.asm_11d005 + push hl + ld a, $7c + ld [hli], a + ld a, [de] +rept 2 + dec a +endr + jr z, .asm_11d015 + ld c, a + ld a, $7f +.asm_11d011 + ld [hli], a + dec c + jr nz, .asm_11d011 +.asm_11d015 + ld a, $7c + ld [hl], a + pop hl + push bc + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, .asm_11d005 +.asm_11d022 + ld a, $7d + ld [hli], a + ld a, [de] +rept 2 + dec a +endr + jr z, .asm_11d031 + ld c, a + ld a, $7a +.asm_11d02d + ld [hli], a + dec c + jr nz, .asm_11d02d +.asm_11d031 + ld a, $7e + ld [hl], a + ret + +Function11d035: ; 11d035 (47:5035) + hlcoord 0, 0 + ld bc, $14 + ld a, [de] + inc de + push af + ld a, [de] + inc de + and a +.asm_11d041 + jr z, .asm_11d047 + add hl, bc + dec a + jr .asm_11d041 +.asm_11d047 + pop af + ld c, a + ld b, $0 + add hl, bc + push hl + ld a, $79 + ld [hl], a + pop hl + push hl + ld a, [de] + dec a + inc de + ld c, a + add hl, bc + ld a, $7b + ld [hl], a + call Function11d0ac + ld a, $7e + ld [hl], a + pop hl + push hl + call Function11d0ac + ld a, $7d + ld [hl], a + pop hl + push hl + inc hl + push hl + call Function11d0ac + pop bc + dec de + ld a, [de] + cp $2 + jr z, .asm_11d082 +rept 2 + dec a +endr +.asm_11d078 + push af + ld a, $7a + ld [hli], a + ld [bc], a + inc bc + pop af + dec a + jr nz, .asm_11d078 +.asm_11d082 + pop hl + ld bc, $14 + add hl, bc + push hl + ld a, [de] + dec a + ld c, a + ld b, $0 + add hl, bc + pop bc + inc de + ld a, [de] + cp $2 + ret z + push bc +rept 2 + dec a +endr + ld c, a + ld b, a + ld de, $14 +.asm_11d09c + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_11d09c + pop hl +.asm_11d0a4 + ld a, $7c + ld [hl], a + add hl, de + dec b + jr nz, .asm_11d0a4 + ret + +Function11d0ac: ; 11d0ac (47:50ac) + ld a, [de] + dec a + ld bc, $14 +.asm_11d0b1 + add hl, bc + dec a + jr nz, .asm_11d0b1 + ret + +Function11d0b6: ; 11d0b6 (47:50b6) + ld hl, $c + add hl, bc + ld a, [hl] + ld e, a + ld d, 0 + ld hl, Jumptable_11d0c7 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_11d0c7: ; 11d0c7 (47:50c7) + dw Function11d0dd + dw Function11d0e9 + dw Function11d0f5 + dw Function11d10f + dw Function11d134 + dw Function11d145 + dw Function11d156 + dw Function11d175 + dw Function11d1d7 + dw Function11d1d1 + dw Function11d1fc + + +Function11d0dd: ; 11d0dd (47:50dd) + ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) + sla a + ld hl, Unknown_11d208 + ld e, $1 + jr asm_11d11e + +Function11d0e9: ; 11d0e9 (47:50e9) + ld a, [wcd21] + sla a + ld hl, Unknown_11d21a + ld e, $2 + jr asm_11d11e + +Function11d0f5: ; 11d0f5 (47:50f5) + ld hl, Unknown_11d2be + ld a, [CreditsTimer] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + call Function3b3c + ld a, [CreditsTimer] + sla a + ld hl, Unknown_11d23e + ld e, $4 + jr asm_11d11e + +Function11d10f: ; 11d10f (47:510f) + ld a, $27 + call Function3b3c + ld a, [wcd25] + sla a + ld hl, Unknown_11d29e + ld e, $8 + +asm_11d11e: ; 11d11e (47:511e) + push de + ld e, a + ld d, $0 + add hl, de + push hl + pop de + ld hl, $4 + add hl, bc + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + pop de + ld a, e + call Function11d2ee + ret + +Function11d134: ; 11d134 (47:5134) + ld a, $27 + call Function3b3c + ld a, [wcd2a] + sla a + ld hl, Unknown_11d2b6 + ld e, $10 + jr asm_11d11e + +Function11d145: ; 11d145 (47:5145) + ld a, $27 + call Function3b3c + ld a, [wcd2c] + sla a + ld hl, Unknown_11d2ba + ld e, $20 + jr asm_11d11e + +Function11d156: ; 11d156 (47:5156) + ld a, $2a + call Function3b3c + ld a, [wcd4a] + sla a + sla a + sla a + add $18 + ld hl, $4 + add hl, bc + ld [hli], a + ld a, $30 + ld [hl], a + ld a, $1 + ld e, a + call Function11d2ee + ret + +Function11d175: ; 11d175 (47:5175) + ld a, [wcd4d] + cp $4 + jr z, .asm_11d180 + ld a, $28 + jr .asm_11d182 +.asm_11d180 + ld a, $26 +.asm_11d182 + call Function3b3c + ld a, [wcd4d] + cp $4 + jr z, .asm_11d1b1 + ld a, [wcd4c] + sla a + sla a + sla a + add $20 + ld hl, $4 + add hl, bc + ld [hli], a + ld a, [wcd4d] + sla a + sla a + sla a + sla a + add $48 + ld [hl], a + ld a, $2 + ld e, a + call Function11d2ee + ret +.asm_11d1b1 + ld a, [wcd4c] + sla a + sla a + sla a + ld e, a + sla a + sla a + add e + add $18 + ld hl, $4 + add hl, bc + ld [hli], a + ld a, $8a + ld [hl], a + ld a, $2 + ld e, a + call Function11d2ee + ret + +Function11d1d1: ; 11d1d1 (47:51d1) + ld d, $98 + ld a, $2c + jr asm_11d1db + +Function11d1d7: ; 11d1d7 (47:51d7) + ld d, $10 + ld a, $2b + +asm_11d1db: ; 11d1db (47:51db) + push de + call Function3b3c + ld a, [wcd4a] + sla a + sla a + sla a + ld e, a + sla a + add e + add $40 + ld hl, $5 + add hl, bc + ld [hld], a + pop af + ld [hl], a + ld a, $4 + ld e, a + call Function11d2ee + ret + +Function11d1fc: ; 11d1fc (47:51fc) + ld a, $26 + call Function3b3c + ld a, $8 + ld e, a + call Function11d2ee + ret +; 11d208 (47:5208) + +Unknown_11d208: ; 11d208 + db $0d, $1a + db $3d, $1a + db $6d, $1a + db $0d, $2a + db $3d, $2a + db $6d, $2a + db $0d, $8a + db $3d, $8a + db $6d, $8a + +Unknown_11d21a: ; 11d21a + db $0d, $42 + db $3d, $42 + db $6d, $42 + db $0d, $52 + db $3d, $52 + db $6d, $52 + db $0d, $62 + db $3d, $62 + db $6d, $62 + db $0d, $72 + db $3d, $72 + db $6d, $72 + db $0d, $82 + db $3d, $82 + db $6d, $82 + db $0d, $92 + db $3d, $92 + db $6d, $92 + +Unknown_11d23e: ; 11d23e + db $10, $48 + db $18, $48 + db $20, $48 + db $28, $48 + db $30, $48 + db $10, $58 + db $18, $58 + db $20, $58 + db $28, $58 + db $30, $58 + db $10, $68 + db $18, $68 + db $20, $68 + db $28, $68 + db $30, $68 + db $10, $78 + db $18, $78 + db $20, $78 + db $28, $78 + db $30, $78 + db $40, $48 + db $48, $48 + db $50, $48 + db $58, $48 + db $60, $48 + db $40, $58 + db $48, $58 + db $50, $58 + db $58, $58 + db $60, $58 + db $40, $68 + db $48, $68 + db $50, $68 + db $58, $68 + db $60, $68 + db $70, $48 + db $80, $48 + db $90, $48 + db $40, $78 + db $48, $78 + db $50, $78 + db $58, $78 + db $60, $78 + db $70, $58 + db $70, $68 + db $0d, $92 + db $3d, $92 + db $6d, $92 + +Unknown_11d29e: ; 11d29e + db $10, $50 + db $40, $50 + db $70, $50 + db $10, $60 + db $40, $60 + db $70, $60 + db $10, $70 + db $40, $70 + db $70, $70 + db $10, $80 + db $40, $80 + db $70, $80 + +Unknown_11d2b6: ; 11d2b6 + db $80, $50 + db $80, $60 + +Unknown_11d2ba: ; 11d2ba + db $20, $50 + db $20, $60 + +Unknown_11d2be: ; 11d2be + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $28, $28 + db $29, $26 + db $26, $26 + +Function11d2ee: ; 11d2ee (47:52ee) + ld hl, wcd24 + and [hl] + jr nz, .asm_11d316 + ld a, e + ld hl, wcd23 + and [hl] + jr z, .asm_11d30f + ld hl, $e + add hl, bc + ld a, [hl] + and a + jr z, .asm_11d305 + dec [hl] + ret +.asm_11d305 + ld a, $0 + ld [hld], a + ld a, $1 + xor [hl] + ld [hl], a + and a + jr nz, .asm_11d316 +.asm_11d30f + ld hl, $7 + add hl, bc + xor a + ld [hl], a + ret +.asm_11d316 + ld hl, $5 + add hl, bc + ld a, $b0 + sub [hl] + ld hl, $7 + add hl, bc + ld [hl], a + ret + +Function11d323: ; 11d323 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_11d33a + ld de, Unkn1Pals + ld bc, $0080 + call CopyBytes + pop af + ld [rSVBK], a + ret +; 11d33a + +Palette_11d33a: + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 31, 16, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 23, 17, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 31, 31, 31 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 + RGB 00, 00, 00 +; 11d3ba + +Function11d3ba: ; 11d3ba + ld a, [rSVBK] + push af + ld hl, BattleMonSpclDef + ld a, $0 + ld [wcd2d], a + ld [hli], a + ld a, $d8 + ld [wcd2e], a + ld [hl], a + ld a, $fe + ld [wcd2f], a + ld a, $54 + ld [wcd30], a + ld a, $a8 + ld [wcd31], a + ld a, $c6 + ld [wcd32], a + ld a, $4a + ld [wcd33], a + ld a, $c6 + ld [wcd34], a + ld hl, Unknown_11f23c + ld a, $2d + +Function11d3ef: ; 11d3ef + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + push hl + ld hl, Unkn1Pals + add hl, de + ld a, [wcd2d] + ld e, a + ld a, [wcd2e] + ld d, a + push bc +.asm_11d406 + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + ld a, $3 + ld [rSVBK], a + ld a, [hli] + push af + ld a, $5 + ld [rSVBK], a + pop af + ld [de], a + inc de + dec bc + ld a, c + or b + jr nz, .asm_11d406 + ld a, [wcd2f] + ld l, a + ld a, [wcd30] + ld h, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, l + ld [wcd2f], a + ld a, h + ld [wcd30], a + push bc + pop hl + ld c, $0 +.asm_11d43d + ld a, [hl] + cp $ff + jr z, .asm_11d453 + call Function11d493 + jr nz, .asm_11d44a + inc hl + jr .asm_11d43d + +.asm_11d44a + ld a, [hli] + ld [de], a + inc de + xor a + ld [de], a + inc de + inc c + jr .asm_11d43d + +.asm_11d453 + pop hl + ld b, $0 + add hl, bc + push hl + pop bc + ld a, [wcd31] + ld l, a + ld a, [wcd32] + ld h, a + ld a, c + ld [hli], a + ld a, b + ld [hli], a + ld a, l + ld [wcd31], a + ld a, h + ld [wcd32], a + ld a, [wcd33] + ld l, a + ld a, [wcd34] + ld h, a + ld a, e + ld [wcd2d], a + ld [hli], a + ld a, d + ld [wcd2e], a + ld [hli], a + ld a, l + ld [wcd33], a + ld a, h + ld [wcd34], a + pop hl + pop af + dec a + jr z, .asm_11d48f + jp Function11d3ef + +.asm_11d48f + pop af + ld [rSVBK], a + ret +; 11d493 + +Function11d493: ; 11d493 + push hl + push bc + push de + dec a + ld hl, rSVBK + ld e, $1 + ld [hl], e + call CheckSeenMon + ld hl, rSVBK + ld e, $5 + ld [hl], e + pop de + pop bc + pop hl + ret +; 11d4aa + +Function11d4aa: ; 11d4aa + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, Unknown_11daac + ld bc, Unknown_11f220 + xor a + ld [wcd2d], a + inc a + ld [wcd2e], a + ld a, $e +.asm_11d4c1 + push af + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push hl + ld hl, $0005 + add hl, de + ld a, [bc] +rept 2 + inc bc +endr + push bc +.asm_11d4cf + push af + push hl + ld a, [hli] + ld e, a + ld a, [hl] + ld d, a + ld hl, wd000 + add hl, de + ld a, [wcd2d] + ld [hli], a + inc a + ld [wcd2d], a + ld a, [wcd2e] + ld [hl], a + pop hl + ld de, $0008 + add hl, de + pop af + dec a + jr nz, .asm_11d4cf + ld hl, wcd2d + xor a + ld [hli], a + inc [hl] + pop bc + pop hl + pop af + dec a + jr nz, .asm_11d4c1 + pop af + ld [rSVBK], a + ret +; 11d4fe + + +Unknown_11d4fe: +; Pokemon sorted by kana. +; Notably, Rhydon is missing. + + dw Unknown_11d558 + dw Unknown_11d55f + dw Unknown_11d565 + dw Unknown_11d56c + dw Unknown_11d574 + dw Unknown_11d57f + dw Unknown_11d58e + dw Unknown_11d598 + dw Unknown_11d59f + dw Unknown_11d5a3 + dw Unknown_11d5b2 + dw Unknown_11d5bb + dw Unknown_11d5c0 + dw Unknown_11d5c8 + dw Unknown_11d5cb + dw Unknown_11d5cd + dw Unknown_11d5d1 + dw Unknown_11d5d4 + dw Unknown_11d5d6 + dw Unknown_11d5dc + dw Unknown_11d5e7 + dw Unknown_11d5ea + dw Unknown_11d5f7 + dw Unknown_11d5f9 + dw Unknown_11d5fc + dw Unknown_11d5fe + dw Unknown_11d60e + dw Unknown_11d61d + dw Unknown_11d62e + dw Unknown_11d636 + dw Unknown_11d63e + dw Unknown_11d649 + dw Unknown_11d64e + dw Unknown_11d651 + dw Unknown_11d656 + dw Unknown_11d65a + dw Unknown_11d660 + dw Unknown_11d662 + dw Unknown_11d665 + dw Unknown_11d66d + dw Unknown_11d671 + dw Unknown_11d674 + dw Unknown_11d678 + dw Unknown_11d67a + dw Unknown_11d67d + +Unknown_11d558: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, $ff +Unknown_11d55f: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, $ff +Unknown_11d565: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, $ff +Unknown_11d56c: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, $ff +Unknown_11d574: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, $ff +Unknown_11d57f: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, $ff +Unknown_11d58e: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, $ff +Unknown_11d598: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, $ff +Unknown_11d59f: db ABRA, GENGAR, TAUROS, $ff +Unknown_11d5a3: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, $ff +Unknown_11d5b2: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, $ff +Unknown_11d5bb: db SEADRA, SHELLDER, VAPOREON, DEWGONG, $ff +Unknown_11d5c0: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, $ff +Unknown_11d5c8: db SQUIRTLE, CELEBI, $ff +Unknown_11d5cb: db WOBBUFFET, $ff +Unknown_11d5cd: db DUGTRIO, HORSEA, EXEGGCUTE, $ff +Unknown_11d5d1: db CHIKORITA, CHINCHOU, $ff +Unknown_11d5d4: db SHUCKLE, $ff +Unknown_11d5d6: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, $ff +Unknown_11d5dc: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, $ff +Unknown_11d5e7: db ODDISH, EXEGGUTOR, $ff +Unknown_11d5ea: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, $ff +Unknown_11d5f7: db QUAGSIRE, $ff +Unknown_11d5f9: db NATU, XATU, $ff +Unknown_11d5fc: db DUNSPARCE, $ff +Unknown_11d5fe: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, $ff +Unknown_11d60e: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, $ff +Unknown_11d61d: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, $ff +Unknown_11d62e: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, $ff +Unknown_11d636: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, $ff +Unknown_11d63e: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, $ff +Unknown_11d649: db DRATINI, MEW, MEWTWO, MILTANK, $ff +Unknown_11d64e: db MISDREAVUS, SMOOCHUM, $ff +Unknown_11d651: db MEGANIUM, DITTO, TENTACOOL, MAREEP, $ff +Unknown_11d656: db FLAAFFY, VENOMOTH, TANGELA, $ff +Unknown_11d65a: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, $ff +Unknown_11d660: db KADABRA, $ff +Unknown_11d662: db LARVITAR, NOCTOWL, $ff +Unknown_11d665: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, $ff +Unknown_11d66d: db CHARMELEON, CHARIZARD, URSARING, $ff +Unknown_11d671: db JYNX, LUGIA, $ff +Unknown_11d674: db MAGNETON, LEDIAN, LEDYBA, $ff +Unknown_11d678: db VULPIX, $ff +Unknown_11d67a: db JUMPLUFF, TOTODILE, MACHOP +Unknown_11d67d: db $ff +; 11d67e + +GFX_11d67e: +INCBIN "gfx/pokedex/select_start.2bpp" +; 11d6de + +LZ_11d6de: +INCBIN "gfx/pokedex/slowpoke.2bpp.lz" +; 11da52 + +Strings_11da52: ; 11da52 + db "ポケモン@@" + db "タイプ@@@" + db "あいさつ@@" + db "ひと@@@@" + db "バトル@@@" + db "こえ@@@@" + db "かいわ@@@" + db "きもち@@@" + db "じょうたい@" + db "せいかつ@@" + db "しゅみ@@@" + db "こうどう@@" + db "じかん@@@" + db "むすび@@@" + db "あれこれ@@" +; 11daac + +Unknown_11daac: ; 11daac + dw Unknown_11dac8 + dw Unknown_11db58 + dw Unknown_11dc78 + dw Unknown_11dea0 + dw Unknown_11e0c8 + dw Unknown_11e2d8 + dw Unknown_11e4e8 + dw Unknown_11e710 + dw Unknown_11e920 + dw Unknown_11ea58 + dw Unknown_11eb90 + dw Unknown_11edb8 + dw Unknown_11eef0 + dw Unknown_11f100 + +Unknown_11dac8: ; 11dac8 + db "あく@@@", $26, $0, $0 + db "いわ@@@", $aa, $0, $0 + db "エスパー@", $da, $0, $0 + db "かくとう@", $4e, $1, $0 + db "くさ@@@", $ba, $1, $0 + db "ゴースト@", $e4, $1, $0 + db "こおり@@", $e6, $1, $0 + db "じめん@@", $68, $2, $0 + db "タイプ@@", $e8, $2, $0 + db "でんき@@", $8e, $3, $0 + db "どく@@@", $ae, $3, $0 + db "ドラゴン@", $bc, $3, $0 + db "ノーマル@", $22, $4, $0 + db "はがね@@", $36, $4, $0 + db "ひこう@@", $5e, $4, $0 + db "ほのお@@", $b2, $4, $0 + db "みず@@@", $f4, $4, $0 + db "むし@@@", $12, $5, $0 + +Unknown_11db58: ; 11db58 + db "ありがと@", $58, $0, $0 + db "ありがとう", $5a, $0, $0 + db "いくぜ!@", $80, $0, $0 + db "いくよ!@", $82, $0, $0 + db "いくわよ!", $84, $0, $0 + db "いやー@@", $a6, $0, $0 + db "おっす@@", $a, $1, $0 + db "おはつです", $22, $1, $0 + db "おめでとう", $2a, $1, $0 + db "ごめん@@", $f8, $1, $0 + db "ごめんよ@", $fa, $1, $0 + db "こらっ@@", $fc, $1, $0 + db "こんちは!", $a, $2, $0 + db "こんにちは", $10, $2, $0 + db "さようなら", $28, $2, $0 + db "サンキュー", $2e, $2, $0 + db "さんじょう", $30, $2, $0 + db "しっけい@", $48, $2, $0 + db "しつれい@", $4c, $2, $0 + db "じゃーね@", $6c, $2, $0 + db "すいません", $8c, $2, $0 + db "それじゃ@", $ca, $2, $0 + db "どうも@@", $a6, $3, $0 + db "なんじゃ@", $ee, $3, $0 + db "ハーイ@@", $2c, $4, $0 + db "はいはい@", $32, $4, $0 + db "バイバイ@", $34, $4, $0 + db "へイ@@@", $8a, $4, $0 + db "またね@@", $de, $4, $0 + db "もしもし@", $32, $5, $0 + db "やあ@@@", $3e, $5, $0 + db "やっほー@", $4e, $5, $0 + db "よう@@@", $62, $5, $0 + db "ようこそ@", $64, $5, $0 + db "よろしく@", $80, $5, $0 + db "らっしゃい", $94, $5, $0 + +Unknown_11dc78: ; 11dc78 + db "あいて@@", $1c, $0, $0 + db "あたし@@", $36, $0, $0 + db "あなた@@", $40, $0, $0 + db "あなたが@", $42, $0, $0 + db "あなたに@", $44, $0, $0 + db "あなたの@", $46, $0, $0 + db "あなたは@", $48, $0, $0 + db "あなたを@", $4a, $0, $0 + db "おかあさん", $e8, $0, $0 + db "おじいさん", $fc, $0, $0 + db "おじさん@", $2, $1, $0 + db "おとうさん", $e, $1, $0 + db "おとこのこ", $10, $1, $0 + db "おとな@@", $14, $1, $0 + db "おにいさん", $16, $1, $0 + db "おねえさん", $18, $1, $0 + db "おばあさん", $1c, $1, $0 + db "おばさん@", $20, $1, $0 + db "おれさま@", $34, $1, $0 + db "おんなのこ", $3a, $1, $0 + db "ガール@@", $40, $1, $0 + db "かぞく@@", $52, $1, $0 + db "かのじょ@", $72, $1, $0 + db "かれ@@@", $7c, $1, $0 + db "きみ@@@", $9a, $1, $0 + db "きみが@@", $9c, $1, $0 + db "きみに@@", $9e, $1, $0 + db "きみの@@", $a0, $1, $0 + db "きみは@@", $a2, $1, $0 + db "きみを@@", $a4, $1, $0 + db "ギャル@@", $ae, $1, $0 + db "きょうだい", $b2, $1, $0 + db "こども@@", $f0, $1, $0 + db "じぶん@@", $54, $2, $0 + db "じぶんが@", $56, $2, $0 + db "じぶんに@", $58, $2, $0 + db "じぶんの@", $5a, $2, $0 + db "じぶんは@", $5c, $2, $0 + db "じぶんを@", $5e, $2, $0 + db "だれ@@@", $18, $3, $0 + db "だれか@@", $1a, $3, $0 + db "だれが@@", $1c, $3, $0 + db "だれに@@", $1e, $3, $0 + db "だれの@@", $20, $3, $0 + db "だれも@@", $22, $3, $0 + db "だれを@@", $24, $3, $0 + db "ちゃん@@", $38, $3, $0 + db "ともだち@", $b8, $3, $0 + db "なかま@@", $d4, $3, $0 + db "ひと@@@", $62, $4, $0 + db "ボーイ@@", $98, $4, $0 + db "ボク@@@", $a0, $4, $0 + db "ボクが@@", $a2, $4, $0 + db "ボクに@@", $a4, $4, $0 + db "ボクの@@", $a6, $4, $0 + db "ボクは@@", $a8, $4, $0 + db "ボクを@@", $aa, $4, $0 + db "みんな@@", $4, $5, $0 + db "みんなが@", $6, $5, $0 + db "みんなに@", $8, $5, $0 + db "みんなの@", $a, $5, $0 + db "みんなは@", $c, $5, $0 + db "ライバル@", $8a, $5, $0 + db "わたし@@", $c2, $5, $0 + db "わたしが@", $c4, $5, $0 + db "わたしに@", $c6, $5, $0 + db "わたしの@", $c8, $5, $0 + db "わたしは@", $ca, $5, $0 + db "わたしを@", $cc, $5, $0 + +Unknown_11dea0: ; 11dea0 + db "あいしょう", $18, $0, $0 + db "いけ!@@", $88, $0, $0 + db "いちばん@", $96, $0, $0 + db "かくご@@", $4c, $1, $0 + db "かたせて@", $54, $1, $0 + db "かち@@@", $56, $1, $0 + db "かつ@@@", $58, $1, $0 + db "かった@@", $60, $1, $0 + db "かったら@", $62, $1, $0 + db "かって@@", $64, $1, $0 + db "かてない@", $66, $1, $0 + db "かてる@@", $68, $1, $0 + db "かなわない", $70, $1, $0 + db "きあい@@", $84, $1, $0 + db "きめた@@", $a8, $1, $0 + db "きりふだ@", $b6, $1, $0 + db "くらえ@@", $c2, $1, $0 + db "こい!@@", $da, $1, $0 + db "こうげき@", $e0, $1, $0 + db "こうさん@", $e2, $1, $0 + db "こんじょう", $8, $2, $0 + db "さいのう@", $16, $2, $0 + db "さくせん@", $1a, $2, $0 + db "さばき@@", $22, $2, $0 + db "しょうぶ@", $7e, $2, $0 + db "しょうり@", $80, $2, $0 + db "せめ@@@", $b4, $2, $0 + db "センス@@", $b6, $2, $0 + db "たいせん@", $e6, $2, $0 + db "たたかい@", $f6, $2, $0 + db "ちから@@", $32, $3, $0 + db "チャレンジ", $36, $3, $0 + db "つよい@@", $58, $3, $0 + db "つよすぎ@", $5a, $3, $0 + db "つらい@@", $5c, $3, $0 + db "つらかった", $5e, $3, $0 + db "てかげん@", $6c, $3, $0 + db "てき@@@", $6e, $3, $0 + db "てんさい@", $90, $3, $0 + db "でんせつ@", $94, $3, $0 + db "トレーナー", $c6, $3, $0 + db "にげ@@@", $4, $4, $0 + db "ぬるい@@", $10, $4, $0 + db "ねらう@@", $16, $4, $0 + db "バトル@@", $4a, $4, $0 + db "ファイト@", $72, $4, $0 + db "ふっかつ@", $78, $4, $0 + db "ポイント@", $94, $4, $0 + db "ポケモン@", $ac, $4, $0 + db "ほんき@@", $bc, $4, $0 + db "まいった!", $c4, $4, $0 + db "まけ@@@", $c8, $4, $0 + db "まけたら@", $ca, $4, $0 + db "まけて@@", $cc, $4, $0 + db "まける@@", $ce, $4, $0 + db "まもり@@", $ea, $4, $0 + db "みかた@@", $f2, $4, $0 + db "みとめない", $fe, $4, $0 + db "みとめる@", $0, $5, $0 + db "むてき@@", $16, $5, $0 + db "もらった!", $3c, $5, $0 + db "よゆう@@", $7a, $5, $0 + db "よわい@@", $82, $5, $0 + db "よわすぎ@", $84, $5, $0 + db "らくしょう", $8e, $5, $0 + db "りーダー@", $9e, $5, $0 + db "ルール@@", $a0, $5, $0 + db "レべル@@", $a6, $5, $0 + db "わざ@@@", $be, $5, $0 + +Unknown_11e0c8: ; 11e0c8 + db "!@@@@", $0, $0, $0 + db "!!@@@", $2, $0, $0 + db "!?@@@", $4, $0, $0 + db "?@@@@", $6, $0, $0 + db "…@@@@", $8, $0, $0 + db "…!@@@", $a, $0, $0 + db "………@@", $c, $0, $0 + db "ー@@@@", $e, $0, $0 + db "ーーー@@", $10, $0, $0 + db "あーあ@@", $14, $0, $0 + db "あーん@@", $16, $0, $0 + db "あははー@", $52, $0, $0 + db "あら@@@", $54, $0, $0 + db "いえ@@@", $72, $0, $0 + db "イエス@@", $74, $0, $0 + db "うう@@@", $ac, $0, $0 + db "うーん@@", $ae, $0, $0 + db "うおー!@", $b0, $0, $0 + db "うおりゃー", $b2, $0, $0 + db "うひょー@", $bc, $0, $0 + db "うふふ@@", $be, $0, $0 + db "うわー@@", $ca, $0, $0 + db "うわーん@", $cc, $0, $0 + db "ええ@@@", $d2, $0, $0 + db "えー@@@", $d4, $0, $0 + db "えーん@@", $d6, $0, $0 + db "えへへ@@", $dc, $0, $0 + db "おいおい@", $e0, $0, $0 + db "おお@@@", $e2, $0, $0 + db "おっと@@", $c, $1, $0 + db "がーん@@", $42, $1, $0 + db "キャー@@", $aa, $1, $0 + db "ギャー@@", $ac, $1, $0 + db "ぐふふふふ", $bc, $1, $0 + db "げっ@@@", $ce, $1, $0 + db "しくしく@", $3e, $2, $0 + db "ちえっ@@", $2e, $3, $0 + db "てへ@@@", $86, $3, $0 + db "ノー@@@", $20, $4, $0 + db "はあー@@", $2a, $4, $0 + db "はい@@@", $30, $4, $0 + db "はっはっは", $48, $4, $0 + db "ひいー@@", $56, $4, $0 + db "ひゃあ@@", $6a, $4, $0 + db "ふっふっふ", $7c, $4, $0 + db "ふにゃ@@", $7e, $4, $0 + db "ププ@@@", $80, $4, $0 + db "ふふん@@", $82, $4, $0 + db "ふん@@@", $88, $4, $0 + db "へっへっへ", $8e, $4, $0 + db "へへー@@", $90, $4, $0 + db "ほーほほほ", $9c, $4, $0 + db "ほら@@@", $b6, $4, $0 + db "まあ@@@", $c0, $4, $0 + db "むきー!!", $10, $5, $0 + db "むふー@@", $18, $5, $0 + db "むふふ@@", $1a, $5, $0 + db "むむ@@@", $1c, $5, $0 + db "よーし@@", $6a, $5, $0 + db "よし!@@", $72, $5, $0 + db "ラララ@@", $98, $5, $0 + db "わーい@@", $ac, $5, $0 + db "わーん!!", $b0, $5, $0 + db "ワォ@@@", $b2, $5, $0 + db "わっ!!@", $ce, $5, $0 + db "わははは!", $d0, $5, $0 + +Unknown_11e2d8: ; 11e2d8 + db "あのね@@", $50, $0, $0 + db "あんまり@", $6e, $0, $0 + db "いじわる@", $8e, $0, $0 + db "うそ@@@", $b6, $0, $0 + db "うむ@@@", $c4, $0, $0 + db "おーい@@", $e4, $0, $0 + db "おすすめ@", $6, $1, $0 + db "おばかさん", $1e, $1, $0 + db "かなり@@", $6e, $1, $0 + db "から@@@", $7a, $1, $0 + db "きぶん@@", $98, $1, $0 + db "けど@@@", $d6, $1, $0 + db "こそ@@@", $ea, $1, $0 + db "こと@@@", $ee, $1, $0 + db "さあ@@@", $12, $2, $0 + db "さっぱり@", $1e, $2, $0 + db "さて@@@", $20, $2, $0 + db "じゅうぶん", $72, $2, $0 + db "すぐ@@@", $94, $2, $0 + db "すごく@@", $98, $2, $0 + db "すこしは@", $9a, $2, $0 + db "すっっごい", $a0, $2, $0 + db "ぜーんぜん", $b0, $2, $0 + db "ぜったい@", $b2, $2, $0 + db "それで@@", $ce, $2, $0 + db "だけ@@@", $f2, $2, $0 + db "だって@@", $fc, $2, $0 + db "たぶん@@", $6, $3, $0 + db "たら@@@", $14, $3, $0 + db "ちょー@@", $3a, $3, $0 + db "ちょっと@", $3c, $3, $0 + db "ったら@@", $4e, $3, $0 + db "って@@@", $50, $3, $0 + db "ていうか@", $62, $3, $0 + db "でも@@@", $88, $3, $0 + db "どうしても", $9c, $3, $0 + db "とうぜん@", $a0, $3, $0 + db "どうぞ@@", $a2, $3, $0 + db "とりあえず", $be, $3, $0 + db "なあ@@@", $cc, $3, $0 + db "なんて@@", $f4, $3, $0 + db "なんでも@", $fc, $3, $0 + db "なんとか@", $fe, $3, $0 + db "には@@@", $8, $4, $0 + db "バッチり@", $46, $4, $0 + db "ばりばり@", $52, $4, $0 + db "ほど@@@", $b0, $4, $0 + db "ほんと@@", $be, $4, $0 + db "まさに@@", $d0, $4, $0 + db "マジ@@@", $d2, $4, $0 + db "マジで@@", $d4, $4, $0 + db "まったく@", $e4, $4, $0 + db "まで@@@", $e6, $4, $0 + db "まるで@@", $ec, $4, $0 + db "ムード@@", $e, $5, $0 + db "むしろ@@", $14, $5, $0 + db "めちゃ@@", $24, $5, $0 + db "めっぽう@", $28, $5, $0 + db "もう@@@", $2c, $5, $0 + db "モード@@", $2e, $5, $0 + db "もっと@@", $36, $5, $0 + db "もはや@@", $38, $5, $0 + db "やっと@@", $4a, $5, $0 + db "やっぱり@", $4c, $5, $0 + db "より@@@", $7c, $5, $0 + db "れば@@@", $a4, $5, $0 + +Unknown_11e4e8: ; 11e4e8 + db "あいたい@", $1a, $0, $0 + db "あそびたい", $32, $0, $0 + db "いきたい@", $7c, $0, $0 + db "うかれて@", $b4, $0, $0 + db "うれしい@", $c6, $0, $0 + db "うれしさ@", $c8, $0, $0 + db "エキサイト", $d8, $0, $0 + db "えらい@@", $de, $0, $0 + db "おかしい@", $ec, $0, $0 + db "ォッケー@", $8, $1, $0 + db "かえりたい", $48, $1, $0 + db "がっくし@", $5a, $1, $0 + db "かなしい@", $6c, $1, $0 + db "がんばって", $80, $1, $0 + db "きがしない", $86, $1, $0 + db "きがする@", $88, $1, $0 + db "ききたい@", $8a, $1, $0 + db "きになる@", $90, $1, $0 + db "きのせい@", $96, $1, $0 + db "きらい@@", $b4, $1, $0 + db "くやしい@", $be, $1, $0 + db "くやしさ@", $c0, $1, $0 + db "さみしい@", $24, $2, $0 + db "ざんねん@", $32, $2, $0 + db "しあわせ@", $36, $2, $0 + db "したい@@", $44, $2, $0 + db "したくない", $46, $2, $0 + db "しまった@", $64, $2, $0 + db "しょんぼり", $82, $2, $0 + db "すき@@@", $92, $2, $0 + db "だいきらい", $da, $2, $0 + db "たいくつ@", $dc, $2, $0 + db "だいじ@@", $de, $2, $0 + db "だいすき@", $e4, $2, $0 + db "たいへん@", $ea, $2, $0 + db "たのしい@", $0, $3, $0 + db "たのしすぎ", $2, $3, $0 + db "たべたい@", $8, $3, $0 + db "ダメダメ@", $e, $3, $0 + db "たりない@", $16, $3, $0 + db "ちくしょー", $34, $3, $0 + db "どうしよう", $9e, $3, $0 + db "ドキドキ@", $ac, $3, $0 + db "ナイス@@", $d0, $3, $0 + db "のみたい@", $26, $4, $0 + db "びっくり@", $60, $4, $0 + db "ふあん@@", $74, $4, $0 + db "ふらふら@", $86, $4, $0 + db "ほしい@@", $ae, $4, $0 + db "ボロボロ@", $b8, $4, $0 + db "まだまだ@", $e0, $4, $0 + db "まてない@", $e8, $4, $0 + db "まんぞく@", $f0, $4, $0 + db "みたい@@", $f8, $4, $0 + db "めずらしい", $22, $5, $0 + db "メラメラ@", $2a, $5, $0 + db "やだ@@@", $46, $5, $0 + db "やったー@", $48, $5, $0 + db "やばい@@", $50, $5, $0 + db "やばすぎる", $52, $5, $0 + db "やられた@", $54, $5, $0 + db "やられて@", $56, $5, $0 + db "よかった@", $6e, $5, $0 + db "ラブラブ@", $96, $5, $0 + db "ロマン@@", $a8, $5, $0 + db "ろんがい@", $aa, $5, $0 + db "わから@@", $b4, $5, $0 + db "わかり@@", $b6, $5, $0 + db "わくわく@", $ba, $5, $0 + +Unknown_11e710: ; 11e710 + db "あつい@@", $38, $0, $0 + db "あった@@", $3a, $0, $0 + db "あり@@@", $56, $0, $0 + db "ある@@@", $5e, $0, $0 + db "あわてて@", $6a, $0, $0 + db "いい@@@", $70, $0, $0 + db "いか@@@", $76, $0, $0 + db "イカス@@", $78, $0, $0 + db "いきおい@", $7a, $0, $0 + db "いける@@", $8a, $0, $0 + db "いじょう@", $8c, $0, $0 + db "いそがしい", $90, $0, $0 + db "いっしょに", $9a, $0, $0 + db "いっぱい@", $9c, $0, $0 + db "いない@@", $a0, $0, $0 + db "いや@@@", $a4, $0, $0 + db "いる@@@", $a8, $0, $0 + db "うまい@@", $c0, $0, $0 + db "うまく@@", $c2, $0, $0 + db "おおきい@", $e6, $0, $0 + db "おくれ@@", $f2, $0, $0 + db "おしい@@", $fa, $0, $0 + db "おもしろい", $2c, $1, $0 + db "おもしろく", $2e, $1, $0 + db "かっこいい", $5c, $1, $0 + db "かわいい@", $7e, $1, $0 + db "かんぺき@", $82, $1, $0 + db "けっこう@", $d0, $1, $0 + db "げんき@@", $d8, $1, $0 + db "こわい@@", $6, $2, $0 + db "さいこう@", $14, $2, $0 + db "さむい@@", $26, $2, $0 + db "さわやか@", $2c, $2, $0 + db "しかたない", $38, $2, $0 + db "すごい@@", $96, $2, $0 + db "すごすぎ@", $9c, $2, $0 + db "すてき@@", $a4, $2, $0 + db "たいした@", $e0, $2, $0 + db "だいじょぶ", $e2, $2, $0 + db "たかい@@", $ec, $2, $0 + db "ただしい@", $f8, $2, $0 + db "だめ@@@", $c, $3, $0 + db "ちいさい@", $2c, $3, $0 + db "ちがう@@", $30, $3, $0 + db "つかれ@@", $48, $3, $0 + db "とくい@@", $b0, $3, $0 + db "とまらない", $b6, $3, $0 + db "ない@@@", $ce, $3, $0 + db "なかった@", $d2, $3, $0 + db "なし@@@", $d8, $3, $0 + db "なって@@", $dc, $3, $0 + db "はやい@@", $50, $4, $0 + db "ひかる@@", $5a, $4, $0 + db "ひくい@@", $5c, $4, $0 + db "ひどい@@", $64, $4, $0 + db "ひとりで@", $66, $4, $0 + db "ひま@@@", $68, $4, $0 + db "ふそく@@", $76, $4, $0 + db "へた@@@", $8c, $4, $0 + db "まちがって", $e2, $4, $0 + db "やさしい@", $42, $5, $0 + db "よく@@@", $70, $5, $0 + db "よわって@", $86, $5, $0 + db "らく@@@", $8c, $5, $0 + db "らしい@@", $90, $5, $0 + db "わるい@@", $d4, $5, $0 + +Unknown_11e920: ; 11e920 + db "アルバイト", $64, $0, $0 + db "うち@@@", $ba, $0, $0 + db "おかね@@", $ee, $0, $0 + db "おこづかい", $f4, $0, $0 + db "おふろ@@", $24, $1, $0 + db "がっこう@", $5e, $1, $0 + db "きねん@@", $92, $1, $0 + db "グループ@", $c6, $1, $0 + db "ゲット@@", $d2, $1, $0 + db "こうかん@", $de, $1, $0 + db "しごと@@", $40, $2, $0 + db "しゅぎょう", $74, $2, $0 + db "じゅぎょう", $76, $2, $0 + db "じゅく@@", $78, $2, $0 + db "しんか@@", $88, $2, $0 + db "ずかん@@", $90, $2, $0 + db "せいかつ@", $ae, $2, $0 + db "せんせい@", $b8, $2, $0 + db "センター@", $ba, $2, $0 + db "タワー@@", $28, $3, $0 + db "つうしん@", $40, $3, $0 + db "テスト@@", $7e, $3, $0 + db "テレビ@@", $8c, $3, $0 + db "でんわ@@", $96, $3, $0 + db "どうぐ@@", $9a, $3, $0 + db "トレード@", $c4, $3, $0 + db "なまえ@@", $e8, $3, $0 + db "ニュース@", $a, $4, $0 + db "にんき@@", $c, $4, $0 + db "パーティー", $2e, $4, $0 + db "べんきょう", $92, $4, $0 + db "マシン@@", $d6, $4, $0 + db "めいし@@", $1e, $5, $0 + db "メッセージ", $26, $5, $0 + db "もようがえ", $3a, $5, $0 + db "ゆめ@@@", $5a, $5, $0 + db "ようちえん", $66, $5, $0 + db "ラジォ@@", $92, $5, $0 + db "ワールド@", $ae, $5, $0 + +Unknown_11ea58: ; 11ea58 + db "アイドル@", $1e, $0, $0 + db "アニメ@@", $4c, $0, $0 + db "うた@@@", $b8, $0, $0 + db "えいが@@", $d0, $0, $0 + db "おかし@@", $ea, $0, $0 + db "おしゃべり", $4, $1, $0 + db "おままごと", $28, $1, $0 + db "おもちゃ@", $30, $1, $0 + db "おんがく@", $38, $1, $0 + db "カード@@", $3e, $1, $0 + db "かいもの@", $46, $1, $0 + db "グルメ@@", $c8, $1, $0 + db "ゲーム@@", $cc, $1, $0 + db "ざっし@@", $1c, $2, $0 + db "さんぽ@@", $34, $2, $0 + db "じてんしゃ", $50, $2, $0 + db "しゅみ@@", $7a, $2, $0 + db "スポーツ@", $a8, $2, $0 + db "ダイエット", $d8, $2, $0 + db "たからもの", $f0, $2, $0 + db "たび@@@", $4, $3, $0 + db "ダンス@@", $2a, $3, $0 + db "つり@@@", $60, $3, $0 + db "デート@@", $6a, $3, $0 + db "でんしゃ@", $92, $3, $0 + db "ぬいぐるみ", $e, $4, $0 + db "パソコン@", $3e, $4, $0 + db "はな@@@", $4c, $4, $0 + db "ヒーロー@", $58, $4, $0 + db "ひるね@@", $6e, $4, $0 + db "ヒロイン@", $70, $4, $0 + db "ぼうけん@", $96, $4, $0 + db "ボード@@", $9a, $4, $0 + db "ボール@@", $9e, $4, $0 + db "ほん@@@", $ba, $4, $0 + db "マンガ@@", $ee, $4, $0 + db "やくそく@", $40, $5, $0 + db "やすみ@@", $44, $5, $0 + db "よてい@@", $74, $5, $0 + +Unknown_11eb90: ; 11eb90 + db "あう@@@", $20, $0, $0 + db "あきらめ@", $24, $0, $0 + db "あげる@@", $28, $0, $0 + db "あせる@@", $2e, $0, $0 + db "あそび@@", $30, $0, $0 + db "あそぶ@@", $34, $0, $0 + db "あつめ@@", $3e, $0, $0 + db "あるき@@", $60, $0, $0 + db "あるく@@", $62, $0, $0 + db "いく@@@", $7e, $0, $0 + db "いけ@@@", $86, $0, $0 + db "おき@@@", $f0, $0, $0 + db "おこり@@", $f6, $0, $0 + db "おこる@@", $f8, $0, $0 + db "おしえ@@", $fe, $0, $0 + db "おしえて@", $0, $1, $0 + db "おねがい@", $1a, $1, $0 + db "おぼえ@@", $26, $1, $0 + db "かえる@@", $4a, $1, $0 + db "がまん@@", $74, $1, $0 + db "きく@@@", $8c, $1, $0 + db "きたえ@@", $8e, $1, $0 + db "きめ@@@", $a6, $1, $0 + db "くる@@@", $c4, $1, $0 + db "さがし@@", $18, $2, $0 + db "さわぎ@@", $2a, $2, $0 + db "した@@@", $42, $2, $0 + db "しって@@", $4a, $2, $0 + db "して@@@", $4e, $2, $0 + db "しない@@", $52, $2, $0 + db "しまう@@", $60, $2, $0 + db "じまん@@", $66, $2, $0 + db "しらない@", $84, $2, $0 + db "しる@@@", $86, $2, $0 + db "しんじて@", $8a, $2, $0 + db "する@@@", $aa, $2, $0 + db "たべる@@", $a, $3, $0 + db "つかう@@", $42, $3, $0 + db "つかえ@@", $44, $3, $0 + db "つかって@", $46, $3, $0 + db "できない@", $70, $3, $0 + db "できる@@", $72, $3, $0 + db "でない@@", $84, $3, $0 + db "でる@@@", $8a, $3, $0 + db "なげる@@", $d6, $3, $0 + db "なやみ@@", $ea, $3, $0 + db "ねられ@@", $18, $4, $0 + db "ねる@@@", $1a, $4, $0 + db "のがし@@", $24, $4, $0 + db "のむ@@@", $28, $4, $0 + db "はしり@@", $3a, $4, $0 + db "はしる@@", $3c, $4, $0 + db "はたらき@", $40, $4, $0 + db "はたらく@", $42, $4, $0 + db "はまって@", $4e, $4, $0 + db "ぶつけ@@", $7a, $4, $0 + db "ほめ@@@", $b4, $4, $0 + db "みせて@@", $f6, $4, $0 + db "みて@@@", $fc, $4, $0 + db "みる@@@", $2, $5, $0 + db "めざす@@", $20, $5, $0 + db "もって@@", $34, $5, $0 + db "ゆずる@@", $58, $5, $0 + db "ゆるす@@", $5c, $5, $0 + db "ゆるせ@@", $5e, $5, $0 + db "られない@", $9a, $5, $0 + db "られる@@", $9c, $5, $0 + db "わかる@@", $b8, $5, $0 + db "わすれ@@", $c0, $5, $0 + +Unknown_11edb8: ; 11edb8 + db "あき@@@", $22, $0, $0 + db "あさ@@@", $2a, $0, $0 + db "あした@@", $2c, $0, $0 + db "いちにち@", $94, $0, $0 + db "いつか@@", $98, $0, $0 + db "いつも@@", $9e, $0, $0 + db "いま@@@", $a2, $0, $0 + db "えいえん@", $ce, $0, $0 + db "おととい@", $12, $1, $0 + db "おわり@@", $36, $1, $0 + db "かようび@", $78, $1, $0 + db "きのう@@", $94, $1, $0 + db "きょう@@", $b0, $1, $0 + db "きんようび", $b8, $1, $0 + db "げつようび", $d4, $1, $0 + db "このあと@", $f4, $1, $0 + db "このまえ@", $f6, $1, $0 + db "こんど@@", $c, $2, $0 + db "じかん@@", $3c, $2, $0 + db "じゅうねん", $70, $2, $0 + db "すいようび", $8e, $2, $0 + db "スタート@", $9e, $2, $0 + db "ずっと@@", $a2, $2, $0 + db "ストップ@", $a6, $2, $0 + db "そのうち@", $c4, $2, $0 + db "ついに@@", $3e, $3, $0 + db "つぎ@@@", $4a, $3, $0 + db "どようび@", $ba, $3, $0 + db "なつ@@@", $da, $3, $0 + db "にちようび", $6, $4, $0 + db "はじめ@@", $38, $4, $0 + db "はる@@@", $54, $4, $0 + db "ひる@@@", $6c, $4, $0 + db "ふゆ@@@", $84, $4, $0 + db "まいにち@", $c6, $4, $0 + db "もくようび", $30, $5, $0 + db "よなか@@", $76, $5, $0 + db "よる@@@", $7e, $5, $0 + db "らいしゅう", $88, $5, $0 + +Unknown_11eef0: ; 11eef0 + db "いたします", $92, $0, $0 + db "おります@", $32, $1, $0 + db "か!?@@", $3c, $1, $0 + db "かい?@@", $44, $1, $0 + db "かしら?@", $50, $1, $0 + db "かな?@@", $6a, $1, $0 + db "かも@@@", $76, $1, $0 + db "くれ@@@", $ca, $1, $0 + db "ございます", $e8, $1, $0 + db "しがち@@", $3a, $2, $0 + db "します@@", $62, $2, $0 + db "じゃ@@@", $6a, $2, $0 + db "じゃん@@", $6e, $2, $0 + db "しよう@@", $7c, $2, $0 + db "ぜ!@@@", $ac, $2, $0 + db "ぞ!@@@", $bc, $2, $0 + db "た@@@@", $d4, $2, $0 + db "だ@@@@", $d6, $2, $0 + db "だからね@", $ee, $2, $0 + db "だぜ@@@", $f4, $2, $0 + db "だった@@", $fa, $2, $0 + db "だね@@@", $fe, $2, $0 + db "だよ@@@", $10, $3, $0 + db "だよねー!", $12, $3, $0 + db "だわ@@@", $26, $3, $0 + db "ッス@@@", $4c, $3, $0 + db "ってかんじ", $52, $3, $0 + db "っぱなし@", $54, $3, $0 + db "つもり@@", $56, $3, $0 + db "ていない@", $64, $3, $0 + db "ている@@", $66, $3, $0 + db "でーす!@", $68, $3, $0 + db "でした@@", $74, $3, $0 + db "でしょ?@", $76, $3, $0 + db "でしょー!", $78, $3, $0 + db "です@@@", $7a, $3, $0 + db "ですか?@", $7c, $3, $0 + db "ですよ@@", $80, $3, $0 + db "ですわ@@", $82, $3, $0 + db "どうなの?", $a4, $3, $0 + db "どうよ?@", $a8, $3, $0 + db "とかいって", $aa, $3, $0 + db "なの@@@", $e0, $3, $0 + db "なのか@@", $e2, $3, $0 + db "なのだ@@", $e4, $3, $0 + db "なのよ@@", $e6, $3, $0 + db "なんだね@", $f2, $3, $0 + db "なんです@", $f8, $3, $0 + db "なんてね@", $fa, $3, $0 + db "ね@@@@", $12, $4, $0 + db "ねー@@@", $14, $4, $0 + db "の@@@@", $1c, $4, $0 + db "の?@@@", $1e, $4, $0 + db "ばっかり@", $44, $4, $0 + db "まーす!@", $c2, $4, $0 + db "ます@@@", $d8, $4, $0 + db "ますわ@@", $da, $4, $0 + db "ません@@", $dc, $4, $0 + db "みたいな@", $fa, $4, $0 + db "よ!@@@", $60, $5, $0 + db "よー@@@", $68, $5, $0 + db "よーん@@", $6c, $5, $0 + db "よね@@@", $78, $5, $0 + db "るよ@@@", $a2, $5, $0 + db "わけ@@@", $bc, $5, $0 + db "わよ!@@", $d2, $5, $0 + +Unknown_11f100: ; 11f100 + db "ああ@@@", $12, $0, $0 + db "あっち@@", $3c, $0, $0 + db "あの@@@", $4e, $0, $0 + db "ありゃ@@", $5c, $0, $0 + db "あれ@@@", $66, $0, $0 + db "あれは@@", $68, $0, $0 + db "あんな@@", $6c, $0, $0 + db "こう@@@", $dc, $1, $0 + db "こっち@@", $ec, $1, $0 + db "この@@@", $f2, $1, $0 + db "こりゃ@@", $fe, $1, $0 + db "これ@@@", $0, $2, $0 + db "これだ!@", $2, $2, $0 + db "これは@@", $4, $2, $0 + db "こんな@@", $e, $2, $0 + db "そう@@@", $be, $2, $0 + db "そっち@@", $c0, $2, $0 + db "その@@@", $c2, $2, $0 + db "そりゃ@@", $c6, $2, $0 + db "それ@@@", $c8, $2, $0 + db "それだ!@", $cc, $2, $0 + db "それは@@", $d0, $2, $0 + db "そんな@@", $d2, $2, $0 + db "どう@@@", $98, $3, $0 + db "どっち@@", $b2, $3, $0 + db "どの@@@", $b4, $3, $0 + db "どりゃ@@", $c0, $3, $0 + db "どれ@@@", $c2, $3, $0 + db "どれを@@", $c8, $3, $0 + db "どんな@@", $ca, $3, $0 + db "なに@@@", $de, $3, $0 + db "なんか@@", $ec, $3, $0 + db "なんだ@@", $f0, $3, $0 + db "なんで@@", $f6, $3, $0 + db "なんなんだ", $0, $4, $0 + db "なんの@@", $2, $4, $0 +; 11f220 + +Unknown_11f220: + db $12, $01, $24, $02 + db $45, $05, $45, $05 + db $42, $05, $42, $05 + db $45, $05, $42, $05 + db $27, $03, $27, $03 + db $45, $05, $27, $03 + db $42, $05, $24, $02 + +Unknown_11f23c: + db $12, $00, $2f, $00 + db $70, $00, $1e, $00 + db $ac, $00, $11, $00 + db $ce, $00, $09, $00 + db $e0, $00, $2e, $00 + db $3c, $01, $24, $00 + db $84, $01, $1b, $00 + db $ba, $01, $09, $00 + db $cc, $01, $07, $00 + db $da, $01, $1c, $00 + db $12, $02, $12, $00 + db $36, $02, $2b, $00 + db $8c, $02, $10, $00 + db $ac, $02, $08, $00 + db $bc, $02, $0c, $00 + db $d4, $02, $2c, $00 + db $2c, $03, $09, $00 + db $3e, $03, $12, $00 + db $62, $03, $1b, $00 + db $98, $03, $1a, $00 + db $cc, $03, $1c, $00 + db $04, $04, $05, $00 + db $0e, $04, $02, $00 + db $12, $04, $05, $00 + db $1c, $04, $07, $00 + db $2a, $04, $16, $00 + db $56, $04, $0e, $00 + db $72, $04, $0c, $00 + db $8a, $04, $05, $00 + db $94, $04, $16, $00 + db $c0, $04, $19, $00 + db $f2, $04, $0e, $00 + db $0e, $05, $08, $00 + db $1e, $05, $07, $00 + db $2c, $05, $09, $00 + db $3e, $05, $0d, $00 + db $58, $05, $04, $00 + db $60, $05, $14, $00 + db $88, $05, $0b, $00 + db $9e, $05, $01, $00 + db $a0, $05, $02, $00 + db $a4, $05, $02, $00 + db $a8, $05, $02, $00 + db $ac, $05, $15, $00 + db $00, $00, $09, $00 + +BTTrainerTextSelectorTable: + db 0, 1, 1, 0, 0, 1 + db 0, 1, 0, 0, 1, 0 + db 0, 1, 0, 0, 0, 1 + db 0, 0, 1, 0, 0, 0 + db 1, 1, 0, 1, 1, 0 + db 0, 0, 1, 1, 1, 0 + db 0, 0, 1, 0, 0, 0 + db 0, 0, 0, 0, 0, 0 + db 0, 0, 0, 0, 1, 0 + db 1, 0, 1, 0, 0, 1 + db 1, 1, 0, 0, 0, 1 + + +BTTrainerTexts: ; 11f332 + dw BTTrainerGreetings + dw BTTrainerPlayerLostTexts + dw BTTrainerPlayerWonTexts + +BTTrainerGreetings: ; 11f338 + dw BattleTowerTextJump_0x11f42e + dw BattleTowerTextJump_0x11f43d + dw UnknownText_0x11f44c + dw UnknownText_0x11f45b + dw UnknownText_0x11f46a + dw UnknownText_0x11f479 + dw UnknownText_0x11f488 + dw UnknownText_0x11f497 + dw UnknownText_0x11f4a6 + dw UnknownText_0x11f4b5 + dw UnknownText_0x11f4c4 + dw UnknownText_0x11f4d3 + dw UnknownText_0x11f4e2 + dw UnknownText_0x11f4f1 + dw UnknownText_0x11f500 + dw UnknownText_0x11f50f + dw UnknownText_0x11f51e + dw UnknownText_0x11f52d + dw UnknownText_0x11f53c + dw UnknownText_0x11f54b + dw UnknownText_0x11f55a + dw UnknownText_0x11f569 + dw UnknownText_0x11f578 + dw UnknownText_0x11f587 + dw UnknownText_0x11f596 + +BTTrainerPlayerLostTexts: ; 11f36a + dw BattleTowerTextJump_0x11f433 + dw UnknownText_0x11f442 + dw UnknownText_0x11f451 + dw UnknownText_0x11f460 + dw UnknownText_0x11f46f + dw UnknownText_0x11f47e + dw UnknownText_0x11f48d + dw UnknownText_0x11f49c + dw UnknownText_0x11f4ab + dw UnknownText_0x11f4ba + dw UnknownText_0x11f4c9 + dw UnknownText_0x11f4d8 + dw UnknownText_0x11f4e7 + dw UnknownText_0x11f4f6 + dw UnknownText_0x11f505 + dw UnknownText_0x11f514 + dw UnknownText_0x11f523 + dw UnknownText_0x11f532 + dw UnknownText_0x11f541 + dw UnknownText_0x11f550 + dw UnknownText_0x11f55f + dw UnknownText_0x11f56e + dw UnknownText_0x11f57d + dw UnknownText_0x11f58c + dw UnknownText_0x11f59b + +BTTrainerPlayerWonTexts: ; 11f39c + dw UnknownText_0x11f438 + dw UnknownText_0x11f447 + dw UnknownText_0x11f456 + dw UnknownText_0x11f465 + dw UnknownText_0x11f474 + dw UnknownText_0x11f483 + dw UnknownText_0x11f492 + dw UnknownText_0x11f4a1 + dw UnknownText_0x11f4b0 + dw UnknownText_0x11f4bf + dw UnknownText_0x11f4ce + dw UnknownText_0x11f4dd + dw UnknownText_0x11f4ec + dw UnknownText_0x11f4fb + dw UnknownText_0x11f50a + dw UnknownText_0x11f519 + dw UnknownText_0x11f528 + dw UnknownText_0x11f537 + dw UnknownText_0x11f546 + dw UnknownText_0x11f555 + dw UnknownText_0x11f564 + dw UnknownText_0x11f573 + dw UnknownText_0x11f582 + dw UnknownText_0x11f591 + dw UnknownText_0x11f5a0 + + +BTTrainerTexts2: + dw BTTrainerGreetings2 + dw BTTrainerPlayerLostTexts2 + dw BTTrainerPlayerWonTexts2 + +BTTrainerGreetings2: ; 11f3d4 + dw UnknownText_0x11f5a5 + dw UnknownText_0x11f5b4 + dw UnknownText_0x11f5c3 + dw UnknownText_0x11f5d2 + dw UnknownText_0x11f5e1 + dw UnknownText_0x11f5f0 + dw UnknownText_0x11f5ff + dw UnknownText_0x11f60e + dw UnknownText_0x11f61d + dw UnknownText_0x11f62c + dw UnknownText_0x11f63b + dw UnknownText_0x11f64a + dw UnknownText_0x11f659 + dw UnknownText_0x11f668 + dw UnknownText_0x11f677 + +BTTrainerPlayerLostTexts2: ; 11f3f2 + dw UnknownText_0x11f5aa + dw UnknownText_0x11f5b9 + dw UnknownText_0x11f5c8 + dw UnknownText_0x11f5d7 + dw UnknownText_0x11f5e6 + dw UnknownText_0x11f5f5 + dw UnknownText_0x11f604 + dw UnknownText_0x11f613 + dw UnknownText_0x11f622 + dw UnknownText_0x11f631 + dw UnknownText_0x11f640 + dw UnknownText_0x11f64f + dw UnknownText_0x11f65e + dw UnknownText_0x11f66d + dw UnknownText_0x11f67c + +BTTrainerPlayerWonTexts2: ; 11f410 + dw UnknownText_0x11f5af + dw UnknownText_0x11f5be + dw UnknownText_0x11f5cd + dw UnknownText_0x11f5dc + dw UnknownText_0x11f5eb + dw UnknownText_0x11f5fa + dw UnknownText_0x11f609 + dw UnknownText_0x11f618 + dw UnknownText_0x11f627 + dw UnknownText_0x11f636 + dw UnknownText_0x11f645 + dw UnknownText_0x11f654 + dw UnknownText_0x11f663 + dw UnknownText_0x11f672 + dw UnknownText_0x11f681 + + +BattleTowerTextJump_0x11f42e: ; 0x11f42e + text_jump BattleTowerText_0x1ec000 + db "@" + +BattleTowerTextJump_0x11f433: ; 0x11f433 + text_jump BattleTowerText_0x1ec03b + db "@" + +UnknownText_0x11f438: ; 0x11f438 + text_jump UnknownText_0x1ec060 + db "@" + +BattleTowerTextJump_0x11f43d: ; 0x11f43d + text_jump BattleTowerText_0x1ec080 + db "@" + +UnknownText_0x11f442: ; 0x11f442 + text_jump UnknownText_0x1ec0a3 + db "@" + +UnknownText_0x11f447: ; 0x11f447 + text_jump UnknownText_0x1ec0c4 + db "@" + +UnknownText_0x11f44c: ; 0x11f44c + text_jump UnknownText_0x1ec0e1 + db "@" + +UnknownText_0x11f451: ; 0x11f451 + text_jump UnknownText_0x1ec108 + db "@" + +UnknownText_0x11f456: ; 0x11f456 + text_jump UnknownText_0x1ec12a + db "@" + +UnknownText_0x11f45b: ; 0x11f45b + text_jump UnknownText_0x1ec14d + db "@" + +UnknownText_0x11f460: ; 0x11f460 + text_jump UnknownText_0x1ec16f + db "@" + +UnknownText_0x11f465: ; 0x11f465 + text_jump UnknownText_0x1ec190 + db "@" + +UnknownText_0x11f46a: ; 0x11f46a + text_jump UnknownText_0x1ec1ae + db "@" + +UnknownText_0x11f46f: ; 0x11f46f + text_jump UnknownText_0x1ec1d0 + db "@" + +UnknownText_0x11f474: ; 0x11f474 + text_jump UnknownText_0x1ec1f4 + db "@" + +UnknownText_0x11f479: ; 0x11f479 + text_jump UnknownText_0x1ec216 + db "@" + +UnknownText_0x11f47e: ; 0x11f47e + text_jump UnknownText_0x1ec238 + db "@" + +UnknownText_0x11f483: ; 0x11f483 + text_jump UnknownText_0x1ec259 + db "@" + +UnknownText_0x11f488: ; 0x11f488 + text_jump UnknownText_0x1ec27b + db "@" + +UnknownText_0x11f48d: ; 0x11f48d + text_jump UnknownText_0x1ec2a0 + db "@" + +UnknownText_0x11f492: ; 0x11f492 + text_jump UnknownText_0x1ec2c0 + db "@" + +UnknownText_0x11f497: ; 0x11f497 + text_jump UnknownText_0x1ec2d9 + db "@" + +UnknownText_0x11f49c: ; 0x11f49c + text_jump UnknownText_0x1ec2fe + db "@" + +UnknownText_0x11f4a1: ; 0x11f4a1 + text_jump UnknownText_0x1ec320 + db "@" + +UnknownText_0x11f4a6: ; 0x11f4a6 + text_jump UnknownText_0x1ec33f + db "@" + +UnknownText_0x11f4ab: ; 0x11f4ab + text_jump UnknownText_0x1ec36c + db "@" + +UnknownText_0x11f4b0: ; 0x11f4b0 + text_jump UnknownText_0x1ec389 + db "@" + +UnknownText_0x11f4b5: ; 0x11f4b5 + text_jump UnknownText_0x1ec3ad + db "@" + +UnknownText_0x11f4ba: ; 0x11f4ba + text_jump UnknownText_0x1ec3c5 + db "@" + +UnknownText_0x11f4bf: ; 0x11f4bf + text_jump UnknownText_0x1ec3e5 + db "@" + +UnknownText_0x11f4c4: ; 0x11f4c4 + text_jump UnknownText_0x1ec402 + db "@" + +UnknownText_0x11f4c9: ; 0x11f4c9 + text_jump UnknownText_0x1ec411 + db "@" + +UnknownText_0x11f4ce: ; 0x11f4ce + text_jump UnknownText_0x1ec41f + db "@" + +UnknownText_0x11f4d3: ; 0x11f4d3 + text_jump UnknownText_0x1ec42e + db "@" + +UnknownText_0x11f4d8: ; 0x11f4d8 + text_jump UnknownText_0x1ec461 + db "@" + +UnknownText_0x11f4dd: ; 0x11f4dd + text_jump UnknownText_0x1ec4a0 + db "@" + +UnknownText_0x11f4e2: ; 0x11f4e2 + text_jump UnknownText_0x1ec4d6 + db "@" + +UnknownText_0x11f4e7: ; 0x11f4e7 + text_jump UnknownText_0x1ec4f5 + db "@" + +UnknownText_0x11f4ec: ; 0x11f4ec + text_jump UnknownText_0x1ec512 + db "@" + +UnknownText_0x11f4f1: ; 0x11f4f1 + text_jump UnknownText_0x1ec532 + db "@" + +UnknownText_0x11f4f6: ; 0x11f4f6 + text_jump UnknownText_0x1ec54b + db "@" + +UnknownText_0x11f4fb: ; 0x11f4fb + text_jump UnknownText_0x1ec565 + db "@" + +UnknownText_0x11f500: ; 0x11f500 + text_jump UnknownText_0x1ec580 + db "@" + +UnknownText_0x11f505: ; 0x11f505 + text_jump UnknownText_0x1ec59d + db "@" + +UnknownText_0x11f50a: ; 0x11f50a + text_jump UnknownText_0x1ec5b5 + db "@" + +UnknownText_0x11f50f: ; 0x11f50f + text_jump UnknownText_0x1ec5d3 + db "@" + +UnknownText_0x11f514: ; 0x11f514 + text_jump UnknownText_0x1ec5ee + db "@" + +UnknownText_0x11f519: ; 0x11f519 + text_jump UnknownText_0x1ec60d + db "@" + +UnknownText_0x11f51e: ; 0x11f51e + text_jump UnknownText_0x1ec631 + db "@" + +UnknownText_0x11f523: ; 0x11f523 + text_jump UnknownText_0x1ec651 + db "@" + +UnknownText_0x11f528: ; 0x11f528 + text_jump UnknownText_0x1ec68f + db "@" + +UnknownText_0x11f52d: ; 0x11f52d + text_jump UnknownText_0x1ec6b1 + db "@" + +UnknownText_0x11f532: ; 0x11f532 + text_jump UnknownText_0x1ec6d0 + db "@" + +UnknownText_0x11f537: ; 0x11f537 + text_jump UnknownText_0x1ec708 + db "@" + +UnknownText_0x11f53c: ; 0x11f53c + text_jump UnknownText_0x1ec720 + db "@" + +UnknownText_0x11f541: ; 0x11f541 + text_jump UnknownText_0x1ec73e + db "@" + +UnknownText_0x11f546: ; 0x11f546 + text_jump UnknownText_0x1ec75b + db "@" + +UnknownText_0x11f54b: ; 0x11f54b + text_jump UnknownText_0x1ec77f + db "@" + +UnknownText_0x11f550: ; 0x11f550 + text_jump UnknownText_0x1ec798 + db "@" + +UnknownText_0x11f555: ; 0x11f555 + text_jump UnknownText_0x1ec7bb + db "@" + +UnknownText_0x11f55a: ; 0x11f55a + text_jump UnknownText_0x1ec7d8 + db "@" + +UnknownText_0x11f55f: ; 0x11f55f + text_jump UnknownText_0x1ec818 + db "@" + +UnknownText_0x11f564: ; 0x11f564 + text_jump UnknownText_0x1ec837 + db "@" + +UnknownText_0x11f569: ; 0x11f569 + text_jump UnknownText_0x1ec858 + db "@" + +UnknownText_0x11f56e: ; 0x11f56e + text_jump UnknownText_0x1ec876 + db "@" + +UnknownText_0x11f573: ; 0x11f573 + text_jump UnknownText_0x1ec898 + db "@" + +UnknownText_0x11f578: ; 0x11f578 + text_jump UnknownText_0x1ec8b1 + db "@" + +UnknownText_0x11f57d: ; 0x11f57d + text_jump UnknownText_0x1ec8d5 + db "@" + +UnknownText_0x11f582: ; 0x11f582 + text_jump UnknownText_0x1ec8f0 + db "@" + +UnknownText_0x11f587: ; 0x11f587 + text_jump UnknownText_0x1ec911 + db "@" + +UnknownText_0x11f58c: ; 0x11f58c + text_jump UnknownText_0x1ec928 + db "@" + +UnknownText_0x11f591: ; 0x11f591 + text_jump UnknownText_0x1ec949 + db "@" + +UnknownText_0x11f596: ; 0x11f596 + text_jump UnknownText_0x1ec969 + db "@" + +UnknownText_0x11f59b: ; 0x11f59b + text_jump UnknownText_0x1ec986 + db "@" + +UnknownText_0x11f5a0: ; 0x11f5a0 + text_jump UnknownText_0x1ec99b + db "@" + + + + +UnknownText_0x11f5a5: ; 0x11f5a5 + text_jump UnknownText_0x1ec9bd + db "@" + +UnknownText_0x11f5aa: ; 0x11f5aa + text_jump UnknownText_0x1ec9d9 + db "@" + +UnknownText_0x11f5af: ; 0x11f5af + text_jump UnknownText_0x1ec9f7 + db "@" + +UnknownText_0x11f5b4: ; 0x11f5b4 + text_jump UnknownText_0x1eca0a + db "@" + +UnknownText_0x11f5b9: ; 0x11f5b9 + text_jump UnknownText_0x1eca2a + db "@" + +UnknownText_0x11f5be: ; 0x11f5be + text_jump UnknownText_0x1eca47 + db "@" + +UnknownText_0x11f5c3: ; 0x11f5c3 + text_jump UnknownText_0x1eca64 + db "@" + +UnknownText_0x11f5c8: ; 0x11f5c8 + text_jump UnknownText_0x1eca82 + db "@" + +UnknownText_0x11f5cd: ; 0x11f5cd + text_jump UnknownText_0x1eca9d + db "@" + +UnknownText_0x11f5d2: ; 0x11f5d2 + text_jump UnknownText_0x1ecabf + db "@" + +UnknownText_0x11f5d7: ; 0x11f5d7 + text_jump UnknownText_0x1ecade + db "@" + +UnknownText_0x11f5dc: ; 0x11f5dc + text_jump UnknownText_0x1ecafa + db "@" + +UnknownText_0x11f5e1: ; 0x11f5e1 + text_jump UnknownText_0x1ecb19 + db "@" + +UnknownText_0x11f5e6: ; 0x11f5e6 + text_jump UnknownText_0x1ecb37 + db "@" + +UnknownText_0x11f5eb: ; 0x11f5eb + text_jump UnknownText_0x1ecb55 + db "@" + +UnknownText_0x11f5f0: ; 0x11f5f0 + text_jump UnknownText_0x1ecb70 + db "@" + +UnknownText_0x11f5f5: ; 0x11f5f5 + text_jump UnknownText_0x1ecb92 + db "@" + +UnknownText_0x11f5fa: ; 0x11f5fa + text_jump UnknownText_0x1ecbb6 + db "@" + +UnknownText_0x11f5ff: ; 0x11f5ff + text_jump UnknownText_0x1ecbd9 + db "@" + +UnknownText_0x11f604: ; 0x11f604 + text_jump UnknownText_0x1ecbf3 + db "@" + +UnknownText_0x11f609: ; 0x11f609 + text_jump UnknownText_0x1ecc15 + db "@" + +UnknownText_0x11f60e: ; 0x11f60e + text_jump UnknownText_0x1ecc39 + db "@" + +UnknownText_0x11f613: ; 0x11f613 + text_jump UnknownText_0x1ecc55 + db "@" + +UnknownText_0x11f618: ; 0x11f618 + text_jump UnknownText_0x1ecc75 + db "@" + +UnknownText_0x11f61d: ; 0x11f61d + text_jump UnknownText_0x1ecc92 + db "@" + +UnknownText_0x11f622: ; 0x11f622 + text_jump UnknownText_0x1ecca7 + db "@" + +UnknownText_0x11f627: ; 0x11f627 + text_jump UnknownText_0x1eccc1 + db "@" + +UnknownText_0x11f62c: ; 0x11f62c + text_jump UnknownText_0x1eccd7 + db "@" + +UnknownText_0x11f631: ; 0x11f631 + text_jump UnknownText_0x1eccef + db "@" + +UnknownText_0x11f636: ; 0x11f636 + text_jump UnknownText_0x1ecd0e + db "@" + +UnknownText_0x11f63b: ; 0x11f63b + text_jump UnknownText_0x1ecd2b + db "@" + +UnknownText_0x11f640: ; 0x11f640 + text_jump UnknownText_0x1ecd4d + db "@" + +UnknownText_0x11f645: ; 0x11f645 + text_jump UnknownText_0x1ecd6b + db "@" + +UnknownText_0x11f64a: ; 0x11f64a + text_jump UnknownText_0x1ecd8d + db "@" + +UnknownText_0x11f64f: ; 0x11f64f + text_jump UnknownText_0x1ecdaf + db "@" + +UnknownText_0x11f654: ; 0x11f654 + text_jump UnknownText_0x1ecdcf + db "@" + +UnknownText_0x11f659: ; 0x11f659 + text_jump UnknownText_0x1ecded + db "@" + +UnknownText_0x11f65e: ; 0x11f65e + text_jump UnknownText_0x1ece0d + db "@" + +UnknownText_0x11f663: ; 0x11f663 + text_jump UnknownText_0x1ece2a + db "@" + +UnknownText_0x11f668: ; 0x11f668 + text_jump UnknownText_0x1ece4b + db "@" + +UnknownText_0x11f66d: ; 0x11f66d + text_jump UnknownText_0x1ece70 + db "@" + +UnknownText_0x11f672: ; 0x11f672 + text_jump UnknownText_0x1ece8a + db "@" + +UnknownText_0x11f677: ; 0x11f677 + text_jump UnknownText_0x1ecea8 + db "@" + +UnknownText_0x11f67c: ; 0x11f67c + text_jump UnknownText_0x1ecec9 + db "@" + +UnknownText_0x11f681: ; 0x11f681 + text_jump UnknownText_0x1ecee8 + db "@" + + +SECTION "bank5B", ROMX, BANK[$5B] + +Function16c000: ; 16c000 + ld a, [hCGB] + and a + ret z + ld a, [$ffea] + and a + ret z + ld a, [wcfbe] + push af + set 7, a + ld [wcfbe], a + call Function16c108 + callba Function100063 + callba Function100082 + call Function16c031 + callba Function1000a4 + xor a + ld [$ffea], a + pop af + ld [wcfbe], a + ret +; 16c031 + +Function16c031: ; 16c031 + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [DefaultFlypoint], a + ld [wd003], a +.asm_16c03e + call DelayFrame + callba Function10635c + ld a, [DefaultFlypoint] + ld hl, Jumptable_16c05c + rst JumpTable + call Function16cb2e + call Function16cbae + ld a, [DefaultFlypoint] + cp $ff + jr nz, .asm_16c03e + ret +; 16c05c + +Jumptable_16c05c: ; 16c05c + dw Function16c074 + dw Function16c0ba + dw Function16c089 + dw Function16c09e + dw Function16c0a8 + dw Function16c0dc + dw Function16c0ec + dw Function16c0ba + dw Function16c0ca + dw Function16c0dc + dw Function16c0ec + dw Function16c081 +; 16c074 + +Function16c074: ; 16c074 + ld a, [wcf64] + and a + ret z + ld [DefaultFlypoint], a + xor a + ld [wd003], a + ret +; 16c081 + +Function16c081: ; 16c081 + push af + ld a, $ff + ld [DefaultFlypoint], a + pop af + ret +; 16c089 + +Function16c089: ; 16c089 + ld a, $1 + ld [Buffer2], a + ld [wd1f1], a + xor a + ld [hWY], a + call Function16c0fa + ld a, [DefaultFlypoint] + ld [wcf64], a + ret +; 16c09e + +Function16c09e: ; 16c09e + ld a, [wcf64] + cp $4 + ret nz + call Function16c0fa + ret +; 16c0a8 + +Function16c0a8: ; 16c0a8 + xor a + ld [Buffer2], a + ld [wd1f1], a + call ClearSprites + ld a, $90 + ld [hWY], a + call Function16c0fa + ret +; 16c0ba + +Function16c0ba: ; 16c0ba + call Function16c943 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call c, Function16c0fa + ret +; 16c0ca + +Function16c0ca: ; 16c0ca + ld a, [wd003] + cp $28 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call z, Function16c0fa + ret +; 16c0dc + +Function16c0dc: ; 16c0dc + call Function16ca11 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call c, Function16c0fa + ret +; 16c0ec + +Function16c0ec: ; 16c0ec + call WhiteBGMap + call ClearScreen + push af + ld a, $ff + ld [DefaultFlypoint], a + pop af + ret +; 16c0fa + +Function16c0fa: ; 16c0fa + push af + ld a, [DefaultFlypoint] + inc a + ld [DefaultFlypoint], a + xor a + ld [wd003], a + pop af + ret +; 16c108 + +Function16c108: ; 16c108 + call DisableLCD + ld hl, VTiles2 + ld de, GFX_16c173 + lb bc, BANK(GFX_16c173), $68 + call Get2bpp + call Function16c130 + call Function16c145 + call Function16c15c + ld hl, VBGMap0 + call Function16cc73 + call Function16cc02 + xor a + ld [hBGMapMode], a + call EnableLCD + ret +; 16c130 + +Function16c130: ; 16c130 + ld de, Unkn1Pals + ld hl, Unknown_16c903 + ld bc, 8 + ld a, $5 + call FarCopyWRAM + callba Function96a4 + ret +; 16c145 + +Function16c145: ; 16c145 + hlcoord 0, 0 + ld bc, 20 + xor a + call ByteFill + ld hl, Tilemap_16c633 + decoord 0, 1 + ld bc, $0154 + call CopyBytes + ret +; 16c15c + +Function16c15c: ; 16c15c + hlcoord 0, 0, AttrMap + ld bc, $0014 + xor a + call ByteFill + ld hl, Tilemap_16c79b + decoord 0, 1, AttrMap + ld bc, $0154 + call CopyBytes + ret +; 16c173 + +GFX_16c173: +INCBIN "gfx/unknown/16c173.2bpp" + +Tilemap_16c633: +INCBIN "gfx/unknown/16c633.tilemap" + +Tilemap_16c79b: +INCBIN "gfx/unknown/16c79b.tilemap" + +Unknown_16c903: + RGB 31, 31, 31 + RGB 04, 10, 20 + RGB 16, 19, 25 + RGB 25, 27, 29 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 +; 16c943 + +Function16c943: ; 16c943 + ld a, [wd003] + and a + jr nz, .asm_16c95e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, $ff + ld bc, $0008 + ld hl, Unkn1Pals + call ByteFill + pop af + ld [rSVBK], a + +.asm_16c95e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld e, $0 + ld a, $0 +.asm_16c969 + ld hl, Unknown_16c903 + call Function16cab6 + call Function16cabb + ld d, a + ld hl, Unkn1Pals + call Function16cab6 + call Function16cabb + cp d + jr z, .asm_16c991 + ld b, $1 +.asm_16c981 + dec a + cp d + jr z, .asm_16c988 + dec b + jr nz, .asm_16c981 + +.asm_16c988 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cadc + +.asm_16c991 + ld hl, Unknown_16c903 + call Function16cab6 + call Function16cad8 + ld d, a + ld hl, Unkn1Pals + call Function16cab6 + call Function16cad8 + cp d + jr z, .asm_16c9b9 + ld b, $1 +.asm_16c9a9 + dec a + cp d + jr z, .asm_16c9b0 + dec b + jr nz, .asm_16c9a9 + +.asm_16c9b0 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cb08 + +.asm_16c9b9 + ld hl, Unknown_16c903 + call Function16cab6 + call Function16cac4 + ld d, a + ld hl, Unkn1Pals + call Function16cab6 + call Function16cac4 + cp d + jr z, .asm_16c9e1 + ld b, $1 +.asm_16c9d1 + dec a + cp d + jr z, .asm_16c9d8 + dec b + jr nz, .asm_16c9d1 + +.asm_16c9d8 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cae8 + +.asm_16c9e1 +rept 2 + inc e +endr + ld a, e + cp $8 + jr nz, .asm_16c969 + callba Function96a4 + call SetPalettes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wd003] + cp $1f + jr z, .asm_16ca09 + pop af + ld [rSVBK], a + ld e, $0 + pop af + ld [rSVBK], a + and a + ret + +.asm_16ca09 + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + scf + ret +; 16ca11 + +Function16ca11: ; 16ca11 + ld a, [wd003] + and a + jr nz, .asm_16ca1d + callba Function96a4 + +.asm_16ca1d + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld e, $0 + ld a, $0 +.asm_16ca28 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cabb + cp $1f + jr z, .asm_16ca48 + ld b, $1 +.asm_16ca37 + inc a + cp $1f + jr z, .asm_16ca3f + dec b + jr nz, .asm_16ca37 + +.asm_16ca3f + ld hl, Unkn1Pals + call Function16cab6 + call Function16cadc + +.asm_16ca48 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cad8 + cp $1f + jr z, .asm_16ca68 + ld b, $1 +.asm_16ca57 + inc a + cp $1f + jr z, .asm_16ca5f + dec b + jr nz, .asm_16ca57 + +.asm_16ca5f + ld hl, Unkn1Pals + call Function16cab6 + call Function16cb08 + +.asm_16ca68 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cac4 + cp $1f + jr z, .asm_16ca88 + ld b, $1 +.asm_16ca77 + inc a + cp $1f + jr z, .asm_16ca7f + dec b + jr nz, .asm_16ca77 + +.asm_16ca7f + ld hl, Unkn1Pals + call Function16cab6 + call Function16cae8 + +.asm_16ca88 +rept 2 + inc e +endr + ld a, e + cp $8 + jr nz, .asm_16ca28 + callba Function96a4 + call SetPalettes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wd003] + cp $1f + jr z, .asm_16caae + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + and a + ret + +.asm_16caae + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + scf + ret +; 16cab6 + +Function16cab6: ; 16cab6 + ld b, $0 + ld c, e + add hl, bc + ret +; 16cabb + +Function16cabb: ; 16cabb + inc hl + ld a, [hl] + srl a + srl a + and $1f + ret +; 16cac4 + +Function16cac4: ; 16cac4 + inc hl + ld a, [hld] + and $3 + ld b, a + ld a, [hl] + sla a + rl b + sla a + rl b + sla a + rl b + ld a, b + ret +; 16cad8 + +Function16cad8: ; 16cad8 + ld a, [hl] + and $1f + ret +; 16cadc + +Function16cadc: ; 16cadc + sla a + sla a + ld b, a + inc hl + ld a, [hl] + and $83 + or b + ld [hl], a + ret +; 16cae8 + +Function16cae8: ; 16cae8 + ld c, a + srl a + srl a + srl a + ld b, a + inc hl + ld a, [hl] + and $fc + or b + ld [hld], a + ld a, c + sla a + sla a + sla a + sla a + sla a + ld b, a + ld a, [hl] + and $1f + or b + ld [hl], a + ret +; 16cb08 + +Function16cb08: ; 16cb08 + ld b, a + ld a, [hl] + and $e0 + or b + ld [hl], a + ret +; 16cb0f + +Function16cb0f: ; 16cb0f + xor a + ld [Buffer1], a + ld [Buffer2], a + xor a + ld [wd1ec], a + ld a, $70 + ld [wd1ee], a + ld a, $4 + ld [wd1ed], a + ld a, $a0 + ld [wd1ef], a + xor a + ld [wd1f0], a + ret +; 16cb2e + +Function16cb2e: ; 16cb2e + ld a, [Buffer2] + and a + ret z + call Function16cb40 + ld hl, Unknown_16cb86 + ld de, Sprites + call Function16cb5d + ret +; 16cb40 + +Function16cb40: ; 16cb40 + ld hl, wd1ec + inc [hl] + ld a, [hl] + cp $18 + ret c + xor a + ld [hl], a + ld a, [wd1ef] + cp $a0 + jr nz, .asm_16cb57 + ld a, $a7 + ld [wd1ef], a + ret + +.asm_16cb57 + ld a, $a0 + ld [wd1ef], a + ret +; 16cb5d + +Function16cb5d: ; 16cb5d + ld a, [hli] + and a + ret z +.asm_16cb60 + push af + ld a, [wd1ee] + add [hl] + add $10 + ld [de], a + inc hl + inc de + ld a, [wd1ed] + add [hl] + add $8 + ld [de], a + inc hl + inc de + ld a, [wd1ef] + add [hl] + ld [de], a + inc hl + inc de + ld a, [wd1f0] + or [hl] + ld [de], a + inc hl + inc de + pop af + dec a + jr nz, .asm_16cb60 + ret +; 16cb86 + +Unknown_16cb86: + db 7 + db 0, 0, 0, 1 + db 8, 0, 1, 1 + db 8, 8, 2, 0 + db 8, 16, 3, 0 + db 16, 0, 4, 1 + db 16, 8, 5, 0 + db 16, 16, 6, 0 +; 16cba3 + +Function16cba3: ; 16cba3 + xor a + ld [wd1f1], a + ld [wd1f2], a + ld [wd1f3], a + ret +; 16cbae + +Function16cbae: ; 16cbae + ld a, [wd1f1] + and a + ret z + call Function16cbba + call Function16cbd1 + ret +; 16cbba + +Function16cbba: ; 16cbba + ld hl, wd1f2 + inc [hl] + ld a, [hl] + cp $c + ret c + xor a + ld [hl], a + ld a, [wd1f3] + inc a + cp $4 + jr c, .asm_16cbcd + xor a + +.asm_16cbcd + ld [wd1f3], a + ret +; 16cbd1 + +Function16cbd1: ; 16cbd1 + ld a, [wd1f3] + ld c, a + ld b, 0 + ld hl, Unknown_16cbfb + add hl, bc + ld a, [hl] + ld bc, $0002 + ld hl, Unknown_16cfa3 + call AddNTimes + ld de, wd00c + ld bc, $0002 + ld a, $5 + call FarCopyWRAM + callba Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 16cbfb + +Unknown_16cbfb: + db 0, 1, 2, 1, 0, 1, 2 +; 16cc02 + +Function16cc02: ; 16cc02 + call Function16cc18 + call Function16cc49 + call Function16cc62 + call Function16cc25 + call Function16cc6e + call Function16cb0f + call Function16cba3 + ret +; 16cc18 + +Function16cc18: ; 16cc18 + ld hl, VTiles1 + ld de, GFX_16cca3 + lb bc, BANK(GFX_16cca3), $2e + call Get2bpp + ret +; 16cc25 + +Function16cc25: ; 16cc25 + ld hl, Unknown_16cfa9 + ld de, wd008 + call Function16cc41 + ld hl, Unknown_16cfb1 + ld de, Unkn2Pals + call Function16cc41 + ld hl, Unknown_16cfb9 + ld de, wd048 + call Function16cc41 + ret +; 16cc41 + +Function16cc41: ; 16cc41 + ld bc, $0008 + ld a, $5 + jp FarCopyWRAM +; 16cc49 + +Function16cc49: ; 16cc49 + hlcoord 4, 15 + ld a, $80 + call Function16cc5a + hlcoord 4, 16 + ld a, $90 + call Function16cc5a + ret +; 16cc5a + +Function16cc5a: ; 16cc5a + ld c, $10 +.asm_16cc5c + ld [hli], a + inc a + dec c + jr nz, .asm_16cc5c + ret +; 16cc62 + +Function16cc62: ; 16cc62 + hlcoord 0, 15, AttrMap + ld bc, $0028 + ld a, $1 + call ByteFill + ret +; 16cc6e + +Function16cc6e: ; 16cc6e + ld hl, VBGMap1 + jr Function16cc73 + +Function16cc73: + ld a, [rVBK] + push af + ld a, $0 + ld [rVBK], a + push hl + decoord 0, 0 + call Function16cc90 + pop hl + ld a, $1 + ld [rVBK], a + decoord 0, 0, AttrMap + call Function16cc90 + pop af + ld [rVBK], a + ret +; 16cc90 + +Function16cc90: ; 16cc90 + ld bc, $1214 +.asm_16cc93 + push bc +.asm_16cc94 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_16cc94 + ld bc, $000c + add hl, bc + pop bc + dec b + jr nz, .asm_16cc93 + ret +; 16cca3 + +GFX_16cca3: +INCBIN "gfx/unknown/16cca3.2bpp" + +Unknown_16cfa3: + RGB 31, 31, 31 + RGB 25, 27, 29 + RGB 16, 19, 25 + +Unknown_16cfa9: + RGB 31, 31, 31 + RGB 25, 27, 29 + RGB 31, 31, 31 + RGB 07, 07, 07 + +Unknown_16cfb1: + RGB 31, 31, 31 + RGB 13, 09, 18 + RGB 26, 21, 16 + RGB 07, 07, 07 + +Unknown_16cfb9: + RGB 31, 31, 31 + RGB 18, 05, 02 + RGB 27, 11, 12 + RGB 07, 07, 07 +; 16cfc1 + +GFX_16cfc1: +INCBIN "gfx/unknown/16cfc1.2bpp" + +Function16d421: ; 16d421 + ld de, GFX_16cfc1 + ld hl, VTiles2 + lb bc, BANK(GFX_16cfc1), $46 + call Get2bpp + ret +; 16d42e + +Function16d42e: ; 16d42e + ld hl, Tilemap_16d465 + decoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call CopyBytes + ret +; 16d43b + +Function16d43b: ; 16d43b + call LoadMenuDataHeader_0x1d75 + call WhiteBGMap + call ClearTileMap + call ClearSprites + callba Function16d421 + callba Function16d42e + ld b, $8 + call GetSGBLayout + call SetPalettes + call WaitBGMap + call JoyWaitAorB + call Call_ExitMenu + ret +; 16d465 + +Tilemap_16d465: +INCBIN "gfx/unknown/16d465.tilemap" + +Tilemap_16d5cd: +INCBIN "gfx/unknown/16d5cd.tilemap" + +Tilemap_16d5f5: +INCBIN "gfx/unknown/16d5f5.tilemap" + +Function16d61d: ; 16d61d + ld h, d + ld l, e + push bc + push hl + call Function16d640 + pop hl + pop bc + ld de, AttrMap - TileMap + add hl, de +rept 2 + inc b +endr +rept 2 + inc c +endr + ld a, $7 +.asm_16d630 + push bc + push hl +.asm_16d632 + ld [hli], a + dec c + jr nz, .asm_16d632 + pop hl + ld de, $0014 + add hl, de + pop bc + dec b + jr nz, .asm_16d630 + ret +; 16d640 + +Function16d640: ; 16d640 + push hl + ld a, $30 + ld [hli], a + inc a + call Function16d66d + inc a + ld [hl], a + pop hl + ld de, $0014 + add hl, de +.asm_16d64f + push hl + ld a, $33 + ld [hli], a + ld a, $7f + call Function16d66d + ld [hl], $34 + pop hl + ld de, $0014 + add hl, de + dec b + jr nz, .asm_16d64f + ld a, $35 + ld [hli], a + ld a, $36 + call Function16d66d + ld [hl], $37 + ret +; 16d66d + +Function16d66d: ; 16d66d + ld d, c +.asm_16d66e + ld [hli], a + dec d + jr nz, .asm_16d66e + ret +; 16d673 + +Function16d673: ; 16d673 + call Function16d696 + call Function16d6ae + callba Function49856 + callba Functionfb60d + hlcoord 10, 17 + ld de, String_16d68f + call PlaceString + ret +; 16d68f + +String_16d68f: ; 16d68f + db "CANCEL@" +; 16d696 + +Function16d696: ; 16d696 + call Function16d421 + ret +; 16d69a + + +Function16d69a: ; 16d69a + ld de, GFX_16cfc1 + $300 + ld hl, VTiles2 tile $76 + lb bc, BANK(GFX_16cfc1), 8 + call Get2bpp + ret +; 16d6a7 + +Function16d6a7: ; 16d6a7 + callba Function49811 + ret +; 16d6ae + +Function16d6ae: ; 16d6ae + call Function16d42e + ld hl, Tilemap_16d5cd + decoord 0, 0 + ld bc, $0028 + call CopyBytes + ld hl, Tilemap_16d5f5 + decoord 0, 16 + ld bc, $0028 + call CopyBytes + ret +; 16d6ca + +Function16d6ca: ; 16d6ca + call Function16d61d + ret +; 16d6ce + +Function16d6ce: ; 16d6ce + call LoadMenuDataHeader_0x1d75 + call Function16d6e1 + callba Function87d + call Call_ExitMenu + call Function3200 + ret +; 16d6e1 + +Function16d6e1: ; 16d6e1 + hlcoord 4, 10 + ld b, $1 + ld c, $a + predef Function28eef + hlcoord 5, 11 + ld de, String_16d701 + call PlaceString + call WaitBGMap + call Function3200 + ld c, $32 + jp DelayFrames +; 16d701 + +String_16d701: ; 16d701 + db "WAITING..!@" +; 16d70c + +Function16d70c: ; 16d70c + call Function16d725 + call Function16d713 + ret +; 16d713 + +Function16d713: ; 16d713 + push bc + push af + ld a, [hJoyLast] + and $f0 + ld b, a + ld a, [hJoyPressed] + and $f + or b + ld b, a + pop af + ld a, b + pop bc + ld d, a + ret +; 16d725 + +Function16d725: ; 16d725 + ld hl, wcfa6 + res 7, [hl] + ld a, [hBGMapMode] + push af + call Function16d734 + pop af + ld [hBGMapMode], a + ret +; 16d734 + +Function16d734: ; 16d734 +.asm_16d734 + call Function16d77a + call Function16d759 + call Function16d76a + jr nc, .asm_16d758 + callba Function24270 + jr c, .asm_16d758 + ld a, [wcfa5] + bit 7, a + jr nz, .asm_16d758 + call Function16d713 + ld b, a + ld a, [wcfa8] + and b + jr z, .asm_16d734 + +.asm_16d758 + ret +; 16d759 + +Function16d759: ; 16d759 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + pop af + ld [hOAMUpdate], a + xor a + ld [hBGMapMode], a + ret +; 16d76a + +Function16d76a: ; 16d76a +.asm_16d76a + call RTC + call Function16d7e7 + ret c + ld a, [wcfa5] + bit 7, a + jr z, .asm_16d76a + and a + ret +; 16d77a + +Function16d77a: ; 16d77a + ld hl, wcfac + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + cp $1f + jr nz, .asm_16d792 + ld a, [wcfab] + ld [hl], a + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], a + pop bc + pop hl + +.asm_16d792 + ld a, [wcfa1] + ld b, a + ld a, [wcfa2] + ld c, a + call GetTileCoord + ld a, [wcfa7] + swap a + and $f + ld c, a + ld a, [wcfa9] + ld b, a + xor a + dec b + jr z, .asm_16d7b1 +.asm_16d7ad + add c + dec b + jr nz, .asm_16d7ad + +.asm_16d7b1 + ld c, $14 + call AddNTimes + ld a, [wcfa7] + and $f + ld c, a + ld a, [wcfaa] + ld b, a + xor a + dec b + jr z, .asm_16d7c8 +.asm_16d7c4 + add c + dec b + jr nz, .asm_16d7c4 + +.asm_16d7c8 + ld c, a + add hl, bc + ld a, [hl] + cp $1f + jr z, .asm_16d7de + ld [wcfab], a + ld [hl], $1f + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $1f + pop bc + pop hl + +.asm_16d7de + ld a, l + ld [wcfac], a + ld a, h + ld [wcfad], a + ret +; 16d7e7 + +Function16d7e7: ; 16d7e7 + ld a, [wcfa5] + bit 6, a + jr z, .asm_16d7f4 + callba Function8cf62 + +.asm_16d7f4 + call JoyTextDelay + call Function16d713 + and a + ret z + scf + ret +; 16d7fe + + +SECTION "bank5C", ROMX, BANK[$5C] + +Function170000: ; 170000 + ld a, [$c62b] + ld [$c6d0], a + ld hl, $c62e + ld de, $c6e7 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $c663 + ld de, $c6f2 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $c648 + ld a, [hli] + ld [$c6fd], a + ld a, [hl] + ld [$c6fe], a + ld hl, $c639 + ld a, [hli] + ld [$c6ff], a + ld a, [hl] + ld [wc700], a + ld bc, $c633 + callba GetCaughtGender + ld a, c + ld [wc701], a + ld a, [wcd81] + ld [wc74e], a + ld hl, $c608 + ld de, $d800 + ld bc, $008f + call CopyBytes + ret +; 17005a + +Function17005a: ; 17005a + ld a, $5 + call GetSRAMBank + ld a, [$a824] + ld [wc702], a + ld hl, $a827 + ld de, wc719 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $a85c + ld de, wc724 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $a841 + ld a, [hli] + ld [wc72f], a + ld a, [hl] + ld [wc730], a + ld hl, $a832 + ld a, [hli] + ld [wc731], a + ld a, [hl] + ld [wc732], a + ld bc, $a82c + callba GetCaughtGender + ld a, c + ld [wc733], a + ld a, [wcd81] + ld [wc74e], a + call CloseSRAM + ret +; 1700b0 + +Function1700b0: ; 1700b0 + call Function17021e + callba Function118121 + ret +; 1700ba + +Function1700ba: ; 1700ba + call Function17021e + callba Function11811a + ret +; 1700c4 + +Function1700c4: ; 1700c4 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + call Function17042c + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$be45], a + xor a + ld [$be46], a + ld hl, $dffc + ld de, $aa41 + ld bc, $0004 + call CopyBytes + ld hl, $d202 + ld de, $aa8e + ld bc, $0594 + call CopyBytes + ld hl, $aa5d + ld a, [hl] + inc [hl] + inc hl + sla a + sla a + ld e, a + ld d, $0 + add hl, de + ld e, l + ld d, h + ld hl, $dffc + ld bc, $0004 + call CopyBytes + call CloseSRAM + pop af + ld [rSVBK], a + ret +; 170114 + +Function170114: ; 170114 + call Function17021e + call Function170121 + callba Function11805f + ret +; 170121 + +Function170121: ; 170121 + ld a, $5 + call GetSRAMBank + ld hl, $a948 + ld de, $c608 + ld bc, $00f6 + call CopyBytes + call CloseSRAM + call Function170c8b + ret +; 170139 + +Function170139: ; 170139 + ld a, $5 + call GetSRAMBank + ld de, $aa41 + ld h, $0 + ld l, h + ld bc, $03e8 + call Function17020c + ld bc, $0064 + call Function17020c + ld bc, $000a + call Function17020c + ld a, [de] + ld c, a + ld b, $0 + add hl, bc + call CloseSRAM + ld a, h + ld [$c608], a + ld a, l + ld [$c608 + 1], a + ld hl, $c628 + ld a, [PlayerID] + ld [hli], a + ld a, [PlayerID + 1] + ld [hli], a + ld a, [wSecretID] + ld [hli], a + ld a, [wSecretID + 1] + ld [hli], a + ld e, l + ld d, h + ld hl, PlayerName + ld bc, $0005 + call CopyBytes + ld bc, PlayerID + ld de, PlayerGender + callba Function4e929 + ld de, $c62c + 5 + ld a, c + ld [de], a + inc de + ld a, $df + ld [wcd49], a + ld a, $dc + ld [wcd4a], a + ld a, $41 + ld [wcd4b], a + ld a, $de + ld [wcd4c], a + ld a, $3 +.asm_1701ac + push af + ld a, [wcd49] + ld l, a + ld a, [wcd4a] + ld h, a + ld bc, $0030 + call CopyBytes + ld a, l + ld [wcd49], a + ld a, h + ld [wcd4a], a + ld a, [wcd4b] + ld l, a + ld a, [wcd4c] + ld h, a + ld bc, $0006 + call CopyBytes + ld a, l + ld [wcd4b], a + ld a, h + ld [wcd4c], a + pop af + dec a + jr nz, .asm_1701ac + ld a, $4 + call GetSRAMBank + ld hl, $a013 + ld bc, $0024 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $a894 + ld bc, $0006 + call CopyBytes + ld hl, $c608 + ld de, $a948 + ld bc, $00f6 + call CopyBytes + call CloseSRAM + ret +; 17020c + +Function17020c: ; 17020c + ld a, [de] + inc de + and a + ret z +.asm_170210 + add hl, bc + dec a + jr nz, .asm_170210 + ret +; 170215 + +BattleTowerBattle: ; 170215 + xor a + ld [wJumptableIndex], a + call Function17022c + ret +; 17021d + +Function17021d: ; 17021d + ret +; 17021e + +Function17021e: ; 17021e + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ret +; 17022c + +Function17022c: ; 17022c +.loop + call Jumpto_BattleTowerBattleFunction + call DelayFrame + ld a, [wJumptableIndex] + cp $1 + jr nz, .loop + ret +; 17023a + +Jumpto_BattleTowerBattleFunction: ; 17023a + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_BattleTowerBattleFunctions +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170249 + +Jumptable_BattleTowerBattleFunctions: ; 170249 + dw RunBattleTowerBattle + dw SkipBattleTowerBattle +; 17024d + +RunBattleTowerBattle: ; 17024d + ld a, [Options] + push af + ld hl, Options + set 6, [hl] + ld a, [InBattleTowerBattle] + push af + or $1 + ld [InBattleTowerBattle], a + xor a + ld [wLinkMode], a + callba Mobile_HealParty + callba HealParty + call Function1702b7 + call Function170bf7 + predef StartBattle + callba LoadPokemonData + callba HealParty + ld a, [wBattleResult] + ld [ScriptVar], a + and a + jr nz, .lost + ld a, BANK(sNrOfBeatenBattleTowerTrainers) + call GetSRAMBank + ld a, [sNrOfBeatenBattleTowerTrainers] + ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 + call CloseSRAM + ld hl, StringBuffer3 + ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 + add $f7 + ld [hli], a + ld a, $50 + ld [hl], a + +.lost + pop af + ld [InBattleTowerBattle], a + pop af + ld [Options], a + ld a, $1 + ld [wJumptableIndex], a + ret + + +Function1702b7: ; 1702b7 +; Initialise the BattleTower-Trainer and his Pkmn + call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_1702db + + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_1702db + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_1702fc + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_1702fc + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_17031d + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_17031d + ld a, $50 + ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d + ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688 + ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3 + call Function170c98 + ld de, wBT_OTTempCopy + ld c, $a + callba Function17d073 + jr nc, .asm_17033d + ld hl, String_170426 + jr .asm_170340 + +.asm_17033d + ld hl, wBT_OTTempCopy ; 0xc608 + +.asm_170340 + ld de, wd26b + ld bc, $000a + call CopyBytes + ld a, $50 + ld [de], a + ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass + ld a, [hli] + ld [OtherTrainerClass], a + ld a, $ea + ld [BGMapBuffer], a + ld a, $d3 + ld [wcd21], a + + ; Copy Pkmn into Memory from the address in hl + ld de, OTPartyMon1Species + ld bc, OTPartyCount + ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has + ld [bc], a + inc bc +.asm_170367 + push af + ld a, [hl] + ld [bc], a + inc bc + push bc + ld bc, party_struct_length + call CopyBytes + push de + ld a, [BGMapBuffer] + ld e, a + ld a, [wcd21] + ld d, a + ld bc, $000b + call CopyBytes + ld a, e + ld [BGMapBuffer], a + ld a, d + ld [wcd21], a + pop de + pop bc + pop af + dec a + and a + jr nz, .asm_170367 + ld a, $ff + ld [bc], a + ret +; 170394 + +Function170394: ; 170394 + ld hl, $c608 + 11 + ld d, $3 +.asm_170399 + push de + push hl + ld b, h + ld c, l + ld a, [hl] + and a + jr z, .asm_1703b1 + cp $ff + jr z, .asm_1703b1 + cp $fe + jr z, .asm_1703b1 + cp $fd + jr z, .asm_1703b1 + cp $fc + jr nz, .asm_1703b4 + +.asm_1703b1 + ld a, $eb + ld [hl], a + +.asm_1703b4 + ld [CurSpecies], a + call GetBaseData + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld e, a + ld hl, $001f + add hl, bc + ld a, [hl] + cp $2 + ld a, $2 + jr c, .asm_1703d6 + ld a, [hl] + cp e + jr c, .asm_1703d7 + ld a, e + +.asm_1703d6 + ld [hl], a + +.asm_1703d7 + ld [CurPartyLevel], a + ld hl, $0002 + add hl, bc + ld d, $3 + ld a, [hli] + and a + jr z, .asm_1703ea + cp $fc + jr nc, .asm_1703ea + jr .asm_1703f4 + +.asm_1703ea + dec hl + ld a, $1 + ld [hli], a + xor a +rept 2 + ld [hli], a +endr + ld [hl], a + jr .asm_1703ff + +.asm_1703f4 + ld a, [hl] + cp $fc + jr c, .asm_1703fb + ld [hl], $0 + +.asm_1703fb + inc hl + dec d + jr nz, .asm_1703f4 + +.asm_1703ff + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + push hl + push de + ld hl, $000a + add hl, bc + ld b, $1 + predef CalcPkmnStats + pop de + pop hl +rept 2 + dec de +endr + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + pop hl + ld bc, $003b + add hl, bc + pop de + dec d + jp nz, .asm_170399 + ret +; 170426 + +String_170426: ; 170426 + db "CHRIS@" +; 17042c + +Function17042c: ; 17042c + ld hl, OTPartyMon2ID + ld a, $7 +.asm_170431 + push af + push hl + ld c, $12 +.asm_170435 + ld a, [hli] + ld b, a + ld a, [hli] + and a + jr z, .asm_170451 + cp $f + jr nc, .asm_17045b + push hl + ld hl, Unknown_170470 + dec a + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + pop hl + cp b + jr c, .asm_17045b + jr z, .asm_17045b + jr .asm_170456 + +.asm_170451 + ld a, b + cp $fc + jr nc, .asm_17045b + +.asm_170456 + dec c + jr nz, .asm_170435 + jr .asm_170466 + +.asm_17045b + pop de + push de + ld hl, Unknown_17047e + ld bc, $0024 + call CopyBytes + +.asm_170466 + pop hl + ld de, $00e0 + add hl, de + pop af + dec a + jr nz, .asm_170431 + ret +; 170470 + +Unknown_170470: + db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 + +Unknown_17047e: + db $03, $04, $05, $08 + db $03, $05, $0e, $06 + db $03, $02, $00, $00 + db $39, $07, $07, $04 + db $00, $05, $04, $07 + db $01, $05, $00, $00 + db $0f, $05, $14, $07 + db $05, $05, $11, $0c + db $0c, $06, $06, $04 + + +CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 +; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy' + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, BT_OTrainer ; $d100 + ld de, wBT_OTTempCopy ; $c608 + ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 + ; = $a + $1 + BATTLETOWER_NROFPKMNS * (party_struct_length + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH + call CopyBytes + pop af + ld [rSVBK], a + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $2 + ld [s1_be45], a + ld hl, sNrOfBeatenBattleTowerTrainers + inc [hl] + call CloseSRAM +SkipBattleTowerBattle: ; 1704c9 + ret +; 1704ca + + +Function1704ca: ; 1704ca + ld a, [$be46] + cp $7 + jr c, .asm_1704d3 + ld a, $6 + +.asm_1704d3 + ld hl, $afce + ld de, -$e0 +.asm_1704d9 + and a + jr z, .asm_1704e0 + add hl, de + dec a + jr .asm_1704d9 + +.asm_1704e0 + ret +; 1704e1 + +Function1704e1: ; 1704e1 + call SpeechTextBox + call FadeToMenu + call Function17021e + call Function1704f1 + call Function2b3c + ret +; 1704f1 + +Function1704f1: ; 1704f1 + call WhiteBGMap + call ClearSprites + call ClearScreen +.asm_1704fa + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_17050f + call Function170510 + callba Function104061 + jr .asm_1704fa + +.asm_17050f + ret +; 170510 + +Function170510: ; 170510 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_17051f +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17051f + +Jumptable_17051f: ; 17051f + dw Function170525 + dw Function170571 + dw Function170577 +; 170525 + +Function170525: ; 170525 + ld a, $5 + call GetSRAMBank + + ld hl, $a89c + ld de, StringBuffer3 + ld bc, $0016 + call CopyBytes + + ld hl, $a8b2 + ld de, $c608 + ld bc, $0096 + call CopyBytes + + call CloseSRAM + hlcoord 1, 1 + ld de, StringBuffer3 + call PlaceString + hlcoord 1, 3 + ld de, String_170676 + call PlaceString + hlcoord 4, 3 + ld de, StringBuffer4 + call PlaceString + hlcoord 8, 3 + ld de, String_17067a + call PlaceString + call Function1705b7 + call Function1705f0 + jr Function1705b2 + + +Function170571: + call SetPalettes + call Function1705b2 + + +Function170577: + ld hl, hJoyPressed + ld a, [hl] + and $1 + jr nz, .asm_1705ac + ld a, [hl] + and $2 + jr nz, .asm_1705ac + ld a, [hl] + and $40 + jr nz, .asm_17058f + ld a, [hl] + and $80 + jr nz, .asm_17059d + ret + +.asm_17058f + ld a, [wcf64] + and a + ret z + sub $f + ld [wcf64], a + call Function1705f0 + ret + +.asm_17059d + ld a, [wcf64] + cp $3c + ret z + add $f + ld [wcf64], a + call Function1705f0 + ret + +.asm_1705ac + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function1705b2: + ld hl, wJumptableIndex + inc [hl] + ret +; 1705b7 + +Function1705b7: ; 1705b7 + hlcoord 0, 4 + ld a, $79 + ld [hli], a + ld c, $12 +.asm_1705bf + ld a, $7a + ld [hli], a + dec c + jr nz, .asm_1705bf + ld a, $7b + ld [hli], a + ld de, $0014 + ld c, $c +.asm_1705cd + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_1705cd + ld a, $7d + ld [hli], a + ld c, $12 +.asm_1705d9 + ld a, $7a + ld [hli], a + dec c + jr nz, .asm_1705d9 + ld a, $7e + ld [hl], a + ld de, $ffec + add hl, de + ld c, $c +.asm_1705e8 + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_1705e8 + ret +; 1705f0 + +Function1705f0: ; 1705f0 + call Function17064b + call Function17065d + ld a, $50 + ld [wcd4e], a + ld hl, $c608 + ld a, [wcf64] + ld c, a + xor a + ld b, a + add hl, bc + push hl + pop bc + hlcoord 1, 6 + ld a, $6 +.asm_17060c + push af + push hl + ld a, $3 +.asm_170610 + push af + ld de, wcd49 + ld a, [bc] + and a + jr z, .asm_170625 + ld a, $5 +.asm_17061a + push af + ld a, [bc] + ld [de], a + inc bc + inc de + pop af + dec a + jr nz, .asm_17061a + jr .asm_170631 + +.asm_170625 + ld a, $5 +.asm_170627 + push af + ld a, $e3 + ld [de], a + inc de + inc bc + pop af + dec a + jr nz, .asm_170627 + +.asm_170631 + ld de, wcd49 + push bc + call PlaceString + ld de, $0006 + add hl, de + pop bc + pop af + dec a + jr nz, .asm_170610 + pop hl + ld de, $0028 + add hl, de + pop af + dec a + jr nz, .asm_17060c + ret +; 17064b + +Function17064b: ; 17064b + hlcoord 1, 5 + xor a + ld b, $c +.asm_170651 + ld c, $12 +.asm_170653 + ld [hli], a + dec c + jr nz, .asm_170653 +rept 2 + inc hl +endr + dec b + jr nz, .asm_170651 + ret +; 17065d + +Function17065d: ; 17065d + ld a, [wcf64] + and a + jr z, .asm_170669 + hlcoord 18, 5 + ld a, $61 + ld [hl], a + +.asm_170669 + ld a, [wcf64] + cp $3c + ret z + hlcoord 18, 16 + ld a, $ee + ld [hl], a + ret +; 170676 + +String_170676: ; 170676 + db "ルーム@" +; 17067a + +String_17067a: ; 17067a + db "れきだいりーダーいちらん@" +; 170687 + +BattleTowerAction: ; 170687 + ld a, [ScriptVar] + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170696 + + +.jumptable: ; 170696 (5c:4696) + dw Function17075f ; 0x00 + dw Function170788 ; 0x01 + dw Function170778 ; 0x02 + dw Function170799 ; 0x03 + dw Function17079d ; 0x04 + dw Function1707ac ; 0x05 + dw Function1707f4 ; 0x06 + dw Function170868 ; 0x07 + dw Function170881 ; 0x08 + dw Function17089a ; 0x09 + dw Function1708b1 ; 0x0a + dw Function1708b9 ; 0x0b + dw Function1708c8 ; 0x0c + dw Function1708f0 ; 0x0d + dw Function17093c ; 0x0e + dw Function1709aa ; 0x0f + dw Function1709bb ; 0x10 + dw Function170a9c ; 0x11 + dw Function170aa0 ; 0x12 + dw Function170aaf ; 0x13 + dw Function170abe ; 0x14 + dw Function170ad7 ; 0x15 + dw Function170807 ; 0x16 + dw Function17081d ; 0x17 + dw Function170ae8 ; 0x18 + dw Function170b16 ; 0x19 + dw ResetBattleTowerTrainersSRAM ; 0x1a + dw Function1706ee ; 0x1b + dw Function17071b ; 0x1c + dw Function170729 ; 0x1d + dw Function17073e ; 0x1e + dw Function170737 ; 0x1f + + +; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) +ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a + ld a, BANK(sBTTrainers) + call GetSRAMBank + + ld a, $ff + ld hl, sBTTrainers + ld bc, BATTLETOWER_NROFTRAINERS + call ByteFill + + xor a + ld [sNrOfBeatenBattleTowerTrainers], a + + call CloseSRAM + + ret + +Function1706ee: ; 1706ee (5c:46ee) + ld a, BANK(sbe50) + call GetSRAMBank + + ld a, [sbe50] + call CloseSRAM + ld [ScriptVar], a + ld hl, NumItems + ld a, [hli] + cp $14 + ret c + ld b, $14 + ld a, [ScriptVar] + ld c, a +.asm_170709 + ld a, [hli] + cp c + jr nz, .asm_170711 + ld a, [hl] + cp $5f + ret c +.asm_170711 + inc hl + dec b + jr nz, .asm_170709 + ld a, $12 + ld [ScriptVar], a + ret + +Function17071b: ; 17071b (5c:471b) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $3 + ld [s1_be45], a + call CloseSRAM + ret + +Function170729: ; 170729 (5c:4729) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $4 + ld [s1_be45], a + call CloseSRAM + ret + +Function170737: ; 170737 (5c:4737) + callba SaveOptions + ret + +Function17073e: ; 17073e (5c:473e) + call Random + ld a, [hRandomAdd] ; $ff00+$e1 + and $7 + cp $6 + jr c, .asm_17074b + sub $6 +.asm_17074b + add $1a + cp $1e + jr z, Function17073e + push af + ld a, BANK(sbe50) + call GetSRAMBank + pop af + ld [sbe50], a + call CloseSRAM + ret + +Function17075f: ; 17075f (5c:475f) + call Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + and $2 + ld [ScriptVar], a + call CloseSRAM + ret + +Function170778: ; 170778 (5c:4778) + ld hl, s1_be45 + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, [hl] + ld [ScriptVar], a + call CloseSRAM + ret + +Function170788: ; 170788 (5c:4788) + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + or $2 + ld [sbe4f], a + call CloseSRAM + ret + +Function170799: ; 170799 (5c:4799) + ld c, $1 + jr asm_17079f + +Function17079d: ; 17079d (5c:479d) + ld c, $0 +asm_17079f: ; 17079f (5c:479f) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, c + ld [s1_be45], a + call CloseSRAM + ret + +Function1707ac: ; 1707ac (5c:47ac) + ld a, $5 + call GetSRAMBank + ld a, [$aa8c] + ld b, a + ld a, [$be46] + ld [ScriptVar], a + call CloseSRAM + and a + ret z + ld a, b + cp $2 + jr nc, .asm_1707ef + push bc + call UpdateTime + pop bc + ld a, $5 + call GetSRAMBank + ld a, [$aa8b] + call CloseSRAM + ld c, a + ld a, [CurDay] + sub c + jr c, .asm_1707e5 + cp $8 + jr nc, .asm_1707ef + ld a, b + and a + jr nz, .asm_1707ef + ret +.asm_1707e5 + ld hl, CurDay + ld a, $8c + sub c + add [hl] + cp $8 + ret c +.asm_1707ef + ld a, $8 + ld [ScriptVar], a + +Function1707f4: ; 1707f4 (5c:47f4) + ld a, $5 + call GetSRAMBank + xor a + ld [$be46], a + ld [$aa8b], a + ld [$aa8c], a + call CloseSRAM + ret + +Function170807: ; 170807 (5c:4807) + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [CurDay] + ld [$b2f9], a + xor a + ld [$b2fa], a + call CloseSRAM + ret + +Function17081d: ; 17081d (5c:481d) + xor a + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + ld a, [$b2f9] + ld c, a + ld a, [$b2fa] + ld b, a + call CloseSRAM + cp $2 + jr nc, .asm_170853 + push bc + call UpdateTime + pop bc + ld a, [CurDay] + sub c + jr c, .asm_170849 + cp $b + jr nc, .asm_170853 + ld a, b + and a + jr nz, .asm_170853 + ret +.asm_170849 + ld hl, CurDay + ld a, $8c + sub c + add [hl] + cp $b + ret c +.asm_170853 + ld a, $1 + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + xor a + ld [$b2f9], a + ld [$b2fa], a + call CloseSRAM + ret + +Function170868: ; 170868 (5c:4868) + ld a, BANK(sbe47) + call GetSRAMBank + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $3 + ld [rSVBK], a ; $ff00+$70 + ld a, [wd000 + $800] + ld [sbe47], a + pop af + ld [rSVBK], a ; $ff00+$70 + call CloseSRAM + ret + +Function170881: ; 170881 (5c:4881) + ld a, BANK(sbe47) + call GetSRAMBank + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $3 + ld [rSVBK], a ; $ff00+$70 + ld a, [sbe47] + ld [wd000 + $800], a + pop af + ld [rSVBK], a ; $ff00+$70 + call CloseSRAM + ret + +Function17089a: ; 17089a + ld a, [wcfcd] + and a + jr z, .asm_1708ad + callba Function14bcb + jr z, .asm_1708ab + xor a + jr .asm_1708ad + +.asm_1708ab + ld a, $1 + +.asm_1708ad + ld [ScriptVar], a + ret +; 1708b1 + + +Function1708b1: ; 1708b1 (5c:48b1) + xor a + ld [MusicFade], a + call MaxVolume + ret + +Function1708b9: ; 1708b9 (5c:48b9) something to do with GS Ball + ld a, BANK(s1_be3c) + call GetSRAMBank + ld a, [s1_be3c] + ld [ScriptVar], a + call CloseSRAM + ret + +Function1708c8: ; 1708c8 (5c:48c8) + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [CurDay] + ld [$aa8b], a + xor a + ld [$aa8c], a + ld a, [$aa5d] + cp $2 + jr nc, .asm_1708ec + ld a, [CurDay] + ld [$aa48], a + ld a, $1 + ld [$aa47], a +.asm_1708ec + call CloseSRAM + ret + +Function1708f0: ; 1708f0 (5c:48f0) + xor a + ld [ScriptVar], a + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [$aa48] + ld c, a + ld a, [$aa47] + call CloseSRAM + and a + ret z + ld hl, CurDay + ld a, c + cp [hl] + jr nz, Function170923 + ld a, $5 + call GetSRAMBank + ld a, [$aa5d] + call CloseSRAM + cp $5 + ret c + ld a, $1 + ld [ScriptVar], a + ret + + +Function170923: ; 170923 + ld a, $5 + call GetSRAMBank + xor a + ld [$aa48], a + ld [$aa47], a + ld hl, $aa5d + ld bc, $0011 + call ByteFill + call CloseSRAM + ret +; 17093c + + +Function17093c: ; 17093c (5c:493c) + xor a + ld [ScriptVar], a + ld a, EGG_TICKET + ld [CurItem], a + ld hl, NumItems + call CheckItem + ret nc + ld a, [PartyCount] + ld b, 0 + ld c, a + ld hl, PartySpecies +.loop + ld a, [hli] + cp EGG + jr nz, .not_egg + push hl + ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) + ld de, $6 + ld a, b + and a + jr z, .skip +.loop2 + add hl, de + dec a + jr nz, .loop2 +.skip + ld de, String_1709a4 + ld a, $6 +.asm_17096e + push af + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_17099d + pop af + dec a + jr nz, .asm_17096e +rept 4 + dec hl +endr + ld a, $50 +rept 2 + ld [hli], a +endr + pop hl + ld a, EGG_TICKET + ld [CurItem], a + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld a, $ff + ld [wd107], a + ld hl, NumItems + call TossItem + ld a, $1 + ld [ScriptVar], a + ret + +.asm_17099d + pop af + pop hl +.not_egg + inc b + dec c + jr nz, .loop + ret +; 1709a4 (5c:49a4) + +String_1709a4: ; 1709a4 + db "なぞナゾ@@" + +Function1709aa: ; 1709aa (5c:49aa) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, BANK(w3_d090) + ld [rSVBK], a ; $ff00+$70 + ld a, [w3_d090] + ld [ScriptVar], a + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +Function1709bb: ; 1709bb (5c:49bb) + xor a + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + ld a, [$a800] + call CloseSRAM + cp 6 + jr nc, .invalid + ld e, a + ld d, 0 + ld hl, Jumptable_1709e7 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.invalid + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + call CloseSRAM + ret +; 1709e7 (5c:49e7) + +Jumptable_1709e7: ; 1709e7 + dw Function170a00 + dw Function170a00 + dw Function1709f3 + dw Function1709f3 + dw Function170a01 + dw Function170a33 +; 1709f3 + +Function1709f3: ; 1709f3 + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$a800], a + call CloseSRAM + +Function170a00: ; 170a00 + ret +; 170a01 + +Function170a01: ; 170a01 + ld a, $5 + call GetSRAMBank + ld hl, $b023 + ld de, $c608 + ld bc, $0069 + call CopyBytes + ld a, [$a825] + ld [wcd30], a + ld a, [$a826] + ld [wcd31], a + call CloseSRAM + callba Function11b6b4 + callba Function17d0f3 + ld a, $1 + ld [ScriptVar], a + ret +; 170a33 + +Function170a33: ; 170a33 + ld a, $0 + call GetSRAMBank + ld hl, wRTC + ld de, $c608 + ld bc, $0004 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $b08c + ld de, $c608 + ld c, $4 +.asm_170a54 + ld a, [de] + inc de + cp [hl] + jr nz, .asm_170a78 + inc hl + dec c + jr nz, .asm_170a54 + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_170a72 + ld a, [de] + and a + ret nz + +.asm_170a72 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_170a78 + call CloseSRAM + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + call CloseSRAM + ld [ScriptVar], a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_170a9b + xor a + ld [de], a + +.asm_170a9b + ret +; 170a9c + +Function170a9c: ; 170a9c (5c:4a9c) + ld c, $0 + jr asm_170aa2 + +Function170aa0: ; 170aa0 (5c:4aa0) + ld c, $1 +asm_170aa2: ; 170aa2 (5c:4aa2) + ld a, $5 + call GetSRAMBank + ld a, c + ld [$aa8d], a + call CloseSRAM + ret + +Function170aaf: ; 170aaf (5c:4aaf) + ld a, $5 + call GetSRAMBank + ld a, [$aa8d] + ld [ScriptVar], a + call CloseSRAM + ret + +Function170abe: ; 170abe (5c:4abe) + call Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + and $1 + ld [ScriptVar], a + call CloseSRAM + ret + +Function170ad7: ; 170ad7 (5c:4ad7) + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + or $1 + ld [sbe4f], a + call CloseSRAM + ret + +Function170ae8: ; 170ae8 (5c:4ae8) + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld c, $a + call SimpleDivide + ld a, b + ld [wcd4f], a + xor a + ld [ScriptVar], a + callba Function119d93 + ret nc + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld [ScriptVar], a + ret + +Function170b16: ; 170b16 (5c:4b16) + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld c, 10 + call SimpleDivide + ld a, b + ld [wcd4f], a + xor a + ld [ScriptVar], a + callba Function119dd1 + ret nc + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld [ScriptVar], a + ret + +Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 + callba Function_LoadOpponentTrainerAndPokemons + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, wd10a + ld a, [hl] + dec a + ld c, a + ld b, $0 + pop af + ld [rSVBK], a + ld hl, Unknown_170b90 + add hl, bc + ld a, [hl] + ld [wcd49], a + +; Load sprite of the opponent trainer +; because s/he is chosen randomly and appears out of nowhere + ld a, [ScriptVar] + dec a + sla a + ld e, a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld d, $0 + ld hl, MapObjects + add hl, bc + inc hl + ld a, [wcd49] + ld [hl], a + ld hl, UsedSprites + add hl, de + ld [hli], a + ld [hUsedSpriteIndex], a + ld a, [hl] + ld [hUsedSpriteTile], a + callba Function143c8 + ret +; 170b90 + +Unknown_170b90: + db $12, $13, $14, $15, $18, $17 + db $16, $19, $04, $05, $11, $01 + db $1c, $1b, $21, $1e, $1a, $1d + db $1f, $3c, $20, $27, $27, $27 + db $28, $0a, $23, $24, $2a, $2b + db $35, $40, $2a, $29, $22, $25 + db $3a, $2b, $24, $49, $2b, $07 + db $2c, $2d, $4a, $0d, $4b, $3a + db $2b, $41, $35, $27, $28, $27 + db $36, $3e, $30, $2c, $2d, $3d + db $26, $2e, $06, $07, $43, $36 + +Function170bd2: ; 170bd2 + ret +; 170bd3 + +SpecialCheckForBattleTowerRules: ; 170bd3 + callba CheckForBattleTowerRules + jr c, .asm_170bde + xor a + jr .asm_170be0 + +.asm_170bde + ld a, $1 + +.asm_170be0 + ld [ScriptVar], a + ret +; 170be4 diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index dad53c287..76775c9b2 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -16504,6285 +16504,7 @@ Unknown_11bb7d: SECTION "bank47", ROMX, BANK[$47] -StoreText:: ; 11c000 - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -IF DEF(CRYSTAL11) - ld hl, wd10a -ELSE - ld hl, wd105 -ENDC - ld a, [hl] - dec a - ld e, a - ld d, 0 - ld hl, Unknown_11f2f0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_11c026 - ld a, [hRandomAdd] - and $1f - cp $19 - jr c, .asm_11c021 - sub $19 - -.asm_11c021 - ld hl, BTTrainerTexts - jr .asm_11c033 - -.asm_11c026 - ld a, [hRandomAdd] - and $f - cp $f - jr c, .asm_11c030 - sub $f - -.asm_11c030 - ld hl, Unknown_11f3ce - -.asm_11c033 - ld b, 0 - dec c - jr nz, .asm_11c03d - ld [wd000 + $200], a - jr .asm_11c040 - -.asm_11c03d - ld a, [wd000 + $200] - -.asm_11c040 - push af -rept 2 - add hl, bc -endr - ld a, [hli] - ld c, a - ld a, [hl] - ld h, a - ld l, c - pop af - ld c, a - ld b, 0 -rept 2 - add hl, bc -endr - ld a, [hli] - ld c, a - ld a, [hl] - ld l, c - ld h, a - bccoord 1, 14 - pop af - ld [rSVBK], a - call PlaceWholeStringInBoxAtOnce - ret -; 11c05d - -Function11c05d: ; 11c05d - ld a, e - or d - jr z, .asm_11c071 - ld a, e - and d - cp $ff - jr z, .asm_11c071 - push hl - call Function11c156 - pop hl - call PlaceString - and a - ret - -.asm_11c071 - ld c, l - ld b, h - scf - ret -; 11c075 - -Function11c075: ; 11c075 - push de - ld a, c - call Function11c254 - pop de - ld bc, wcd36 - call Function11c08f - ret -; 11c082 - -Function11c082: ; 11c082 - push de - ld a, c - call Function11c254 - pop de - ld bc, wcd36 - call Function11c0c6 - ret -; 11c08f - -Function11c08f: ; 11c08f - ld l, e - ld h, d - push hl - ld a, $3 -.asm_11c094 - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - push bc - call Function11c05d - jr c, .asm_11c0a2 - inc bc - -.asm_11c0a2 - ld l, c - ld h, b - pop bc - pop af - dec a - jr nz, .asm_11c094 - pop hl - ld de, $0028 - add hl, de - ld a, $3 -.asm_11c0b0 - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - push bc - call Function11c05d - jr c, .asm_11c0be - inc bc - -.asm_11c0be - ld l, c - ld h, b - pop bc - pop af - dec a - jr nz, .asm_11c0b0 - ret -; 11c0c6 - - -Function11c0c6: ; 11c0c6 - ld a, [wJumptableIndex] - ld l, a - ld a, [wcf64] - ld h, a - push hl - ld hl, $c608 + 16 - ld a, $0 - ld [hli], a - push de - xor a - ld [wJumptableIndex], a - ld a, $12 - ld [wcf64], a - ld a, $6 -.asm_11c0e1 - push af - ld a, [bc] - ld e, a - inc bc - ld a, [bc] - ld d, a - inc bc - or e - jr z, .asm_11c133 - push hl - push bc - call Function11c156 - call Function11c14a - ld e, c - pop bc - pop hl - ld a, e - or a - jr z, .asm_11c133 -.asm_11c0fa - ld a, [wcf64] - cp $12 - jr z, .asm_11c102 - inc e - -.asm_11c102 - cp e - jr nc, .asm_11c11c - ld a, [wJumptableIndex] - inc a - ld [wJumptableIndex], a - ld [hl], $4e - rra - jr c, .asm_11c113 - ld [hl], $55 - -.asm_11c113 - inc hl - ld a, $12 - ld [wcf64], a - dec e - jr .asm_11c0fa - -.asm_11c11c - cp $12 - jr z, .asm_11c123 - ld [hl], $7f - inc hl - -.asm_11c123 - sub e - ld [wcf64], a - ld de, $c608 -.asm_11c12a - ld a, [de] - cp $50 - jr z, .asm_11c133 - inc de - ld [hli], a - jr .asm_11c12a - -.asm_11c133 - pop af - dec a - jr nz, .asm_11c0e1 - ld [hl], $57 - pop bc - ld hl, $c608 + 16 - call PlaceWholeStringInBoxAtOnce - pop hl - ld a, l - ld [wJumptableIndex], a - ld a, h - ld [wcf64], a - ret -; 11c14a - -Function11c14a: ; 11c14a - ld c, $0 - ld hl, $c608 -.asm_11c14f - ld a, [hli] - cp $50 - ret z - inc c - jr .asm_11c14f -; 11c156 - -Function11c156: ; 11c156 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, $50 - ld hl, $c608 - ld bc, $000b - call ByteFill - ld a, d - and a - jr z, .asm_11c19c - ld hl, Unknown_11daac - dec d - sla d - ld c, d - ld b, $0 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - push bc - pop hl - ld c, e - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - add hl, bc - ld bc, $0005 -.asm_11c18f - ld de, $c608 - call CopyBytes - ld de, $c608 - pop af - ld [rSVBK], a - ret - -.asm_11c19c - ld a, e - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld bc, $000a - jr .asm_11c18f -; 11c1ab - -Function11c1ab: ; 11c1ab - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function11c1b9 - pop af - ld [hInMenu], a - ret -; 11c1b9 - -Function11c1b9: ; 11c1b9 - call Function11c1ca - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - call Function11c283 - pop af - ld [rSVBK], a - ret -; 11c1ca - -Function11c1ca: ; 11c1ca - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wcd23], a - ld [BGMapBuffer], a - ld [wcd21], a - ld [CreditsTimer], a - ld [wcd35], a - ld [wcd2b], a - ld a, $ff - ld [wcd24], a - ld a, [wcfa9] - dec a - call Function11c254 - call WhiteBGMap - call ClearSprites - call ClearScreen - call Function11d323 - call SetPalettes - call DisableLCD - ld hl, GFX_11d67e - ld de, VTiles2 - ld bc, $60 - call CopyBytes - ld hl, LZ_11d6de - ld de, VTiles0 - call Decompress - call EnableLCD - callba Function104061 - callba Function8cf53 - callba LoadPokemonData - callba Function40c30 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, $c6d0 - ld de, LYOverrides - ld bc, $100 - call CopyBytes - pop af - ld [rSVBK], a - call Function11d4aa - call Function11d3ba - ret -; 11c254 - -Function11c254: ; 11c254 - push af - ld a, $4 - call GetSRAMBank - ld hl, $a007 - pop af - sla a - sla a - ld c, a - sla a - add c - ld c, a - ld b, $0 - add hl, bc - ld de, wcd36 - ld bc, $000c - call CopyBytes - call CloseSRAM - ret -; 11c277 - - -Function11c277: ; 11c277 (47:4277) - ld a, $7f - hlcoord 0, 6 - ld bc, $f0 - call ByteFill - ret - -Function11c283: ; 11c283 -.asm_11c283 - call JoyTextDelay - ld a, [hJoyPressed] - ld [hJoypadPressed], a - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_11c2a2 - call Function11c2ac - callba Function8cf69 - callba Function104061 - jr .asm_11c283 - -.asm_11c2a2 - callba Function8cf53 - call ClearSprites - ret -; 11c2ac - -Function11c2ac: ; 11c2ac - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_11c2bb -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 11c2bb - - -Jumptable_11c2bb: ; 11c2bb (47:42bb) - dw Function11c2e9 - dw Function11c346 - dw Function11c35f - dw Function11c373 - dw Function11c3c2 - dw Function11c3ed - dw Function11c52c - dw Function11c53d - dw Function11c658 - dw Function11c675 - dw Function11c9bd - dw Function11c9c3 - dw Function11caad - dw Function11cab3 - dw Function11cb52 - dw Function11cb66 - dw Function11cbf5 - dw Function11ccef - dw Function11cd04 - dw Function11cd20 - dw Function11cd54 - dw Function11ce0b - dw Function11ce2b - - -Function11c2e9: ; 11c2e9 (47:42e9) - lb de, $1a, $0d - ld a, $1d - call Function3b2a - lb de, $42, $0d - ld a, $1d - call Function3b2a - ld hl, $c - add hl, bc - ld a, $1 - ld [hl], a - lb de, $4a, $10 - ld a, $1d - call Function3b2a - ld hl, $c - add hl, bc - ld a, $3 - ld [hl], a - lb de, $50, $80 - ld a, $1d - call Function3b2a - ld hl, $c - add hl, bc - ld a, $4 - ld [hl], a - lb de, $50, $20 - ld a, $1d - call Function3b2a - ld hl, $c - add hl, bc - ld a, $5 - ld [hl], a - lb de, $50, $10 - ld a, $1d - call Function3b2a - ld hl, $c - add hl, bc - ld a, $2 - ld [hl], a - ld hl, wcd23 - set 1, [hl] - set 2, [hl] - jp Function11cfb5 - -Function11c346: ; 11c346 (47:4346) - ld a, $9 - ld [wcd2d], a - ld a, $2 - ld [wcd2e], a - ld [wcd2f], a - ld [wcd30], a - ld de, wcd2d - call Function11cfce - jp Function11cfb5 - -Function11c35f: ; 11c35f (47:435f) - ld hl, wcd2f -rept 2 - inc [hl] -endr -rept 2 - dec hl -endr - dec [hl] - push af - ld de, wcd2d - call Function11cfce - pop af - ret nz - jp Function11cfb5 - -Function11c373: ; 11c373 (47:4373) - ld hl, wcd30 -rept 2 - inc [hl] -endr -rept 2 - dec hl -endr - dec [hl] - push af - ld de, wcd2d - call Function11cfce - pop af - ret nz - call Function11c38a - jp Function11cfb5 - -Function11c38a: ; 11c38a (47:438a) - ld hl, Unknown_11c986 - ld bc, wcd36 - ld a, $6 -.asm_11c392 - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - push de - pop hl - ld a, [bc] - inc bc - ld e, a - ld a, [bc] - inc bc - ld d, a - push bc - or e - jr z, .asm_11c3af - ld a, e - and d - cp $ff - jr z, .asm_11c3af - call Function11c05d - jr .asm_11c3b5 -.asm_11c3af - ld de, String_11c3bc - call PlaceString -.asm_11c3b5 - pop bc - pop hl - pop af - dec a - jr nz, .asm_11c392 - ret -; 11c3bc (47:43bc) - -String_11c3bc: ; 11c3bc - db "ーーーーー@" -; 11c3c2 - -Function11c3c2: ; 11c3c2 (47:43c2) - call Function11c277 - ld de, Unknown_11cfbe - call Function11d035 - hlcoord 1, 7 - ld de, String_11c4db - call PlaceString - hlcoord 1, 16 - ld de, String_11c51b - call PlaceString - call Function11c4be - ld hl, wcd23 - set 0, [hl] - ld hl, wcd24 - res 0, [hl] - call Function11cfb5 - -Function11c3ed: ; 11c3ed (47:43ed) - ld hl, BGMapBuffer ; wcd20 (aliases: CreditsPos) - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $8 - jr nz, .asm_11c426 - ld a, [de] - and $2 - jr nz, .asm_11c41a - ld a, [de] - and $1 - jr nz, .asm_11c42c - ld de, hJoyLast - ld a, [de] - and $40 - jr nz, .asm_11c47c - ld a, [de] - and $80 - jr nz, .asm_11c484 - ld a, [de] - and $20 - jr nz, .asm_11c48c - ld a, [de] - and $10 - jr nz, .asm_11c498 - ret -.asm_11c41a - call PlayClickSFX -.asm_11c41d - ld hl, wcd24 - set 0, [hl] - ld a, $c - jr .asm_11c475 -.asm_11c426 - ld a, $8 - ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) - ret -.asm_11c42c - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - cp $6 - jr c, .asm_11c472 - sub $6 - jr z, .asm_11c469 - dec a - jr z, .asm_11c41d - ld hl, wcd36 - ld c, $c - xor a -.asm_11c440 - or [hl] - inc hl - dec c - jr nz, .asm_11c440 - and a - jr z, .asm_11c460 - ld de, Unknown_11cfba - call Function11cfce - decoord 1, 2 - ld bc, wcd36 - call Function11c08f - ld hl, wcd24 - set 0, [hl] - ld a, $e - jr .asm_11c475 -.asm_11c460 - ld hl, wcd24 - set 0, [hl] - ld a, $11 - jr .asm_11c475 -.asm_11c469 - ld hl, wcd24 - set 0, [hl] - ld a, $a - jr .asm_11c475 -.asm_11c472 - call Function11c4a5 -.asm_11c475 - ld [wJumptableIndex], a - call PlayClickSFX - ret -.asm_11c47c - ld a, [hl] - cp $3 - ret c - sub $3 - jr .asm_11c4a3 -.asm_11c484 - ld a, [hl] - cp $6 - ret nc - add $3 - jr .asm_11c4a3 -.asm_11c48c - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - dec a - jr .asm_11c4a3 -.asm_11c498 - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - inc a -.asm_11c4a3 - ld [hl], a - ret - -Function11c4a5: ; 11c4a5 (47:44a5) - ld hl, wcd23 - res 0, [hl] - ld a, [wcd2b] - and a - jr nz, .asm_11c4b7 - xor a - ld [wcd21], a - ld a, $6 - ret -.asm_11c4b7 - xor a - ld [CreditsTimer], a - ld a, $15 - ret - -Function11c4be: ; 11c4be (47:44be) - ld a, $1 - hlcoord 0, 6, AttrMap - ld bc, $a0 - call ByteFill - ld a, $7 - hlcoord 0, 14, AttrMap - ld bc, $28 - call ByteFill - callba Function104061 - ret -; 11c4db (47:44db) - -String_11c4db: ; 11c4db - db "6つのことば", $1f, "くみあわせます" - next "かえたいところ", $1f, "えらぶと でてくる" - next "ことばのグループから いれかえたい" - next "たんご", $1f, "えらんでください" - db "@" -; 11c51b - -String_11c51b: ; 11c51b - db "ぜんぶけす やめる けってい@" -; 11c52c - -Function11c52c: ; 11c52c (47:452c) - call Function11c277 - call Function11c5f0 - call Function11c618 - ld hl, wcd24 - res 1, [hl] - call Function11cfb5 - -Function11c53d: ; 11c53d (47:453d) - ld hl, wcd21 - ld de, hJoypadPressed ; $ffa3 - - ld a, [de] - and START - jr nz, .start - - ld a, [de] - and SELECT - jr nz, .select - - ld a, [de] - and B_BUTTON - jr nz, .b - - ld a, [de] - and A_BUTTON - jr nz, .a - - ld de, hJoyLast - - ld a, [de] - and D_UP - jr nz, .up - - ld a, [de] - and D_DOWN - jr nz, .down - - ld a, [de] - and D_LEFT - jr nz, .left - - ld a, [de] - and D_RIGHT - jr nz, .right - - ret - -.a - ld a, [wcd21] - cp $f - jr c, .asm_11c59d - sub $f - jr z, .asm_11c5ab - dec a - jr z, .asm_11c599 - jr .b - -.start - ld hl, wcd24 - set 0, [hl] - ld a, $8 - ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) - -.b - ld a, $4 - jr .asm_11c59f - -.select - ld a, [wcd2b] - xor $1 - ld [wcd2b], a - ld a, $15 - jr .asm_11c59f - -.asm_11c599 - ld a, $13 - jr .asm_11c59f - -.asm_11c59d - ld a, $8 - -.asm_11c59f - ld hl, wcd24 - set 1, [hl] - ld [wJumptableIndex], a - call PlayClickSFX - ret - -.asm_11c5ab - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - call Function11ca6a - call PlayClickSFX - ret - -.up - ld a, [hl] - cp $3 - ret c - sub $3 - jr .asm_11c5ee - -.down - ld a, [hl] - cp $f - ret nc - add $3 - jr .asm_11c5ee - -.left - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - cp $9 - ret z - cp $c - ret z - cp $f - ret z - dec a - jr .asm_11c5ee - -.right - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - cp $b - ret z - cp $e - ret z - cp $11 - ret z - inc a - -.asm_11c5ee - ld [hl], a - ret -; 11c5f0 - -Function11c5f0: ; 11c5f0 (47:45f0) - ld de, Strings_11da52 - ld bc, Unknown_11c63a - ld a, $f -.asm_11c5f8 - push af - ld a, [bc] - inc bc - ld l, a - ld a, [bc] - inc bc - ld h, a - push bc - call PlaceString -.asm_11c603 - inc de - ld a, [de] - cp $50 - jr z, .asm_11c603 - pop bc - pop af - dec a - jr nz, .asm_11c5f8 - hlcoord 1, 17 - ld de, String_11c62a - call PlaceString - ret - -Function11c618: ; 11c618 (47:4618) - ld a, $2 - hlcoord 0, 6, AttrMap - ld bc, $c8 - call ByteFill - callba Function104061 - ret -; 11c62a (47:462a) - -String_11c62a: ; 11c62a - db "けす モード やめる@" -; 11c63a - -Unknown_11c63a: ; 11c63a - dwcoord 1, 7 - dwcoord 7, 7 - dwcoord 13, 7 - dwcoord 1, 9 - dwcoord 7, 9 - dwcoord 13, 9 - dwcoord 1, 11 - dwcoord 7, 11 - dwcoord 13, 11 - dwcoord 1, 13 - dwcoord 7, 13 - dwcoord 13, 13 - dwcoord 1, 15 - dwcoord 7, 15 - dwcoord 13, 15 -; 11c658 - -Function11c658: ; 11c658 (47:4658) - call Function11c277 - call Function11c770 - ld de, Unknown_11cfc2 - call Function11d035 - call Function11c9ab - call Function11c7bc - call Function11c86e - ld hl, wcd24 - res 3, [hl] - call Function11cfb5 - -Function11c675: ; 11c675 (47:4675) - ld hl, wcd25 - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and A_BUTTON - jr nz, .a - ld a, [de] - and B_BUTTON - jr nz, .b - ld a, [de] - and START - jr nz, .start - ld a, [de] - and SELECT - jr z, .select - - ld a, [wcd26] - and a - ret z - sub $c - jr nc, .asm_11c699 - xor a -.asm_11c699 - ld [wcd26], a - jr .asm_11c6c4 - -.start - ld hl, wcd28 - ld a, [wcd26] - add $c - cp [hl] - ret nc - ld [wcd26], a - ld a, [hl] - ld b, a - ld hl, wcd25 - ld a, [wcd26] - add [hl] - jr c, .asm_11c6b9 - cp b - jr c, .asm_11c6c4 -.asm_11c6b9 - ld a, [wcd28] - ld hl, wcd26 - sub [hl] - dec a - ld [wcd25], a -.asm_11c6c4 - call Function11c992 - call Function11c7bc - call Function11c86e - ret - -.select - ld de, hJoyLast - ld a, [de] - and D_UP - jr nz, .asm_11c708 - ld a, [de] - and D_DOWN - jr nz, .asm_11c731 - ld a, [de] - and D_LEFT - jr nz, .asm_11c746 - ld a, [de] - and D_RIGHT - jr nz, .asm_11c755 - ret - -.a - call Function11c8f6 - ld a, $4 - ld [wcd35], a - jr .asm_11c6fc -.b - ld a, [wcd2b] - and a - jr nz, .asm_11c6fa - ld a, $6 - jr .asm_11c6fc -.asm_11c6fa - ld a, $15 -.asm_11c6fc - ld [wJumptableIndex], a - ld hl, wcd24 - set 3, [hl] - call PlayClickSFX - ret -.asm_11c708 - ld a, [hl] - cp $3 - jr c, .asm_11c711 - sub $3 - jr .asm_11c76e -.asm_11c711 - ld a, [wcd26] - sub $3 - ret c - ld [wcd26], a - jr .asm_11c6c4 -.asm_11c71c - ld hl, wcd28 - ld a, [wcd26] - add $c - ret c - cp [hl] - ret nc - ld a, [wcd26] - add $3 - ld [wcd26], a - jr .asm_11c6c4 -.asm_11c731 - ld a, [wcd28] - ld b, a - ld a, [wcd26] - add [hl] - add $3 - cp b - ret nc - ld a, [hl] - cp $9 - jr nc, .asm_11c71c - add $3 - jr .asm_11c76e -.asm_11c746 - ld a, [hl] - and a - ret z - cp $3 - ret z - cp $6 - ret z - cp $9 - ret z - dec a - jr .asm_11c76e -.asm_11c755 - ld a, [wcd28] - ld b, a - ld a, [wcd26] - add [hl] - inc a - cp b - ret nc - ld a, [hl] - cp $2 - ret z - cp $5 - ret z - cp $8 - ret z - cp $b - ret z - inc a -.asm_11c76e - ld [hl], a - ret - -Function11c770: ; 11c770 (47:4770) - xor a - ld [wcd25], a - ld [wcd26], a - ld [wcd27], a - ld a, [wcd2b] - and a - jr nz, .asm_11c7ab - ld a, [wcd21] - and a - jr z, .asm_11c799 - dec a - sla a - ld hl, Unknown_11f220 - ld c, a - ld b, 0 - add hl, bc - ld a, [hli] - ld [wcd28], a - ld a, [hl] -.asm_11c795 - ld [wcd29], a - ret -.asm_11c799 - ld a, [wc7d2] - ld [wcd28], a -.asm_11c79f - ld c, $c - call SimpleDivide - and a - jr nz, .asm_11c7a8 - dec b -.asm_11c7a8 - ld a, b - jr .asm_11c795 -.asm_11c7ab - ld hl, $c68a + 30 - ld a, [CreditsTimer] - ld c, a - ld b, 0 -rept 2 - add hl, bc -endr - ld a, [hl] - ld [wcd28], a - jr .asm_11c79f - -Function11c7bc: ; 11c7bc (47:47bc) - ld bc, Unknown_11c854 - ld a, [wcd2b] - and a - jr nz, .asm_11c814 - ld a, [wcd21] - ld d, a - and a - jr z, .asm_11c7e9 - ld a, [wcd26] - ld e, a -.asm_11c7d0 - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - ret z - push bc - push de - call Function11c05d - pop de - pop bc - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c7d0 - ret -.asm_11c7e9 - ld hl, wd100 - ld a, [wcd26] - ld e, a - add hl, de -.asm_11c7f1 - push de - ld a, [hli] - ld e, a - ld d, $0 - push hl - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - jr z, .asm_11c811 - push bc - call Function11c05d - pop bc - pop hl - pop de - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c7f1 - ret -.asm_11c811 - pop hl - pop de - ret -.asm_11c814 - ld hl, $c648 - ld a, [wcd22] - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wcd26] - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [wcd26] - ld e, a -.asm_11c831 - push de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld a, [bc] - ld l, a - inc bc - ld a, [bc] - ld h, a - inc bc - and l - cp $ff - jr z, .asm_11c851 - push bc - call Function11c05d - pop bc - pop hl - pop de - inc e - ld a, [wcd28] - cp e - jr nz, .asm_11c831 - ret -.asm_11c851 - pop hl - pop de - ret -; 11c854 (47:4854) - -Unknown_11c854: ; 11c854 - dwcoord 2, 8 - dwcoord 8, 8 - dwcoord 14, 8 - dwcoord 2, 10 - dwcoord 8, 10 - dwcoord 14, 10 - dwcoord 2, 12 - dwcoord 8, 12 - dwcoord 14, 12 - dwcoord 2, 14 - dwcoord 8, 14 - dwcoord 14, 14 - dw -1 -; 11c86e - -Function11c86e: ; 11c86e (47:486e) - ld a, [wcd26] - and a - jr z, .asm_11c88a - hlcoord 2, 17 - ld de, String_11c8f0 - call PlaceString - hlcoord 6, 17 - ld c, $3 - xor a -.asm_11c883 - ld [hli], a - inc a - dec c - jr nz, .asm_11c883 - jr .asm_11c895 -.asm_11c88a - hlcoord 2, 17 - ld c, $7 - ld a, $7f -.asm_11c891 - ld [hli], a - dec c - jr nz, .asm_11c891 -.asm_11c895 - ld hl, wcd28 - ld a, [wcd26] - add $c - jr c, .asm_11c8b7 - cp [hl] - jr nc, .asm_11c8b7 - hlcoord 16, 17 - ld de, String_11c8f3 - call PlaceString - hlcoord 11, 17 - ld a, $3 - ld c, a -.asm_11c8b1 - ld [hli], a - inc a - dec c - jr nz, .asm_11c8b1 - ret -.asm_11c8b7 - hlcoord 17, 16 - ld a, $7f - ld [hl], a - hlcoord 11, 17 - ld c, $7 -.asm_11c8c2 - ld [hli], a - dec c - jr nz, .asm_11c8c2 - ret -; 11c8c7 (47:48c7) - -Function11c8c7: ; 11c8c7 - inc a - push af - and $f - ld [hDividend], a - pop af - and $f0 - swap a - ld [hQuotient], a - xor a - ld [$ffb5], a - push hl - callba Function11a80c - pop hl - ld a, [wcd63] - add $f6 - ld [hli], a - ld a, [wcd62] - add $f6 - ld [hli], a - ret -; 11c8ec - -String_11c8ec: ; 11c8ec - db "ぺージ@" -; 11c8f0 - -String_11c8f0: ; 11c8f0 - db "まえ@" -; 11c8f3 - -String_11c8f3: ; 11c8f3 - db "つぎ@" -; 11c8f6 - -Function11c8f6: ; 11c8f6 (47:48f6) - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - call Function11c95d - push hl - ld a, [wcd2b] - and a - jr nz, .asm_11c938 - ld a, [wcd21] - ld d, a - and a - jr z, .asm_11c927 - ld hl, wcd26 - ld a, [wcd25] - add [hl] -.asm_11c911 - ld e, a -.asm_11c912 - pop hl - push de - call Function11c05d - pop de - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - ld c, a - ld b, $0 - ld hl, wcd36 -rept 2 - add hl, bc -endr - ld [hl], e - inc hl - ld [hl], d - ret -.asm_11c927 - ld hl, wcd26 - ld a, [wcd25] - add [hl] - ld c, a - ld b, $0 - ld hl, wd100 - add hl, bc - ld a, [hl] - jr .asm_11c911 -.asm_11c938 - ld hl, $c648 - ld a, [wcd22] - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - push de - pop hl - ld a, [wcd26] - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [wcd25] - ld e, a -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - jr .asm_11c912 - -Function11c95d: ; 11c95d (47:495d) - sla a - ld c, a - ld b, 0 - ld hl, Unknown_11c986 - add hl, bc - ld a, [hli] - ld c, a - ld a, [hl] - ld b, a - push bc - push bc - pop hl - ld a, $5 - ld c, a - ld a, $7f -.asm_11c972 - ld [hli], a - dec c - jr nz, .asm_11c972 - dec hl - ld bc, -20 - add hl, bc - ld a, $5 - ld c, a - ld a, $7f -.asm_11c980 - ld [hld], a - dec c - jr nz, .asm_11c980 - pop hl - ret -; 11c986 (47:4986) - -Unknown_11c986: - dwcoord 1, 2 - dwcoord 7, 2 - dwcoord 13, 2 - dwcoord 1, 4 - dwcoord 7, 4 - dwcoord 13, 4 -; 11c992 - -Function11c992: ; 11c992 (47:4992) - ld a, $8 - hlcoord 2, 7 -.asm_11c997 - push af - ld a, $7f - push hl - ld bc, $11 - call ByteFill - pop hl - ld bc, $14 - add hl, bc - pop af - dec a - jr nz, .asm_11c997 - ret - -Function11c9ab: ; 11c9ab (47:49ab) - ld a, $7 - hlcoord 0, 6, AttrMap - ld bc, $c8 - call ByteFill - callba Function104061 - ret - -Function11c9bd: ; 11c9bd (47:49bd) - ld de, String_11ca38 - call Function11ca7f - -Function11c9c3: ; 11c9c3 (47:49c3) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11c9de - ld a, [de] - and $2 - jr nz, .asm_11c9e9 - ld a, [de] - and $40 - jr nz, .asm_11c9f7 - ld a, [de] - and $80 - jr nz, .asm_11c9fc - ret -.asm_11c9de - ld a, [hl] - and a - jr nz, .asm_11c9e9 - call Function11ca5e - xor a - ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) -.asm_11c9e9 - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - call PlayClickSFX - ret -.asm_11c9f7 - ld a, [hl] - and a - ret z - dec [hl] - ret -.asm_11c9fc - ld a, [hl] - and a - ret nz - inc [hl] - ret - -Function11ca01: ; 11ca01 (47:4a01) - hlcoord 14, 7, AttrMap - ld de, $14 - ld a, $5 - ld c, a -.asm_11ca0a - push hl - ld a, $6 - ld b, a - ld a, $7 -.asm_11ca10 - ld [hli], a - dec b - jr nz, .asm_11ca10 - pop hl - add hl, de - dec c - jr nz, .asm_11ca0a - -Function11ca19: ; 11ca19 (47:4a19) - hlcoord 0, 12, AttrMap - ld de, $14 - ld a, $6 - ld c, a -.asm_11ca22 - push hl - ld a, $14 - ld b, a - ld a, $7 -.asm_11ca28 - ld [hli], a - dec b - jr nz, .asm_11ca28 - pop hl - add hl, de - dec c - jr nz, .asm_11ca22 - callba Function104061 - ret -; 11ca38 (47:4a38) - -String_11ca38: ; 11ca38 - db "とうろくちゅう", $25, "あいさつ", $1f, "ぜんぶ" - next "けしても よろしいですか?@" -; 11ca57 - -String_11ca57: ; 11ca57 - db "はい" - next "いいえ@" -; 11ca5e - -Function11ca5e: ; 11ca5e (47:4a5e) - xor a -.asm_11ca5f - push af - call Function11ca6a - pop af - inc a - cp $6 - jr nz, .asm_11ca5f - ret - -Function11ca6a: ; 11ca6a (47:4a6a) - ld hl, wcd36 - ld c, a - ld b, $0 -rept 2 - add hl, bc -endr - ld [hl], b - inc hl - ld [hl], b - call Function11c95d - ld de, String_11c3bc - call PlaceString - ret - -Function11ca7f: ; 11ca7f (47:4a7f) - push de - ld de, Unknown_11cfc6 - call Function11cfce - ld de, Unknown_11cfca - call Function11cfce - hlcoord 1, 14 - pop de - call PlaceString - hlcoord 16, 8 - ld de, String_11ca57 - call PlaceString - call Function11ca01 - ld a, $1 - ld [wcd2a], a - ld hl, wcd24 - res 4, [hl] - call Function11cfb5 - ret - -Function11caad: ; 11caad (47:4aad) - ld de, String_11cb1c - call Function11ca7f - -Function11cab3: ; 11cab3 (47:4ab3) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11cace - ld a, [de] - and $2 - jr nz, .asm_11caf9 - ld a, [de] - and $40 - jr nz, .asm_11cb12 - ld a, [de] - and $80 - jr nz, .asm_11cb17 - ret -.asm_11cace - call PlayClickSFX - ld a, [hl] - and a - jr nz, .asm_11cafc - ld a, [wcd35] - and a - jr z, .asm_11caf3 - cp $ff - jr z, .asm_11caf3 - ld a, $ff - ld [wcd35], a - hlcoord 1, 14 - ld de, String_11cb31 - call PlaceString - ld a, $1 - ld [wcd2a], a - ret -.asm_11caf3 - ld hl, wJumptableIndex - set 7, [hl] - ret -.asm_11caf9 - call PlayClickSFX -.asm_11cafc - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - ld a, [wcd35] - cp $ff - ret nz - ld a, $1 - ld [wcd35], a - ret -.asm_11cb12 - ld a, [hl] - and a - ret z - dec [hl] - ret -.asm_11cb17 - ld a, [hl] - and a - ret nz - inc [hl] - ret -; 11cb1c (47:4b1c) - -String_11cb1c: ; 11cb1c - db "あいさつ", $25, "とうろく", $1f, "ちゅうし" - next "しますか?@" -; 11cb31 - -String_11cb31: ; 11cb31 - db "とうろくちゅう", $25, "あいさつ", $24, "ほぞん" - next "されません", $4a, "よろしい ですか?@" -; 11cb52 - -Function11cb52: ; 11cb52 (47:4b52) - ld hl, Unknown_11cc01 - ld a, [wcfa9] -.asm_11cb58 - dec a - jr z, .asm_11cb5f -rept 2 - inc hl -endr - jr .asm_11cb58 -.asm_11cb5f - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - call Function11ca7f - -Function11cb66: ; 11cb66 (47:4b66) - ld hl, wcd2a - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and $1 - jr nz, .asm_11cb81 - ld a, [de] - and $2 - jr nz, .asm_11cbd7 - ld a, [de] - and $40 - jr nz, .asm_11cbeb - ld a, [de] - and $80 - jr nz, .asm_11cbf0 - ret -.asm_11cb81 - ld a, [hl] - and a - jr nz, .asm_11cbd4 - ld a, $4 - call GetSRAMBank - ld hl, $a007 - ld a, [wcfa9] - dec a - sla a - sla a - ld c, a - sla a - add c - ld c, a - ld b, $0 - add hl, bc - ld de, wcd36 - ld c, $c -.asm_11cba2 - ld a, [de] - ld [hli], a - inc de - dec c - jr nz, .asm_11cba2 - call CloseSRAM - call PlayClickSFX - ld de, Unknown_11cfc6 - call Function11cfce - ld hl, Unknown_11cc7e - ld a, [wcfa9] -.asm_11cbba - dec a - jr z, .asm_11cbc1 -rept 2 - inc hl -endr - jr .asm_11cbba -.asm_11cbc1 - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - hlcoord 1, 14 - call PlaceString - ld hl, wJumptableIndex - inc [hl] - inc hl - ld a, $10 - ld [hl], a - ret -.asm_11cbd4 - call PlayClickSFX -.asm_11cbd7 - ld de, Unknown_11cfba - call Function11cfce - call Function11c38a - ld hl, wcd24 - set 4, [hl] - ld a, $4 - ld [wJumptableIndex], a - ret -.asm_11cbeb - ld a, [hl] - and a - ret z - dec [hl] - ret -.asm_11cbf0 - ld a, [hl] - and a - ret nz - inc [hl] - ret - -Function11cbf5: ; 11cbf5 (47:4bf5) - call WaitSFX - ld hl, wcf64 - dec [hl] - ret nz - dec hl - set 7, [hl] - ret -; 11cc01 (47:4c01) - -Unknown_11cc01: ; 11cc01 - dw String_11cc09 - dw String_11cc23 - dw String_11cc42 - dw String_11cc60 - -String_11cc09: ; 11cc09 - db "じこしょうかい は" - next "この あいさつで いいですか?@" - -String_11cc23: ; 11cc23 - db "たいせん ", $4a, "はじまるとき は" - next "この あいさつで いいですか?@" - -String_11cc42: ; 11cc42 - db "たいせん ", $1d, "かったとき は" - next "この あいさつで いいですか?@" - -String_11cc60: ; 11cc60 - db "たいせん ", $1d, "まけたとき は" - next "この あいさつで いいですか?@" -; 11cc7e - -Unknown_11cc7e: ; 11cc7e - dw String_11cc86 - dw String_11cc9d - dw String_11ccb9 - dw String_11ccd4 - -String_11cc86: ; 11cc86 - db "じこしょうかい の" - next "あいさつ", $1f, "とうろくした!@" - -String_11cc9d: ; 11cc9d - db "たいせん ", $4a, "はじまるとき の" - next "あいさつ", $1f, "とうろくした!@" - -String_11ccb9: ; 11ccb9 - db "たいせん ", $1d, "かったとき の" - next "あいさつ", $1f, "とうろくした!@" - -String_11ccd4: ; 11ccd4 - db "たいせん ", $1d, "まけたとき の" - next "あいさつ", $1f, "とうろくした!@" -; 11ccef - -Function11ccef: ; 11ccef (47:4cef) - ld de, Unknown_11cfc6 - call Function11cfce - hlcoord 1, 14 - ld de, String_11cd10 - call PlaceString - call Function11ca19 - call Function11cfb5 - -Function11cd04: ; 11cd04 (47:4d04) - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and a - ret z - ld a, $4 - ld [wJumptableIndex], a - ret -; 11cd10 (47:4d10) - -String_11cd10: ; 11cd10 - db "なにか ことば", $1f, "いれてください@" -; 11cd20 - -Function11cd20: ; 11cd20 (47:4d20) - call Function11c277 - ld de, Unknown_11cfc6 - call Function11cfce - hlcoord 1, 14 - ld a, [wcd2b] - ld [wcd2c], a - and a - jr nz, .asm_11cd3a - ld de, String_11cdc7 - jr .asm_11cd3d -.asm_11cd3a - ld de, String_11cdd9 -.asm_11cd3d - call PlaceString - hlcoord 4, 8 - ld de, String_11cdf5 - call PlaceString - call Function11cdaa - ld hl, wcd24 - res 5, [hl] - call Function11cfb5 - -Function11cd54: ; 11cd54 (47:4d54) - ld hl, wcd2c - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and A_BUTTON - jr nz, .asm_11cd6f - ld a, [de] - and B_BUTTON - jr nz, .asm_11cd73 - ld a, [de] - and D_UP - jr nz, .asm_11cd8b - ld a, [de] - and D_DOWN - jr nz, .asm_11cd94 - ret - -.asm_11cd6f - ld a, [hl] - ld [wcd2b], a -.asm_11cd73 - ld a, [wcd2b] - and a - jr nz, .asm_11cd7d - ld a, $6 - jr .asm_11cd7f - -.asm_11cd7d - ld a, $15 -.asm_11cd7f - ld [wJumptableIndex], a - ld hl, wcd24 - set 5, [hl] - call PlayClickSFX - ret - -.asm_11cd8b - ld a, [hl] - and a - ret z - dec [hl] - ld de, String_11cdc7 - jr .asm_11cd9b - -.asm_11cd94 - ld a, [hl] - and a - ret nz - inc [hl] - ld de, String_11cdd9 -.asm_11cd9b - push de - ld de, Unknown_11cfc6 - call Function11cfce - pop de - hlcoord 1, 14 - call PlaceString - ret - -Function11cdaa: ; 11cdaa (47:4daa) - ld a, $2 - hlcoord 0, 6, AttrMap - ld bc, $78 - call ByteFill - ld a, $7 - hlcoord 0, 12, AttrMap - ld bc, $50 - call ByteFill - callba Function104061 - ret -; 11cdc7 (47:4dc7) - -String_11cdc7: ; 11cdc7 - db "ことば", $1f, "しゅるいべつに" - next "えらべます@" -; 11cdd9 - -String_11cdd9: ; 11cdd9 - db "ことば", $1f, "アイウエォ の" - next "じゅんばんで ひょうじ します@" -; 11cdf5 - -String_11cdf5: ; 11cdf5 - db "しゅるいべつ モード" - next "アイウエォ モード@" -; 11ce0b - -Function11ce0b: ; 11ce0b (47:4e0b) - call Function11c277 - hlcoord 1, 7 - ld de, String_11cf79 - call PlaceString - hlcoord 1, 17 - ld de, String_11c62a - call PlaceString - call Function11c618 - ld hl, wcd24 - res 2, [hl] - call Function11cfb5 - -Function11ce2b: ; 11ce2b (47:4e2b) - ld a, [CreditsTimer] - sla a - sla a - ld c, a - ld b, 0 - ld hl, Unknown_11ceb9 - add hl, bc - - ld de, hJoypadPressed ; $ffa3 - ld a, [de] - and START - jr nz, .start - ld a, [de] - and SELECT - jr nz, .select - ld a, [de] - and A_BUTTON - jr nz, .a - ld a, [de] - and B_BUTTON - jr nz, .b - - ld de, hJoyLast - ld a, [de] - and D_UP - jr nz, .up - ld a, [de] - and D_DOWN - jr nz, .down - ld a, [de] - and D_LEFT - jr nz, .left - ld a, [de] - and D_RIGHT - jr nz, .right - - ret - -.a - ld a, [CreditsTimer] - cp $2d - jr c, .asm_11ce92 - sub $2d - jr z, .asm_11cea4 - dec a - jr z, .asm_11ce96 - jr .b - -.start - ld hl, wcd24 - set 0, [hl] - ld a, $8 - ld [BGMapBuffer], a ; wcd20 (aliases: CreditsPos) -.b - ld a, $4 - jr .asm_11ce98 -.select - ld a, [wcd2b] - xor $1 - ld [wcd2b], a - ld a, $6 - jr .asm_11ce98 - -.asm_11ce92 - ld a, $8 - jr .asm_11ce98 - -.asm_11ce96 - ld a, $13 -.asm_11ce98 - ld [wJumptableIndex], a - ld hl, wcd24 - set 2, [hl] - call PlayClickSFX - ret -.asm_11cea4 - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - call Function11ca6a - call PlayClickSFX - ret - -.left - inc hl -.down - inc hl -.right - inc hl -.up - ld a, [hl] - cp $ff - ret z - ld [CreditsTimer], a - ret -; 11ceb9 (47:4eb9) - -Unknown_11ceb9: ; 11ceb9 - ; up left down right - db $ff, $01, $05, $ff - db $ff, $02, $06, $00 - db $ff, $03, $07, $01 - db $ff, $04, $08, $02 - db $ff, $14, $09, $03 - db $00, $06, $0a, $ff - db $01, $07, $0b, $05 - db $02, $08, $0c, $06 - db $03, $09, $0d, $07 - db $04, $19, $0e, $08 - db $05, $0b, $0f, $ff - db $06, $0c, $10, $0a - db $07, $0d, $11, $0b - db $08, $0e, $12, $0c - db $09, $1e, $13, $0d - db $0a, $10, $2d, $ff - db $0b, $11, $2d, $0f - db $0c, $12, $2d, $10 - db $0d, $13, $2d, $11 - db $0e, $26, $2d, $12 - db $ff, $15, $19, $04 - db $ff, $16, $1a, $14 - db $ff, $17, $1b, $15 - db $ff, $18, $1c, $16 - db $ff, $23, $1d, $17 - db $14, $1a, $1e, $09 - db $15, $1b, $1f, $19 - db $16, $1c, $20, $1a - db $17, $1d, $21, $1b - db $18, $2b, $22, $1c - db $19, $1f, $26, $0e - db $1a, $20, $27, $1e - db $1b, $21, $28, $1f - db $1c, $22, $29, $20 - db $1d, $2c, $2a, $21 - db $ff, $24, $2b, $18 - db $ff, $25, $2b, $23 - db $ff, $ff, $2b, $24 - db $1e, $27, $2e, $13 - db $1f, $28, $2e, $26 - db $20, $29, $2e, $27 - db $21, $2a, $2e, $28 - db $22, $ff, $2e, $29 - db $23, $ff, $2c, $1d - db $2b, $ff, $2f, $22 - db $0f, $2e, $ff, $ff - db $26, $2f, $ff, $2d - db $2c, $ff, $ff, $2e -; 11cf79 - -String_11cf79: ; 11cf79 - db "あいうえお なにぬねの や ゆ よ" - next "かきくけこ はひふへほ わ" - next "さしすせそ まみむめも そのた" - next "たちつてと らりるれろ" - db "@" -; 11cfb5 - -Function11cfb5: ; 11cfb5 (47:4fb5) - ld hl, wJumptableIndex - inc [hl] - ret -; 11cfba (47:4fba) - -Unknown_11cfba: - db 0, 0 ; start coords - db 20, 6 ; end coords - -Unknown_11cfbe: - db 0, 14 ; start coords - db 20, 4 ; end coords - -Unknown_11cfc2: - db 0, 6 ; start coords - db 20, 10 ; end coords - -Unknown_11cfc6: - db 0, 12 ; start coords - db 20, 6 ; end coords - -Unknown_11cfca: - db 14, 7 ; start coords - db 6, 5 ; end coords -; 11cfce - -Function11cfce: ; 11cfce (47:4fce) - hlcoord 0, 0 - ld bc, $14 - ld a, [de] - inc de - push af - ld a, [de] - inc de - and a -.asm_11cfda - jr z, .asm_11cfe0 - add hl, bc - dec a - jr .asm_11cfda -.asm_11cfe0 - pop af - ld c, a - ld b, 0 - add hl, bc - push hl - ld a, $79 - ld [hli], a - ld a, [de] - inc de -rept 2 - dec a -endr - jr z, .asm_11cff6 - ld c, a - ld a, $7a -.asm_11cff2 - ld [hli], a - dec c - jr nz, .asm_11cff2 -.asm_11cff6 - ld a, $7b - ld [hl], a - pop hl - ld bc, $14 - add hl, bc - ld a, [de] - dec de -rept 2 - dec a -endr - jr z, .asm_11d022 - ld b, a -.asm_11d005 - push hl - ld a, $7c - ld [hli], a - ld a, [de] -rept 2 - dec a -endr - jr z, .asm_11d015 - ld c, a - ld a, $7f -.asm_11d011 - ld [hli], a - dec c - jr nz, .asm_11d011 -.asm_11d015 - ld a, $7c - ld [hl], a - pop hl - push bc - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, .asm_11d005 -.asm_11d022 - ld a, $7d - ld [hli], a - ld a, [de] -rept 2 - dec a -endr - jr z, .asm_11d031 - ld c, a - ld a, $7a -.asm_11d02d - ld [hli], a - dec c - jr nz, .asm_11d02d -.asm_11d031 - ld a, $7e - ld [hl], a - ret - -Function11d035: ; 11d035 (47:5035) - hlcoord 0, 0 - ld bc, $14 - ld a, [de] - inc de - push af - ld a, [de] - inc de - and a -.asm_11d041 - jr z, .asm_11d047 - add hl, bc - dec a - jr .asm_11d041 -.asm_11d047 - pop af - ld c, a - ld b, $0 - add hl, bc - push hl - ld a, $79 - ld [hl], a - pop hl - push hl - ld a, [de] - dec a - inc de - ld c, a - add hl, bc - ld a, $7b - ld [hl], a - call Function11d0ac - ld a, $7e - ld [hl], a - pop hl - push hl - call Function11d0ac - ld a, $7d - ld [hl], a - pop hl - push hl - inc hl - push hl - call Function11d0ac - pop bc - dec de - ld a, [de] - cp $2 - jr z, .asm_11d082 -rept 2 - dec a -endr -.asm_11d078 - push af - ld a, $7a - ld [hli], a - ld [bc], a - inc bc - pop af - dec a - jr nz, .asm_11d078 -.asm_11d082 - pop hl - ld bc, $14 - add hl, bc - push hl - ld a, [de] - dec a - ld c, a - ld b, $0 - add hl, bc - pop bc - inc de - ld a, [de] - cp $2 - ret z - push bc -rept 2 - dec a -endr - ld c, a - ld b, a - ld de, $14 -.asm_11d09c - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_11d09c - pop hl -.asm_11d0a4 - ld a, $7c - ld [hl], a - add hl, de - dec b - jr nz, .asm_11d0a4 - ret - -Function11d0ac: ; 11d0ac (47:50ac) - ld a, [de] - dec a - ld bc, $14 -.asm_11d0b1 - add hl, bc - dec a - jr nz, .asm_11d0b1 - ret - -Function11d0b6: ; 11d0b6 (47:50b6) - ld hl, $c - add hl, bc - ld a, [hl] - ld e, a - ld d, 0 - ld hl, Jumptable_11d0c7 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_11d0c7: ; 11d0c7 (47:50c7) - dw Function11d0dd - dw Function11d0e9 - dw Function11d0f5 - dw Function11d10f - dw Function11d134 - dw Function11d145 - dw Function11d156 - dw Function11d175 - dw Function11d1d7 - dw Function11d1d1 - dw Function11d1fc - - -Function11d0dd: ; 11d0dd (47:50dd) - ld a, [BGMapBuffer] ; wcd20 (aliases: CreditsPos) - sla a - ld hl, Unknown_11d208 - ld e, $1 - jr asm_11d11e - -Function11d0e9: ; 11d0e9 (47:50e9) - ld a, [wcd21] - sla a - ld hl, Unknown_11d21a - ld e, $2 - jr asm_11d11e - -Function11d0f5: ; 11d0f5 (47:50f5) - ld hl, Unknown_11d2be - ld a, [CreditsTimer] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - call Function3b3c - ld a, [CreditsTimer] - sla a - ld hl, Unknown_11d23e - ld e, $4 - jr asm_11d11e - -Function11d10f: ; 11d10f (47:510f) - ld a, $27 - call Function3b3c - ld a, [wcd25] - sla a - ld hl, Unknown_11d29e - ld e, $8 - -asm_11d11e: ; 11d11e (47:511e) - push de - ld e, a - ld d, $0 - add hl, de - push hl - pop de - ld hl, $4 - add hl, bc - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - pop de - ld a, e - call Function11d2ee - ret - -Function11d134: ; 11d134 (47:5134) - ld a, $27 - call Function3b3c - ld a, [wcd2a] - sla a - ld hl, Unknown_11d2b6 - ld e, $10 - jr asm_11d11e - -Function11d145: ; 11d145 (47:5145) - ld a, $27 - call Function3b3c - ld a, [wcd2c] - sla a - ld hl, Unknown_11d2ba - ld e, $20 - jr asm_11d11e - -Function11d156: ; 11d156 (47:5156) - ld a, $2a - call Function3b3c - ld a, [wcd4a] - sla a - sla a - sla a - add $18 - ld hl, $4 - add hl, bc - ld [hli], a - ld a, $30 - ld [hl], a - ld a, $1 - ld e, a - call Function11d2ee - ret - -Function11d175: ; 11d175 (47:5175) - ld a, [wcd4d] - cp $4 - jr z, .asm_11d180 - ld a, $28 - jr .asm_11d182 -.asm_11d180 - ld a, $26 -.asm_11d182 - call Function3b3c - ld a, [wcd4d] - cp $4 - jr z, .asm_11d1b1 - ld a, [wcd4c] - sla a - sla a - sla a - add $20 - ld hl, $4 - add hl, bc - ld [hli], a - ld a, [wcd4d] - sla a - sla a - sla a - sla a - add $48 - ld [hl], a - ld a, $2 - ld e, a - call Function11d2ee - ret -.asm_11d1b1 - ld a, [wcd4c] - sla a - sla a - sla a - ld e, a - sla a - sla a - add e - add $18 - ld hl, $4 - add hl, bc - ld [hli], a - ld a, $8a - ld [hl], a - ld a, $2 - ld e, a - call Function11d2ee - ret - -Function11d1d1: ; 11d1d1 (47:51d1) - ld d, $98 - ld a, $2c - jr asm_11d1db - -Function11d1d7: ; 11d1d7 (47:51d7) - ld d, $10 - ld a, $2b - -asm_11d1db: ; 11d1db (47:51db) - push de - call Function3b3c - ld a, [wcd4a] - sla a - sla a - sla a - ld e, a - sla a - add e - add $40 - ld hl, $5 - add hl, bc - ld [hld], a - pop af - ld [hl], a - ld a, $4 - ld e, a - call Function11d2ee - ret - -Function11d1fc: ; 11d1fc (47:51fc) - ld a, $26 - call Function3b3c - ld a, $8 - ld e, a - call Function11d2ee - ret -; 11d208 (47:5208) - -Unknown_11d208: ; 11d208 - db $0d, $1a - db $3d, $1a - db $6d, $1a - db $0d, $2a - db $3d, $2a - db $6d, $2a - db $0d, $8a - db $3d, $8a - db $6d, $8a - -Unknown_11d21a: ; 11d21a - db $0d, $42 - db $3d, $42 - db $6d, $42 - db $0d, $52 - db $3d, $52 - db $6d, $52 - db $0d, $62 - db $3d, $62 - db $6d, $62 - db $0d, $72 - db $3d, $72 - db $6d, $72 - db $0d, $82 - db $3d, $82 - db $6d, $82 - db $0d, $92 - db $3d, $92 - db $6d, $92 - -Unknown_11d23e: ; 11d23e - db $10, $48 - db $18, $48 - db $20, $48 - db $28, $48 - db $30, $48 - db $10, $58 - db $18, $58 - db $20, $58 - db $28, $58 - db $30, $58 - db $10, $68 - db $18, $68 - db $20, $68 - db $28, $68 - db $30, $68 - db $10, $78 - db $18, $78 - db $20, $78 - db $28, $78 - db $30, $78 - db $40, $48 - db $48, $48 - db $50, $48 - db $58, $48 - db $60, $48 - db $40, $58 - db $48, $58 - db $50, $58 - db $58, $58 - db $60, $58 - db $40, $68 - db $48, $68 - db $50, $68 - db $58, $68 - db $60, $68 - db $70, $48 - db $80, $48 - db $90, $48 - db $40, $78 - db $48, $78 - db $50, $78 - db $58, $78 - db $60, $78 - db $70, $58 - db $70, $68 - db $0d, $92 - db $3d, $92 - db $6d, $92 - -Unknown_11d29e: ; 11d29e - db $10, $50 - db $40, $50 - db $70, $50 - db $10, $60 - db $40, $60 - db $70, $60 - db $10, $70 - db $40, $70 - db $70, $70 - db $10, $80 - db $40, $80 - db $70, $80 - -Unknown_11d2b6: ; 11d2b6 - db $80, $50 - db $80, $60 - -Unknown_11d2ba: ; 11d2ba - db $20, $50 - db $20, $60 - -Unknown_11d2be: ; 11d2be - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $28, $28 - db $29, $26 - db $26, $26 - -Function11d2ee: ; 11d2ee (47:52ee) - ld hl, wcd24 - and [hl] - jr nz, .asm_11d316 - ld a, e - ld hl, wcd23 - and [hl] - jr z, .asm_11d30f - ld hl, $e - add hl, bc - ld a, [hl] - and a - jr z, .asm_11d305 - dec [hl] - ret -.asm_11d305 - ld a, $0 - ld [hld], a - ld a, $1 - xor [hl] - ld [hl], a - and a - jr nz, .asm_11d316 -.asm_11d30f - ld hl, $7 - add hl, bc - xor a - ld [hl], a - ret -.asm_11d316 - ld hl, $5 - add hl, bc - ld a, $b0 - sub [hl] - ld hl, $7 - add hl, bc - ld [hl], a - ret - -Function11d323: ; 11d323 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_11d33a - ld de, Unkn1Pals - ld bc, $0080 - call CopyBytes - pop af - ld [rSVBK], a - ret -; 11d33a - -Palette_11d33a: - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 31, 16, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 23, 17, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 31, 31, 31 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 - RGB 00, 00, 00 -; 11d3ba - -Function11d3ba: ; 11d3ba - ld a, [rSVBK] - push af - ld hl, BattleMonSpclDef - ld a, $0 - ld [wcd2d], a - ld [hli], a - ld a, $d8 - ld [wcd2e], a - ld [hl], a - ld a, $fe - ld [wcd2f], a - ld a, $54 - ld [wcd30], a - ld a, $a8 - ld [wcd31], a - ld a, $c6 - ld [wcd32], a - ld a, $4a - ld [wcd33], a - ld a, $c6 - ld [wcd34], a - ld hl, Unknown_11f23c - ld a, $2d - -Function11d3ef: ; 11d3ef - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - push hl - ld hl, Unkn1Pals - add hl, de - ld a, [wcd2d] - ld e, a - ld a, [wcd2e] - ld d, a - push bc -.asm_11d406 - ld a, $3 - ld [rSVBK], a - ld a, [hli] - push af - ld a, $5 - ld [rSVBK], a - pop af - ld [de], a - inc de - ld a, $3 - ld [rSVBK], a - ld a, [hli] - push af - ld a, $5 - ld [rSVBK], a - pop af - ld [de], a - inc de - dec bc - ld a, c - or b - jr nz, .asm_11d406 - ld a, [wcd2f] - ld l, a - ld a, [wcd30] - ld h, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, l - ld [wcd2f], a - ld a, h - ld [wcd30], a - push bc - pop hl - ld c, $0 -.asm_11d43d - ld a, [hl] - cp $ff - jr z, .asm_11d453 - call Function11d493 - jr nz, .asm_11d44a - inc hl - jr .asm_11d43d - -.asm_11d44a - ld a, [hli] - ld [de], a - inc de - xor a - ld [de], a - inc de - inc c - jr .asm_11d43d - -.asm_11d453 - pop hl - ld b, $0 - add hl, bc - push hl - pop bc - ld a, [wcd31] - ld l, a - ld a, [wcd32] - ld h, a - ld a, c - ld [hli], a - ld a, b - ld [hli], a - ld a, l - ld [wcd31], a - ld a, h - ld [wcd32], a - ld a, [wcd33] - ld l, a - ld a, [wcd34] - ld h, a - ld a, e - ld [wcd2d], a - ld [hli], a - ld a, d - ld [wcd2e], a - ld [hli], a - ld a, l - ld [wcd33], a - ld a, h - ld [wcd34], a - pop hl - pop af - dec a - jr z, .asm_11d48f - jp Function11d3ef - -.asm_11d48f - pop af - ld [rSVBK], a - ret -; 11d493 - -Function11d493: ; 11d493 - push hl - push bc - push de - dec a - ld hl, rSVBK - ld e, $1 - ld [hl], e - call CheckSeenMon - ld hl, rSVBK - ld e, $5 - ld [hl], e - pop de - pop bc - pop hl - ret -; 11d4aa - -Function11d4aa: ; 11d4aa - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, Unknown_11daac - ld bc, Unknown_11f220 - xor a - ld [wcd2d], a - inc a - ld [wcd2e], a - ld a, $e -.asm_11d4c1 - push af - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld hl, $0005 - add hl, de - ld a, [bc] -rept 2 - inc bc -endr - push bc -.asm_11d4cf - push af - push hl - ld a, [hli] - ld e, a - ld a, [hl] - ld d, a - ld hl, wd000 - add hl, de - ld a, [wcd2d] - ld [hli], a - inc a - ld [wcd2d], a - ld a, [wcd2e] - ld [hl], a - pop hl - ld de, $0008 - add hl, de - pop af - dec a - jr nz, .asm_11d4cf - ld hl, wcd2d - xor a - ld [hli], a - inc [hl] - pop bc - pop hl - pop af - dec a - jr nz, .asm_11d4c1 - pop af - ld [rSVBK], a - ret -; 11d4fe - - -Unknown_11d4fe: -; Pokemon sorted by kana. -; Notably, Rhydon is missing. - - dw Unknown_11d558 - dw Unknown_11d55f - dw Unknown_11d565 - dw Unknown_11d56c - dw Unknown_11d574 - dw Unknown_11d57f - dw Unknown_11d58e - dw Unknown_11d598 - dw Unknown_11d59f - dw Unknown_11d5a3 - dw Unknown_11d5b2 - dw Unknown_11d5bb - dw Unknown_11d5c0 - dw Unknown_11d5c8 - dw Unknown_11d5cb - dw Unknown_11d5cd - dw Unknown_11d5d1 - dw Unknown_11d5d4 - dw Unknown_11d5d6 - dw Unknown_11d5dc - dw Unknown_11d5e7 - dw Unknown_11d5ea - dw Unknown_11d5f7 - dw Unknown_11d5f9 - dw Unknown_11d5fc - dw Unknown_11d5fe - dw Unknown_11d60e - dw Unknown_11d61d - dw Unknown_11d62e - dw Unknown_11d636 - dw Unknown_11d63e - dw Unknown_11d649 - dw Unknown_11d64e - dw Unknown_11d651 - dw Unknown_11d656 - dw Unknown_11d65a - dw Unknown_11d660 - dw Unknown_11d662 - dw Unknown_11d665 - dw Unknown_11d66d - dw Unknown_11d671 - dw Unknown_11d674 - dw Unknown_11d678 - dw Unknown_11d67a - dw Unknown_11d67d - -Unknown_11d558: db EKANS, ARBOK, SEAKING, ARIADOS, CROCONAW, UNOWN, $ff -Unknown_11d55f: db EEVEE, GEODUDE, SPINARAK, PILOSWINE, ONIX, $ff -Unknown_11d565: db ARCANINE, SUDOWOODO, WEEPINBELL, VICTREEBEL, WOOPER, SWINUB, $ff -Unknown_11d56c: db SKARMORY, AIPOM, ESPEON, HITMONCHAN, ELEKID, ELECTABUZZ, ENTEI, $ff -Unknown_11d574: db FERALIGATR, FURRET, OCTILLERY, PRIMEAPE, SENTRET, STANTLER, SPEAROW, FEAROW, OMASTAR, OMANYTE, $ff -Unknown_11d57f: db GROWLITHE, MACHAMP, DRAGONITE, PINSIR, SNORLAX, KABUTO, KABUTOPS, HITMONTOP, WARTORTLE, BLASTOISE, FARFETCH_D, CUBONE, MAROWAK, KANGASKHAN, $ff -Unknown_11d58e: db SUNFLORA, CATERPIE, GYARADOS, RAPIDASH, NINETALES, GIRAFARIG, BELLOSSOM, KINGDRA, KINGLER, $ff -Unknown_11d598: db GLOOM, PINECO, GLIGAR, KRABBY, GRANBULL, CROBAT, $ff -Unknown_11d59f: db ABRA, GENGAR, TAUROS, $ff -Unknown_11d5a3: db MAGIKARP, MAGNEMITE, GASTLY, HAUNTER, MACHOKE, KAKUNA, PSYDUCK, PHANPY, RATTATA, GOLDUCK, GOLBAT, GOLEM, GRAVELER, VENONAT, $ff -Unknown_11d5b2: db RHYHORN, PUPITAR, CORSOLA, HITMONLEE, ZAPDOS, JOLTEON, SANDSHREW, SANDSLASH, $ff -Unknown_11d5bb: db SEADRA, SHELLDER, VAPOREON, DEWGONG, $ff -Unknown_11d5c0: db SUICUNE, STARMIE, SCYTHER, ZUBAT, BEEDRILL, HYPNO, DROWZEE, $ff -Unknown_11d5c8: db SQUIRTLE, CELEBI, $ff -Unknown_11d5cb: db WOBBUFFET, $ff -Unknown_11d5cd: db DUGTRIO, HORSEA, EXEGGCUTE, $ff -Unknown_11d5d1: db CHIKORITA, CHINCHOU, $ff -Unknown_11d5d4: db SHUCKLE, $ff -Unknown_11d5d6: db DIGLETT, REMORAID, DELIBIRD, HOUNDOUR, AMPHAROS, $ff -Unknown_11d5dc: db DODUO, DODRIO, SMEARGLE, KOFFING, TENTACRUEL, TOGETIC, TOGEPI, GOLDEEN, METAPOD, DONPHAN, $ff -Unknown_11d5e7: db ODDISH, EXEGGUTOR, $ff -Unknown_11d5ea: db NIDOKING, NIDOQUEEN, NIDORAN_M, NIDORAN_F, NIDORINA, NIDORINO, MEOWTH, SNEASEL, POLIWHIRL, POLITOED, POLIWRATH, POLIWAG, $ff -Unknown_11d5f7: db QUAGSIRE, $ff -Unknown_11d5f9: db NATU, XATU, $ff -Unknown_11d5fc: db DUNSPARCE, $ff -Unknown_11d5fe: db SEEL, STEELIX, TYPHLOSION, DRAGONAIR, BUTTERFREE, SCIZOR, HOPPIP, BLISSEY, PARAS, PARASECT, QWILFISH, MR__MIME, TYROGUE, CLOYSTER, TYRANITAR, $ff -Unknown_11d60e: db CLEFFA, WEEDLE, PIKACHU, CLEFABLE, PIDGEOT, PIDGEOTTO, PICHU, CLEFAIRY, CHARMANDER, STARYU, CYNDAQUIL, SUNKERN, TEDDIURSA, VOLTORB, $ff -Unknown_11d61d: db MOLTRES, FLAREON, ALAKAZAM, MAGMAR, FORRETRESS, WIGGLYTUFF, IVYSAUR, BULBASAUR, VENUSAUR, AERODACTYL, MAGBY, IGGLYBUFF, UMBREON, ARTICUNO, JIGGLYPUFF, SNUBBULL, $ff -Unknown_11d62e: db BAYLEEF, GRIMER, MUK, HERACROSS, HOUNDOOM, PERSIAN, LICKITUNG, $ff -Unknown_11d636: db HO_OH, HOOTHOOT, PIDGEY, PONYTA, SKIPLOOM, PORYGON, PORYGON2, $ff -Unknown_11d63e: db MAGCARGO, SLUGMA, QUILAVA, BELLSPROUT, WEEZING, MARILL, AZUMARILL, ELECTRODE, MANKEY, MANTINE, $ff -Unknown_11d649: db DRATINI, MEW, MEWTWO, MILTANK, $ff -Unknown_11d64e: db MISDREAVUS, SMOOCHUM, $ff -Unknown_11d651: db MEGANIUM, DITTO, TENTACOOL, MAREEP, $ff -Unknown_11d656: db FLAAFFY, VENOMOTH, TANGELA, $ff -Unknown_11d65a: db SLOWKING, SLOWBRO, SLOWPOKE, MURKROW, YANMA, $ff -Unknown_11d660: db KADABRA, $ff -Unknown_11d662: db LARVITAR, NOCTOWL, $ff -Unknown_11d665: db RAIKOU, RAICHU, CHANSEY, RATICATE, LAPRAS, VILEPLUME, LANTURN, $ff -Unknown_11d66d: db CHARMELEON, CHARIZARD, URSARING, $ff -Unknown_11d671: db JYNX, LUGIA, $ff -Unknown_11d674: db MAGNETON, LEDIAN, LEDYBA, $ff -Unknown_11d678: db VULPIX, $ff -Unknown_11d67a: db JUMPLUFF, TOTODILE, MACHOP -Unknown_11d67d: db $ff -; 11d67e - -GFX_11d67e: -INCBIN "gfx/pokedex/select_start.2bpp" -; 11d6de - -LZ_11d6de: -INCBIN "gfx/pokedex/slowpoke.2bpp.lz" -; 11da52 - -Strings_11da52: ; 11da52 - db "ポケモン@@" - db "タイプ@@@" - db "あいさつ@@" - db "ひと@@@@" - db "バトル@@@" - db "こえ@@@@" - db "かいわ@@@" - db "きもち@@@" - db "じょうたい@" - db "せいかつ@@" - db "しゅみ@@@" - db "こうどう@@" - db "じかん@@@" - db "むすび@@@" - db "あれこれ@@" -; 11daac - -Unknown_11daac: ; 11daac - dw Unknown_11dac8 - dw Unknown_11db58 - dw Unknown_11dc78 - dw Unknown_11dea0 - dw Unknown_11e0c8 - dw Unknown_11e2d8 - dw Unknown_11e4e8 - dw Unknown_11e710 - dw Unknown_11e920 - dw Unknown_11ea58 - dw Unknown_11eb90 - dw Unknown_11edb8 - dw Unknown_11eef0 - dw Unknown_11f100 - -Unknown_11dac8: ; 11dac8 - db "あく@@@", $26, $0, $0 - db "いわ@@@", $aa, $0, $0 - db "エスパー@", $da, $0, $0 - db "かくとう@", $4e, $1, $0 - db "くさ@@@", $ba, $1, $0 - db "ゴースト@", $e4, $1, $0 - db "こおり@@", $e6, $1, $0 - db "じめん@@", $68, $2, $0 - db "タイプ@@", $e8, $2, $0 - db "でんき@@", $8e, $3, $0 - db "どく@@@", $ae, $3, $0 - db "ドラゴン@", $bc, $3, $0 - db "ノーマル@", $22, $4, $0 - db "はがね@@", $36, $4, $0 - db "ひこう@@", $5e, $4, $0 - db "ほのお@@", $b2, $4, $0 - db "みず@@@", $f4, $4, $0 - db "むし@@@", $12, $5, $0 - -Unknown_11db58: ; 11db58 - db "ありがと@", $58, $0, $0 - db "ありがとう", $5a, $0, $0 - db "いくぜ!@", $80, $0, $0 - db "いくよ!@", $82, $0, $0 - db "いくわよ!", $84, $0, $0 - db "いやー@@", $a6, $0, $0 - db "おっす@@", $a, $1, $0 - db "おはつです", $22, $1, $0 - db "おめでとう", $2a, $1, $0 - db "ごめん@@", $f8, $1, $0 - db "ごめんよ@", $fa, $1, $0 - db "こらっ@@", $fc, $1, $0 - db "こんちは!", $a, $2, $0 - db "こんにちは", $10, $2, $0 - db "さようなら", $28, $2, $0 - db "サンキュー", $2e, $2, $0 - db "さんじょう", $30, $2, $0 - db "しっけい@", $48, $2, $0 - db "しつれい@", $4c, $2, $0 - db "じゃーね@", $6c, $2, $0 - db "すいません", $8c, $2, $0 - db "それじゃ@", $ca, $2, $0 - db "どうも@@", $a6, $3, $0 - db "なんじゃ@", $ee, $3, $0 - db "ハーイ@@", $2c, $4, $0 - db "はいはい@", $32, $4, $0 - db "バイバイ@", $34, $4, $0 - db "へイ@@@", $8a, $4, $0 - db "またね@@", $de, $4, $0 - db "もしもし@", $32, $5, $0 - db "やあ@@@", $3e, $5, $0 - db "やっほー@", $4e, $5, $0 - db "よう@@@", $62, $5, $0 - db "ようこそ@", $64, $5, $0 - db "よろしく@", $80, $5, $0 - db "らっしゃい", $94, $5, $0 - -Unknown_11dc78: ; 11dc78 - db "あいて@@", $1c, $0, $0 - db "あたし@@", $36, $0, $0 - db "あなた@@", $40, $0, $0 - db "あなたが@", $42, $0, $0 - db "あなたに@", $44, $0, $0 - db "あなたの@", $46, $0, $0 - db "あなたは@", $48, $0, $0 - db "あなたを@", $4a, $0, $0 - db "おかあさん", $e8, $0, $0 - db "おじいさん", $fc, $0, $0 - db "おじさん@", $2, $1, $0 - db "おとうさん", $e, $1, $0 - db "おとこのこ", $10, $1, $0 - db "おとな@@", $14, $1, $0 - db "おにいさん", $16, $1, $0 - db "おねえさん", $18, $1, $0 - db "おばあさん", $1c, $1, $0 - db "おばさん@", $20, $1, $0 - db "おれさま@", $34, $1, $0 - db "おんなのこ", $3a, $1, $0 - db "ガール@@", $40, $1, $0 - db "かぞく@@", $52, $1, $0 - db "かのじょ@", $72, $1, $0 - db "かれ@@@", $7c, $1, $0 - db "きみ@@@", $9a, $1, $0 - db "きみが@@", $9c, $1, $0 - db "きみに@@", $9e, $1, $0 - db "きみの@@", $a0, $1, $0 - db "きみは@@", $a2, $1, $0 - db "きみを@@", $a4, $1, $0 - db "ギャル@@", $ae, $1, $0 - db "きょうだい", $b2, $1, $0 - db "こども@@", $f0, $1, $0 - db "じぶん@@", $54, $2, $0 - db "じぶんが@", $56, $2, $0 - db "じぶんに@", $58, $2, $0 - db "じぶんの@", $5a, $2, $0 - db "じぶんは@", $5c, $2, $0 - db "じぶんを@", $5e, $2, $0 - db "だれ@@@", $18, $3, $0 - db "だれか@@", $1a, $3, $0 - db "だれが@@", $1c, $3, $0 - db "だれに@@", $1e, $3, $0 - db "だれの@@", $20, $3, $0 - db "だれも@@", $22, $3, $0 - db "だれを@@", $24, $3, $0 - db "ちゃん@@", $38, $3, $0 - db "ともだち@", $b8, $3, $0 - db "なかま@@", $d4, $3, $0 - db "ひと@@@", $62, $4, $0 - db "ボーイ@@", $98, $4, $0 - db "ボク@@@", $a0, $4, $0 - db "ボクが@@", $a2, $4, $0 - db "ボクに@@", $a4, $4, $0 - db "ボクの@@", $a6, $4, $0 - db "ボクは@@", $a8, $4, $0 - db "ボクを@@", $aa, $4, $0 - db "みんな@@", $4, $5, $0 - db "みんなが@", $6, $5, $0 - db "みんなに@", $8, $5, $0 - db "みんなの@", $a, $5, $0 - db "みんなは@", $c, $5, $0 - db "ライバル@", $8a, $5, $0 - db "わたし@@", $c2, $5, $0 - db "わたしが@", $c4, $5, $0 - db "わたしに@", $c6, $5, $0 - db "わたしの@", $c8, $5, $0 - db "わたしは@", $ca, $5, $0 - db "わたしを@", $cc, $5, $0 - -Unknown_11dea0: ; 11dea0 - db "あいしょう", $18, $0, $0 - db "いけ!@@", $88, $0, $0 - db "いちばん@", $96, $0, $0 - db "かくご@@", $4c, $1, $0 - db "かたせて@", $54, $1, $0 - db "かち@@@", $56, $1, $0 - db "かつ@@@", $58, $1, $0 - db "かった@@", $60, $1, $0 - db "かったら@", $62, $1, $0 - db "かって@@", $64, $1, $0 - db "かてない@", $66, $1, $0 - db "かてる@@", $68, $1, $0 - db "かなわない", $70, $1, $0 - db "きあい@@", $84, $1, $0 - db "きめた@@", $a8, $1, $0 - db "きりふだ@", $b6, $1, $0 - db "くらえ@@", $c2, $1, $0 - db "こい!@@", $da, $1, $0 - db "こうげき@", $e0, $1, $0 - db "こうさん@", $e2, $1, $0 - db "こんじょう", $8, $2, $0 - db "さいのう@", $16, $2, $0 - db "さくせん@", $1a, $2, $0 - db "さばき@@", $22, $2, $0 - db "しょうぶ@", $7e, $2, $0 - db "しょうり@", $80, $2, $0 - db "せめ@@@", $b4, $2, $0 - db "センス@@", $b6, $2, $0 - db "たいせん@", $e6, $2, $0 - db "たたかい@", $f6, $2, $0 - db "ちから@@", $32, $3, $0 - db "チャレンジ", $36, $3, $0 - db "つよい@@", $58, $3, $0 - db "つよすぎ@", $5a, $3, $0 - db "つらい@@", $5c, $3, $0 - db "つらかった", $5e, $3, $0 - db "てかげん@", $6c, $3, $0 - db "てき@@@", $6e, $3, $0 - db "てんさい@", $90, $3, $0 - db "でんせつ@", $94, $3, $0 - db "トレーナー", $c6, $3, $0 - db "にげ@@@", $4, $4, $0 - db "ぬるい@@", $10, $4, $0 - db "ねらう@@", $16, $4, $0 - db "バトル@@", $4a, $4, $0 - db "ファイト@", $72, $4, $0 - db "ふっかつ@", $78, $4, $0 - db "ポイント@", $94, $4, $0 - db "ポケモン@", $ac, $4, $0 - db "ほんき@@", $bc, $4, $0 - db "まいった!", $c4, $4, $0 - db "まけ@@@", $c8, $4, $0 - db "まけたら@", $ca, $4, $0 - db "まけて@@", $cc, $4, $0 - db "まける@@", $ce, $4, $0 - db "まもり@@", $ea, $4, $0 - db "みかた@@", $f2, $4, $0 - db "みとめない", $fe, $4, $0 - db "みとめる@", $0, $5, $0 - db "むてき@@", $16, $5, $0 - db "もらった!", $3c, $5, $0 - db "よゆう@@", $7a, $5, $0 - db "よわい@@", $82, $5, $0 - db "よわすぎ@", $84, $5, $0 - db "らくしょう", $8e, $5, $0 - db "りーダー@", $9e, $5, $0 - db "ルール@@", $a0, $5, $0 - db "レべル@@", $a6, $5, $0 - db "わざ@@@", $be, $5, $0 - -Unknown_11e0c8: ; 11e0c8 - db "!@@@@", $0, $0, $0 - db "!!@@@", $2, $0, $0 - db "!?@@@", $4, $0, $0 - db "?@@@@", $6, $0, $0 - db "…@@@@", $8, $0, $0 - db "…!@@@", $a, $0, $0 - db "………@@", $c, $0, $0 - db "ー@@@@", $e, $0, $0 - db "ーーー@@", $10, $0, $0 - db "あーあ@@", $14, $0, $0 - db "あーん@@", $16, $0, $0 - db "あははー@", $52, $0, $0 - db "あら@@@", $54, $0, $0 - db "いえ@@@", $72, $0, $0 - db "イエス@@", $74, $0, $0 - db "うう@@@", $ac, $0, $0 - db "うーん@@", $ae, $0, $0 - db "うおー!@", $b0, $0, $0 - db "うおりゃー", $b2, $0, $0 - db "うひょー@", $bc, $0, $0 - db "うふふ@@", $be, $0, $0 - db "うわー@@", $ca, $0, $0 - db "うわーん@", $cc, $0, $0 - db "ええ@@@", $d2, $0, $0 - db "えー@@@", $d4, $0, $0 - db "えーん@@", $d6, $0, $0 - db "えへへ@@", $dc, $0, $0 - db "おいおい@", $e0, $0, $0 - db "おお@@@", $e2, $0, $0 - db "おっと@@", $c, $1, $0 - db "がーん@@", $42, $1, $0 - db "キャー@@", $aa, $1, $0 - db "ギャー@@", $ac, $1, $0 - db "ぐふふふふ", $bc, $1, $0 - db "げっ@@@", $ce, $1, $0 - db "しくしく@", $3e, $2, $0 - db "ちえっ@@", $2e, $3, $0 - db "てへ@@@", $86, $3, $0 - db "ノー@@@", $20, $4, $0 - db "はあー@@", $2a, $4, $0 - db "はい@@@", $30, $4, $0 - db "はっはっは", $48, $4, $0 - db "ひいー@@", $56, $4, $0 - db "ひゃあ@@", $6a, $4, $0 - db "ふっふっふ", $7c, $4, $0 - db "ふにゃ@@", $7e, $4, $0 - db "ププ@@@", $80, $4, $0 - db "ふふん@@", $82, $4, $0 - db "ふん@@@", $88, $4, $0 - db "へっへっへ", $8e, $4, $0 - db "へへー@@", $90, $4, $0 - db "ほーほほほ", $9c, $4, $0 - db "ほら@@@", $b6, $4, $0 - db "まあ@@@", $c0, $4, $0 - db "むきー!!", $10, $5, $0 - db "むふー@@", $18, $5, $0 - db "むふふ@@", $1a, $5, $0 - db "むむ@@@", $1c, $5, $0 - db "よーし@@", $6a, $5, $0 - db "よし!@@", $72, $5, $0 - db "ラララ@@", $98, $5, $0 - db "わーい@@", $ac, $5, $0 - db "わーん!!", $b0, $5, $0 - db "ワォ@@@", $b2, $5, $0 - db "わっ!!@", $ce, $5, $0 - db "わははは!", $d0, $5, $0 - -Unknown_11e2d8: ; 11e2d8 - db "あのね@@", $50, $0, $0 - db "あんまり@", $6e, $0, $0 - db "いじわる@", $8e, $0, $0 - db "うそ@@@", $b6, $0, $0 - db "うむ@@@", $c4, $0, $0 - db "おーい@@", $e4, $0, $0 - db "おすすめ@", $6, $1, $0 - db "おばかさん", $1e, $1, $0 - db "かなり@@", $6e, $1, $0 - db "から@@@", $7a, $1, $0 - db "きぶん@@", $98, $1, $0 - db "けど@@@", $d6, $1, $0 - db "こそ@@@", $ea, $1, $0 - db "こと@@@", $ee, $1, $0 - db "さあ@@@", $12, $2, $0 - db "さっぱり@", $1e, $2, $0 - db "さて@@@", $20, $2, $0 - db "じゅうぶん", $72, $2, $0 - db "すぐ@@@", $94, $2, $0 - db "すごく@@", $98, $2, $0 - db "すこしは@", $9a, $2, $0 - db "すっっごい", $a0, $2, $0 - db "ぜーんぜん", $b0, $2, $0 - db "ぜったい@", $b2, $2, $0 - db "それで@@", $ce, $2, $0 - db "だけ@@@", $f2, $2, $0 - db "だって@@", $fc, $2, $0 - db "たぶん@@", $6, $3, $0 - db "たら@@@", $14, $3, $0 - db "ちょー@@", $3a, $3, $0 - db "ちょっと@", $3c, $3, $0 - db "ったら@@", $4e, $3, $0 - db "って@@@", $50, $3, $0 - db "ていうか@", $62, $3, $0 - db "でも@@@", $88, $3, $0 - db "どうしても", $9c, $3, $0 - db "とうぜん@", $a0, $3, $0 - db "どうぞ@@", $a2, $3, $0 - db "とりあえず", $be, $3, $0 - db "なあ@@@", $cc, $3, $0 - db "なんて@@", $f4, $3, $0 - db "なんでも@", $fc, $3, $0 - db "なんとか@", $fe, $3, $0 - db "には@@@", $8, $4, $0 - db "バッチり@", $46, $4, $0 - db "ばりばり@", $52, $4, $0 - db "ほど@@@", $b0, $4, $0 - db "ほんと@@", $be, $4, $0 - db "まさに@@", $d0, $4, $0 - db "マジ@@@", $d2, $4, $0 - db "マジで@@", $d4, $4, $0 - db "まったく@", $e4, $4, $0 - db "まで@@@", $e6, $4, $0 - db "まるで@@", $ec, $4, $0 - db "ムード@@", $e, $5, $0 - db "むしろ@@", $14, $5, $0 - db "めちゃ@@", $24, $5, $0 - db "めっぽう@", $28, $5, $0 - db "もう@@@", $2c, $5, $0 - db "モード@@", $2e, $5, $0 - db "もっと@@", $36, $5, $0 - db "もはや@@", $38, $5, $0 - db "やっと@@", $4a, $5, $0 - db "やっぱり@", $4c, $5, $0 - db "より@@@", $7c, $5, $0 - db "れば@@@", $a4, $5, $0 - -Unknown_11e4e8: ; 11e4e8 - db "あいたい@", $1a, $0, $0 - db "あそびたい", $32, $0, $0 - db "いきたい@", $7c, $0, $0 - db "うかれて@", $b4, $0, $0 - db "うれしい@", $c6, $0, $0 - db "うれしさ@", $c8, $0, $0 - db "エキサイト", $d8, $0, $0 - db "えらい@@", $de, $0, $0 - db "おかしい@", $ec, $0, $0 - db "ォッケー@", $8, $1, $0 - db "かえりたい", $48, $1, $0 - db "がっくし@", $5a, $1, $0 - db "かなしい@", $6c, $1, $0 - db "がんばって", $80, $1, $0 - db "きがしない", $86, $1, $0 - db "きがする@", $88, $1, $0 - db "ききたい@", $8a, $1, $0 - db "きになる@", $90, $1, $0 - db "きのせい@", $96, $1, $0 - db "きらい@@", $b4, $1, $0 - db "くやしい@", $be, $1, $0 - db "くやしさ@", $c0, $1, $0 - db "さみしい@", $24, $2, $0 - db "ざんねん@", $32, $2, $0 - db "しあわせ@", $36, $2, $0 - db "したい@@", $44, $2, $0 - db "したくない", $46, $2, $0 - db "しまった@", $64, $2, $0 - db "しょんぼり", $82, $2, $0 - db "すき@@@", $92, $2, $0 - db "だいきらい", $da, $2, $0 - db "たいくつ@", $dc, $2, $0 - db "だいじ@@", $de, $2, $0 - db "だいすき@", $e4, $2, $0 - db "たいへん@", $ea, $2, $0 - db "たのしい@", $0, $3, $0 - db "たのしすぎ", $2, $3, $0 - db "たべたい@", $8, $3, $0 - db "ダメダメ@", $e, $3, $0 - db "たりない@", $16, $3, $0 - db "ちくしょー", $34, $3, $0 - db "どうしよう", $9e, $3, $0 - db "ドキドキ@", $ac, $3, $0 - db "ナイス@@", $d0, $3, $0 - db "のみたい@", $26, $4, $0 - db "びっくり@", $60, $4, $0 - db "ふあん@@", $74, $4, $0 - db "ふらふら@", $86, $4, $0 - db "ほしい@@", $ae, $4, $0 - db "ボロボロ@", $b8, $4, $0 - db "まだまだ@", $e0, $4, $0 - db "まてない@", $e8, $4, $0 - db "まんぞく@", $f0, $4, $0 - db "みたい@@", $f8, $4, $0 - db "めずらしい", $22, $5, $0 - db "メラメラ@", $2a, $5, $0 - db "やだ@@@", $46, $5, $0 - db "やったー@", $48, $5, $0 - db "やばい@@", $50, $5, $0 - db "やばすぎる", $52, $5, $0 - db "やられた@", $54, $5, $0 - db "やられて@", $56, $5, $0 - db "よかった@", $6e, $5, $0 - db "ラブラブ@", $96, $5, $0 - db "ロマン@@", $a8, $5, $0 - db "ろんがい@", $aa, $5, $0 - db "わから@@", $b4, $5, $0 - db "わかり@@", $b6, $5, $0 - db "わくわく@", $ba, $5, $0 - -Unknown_11e710: ; 11e710 - db "あつい@@", $38, $0, $0 - db "あった@@", $3a, $0, $0 - db "あり@@@", $56, $0, $0 - db "ある@@@", $5e, $0, $0 - db "あわてて@", $6a, $0, $0 - db "いい@@@", $70, $0, $0 - db "いか@@@", $76, $0, $0 - db "イカス@@", $78, $0, $0 - db "いきおい@", $7a, $0, $0 - db "いける@@", $8a, $0, $0 - db "いじょう@", $8c, $0, $0 - db "いそがしい", $90, $0, $0 - db "いっしょに", $9a, $0, $0 - db "いっぱい@", $9c, $0, $0 - db "いない@@", $a0, $0, $0 - db "いや@@@", $a4, $0, $0 - db "いる@@@", $a8, $0, $0 - db "うまい@@", $c0, $0, $0 - db "うまく@@", $c2, $0, $0 - db "おおきい@", $e6, $0, $0 - db "おくれ@@", $f2, $0, $0 - db "おしい@@", $fa, $0, $0 - db "おもしろい", $2c, $1, $0 - db "おもしろく", $2e, $1, $0 - db "かっこいい", $5c, $1, $0 - db "かわいい@", $7e, $1, $0 - db "かんぺき@", $82, $1, $0 - db "けっこう@", $d0, $1, $0 - db "げんき@@", $d8, $1, $0 - db "こわい@@", $6, $2, $0 - db "さいこう@", $14, $2, $0 - db "さむい@@", $26, $2, $0 - db "さわやか@", $2c, $2, $0 - db "しかたない", $38, $2, $0 - db "すごい@@", $96, $2, $0 - db "すごすぎ@", $9c, $2, $0 - db "すてき@@", $a4, $2, $0 - db "たいした@", $e0, $2, $0 - db "だいじょぶ", $e2, $2, $0 - db "たかい@@", $ec, $2, $0 - db "ただしい@", $f8, $2, $0 - db "だめ@@@", $c, $3, $0 - db "ちいさい@", $2c, $3, $0 - db "ちがう@@", $30, $3, $0 - db "つかれ@@", $48, $3, $0 - db "とくい@@", $b0, $3, $0 - db "とまらない", $b6, $3, $0 - db "ない@@@", $ce, $3, $0 - db "なかった@", $d2, $3, $0 - db "なし@@@", $d8, $3, $0 - db "なって@@", $dc, $3, $0 - db "はやい@@", $50, $4, $0 - db "ひかる@@", $5a, $4, $0 - db "ひくい@@", $5c, $4, $0 - db "ひどい@@", $64, $4, $0 - db "ひとりで@", $66, $4, $0 - db "ひま@@@", $68, $4, $0 - db "ふそく@@", $76, $4, $0 - db "へた@@@", $8c, $4, $0 - db "まちがって", $e2, $4, $0 - db "やさしい@", $42, $5, $0 - db "よく@@@", $70, $5, $0 - db "よわって@", $86, $5, $0 - db "らく@@@", $8c, $5, $0 - db "らしい@@", $90, $5, $0 - db "わるい@@", $d4, $5, $0 - -Unknown_11e920: ; 11e920 - db "アルバイト", $64, $0, $0 - db "うち@@@", $ba, $0, $0 - db "おかね@@", $ee, $0, $0 - db "おこづかい", $f4, $0, $0 - db "おふろ@@", $24, $1, $0 - db "がっこう@", $5e, $1, $0 - db "きねん@@", $92, $1, $0 - db "グループ@", $c6, $1, $0 - db "ゲット@@", $d2, $1, $0 - db "こうかん@", $de, $1, $0 - db "しごと@@", $40, $2, $0 - db "しゅぎょう", $74, $2, $0 - db "じゅぎょう", $76, $2, $0 - db "じゅく@@", $78, $2, $0 - db "しんか@@", $88, $2, $0 - db "ずかん@@", $90, $2, $0 - db "せいかつ@", $ae, $2, $0 - db "せんせい@", $b8, $2, $0 - db "センター@", $ba, $2, $0 - db "タワー@@", $28, $3, $0 - db "つうしん@", $40, $3, $0 - db "テスト@@", $7e, $3, $0 - db "テレビ@@", $8c, $3, $0 - db "でんわ@@", $96, $3, $0 - db "どうぐ@@", $9a, $3, $0 - db "トレード@", $c4, $3, $0 - db "なまえ@@", $e8, $3, $0 - db "ニュース@", $a, $4, $0 - db "にんき@@", $c, $4, $0 - db "パーティー", $2e, $4, $0 - db "べんきょう", $92, $4, $0 - db "マシン@@", $d6, $4, $0 - db "めいし@@", $1e, $5, $0 - db "メッセージ", $26, $5, $0 - db "もようがえ", $3a, $5, $0 - db "ゆめ@@@", $5a, $5, $0 - db "ようちえん", $66, $5, $0 - db "ラジォ@@", $92, $5, $0 - db "ワールド@", $ae, $5, $0 - -Unknown_11ea58: ; 11ea58 - db "アイドル@", $1e, $0, $0 - db "アニメ@@", $4c, $0, $0 - db "うた@@@", $b8, $0, $0 - db "えいが@@", $d0, $0, $0 - db "おかし@@", $ea, $0, $0 - db "おしゃべり", $4, $1, $0 - db "おままごと", $28, $1, $0 - db "おもちゃ@", $30, $1, $0 - db "おんがく@", $38, $1, $0 - db "カード@@", $3e, $1, $0 - db "かいもの@", $46, $1, $0 - db "グルメ@@", $c8, $1, $0 - db "ゲーム@@", $cc, $1, $0 - db "ざっし@@", $1c, $2, $0 - db "さんぽ@@", $34, $2, $0 - db "じてんしゃ", $50, $2, $0 - db "しゅみ@@", $7a, $2, $0 - db "スポーツ@", $a8, $2, $0 - db "ダイエット", $d8, $2, $0 - db "たからもの", $f0, $2, $0 - db "たび@@@", $4, $3, $0 - db "ダンス@@", $2a, $3, $0 - db "つり@@@", $60, $3, $0 - db "デート@@", $6a, $3, $0 - db "でんしゃ@", $92, $3, $0 - db "ぬいぐるみ", $e, $4, $0 - db "パソコン@", $3e, $4, $0 - db "はな@@@", $4c, $4, $0 - db "ヒーロー@", $58, $4, $0 - db "ひるね@@", $6e, $4, $0 - db "ヒロイン@", $70, $4, $0 - db "ぼうけん@", $96, $4, $0 - db "ボード@@", $9a, $4, $0 - db "ボール@@", $9e, $4, $0 - db "ほん@@@", $ba, $4, $0 - db "マンガ@@", $ee, $4, $0 - db "やくそく@", $40, $5, $0 - db "やすみ@@", $44, $5, $0 - db "よてい@@", $74, $5, $0 - -Unknown_11eb90: ; 11eb90 - db "あう@@@", $20, $0, $0 - db "あきらめ@", $24, $0, $0 - db "あげる@@", $28, $0, $0 - db "あせる@@", $2e, $0, $0 - db "あそび@@", $30, $0, $0 - db "あそぶ@@", $34, $0, $0 - db "あつめ@@", $3e, $0, $0 - db "あるき@@", $60, $0, $0 - db "あるく@@", $62, $0, $0 - db "いく@@@", $7e, $0, $0 - db "いけ@@@", $86, $0, $0 - db "おき@@@", $f0, $0, $0 - db "おこり@@", $f6, $0, $0 - db "おこる@@", $f8, $0, $0 - db "おしえ@@", $fe, $0, $0 - db "おしえて@", $0, $1, $0 - db "おねがい@", $1a, $1, $0 - db "おぼえ@@", $26, $1, $0 - db "かえる@@", $4a, $1, $0 - db "がまん@@", $74, $1, $0 - db "きく@@@", $8c, $1, $0 - db "きたえ@@", $8e, $1, $0 - db "きめ@@@", $a6, $1, $0 - db "くる@@@", $c4, $1, $0 - db "さがし@@", $18, $2, $0 - db "さわぎ@@", $2a, $2, $0 - db "した@@@", $42, $2, $0 - db "しって@@", $4a, $2, $0 - db "して@@@", $4e, $2, $0 - db "しない@@", $52, $2, $0 - db "しまう@@", $60, $2, $0 - db "じまん@@", $66, $2, $0 - db "しらない@", $84, $2, $0 - db "しる@@@", $86, $2, $0 - db "しんじて@", $8a, $2, $0 - db "する@@@", $aa, $2, $0 - db "たべる@@", $a, $3, $0 - db "つかう@@", $42, $3, $0 - db "つかえ@@", $44, $3, $0 - db "つかって@", $46, $3, $0 - db "できない@", $70, $3, $0 - db "できる@@", $72, $3, $0 - db "でない@@", $84, $3, $0 - db "でる@@@", $8a, $3, $0 - db "なげる@@", $d6, $3, $0 - db "なやみ@@", $ea, $3, $0 - db "ねられ@@", $18, $4, $0 - db "ねる@@@", $1a, $4, $0 - db "のがし@@", $24, $4, $0 - db "のむ@@@", $28, $4, $0 - db "はしり@@", $3a, $4, $0 - db "はしる@@", $3c, $4, $0 - db "はたらき@", $40, $4, $0 - db "はたらく@", $42, $4, $0 - db "はまって@", $4e, $4, $0 - db "ぶつけ@@", $7a, $4, $0 - db "ほめ@@@", $b4, $4, $0 - db "みせて@@", $f6, $4, $0 - db "みて@@@", $fc, $4, $0 - db "みる@@@", $2, $5, $0 - db "めざす@@", $20, $5, $0 - db "もって@@", $34, $5, $0 - db "ゆずる@@", $58, $5, $0 - db "ゆるす@@", $5c, $5, $0 - db "ゆるせ@@", $5e, $5, $0 - db "られない@", $9a, $5, $0 - db "られる@@", $9c, $5, $0 - db "わかる@@", $b8, $5, $0 - db "わすれ@@", $c0, $5, $0 - -Unknown_11edb8: ; 11edb8 - db "あき@@@", $22, $0, $0 - db "あさ@@@", $2a, $0, $0 - db "あした@@", $2c, $0, $0 - db "いちにち@", $94, $0, $0 - db "いつか@@", $98, $0, $0 - db "いつも@@", $9e, $0, $0 - db "いま@@@", $a2, $0, $0 - db "えいえん@", $ce, $0, $0 - db "おととい@", $12, $1, $0 - db "おわり@@", $36, $1, $0 - db "かようび@", $78, $1, $0 - db "きのう@@", $94, $1, $0 - db "きょう@@", $b0, $1, $0 - db "きんようび", $b8, $1, $0 - db "げつようび", $d4, $1, $0 - db "このあと@", $f4, $1, $0 - db "このまえ@", $f6, $1, $0 - db "こんど@@", $c, $2, $0 - db "じかん@@", $3c, $2, $0 - db "じゅうねん", $70, $2, $0 - db "すいようび", $8e, $2, $0 - db "スタート@", $9e, $2, $0 - db "ずっと@@", $a2, $2, $0 - db "ストップ@", $a6, $2, $0 - db "そのうち@", $c4, $2, $0 - db "ついに@@", $3e, $3, $0 - db "つぎ@@@", $4a, $3, $0 - db "どようび@", $ba, $3, $0 - db "なつ@@@", $da, $3, $0 - db "にちようび", $6, $4, $0 - db "はじめ@@", $38, $4, $0 - db "はる@@@", $54, $4, $0 - db "ひる@@@", $6c, $4, $0 - db "ふゆ@@@", $84, $4, $0 - db "まいにち@", $c6, $4, $0 - db "もくようび", $30, $5, $0 - db "よなか@@", $76, $5, $0 - db "よる@@@", $7e, $5, $0 - db "らいしゅう", $88, $5, $0 - -Unknown_11eef0: ; 11eef0 - db "いたします", $92, $0, $0 - db "おります@", $32, $1, $0 - db "か!?@@", $3c, $1, $0 - db "かい?@@", $44, $1, $0 - db "かしら?@", $50, $1, $0 - db "かな?@@", $6a, $1, $0 - db "かも@@@", $76, $1, $0 - db "くれ@@@", $ca, $1, $0 - db "ございます", $e8, $1, $0 - db "しがち@@", $3a, $2, $0 - db "します@@", $62, $2, $0 - db "じゃ@@@", $6a, $2, $0 - db "じゃん@@", $6e, $2, $0 - db "しよう@@", $7c, $2, $0 - db "ぜ!@@@", $ac, $2, $0 - db "ぞ!@@@", $bc, $2, $0 - db "た@@@@", $d4, $2, $0 - db "だ@@@@", $d6, $2, $0 - db "だからね@", $ee, $2, $0 - db "だぜ@@@", $f4, $2, $0 - db "だった@@", $fa, $2, $0 - db "だね@@@", $fe, $2, $0 - db "だよ@@@", $10, $3, $0 - db "だよねー!", $12, $3, $0 - db "だわ@@@", $26, $3, $0 - db "ッス@@@", $4c, $3, $0 - db "ってかんじ", $52, $3, $0 - db "っぱなし@", $54, $3, $0 - db "つもり@@", $56, $3, $0 - db "ていない@", $64, $3, $0 - db "ている@@", $66, $3, $0 - db "でーす!@", $68, $3, $0 - db "でした@@", $74, $3, $0 - db "でしょ?@", $76, $3, $0 - db "でしょー!", $78, $3, $0 - db "です@@@", $7a, $3, $0 - db "ですか?@", $7c, $3, $0 - db "ですよ@@", $80, $3, $0 - db "ですわ@@", $82, $3, $0 - db "どうなの?", $a4, $3, $0 - db "どうよ?@", $a8, $3, $0 - db "とかいって", $aa, $3, $0 - db "なの@@@", $e0, $3, $0 - db "なのか@@", $e2, $3, $0 - db "なのだ@@", $e4, $3, $0 - db "なのよ@@", $e6, $3, $0 - db "なんだね@", $f2, $3, $0 - db "なんです@", $f8, $3, $0 - db "なんてね@", $fa, $3, $0 - db "ね@@@@", $12, $4, $0 - db "ねー@@@", $14, $4, $0 - db "の@@@@", $1c, $4, $0 - db "の?@@@", $1e, $4, $0 - db "ばっかり@", $44, $4, $0 - db "まーす!@", $c2, $4, $0 - db "ます@@@", $d8, $4, $0 - db "ますわ@@", $da, $4, $0 - db "ません@@", $dc, $4, $0 - db "みたいな@", $fa, $4, $0 - db "よ!@@@", $60, $5, $0 - db "よー@@@", $68, $5, $0 - db "よーん@@", $6c, $5, $0 - db "よね@@@", $78, $5, $0 - db "るよ@@@", $a2, $5, $0 - db "わけ@@@", $bc, $5, $0 - db "わよ!@@", $d2, $5, $0 - -Unknown_11f100: ; 11f100 - db "ああ@@@", $12, $0, $0 - db "あっち@@", $3c, $0, $0 - db "あの@@@", $4e, $0, $0 - db "ありゃ@@", $5c, $0, $0 - db "あれ@@@", $66, $0, $0 - db "あれは@@", $68, $0, $0 - db "あんな@@", $6c, $0, $0 - db "こう@@@", $dc, $1, $0 - db "こっち@@", $ec, $1, $0 - db "この@@@", $f2, $1, $0 - db "こりゃ@@", $fe, $1, $0 - db "これ@@@", $0, $2, $0 - db "これだ!@", $2, $2, $0 - db "これは@@", $4, $2, $0 - db "こんな@@", $e, $2, $0 - db "そう@@@", $be, $2, $0 - db "そっち@@", $c0, $2, $0 - db "その@@@", $c2, $2, $0 - db "そりゃ@@", $c6, $2, $0 - db "それ@@@", $c8, $2, $0 - db "それだ!@", $cc, $2, $0 - db "それは@@", $d0, $2, $0 - db "そんな@@", $d2, $2, $0 - db "どう@@@", $98, $3, $0 - db "どっち@@", $b2, $3, $0 - db "どの@@@", $b4, $3, $0 - db "どりゃ@@", $c0, $3, $0 - db "どれ@@@", $c2, $3, $0 - db "どれを@@", $c8, $3, $0 - db "どんな@@", $ca, $3, $0 - db "なに@@@", $de, $3, $0 - db "なんか@@", $ec, $3, $0 - db "なんだ@@", $f0, $3, $0 - db "なんで@@", $f6, $3, $0 - db "なんなんだ", $0, $4, $0 - db "なんの@@", $2, $4, $0 -; 11f220 - -Unknown_11f220: - db $12, $01, $24, $02 - db $45, $05, $45, $05 - db $42, $05, $42, $05 - db $45, $05, $42, $05 - db $27, $03, $27, $03 - db $45, $05, $27, $03 - db $42, $05, $24, $02 - -Unknown_11f23c: - db $12, $00, $2f, $00 - db $70, $00, $1e, $00 - db $ac, $00, $11, $00 - db $ce, $00, $09, $00 - db $e0, $00, $2e, $00 - db $3c, $01, $24, $00 - db $84, $01, $1b, $00 - db $ba, $01, $09, $00 - db $cc, $01, $07, $00 - db $da, $01, $1c, $00 - db $12, $02, $12, $00 - db $36, $02, $2b, $00 - db $8c, $02, $10, $00 - db $ac, $02, $08, $00 - db $bc, $02, $0c, $00 - db $d4, $02, $2c, $00 - db $2c, $03, $09, $00 - db $3e, $03, $12, $00 - db $62, $03, $1b, $00 - db $98, $03, $1a, $00 - db $cc, $03, $1c, $00 - db $04, $04, $05, $00 - db $0e, $04, $02, $00 - db $12, $04, $05, $00 - db $1c, $04, $07, $00 - db $2a, $04, $16, $00 - db $56, $04, $0e, $00 - db $72, $04, $0c, $00 - db $8a, $04, $05, $00 - db $94, $04, $16, $00 - db $c0, $04, $19, $00 - db $f2, $04, $0e, $00 - db $0e, $05, $08, $00 - db $1e, $05, $07, $00 - db $2c, $05, $09, $00 - db $3e, $05, $0d, $00 - db $58, $05, $04, $00 - db $60, $05, $14, $00 - db $88, $05, $0b, $00 - db $9e, $05, $01, $00 - db $a0, $05, $02, $00 - db $a4, $05, $02, $00 - db $a8, $05, $02, $00 - db $ac, $05, $15, $00 - db $00, $00, $09, $00 - -Unknown_11f2f0: - db $00, $01, $01, $00, $00, $01 - db $00, $01, $00, $00, $01, $00 - db $00, $01, $00, $00, $00, $01 - db $00, $00, $01, $00, $00, $00 - db $01, $01, $00, $01, $01, $00 - db $00, $00, $01, $01, $01, $00 - db $00, $00, $01, $00, $00, $00 - db $00, $00, $00, $00, $00, $00 - db $00, $00, $00, $00, $01, $00 - db $01, $00, $01, $00, $00, $01 - db $01, $01, $00, $00, $00, $01 - - -BTTrainerTexts: ; 11f332 - dw BTTrainerGreetings - dw BTTrainerPlayerLostTexts - dw BTTrainerPlayerWonTexts - -BTTrainerGreetings: ; 11f338 - dw BattleTowerTextJump_0x11f42e - dw BattleTowerTextJump_0x11f43d - dw UnknownText_0x11f44c - dw UnknownText_0x11f45b - dw UnknownText_0x11f46a - dw UnknownText_0x11f479 - dw UnknownText_0x11f488 - dw UnknownText_0x11f497 - dw UnknownText_0x11f4a6 - dw UnknownText_0x11f4b5 - dw UnknownText_0x11f4c4 - dw UnknownText_0x11f4d3 - dw UnknownText_0x11f4e2 - dw UnknownText_0x11f4f1 - dw UnknownText_0x11f500 - dw UnknownText_0x11f50f - dw UnknownText_0x11f51e - dw UnknownText_0x11f52d - dw UnknownText_0x11f53c - dw UnknownText_0x11f54b - dw UnknownText_0x11f55a - dw UnknownText_0x11f569 - dw UnknownText_0x11f578 - dw UnknownText_0x11f587 - dw UnknownText_0x11f596 - -BTTrainerPlayerLostTexts: ; 11f36a - dw BattleTowerTextJump_0x11f433 - dw UnknownText_0x11f442 - dw UnknownText_0x11f451 - dw UnknownText_0x11f460 - dw UnknownText_0x11f46f - dw UnknownText_0x11f47e - dw UnknownText_0x11f48d - dw UnknownText_0x11f49c - dw UnknownText_0x11f4ab - dw UnknownText_0x11f4ba - dw UnknownText_0x11f4c9 - dw UnknownText_0x11f4d8 - dw UnknownText_0x11f4e7 - dw UnknownText_0x11f4f6 - dw UnknownText_0x11f505 - dw UnknownText_0x11f514 - dw UnknownText_0x11f523 - dw UnknownText_0x11f532 - dw UnknownText_0x11f541 - dw UnknownText_0x11f550 - dw UnknownText_0x11f55f - dw UnknownText_0x11f56e - dw UnknownText_0x11f57d - dw UnknownText_0x11f58c - dw UnknownText_0x11f59b - -BTTrainerPlayerWonTexts: ; 11f39c - dw UnknownText_0x11f438 - dw UnknownText_0x11f447 - dw UnknownText_0x11f456 - dw UnknownText_0x11f465 - dw UnknownText_0x11f474 - dw UnknownText_0x11f483 - dw UnknownText_0x11f492 - dw UnknownText_0x11f4a1 - dw UnknownText_0x11f4b0 - dw UnknownText_0x11f4bf - dw UnknownText_0x11f4ce - dw UnknownText_0x11f4dd - dw UnknownText_0x11f4ec - dw UnknownText_0x11f4fb - dw UnknownText_0x11f50a - dw UnknownText_0x11f519 - dw UnknownText_0x11f528 - dw UnknownText_0x11f537 - dw UnknownText_0x11f546 - dw UnknownText_0x11f555 - dw UnknownText_0x11f564 - dw UnknownText_0x11f573 - dw UnknownText_0x11f582 - dw UnknownText_0x11f591 - dw UnknownText_0x11f5a0 - - -Unknown_11f3ce: - dw Unknown_11f3d4 - dw Unknown_11f3f2 - dw Unknown_11f410 - -Unknown_11f3d4: ; 11f3d4 - dw UnknownText_0x11f5a5 - dw UnknownText_0x11f5b4 - dw UnknownText_0x11f5c3 - dw UnknownText_0x11f5d2 - dw UnknownText_0x11f5e1 - dw UnknownText_0x11f5f0 - dw UnknownText_0x11f5ff - dw UnknownText_0x11f60e - dw UnknownText_0x11f61d - dw UnknownText_0x11f62c - dw UnknownText_0x11f63b - dw UnknownText_0x11f64a - dw UnknownText_0x11f659 - dw UnknownText_0x11f668 - dw UnknownText_0x11f677 - -Unknown_11f3f2: ; 11f3f2 - dw UnknownText_0x11f5aa - dw UnknownText_0x11f5b9 - dw UnknownText_0x11f5c8 - dw UnknownText_0x11f5d7 - dw UnknownText_0x11f5e6 - dw UnknownText_0x11f5f5 - dw UnknownText_0x11f604 - dw UnknownText_0x11f613 - dw UnknownText_0x11f622 - dw UnknownText_0x11f631 - dw UnknownText_0x11f640 - dw UnknownText_0x11f64f - dw UnknownText_0x11f65e - dw UnknownText_0x11f66d - dw UnknownText_0x11f67c - -Unknown_11f410: ; 11f410 - dw UnknownText_0x11f5af - dw UnknownText_0x11f5be - dw UnknownText_0x11f5cd - dw UnknownText_0x11f5dc - dw UnknownText_0x11f5eb - dw UnknownText_0x11f5fa - dw UnknownText_0x11f609 - dw UnknownText_0x11f618 - dw UnknownText_0x11f627 - dw UnknownText_0x11f636 - dw UnknownText_0x11f645 - dw UnknownText_0x11f654 - dw UnknownText_0x11f663 - dw UnknownText_0x11f672 - dw UnknownText_0x11f681 - - -BattleTowerTextJump_0x11f42e: ; 0x11f42e - text_jump BattleTowerText_0x1ec000 - db "@" - -BattleTowerTextJump_0x11f433: ; 0x11f433 - text_jump BattleTowerText_0x1ec03b - db "@" - -UnknownText_0x11f438: ; 0x11f438 - text_jump UnknownText_0x1ec060 - db "@" - -BattleTowerTextJump_0x11f43d: ; 0x11f43d - text_jump BattleTowerText_0x1ec080 - db "@" - -UnknownText_0x11f442: ; 0x11f442 - text_jump UnknownText_0x1ec0a3 - db "@" - -UnknownText_0x11f447: ; 0x11f447 - text_jump UnknownText_0x1ec0c4 - db "@" - -UnknownText_0x11f44c: ; 0x11f44c - text_jump UnknownText_0x1ec0e1 - db "@" - -UnknownText_0x11f451: ; 0x11f451 - text_jump UnknownText_0x1ec108 - db "@" - -UnknownText_0x11f456: ; 0x11f456 - text_jump UnknownText_0x1ec12a - db "@" - -UnknownText_0x11f45b: ; 0x11f45b - text_jump UnknownText_0x1ec14d - db "@" - -UnknownText_0x11f460: ; 0x11f460 - text_jump UnknownText_0x1ec16f - db "@" - -UnknownText_0x11f465: ; 0x11f465 - text_jump UnknownText_0x1ec190 - db "@" - -UnknownText_0x11f46a: ; 0x11f46a - text_jump UnknownText_0x1ec1ae - db "@" - -UnknownText_0x11f46f: ; 0x11f46f - text_jump UnknownText_0x1ec1d0 - db "@" - -UnknownText_0x11f474: ; 0x11f474 - text_jump UnknownText_0x1ec1f4 - db "@" - -UnknownText_0x11f479: ; 0x11f479 - text_jump UnknownText_0x1ec216 - db "@" - -UnknownText_0x11f47e: ; 0x11f47e - text_jump UnknownText_0x1ec238 - db "@" - -UnknownText_0x11f483: ; 0x11f483 - text_jump UnknownText_0x1ec259 - db "@" - -UnknownText_0x11f488: ; 0x11f488 - text_jump UnknownText_0x1ec27b - db "@" - -UnknownText_0x11f48d: ; 0x11f48d - text_jump UnknownText_0x1ec2a0 - db "@" - -UnknownText_0x11f492: ; 0x11f492 - text_jump UnknownText_0x1ec2c0 - db "@" - -UnknownText_0x11f497: ; 0x11f497 - text_jump UnknownText_0x1ec2d9 - db "@" - -UnknownText_0x11f49c: ; 0x11f49c - text_jump UnknownText_0x1ec2fe - db "@" - -UnknownText_0x11f4a1: ; 0x11f4a1 - text_jump UnknownText_0x1ec320 - db "@" - -UnknownText_0x11f4a6: ; 0x11f4a6 - text_jump UnknownText_0x1ec33f - db "@" - -UnknownText_0x11f4ab: ; 0x11f4ab - text_jump UnknownText_0x1ec36c - db "@" - -UnknownText_0x11f4b0: ; 0x11f4b0 - text_jump UnknownText_0x1ec389 - db "@" - -UnknownText_0x11f4b5: ; 0x11f4b5 - text_jump UnknownText_0x1ec3ad - db "@" - -UnknownText_0x11f4ba: ; 0x11f4ba - text_jump UnknownText_0x1ec3c5 - db "@" - -UnknownText_0x11f4bf: ; 0x11f4bf - text_jump UnknownText_0x1ec3e5 - db "@" - -UnknownText_0x11f4c4: ; 0x11f4c4 - text_jump UnknownText_0x1ec402 - db "@" - -UnknownText_0x11f4c9: ; 0x11f4c9 - text_jump UnknownText_0x1ec411 - db "@" - -UnknownText_0x11f4ce: ; 0x11f4ce - text_jump UnknownText_0x1ec41f - db "@" - -UnknownText_0x11f4d3: ; 0x11f4d3 - text_jump UnknownText_0x1ec42e - db "@" - -UnknownText_0x11f4d8: ; 0x11f4d8 - text_jump UnknownText_0x1ec461 - db "@" - -UnknownText_0x11f4dd: ; 0x11f4dd - text_jump UnknownText_0x1ec4a0 - db "@" - -UnknownText_0x11f4e2: ; 0x11f4e2 - text_jump UnknownText_0x1ec4d6 - db "@" - -UnknownText_0x11f4e7: ; 0x11f4e7 - text_jump UnknownText_0x1ec4f5 - db "@" - -UnknownText_0x11f4ec: ; 0x11f4ec - text_jump UnknownText_0x1ec512 - db "@" - -UnknownText_0x11f4f1: ; 0x11f4f1 - text_jump UnknownText_0x1ec532 - db "@" - -UnknownText_0x11f4f6: ; 0x11f4f6 - text_jump UnknownText_0x1ec54b - db "@" - -UnknownText_0x11f4fb: ; 0x11f4fb - text_jump UnknownText_0x1ec565 - db "@" - -UnknownText_0x11f500: ; 0x11f500 - text_jump UnknownText_0x1ec580 - db "@" - -UnknownText_0x11f505: ; 0x11f505 - text_jump UnknownText_0x1ec59d - db "@" - -UnknownText_0x11f50a: ; 0x11f50a - text_jump UnknownText_0x1ec5b5 - db "@" - -UnknownText_0x11f50f: ; 0x11f50f - text_jump UnknownText_0x1ec5d3 - db "@" - -UnknownText_0x11f514: ; 0x11f514 - text_jump UnknownText_0x1ec5ee - db "@" - -UnknownText_0x11f519: ; 0x11f519 - text_jump UnknownText_0x1ec60d - db "@" - -UnknownText_0x11f51e: ; 0x11f51e - text_jump UnknownText_0x1ec631 - db "@" - -UnknownText_0x11f523: ; 0x11f523 - text_jump UnknownText_0x1ec651 - db "@" - -UnknownText_0x11f528: ; 0x11f528 - text_jump UnknownText_0x1ec68f - db "@" - -UnknownText_0x11f52d: ; 0x11f52d - text_jump UnknownText_0x1ec6b1 - db "@" - -UnknownText_0x11f532: ; 0x11f532 - text_jump UnknownText_0x1ec6d0 - db "@" - -UnknownText_0x11f537: ; 0x11f537 - text_jump UnknownText_0x1ec708 - db "@" - -UnknownText_0x11f53c: ; 0x11f53c - text_jump UnknownText_0x1ec720 - db "@" - -UnknownText_0x11f541: ; 0x11f541 - text_jump UnknownText_0x1ec73e - db "@" - -UnknownText_0x11f546: ; 0x11f546 - text_jump UnknownText_0x1ec75b - db "@" - -UnknownText_0x11f54b: ; 0x11f54b - text_jump UnknownText_0x1ec77f - db "@" - -UnknownText_0x11f550: ; 0x11f550 - text_jump UnknownText_0x1ec798 - db "@" - -UnknownText_0x11f555: ; 0x11f555 - text_jump UnknownText_0x1ec7bb - db "@" - -UnknownText_0x11f55a: ; 0x11f55a - text_jump UnknownText_0x1ec7d8 - db "@" - -UnknownText_0x11f55f: ; 0x11f55f - text_jump UnknownText_0x1ec818 - db "@" - -UnknownText_0x11f564: ; 0x11f564 - text_jump UnknownText_0x1ec837 - db "@" - -UnknownText_0x11f569: ; 0x11f569 - text_jump UnknownText_0x1ec858 - db "@" - -UnknownText_0x11f56e: ; 0x11f56e - text_jump UnknownText_0x1ec876 - db "@" - -UnknownText_0x11f573: ; 0x11f573 - text_jump UnknownText_0x1ec898 - db "@" - -UnknownText_0x11f578: ; 0x11f578 - text_jump UnknownText_0x1ec8b1 - db "@" - -UnknownText_0x11f57d: ; 0x11f57d - text_jump UnknownText_0x1ec8d5 - db "@" - -UnknownText_0x11f582: ; 0x11f582 - text_jump UnknownText_0x1ec8f0 - db "@" - -UnknownText_0x11f587: ; 0x11f587 - text_jump UnknownText_0x1ec911 - db "@" - -UnknownText_0x11f58c: ; 0x11f58c - text_jump UnknownText_0x1ec928 - db "@" - -UnknownText_0x11f591: ; 0x11f591 - text_jump UnknownText_0x1ec949 - db "@" - -UnknownText_0x11f596: ; 0x11f596 - text_jump UnknownText_0x1ec969 - db "@" - -UnknownText_0x11f59b: ; 0x11f59b - text_jump UnknownText_0x1ec986 - db "@" - -UnknownText_0x11f5a0: ; 0x11f5a0 - text_jump UnknownText_0x1ec99b - db "@" - - - - -UnknownText_0x11f5a5: ; 0x11f5a5 - text_jump UnknownText_0x1ec9bd - db "@" - -UnknownText_0x11f5aa: ; 0x11f5aa - text_jump UnknownText_0x1ec9d9 - db "@" - -UnknownText_0x11f5af: ; 0x11f5af - text_jump UnknownText_0x1ec9f7 - db "@" - -UnknownText_0x11f5b4: ; 0x11f5b4 - text_jump UnknownText_0x1eca0a - db "@" - -UnknownText_0x11f5b9: ; 0x11f5b9 - text_jump UnknownText_0x1eca2a - db "@" - -UnknownText_0x11f5be: ; 0x11f5be - text_jump UnknownText_0x1eca47 - db "@" - -UnknownText_0x11f5c3: ; 0x11f5c3 - text_jump UnknownText_0x1eca64 - db "@" - -UnknownText_0x11f5c8: ; 0x11f5c8 - text_jump UnknownText_0x1eca82 - db "@" - -UnknownText_0x11f5cd: ; 0x11f5cd - text_jump UnknownText_0x1eca9d - db "@" - -UnknownText_0x11f5d2: ; 0x11f5d2 - text_jump UnknownText_0x1ecabf - db "@" - -UnknownText_0x11f5d7: ; 0x11f5d7 - text_jump UnknownText_0x1ecade - db "@" - -UnknownText_0x11f5dc: ; 0x11f5dc - text_jump UnknownText_0x1ecafa - db "@" - -UnknownText_0x11f5e1: ; 0x11f5e1 - text_jump UnknownText_0x1ecb19 - db "@" - -UnknownText_0x11f5e6: ; 0x11f5e6 - text_jump UnknownText_0x1ecb37 - db "@" - -UnknownText_0x11f5eb: ; 0x11f5eb - text_jump UnknownText_0x1ecb55 - db "@" - -UnknownText_0x11f5f0: ; 0x11f5f0 - text_jump UnknownText_0x1ecb70 - db "@" - -UnknownText_0x11f5f5: ; 0x11f5f5 - text_jump UnknownText_0x1ecb92 - db "@" - -UnknownText_0x11f5fa: ; 0x11f5fa - text_jump UnknownText_0x1ecbb6 - db "@" - -UnknownText_0x11f5ff: ; 0x11f5ff - text_jump UnknownText_0x1ecbd9 - db "@" - -UnknownText_0x11f604: ; 0x11f604 - text_jump UnknownText_0x1ecbf3 - db "@" - -UnknownText_0x11f609: ; 0x11f609 - text_jump UnknownText_0x1ecc15 - db "@" - -UnknownText_0x11f60e: ; 0x11f60e - text_jump UnknownText_0x1ecc39 - db "@" - -UnknownText_0x11f613: ; 0x11f613 - text_jump UnknownText_0x1ecc55 - db "@" - -UnknownText_0x11f618: ; 0x11f618 - text_jump UnknownText_0x1ecc75 - db "@" - -UnknownText_0x11f61d: ; 0x11f61d - text_jump UnknownText_0x1ecc92 - db "@" - -UnknownText_0x11f622: ; 0x11f622 - text_jump UnknownText_0x1ecca7 - db "@" - -UnknownText_0x11f627: ; 0x11f627 - text_jump UnknownText_0x1eccc1 - db "@" - -UnknownText_0x11f62c: ; 0x11f62c - text_jump UnknownText_0x1eccd7 - db "@" - -UnknownText_0x11f631: ; 0x11f631 - text_jump UnknownText_0x1eccef - db "@" - -UnknownText_0x11f636: ; 0x11f636 - text_jump UnknownText_0x1ecd0e - db "@" - -UnknownText_0x11f63b: ; 0x11f63b - text_jump UnknownText_0x1ecd2b - db "@" - -UnknownText_0x11f640: ; 0x11f640 - text_jump UnknownText_0x1ecd4d - db "@" - -UnknownText_0x11f645: ; 0x11f645 - text_jump UnknownText_0x1ecd6b - db "@" - -UnknownText_0x11f64a: ; 0x11f64a - text_jump UnknownText_0x1ecd8d - db "@" - -UnknownText_0x11f64f: ; 0x11f64f - text_jump UnknownText_0x1ecdaf - db "@" - -UnknownText_0x11f654: ; 0x11f654 - text_jump UnknownText_0x1ecdcf - db "@" - -UnknownText_0x11f659: ; 0x11f659 - text_jump UnknownText_0x1ecded - db "@" - -UnknownText_0x11f65e: ; 0x11f65e - text_jump UnknownText_0x1ece0d - db "@" - -UnknownText_0x11f663: ; 0x11f663 - text_jump UnknownText_0x1ece2a - db "@" - -UnknownText_0x11f668: ; 0x11f668 - text_jump UnknownText_0x1ece4b - db "@" - -UnknownText_0x11f66d: ; 0x11f66d - text_jump UnknownText_0x1ece70 - db "@" - -UnknownText_0x11f672: ; 0x11f672 - text_jump UnknownText_0x1ece8a - db "@" - -UnknownText_0x11f677: ; 0x11f677 - text_jump UnknownText_0x1ecea8 - db "@" - -UnknownText_0x11f67c: ; 0x11f67c - text_jump UnknownText_0x1ecec9 - db "@" - -UnknownText_0x11f681: ; 0x11f681 - text_jump UnknownText_0x1ecee8 - db "@" - - -SECTION "bank5B", ROMX, BANK[$5B] - -Function16c000: ; 16c000 - ld a, [hCGB] - and a - ret z - ld a, [$ffea] - and a - ret z - ld a, [wcfbe] - push af - set 7, a - ld [wcfbe], a - call Function16c108 - callba Function100063 - callba Function100082 - call Function16c031 - callba Function1000a4 - xor a - ld [$ffea], a - pop af - ld [wcfbe], a - ret -; 16c031 - -Function16c031: ; 16c031 - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [DefaultFlypoint], a - ld [wd003], a -.asm_16c03e - call DelayFrame - callba Function10635c - ld a, [DefaultFlypoint] - ld hl, Jumptable_16c05c - rst JumpTable - call Function16cb2e - call Function16cbae - ld a, [DefaultFlypoint] - cp $ff - jr nz, .asm_16c03e - ret -; 16c05c - -Jumptable_16c05c: ; 16c05c - dw Function16c074 - dw Function16c0ba - dw Function16c089 - dw Function16c09e - dw Function16c0a8 - dw Function16c0dc - dw Function16c0ec - dw Function16c0ba - dw Function16c0ca - dw Function16c0dc - dw Function16c0ec - dw Function16c081 -; 16c074 - -Function16c074: ; 16c074 - ld a, [wcf64] - and a - ret z - ld [DefaultFlypoint], a - xor a - ld [wd003], a - ret -; 16c081 - -Function16c081: ; 16c081 - push af - ld a, $ff - ld [DefaultFlypoint], a - pop af - ret -; 16c089 - -Function16c089: ; 16c089 - ld a, $1 - ld [Buffer2], a - ld [wd1f1], a - xor a - ld [hWY], a - call Function16c0fa - ld a, [DefaultFlypoint] - ld [wcf64], a - ret -; 16c09e - -Function16c09e: ; 16c09e - ld a, [wcf64] - cp $4 - ret nz - call Function16c0fa - ret -; 16c0a8 - -Function16c0a8: ; 16c0a8 - xor a - ld [Buffer2], a - ld [wd1f1], a - call ClearSprites - ld a, $90 - ld [hWY], a - call Function16c0fa - ret -; 16c0ba - -Function16c0ba: ; 16c0ba - call Function16c943 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call c, Function16c0fa - ret -; 16c0ca - -Function16c0ca: ; 16c0ca - ld a, [wd003] - cp $28 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call z, Function16c0fa - ret -; 16c0dc - -Function16c0dc: ; 16c0dc - call Function16ca11 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call c, Function16c0fa - ret -; 16c0ec - -Function16c0ec: ; 16c0ec - call WhiteBGMap - call ClearScreen - push af - ld a, $ff - ld [DefaultFlypoint], a - pop af - ret -; 16c0fa - -Function16c0fa: ; 16c0fa - push af - ld a, [DefaultFlypoint] - inc a - ld [DefaultFlypoint], a - xor a - ld [wd003], a - pop af - ret -; 16c108 - -Function16c108: ; 16c108 - call DisableLCD - ld hl, VTiles2 - ld de, GFX_16c173 - lb bc, BANK(GFX_16c173), $68 - call Get2bpp - call Function16c130 - call Function16c145 - call Function16c15c - ld hl, VBGMap0 - call Function16cc73 - call Function16cc02 - xor a - ld [hBGMapMode], a - call EnableLCD - ret -; 16c130 - -Function16c130: ; 16c130 - ld de, Unkn1Pals - ld hl, Unknown_16c903 - ld bc, 8 - ld a, $5 - call FarCopyWRAM - callba Function96a4 - ret -; 16c145 - -Function16c145: ; 16c145 - hlcoord 0, 0 - ld bc, 20 - xor a - call ByteFill - ld hl, Tilemap_16c633 - decoord 0, 1 - ld bc, $0154 - call CopyBytes - ret -; 16c15c - -Function16c15c: ; 16c15c - hlcoord 0, 0, AttrMap - ld bc, $0014 - xor a - call ByteFill - ld hl, Tilemap_16c79b - decoord 0, 1, AttrMap - ld bc, $0154 - call CopyBytes - ret -; 16c173 - -GFX_16c173: -INCBIN "gfx/unknown/16c173.2bpp" - -Tilemap_16c633: -INCBIN "gfx/unknown/16c633.tilemap" - -Tilemap_16c79b: -INCBIN "gfx/unknown/16c79b.tilemap" - -Unknown_16c903: - RGB 31, 31, 31 - RGB 04, 10, 20 - RGB 16, 19, 25 - RGB 25, 27, 29 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 -; 16c943 - -Function16c943: ; 16c943 - ld a, [wd003] - and a - jr nz, .asm_16c95e - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, $ff - ld bc, $0008 - ld hl, Unkn1Pals - call ByteFill - pop af - ld [rSVBK], a - -.asm_16c95e - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld e, $0 - ld a, $0 -.asm_16c969 - ld hl, Unknown_16c903 - call Function16cab6 - call Function16cabb - ld d, a - ld hl, Unkn1Pals - call Function16cab6 - call Function16cabb - cp d - jr z, .asm_16c991 - ld b, $1 -.asm_16c981 - dec a - cp d - jr z, .asm_16c988 - dec b - jr nz, .asm_16c981 - -.asm_16c988 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cadc - -.asm_16c991 - ld hl, Unknown_16c903 - call Function16cab6 - call Function16cad8 - ld d, a - ld hl, Unkn1Pals - call Function16cab6 - call Function16cad8 - cp d - jr z, .asm_16c9b9 - ld b, $1 -.asm_16c9a9 - dec a - cp d - jr z, .asm_16c9b0 - dec b - jr nz, .asm_16c9a9 - -.asm_16c9b0 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cb08 - -.asm_16c9b9 - ld hl, Unknown_16c903 - call Function16cab6 - call Function16cac4 - ld d, a - ld hl, Unkn1Pals - call Function16cab6 - call Function16cac4 - cp d - jr z, .asm_16c9e1 - ld b, $1 -.asm_16c9d1 - dec a - cp d - jr z, .asm_16c9d8 - dec b - jr nz, .asm_16c9d1 - -.asm_16c9d8 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cae8 - -.asm_16c9e1 -rept 2 - inc e -endr - ld a, e - cp $8 - jr nz, .asm_16c969 - callba Function96a4 - call SetPalettes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wd003] - cp $1f - jr z, .asm_16ca09 - pop af - ld [rSVBK], a - ld e, $0 - pop af - ld [rSVBK], a - and a - ret - -.asm_16ca09 - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - scf - ret -; 16ca11 - -Function16ca11: ; 16ca11 - ld a, [wd003] - and a - jr nz, .asm_16ca1d - callba Function96a4 - -.asm_16ca1d - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld e, $0 - ld a, $0 -.asm_16ca28 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cabb - cp $1f - jr z, .asm_16ca48 - ld b, $1 -.asm_16ca37 - inc a - cp $1f - jr z, .asm_16ca3f - dec b - jr nz, .asm_16ca37 - -.asm_16ca3f - ld hl, Unkn1Pals - call Function16cab6 - call Function16cadc - -.asm_16ca48 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cad8 - cp $1f - jr z, .asm_16ca68 - ld b, $1 -.asm_16ca57 - inc a - cp $1f - jr z, .asm_16ca5f - dec b - jr nz, .asm_16ca57 - -.asm_16ca5f - ld hl, Unkn1Pals - call Function16cab6 - call Function16cb08 - -.asm_16ca68 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cac4 - cp $1f - jr z, .asm_16ca88 - ld b, $1 -.asm_16ca77 - inc a - cp $1f - jr z, .asm_16ca7f - dec b - jr nz, .asm_16ca77 - -.asm_16ca7f - ld hl, Unkn1Pals - call Function16cab6 - call Function16cae8 - -.asm_16ca88 -rept 2 - inc e -endr - ld a, e - cp $8 - jr nz, .asm_16ca28 - callba Function96a4 - call SetPalettes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wd003] - cp $1f - jr z, .asm_16caae - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - and a - ret - -.asm_16caae - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - scf - ret -; 16cab6 - -Function16cab6: ; 16cab6 - ld b, $0 - ld c, e - add hl, bc - ret -; 16cabb - -Function16cabb: ; 16cabb - inc hl - ld a, [hl] - srl a - srl a - and $1f - ret -; 16cac4 - -Function16cac4: ; 16cac4 - inc hl - ld a, [hld] - and $3 - ld b, a - ld a, [hl] - sla a - rl b - sla a - rl b - sla a - rl b - ld a, b - ret -; 16cad8 - -Function16cad8: ; 16cad8 - ld a, [hl] - and $1f - ret -; 16cadc - -Function16cadc: ; 16cadc - sla a - sla a - ld b, a - inc hl - ld a, [hl] - and $83 - or b - ld [hl], a - ret -; 16cae8 - -Function16cae8: ; 16cae8 - ld c, a - srl a - srl a - srl a - ld b, a - inc hl - ld a, [hl] - and $fc - or b - ld [hld], a - ld a, c - sla a - sla a - sla a - sla a - sla a - ld b, a - ld a, [hl] - and $1f - or b - ld [hl], a - ret -; 16cb08 - -Function16cb08: ; 16cb08 - ld b, a - ld a, [hl] - and $e0 - or b - ld [hl], a - ret -; 16cb0f - -Function16cb0f: ; 16cb0f - xor a - ld [Buffer1], a - ld [Buffer2], a - xor a - ld [wd1ec], a - ld a, $70 - ld [wd1ee], a - ld a, $4 - ld [wd1ed], a - ld a, $a0 - ld [wd1ef], a - xor a - ld [wd1f0], a - ret -; 16cb2e - -Function16cb2e: ; 16cb2e - ld a, [Buffer2] - and a - ret z - call Function16cb40 - ld hl, Unknown_16cb86 - ld de, Sprites - call Function16cb5d - ret -; 16cb40 - -Function16cb40: ; 16cb40 - ld hl, wd1ec - inc [hl] - ld a, [hl] - cp $18 - ret c - xor a - ld [hl], a - ld a, [wd1ef] - cp $a0 - jr nz, .asm_16cb57 - ld a, $a7 - ld [wd1ef], a - ret - -.asm_16cb57 - ld a, $a0 - ld [wd1ef], a - ret -; 16cb5d - -Function16cb5d: ; 16cb5d - ld a, [hli] - and a - ret z -.asm_16cb60 - push af - ld a, [wd1ee] - add [hl] - add $10 - ld [de], a - inc hl - inc de - ld a, [wd1ed] - add [hl] - add $8 - ld [de], a - inc hl - inc de - ld a, [wd1ef] - add [hl] - ld [de], a - inc hl - inc de - ld a, [wd1f0] - or [hl] - ld [de], a - inc hl - inc de - pop af - dec a - jr nz, .asm_16cb60 - ret -; 16cb86 - -Unknown_16cb86: - db 7 - db 0, 0, 0, 1 - db 8, 0, 1, 1 - db 8, 8, 2, 0 - db 8, 16, 3, 0 - db 16, 0, 4, 1 - db 16, 8, 5, 0 - db 16, 16, 6, 0 -; 16cba3 - -Function16cba3: ; 16cba3 - xor a - ld [wd1f1], a - ld [wd1f2], a - ld [wd1f3], a - ret -; 16cbae - -Function16cbae: ; 16cbae - ld a, [wd1f1] - and a - ret z - call Function16cbba - call Function16cbd1 - ret -; 16cbba - -Function16cbba: ; 16cbba - ld hl, wd1f2 - inc [hl] - ld a, [hl] - cp $c - ret c - xor a - ld [hl], a - ld a, [wd1f3] - inc a - cp $4 - jr c, .asm_16cbcd - xor a - -.asm_16cbcd - ld [wd1f3], a - ret -; 16cbd1 - -Function16cbd1: ; 16cbd1 - ld a, [wd1f3] - ld c, a - ld b, 0 - ld hl, Unknown_16cbfb - add hl, bc - ld a, [hl] - ld bc, $0002 - ld hl, Unknown_16cfa3 - call AddNTimes - ld de, wd00c - ld bc, $0002 - ld a, $5 - call FarCopyWRAM - callba Function96a4 - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 16cbfb - -Unknown_16cbfb: - db 0, 1, 2, 1, 0, 1, 2 -; 16cc02 - -Function16cc02: ; 16cc02 - call Function16cc18 - call Function16cc49 - call Function16cc62 - call Function16cc25 - call Function16cc6e - call Function16cb0f - call Function16cba3 - ret -; 16cc18 - -Function16cc18: ; 16cc18 - ld hl, VTiles1 - ld de, GFX_16cca3 - lb bc, BANK(GFX_16cca3), $2e - call Get2bpp - ret -; 16cc25 - -Function16cc25: ; 16cc25 - ld hl, Unknown_16cfa9 - ld de, wd008 - call Function16cc41 - ld hl, Unknown_16cfb1 - ld de, Unkn2Pals - call Function16cc41 - ld hl, Unknown_16cfb9 - ld de, wd048 - call Function16cc41 - ret -; 16cc41 - -Function16cc41: ; 16cc41 - ld bc, $0008 - ld a, $5 - jp FarCopyWRAM -; 16cc49 - -Function16cc49: ; 16cc49 - hlcoord 4, 15 - ld a, $80 - call Function16cc5a - hlcoord 4, 16 - ld a, $90 - call Function16cc5a - ret -; 16cc5a - -Function16cc5a: ; 16cc5a - ld c, $10 -.asm_16cc5c - ld [hli], a - inc a - dec c - jr nz, .asm_16cc5c - ret -; 16cc62 - -Function16cc62: ; 16cc62 - hlcoord 0, 15, AttrMap - ld bc, $0028 - ld a, $1 - call ByteFill - ret -; 16cc6e - -Function16cc6e: ; 16cc6e - ld hl, VBGMap1 - jr Function16cc73 - -Function16cc73: - ld a, [rVBK] - push af - ld a, $0 - ld [rVBK], a - push hl - decoord 0, 0 - call Function16cc90 - pop hl - ld a, $1 - ld [rVBK], a - decoord 0, 0, AttrMap - call Function16cc90 - pop af - ld [rVBK], a - ret -; 16cc90 - -Function16cc90: ; 16cc90 - ld bc, $1214 -.asm_16cc93 - push bc -.asm_16cc94 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_16cc94 - ld bc, $000c - add hl, bc - pop bc - dec b - jr nz, .asm_16cc93 - ret -; 16cca3 - -GFX_16cca3: -INCBIN "gfx/unknown/16cca3.2bpp" - -Unknown_16cfa3: - RGB 31, 31, 31 - RGB 25, 27, 29 - RGB 16, 19, 25 - -Unknown_16cfa9: - RGB 31, 31, 31 - RGB 25, 27, 29 - RGB 31, 31, 31 - RGB 07, 07, 07 - -Unknown_16cfb1: - RGB 31, 31, 31 - RGB 13, 09, 18 - RGB 26, 21, 16 - RGB 07, 07, 07 - -Unknown_16cfb9: - RGB 31, 31, 31 - RGB 18, 05, 02 - RGB 27, 11, 12 - RGB 07, 07, 07 -; 16cfc1 - -GFX_16cfc1: -INCBIN "gfx/unknown/16cfc1.2bpp" - -Function16d421: ; 16d421 - ld de, GFX_16cfc1 - ld hl, VTiles2 - lb bc, BANK(GFX_16cfc1), $46 - call Get2bpp - ret -; 16d42e - -Function16d42e: ; 16d42e - ld hl, Tilemap_16d465 - decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call CopyBytes - ret -; 16d43b - -Function16d43b: ; 16d43b - call LoadMenuDataHeader_0x1d75 - call WhiteBGMap - call ClearTileMap - call ClearSprites - callba Function16d421 - callba Function16d42e - ld b, $8 - call GetSGBLayout - call SetPalettes - call WaitBGMap - call JoyWaitAorB - call Call_ExitMenu - ret -; 16d465 - -Tilemap_16d465: -INCBIN "gfx/unknown/16d465.tilemap" - -Tilemap_16d5cd: -INCBIN "gfx/unknown/16d5cd.tilemap" - -Tilemap_16d5f5: -INCBIN "gfx/unknown/16d5f5.tilemap" - -Function16d61d: ; 16d61d - ld h, d - ld l, e - push bc - push hl - call Function16d640 - pop hl - pop bc - ld de, AttrMap - TileMap - add hl, de -rept 2 - inc b -endr -rept 2 - inc c -endr - ld a, $7 -.asm_16d630 - push bc - push hl -.asm_16d632 - ld [hli], a - dec c - jr nz, .asm_16d632 - pop hl - ld de, $0014 - add hl, de - pop bc - dec b - jr nz, .asm_16d630 - ret -; 16d640 - -Function16d640: ; 16d640 - push hl - ld a, $30 - ld [hli], a - inc a - call Function16d66d - inc a - ld [hl], a - pop hl - ld de, $0014 - add hl, de -.asm_16d64f - push hl - ld a, $33 - ld [hli], a - ld a, $7f - call Function16d66d - ld [hl], $34 - pop hl - ld de, $0014 - add hl, de - dec b - jr nz, .asm_16d64f - ld a, $35 - ld [hli], a - ld a, $36 - call Function16d66d - ld [hl], $37 - ret -; 16d66d - -Function16d66d: ; 16d66d - ld d, c -.asm_16d66e - ld [hli], a - dec d - jr nz, .asm_16d66e - ret -; 16d673 - -Function16d673: ; 16d673 - call Function16d696 - call Function16d6ae - callba Function49856 - callba Functionfb60d - hlcoord 10, 17 - ld de, String_16d68f - call PlaceString - ret -; 16d68f - -String_16d68f: ; 16d68f - db "CANCEL@" -; 16d696 - -Function16d696: ; 16d696 - call Function16d421 - ret -; 16d69a - - -Function16d69a: ; 16d69a - ld de, GFX_16cfc1 + $300 - ld hl, VTiles2 tile $76 - lb bc, BANK(GFX_16cfc1), 8 - call Get2bpp - ret -; 16d6a7 - -Function16d6a7: ; 16d6a7 - callba Function49811 - ret -; 16d6ae - -Function16d6ae: ; 16d6ae - call Function16d42e - ld hl, Tilemap_16d5cd - decoord 0, 0 - ld bc, $0028 - call CopyBytes - ld hl, Tilemap_16d5f5 - decoord 0, 16 - ld bc, $0028 - call CopyBytes - ret -; 16d6ca - -Function16d6ca: ; 16d6ca - call Function16d61d - ret -; 16d6ce - -Function16d6ce: ; 16d6ce - call LoadMenuDataHeader_0x1d75 - call Function16d6e1 - callba Function87d - call Call_ExitMenu - call Function3200 - ret -; 16d6e1 - -Function16d6e1: ; 16d6e1 - hlcoord 4, 10 - ld b, $1 - ld c, $a - predef Function28eef - hlcoord 5, 11 - ld de, String_16d701 - call PlaceString - call WaitBGMap - call Function3200 - ld c, $32 - jp DelayFrames -; 16d701 - -String_16d701: ; 16d701 - db "WAITING..!@" -; 16d70c - -Function16d70c: ; 16d70c - call Function16d725 - call Function16d713 - ret -; 16d713 - -Function16d713: ; 16d713 - push bc - push af - ld a, [hJoyLast] - and $f0 - ld b, a - ld a, [hJoyPressed] - and $f - or b - ld b, a - pop af - ld a, b - pop bc - ld d, a - ret -; 16d725 - -Function16d725: ; 16d725 - ld hl, wcfa6 - res 7, [hl] - ld a, [hBGMapMode] - push af - call Function16d734 - pop af - ld [hBGMapMode], a - ret -; 16d734 - -Function16d734: ; 16d734 -.asm_16d734 - call Function16d77a - call Function16d759 - call Function16d76a - jr nc, .asm_16d758 - callba Function24270 - jr c, .asm_16d758 - ld a, [wcfa5] - bit 7, a - jr nz, .asm_16d758 - call Function16d713 - ld b, a - ld a, [wcfa8] - and b - jr z, .asm_16d734 - -.asm_16d758 - ret -; 16d759 - -Function16d759: ; 16d759 - ld a, [hOAMUpdate] - push af - ld a, $1 - ld [hOAMUpdate], a - call WaitBGMap - pop af - ld [hOAMUpdate], a - xor a - ld [hBGMapMode], a - ret -; 16d76a - -Function16d76a: ; 16d76a -.asm_16d76a - call RTC - call Function16d7e7 - ret c - ld a, [wcfa5] - bit 7, a - jr z, .asm_16d76a - and a - ret -; 16d77a - -Function16d77a: ; 16d77a - ld hl, wcfac - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - cp $1f - jr nz, .asm_16d792 - ld a, [wcfab] - ld [hl], a - push hl - push bc - ld bc, $000b - add hl, bc - ld [hl], a - pop bc - pop hl - -.asm_16d792 - ld a, [wcfa1] - ld b, a - ld a, [wcfa2] - ld c, a - call GetTileCoord - ld a, [wcfa7] - swap a - and $f - ld c, a - ld a, [wcfa9] - ld b, a - xor a - dec b - jr z, .asm_16d7b1 -.asm_16d7ad - add c - dec b - jr nz, .asm_16d7ad - -.asm_16d7b1 - ld c, $14 - call AddNTimes - ld a, [wcfa7] - and $f - ld c, a - ld a, [wcfaa] - ld b, a - xor a - dec b - jr z, .asm_16d7c8 -.asm_16d7c4 - add c - dec b - jr nz, .asm_16d7c4 - -.asm_16d7c8 - ld c, a - add hl, bc - ld a, [hl] - cp $1f - jr z, .asm_16d7de - ld [wcfab], a - ld [hl], $1f - push hl - push bc - ld bc, $000b - add hl, bc - ld [hl], $1f - pop bc - pop hl - -.asm_16d7de - ld a, l - ld [wcfac], a - ld a, h - ld [wcfad], a - ret -; 16d7e7 - -Function16d7e7: ; 16d7e7 - ld a, [wcfa5] - bit 6, a - jr z, .asm_16d7f4 - callba Function8cf62 - -.asm_16d7f4 - call JoyTextDelay - call Function16d713 - and a - ret z - scf - ret -; 16d7fe - - -SECTION "bank5C", ROMX, BANK[$5C] - -Function170000: ; 170000 - ld a, [$c62b] - ld [$c6d0], a - ld hl, $c62e - ld de, $c6e7 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $c663 - ld de, $c6f2 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $c648 - ld a, [hli] - ld [$c6fd], a - ld a, [hl] - ld [$c6fe], a - ld hl, $c639 - ld a, [hli] - ld [$c6ff], a - ld a, [hl] - ld [wc700], a - ld bc, $c633 - callba GetCaughtGender - ld a, c - ld [wc701], a - ld a, [wcd81] - ld [wc74e], a - ld hl, $c608 - ld de, $d800 - ld bc, $008f - call CopyBytes - ret -; 17005a - -Function17005a: ; 17005a - ld a, $5 - call GetSRAMBank - ld a, [$a824] - ld [wc702], a - ld hl, $a827 - ld de, wc719 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $a85c - ld de, wc724 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $a841 - ld a, [hli] - ld [wc72f], a - ld a, [hl] - ld [wc730], a - ld hl, $a832 - ld a, [hli] - ld [wc731], a - ld a, [hl] - ld [wc732], a - ld bc, $a82c - callba GetCaughtGender - ld a, c - ld [wc733], a - ld a, [wcd81] - ld [wc74e], a - call CloseSRAM - ret -; 1700b0 - -Function1700b0: ; 1700b0 - call Function17021e - callba Function118121 - ret -; 1700ba - -Function1700ba: ; 1700ba - call Function17021e - callba Function11811a - ret -; 1700c4 - -Function1700c4: ; 1700c4 - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - call Function17042c - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$be45], a - xor a - ld [$be46], a - ld hl, $dffc - ld de, $aa41 - ld bc, $0004 - call CopyBytes - ld hl, $d202 - ld de, $aa8e - ld bc, $0594 - call CopyBytes - ld hl, $aa5d - ld a, [hl] - inc [hl] - inc hl - sla a - sla a - ld e, a - ld d, $0 - add hl, de - ld e, l - ld d, h - ld hl, $dffc - ld bc, $0004 - call CopyBytes - call CloseSRAM - pop af - ld [rSVBK], a - ret -; 170114 - -Function170114: ; 170114 - call Function17021e - call Function170121 - callba Function11805f - ret -; 170121 - -Function170121: ; 170121 - ld a, $5 - call GetSRAMBank - ld hl, $a948 - ld de, $c608 - ld bc, $00f6 - call CopyBytes - call CloseSRAM - call Function170c8b - ret -; 170139 - -Function170139: ; 170139 - ld a, $5 - call GetSRAMBank - ld de, $aa41 - ld h, $0 - ld l, h - ld bc, $03e8 - call Function17020c - ld bc, $0064 - call Function17020c - ld bc, $000a - call Function17020c - ld a, [de] - ld c, a - ld b, $0 - add hl, bc - call CloseSRAM - ld a, h - ld [$c608], a - ld a, l - ld [$c608 + 1], a - ld hl, $c628 - ld a, [PlayerID] - ld [hli], a - ld a, [PlayerID + 1] - ld [hli], a - ld a, [wSecretID] - ld [hli], a - ld a, [wSecretID + 1] - ld [hli], a - ld e, l - ld d, h - ld hl, PlayerName - ld bc, $0005 - call CopyBytes - ld bc, PlayerID - ld de, PlayerGender - callba Function4e929 - ld de, $c62c + 5 - ld a, c - ld [de], a - inc de - ld a, $df - ld [wcd49], a - ld a, $dc - ld [wcd4a], a - ld a, $41 - ld [wcd4b], a - ld a, $de - ld [wcd4c], a - ld a, $3 -.asm_1701ac - push af - ld a, [wcd49] - ld l, a - ld a, [wcd4a] - ld h, a - ld bc, $0030 - call CopyBytes - ld a, l - ld [wcd49], a - ld a, h - ld [wcd4a], a - ld a, [wcd4b] - ld l, a - ld a, [wcd4c] - ld h, a - ld bc, $0006 - call CopyBytes - ld a, l - ld [wcd4b], a - ld a, h - ld [wcd4c], a - pop af - dec a - jr nz, .asm_1701ac - ld a, $4 - call GetSRAMBank - ld hl, $a013 - ld bc, $0024 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $a894 - ld bc, $0006 - call CopyBytes - ld hl, $c608 - ld de, $a948 - ld bc, $00f6 - call CopyBytes - call CloseSRAM - ret -; 17020c - -Function17020c: ; 17020c - ld a, [de] - inc de - and a - ret z -.asm_170210 - add hl, bc - dec a - jr nz, .asm_170210 - ret -; 170215 - -INCLUDE "misc/battle_tower_45.asm" +INCLUDE "misc/battle_tower_47.asm" Function170be4: ; 170be4 ld a, $5 diff --git a/wram.asm b/wram.asm index 51fb49092..0b70142af 100644 --- a/wram.asm +++ b/wram.asm @@ -1279,7 +1279,7 @@ PredefTemp:: ; cfb5 ds 2 PredefAddress:: ; cfb7 ds 2 - +wFarCallBCBuffer:: ; cfb9 ds 2 wcfbb:: ds 1 @@ -2658,10 +2658,10 @@ BT_OTPkmn3:: party_struct BT_OTPkmn3 BT_OTPkmn3Name:: ds PKMN_NAME_LENGTH BT_OTrainerData:: ds $24 -BT_OTrainerEnd:: ; we_d1e0 +BT_OTrainerEnd:: ; w3_d1e0 ds $20 - +BT_TrainerTextIndex:: ds $600 wBTChoiceOfLvlGroup:: -- cgit v1.2.3 From f58756cafc0d9e4b7d8d454e98143fa38fbf4c24 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 3 Nov 2015 22:54:19 -0500 Subject: A more verbose compare.sh --- compare.sh | 30 ++++++++++++++++++++++++++---- 1 file changed, 26 insertions(+), 4 deletions(-) diff --git a/compare.sh b/compare.sh index 142de2079..1dc7bcd04 100755 --- a/compare.sh +++ b/compare.sh @@ -2,10 +2,32 @@ # Compares baserom.gbc and pokecrystal.gbc # create baserom.txt if necessary -if [ ! -f baserom.txt ]; then - hexdump -C baserom.gbc > baserom.txt +crystal_md5=9f2922b235a5eeb78d65594e82ef5dde +if [ ! -f baserom.gbc ]; then + echo "FATAL: Baserom not found" + exit 1 fi -hexdump -C pokecrystal.gbc > pokecrystal.txt +base_md5=`md5sum baserom.gbc | cut -d' ' -f1` +echo "baserom.gbc: $base_md5" +if [ $base_md5 != $crystal_md5 ]; then + echo "FATAL: Baserom is incorrect" + exit 1 +fi + +built_md5=`md5sum pokecrystal.gbc | cut -d' ' -f1` +echo "pokecrystal.gbc: $built_md5" +if [ $built_md5 != $crystal_md5 ] +then + echo "Checksums do not match, here's where the ROMs differ..." + if [ ! -f baserom.txt ]; then + hexdump -C baserom.gbc > baserom.txt + fi + + hexdump -C pokecrystal.gbc > pokecrystal.txt + + diff -u baserom.txt pokecrystal.txt | less +else + echo "Checksums match! :D" +fi -diff -u baserom.txt pokecrystal.txt | less -- cgit v1.2.3 From 451dad420e89444ee1459c112b0d06376db4d84a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 3 Nov 2015 23:20:45 -0500 Subject: Battle Tower text function and pointers --- misc/battle_tower_47.asm | 568 ++++++++++++++++++++++--------------------- tilesets/tileset_headers.asm | 4 +- 2 files changed, 286 insertions(+), 286 deletions(-) diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 529e9e37b..96c2e8655 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -16,11 +16,12 @@ ENDC dec a ld e, a ld d, 0 - ld hl, BTTrainerTextSelectorTable + ld hl, BTTrainerClassGenders add hl, de ld a, [hl] and a - jr nz, .textset_1 + jr nz, .female + ; generate a random number between 0 and 24 ld a, [hRandomAdd] and $1f cp 25 @@ -28,10 +29,11 @@ ENDC sub 25 .okay0 - ld hl, BTTrainerTexts + ld hl, BTMaleTrainerTexts jr .proceed -.textset_1 +.female + ; generate a random number between 0 and 14 ld a, [hRandomAdd] and $f cp 15 @@ -39,7 +41,7 @@ ENDC sub 15 .okay1 - ld hl, BTTrainerTexts2 + ld hl, BTFemaleTrainerTexts .proceed ld b, 0 @@ -4156,644 +4158,644 @@ Unknown_11f23c: db $ac, $05, $15, $00 db $00, $00, $09, $00 -BTTrainerTextSelectorTable: - db 0, 1, 1, 0, 0, 1 - db 0, 1, 0, 0, 1, 0 - db 0, 1, 0, 0, 0, 1 - db 0, 0, 1, 0, 0, 0 - db 1, 1, 0, 1, 1, 0 - db 0, 0, 1, 1, 1, 0 - db 0, 0, 1, 0, 0, 0 - db 0, 0, 0, 0, 0, 0 - db 0, 0, 0, 0, 1, 0 - db 1, 0, 1, 0, 0, 1 - db 1, 1, 0, 0, 0, 1 - - -BTTrainerTexts: ; 11f332 - dw BTTrainerGreetings - dw BTTrainerPlayerLostTexts - dw BTTrainerPlayerWonTexts - -BTTrainerGreetings: ; 11f338 - dw BattleTowerTextJump_0x11f42e - dw BattleTowerTextJump_0x11f43d - dw UnknownText_0x11f44c - dw UnknownText_0x11f45b - dw UnknownText_0x11f46a - dw UnknownText_0x11f479 - dw UnknownText_0x11f488 - dw UnknownText_0x11f497 - dw UnknownText_0x11f4a6 - dw UnknownText_0x11f4b5 - dw UnknownText_0x11f4c4 - dw UnknownText_0x11f4d3 - dw UnknownText_0x11f4e2 - dw UnknownText_0x11f4f1 - dw UnknownText_0x11f500 - dw UnknownText_0x11f50f - dw UnknownText_0x11f51e - dw UnknownText_0x11f52d - dw UnknownText_0x11f53c - dw UnknownText_0x11f54b - dw UnknownText_0x11f55a - dw UnknownText_0x11f569 - dw UnknownText_0x11f578 - dw UnknownText_0x11f587 - dw UnknownText_0x11f596 - -BTTrainerPlayerLostTexts: ; 11f36a - dw BattleTowerTextJump_0x11f433 - dw UnknownText_0x11f442 - dw UnknownText_0x11f451 - dw UnknownText_0x11f460 - dw UnknownText_0x11f46f - dw UnknownText_0x11f47e - dw UnknownText_0x11f48d - dw UnknownText_0x11f49c - dw UnknownText_0x11f4ab - dw UnknownText_0x11f4ba - dw UnknownText_0x11f4c9 - dw UnknownText_0x11f4d8 - dw UnknownText_0x11f4e7 - dw UnknownText_0x11f4f6 - dw UnknownText_0x11f505 - dw UnknownText_0x11f514 - dw UnknownText_0x11f523 - dw UnknownText_0x11f532 - dw UnknownText_0x11f541 - dw UnknownText_0x11f550 - dw UnknownText_0x11f55f - dw UnknownText_0x11f56e - dw UnknownText_0x11f57d - dw UnknownText_0x11f58c - dw UnknownText_0x11f59b - -BTTrainerPlayerWonTexts: ; 11f39c - dw UnknownText_0x11f438 - dw UnknownText_0x11f447 - dw UnknownText_0x11f456 - dw UnknownText_0x11f465 - dw UnknownText_0x11f474 - dw UnknownText_0x11f483 - dw UnknownText_0x11f492 - dw UnknownText_0x11f4a1 - dw UnknownText_0x11f4b0 - dw UnknownText_0x11f4bf - dw UnknownText_0x11f4ce - dw UnknownText_0x11f4dd - dw UnknownText_0x11f4ec - dw UnknownText_0x11f4fb - dw UnknownText_0x11f50a - dw UnknownText_0x11f519 - dw UnknownText_0x11f528 - dw UnknownText_0x11f537 - dw UnknownText_0x11f546 - dw UnknownText_0x11f555 - dw UnknownText_0x11f564 - dw UnknownText_0x11f573 - dw UnknownText_0x11f582 - dw UnknownText_0x11f591 - dw UnknownText_0x11f5a0 - - -BTTrainerTexts2: - dw BTTrainerGreetings2 - dw BTTrainerPlayerLostTexts2 - dw BTTrainerPlayerWonTexts2 - -BTTrainerGreetings2: ; 11f3d4 - dw UnknownText_0x11f5a5 - dw UnknownText_0x11f5b4 - dw UnknownText_0x11f5c3 - dw UnknownText_0x11f5d2 - dw UnknownText_0x11f5e1 - dw UnknownText_0x11f5f0 - dw UnknownText_0x11f5ff - dw UnknownText_0x11f60e - dw UnknownText_0x11f61d - dw UnknownText_0x11f62c - dw UnknownText_0x11f63b - dw UnknownText_0x11f64a - dw UnknownText_0x11f659 - dw UnknownText_0x11f668 - dw UnknownText_0x11f677 - -BTTrainerPlayerLostTexts2: ; 11f3f2 - dw UnknownText_0x11f5aa - dw UnknownText_0x11f5b9 - dw UnknownText_0x11f5c8 - dw UnknownText_0x11f5d7 - dw UnknownText_0x11f5e6 - dw UnknownText_0x11f5f5 - dw UnknownText_0x11f604 - dw UnknownText_0x11f613 - dw UnknownText_0x11f622 - dw UnknownText_0x11f631 - dw UnknownText_0x11f640 - dw UnknownText_0x11f64f - dw UnknownText_0x11f65e - dw UnknownText_0x11f66d - dw UnknownText_0x11f67c - -BTTrainerPlayerWonTexts2: ; 11f410 - dw UnknownText_0x11f5af - dw UnknownText_0x11f5be - dw UnknownText_0x11f5cd - dw UnknownText_0x11f5dc - dw UnknownText_0x11f5eb - dw UnknownText_0x11f5fa - dw UnknownText_0x11f609 - dw UnknownText_0x11f618 - dw UnknownText_0x11f627 - dw UnknownText_0x11f636 - dw UnknownText_0x11f645 - dw UnknownText_0x11f654 - dw UnknownText_0x11f663 - dw UnknownText_0x11f672 - dw UnknownText_0x11f681 - - -BattleTowerTextJump_0x11f42e: ; 0x11f42e +BTTrainerClassGenders: + db 0, 1, 1, 0, 0, 1 ; FALKNER, WHITNEY, BUGSY, MORTY, PRYCE, JASMINE + db 0, 1, 0, 0, 1, 0 ; CHUCK, CLAIR, RIVAL1, POKEMON_PROF, WILL, CAL + db 0, 1, 0, 0, 0, 1 ; BRUNO, KARN, KOGA, CHAMPION, BROCK, MISTY + db 0, 0, 1, 0, 0, 0 ; LT_SURGE, SCIENTIST, ERIKA, YOUNGSTER, SCHOOLBOY, BIRD_KEEPER + db 1, 1, 0, 1, 1, 0 ; LASS, JANINE, COOLTRAINERM, COOLTRAINERF, BEAUTY, POKEMANIAC + db 0, 0, 1, 1, 1, 0 ; GRUNTM, GENTLEMAN, SKIER, TEACHER, SABRINA, BUG_CATCHER + db 0, 0, 1, 0, 0, 0 ; FISHER, SWIMMERM, SWIMMERF, SAILOR, SUPER_NERD, RIVAL2 + db 0, 0, 0, 0, 0, 0 ; GUITARIST, HIKER, BIKER, BLAINE, BURGLAR, FIREBREATHER + db 0, 0, 0, 0, 1, 0 ; JUGGLER, BLACKBELT_T, EXECUTIVEM, PSYCHIC_T, PICNICKER, CAMPER + db 1, 0, 1, 0, 0, 1 ; EXECUTIVEF, SAGE, MEDIUM, BOARDER, POKEFANM, KIMONO_GIRL + db 1, 1, 0, 0, 0, 1 ; TWINS, POKEFANF RED, BLUE, OFFICER, GRUNTF + + +BTMaleTrainerTexts: ; 11f332 + dw .Greetings + dw .PlayerLost + dw .PlayerWon + +.Greetings: ; 11f338 + dw BTGreetingM1 + dw BTGreetingM2 + dw BTGreetingM3 + dw BTGreetingM4 + dw BTGreetingM5 + dw BTGreetingM6 + dw BTGreetingM7 + dw BTGreetingM8 + dw BTGreetingM9 + dw BTGreetingM10 + dw BTGreetingM11 + dw BTGreetingM12 + dw BTGreetingM13 + dw BTGreetingM14 + dw BTGreetingM15 + dw BTGreetingM16 + dw BTGreetingM17 + dw BTGreetingM18 + dw BTGreetingM19 + dw BTGreetingM20 + dw BTGreetingM21 + dw BTGreetingM22 + dw BTGreetingM23 + dw BTGreetingM24 + dw BTGreetingM25 + +.PlayerLost: ; 11f36a + dw BTLossM1 + dw BTLossM2 + dw BTLossM3 + dw BTLossM4 + dw BTLossM5 + dw BTLossM6 + dw BTLossM7 + dw BTLossM8 + dw BTLossM9 + dw BTLossM10 + dw BTLossM11 + dw BTLossM12 + dw BTLossM13 + dw BTLossM14 + dw BTLossM15 + dw BTLossM16 + dw BTLossM17 + dw BTLossM18 + dw BTLossM19 + dw BTLossM20 + dw BTLossM21 + dw BTLossM22 + dw BTLossM23 + dw BTLossM24 + dw BTLossM25 + +.PlayerWon: ; 11f39c + dw BTWinM1 + dw BTWinM2 + dw BTWinM3 + dw BTWinM4 + dw BTWinM5 + dw BTWinM6 + dw BTWinM7 + dw BTWinM8 + dw BTWinM9 + dw BTWinM10 + dw BTWinM11 + dw BTWinM12 + dw BTWinM13 + dw BTWinM14 + dw BTWinM15 + dw BTWinM16 + dw BTWinM17 + dw BTWinM18 + dw BTWinM19 + dw BTWinM20 + dw BTWinM21 + dw BTWinM22 + dw BTWinM23 + dw BTWinM24 + dw BTWinM25 + + +BTFemaleTrainerTexts: + dw .Greetings + dw .PlayerLost + dw .PlayerWon + +.Greetings: ; 11f3d4 + dw BTGreetingF1 + dw BTGreetingF2 + dw BTGreetingF3 + dw BTGreetingF4 + dw BTGreetingF5 + dw BTGreetingF6 + dw BTGreetingF7 + dw BTGreetingF8 + dw BTGreetingF9 + dw BTGreetingF10 + dw BTGreetingF11 + dw BTGreetingF12 + dw BTGreetingF13 + dw BTGreetingF14 + dw BTGreetingF15 + +.PlayerLost: ; 11f3f2 + dw BTLossF1 + dw BTLossF2 + dw BTLossF3 + dw BTLossF4 + dw BTLossF5 + dw BTLossF6 + dw BTLossF7 + dw BTLossF8 + dw BTLossF9 + dw BTLossF10 + dw BTLossF11 + dw BTLossF12 + dw BTLossF13 + dw BTLossF14 + dw BTLossF15 + +.PlayerWon: ; 11f410 + dw BTWinF1 + dw BTWinF2 + dw BTWinF3 + dw BTWinF4 + dw BTWinF5 + dw BTWinF6 + dw BTWinF7 + dw BTWinF8 + dw BTWinF9 + dw BTWinF10 + dw BTWinF11 + dw BTWinF12 + dw BTWinF13 + dw BTWinF14 + dw BTWinF15 + + +BTGreetingM1: ; 0x11f42e text_jump BattleTowerText_0x1ec000 db "@" -BattleTowerTextJump_0x11f433: ; 0x11f433 +BTLossM1: ; 0x11f433 text_jump BattleTowerText_0x1ec03b db "@" -UnknownText_0x11f438: ; 0x11f438 +BTWinM1: ; 0x11f438 text_jump UnknownText_0x1ec060 db "@" -BattleTowerTextJump_0x11f43d: ; 0x11f43d +BTGreetingM2: ; 0x11f43d text_jump BattleTowerText_0x1ec080 db "@" -UnknownText_0x11f442: ; 0x11f442 +BTLossM2: ; 0x11f442 text_jump UnknownText_0x1ec0a3 db "@" -UnknownText_0x11f447: ; 0x11f447 +BTWinM2: ; 0x11f447 text_jump UnknownText_0x1ec0c4 db "@" -UnknownText_0x11f44c: ; 0x11f44c +BTGreetingM3: ; 0x11f44c text_jump UnknownText_0x1ec0e1 db "@" -UnknownText_0x11f451: ; 0x11f451 +BTLossM3: ; 0x11f451 text_jump UnknownText_0x1ec108 db "@" -UnknownText_0x11f456: ; 0x11f456 +BTWinM3: ; 0x11f456 text_jump UnknownText_0x1ec12a db "@" -UnknownText_0x11f45b: ; 0x11f45b +BTGreetingM4: ; 0x11f45b text_jump UnknownText_0x1ec14d db "@" -UnknownText_0x11f460: ; 0x11f460 +BTLossM4: ; 0x11f460 text_jump UnknownText_0x1ec16f db "@" -UnknownText_0x11f465: ; 0x11f465 +BTWinM4: ; 0x11f465 text_jump UnknownText_0x1ec190 db "@" -UnknownText_0x11f46a: ; 0x11f46a +BTGreetingM5: ; 0x11f46a text_jump UnknownText_0x1ec1ae db "@" -UnknownText_0x11f46f: ; 0x11f46f +BTLossM5: ; 0x11f46f text_jump UnknownText_0x1ec1d0 db "@" -UnknownText_0x11f474: ; 0x11f474 +BTWinM5: ; 0x11f474 text_jump UnknownText_0x1ec1f4 db "@" -UnknownText_0x11f479: ; 0x11f479 +BTGreetingM6: ; 0x11f479 text_jump UnknownText_0x1ec216 db "@" -UnknownText_0x11f47e: ; 0x11f47e +BTLossM6: ; 0x11f47e text_jump UnknownText_0x1ec238 db "@" -UnknownText_0x11f483: ; 0x11f483 +BTWinM6: ; 0x11f483 text_jump UnknownText_0x1ec259 db "@" -UnknownText_0x11f488: ; 0x11f488 +BTGreetingM7: ; 0x11f488 text_jump UnknownText_0x1ec27b db "@" -UnknownText_0x11f48d: ; 0x11f48d +BTLossM7: ; 0x11f48d text_jump UnknownText_0x1ec2a0 db "@" -UnknownText_0x11f492: ; 0x11f492 +BTWinM7: ; 0x11f492 text_jump UnknownText_0x1ec2c0 db "@" -UnknownText_0x11f497: ; 0x11f497 +BTGreetingM8: ; 0x11f497 text_jump UnknownText_0x1ec2d9 db "@" -UnknownText_0x11f49c: ; 0x11f49c +BTLossM8: ; 0x11f49c text_jump UnknownText_0x1ec2fe db "@" -UnknownText_0x11f4a1: ; 0x11f4a1 +BTWinM8: ; 0x11f4a1 text_jump UnknownText_0x1ec320 db "@" -UnknownText_0x11f4a6: ; 0x11f4a6 +BTGreetingM9: ; 0x11f4a6 text_jump UnknownText_0x1ec33f db "@" -UnknownText_0x11f4ab: ; 0x11f4ab +BTLossM9: ; 0x11f4ab text_jump UnknownText_0x1ec36c db "@" -UnknownText_0x11f4b0: ; 0x11f4b0 +BTWinM9: ; 0x11f4b0 text_jump UnknownText_0x1ec389 db "@" -UnknownText_0x11f4b5: ; 0x11f4b5 +BTGreetingM10: ; 0x11f4b5 text_jump UnknownText_0x1ec3ad db "@" -UnknownText_0x11f4ba: ; 0x11f4ba +BTLossM10: ; 0x11f4ba text_jump UnknownText_0x1ec3c5 db "@" -UnknownText_0x11f4bf: ; 0x11f4bf +BTWinM10: ; 0x11f4bf text_jump UnknownText_0x1ec3e5 db "@" -UnknownText_0x11f4c4: ; 0x11f4c4 +BTGreetingM11: ; 0x11f4c4 text_jump UnknownText_0x1ec402 db "@" -UnknownText_0x11f4c9: ; 0x11f4c9 +BTLossM11: ; 0x11f4c9 text_jump UnknownText_0x1ec411 db "@" -UnknownText_0x11f4ce: ; 0x11f4ce +BTWinM11: ; 0x11f4ce text_jump UnknownText_0x1ec41f db "@" -UnknownText_0x11f4d3: ; 0x11f4d3 +BTGreetingM12: ; 0x11f4d3 text_jump UnknownText_0x1ec42e db "@" -UnknownText_0x11f4d8: ; 0x11f4d8 +BTLossM12: ; 0x11f4d8 text_jump UnknownText_0x1ec461 db "@" -UnknownText_0x11f4dd: ; 0x11f4dd +BTWinM12: ; 0x11f4dd text_jump UnknownText_0x1ec4a0 db "@" -UnknownText_0x11f4e2: ; 0x11f4e2 +BTGreetingM13: ; 0x11f4e2 text_jump UnknownText_0x1ec4d6 db "@" -UnknownText_0x11f4e7: ; 0x11f4e7 +BTLossM13: ; 0x11f4e7 text_jump UnknownText_0x1ec4f5 db "@" -UnknownText_0x11f4ec: ; 0x11f4ec +BTWinM13: ; 0x11f4ec text_jump UnknownText_0x1ec512 db "@" -UnknownText_0x11f4f1: ; 0x11f4f1 +BTGreetingM14: ; 0x11f4f1 text_jump UnknownText_0x1ec532 db "@" -UnknownText_0x11f4f6: ; 0x11f4f6 +BTLossM14: ; 0x11f4f6 text_jump UnknownText_0x1ec54b db "@" -UnknownText_0x11f4fb: ; 0x11f4fb +BTWinM14: ; 0x11f4fb text_jump UnknownText_0x1ec565 db "@" -UnknownText_0x11f500: ; 0x11f500 +BTGreetingM15: ; 0x11f500 text_jump UnknownText_0x1ec580 db "@" -UnknownText_0x11f505: ; 0x11f505 +BTLossM15: ; 0x11f505 text_jump UnknownText_0x1ec59d db "@" -UnknownText_0x11f50a: ; 0x11f50a +BTWinM15: ; 0x11f50a text_jump UnknownText_0x1ec5b5 db "@" -UnknownText_0x11f50f: ; 0x11f50f +BTGreetingM16: ; 0x11f50f text_jump UnknownText_0x1ec5d3 db "@" -UnknownText_0x11f514: ; 0x11f514 +BTLossM16: ; 0x11f514 text_jump UnknownText_0x1ec5ee db "@" -UnknownText_0x11f519: ; 0x11f519 +BTWinM16: ; 0x11f519 text_jump UnknownText_0x1ec60d db "@" -UnknownText_0x11f51e: ; 0x11f51e +BTGreetingM17: ; 0x11f51e text_jump UnknownText_0x1ec631 db "@" -UnknownText_0x11f523: ; 0x11f523 +BTLossM17: ; 0x11f523 text_jump UnknownText_0x1ec651 db "@" -UnknownText_0x11f528: ; 0x11f528 +BTWinM17: ; 0x11f528 text_jump UnknownText_0x1ec68f db "@" -UnknownText_0x11f52d: ; 0x11f52d +BTGreetingM18: ; 0x11f52d text_jump UnknownText_0x1ec6b1 db "@" -UnknownText_0x11f532: ; 0x11f532 +BTLossM18: ; 0x11f532 text_jump UnknownText_0x1ec6d0 db "@" -UnknownText_0x11f537: ; 0x11f537 +BTWinM18: ; 0x11f537 text_jump UnknownText_0x1ec708 db "@" -UnknownText_0x11f53c: ; 0x11f53c +BTGreetingM19: ; 0x11f53c text_jump UnknownText_0x1ec720 db "@" -UnknownText_0x11f541: ; 0x11f541 +BTLossM19: ; 0x11f541 text_jump UnknownText_0x1ec73e db "@" -UnknownText_0x11f546: ; 0x11f546 +BTWinM19: ; 0x11f546 text_jump UnknownText_0x1ec75b db "@" -UnknownText_0x11f54b: ; 0x11f54b +BTGreetingM20: ; 0x11f54b text_jump UnknownText_0x1ec77f db "@" -UnknownText_0x11f550: ; 0x11f550 +BTLossM20: ; 0x11f550 text_jump UnknownText_0x1ec798 db "@" -UnknownText_0x11f555: ; 0x11f555 +BTWinM20: ; 0x11f555 text_jump UnknownText_0x1ec7bb db "@" -UnknownText_0x11f55a: ; 0x11f55a +BTGreetingM21: ; 0x11f55a text_jump UnknownText_0x1ec7d8 db "@" -UnknownText_0x11f55f: ; 0x11f55f +BTLossM21: ; 0x11f55f text_jump UnknownText_0x1ec818 db "@" -UnknownText_0x11f564: ; 0x11f564 +BTWinM21: ; 0x11f564 text_jump UnknownText_0x1ec837 db "@" -UnknownText_0x11f569: ; 0x11f569 +BTGreetingM22: ; 0x11f569 text_jump UnknownText_0x1ec858 db "@" -UnknownText_0x11f56e: ; 0x11f56e +BTLossM22: ; 0x11f56e text_jump UnknownText_0x1ec876 db "@" -UnknownText_0x11f573: ; 0x11f573 +BTWinM22: ; 0x11f573 text_jump UnknownText_0x1ec898 db "@" -UnknownText_0x11f578: ; 0x11f578 +BTGreetingM23: ; 0x11f578 text_jump UnknownText_0x1ec8b1 db "@" -UnknownText_0x11f57d: ; 0x11f57d +BTLossM23: ; 0x11f57d text_jump UnknownText_0x1ec8d5 db "@" -UnknownText_0x11f582: ; 0x11f582 +BTWinM23: ; 0x11f582 text_jump UnknownText_0x1ec8f0 db "@" -UnknownText_0x11f587: ; 0x11f587 +BTGreetingM24: ; 0x11f587 text_jump UnknownText_0x1ec911 db "@" -UnknownText_0x11f58c: ; 0x11f58c +BTLossM24: ; 0x11f58c text_jump UnknownText_0x1ec928 db "@" -UnknownText_0x11f591: ; 0x11f591 +BTWinM24: ; 0x11f591 text_jump UnknownText_0x1ec949 db "@" -UnknownText_0x11f596: ; 0x11f596 +BTGreetingM25: ; 0x11f596 text_jump UnknownText_0x1ec969 db "@" -UnknownText_0x11f59b: ; 0x11f59b +BTLossM25: ; 0x11f59b text_jump UnknownText_0x1ec986 db "@" -UnknownText_0x11f5a0: ; 0x11f5a0 +BTWinM25: ; 0x11f5a0 text_jump UnknownText_0x1ec99b db "@" -UnknownText_0x11f5a5: ; 0x11f5a5 +BTGreetingF1: ; 0x11f5a5 text_jump UnknownText_0x1ec9bd db "@" -UnknownText_0x11f5aa: ; 0x11f5aa +BTLossF1: ; 0x11f5aa text_jump UnknownText_0x1ec9d9 db "@" -UnknownText_0x11f5af: ; 0x11f5af +BTWinF1: ; 0x11f5af text_jump UnknownText_0x1ec9f7 db "@" -UnknownText_0x11f5b4: ; 0x11f5b4 +BTGreetingF2: ; 0x11f5b4 text_jump UnknownText_0x1eca0a db "@" -UnknownText_0x11f5b9: ; 0x11f5b9 +BTLossF2: ; 0x11f5b9 text_jump UnknownText_0x1eca2a db "@" -UnknownText_0x11f5be: ; 0x11f5be +BTWinF2: ; 0x11f5be text_jump UnknownText_0x1eca47 db "@" -UnknownText_0x11f5c3: ; 0x11f5c3 +BTGreetingF3: ; 0x11f5c3 text_jump UnknownText_0x1eca64 db "@" -UnknownText_0x11f5c8: ; 0x11f5c8 +BTLossF3: ; 0x11f5c8 text_jump UnknownText_0x1eca82 db "@" -UnknownText_0x11f5cd: ; 0x11f5cd +BTWinF3: ; 0x11f5cd text_jump UnknownText_0x1eca9d db "@" -UnknownText_0x11f5d2: ; 0x11f5d2 +BTGreetingF4: ; 0x11f5d2 text_jump UnknownText_0x1ecabf db "@" -UnknownText_0x11f5d7: ; 0x11f5d7 +BTLossF4: ; 0x11f5d7 text_jump UnknownText_0x1ecade db "@" -UnknownText_0x11f5dc: ; 0x11f5dc +BTWinF4: ; 0x11f5dc text_jump UnknownText_0x1ecafa db "@" -UnknownText_0x11f5e1: ; 0x11f5e1 +BTGreetingF5: ; 0x11f5e1 text_jump UnknownText_0x1ecb19 db "@" -UnknownText_0x11f5e6: ; 0x11f5e6 +BTLossF5: ; 0x11f5e6 text_jump UnknownText_0x1ecb37 db "@" -UnknownText_0x11f5eb: ; 0x11f5eb +BTWinF5: ; 0x11f5eb text_jump UnknownText_0x1ecb55 db "@" -UnknownText_0x11f5f0: ; 0x11f5f0 +BTGreetingF6: ; 0x11f5f0 text_jump UnknownText_0x1ecb70 db "@" -UnknownText_0x11f5f5: ; 0x11f5f5 +BTLossF6: ; 0x11f5f5 text_jump UnknownText_0x1ecb92 db "@" -UnknownText_0x11f5fa: ; 0x11f5fa +BTWinF6: ; 0x11f5fa text_jump UnknownText_0x1ecbb6 db "@" -UnknownText_0x11f5ff: ; 0x11f5ff +BTGreetingF7: ; 0x11f5ff text_jump UnknownText_0x1ecbd9 db "@" -UnknownText_0x11f604: ; 0x11f604 +BTLossF7: ; 0x11f604 text_jump UnknownText_0x1ecbf3 db "@" -UnknownText_0x11f609: ; 0x11f609 +BTWinF7: ; 0x11f609 text_jump UnknownText_0x1ecc15 db "@" -UnknownText_0x11f60e: ; 0x11f60e +BTGreetingF8: ; 0x11f60e text_jump UnknownText_0x1ecc39 db "@" -UnknownText_0x11f613: ; 0x11f613 +BTLossF8: ; 0x11f613 text_jump UnknownText_0x1ecc55 db "@" -UnknownText_0x11f618: ; 0x11f618 +BTWinF8: ; 0x11f618 text_jump UnknownText_0x1ecc75 db "@" -UnknownText_0x11f61d: ; 0x11f61d +BTGreetingF9: ; 0x11f61d text_jump UnknownText_0x1ecc92 db "@" -UnknownText_0x11f622: ; 0x11f622 +BTLossF9: ; 0x11f622 text_jump UnknownText_0x1ecca7 db "@" -UnknownText_0x11f627: ; 0x11f627 +BTWinF9: ; 0x11f627 text_jump UnknownText_0x1eccc1 db "@" -UnknownText_0x11f62c: ; 0x11f62c +BTGreetingF10: ; 0x11f62c text_jump UnknownText_0x1eccd7 db "@" -UnknownText_0x11f631: ; 0x11f631 +BTLossF10: ; 0x11f631 text_jump UnknownText_0x1eccef db "@" -UnknownText_0x11f636: ; 0x11f636 +BTWinF10: ; 0x11f636 text_jump UnknownText_0x1ecd0e db "@" -UnknownText_0x11f63b: ; 0x11f63b +BTGreetingF11: ; 0x11f63b text_jump UnknownText_0x1ecd2b db "@" -UnknownText_0x11f640: ; 0x11f640 +BTLossF11: ; 0x11f640 text_jump UnknownText_0x1ecd4d db "@" -UnknownText_0x11f645: ; 0x11f645 +BTWinF11: ; 0x11f645 text_jump UnknownText_0x1ecd6b db "@" -UnknownText_0x11f64a: ; 0x11f64a +BTGreetingF12: ; 0x11f64a text_jump UnknownText_0x1ecd8d db "@" -UnknownText_0x11f64f: ; 0x11f64f +BTLossF12: ; 0x11f64f text_jump UnknownText_0x1ecdaf db "@" -UnknownText_0x11f654: ; 0x11f654 +BTWinF12: ; 0x11f654 text_jump UnknownText_0x1ecdcf db "@" -UnknownText_0x11f659: ; 0x11f659 +BTGreetingF13: ; 0x11f659 text_jump UnknownText_0x1ecded db "@" -UnknownText_0x11f65e: ; 0x11f65e +BTLossF13: ; 0x11f65e text_jump UnknownText_0x1ece0d db "@" -UnknownText_0x11f663: ; 0x11f663 +BTWinF13: ; 0x11f663 text_jump UnknownText_0x1ece2a db "@" -UnknownText_0x11f668: ; 0x11f668 +BTGreetingF14: ; 0x11f668 text_jump UnknownText_0x1ece4b db "@" -UnknownText_0x11f66d: ; 0x11f66d +BTLossF14: ; 0x11f66d text_jump UnknownText_0x1ece70 db "@" -UnknownText_0x11f672: ; 0x11f672 +BTWinF14: ; 0x11f672 text_jump UnknownText_0x1ece8a db "@" -UnknownText_0x11f677: ; 0x11f677 +BTGreetingF15: ; 0x11f677 text_jump UnknownText_0x1ecea8 db "@" -UnknownText_0x11f67c: ; 0x11f67c +BTLossF15: ; 0x11f67c text_jump UnknownText_0x1ecec9 db "@" -UnknownText_0x11f681: ; 0x11f681 +BTWinF15: ; 0x11f681 text_jump UnknownText_0x1ecee8 db "@" diff --git a/tilesets/tileset_headers.asm b/tilesets/tileset_headers.asm index 1ef928b3a..752ff1cc0 100644 --- a/tilesets/tileset_headers.asm +++ b/tilesets/tileset_headers.asm @@ -1,7 +1,5 @@ tileset: macro - dbw BANK(\1GFX), \1GFX - dba \1Meta - dba \1Coll + dba \1GFX, \1Meta, \1Coll dw \1Anim dw NULL dw \1PalMap -- cgit v1.2.3 From faa2d8f26e3a1a691a3319adebfd60977490415a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 07:26:27 -0500 Subject: Reorganize BTTrainerClassGenders --- constants/misc_constants.asm | 3 ++ misc/battle_tower_47.asm | 110 +++++++++++++++++++++++++++++++++++++------ 2 files changed, 99 insertions(+), 14 deletions(-) diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 924dc7d0a..a1ca51c9e 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -119,6 +119,9 @@ WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_O MOBILE_EVENT_OBJECT_GS_BALL EQU $b +MALE EQU 0 +FEMALE EQU 1 + PRINTNUM_MONEY_F EQU 5 PRINTNUM_RIGHTALIGN_F EQU 6 PRINTNUM_LEADINGZEROS_F EQU 7 diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 96c2e8655..54cb2d10a 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -2889,7 +2889,7 @@ Function11d323: ; 11d323 ld [rSVBK], a ld hl, Palette_11d33a ld de, Unkn1Pals - ld bc, $0080 + ld bc, 16 * 8 call CopyBytes pop af ld [rSVBK], a @@ -2901,66 +2901,82 @@ Palette_11d33a: RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 31, 16, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 23, 17, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 31, 31, 31 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 RGB 00, 00, 00 + ; 11d3ba Function11d3ba: ; 11d3ba @@ -4159,17 +4175,72 @@ Unknown_11f23c: db $00, $00, $09, $00 BTTrainerClassGenders: - db 0, 1, 1, 0, 0, 1 ; FALKNER, WHITNEY, BUGSY, MORTY, PRYCE, JASMINE - db 0, 1, 0, 0, 1, 0 ; CHUCK, CLAIR, RIVAL1, POKEMON_PROF, WILL, CAL - db 0, 1, 0, 0, 0, 1 ; BRUNO, KARN, KOGA, CHAMPION, BROCK, MISTY - db 0, 0, 1, 0, 0, 0 ; LT_SURGE, SCIENTIST, ERIKA, YOUNGSTER, SCHOOLBOY, BIRD_KEEPER - db 1, 1, 0, 1, 1, 0 ; LASS, JANINE, COOLTRAINERM, COOLTRAINERF, BEAUTY, POKEMANIAC - db 0, 0, 1, 1, 1, 0 ; GRUNTM, GENTLEMAN, SKIER, TEACHER, SABRINA, BUG_CATCHER - db 0, 0, 1, 0, 0, 0 ; FISHER, SWIMMERM, SWIMMERF, SAILOR, SUPER_NERD, RIVAL2 - db 0, 0, 0, 0, 0, 0 ; GUITARIST, HIKER, BIKER, BLAINE, BURGLAR, FIREBREATHER - db 0, 0, 0, 0, 1, 0 ; JUGGLER, BLACKBELT_T, EXECUTIVEM, PSYCHIC_T, PICNICKER, CAMPER - db 1, 0, 1, 0, 0, 1 ; EXECUTIVEF, SAGE, MEDIUM, BOARDER, POKEFANM, KIMONO_GIRL - db 1, 1, 0, 0, 0, 1 ; TWINS, POKEFANF RED, BLUE, OFFICER, GRUNTF + db MALE ; FALKNER + db FEMALE ; WHITNEY + db FEMALE ; BUGSY + db MALE ; MORTY + db MALE ; PRYCE + db FEMALE ; JASMINE + db MALE ; CHUCK + db FEMALE ; CLAIR + db MALE ; RIVAL1 + db MALE ; POKEMON_PROF + db FEMALE ; WILL + db MALE ; CAL + db MALE ; BRUNO + db FEMALE ; KAREN + db MALE ; KOGA + db MALE ; CHAMPION + db MALE ; BROCK + db FEMALE ; MISTY + db MALE ; LT_SURGE + db MALE ; SCIENTIST + db FEMALE ; ERIKA + db MALE ; YOUNGSTER + db MALE ; SCHOOLBOY + db MALE ; BIRD_KEEPER + db FEMALE ; LASS + db FEMALE ; JANINE + db MALE ; COOLTRAINERM + db FEMALE ; COOLTRAINERF + db FEMALE ; BEAUTY + db MALE ; POKEMANIAC + db MALE ; GRUNTM + db MALE ; GENTLEMAN + db FEMALE ; SKIER + db FEMALE ; TEACHER + db FEMALE ; SABRINA + db MALE ; BUG_CATCHER + db MALE ; FISHER + db MALE ; SWIMMERM + db FEMALE ; SWIMMERF + db MALE ; SAILOR + db MALE ; SUPER_NERD + db MALE ; RIVAL2 + db MALE ; GUITARIST + db MALE ; HIKER + db MALE ; BIKER + db MALE ; BLAINE + db MALE ; BURGLAR + db MALE ; FIREBREATHER + db MALE ; JUGGLER + db MALE ; BLACKBELT_T + db MALE ; EXECUTIVEM + db MALE ; PSYCHIC_T + db FEMALE ; PICNICKER + db MALE ; CAMPER + db FEMALE ; EXECUTIVEF + db MALE ; SAGE + db FEMALE ; MEDIUM + db MALE ; BOARDER + db MALE ; POKEFANM + db FEMALE ; KIMONO_GIRL + db FEMALE ; TWINS + db FEMALE ; POKEFANF + db MALE ; RED + db MALE ; BLUE + db MALE ; OFFICER + db FEMALE ; GRUNTF BTMaleTrainerTexts: ; 11f332 @@ -5006,12 +5077,12 @@ Function16c145: ; 16c145 Function16c15c: ; 16c15c hlcoord 0, 0, AttrMap - ld bc, $0014 + ld bc, SCREEN_WIDTH xor a call ByteFill ld hl, Tilemap_16c79b decoord 0, 1, AttrMap - ld bc, $0154 + ld bc, 17 * SCREEN_WIDTH call CopyBytes ret ; 16c173 @@ -5030,34 +5101,42 @@ Unknown_16c903: RGB 04, 10, 20 RGB 16, 19, 25 RGB 25, 27, 29 + RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 + RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 + RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 + RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 + RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 + RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 + RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 RGB 31, 31, 31 + ; 16c943 Function16c943: ; 16c943 @@ -5644,17 +5723,20 @@ Unknown_16cfa9: RGB 31, 31, 31 RGB 07, 07, 07 + Unknown_16cfb1: RGB 31, 31, 31 RGB 13, 09, 18 RGB 26, 21, 16 RGB 07, 07, 07 + Unknown_16cfb9: RGB 31, 31, 31 RGB 18, 05, 02 RGB 27, 11, 12 RGB 07, 07, 07 + ; 16cfc1 GFX_16cfc1: -- cgit v1.2.3 From d346664b148c7d10972f772f67ffd67e147f29ea Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 07:35:41 -0500 Subject: Split up mobile_45.asm by bank --- main.asm | 12 + misc/battle_tower_47.asm | 2986 ---------------- misc/mobile_45.asm | 8885 ---------------------------------------------- misc/mobile_46.asm | 8033 +++++++++++++++++++++++++++++++++++++++++ misc/mobile_5b.asm | 1236 +++++++ misc/mobile_5c.asm | 2592 ++++++++++++++ 6 files changed, 11873 insertions(+), 11871 deletions(-) create mode 100755 misc/mobile_46.asm create mode 100755 misc/mobile_5b.asm create mode 100755 misc/mobile_5c.asm diff --git a/main.asm b/main.asm index 9fbe197ba..1da851561 100644 --- a/main.asm +++ b/main.asm @@ -81634,7 +81634,19 @@ INCLUDE "engine/title.asm" INCLUDE "misc/mobile_45.asm" +INCLUDE "misc/mobile_46.asm" +SECTION "bank47", ROMX, BANK[$47] + +INCLUDE "misc/battle_tower_47.asm" + +SECTION "bank5B", ROMX, BANK[$5B] + +INCLUDE "misc/mobile_5b.asm" + +SECTION "bank5C", ROMX, BANK[$5C] + +INCLUDE "misc/mobile_5c.asm" SECTION "bank5D", ROMX, BANK[$5D] diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 54cb2d10a..d66525916 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -4869,2989 +4869,3 @@ BTLossF15: ; 0x11f67c BTWinF15: ; 0x11f681 text_jump UnknownText_0x1ecee8 db "@" - - -SECTION "bank5B", ROMX, BANK[$5B] - -Function16c000: ; 16c000 - ld a, [hCGB] - and a - ret z - ld a, [$ffea] - and a - ret z - ld a, [wcfbe] - push af - set 7, a - ld [wcfbe], a - call Function16c108 - callba Function100063 - callba Function100082 - call Function16c031 - callba Function1000a4 - xor a - ld [$ffea], a - pop af - ld [wcfbe], a - ret -; 16c031 - -Function16c031: ; 16c031 - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [DefaultFlypoint], a - ld [wd003], a -.asm_16c03e - call DelayFrame - callba Function10635c - ld a, [DefaultFlypoint] - ld hl, Jumptable_16c05c - rst JumpTable - call Function16cb2e - call Function16cbae - ld a, [DefaultFlypoint] - cp $ff - jr nz, .asm_16c03e - ret -; 16c05c - -Jumptable_16c05c: ; 16c05c - dw Function16c074 - dw Function16c0ba - dw Function16c089 - dw Function16c09e - dw Function16c0a8 - dw Function16c0dc - dw Function16c0ec - dw Function16c0ba - dw Function16c0ca - dw Function16c0dc - dw Function16c0ec - dw Function16c081 -; 16c074 - -Function16c074: ; 16c074 - ld a, [wcf64] - and a - ret z - ld [DefaultFlypoint], a - xor a - ld [wd003], a - ret -; 16c081 - -Function16c081: ; 16c081 - push af - ld a, $ff - ld [DefaultFlypoint], a - pop af - ret -; 16c089 - -Function16c089: ; 16c089 - ld a, $1 - ld [Buffer2], a - ld [wd1f1], a - xor a - ld [hWY], a - call Function16c0fa - ld a, [DefaultFlypoint] - ld [wcf64], a - ret -; 16c09e - -Function16c09e: ; 16c09e - ld a, [wcf64] - cp $4 - ret nz - call Function16c0fa - ret -; 16c0a8 - -Function16c0a8: ; 16c0a8 - xor a - ld [Buffer2], a - ld [wd1f1], a - call ClearSprites - ld a, $90 - ld [hWY], a - call Function16c0fa - ret -; 16c0ba - -Function16c0ba: ; 16c0ba - call Function16c943 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call c, Function16c0fa - ret -; 16c0ca - -Function16c0ca: ; 16c0ca - ld a, [wd003] - cp $28 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call z, Function16c0fa - ret -; 16c0dc - -Function16c0dc: ; 16c0dc - call Function16ca11 - push af - ld a, [wd003] - inc a - ld [wd003], a - pop af - call c, Function16c0fa - ret -; 16c0ec - -Function16c0ec: ; 16c0ec - call WhiteBGMap - call ClearScreen - push af - ld a, $ff - ld [DefaultFlypoint], a - pop af - ret -; 16c0fa - -Function16c0fa: ; 16c0fa - push af - ld a, [DefaultFlypoint] - inc a - ld [DefaultFlypoint], a - xor a - ld [wd003], a - pop af - ret -; 16c108 - -Function16c108: ; 16c108 - call DisableLCD - ld hl, VTiles2 - ld de, GFX_16c173 - lb bc, BANK(GFX_16c173), $68 - call Get2bpp - call Function16c130 - call Function16c145 - call Function16c15c - ld hl, VBGMap0 - call Function16cc73 - call Function16cc02 - xor a - ld [hBGMapMode], a - call EnableLCD - ret -; 16c130 - -Function16c130: ; 16c130 - ld de, Unkn1Pals - ld hl, Unknown_16c903 - ld bc, 8 - ld a, $5 - call FarCopyWRAM - callba Function96a4 - ret -; 16c145 - -Function16c145: ; 16c145 - hlcoord 0, 0 - ld bc, 20 - xor a - call ByteFill - ld hl, Tilemap_16c633 - decoord 0, 1 - ld bc, $0154 - call CopyBytes - ret -; 16c15c - -Function16c15c: ; 16c15c - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH - xor a - call ByteFill - ld hl, Tilemap_16c79b - decoord 0, 1, AttrMap - ld bc, 17 * SCREEN_WIDTH - call CopyBytes - ret -; 16c173 - -GFX_16c173: -INCBIN "gfx/unknown/16c173.2bpp" - -Tilemap_16c633: -INCBIN "gfx/unknown/16c633.tilemap" - -Tilemap_16c79b: -INCBIN "gfx/unknown/16c79b.tilemap" - -Unknown_16c903: - RGB 31, 31, 31 - RGB 04, 10, 20 - RGB 16, 19, 25 - RGB 25, 27, 29 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 31, 31 - -; 16c943 - -Function16c943: ; 16c943 - ld a, [wd003] - and a - jr nz, .asm_16c95e - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld a, $ff - ld bc, $0008 - ld hl, Unkn1Pals - call ByteFill - pop af - ld [rSVBK], a - -.asm_16c95e - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld e, $0 - ld a, $0 -.asm_16c969 - ld hl, Unknown_16c903 - call Function16cab6 - call Function16cabb - ld d, a - ld hl, Unkn1Pals - call Function16cab6 - call Function16cabb - cp d - jr z, .asm_16c991 - ld b, $1 -.asm_16c981 - dec a - cp d - jr z, .asm_16c988 - dec b - jr nz, .asm_16c981 - -.asm_16c988 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cadc - -.asm_16c991 - ld hl, Unknown_16c903 - call Function16cab6 - call Function16cad8 - ld d, a - ld hl, Unkn1Pals - call Function16cab6 - call Function16cad8 - cp d - jr z, .asm_16c9b9 - ld b, $1 -.asm_16c9a9 - dec a - cp d - jr z, .asm_16c9b0 - dec b - jr nz, .asm_16c9a9 - -.asm_16c9b0 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cb08 - -.asm_16c9b9 - ld hl, Unknown_16c903 - call Function16cab6 - call Function16cac4 - ld d, a - ld hl, Unkn1Pals - call Function16cab6 - call Function16cac4 - cp d - jr z, .asm_16c9e1 - ld b, $1 -.asm_16c9d1 - dec a - cp d - jr z, .asm_16c9d8 - dec b - jr nz, .asm_16c9d1 - -.asm_16c9d8 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cae8 - -.asm_16c9e1 -rept 2 - inc e -endr - ld a, e - cp $8 - jr nz, .asm_16c969 - callba Function96a4 - call SetPalettes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wd003] - cp $1f - jr z, .asm_16ca09 - pop af - ld [rSVBK], a - ld e, $0 - pop af - ld [rSVBK], a - and a - ret - -.asm_16ca09 - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - scf - ret -; 16ca11 - -Function16ca11: ; 16ca11 - ld a, [wd003] - and a - jr nz, .asm_16ca1d - callba Function96a4 - -.asm_16ca1d - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld e, $0 - ld a, $0 -.asm_16ca28 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cabb - cp $1f - jr z, .asm_16ca48 - ld b, $1 -.asm_16ca37 - inc a - cp $1f - jr z, .asm_16ca3f - dec b - jr nz, .asm_16ca37 - -.asm_16ca3f - ld hl, Unkn1Pals - call Function16cab6 - call Function16cadc - -.asm_16ca48 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cad8 - cp $1f - jr z, .asm_16ca68 - ld b, $1 -.asm_16ca57 - inc a - cp $1f - jr z, .asm_16ca5f - dec b - jr nz, .asm_16ca57 - -.asm_16ca5f - ld hl, Unkn1Pals - call Function16cab6 - call Function16cb08 - -.asm_16ca68 - ld hl, Unkn1Pals - call Function16cab6 - call Function16cac4 - cp $1f - jr z, .asm_16ca88 - ld b, $1 -.asm_16ca77 - inc a - cp $1f - jr z, .asm_16ca7f - dec b - jr nz, .asm_16ca77 - -.asm_16ca7f - ld hl, Unkn1Pals - call Function16cab6 - call Function16cae8 - -.asm_16ca88 -rept 2 - inc e -endr - ld a, e - cp $8 - jr nz, .asm_16ca28 - callba Function96a4 - call SetPalettes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wd003] - cp $1f - jr z, .asm_16caae - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - and a - ret - -.asm_16caae - pop af - ld [rSVBK], a - pop af - ld [rSVBK], a - scf - ret -; 16cab6 - -Function16cab6: ; 16cab6 - ld b, $0 - ld c, e - add hl, bc - ret -; 16cabb - -Function16cabb: ; 16cabb - inc hl - ld a, [hl] - srl a - srl a - and $1f - ret -; 16cac4 - -Function16cac4: ; 16cac4 - inc hl - ld a, [hld] - and $3 - ld b, a - ld a, [hl] - sla a - rl b - sla a - rl b - sla a - rl b - ld a, b - ret -; 16cad8 - -Function16cad8: ; 16cad8 - ld a, [hl] - and $1f - ret -; 16cadc - -Function16cadc: ; 16cadc - sla a - sla a - ld b, a - inc hl - ld a, [hl] - and $83 - or b - ld [hl], a - ret -; 16cae8 - -Function16cae8: ; 16cae8 - ld c, a - srl a - srl a - srl a - ld b, a - inc hl - ld a, [hl] - and $fc - or b - ld [hld], a - ld a, c - sla a - sla a - sla a - sla a - sla a - ld b, a - ld a, [hl] - and $1f - or b - ld [hl], a - ret -; 16cb08 - -Function16cb08: ; 16cb08 - ld b, a - ld a, [hl] - and $e0 - or b - ld [hl], a - ret -; 16cb0f - -Function16cb0f: ; 16cb0f - xor a - ld [Buffer1], a - ld [Buffer2], a - xor a - ld [wd1ec], a - ld a, $70 - ld [wd1ee], a - ld a, $4 - ld [wd1ed], a - ld a, $a0 - ld [wd1ef], a - xor a - ld [wd1f0], a - ret -; 16cb2e - -Function16cb2e: ; 16cb2e - ld a, [Buffer2] - and a - ret z - call Function16cb40 - ld hl, Unknown_16cb86 - ld de, Sprites - call Function16cb5d - ret -; 16cb40 - -Function16cb40: ; 16cb40 - ld hl, wd1ec - inc [hl] - ld a, [hl] - cp $18 - ret c - xor a - ld [hl], a - ld a, [wd1ef] - cp $a0 - jr nz, .asm_16cb57 - ld a, $a7 - ld [wd1ef], a - ret - -.asm_16cb57 - ld a, $a0 - ld [wd1ef], a - ret -; 16cb5d - -Function16cb5d: ; 16cb5d - ld a, [hli] - and a - ret z -.asm_16cb60 - push af - ld a, [wd1ee] - add [hl] - add $10 - ld [de], a - inc hl - inc de - ld a, [wd1ed] - add [hl] - add $8 - ld [de], a - inc hl - inc de - ld a, [wd1ef] - add [hl] - ld [de], a - inc hl - inc de - ld a, [wd1f0] - or [hl] - ld [de], a - inc hl - inc de - pop af - dec a - jr nz, .asm_16cb60 - ret -; 16cb86 - -Unknown_16cb86: - db 7 - db 0, 0, 0, 1 - db 8, 0, 1, 1 - db 8, 8, 2, 0 - db 8, 16, 3, 0 - db 16, 0, 4, 1 - db 16, 8, 5, 0 - db 16, 16, 6, 0 -; 16cba3 - -Function16cba3: ; 16cba3 - xor a - ld [wd1f1], a - ld [wd1f2], a - ld [wd1f3], a - ret -; 16cbae - -Function16cbae: ; 16cbae - ld a, [wd1f1] - and a - ret z - call Function16cbba - call Function16cbd1 - ret -; 16cbba - -Function16cbba: ; 16cbba - ld hl, wd1f2 - inc [hl] - ld a, [hl] - cp $c - ret c - xor a - ld [hl], a - ld a, [wd1f3] - inc a - cp $4 - jr c, .asm_16cbcd - xor a - -.asm_16cbcd - ld [wd1f3], a - ret -; 16cbd1 - -Function16cbd1: ; 16cbd1 - ld a, [wd1f3] - ld c, a - ld b, 0 - ld hl, Unknown_16cbfb - add hl, bc - ld a, [hl] - ld bc, $0002 - ld hl, Unknown_16cfa3 - call AddNTimes - ld de, wd00c - ld bc, $0002 - ld a, $5 - call FarCopyWRAM - callba Function96a4 - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 16cbfb - -Unknown_16cbfb: - db 0, 1, 2, 1, 0, 1, 2 -; 16cc02 - -Function16cc02: ; 16cc02 - call Function16cc18 - call Function16cc49 - call Function16cc62 - call Function16cc25 - call Function16cc6e - call Function16cb0f - call Function16cba3 - ret -; 16cc18 - -Function16cc18: ; 16cc18 - ld hl, VTiles1 - ld de, GFX_16cca3 - lb bc, BANK(GFX_16cca3), $2e - call Get2bpp - ret -; 16cc25 - -Function16cc25: ; 16cc25 - ld hl, Unknown_16cfa9 - ld de, wd008 - call Function16cc41 - ld hl, Unknown_16cfb1 - ld de, Unkn2Pals - call Function16cc41 - ld hl, Unknown_16cfb9 - ld de, wd048 - call Function16cc41 - ret -; 16cc41 - -Function16cc41: ; 16cc41 - ld bc, $0008 - ld a, $5 - jp FarCopyWRAM -; 16cc49 - -Function16cc49: ; 16cc49 - hlcoord 4, 15 - ld a, $80 - call Function16cc5a - hlcoord 4, 16 - ld a, $90 - call Function16cc5a - ret -; 16cc5a - -Function16cc5a: ; 16cc5a - ld c, $10 -.asm_16cc5c - ld [hli], a - inc a - dec c - jr nz, .asm_16cc5c - ret -; 16cc62 - -Function16cc62: ; 16cc62 - hlcoord 0, 15, AttrMap - ld bc, $0028 - ld a, $1 - call ByteFill - ret -; 16cc6e - -Function16cc6e: ; 16cc6e - ld hl, VBGMap1 - jr Function16cc73 - -Function16cc73: - ld a, [rVBK] - push af - ld a, $0 - ld [rVBK], a - push hl - decoord 0, 0 - call Function16cc90 - pop hl - ld a, $1 - ld [rVBK], a - decoord 0, 0, AttrMap - call Function16cc90 - pop af - ld [rVBK], a - ret -; 16cc90 - -Function16cc90: ; 16cc90 - ld bc, $1214 -.asm_16cc93 - push bc -.asm_16cc94 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_16cc94 - ld bc, $000c - add hl, bc - pop bc - dec b - jr nz, .asm_16cc93 - ret -; 16cca3 - -GFX_16cca3: -INCBIN "gfx/unknown/16cca3.2bpp" - -Unknown_16cfa3: - RGB 31, 31, 31 - RGB 25, 27, 29 - RGB 16, 19, 25 - -Unknown_16cfa9: - RGB 31, 31, 31 - RGB 25, 27, 29 - RGB 31, 31, 31 - RGB 07, 07, 07 - - -Unknown_16cfb1: - RGB 31, 31, 31 - RGB 13, 09, 18 - RGB 26, 21, 16 - RGB 07, 07, 07 - - -Unknown_16cfb9: - RGB 31, 31, 31 - RGB 18, 05, 02 - RGB 27, 11, 12 - RGB 07, 07, 07 - -; 16cfc1 - -GFX_16cfc1: -INCBIN "gfx/unknown/16cfc1.2bpp" - -Function16d421: ; 16d421 - ld de, GFX_16cfc1 - ld hl, VTiles2 - lb bc, BANK(GFX_16cfc1), $46 - call Get2bpp - ret -; 16d42e - -Function16d42e: ; 16d42e - ld hl, Tilemap_16d465 - decoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call CopyBytes - ret -; 16d43b - -Function16d43b: ; 16d43b - call LoadMenuDataHeader_0x1d75 - call WhiteBGMap - call ClearTileMap - call ClearSprites - callba Function16d421 - callba Function16d42e - ld b, $8 - call GetSGBLayout - call SetPalettes - call WaitBGMap - call JoyWaitAorB - call Call_ExitMenu - ret -; 16d465 - -Tilemap_16d465: -INCBIN "gfx/unknown/16d465.tilemap" - -Tilemap_16d5cd: -INCBIN "gfx/unknown/16d5cd.tilemap" - -Tilemap_16d5f5: -INCBIN "gfx/unknown/16d5f5.tilemap" - -Function16d61d: ; 16d61d - ld h, d - ld l, e - push bc - push hl - call Function16d640 - pop hl - pop bc - ld de, AttrMap - TileMap - add hl, de -rept 2 - inc b -endr -rept 2 - inc c -endr - ld a, $7 -.asm_16d630 - push bc - push hl -.asm_16d632 - ld [hli], a - dec c - jr nz, .asm_16d632 - pop hl - ld de, $0014 - add hl, de - pop bc - dec b - jr nz, .asm_16d630 - ret -; 16d640 - -Function16d640: ; 16d640 - push hl - ld a, $30 - ld [hli], a - inc a - call Function16d66d - inc a - ld [hl], a - pop hl - ld de, $0014 - add hl, de -.asm_16d64f - push hl - ld a, $33 - ld [hli], a - ld a, $7f - call Function16d66d - ld [hl], $34 - pop hl - ld de, $0014 - add hl, de - dec b - jr nz, .asm_16d64f - ld a, $35 - ld [hli], a - ld a, $36 - call Function16d66d - ld [hl], $37 - ret -; 16d66d - -Function16d66d: ; 16d66d - ld d, c -.asm_16d66e - ld [hli], a - dec d - jr nz, .asm_16d66e - ret -; 16d673 - -Function16d673: ; 16d673 - call Function16d696 - call Function16d6ae - callba Function49856 - callba Functionfb60d - hlcoord 10, 17 - ld de, String_16d68f - call PlaceString - ret -; 16d68f - -String_16d68f: ; 16d68f - db "CANCEL@" -; 16d696 - -Function16d696: ; 16d696 - call Function16d421 - ret -; 16d69a - - -Function16d69a: ; 16d69a - ld de, GFX_16cfc1 + $300 - ld hl, VTiles2 tile $76 - lb bc, BANK(GFX_16cfc1), 8 - call Get2bpp - ret -; 16d6a7 - -Function16d6a7: ; 16d6a7 - callba Function49811 - ret -; 16d6ae - -Function16d6ae: ; 16d6ae - call Function16d42e - ld hl, Tilemap_16d5cd - decoord 0, 0 - ld bc, $0028 - call CopyBytes - ld hl, Tilemap_16d5f5 - decoord 0, 16 - ld bc, $0028 - call CopyBytes - ret -; 16d6ca - -Function16d6ca: ; 16d6ca - call Function16d61d - ret -; 16d6ce - -Function16d6ce: ; 16d6ce - call LoadMenuDataHeader_0x1d75 - call Function16d6e1 - callba Function87d - call Call_ExitMenu - call Function3200 - ret -; 16d6e1 - -Function16d6e1: ; 16d6e1 - hlcoord 4, 10 - ld b, $1 - ld c, $a - predef Function28eef - hlcoord 5, 11 - ld de, String_16d701 - call PlaceString - call WaitBGMap - call Function3200 - ld c, $32 - jp DelayFrames -; 16d701 - -String_16d701: ; 16d701 - db "WAITING..!@" -; 16d70c - -Function16d70c: ; 16d70c - call Function16d725 - call Function16d713 - ret -; 16d713 - -Function16d713: ; 16d713 - push bc - push af - ld a, [hJoyLast] - and $f0 - ld b, a - ld a, [hJoyPressed] - and $f - or b - ld b, a - pop af - ld a, b - pop bc - ld d, a - ret -; 16d725 - -Function16d725: ; 16d725 - ld hl, wcfa6 - res 7, [hl] - ld a, [hBGMapMode] - push af - call Function16d734 - pop af - ld [hBGMapMode], a - ret -; 16d734 - -Function16d734: ; 16d734 -.asm_16d734 - call Function16d77a - call Function16d759 - call Function16d76a - jr nc, .asm_16d758 - callba Function24270 - jr c, .asm_16d758 - ld a, [wcfa5] - bit 7, a - jr nz, .asm_16d758 - call Function16d713 - ld b, a - ld a, [wcfa8] - and b - jr z, .asm_16d734 - -.asm_16d758 - ret -; 16d759 - -Function16d759: ; 16d759 - ld a, [hOAMUpdate] - push af - ld a, $1 - ld [hOAMUpdate], a - call WaitBGMap - pop af - ld [hOAMUpdate], a - xor a - ld [hBGMapMode], a - ret -; 16d76a - -Function16d76a: ; 16d76a -.asm_16d76a - call RTC - call Function16d7e7 - ret c - ld a, [wcfa5] - bit 7, a - jr z, .asm_16d76a - and a - ret -; 16d77a - -Function16d77a: ; 16d77a - ld hl, wcfac - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - cp $1f - jr nz, .asm_16d792 - ld a, [wcfab] - ld [hl], a - push hl - push bc - ld bc, $000b - add hl, bc - ld [hl], a - pop bc - pop hl - -.asm_16d792 - ld a, [wcfa1] - ld b, a - ld a, [wcfa2] - ld c, a - call GetTileCoord - ld a, [wcfa7] - swap a - and $f - ld c, a - ld a, [wcfa9] - ld b, a - xor a - dec b - jr z, .asm_16d7b1 -.asm_16d7ad - add c - dec b - jr nz, .asm_16d7ad - -.asm_16d7b1 - ld c, $14 - call AddNTimes - ld a, [wcfa7] - and $f - ld c, a - ld a, [wcfaa] - ld b, a - xor a - dec b - jr z, .asm_16d7c8 -.asm_16d7c4 - add c - dec b - jr nz, .asm_16d7c4 - -.asm_16d7c8 - ld c, a - add hl, bc - ld a, [hl] - cp $1f - jr z, .asm_16d7de - ld [wcfab], a - ld [hl], $1f - push hl - push bc - ld bc, $000b - add hl, bc - ld [hl], $1f - pop bc - pop hl - -.asm_16d7de - ld a, l - ld [wcfac], a - ld a, h - ld [wcfad], a - ret -; 16d7e7 - -Function16d7e7: ; 16d7e7 - ld a, [wcfa5] - bit 6, a - jr z, .asm_16d7f4 - callba Function8cf62 - -.asm_16d7f4 - call JoyTextDelay - call Function16d713 - and a - ret z - scf - ret -; 16d7fe - - -SECTION "bank5C", ROMX, BANK[$5C] - -Function170000: ; 170000 - ld a, [$c62b] - ld [$c6d0], a - ld hl, $c62e - ld de, $c6e7 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $c663 - ld de, $c6f2 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $c648 - ld a, [hli] - ld [$c6fd], a - ld a, [hl] - ld [$c6fe], a - ld hl, $c639 - ld a, [hli] - ld [$c6ff], a - ld a, [hl] - ld [wc700], a - ld bc, $c633 - callba GetCaughtGender - ld a, c - ld [wc701], a - ld a, [wcd81] - ld [wc74e], a - ld hl, $c608 - ld de, $d800 - ld bc, $008f - call CopyBytes - ret -; 17005a - -Function17005a: ; 17005a - ld a, $5 - call GetSRAMBank - ld a, [$a824] - ld [wc702], a - ld hl, $a827 - ld de, wc719 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $a85c - ld de, wc724 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld hl, $a841 - ld a, [hli] - ld [wc72f], a - ld a, [hl] - ld [wc730], a - ld hl, $a832 - ld a, [hli] - ld [wc731], a - ld a, [hl] - ld [wc732], a - ld bc, $a82c - callba GetCaughtGender - ld a, c - ld [wc733], a - ld a, [wcd81] - ld [wc74e], a - call CloseSRAM - ret -; 1700b0 - -Function1700b0: ; 1700b0 - call Function17021e - callba Function118121 - ret -; 1700ba - -Function1700ba: ; 1700ba - call Function17021e - callba Function11811a - ret -; 1700c4 - -Function1700c4: ; 1700c4 - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - call Function17042c - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$be45], a - xor a - ld [$be46], a - ld hl, $dffc - ld de, $aa41 - ld bc, $0004 - call CopyBytes - ld hl, $d202 - ld de, $aa8e - ld bc, $0594 - call CopyBytes - ld hl, $aa5d - ld a, [hl] - inc [hl] - inc hl - sla a - sla a - ld e, a - ld d, $0 - add hl, de - ld e, l - ld d, h - ld hl, $dffc - ld bc, $0004 - call CopyBytes - call CloseSRAM - pop af - ld [rSVBK], a - ret -; 170114 - -Function170114: ; 170114 - call Function17021e - call Function170121 - callba Function11805f - ret -; 170121 - -Function170121: ; 170121 - ld a, $5 - call GetSRAMBank - ld hl, $a948 - ld de, $c608 - ld bc, $00f6 - call CopyBytes - call CloseSRAM - call Function170c8b - ret -; 170139 - -Function170139: ; 170139 - ld a, $5 - call GetSRAMBank - ld de, $aa41 - ld h, $0 - ld l, h - ld bc, $03e8 - call Function17020c - ld bc, $0064 - call Function17020c - ld bc, $000a - call Function17020c - ld a, [de] - ld c, a - ld b, $0 - add hl, bc - call CloseSRAM - ld a, h - ld [$c608], a - ld a, l - ld [$c608 + 1], a - ld hl, $c628 - ld a, [PlayerID] - ld [hli], a - ld a, [PlayerID + 1] - ld [hli], a - ld a, [wSecretID] - ld [hli], a - ld a, [wSecretID + 1] - ld [hli], a - ld e, l - ld d, h - ld hl, PlayerName - ld bc, $0005 - call CopyBytes - ld bc, PlayerID - ld de, PlayerGender - callba Function4e929 - ld de, $c62c + 5 - ld a, c - ld [de], a - inc de - ld a, $df - ld [wcd49], a - ld a, $dc - ld [wcd4a], a - ld a, $41 - ld [wcd4b], a - ld a, $de - ld [wcd4c], a - ld a, $3 -.asm_1701ac - push af - ld a, [wcd49] - ld l, a - ld a, [wcd4a] - ld h, a - ld bc, $0030 - call CopyBytes - ld a, l - ld [wcd49], a - ld a, h - ld [wcd4a], a - ld a, [wcd4b] - ld l, a - ld a, [wcd4c] - ld h, a - ld bc, $0006 - call CopyBytes - ld a, l - ld [wcd4b], a - ld a, h - ld [wcd4c], a - pop af - dec a - jr nz, .asm_1701ac - ld a, $4 - call GetSRAMBank - ld hl, $a013 - ld bc, $0024 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $a894 - ld bc, $0006 - call CopyBytes - ld hl, $c608 - ld de, $a948 - ld bc, $00f6 - call CopyBytes - call CloseSRAM - ret -; 17020c - -Function17020c: ; 17020c - ld a, [de] - inc de - and a - ret z -.asm_170210 - add hl, bc - dec a - jr nz, .asm_170210 - ret -; 170215 - -BattleTowerBattle: ; 170215 - xor a - ld [wJumptableIndex], a - call Function17022c - ret -; 17021d - -Function17021d: ; 17021d - ret -; 17021e - -Function17021e: ; 17021e - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ret -; 17022c - -Function17022c: ; 17022c -.loop - call Jumpto_BattleTowerBattleFunction - call DelayFrame - ld a, [wJumptableIndex] - cp $1 - jr nz, .loop - ret -; 17023a - -Jumpto_BattleTowerBattleFunction: ; 17023a - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_BattleTowerBattleFunctions -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 170249 - -Jumptable_BattleTowerBattleFunctions: ; 170249 - dw RunBattleTowerBattle - dw SkipBattleTowerBattle -; 17024d - -RunBattleTowerBattle: ; 17024d - ld a, [Options] - push af - ld hl, Options - set 6, [hl] - ld a, [InBattleTowerBattle] - push af - or $1 - ld [InBattleTowerBattle], a - xor a - ld [wLinkMode], a - callba Mobile_HealParty - callba HealParty - call Function1702b7 - call Function170bf7 - predef StartBattle - callba LoadPokemonData - callba HealParty - ld a, [wBattleResult] - ld [ScriptVar], a - and a - jr nz, .lost - ld a, BANK(sNrOfBeatenBattleTowerTrainers) - call GetSRAMBank - ld a, [sNrOfBeatenBattleTowerTrainers] - ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 - call CloseSRAM - ld hl, StringBuffer3 - ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 - add $f7 - ld [hli], a - ld a, $50 - ld [hl], a - -.lost - pop af - ld [InBattleTowerBattle], a - pop af - ld [Options], a - ld a, $1 - ld [wJumptableIndex], a - ret - - -Function1702b7: ; 1702b7 -; Initialise the BattleTower-Trainer and his Pkmn - call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_1702db - - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_1702db - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_1702fc - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_1702fc - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_17031d - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_17031d - ld a, $50 - ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d - ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688 - ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3 - call Function170c98 - ld de, wBT_OTTempCopy - ld c, $a - callba Function17d073 - jr nc, .asm_17033d - ld hl, String_170426 - jr .asm_170340 - -.asm_17033d - ld hl, wBT_OTTempCopy ; 0xc608 - -.asm_170340 - ld de, wd26b - ld bc, $000a - call CopyBytes - ld a, $50 - ld [de], a - ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass - ld a, [hli] - ld [OtherTrainerClass], a - ld a, $ea - ld [BGMapBuffer], a - ld a, $d3 - ld [wcd21], a - - ; Copy Pkmn into Memory from the address in hl - ld de, OTPartyMon1Species - ld bc, OTPartyCount - ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has - ld [bc], a - inc bc -.asm_170367 - push af - ld a, [hl] - ld [bc], a - inc bc - push bc - ld bc, party_struct_length - call CopyBytes - push de - ld a, [BGMapBuffer] - ld e, a - ld a, [wcd21] - ld d, a - ld bc, $000b - call CopyBytes - ld a, e - ld [BGMapBuffer], a - ld a, d - ld [wcd21], a - pop de - pop bc - pop af - dec a - and a - jr nz, .asm_170367 - ld a, $ff - ld [bc], a - ret -; 170394 - -Function170394: ; 170394 - ld hl, $c608 + 11 - ld d, $3 -.asm_170399 - push de - push hl - ld b, h - ld c, l - ld a, [hl] - and a - jr z, .asm_1703b1 - cp $ff - jr z, .asm_1703b1 - cp $fe - jr z, .asm_1703b1 - cp $fd - jr z, .asm_1703b1 - cp $fc - jr nz, .asm_1703b4 - -.asm_1703b1 - ld a, $eb - ld [hl], a - -.asm_1703b4 - ld [CurSpecies], a - call GetBaseData - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld e, a - ld hl, $001f - add hl, bc - ld a, [hl] - cp $2 - ld a, $2 - jr c, .asm_1703d6 - ld a, [hl] - cp e - jr c, .asm_1703d7 - ld a, e - -.asm_1703d6 - ld [hl], a - -.asm_1703d7 - ld [CurPartyLevel], a - ld hl, $0002 - add hl, bc - ld d, $3 - ld a, [hli] - and a - jr z, .asm_1703ea - cp $fc - jr nc, .asm_1703ea - jr .asm_1703f4 - -.asm_1703ea - dec hl - ld a, $1 - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - jr .asm_1703ff - -.asm_1703f4 - ld a, [hl] - cp $fc - jr c, .asm_1703fb - ld [hl], $0 - -.asm_1703fb - inc hl - dec d - jr nz, .asm_1703f4 - -.asm_1703ff - ld hl, $0024 - add hl, bc - ld d, h - ld e, l - push hl - push de - ld hl, $000a - add hl, bc - ld b, $1 - predef CalcPkmnStats - pop de - pop hl -rept 2 - dec de -endr - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - pop hl - ld bc, $003b - add hl, bc - pop de - dec d - jp nz, .asm_170399 - ret -; 170426 - -String_170426: ; 170426 - db "CHRIS@" -; 17042c - -Function17042c: ; 17042c - ld hl, OTPartyMon2ID - ld a, $7 -.asm_170431 - push af - push hl - ld c, $12 -.asm_170435 - ld a, [hli] - ld b, a - ld a, [hli] - and a - jr z, .asm_170451 - cp $f - jr nc, .asm_17045b - push hl - ld hl, Unknown_170470 - dec a - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - pop hl - cp b - jr c, .asm_17045b - jr z, .asm_17045b - jr .asm_170456 - -.asm_170451 - ld a, b - cp $fc - jr nc, .asm_17045b - -.asm_170456 - dec c - jr nz, .asm_170435 - jr .asm_170466 - -.asm_17045b - pop de - push de - ld hl, Unknown_17047e - ld bc, $0024 - call CopyBytes - -.asm_170466 - pop hl - ld de, $00e0 - add hl, de - pop af - dec a - jr nz, .asm_170431 - ret -; 170470 - -Unknown_170470: - db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 - -Unknown_17047e: - db $03, $04, $05, $08 - db $03, $05, $0e, $06 - db $03, $02, $00, $00 - db $39, $07, $07, $04 - db $00, $05, $04, $07 - db $01, $05, $00, $00 - db $0f, $05, $14, $07 - db $05, $05, $11, $0c - db $0c, $06, $06, $04 - - -CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 -; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy' - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, BT_OTrainer ; $d100 - ld de, wBT_OTTempCopy ; $c608 - ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 - ; = $a + $1 + BATTLETOWER_NROFPKMNS * (party_struct_length + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH - call CopyBytes - pop af - ld [rSVBK], a - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $2 - ld [s1_be45], a - ld hl, sNrOfBeatenBattleTowerTrainers - inc [hl] - call CloseSRAM -SkipBattleTowerBattle: ; 1704c9 - ret -; 1704ca - - -Function1704ca: ; 1704ca - ld a, [$be46] - cp $7 - jr c, .asm_1704d3 - ld a, $6 - -.asm_1704d3 - ld hl, $afce - ld de, -$e0 -.asm_1704d9 - and a - jr z, .asm_1704e0 - add hl, de - dec a - jr .asm_1704d9 - -.asm_1704e0 - ret -; 1704e1 - -Function1704e1: ; 1704e1 - call SpeechTextBox - call FadeToMenu - call Function17021e - call Function1704f1 - call Function2b3c - ret -; 1704f1 - -Function1704f1: ; 1704f1 - call WhiteBGMap - call ClearSprites - call ClearScreen -.asm_1704fa - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_17050f - call Function170510 - callba Function104061 - jr .asm_1704fa - -.asm_17050f - ret -; 170510 - -Function170510: ; 170510 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_17051f -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 17051f - -Jumptable_17051f: ; 17051f - dw Function170525 - dw Function170571 - dw Function170577 -; 170525 - -Function170525: ; 170525 - ld a, $5 - call GetSRAMBank - - ld hl, $a89c - ld de, StringBuffer3 - ld bc, $0016 - call CopyBytes - - ld hl, $a8b2 - ld de, $c608 - ld bc, $0096 - call CopyBytes - - call CloseSRAM - hlcoord 1, 1 - ld de, StringBuffer3 - call PlaceString - hlcoord 1, 3 - ld de, String_170676 - call PlaceString - hlcoord 4, 3 - ld de, StringBuffer4 - call PlaceString - hlcoord 8, 3 - ld de, String_17067a - call PlaceString - call Function1705b7 - call Function1705f0 - jr Function1705b2 - - -Function170571: - call SetPalettes - call Function1705b2 - - -Function170577: - ld hl, hJoyPressed - ld a, [hl] - and $1 - jr nz, .asm_1705ac - ld a, [hl] - and $2 - jr nz, .asm_1705ac - ld a, [hl] - and $40 - jr nz, .asm_17058f - ld a, [hl] - and $80 - jr nz, .asm_17059d - ret - -.asm_17058f - ld a, [wcf64] - and a - ret z - sub $f - ld [wcf64], a - call Function1705f0 - ret - -.asm_17059d - ld a, [wcf64] - cp $3c - ret z - add $f - ld [wcf64], a - call Function1705f0 - ret - -.asm_1705ac - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function1705b2: - ld hl, wJumptableIndex - inc [hl] - ret -; 1705b7 - -Function1705b7: ; 1705b7 - hlcoord 0, 4 - ld a, $79 - ld [hli], a - ld c, $12 -.asm_1705bf - ld a, $7a - ld [hli], a - dec c - jr nz, .asm_1705bf - ld a, $7b - ld [hli], a - ld de, $0014 - ld c, $c -.asm_1705cd - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_1705cd - ld a, $7d - ld [hli], a - ld c, $12 -.asm_1705d9 - ld a, $7a - ld [hli], a - dec c - jr nz, .asm_1705d9 - ld a, $7e - ld [hl], a - ld de, $ffec - add hl, de - ld c, $c -.asm_1705e8 - ld a, $7c - ld [hl], a - add hl, de - dec c - jr nz, .asm_1705e8 - ret -; 1705f0 - -Function1705f0: ; 1705f0 - call Function17064b - call Function17065d - ld a, $50 - ld [wcd4e], a - ld hl, $c608 - ld a, [wcf64] - ld c, a - xor a - ld b, a - add hl, bc - push hl - pop bc - hlcoord 1, 6 - ld a, $6 -.asm_17060c - push af - push hl - ld a, $3 -.asm_170610 - push af - ld de, wcd49 - ld a, [bc] - and a - jr z, .asm_170625 - ld a, $5 -.asm_17061a - push af - ld a, [bc] - ld [de], a - inc bc - inc de - pop af - dec a - jr nz, .asm_17061a - jr .asm_170631 - -.asm_170625 - ld a, $5 -.asm_170627 - push af - ld a, $e3 - ld [de], a - inc de - inc bc - pop af - dec a - jr nz, .asm_170627 - -.asm_170631 - ld de, wcd49 - push bc - call PlaceString - ld de, $0006 - add hl, de - pop bc - pop af - dec a - jr nz, .asm_170610 - pop hl - ld de, $0028 - add hl, de - pop af - dec a - jr nz, .asm_17060c - ret -; 17064b - -Function17064b: ; 17064b - hlcoord 1, 5 - xor a - ld b, $c -.asm_170651 - ld c, $12 -.asm_170653 - ld [hli], a - dec c - jr nz, .asm_170653 -rept 2 - inc hl -endr - dec b - jr nz, .asm_170651 - ret -; 17065d - -Function17065d: ; 17065d - ld a, [wcf64] - and a - jr z, .asm_170669 - hlcoord 18, 5 - ld a, $61 - ld [hl], a - -.asm_170669 - ld a, [wcf64] - cp $3c - ret z - hlcoord 18, 16 - ld a, $ee - ld [hl], a - ret -; 170676 - -String_170676: ; 170676 - db "ルーム@" -; 17067a - -String_17067a: ; 17067a - db "れきだいりーダーいちらん@" -; 170687 - -BattleTowerAction: ; 170687 - ld a, [ScriptVar] - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 170696 - - -.jumptable: ; 170696 (5c:4696) - dw Function17075f ; 0x00 - dw Function170788 ; 0x01 - dw Function170778 ; 0x02 - dw Function170799 ; 0x03 - dw Function17079d ; 0x04 - dw Function1707ac ; 0x05 - dw Function1707f4 ; 0x06 - dw Function170868 ; 0x07 - dw Function170881 ; 0x08 - dw Function17089a ; 0x09 - dw Function1708b1 ; 0x0a - dw Function1708b9 ; 0x0b - dw Function1708c8 ; 0x0c - dw Function1708f0 ; 0x0d - dw Function17093c ; 0x0e - dw Function1709aa ; 0x0f - dw Function1709bb ; 0x10 - dw Function170a9c ; 0x11 - dw Function170aa0 ; 0x12 - dw Function170aaf ; 0x13 - dw Function170abe ; 0x14 - dw Function170ad7 ; 0x15 - dw Function170807 ; 0x16 - dw Function17081d ; 0x17 - dw Function170ae8 ; 0x18 - dw Function170b16 ; 0x19 - dw ResetBattleTowerTrainersSRAM ; 0x1a - dw Function1706ee ; 0x1b - dw Function17071b ; 0x1c - dw Function170729 ; 0x1d - dw Function17073e ; 0x1e - dw Function170737 ; 0x1f - - -; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) -ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a - ld a, BANK(sBTTrainers) - call GetSRAMBank - - ld a, $ff - ld hl, sBTTrainers - ld bc, BATTLETOWER_NROFTRAINERS - call ByteFill - - xor a - ld [sNrOfBeatenBattleTowerTrainers], a - - call CloseSRAM - - ret - -Function1706ee: ; 1706ee (5c:46ee) - ld a, BANK(sbe50) - call GetSRAMBank - - ld a, [sbe50] - call CloseSRAM - ld [ScriptVar], a - ld hl, NumItems - ld a, [hli] - cp $14 - ret c - ld b, $14 - ld a, [ScriptVar] - ld c, a -.asm_170709 - ld a, [hli] - cp c - jr nz, .asm_170711 - ld a, [hl] - cp $5f - ret c -.asm_170711 - inc hl - dec b - jr nz, .asm_170709 - ld a, $12 - ld [ScriptVar], a - ret - -Function17071b: ; 17071b (5c:471b) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $3 - ld [s1_be45], a - call CloseSRAM - ret - -Function170729: ; 170729 (5c:4729) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $4 - ld [s1_be45], a - call CloseSRAM - ret - -Function170737: ; 170737 (5c:4737) - callba SaveOptions - ret - -Function17073e: ; 17073e (5c:473e) - call Random - ld a, [hRandomAdd] ; $ff00+$e1 - and $7 - cp $6 - jr c, .asm_17074b - sub $6 -.asm_17074b - add $1a - cp $1e - jr z, Function17073e - push af - ld a, BANK(sbe50) - call GetSRAMBank - pop af - ld [sbe50], a - call CloseSRAM - ret - -Function17075f: ; 17075f (5c:475f) - call Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - and $2 - ld [ScriptVar], a - call CloseSRAM - ret - -Function170778: ; 170778 (5c:4778) - ld hl, s1_be45 - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, [hl] - ld [ScriptVar], a - call CloseSRAM - ret - -Function170788: ; 170788 (5c:4788) - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - or $2 - ld [sbe4f], a - call CloseSRAM - ret - -Function170799: ; 170799 (5c:4799) - ld c, $1 - jr asm_17079f - -Function17079d: ; 17079d (5c:479d) - ld c, $0 -asm_17079f: ; 17079f (5c:479f) - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, c - ld [s1_be45], a - call CloseSRAM - ret - -Function1707ac: ; 1707ac (5c:47ac) - ld a, $5 - call GetSRAMBank - ld a, [$aa8c] - ld b, a - ld a, [$be46] - ld [ScriptVar], a - call CloseSRAM - and a - ret z - ld a, b - cp $2 - jr nc, .asm_1707ef - push bc - call UpdateTime - pop bc - ld a, $5 - call GetSRAMBank - ld a, [$aa8b] - call CloseSRAM - ld c, a - ld a, [CurDay] - sub c - jr c, .asm_1707e5 - cp $8 - jr nc, .asm_1707ef - ld a, b - and a - jr nz, .asm_1707ef - ret -.asm_1707e5 - ld hl, CurDay - ld a, $8c - sub c - add [hl] - cp $8 - ret c -.asm_1707ef - ld a, $8 - ld [ScriptVar], a - -Function1707f4: ; 1707f4 (5c:47f4) - ld a, $5 - call GetSRAMBank - xor a - ld [$be46], a - ld [$aa8b], a - ld [$aa8c], a - call CloseSRAM - ret - -Function170807: ; 170807 (5c:4807) - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [CurDay] - ld [$b2f9], a - xor a - ld [$b2fa], a - call CloseSRAM - ret - -Function17081d: ; 17081d (5c:481d) - xor a - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - ld a, [$b2f9] - ld c, a - ld a, [$b2fa] - ld b, a - call CloseSRAM - cp $2 - jr nc, .asm_170853 - push bc - call UpdateTime - pop bc - ld a, [CurDay] - sub c - jr c, .asm_170849 - cp $b - jr nc, .asm_170853 - ld a, b - and a - jr nz, .asm_170853 - ret -.asm_170849 - ld hl, CurDay - ld a, $8c - sub c - add [hl] - cp $b - ret c -.asm_170853 - ld a, $1 - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - xor a - ld [$b2f9], a - ld [$b2fa], a - call CloseSRAM - ret - -Function170868: ; 170868 (5c:4868) - ld a, BANK(sbe47) - call GetSRAMBank - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $3 - ld [rSVBK], a ; $ff00+$70 - ld a, [wd000 + $800] - ld [sbe47], a - pop af - ld [rSVBK], a ; $ff00+$70 - call CloseSRAM - ret - -Function170881: ; 170881 (5c:4881) - ld a, BANK(sbe47) - call GetSRAMBank - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $3 - ld [rSVBK], a ; $ff00+$70 - ld a, [sbe47] - ld [wd000 + $800], a - pop af - ld [rSVBK], a ; $ff00+$70 - call CloseSRAM - ret - -Function17089a: ; 17089a - ld a, [wcfcd] - and a - jr z, .asm_1708ad - callba Function14bcb - jr z, .asm_1708ab - xor a - jr .asm_1708ad - -.asm_1708ab - ld a, $1 - -.asm_1708ad - ld [ScriptVar], a - ret -; 1708b1 - - -Function1708b1: ; 1708b1 (5c:48b1) - xor a - ld [MusicFade], a - call MaxVolume - ret - -Function1708b9: ; 1708b9 (5c:48b9) something to do with GS Ball - ld a, BANK(s1_be3c) - call GetSRAMBank - ld a, [s1_be3c] - ld [ScriptVar], a - call CloseSRAM - ret - -Function1708c8: ; 1708c8 (5c:48c8) - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [CurDay] - ld [$aa8b], a - xor a - ld [$aa8c], a - ld a, [$aa5d] - cp $2 - jr nc, .asm_1708ec - ld a, [CurDay] - ld [$aa48], a - ld a, $1 - ld [$aa47], a -.asm_1708ec - call CloseSRAM - ret - -Function1708f0: ; 1708f0 (5c:48f0) - xor a - ld [ScriptVar], a - call UpdateTime - ld a, $5 - call GetSRAMBank - ld a, [$aa48] - ld c, a - ld a, [$aa47] - call CloseSRAM - and a - ret z - ld hl, CurDay - ld a, c - cp [hl] - jr nz, Function170923 - ld a, $5 - call GetSRAMBank - ld a, [$aa5d] - call CloseSRAM - cp $5 - ret c - ld a, $1 - ld [ScriptVar], a - ret - - -Function170923: ; 170923 - ld a, $5 - call GetSRAMBank - xor a - ld [$aa48], a - ld [$aa47], a - ld hl, $aa5d - ld bc, $0011 - call ByteFill - call CloseSRAM - ret -; 17093c - - -Function17093c: ; 17093c (5c:493c) - xor a - ld [ScriptVar], a - ld a, EGG_TICKET - ld [CurItem], a - ld hl, NumItems - call CheckItem - ret nc - ld a, [PartyCount] - ld b, 0 - ld c, a - ld hl, PartySpecies -.loop - ld a, [hli] - cp EGG - jr nz, .not_egg - push hl - ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) - ld de, $6 - ld a, b - and a - jr z, .skip -.loop2 - add hl, de - dec a - jr nz, .loop2 -.skip - ld de, String_1709a4 - ld a, $6 -.asm_17096e - push af - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_17099d - pop af - dec a - jr nz, .asm_17096e -rept 4 - dec hl -endr - ld a, $50 -rept 2 - ld [hli], a -endr - pop hl - ld a, EGG_TICKET - ld [CurItem], a - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld a, $ff - ld [wd107], a - ld hl, NumItems - call TossItem - ld a, $1 - ld [ScriptVar], a - ret - -.asm_17099d - pop af - pop hl -.not_egg - inc b - dec c - jr nz, .loop - ret -; 1709a4 (5c:49a4) - -String_1709a4: ; 1709a4 - db "なぞナゾ@@" - -Function1709aa: ; 1709aa (5c:49aa) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, BANK(w3_d090) - ld [rSVBK], a ; $ff00+$70 - ld a, [w3_d090] - ld [ScriptVar], a - pop af - ld [rSVBK], a ; $ff00+$70 - ret - -Function1709bb: ; 1709bb (5c:49bb) - xor a - ld [ScriptVar], a - ld a, $5 - call GetSRAMBank - ld a, [$a800] - call CloseSRAM - cp 6 - jr nc, .invalid - ld e, a - ld d, 0 - ld hl, Jumptable_1709e7 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.invalid - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - call CloseSRAM - ret -; 1709e7 (5c:49e7) - -Jumptable_1709e7: ; 1709e7 - dw Function170a00 - dw Function170a00 - dw Function1709f3 - dw Function1709f3 - dw Function170a01 - dw Function170a33 -; 1709f3 - -Function1709f3: ; 1709f3 - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$a800], a - call CloseSRAM - -Function170a00: ; 170a00 - ret -; 170a01 - -Function170a01: ; 170a01 - ld a, $5 - call GetSRAMBank - ld hl, $b023 - ld de, $c608 - ld bc, $0069 - call CopyBytes - ld a, [$a825] - ld [wcd30], a - ld a, [$a826] - ld [wcd31], a - call CloseSRAM - callba Function11b6b4 - callba Function17d0f3 - ld a, $1 - ld [ScriptVar], a - ret -; 170a33 - -Function170a33: ; 170a33 - ld a, $0 - call GetSRAMBank - ld hl, wRTC - ld de, $c608 - ld bc, $0004 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $b08c - ld de, $c608 - ld c, $4 -.asm_170a54 - ld a, [de] - inc de - cp [hl] - jr nz, .asm_170a78 - inc hl - dec c - jr nz, .asm_170a54 - call CloseSRAM - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_170a72 - ld a, [de] - and a - ret nz - -.asm_170a72 - ld a, $1 - ld [ScriptVar], a - ret - -.asm_170a78 - call CloseSRAM - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - call CloseSRAM - ld [ScriptVar], a - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_170a9b - xor a - ld [de], a - -.asm_170a9b - ret -; 170a9c - -Function170a9c: ; 170a9c (5c:4a9c) - ld c, $0 - jr asm_170aa2 - -Function170aa0: ; 170aa0 (5c:4aa0) - ld c, $1 -asm_170aa2: ; 170aa2 (5c:4aa2) - ld a, $5 - call GetSRAMBank - ld a, c - ld [$aa8d], a - call CloseSRAM - ret - -Function170aaf: ; 170aaf (5c:4aaf) - ld a, $5 - call GetSRAMBank - ld a, [$aa8d] - ld [ScriptVar], a - call CloseSRAM - ret - -Function170abe: ; 170abe (5c:4abe) - call Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - and $1 - ld [ScriptVar], a - call CloseSRAM - ret - -Function170ad7: ; 170ad7 (5c:4ad7) - ld a, BANK(sbe4f) - call GetSRAMBank - ld a, [sbe4f] - or $1 - ld [sbe4f], a - call CloseSRAM - ret - -Function170ae8: ; 170ae8 (5c:4ae8) - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld c, $a - call SimpleDivide - ld a, b - ld [wcd4f], a - xor a - ld [ScriptVar], a - callba Function119d93 - ret nc - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld [ScriptVar], a - ret - -Function170b16: ; 170b16 (5c:4b16) - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld c, 10 - call SimpleDivide - ld a, b - ld [wcd4f], a - xor a - ld [ScriptVar], a - callba Function119dd1 - ret nc - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld [ScriptVar], a - ret - -Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 - callba Function_LoadOpponentTrainerAndPokemons - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, wd10a - ld a, [hl] - dec a - ld c, a - ld b, $0 - pop af - ld [rSVBK], a - ld hl, Unknown_170b90 - add hl, bc - ld a, [hl] - ld [wcd49], a - -; Load sprite of the opponent trainer -; because s/he is chosen randomly and appears out of nowhere - ld a, [ScriptVar] - dec a - sla a - ld e, a - sla a - sla a - sla a - ld c, a - ld b, $0 - ld d, $0 - ld hl, MapObjects - add hl, bc - inc hl - ld a, [wcd49] - ld [hl], a - ld hl, UsedSprites - add hl, de - ld [hli], a - ld [hUsedSpriteIndex], a - ld a, [hl] - ld [hUsedSpriteTile], a - callba Function143c8 - ret -; 170b90 - -Unknown_170b90: - db $12, $13, $14, $15, $18, $17 - db $16, $19, $04, $05, $11, $01 - db $1c, $1b, $21, $1e, $1a, $1d - db $1f, $3c, $20, $27, $27, $27 - db $28, $0a, $23, $24, $2a, $2b - db $35, $40, $2a, $29, $22, $25 - db $3a, $2b, $24, $49, $2b, $07 - db $2c, $2d, $4a, $0d, $4b, $3a - db $2b, $41, $35, $27, $28, $27 - db $36, $3e, $30, $2c, $2d, $3d - db $26, $2e, $06, $07, $43, $36 - -Function170bd2: ; 170bd2 - ret -; 170bd3 - -SpecialCheckForBattleTowerRules: ; 170bd3 - callba CheckForBattleTowerRules - jr c, .asm_170bde - xor a - jr .asm_170be0 - -.asm_170bde - ld a, $1 - -.asm_170be0 - ld [ScriptVar], a - ret -; 170be4 diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 76775c9b2..373834193 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -8469,8888 +8469,3 @@ Function117cdd: ; 0x117cdd ret -SECTION "bank46", ROMX, BANK[$46] - -Function118000: ; 118000 - ld a, $1 - ld [wcd38], a - jr asm_11800b - -Function118007: ; 118007 - xor a - ld [wcd38], a - -asm_11800b - call Function1183cb - ld a, $18 - ld [wcd33], a - ld a, $19 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_118024 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $1b - jr c, .asm_118037 - ld a, [wcd34] - ld [wcf66], a - -.asm_118037 - call Function1184a5 - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_118024 - pop af - ld [rSVBK], a - call Function118452 - call Function222a -Function11805e: ; 11805e (46:405e) - ret -; 11805f - -Function11805f: ; 11805f - ld a, $1 - ld [wcd38], a - call Function1183cb - ld a, $18 - ld [wcd33], a - ld a, $19 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_11807d - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $1b - jr c, .asm_118090 - ld a, [wcd34] - ld [wcf66], a - -.asm_118090 - call Function11857c - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_11807d - pop af - ld [rSVBK], a - call Function118452 - call Function222a - ret -; 1180b8 - -Function1180b8: ; 1180b8 - call Function1183cb - ld a, $22 - ld [wcd33], a - ld a, $23 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_1180d1 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $28 - jr c, .asm_1180e4 - ld a, [wcd34] - ld [wcf66], a - -.asm_1180e4 - ld a, [wcf66] - cp $10 - jr c, .asm_1180f2 - cp $16 - jr nc, .asm_1180f2 - call Function11884c - -.asm_1180f2 - call Function1184ec - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_1180d1 - pop af - ld [rSVBK], a - call Function118452 - call Function222a - ret -; 11811a - -Function11811a: ; 11811a - ld a, 1 - ld [wcd38], a - jr Function118125 - -Function118121: ; 118121 - xor a - ld [wcd38], a - -Function118125: ; 118125 - call Function1183cb - ld a, $3 - ld [wcd33], a - ld a, $d - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_11813e - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $f - jr c, .asm_118151 - ld a, [wcd34] - ld [wcf66], a - -.asm_118151 - call Function11854d - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_11813e - xor a - ld [Unkn1Pals], a - pop af - ld [rSVBK], a - call Function118452 - call Function118180 - call Function222a - ret -; 118180 - -Function118180: ; 118180 - ld a, [ScriptVar] - and a - ret nz - ld a, [wcd38] - and a - ret z - ld a, $5 - call GetSRAMBank - ld hl, wcd69 - ld de, $a89c - ld bc, $0016 - call CopyBytes - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld de, $d202 - ld c, $96 - callba Function17d0b3 - jr c, .asm_1181d0 - ld de, $d202 - ld bc, $0196 - callba Function17d1e1 - jr c, .asm_1181d0 - ld hl, $d202 - ld de, $a8b2 - ld bc, $0096 - call CopyBytes -.asm_1181c9 - pop af - ld [rSVBK], a - call CloseSRAM - ret - -.asm_1181d0 - ld a, $d3 - ld [wc300], a - ld [ScriptVar], a - jr .asm_1181c9 -; 1181da - -Function1181da: ; 1181da - call Function1183cb - ld a, $2 - ld [wcd38], a - ld a, $21 - ld [wcd33], a - ld a, $22 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_1181f8 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $28 - jr c, .asm_11820b - ld a, [wcd34] - ld [wcf66], a - -.asm_11820b - call Function1185c3 - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_1181f8 - pop af - ld [rSVBK], a - call Function118452 - call Function222a - ret -; 118233 - -Function118233: ; 118233 - call Function1183cb - ld a, $1b - ld [wcd33], a - ld a, $1c - ld [wcd34], a - ld a, $6 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_11824c - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $1e - jr c, .asm_11825f - ld a, [wcd34] - ld [wcf66], a - -.asm_11825f - call Function118624 - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_11824c - pop af - ld [rSVBK], a - call Function118452 - ret -; 118284 - -Function118284: ; 118284 - call Function1183cb - ld a, $19 - ld [wcd33], a - ld a, $1e - ld [wcd34], a - ld a, $5 - ld [wc3f0], a - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $3 - ld [rSVBK], a ; $ff00+$70 -.asm_11829d - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $20 - jr c, .asm_1182b0 - ld a, [wcd34] - ld [wcf66], a -.asm_1182b0 - call Function1186f5 - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_11829d - pop af - ld [rSVBK], a ; $ff00+$70 - call Function118452 - ret -; 1182d5 (46:42d5) - - -Function1182d5: ; 1182d5 - call Function1183cb - ld a, $18 - ld [wcd33], a - ld a, $19 - ld [wcd34], a - ld a, $4 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_1182ee - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $1b - jr c, .asm_118301 - ld a, [wcd34] - ld [wcf66], a - -.asm_118301 - call Function118746 - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_1182ee - pop af - ld [rSVBK], a - call Function118452 - call Function222a - ret -; 118329 - -Function118329: ; 118329 - call Function1183cb - ld a, $15 - ld [wcd33], a - ld a, $16 - ld [wcd34], a - ld a, $6 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_118342 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $18 - jr c, .asm_118355 - ld a, [wcd34] - ld [wcf66], a - -.asm_118355 - call Function118671 - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_118342 - pop af - ld [rSVBK], a - call Function118452 - ret -; 11837a - -Function11837a: ; 11837a - call Function1183cb - ld a, $16 - ld [wcd33], a - ld a, $17 - ld [wcd34], a - ld a, $6 - ld [wc3f0], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a -.asm_118393 - call JoyTextDelay - call Function118473 - ld a, [wcf66] - cp $19 - jr c, .asm_1183a6 - ld a, [wcd34] - ld [wcf66], a - -.asm_1183a6 - call Function1186b2 - call Function11a8fa - callba Function115dd3 - callba Function11619d - call DelayFrame - ld a, [wcf66] - ld hl, wcd33 - cp [hl] - jr nz, .asm_118393 - pop af - ld [rSVBK], a - call Function118452 - ret -; 1183cb - -Function1183cb: ; 1183cb - di - ld a, [rIE] - ld [wcd32], a - call DoubleSpeed - xor a - ld [rIF], a - ld [wc300], a - ld [wc301], a - ld [wc302], a - ld [wcd80], a - ld [wcd65], a - ld [wcd66], a - ld [wcd67], a - ld [wcd68], a - ld [wPartyMonMenuIconAnims + 6], a - ld [wcd89], a - ld [wcd8a], a - ld [wcd8b], a - ld [wc3ec], a - ld [wc3ed], a - ld [wc3ee], a - ld [wc3ef], a - ld hl, VramState - ld a, [hl] - ld [wcd7f], a - set 1, [hl] - ld a, $f - ld [rIE], a - ld a, $1 - ld [$ffc9], a - ld [hMobile], a - ei - callba Function106462 - callba Function106464 - callba Function115d99 - callba Function11615a - ld a, $5 - call GetSRAMBank - xor a - ld [$bfff], a - call CloseSRAM - ret -; 118440 - -Function118440: ; 118440 - push af - ld a, $5 - call GetSRAMBank - ld a, [$bfff] - inc a - ld [$bfff], a - call CloseSRAM - pop af - ret -; 118452 - -Function118452: ; 118452 - di - xor a - ld [$ffc9], a - ld [hMobile], a - ld [hVBlank], a - call NormalSpeed - xor a - ld [rIF], a - ld a, [wcd32] - ld [rIE], a - ei - ld a, [wcd7f] - ld [VramState], a - ld a, [wc300] - ld [ScriptVar], a - ret -; 118473 - -Function118473: ; 118473 - ld a, [wcd65] - and a - ret z - ld a, [wcd66] - inc a - ld [wcd66], a - cp $3c - ret nz - xor a - ld [wcd66], a - ld a, [wcd67] - inc a - ld [wcd67], a - cp $3c - ret nz - ld a, [wcd68] - inc a - ld [wcd68], a - cp $63 - jr z, .asm_1184a0 - xor a - ld [wcd67], a - ret - -.asm_1184a0 - xor a - ld [wcd65], a - ret -; 1184a5 - -Function1184a5: ; 1184a5 - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_1184b4 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1184b4 - -Jumptable_1184b4: ; 1184b4 - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118a8f - dw Function11878d - dw Function118d80 - dw Function118d9b - dw Function11878d - dw Function118ded - dw Function118e6d - dw Function11878d - dw Function11984e - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function118e76 - dw Function118e87 - dw Function118e76 -; 1184ec - -Function1184ec: ; 1184ec - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_1184fb -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1184fb - -Jumptable_1184fb: ; 1184fb - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function119954 - dw Function11878d - dw Function119973 - dw Function11878d - dw Function119987 - dw Function11878d - dw Function1199b4 - dw Function1199ca - dw Function11878d - dw Function1199e2 - dw Function119b0d - dw Function11878d - dw Function119b6b - dw Function119b3b - dw Function11878d - dw Function119b52 - dw Function11878d - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function118e76 - dw Function118e87 - dw Function119b45 - dw Function11878d - dw Function119ac9 - dw Function118e76 -; 11854d - -Function11854d: ; 11854d - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_11855c -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 11855c - -Jumptable_11855c: ; 11855c - dw Function118922 - dw Function118936 - dw Function118982 - dw Function11805e - dw Function119ca2 - dw Function119cab - dw Function119cb8 - dw Function119cc3 - dw Function119cdf - dw Function119cec - dw Function119c97 - dw Function119cab - dw Function119cb8 - dw Function118e76 - dw Function118e87 - dw Function118e76 -; 11857c - -Function11857c: ; 11857c - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_11858b -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 11858b - -Jumptable_11858b: ; 11858b - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118a7a - dw Function11878d - dw Function11891c - dw Function1198ee - dw Function1198f7 - dw Function11878d - dw Function119937 - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function118e76 - dw Function118e87 - dw Function118e76 -; 1185c3 - -Function1185c3: ; 1185c3 - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_1185d2 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1185d2 - -Jumptable_1185d2: ; 1185d2 - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118aa4 - dw Function11878d - dw Function118e92 - dw Function11878d - dw Function118eb0 - dw Function118ec6 - dw Function118f0d - dw Function118f14 - dw Function118f5e - dw Function11878d - dw Function118fc0 - dw Function11878d - dw Function119054 - dw Function1190d0 - dw Function11878d - dw Function1190ec - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function118e76 - dw Function118e87 - dw Function119cc3 - dw Function119cdf - dw Function119cec - dw Function11914e - dw Function118e76 -; 118624 - -Function118624: ; 118624 - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_118633 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 118633 - -Jumptable_118633: ; 118633 - dw Function118866 - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118aa4 - dw Function11878d - dw Function118e92 - dw Function11878d - dw Function11915d - dw Function118f68 - dw Function11878d - dw Function119009 - dw Function11878d - dw Function119054 - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function118e76 - dw Function118e87 - dw Function118e76 -; 118671 - -Function118671: ; 118671 - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_118680 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 118680 - -Jumptable_118680: ; 118680 - dw Function118866 - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function119380 - dw Function119388 - dw Function1193a0 - dw Function11878d - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function118e76 - dw Function118e87 - dw Function118e76 -; 1186b2 - -Function1186b2: ; 1186b2 - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_1186c1 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1186c1 - -Jumptable_1186c1: ; 1186c1 - dw Function118866 - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function119380 - dw Function1193e3 - dw Function1193fb - dw Function11878d - dw Function119413 - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function118e76 - dw Function118e87 - dw Function118e76 -; 1186f5 - -Function1186f5: ; 1186f5 (46:46f5) - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_118704 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 118704 (46:4704) - -Jumptable_118704: ; 118704 (46:4704) - dw Function11886a - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118abc - dw Function11878d - dw Function119451 - dw Function1195f8 - dw Function119612 - dw Function119629 - dw Function119648 - dw Function11878d - dw Function118e6d - dw Function11878d - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function11967d - dw Function119685 - dw Function119665 - dw Function11966d - dw Function118e76 - dw Function118e87 - dw Function118e76 -; 118746 (46:4746) - -Function118746: ; 118746 - ld a, [wcf66] - ld e, a - ld d, 0 - ld hl, Jumptable_118755 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 118755 - -Jumptable_118755: ; 118755 - dw Function11886e - dw Function118880 - dw Function11878d - dw Function1188b0 - dw Function11878d - dw Function1188b8 - dw Function11878d - dw Function1188c0 - dw Function11878d - dw Function1188c8 - dw Function11878d - dw Function118903 - dw Function118ad0 - dw Function11878d - dw Function1196f2 - dw Function1197c9 - dw Function1197dc - dw Function11878d - dw Function118e6d - dw Function11878d - dw Function119800 - dw Function118e76 - dw Function118e7e - dw Function11878d - dw Function11805e - dw Function118e76 - dw Function118e87 - dw Function118e76 -; 11878d - -Function11878d: ; 11878d (46:478d) - ld a, [wc821] - bit 1, a - jr nz, .asm_1187af - bit 2, a - jr nz, .asm_1187d1 - bit 0, a - jr nz, .asm_1187aa - ld a, [wcd89] - and $1 - jr z, .asm_1187a7 - ld a, $3 - ld [rSVBK], a ; $ff00+$70 -.asm_1187a7 - jp Function119e2e -.asm_1187aa - call Function118821 - ret c - ret -.asm_1187af - ld a, $0 - call Function3e32 - ld [wc300], a - ld a, l - ld [wc301], a - ld a, h - ld [wc302], a - ld a, $a - call Function3e32 - ld a, [wc3f0] - ld [wPartyMonMenuIconAnims + 5], a - ld a, [wcd34] - ld [wcf66], a - ret -.asm_1187d1 - ld hl, wcd89 - bit 0, [hl] - jr nz, .asm_118803 - set 0, [hl] - ld a, $6 - ld [rSVBK], a ; $ff00+$70 - ld de, Unkn1Pals - ld bc, $1000 - ld a, [hl] - sla a - jr c, .asm_1187f9 - sla a - jr c, .asm_1187fd - sla a - jr c, .asm_1187f5 - ld a, $24 - jr .asm_1187ff -.asm_1187f5 - ld a, $28 - jr .asm_1187ff -.asm_1187f9 - ld a, $2a - jr .asm_1187ff -.asm_1187fd - ld a, $2c -.asm_1187ff - call Function3e32 - ret -.asm_118803 - ld a, $d3 - -Function118805: ; 118805 (46:4805) - ld [wc300], a - xor a - ld [wc301], a - ld [wc302], a - ld a, $a - call Function3e32 - ld a, [wc3f0] - ld [wPartyMonMenuIconAnims + 5], a - ld a, [wcd34] - ld [wcf66], a - ret - -Function118821: ; 118821 (46:4821) - ld a, [wPartyMonMenuIconAnims + 5] - cp $3 - jr c, .asm_11884a - cp $4 - jr z, .asm_11884a - ld a, [hJoyDown] ; $ff00+$a8 - cp $5 - jr nz, .asm_11884a - ld a, $a - call Function3e32 - ld a, $a - ld [wc300], a - ld a, [wc3f0] - ld [wPartyMonMenuIconAnims + 5], a - ld a, [wcd34] - ld [wcf66], a - scf - ret -.asm_11884a - and a - ret -; 11884c (46:484c) - -Function11884c: ; 11884c - ld a, [hJoyDown] - cp $5 - jr nz, .asm_118864 - ld a, $a - call Function3e32 - ld a, $a - ld [wc300], a - ld a, [wcd34] - ld [wcf66], a - scf - ret - -.asm_118864 - and a - ret -; 118866 - -Function118866: - ld a, 2 - jr asm_11886f - -Function11886a: ; 11886a (46:486a) - ld a, 1 - jr asm_11886f -; 11886e (46:486e) - -Function11886e: - xor a - -asm_11886f - ld [BGMapPalBuffer], a - ld a, $0 - ld [wcd3c], a - call Function119e2e - ld a, [wcd33] - ld [wcd45], a - -Function118880: ; 118880 (46:4880) - call Function119ed8 - ret c - xor a - ld [wcf64], a - ld [wc807], a - ld de, wcd81 - ld hl, $46 - ld a, $2 - jp Function119e2b -; 118896 (46:4896) - -Function118896: ; 118896 - ld a, [wc821] - bit 1, a - jr nz, .asm_1188a5 - bit 2, a - jr nz, .asm_1188a5 - bit 0, a - jr z, .asm_1188aa - -.asm_1188a5 - ld a, $34 - jp Function119e2b - -.asm_1188aa - call Function119e2e - jp Function119e2e -; 1188b0 - -Function1188b0: ; 1188b0 (46:48b0) - ld de, wPartyMonMenuIconAnims + 48 + 2 - ld a, $c - jp Function119e2b - -Function1188b8: ; 1188b8 (46:48b8) - ld de, wc3ac - ld a, $e - jp Function119e2b - -Function1188c0: ; 1188c0 (46:48c0) - ld de, wc3cd - ld a, $10 - jp Function119e2b - -Function1188c8: ; 1188c8 (46:48c8) - ld a, $1 - ld [wcd65], a - call Function1188e7 - ld hl, wc708 -.asm_1188d3 - ld a, [de] - inc de - ld [hli], a - and a - jr nz, .asm_1188d3 - call Function119eb4 - call Function119ec2 - ld hl, wc708 - ld a, $6 - jp Function119e2b - -Function1188e7: ; 1188e7 (46:48e7) - ld de, wPartyMonMenuIconAnims + 48 + 2 - ld a, $5 - call GetSRAMBank - ld a, [$aa4a] - call CloseSRAM - and a - ret z - sla a - ld c, a -.asm_1188fa - ld a, [de] - inc de - and a - jr nz, .asm_1188fa - dec c - jr nz, .asm_1188fa - ret - -Function118903: ; 118903 (46:4903) - ld a, [wc3f0] - ld [wPartyMonMenuIconAnims + 5], a - ld c, $1 - callba Function115e18 - ld a, $8 - ld [wcd3c], a - call Function119ed8 - jp Function119e2e - - -Function11891c: ; 11891c - call Function118b42 - jp Function119e2e - - -Function118922: ; 118922 - ld a, [wcd38] - and a - jr nz, .asm_11892d - ld hl, Text_WhatLevelDoYouWantToChallenge - jr .asm_118930 - -.asm_11892d - ld hl, Text_CheckBattleRoomListByMaxLevel - -.asm_118930 - call Function11a9c0 - call Function119e2e - -Function118936: - ld a, [wPartyMonMenuIconAnims + 6] - and a - ret nz - ld hl, MenuDataHeader_119cf7 - call LoadMenuDataHeader - call Function1cbb - call GetMemTileCoord - call Function321c - hlcoord 16, 8, AttrMap - ld a, $40 - or [hl] - ld [hl], a - call Function3200 - ld a, $1 - ld [wcd4f], a - ld a, $1 - ld [rSVBK], a - ld a, [StatusFlags] - bit 6, a - jr nz, .asm_11896b - ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels - ld a, 5 ; 4 levels to choose from, including 'Cancel'-option - jr .asm_118970 - -.asm_11896b - ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels - ld a, 11 ; 10 levels to choose from, including 'Cancel'-option - -.asm_118970 - ld [wcd4a], a - ld a, l - ld [wcd4b], a - ld a, h - ld [wcd4c], a - ld a, $3 - ld [rSVBK], a - call Function119e2e - -Function118982: - hlcoord 13, 8 - ld de, String_119d07 - call PlaceString - hlcoord 13, 10 - ld de, String_119d07 - call PlaceString - ld a, [wcd4b] - ld l, a - ld a, [wcd4c] - ld h, a - ld d, $0 - ld a, [wcd4f] - dec a - rlca - rlca - rlca - ld e, a - add hl, de - ld a, l - ld e, a - ld a, h - ld d, a - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld bc, StringBuffer3 -.asm_1189b5 - ld a, [hli] - cp $50 - jr z, .asm_1189c4 - cp $7f - jr z, .asm_1189c2 - ld [bc], a - inc bc - jr .asm_1189b5 - -.asm_1189c2 - ld a, $50 - -.asm_1189c4 - ld [bc], a - pop af - ld [rSVBK], a - hlcoord 13, 9 - call PlaceString - ld hl, hJoyPressed - ld a, [hl] - and $2 - jr nz, .asm_118a39 - ld a, [hl] - and $1 - jr nz, .asm_118a01 - ld a, [hl] - and $80 - jr nz, .asm_1189e6 - ld a, [hl] - and $40 - jr nz, .asm_1189f2 -.asm_1189e5 - ret - -.asm_1189e6 - ld hl, wcd4f - dec [hl] - jr nz, .asm_1189e5 - ld a, [wcd4a] - ld [hl], a - jr .asm_1189e5 - -.asm_1189f2 - ld a, [wcd4a] - ld hl, wcd4f - inc [hl] - cp [hl] - jr nc, .asm_1189e5 - ld a, $1 - ld [hl], a - jr .asm_1189e5 - -.asm_118a01 - call PlayClickSFX - ld a, [wcd4f] - ld hl, wcd4a - cp [hl] - jr z, .asm_118a3c - dec a - and $fe - srl a - ld [wcf65], a - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - call WriteBackup - pop af - ld [rSVBK], a - ld a, [wcd38] - and a - jr nz, .asm_118a30 - call Function119d93 - ret c - call Function119dd1 - ret c - -.asm_118a30 - ld a, [wcd4f] - ld [wd000 + $800], a - jp Function119e2e - -.asm_118a39 - call PlayClickSFX - -.asm_118a3c - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - call WriteBackup - pop af - ld [rSVBK], a - ld a, $7 - ld [wcf66], a - ld a, $0 - ld [wcd46], a - ret - - - -Function118a54: ; 118a54 - ld a, [wcd55] - ld l, a - ld a, [wcd56] - ld h, a - ld de, wc3ec - ld bc, $0004 - jp Function118ae4 -; 118a65 - -Function118a65: ; 118a65 - ld hl, BattleDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, Unkn1Pals - ld bc, $1000 - jp Function118b10 -; 118a7a - -Function118a7a: ; 118a7a - ld hl, BattleDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, Unkn1Pals - ld bc, $1000 - jp Function118b10 -; 118a8f - -Function118a8f: ; 118a8f - ld hl, ExchangeDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, Unkn1Pals - ld bc, $1000 - jp Function118b10 -; 118aa4 - -Function118aa4: ; 118aa4 - ld hl, NewsDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld a, $5 - ld [rSVBK], a - ld de, LYOverrides - ld bc, $e00 - jr Function118b10 -; 118abc - -Function118abc: ; 118abc (46:4abc) - ld hl, MenuDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, Unkn1Pals - ld bc, $1000 - jr Function118b10 -; 118ad0 (46:4ad0) - -Function118ad0: - ld hl, IndexDownloadURL - ld de, wcc60 - ld bc, $80 - call CopyBytes - ld de, Unkn1Pals - ld bc, $1000 - jr Function118b10 - -Function118ae4: - push bc - push de - push hl - ld a, $8 - ld [wcd3c], a - call Function119ed8 - pop hl - ld c, $0 - ld de, wcc60 -.asm_118af5 - ld a, [hli] - ld [de], a - inc de - and a - jr z, .asm_118b06 - inc c - ld a, c - cp $a6 - jr c, .asm_118af5 - ld a, $da - jp Function118805 - -.asm_118b06 - call Function118b24 - pop de - pop bc - ld a, $2a - jp Function119e2b -; 118b10 - -Function118b10: - push de - push bc - ld a, $8 - ld [wcd3c], a - call Function119ed8 - call Function118b24 - pop bc - pop de - ld a, $2a - jp Function119e2b - -Function118b24: ; 118b24 (46:4b24) - ld hl, wPartyMonMenuIconAnims + 48 + 2 - ld a, $8 - ld [hli], a - ld a, $c7 - ld [hli], a - ld a, $60 - ld [hli], a - ld a, $cc - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $80 - ld [wcd89], a - ld hl, wPartyMonMenuIconAnims + 48 + 2 - ret -; 118b42 (46:4b42) - -Function118b42: ; 118b42 - ld hl, DefaultFlypoint - ld a, l - ld [wcd51], a - ld a, h - ld [wcd52], a - call Function118b8c - ld a, l - ld [wcd55], a - ld [wcd59], a - ld a, h - ld [wcd56], a - ld [wcd5a], a - call Function118b8c - ld a, l - ld [wcd53], a - ld [wcd5d], a - ld a, h - ld [wcd54], a - ld [wcd5e], a - call Function118b8c - ld a, l - ld [wcd57], a - ld [wcd5b], a - ld a, h - ld [wcd58], a - ld [wcd5c], a - call Function118b8c - ld a, l - ld [wcd5f], a - ld a, h - ld [wcd60], a - ret -; 118b8c - -Function118b8c: ; 118b8c -.asm_118b8c - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_118b8c - dec hl - xor a -rept 2 - ld [hli], a -endr - ret -; 118b9a - -Function118b9a: ; 118b9a - ld a, h - cp $e0 - ret c - ld a, $d3 - call Function118805 - and a - ret -; 118ba5 - - - charmap " ", $20 ; revert to ascii - -ExchangeDownloadURL: ; 0x118ba5 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0 - -BattleDownloadURL: ; 0x118bf7 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0 - -NewsDownloadURL: ; 0x118c47 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0 - -MenuDownloadURL: ; 0x118c95 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0 - -IndexDownloadURL: ; 0x118ce5 - db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0 - - -Function118d35: ; 118d35 - ld hl, LYOverridesBackup - ld a, [wcd38] - and a - jr nz, .asm_118d6e - ld a, [hli] - cp $94 - jr nz, .asm_118d7b - ld a, [hl] - cp $5 - jr nz, .asm_118d7b - ld a, [wcd4f] - sla a - ld b, a - sla a - sla a - add b - ld b, a - ld a, $5 - call GetSRAMBank - ld a, b - ld [$b2fb], a - call CloseSRAM - callba Function170be4 - callba Function1700c4 - jr .asm_118d78 - -.asm_118d6e - ld a, [hli] - cp $96 - jr nz, .asm_118d7b - ld a, [hl] - cp $0 - jr nz, .asm_118d7b - -.asm_118d78 - jp Function119e2e - -.asm_118d7b - ld a, $d3 - jp Function118805 -; 118d80 - -Function118d80: ; 118d80 - call Function118e06 - ld a, [wcd38] - and a - jr z, .asm_118d8e - call Function119e2e - jr asm_118d9f - -.asm_118d8e - ld a, $9 - ld [wcd3c], a - ld a, $12 - ld [wcd45], a - call Function119e2e - -Function118d9b: - call Function119ed8 - ret c - -asm_118d9f - ld hl, $c608 - call Function119940 - ld a, [wcd38] - and a - jr nz, .asm_118db2 - ld a, $8f - ld [wcd3b], a - jr .asm_118db7 - -.asm_118db2 - ld a, $26 - ld [wcd3b], a - -.asm_118db7 - ld hl, $d800 - ld a, $8 - ld [hli], a - ld a, $c6 - ld [hli], a - ld a, [wcd3b] - ld [hli], a - xor a - ld [hli], a - ld a, $8 - ld [hli], a - ld a, $c7 - ld [hli], a - ld a, [wcd39] - ld [hli], a - ld a, [wcd3a] - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, $d800 - ld de, $de00 - ld bc, $0200 - ld a, $2c - jp Function119e2b -; 118ded - -Function118ded: ; 118ded - ld a, [wcd38] - and a - jr z, .asm_118e03 - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - callba Function11b93b - pop af - ld [rSVBK], a - -.asm_118e03 - jp Function119e2e -; 118e06 - -Function118e06: ; 118e06 - ld hl, DefaultFlypoint - ld a, [wcd38] - and a - jr z, .asm_118e1d -.asm_118e0f - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_118e0f - ld a, [hli] - cp $a - jr nz, .asm_118e0f - -.asm_118e1d - ld a, l - ld [wcd39], a - ld a, h - ld [wcd3a], a -.asm_118e25 - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_118e25 - ld a, [hli] - cp $a - jr nz, .asm_118e25 - dec hl - xor a - ld [hld], a - ld [hl], a - jr asm_118e3e - -Function118e39: ; 118e39 (46:4e39) -.asm_118e39 - ld a, [hli] - and a - jr nz, .asm_118e39 - dec hl -asm_118e3e -.asm_118e3e - ld a, [hld] - cp $2f - jr nz, .asm_118e3e -rept 2 - inc hl -endr - ld de, wcd85 - ld c, $4 -.asm_118e4a - ld a, [hli] - cp $2e - jr z, .asm_118e63 - cp $30 - jr c, .asm_118e67 - cp $3a - jr nc, .asm_118e67 - sub $30 - add $f6 - ld [de], a - inc de - dec c - jr nz, .asm_118e4a - ld de, wcd85 -.asm_118e63 - ld a, $50 - ld [de], a - ret -.asm_118e67 - ld a, $f3 - ld [de], a - inc de - jr .asm_118e63 - -Function118e6d: ; 118e6d (46:4e6d) - xor a - ld [wcd65], a - ld a, $a - jp Function119e2b - -Function118e76: ; 118e76 (46:4e76) - ld a, $c - ld [wcd3c], a - jp Function119e2e - -Function118e7e: ; 118e7e (46:4e7e) - call Function119ed8 - ret c - ld a, $36 - jp Function119e2b - -Function118e87: ; 118e87 (46:4e87) - call Function119ed8 - ret c - ld a, [wcd33] - ld [wcf66], a - ret -; 118e92 (46:4e92) - -Function118e92: ; 118e92 - call Function118440 - call Function1191d3 - ld a, [wcd53] - ld l, a - ld a, [wcd54] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld de, $d800 - ld bc, $0800 - jp Function118b10 -; 118eb0 - -Function118eb0: ; 118eb0 - call Function118440 - ld hl, $d802 - ld de, BGMapBuffer - ld bc, $000c - call CopyBytes - call Function1192cc - ret c - jp Function119e2e -; 118ec6 - -Function118ec6: ; 118ec6 - call Function118440 - call SpeechTextBox - ld hl, $d80e - ld de, wPartyMonMenuIconAnims + 12 - ld bc, $0026 - call CopyBytes - xor a - ld [wPartyMonMenuIconAnims + 11], a - ld a, $20 - ld [wPartyMonMenuIconAnims + 7], a - ld a, $c3 - ld [wPartyMonMenuIconAnims + 8], a - hlcoord 1, 14 - ld a, l - ld [wPartyMonMenuIconAnims + 9], a - ld a, h - ld [wPartyMonMenuIconAnims + 10], a - ld a, $2 - ld [wPartyMonMenuIconAnims + 6], a - ld a, $1d - ld [wcd3c], a - ld a, $24 - ld [wcd45], a - ld a, $11 - ld [wcd46], a - ld a, $1c - ld [wcd47], a - jp Function119e2e -; 118f0d - -Function118f0d: ; 118f0d - call Function119ed8 - ret c - call Function118440 - -Function118f14: - call Function118440 - ld a, [wcd51] - ld l, a - ld a, [wcd52] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld a, [wcc60] - and a - jr z, .asm_118f32 - ld hl, UnknownText_0x11aa13 - call Function11a9c0 - -.asm_118f32 - ld a, [wcd57] - ld l, a - ld a, [wcd58] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld hl, wcc60 - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $24 - ld [wcd45], a - ld a, $13 - ld [wcd46], a - ld a, $1c - ld [wcd47], a - jp Function119e2e -; 118f5e - -Function118f5e: ; 118f5e - call Function119ed8 - ret c - call Function118440 - call DelayFrame - -Function118f68: - call Function119223 - ret c - call Function118440 - ld a, [wcd51] - ld l, a - ld a, [wcd52] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld a, [wcc60] - and a - jr z, .asm_118fba - ld hl, wPartyMonMenuIconAnims + 48 + 2 - ld a, $c608 % $100 - ld [hli], a - ld a, $c608 / $100 - ld [hli], a - ld a, [wcd4b] - ld [hli], a - ld a, [wcd4c] - ld [hli], a - ld a, wc708 % $100 - ld [hli], a - ld a, wc708 / $100 - ld [hli], a - ld a, $60 - ld [hli], a - ld a, $cc - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, wPartyMonMenuIconAnims + 48 + 2 - ld de, $de00 - ld bc, $0200 - ld a, $2c - jp Function119e2b - -.asm_118fba - call Function119e2e - jp Function119e2e -; 118fc0 - -Function118fc0: ; 118fc0 - call Function118440 - ld a, [wcd55] - ld l, a - ld a, [wcd56] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld a, [wcc60] - and a - jr z, .asm_118ffa - ld a, [wcd51] - ld l, a - ld a, [wcd52] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld a, [wcc60] - and a - jr z, .asm_118ff2 - ld hl, UnknownText_0x11aa2c - jr .asm_118ff5 - -.asm_118ff2 - ld hl, UnknownText_0x11aa4b - -.asm_118ff5 - call Function11a9c0 - jr Function119009 - -.asm_118ffa - ld hl, UnknownText_0x11aa4b - call Function11a9c0 - call Function119e2e - call Function119e2e - jp Function119e2e - -Function119009: - call Function118440 - call Function119300 - ld a, [wcd55] - ld l, a - ld a, [wcd56] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld hl, wPartyMonMenuIconAnims + 48 + 2 - ld a, $8 - ld [hli], a - ld a, $c6 - ld [hli], a - ld a, [wcd4b] - ld [hli], a - ld a, [wcd4c] - ld [hli], a - ld a, $8 - ld [hli], a - ld a, $c7 - ld [hli], a - ld a, $60 - ld [hli], a - ld a, $cc - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, wPartyMonMenuIconAnims + 48 + 2 - ld de, Unkn1Pals - ld bc, $1000 - ld a, $2c - jp Function119e2b -; 119054 - -Function119054: ; 119054 - ld a, $6 - call GetSRAMBank - ld hl, DefaultFlypoint - ld a, [wcd4f] - ld e, a - ld a, [wcd50] - ld d, a - ld a, [Unkn1Pals] - ld c, a - ld a, [wd001] - ld b, a - call Function119192 - ret c - ld a, [wcd89] - and $1 - jr z, .asm_11908a - ld a, $6 - ld [rSVBK], a - ld hl, DefaultFlypoint - ld a, [Unkn1Pals] - ld c, a - ld a, [wd001] - ld b, a - call Function119192 - ret c - -.asm_11908a - call CloseSRAM - ld a, $3 - ld [rSVBK], a - ld a, $5 - call GetSRAMBank - ld a, [wcd4f] - ld [$b1b3], a - ld a, [wcd50] - ld [$b1b4], a - ld hl, BGMapBuffer - ld de, $aa7f - ld bc, $000c - call CopyBytes - ld a, [rSVBK] - push af - ld a, $1 - ld [rSVBK], a - ld a, [wd474] - ld [$b2f3], a - ld hl, wd475 - ld de, $b2f4 - ld bc, $0004 - call CopyBytes - pop af - ld [rSVBK], a - call CloseSRAM - jp Function119e2e -; 1190d0 - -Function1190d0: ; 1190d0 - ld a, $3 - ld [rSVBK], a - ld a, [wcd57] - ld l, a - ld a, [wcd58] - ld h, a - ld de, wcc60 - call Function1191ad - ret c - ld de, Unkn1Pals - ld bc, $1000 - jp Function118b10 -; 1190ec - -Function1190ec: ; 1190ec - ld a, $5 - call GetSRAMBank - ld hl, BGMapBuffer - ld de, $aa73 - ld bc, $000c - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$aa72], a - call CloseSRAM - ld a, $6 - call GetSRAMBank - ld a, [Unkn1Pals] - ld c, a - ld a, [wd001] - ld b, a - ld hl, DefaultFlypoint - ld de, $a000 - call Function119192 - ret c - ld a, [wcd89] - and $1 - jr z, .asm_11913e - ld a, $6 - ld [rSVBK], a - ld a, [Unkn1Pals] - ld c, a - ld a, [wd001] - ld b, a - ld hl, DefaultFlypoint - call Function119192 - ret c - -.asm_11913e - ld a, $3 - ld [rSVBK], a - call CloseSRAM - ld hl, UnknownText_0x11aa5a - call Function11a9c0 - jp Function119e2e -; 11914e - -Function11914e: ; 11914e - call Function119ed8 - ret c - ld a, $1c - ld [wcf66], a - ld a, $a - ld [wc300], a - ret -; 11915d - -Function11915d: ; 11915d - ld hl, $d802 - ld de, BGMapBuffer - ld bc, $000c - call CopyBytes - ld a, $5 - call GetSRAMBank - ld hl, BGMapBuffer - ld de, $aa7f - ld c, $c -.asm_119176 - ld a, [de] - inc de - cp [hl] - jr nz, .asm_119184 - inc hl - dec c - jr nz, .asm_119176 - call Function119e2e - jr .asm_11918e - -.asm_119184 - ld a, $16 - ld [wcf66], a - ld a, $b - ld [wc300], a - -.asm_11918e - call CloseSRAM - ret -; 119192 - -Function119192: ; 119192 - inc b - inc c - jr .asm_11919e - -.asm_119196 - ld a, [hli] - ld [de], a - inc de - ld a, $bf - cp d - jr c, .asm_1191a6 - -.asm_11919e - dec c - jr nz, .asm_119196 - dec b - jr nz, .asm_119196 - and a - ret - -.asm_1191a6 - ld a, $d3 - call Function118805 - scf - ret -; 1191ad - -Function1191ad: ; 1191ad - push bc - ld c, $0 - ld a, $5 - ld [rSVBK], a -.asm_1191b4 - ld a, [hli] - ld [de], a - inc de - and a - jr z, .asm_1191cc - inc c - ld a, c - cp $a6 - jr c, .asm_1191b4 - ld a, $da - call Function118805 - ld a, $3 - ld [rSVBK], a - pop bc - scf - ret - -.asm_1191cc - ld a, $3 - ld [rSVBK], a - pop bc - and a - ret -; 1191d3 - -Function1191d3: ; 1191d3 - ld hl, wd102 - ld a, l - ld [wcd53], a - ld a, h - ld [wcd54], a - call Function11920f - ld a, l - ld [wcd51], a - ld a, [wcd4a] - ld a, h - ld [wcd52], a - call Function11920f - ld a, l - ld [wcd55], a - ld a, [wcd4a] - ld a, h - ld [wcd56], a - call Function11920f - ld a, [wcd49] - ld a, l - ld [wcd57], a - ld a, [wcd4a] - ld a, h - ld [wcd58], a - call Function11920f - ret -; 11920f - -Function11920f: ; 11920f -.asm_11920f - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_11920f - ld a, [hli] - cp $a - jr nz, .asm_11920f - dec hl - xor a - ld [hld], a - ld [hli], a - inc hl - ret -; 119223 - -Function119223: ; 119223 - xor a - ld [wcd4b], a - ld [wcd4c], a - ld a, $5 - call GetSRAMBank - ld hl, wc3cd - ld de, $b092 - ld bc, $001f - call CopyBytes - dec de - xor a - ld [de], a - ld hl, $d810 -.asm_119241 - ld a, [hli] - cp $50 - jr nz, .asm_119241 - ld a, [hli] - ld [wcd4f], a - ld a, [hli] - ld [wcd50], a - ld a, [hli] - ld [$b1b1], a - ld c, a - ld a, [hli] - ld [$b1b2], a - ld b, a - ld de, $b1d3 - call CopyBytes - call CloseSRAM - ld e, l - ld d, h - ld hl, $c608 -.asm_119266 - ld a, [de] - inc de - cp $ff - jr z, .asm_1192c2 - cp $fe - jr z, .asm_1192a5 - call GetSRAMBank - ld a, [de] - inc de - ld c, a - ld a, [de] - inc de - ld b, a - ld a, [de] - inc de - push de - push af - ld a, [wcd4b] - ld e, a - ld a, [wcd4c] - ld d, a - pop af -.asm_119286 - push af - ld a, [bc] - inc bc - ld [hli], a - inc de - pop af - dec a - jr nz, .asm_119286 - call CloseSRAM - ld a, e - ld [wcd4b], a - ld a, d - ld [wcd4c], a - pop de -.asm_11929b - and a - jr z, .asm_119266 - ld a, $d3 - call Function118805 - scf - ret - -.asm_1192a5 - ld a, [wcd4b] - ld c, a - ld a, [wcd4c] - ld b, a - ld a, [de] - inc de -.asm_1192af - push af - ld a, [de] - inc de - ld [hli], a - inc bc - pop af - dec a - jr nz, .asm_1192af - ld a, c - ld [wcd4b], a - ld a, b - ld [wcd4c], a - jr .asm_11929b - -.asm_1192c2 - ld a, e - ld [wcd4d], a - ld a, d - ld [wcd4e], a - and a - ret -; 1192cc - -Function1192cc: ; 1192cc - ld a, $5 - call GetSRAMBank - ld hl, $aa73 - ld de, $c608 - ld bc, $000c - call CopyBytes - call CloseSRAM - ld hl, $c608 - ld de, BGMapBuffer - ld c, $c -.asm_1192e8 - ld a, [de] - inc de - ld b, a - ld a, [hli] - cp b - jr nz, .asm_1192fe - dec c - jr nz, .asm_1192e8 - ld a, $1f - ld [wcd3c], a - ld a, $27 - ld [wcf66], a - scf - ret - -.asm_1192fe - and a - ret -; 119300 - -Function119300: ; 119300 - xor a - ld [wcd4b], a - ld [wcd4c], a - ld a, [wcd4d] - ld e, a - ld a, [wcd4e] - ld d, a - ld hl, $c608 - ld a, [wcd4b] - ld c, a - ld a, [wcd4c] - ld b, a -.asm_11931a - ld a, [de] - inc de - cp $50 - jr z, .asm_119324 - ld [hli], a - inc bc - jr .asm_11931a - -.asm_119324 - ld a, $3d - ld [hli], a - inc bc - ld a, c - ld [wcd4b], a - ld a, b - ld [wcd4c], a - ld a, [de] - inc de - call GetSRAMBank - ld a, [de] - inc de - ld c, a - ld a, [de] - inc de - ld b, a - ld a, [de] - inc de - push de - push af - ld a, [wcd4b] - ld e, a - ld a, [wcd4c] - ld d, a - pop af -.asm_119348 - push af - ld a, [bc] - and $f0 - swap a - call Function1197bf - ld [hli], a - inc de - ld a, [bc] - inc bc - and $f - call Function1197bf - ld [hli], a - inc de - pop af - dec a - jr nz, .asm_119348 - call CloseSRAM - ld a, e - ld [wcd4b], a - ld a, d - ld [wcd4c], a - pop de - ld a, [de] - cp $50 - jr z, .asm_11937f - ld a, [wcd4b] - ld c, a - ld a, [wcd4c] - ld b, a - ld a, $26 - ld [hli], a - inc bc - jr .asm_11931a - -.asm_11937f - ret -; 119380 - -Function119380: ; 119380 - ld a, $80 - ld [wcd49], a - jp Function119e2e -; 119388 - -Function119388: ; 119388 - ld hl, wcd49 - dec [hl] - ret nz - ld hl, wcc60 - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $10 - ld [wcd45], a - call Function119e2e - -Function1193a0: - call Function119ed8 - ret c - call DelayFrame - ld a, $8 - ld [wcd3c], a - call Function119ed8 - ld hl, wPartyMonMenuIconAnims + 48 + 2 - ld a, wd000 % $100 - ld [hli], a - ld a, wd000 / $100 - ld [hli], a - ld a, [wcd3b] - ld [hli], a - xor a - ld [hli], a - ld a, wc708 % $100 - ld [hli], a - ld a, wc708 / $100 - ld [hli], a - ld a, $60 - ld [hli], a - ld a, $cc - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, wPartyMonMenuIconAnims + 48 + 2 - ld de, $de00 - ld bc, $0200 - ld a, $2c - jp Function119e2b -; 1193e3 - -Function1193e3: ; 1193e3 - ld hl, wcd49 - dec [hl] - ret nz - ld hl, wcc60 - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $11 - ld [wcd45], a - call Function119e2e - -Function1193fb: - call Function119ed8 - ret c - call DelayFrame - ld a, $8 - ld [wcd3c], a - call Function119ed8 - ld de, Unkn1Pals - ld bc, $1000 - jp Function118b10 -; 119413 - -Function119413: ; 119413 - ld a, $6 - call GetSRAMBank - ld a, [Unkn1Pals] - ld c, a - ld a, [wd001] - ld b, a -rept 2 - dec bc -endr - ld hl, wd002 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - call Function119192 - ret c - ld a, [wcd89] - and $1 - jr z, .asm_119447 - ld a, $6 - ld [rSVBK], a - ld a, [wd000] - ld c, a - ld a, [wd001] - ld b, a - ld hl, wd002 - call Function119192 - ret c - -.asm_119447 - ld a, $3 - ld [rSVBK], a - call CloseSRAM - jp Function119e2e -; 119451 - -Function119451: ; 119451 (46:5451) - ld a, [wcd89] - and $1 - jr z, .asm_11945d - ld a, $d3 - jp Function118805 -.asm_11945d - xor a - ld [wcd50], a - call Function119694 - ld a, b - ld [wcd49], a - call Function1196cd - ld a, [DefaultFlypoint] - ld hl, wd003 - -Function119471: ; 119471 (46:5471) - push af - ld a, [hli] - ld [$c608], a - ld a, [hli] - ld [$c608 + 3], a - ld a, [hli] - ld [$c608 + 1], a - ld a, [hli] - ld [$c608 + 2], a - ld a, [hli] - ld [$c608 + 4], a - ld a, [hli] - ld [$c608 + 5], a ; $c608 + 5 - push hl - ld a, [$c608] - cp $ff - jr z, .asm_1194a7 - ld a, [$c608 + 2] - cp $ff - jr z, .asm_1194a7 - ld a, [$c608 + 1] - cp $ff - jr nz, .asm_1194a7 - call Function119584 - jr c, .asm_11950c - jr .asm_1194f0 -.asm_1194a7 - ld hl, $c608 - ld de, $c608 + 3 - ld c, $3 -.asm_1194af - ld a, [de] - inc de - cp [hl] - inc hl - jr c, .asm_1194f3 - jr z, .asm_1194b9 - jr nc, .asm_1194bc -.asm_1194b9 - dec c - jr nz, .asm_1194af -.asm_1194bc - ld c, $3 - ld hl, wcd49 - ld de, $c608 -.asm_1194c4 - ld a, [de] - inc de - cp $ff - jr z, .asm_1194d1 - cp [hl] - jr z, .asm_1194d1 - jr c, .asm_1194d5 - jr nc, .asm_1194f0 -.asm_1194d1 - inc hl - dec c - jr nz, .asm_1194c4 -.asm_1194d5 - ld c, $3 - ld hl, wcd49 - ld de, $c608 + 3 -.asm_1194dd - ld a, [de] - inc de - cp $ff - jr z, .asm_1194ea - cp [hl] - jr c, .asm_1194f0 - jr z, .asm_1194ea - jr nc, .asm_11950c -.asm_1194ea - inc hl - dec c - jr nz, .asm_1194dd - jr .asm_11950c -.asm_1194f0 - pop hl - jr .asm_119557 -.asm_1194f3 - ld c, $3 - ld hl, wcd49 - ld de, $c608 -.asm_1194fb - ld a, [de] - inc de - cp $ff - jr z, .asm_119508 - cp [hl] - jr c, .asm_11950c - jr z, .asm_119508 - jr nc, .asm_1194d5 -.asm_119508 - inc hl - dec c - jr nz, .asm_1194fb -.asm_11950c - pop hl - ld a, $1 - ld [wcd50], a - ld a, l - ld [$c608], a - ld a, h - ld [$c608 + 1], a - ld de, wcd69 - ld c, $10 - ld b, $0 -.asm_119521 - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_119528 - inc b -.asm_119528 - dec c - jr nz, .asm_119521 - ld a, $10 - cp b - jr z, .asm_119536 -rept 4 - inc hl -endr - jr .asm_11957a -.asm_119536 - ld a, [hli] - cp $50 - jr nz, .asm_119552 - ld a, [hli] - cp $33 - jr nz, .asm_119553 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [wcd83] - cp c - jr nz, .asm_119576 - ld a, [wcd84] - cp b - jr nz, .asm_119576 - jr .asm_11955b -.asm_119552 - inc hl -.asm_119553 -rept 2 - inc hl -endr - jr .asm_11955b -.asm_119557 - ld de, $14 - add hl, de -.asm_11955b - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - add hl, de - pop af - dec a - jp nz, Function119471 - ld a, [wcd50] - and a - jr z, .asm_119571 - ld a, $1a - ld [wcf66], a - ret -.asm_119571 - ld a, $d8 - jp Function118805 -.asm_119576 - ld a, $10 - jr .asm_11957c -.asm_11957a - ld a, $f -.asm_11957c - ld [wcf66], a - pop af - call Function1195c4 - ret - -Function119584: ; 119584 (46:5584) - ld a, [$c608] - ld b, a - ld a, [$c608 + 3] - ld c, a - cp b - jr c, .asm_11959c - ld a, [wcd49] - cp b - jr c, .asm_1195c2 -.asm_119595 - cp c - jr c, .asm_1195a2 - jr z, .asm_1195a2 - jr .asm_1195c2 -.asm_11959c - ld a, [wcd49] - cp b - jr c, .asm_119595 -.asm_1195a2 - ld a, [$c608 + 2] - ld b, a - ld a, [$c608 + 5] ; $c608 + 5 - ld c, a - cp b - jr c, .asm_1195ba - ld a, [wcd4b] - cp b - jr c, .asm_1195c2 -.asm_1195b3 - cp c - jr c, .asm_1195c0 - jr z, .asm_1195c0 - jr .asm_1195c2 -.asm_1195ba - ld a, [wcd4b] - cp b - jr c, .asm_1195b3 -.asm_1195c0 - scf - ret -.asm_1195c2 - and a - ret - -Function1195c4: ; 1195c4 (46:55c4) - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld de, $a5 - ld a, b - cp d - jr c, .asm_1195d9 - jr z, .asm_1195d3 - jr nc, .asm_1195f3 -.asm_1195d3 - ld a, c - cp e - jr z, .asm_1195d9 - jr nc, .asm_1195f3 -.asm_1195d9 - ld de, wcc60 - call CopyBytes - xor a - ld [de], a - ld a, [$c608] - ld l, a - ld a, [$c608 + 1] - ld h, a - ld de, wcd69 - ld bc, $10 - call CopyBytes - ret -.asm_1195f3 - ld a, $d8 - jp Function118805 - -Function1195f8: ; 1195f8 (46:55f8) - ld a, $11 - ld [wcd3c], a - ld a, $1c - ld [wcd45], a - ld a, $f - ld [wcd46], a - ld a, $14 - ld [wcd47], a - call Function119e2e - jp Function119e2e - -Function119612: ; 119612 (46:5612) - ld a, $14 - ld [wcd3c], a - ld a, $1c - ld [wcd45], a - ld a, $10 - ld [wcd46], a - ld a, $14 - ld [wcd47], a - jp Function119e2e - -Function119629: ; 119629 (46:5629) - call Function119ed8 - ret c - ld a, $60 - ld l, a - ld a, $cc - ld h, a - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $1c - ld [wcd45], a - ld a, $14 - ld [wcd47], a - call Function119e2e - -Function119648: ; 119648 (46:5648) - call Function119ed8 - ret c - call DelayFrame - ld a, $8 - ld [wcd3c], a - call Function119ed8 - call Function118b24 - ld de, Unkn1Pals - ld bc, $1000 - ld a, $2a - jp Function119e2b - -Function119665: ; 119665 (46:5665) - ld a, $1a - ld [wcd3c], a - call Function119e2e - -Function11966d: ; 11966d (46:566d) - call Function119ed8 - ret c - ld a, [wcd47] - ld [wcf66], a - ld a, $a - ld [wc300], a - ret - -Function11967d: ; 11967d (46:567d) - ld a, $18 - ld [wcd3c], a - call Function119e2e - -Function119685: ; 119685 (46:5685) - call Function119ed8 - ret c - ld a, $14 - ld [wcf66], a - ld a, $a - ld [wc300], a - ret - -Function119694: ; 119694 (46:5694) - ld b, 0 - ld hl, Unknown_1196b8 -.asm_119699 - ld de, wc708 - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_1196af - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_1196b0 - ld a, [de] - inc de - cp [hl] - inc hl - jr nz, .asm_1196b1 - ret -.asm_1196af - inc hl -.asm_1196b0 - inc hl -.asm_1196b1 - inc b - ld a, b - cp $7 - jr nz, .asm_119699 - ret -; 1196b8 (46:56b8) - -Unknown_1196b8: ; 1196b8 - db "Mon" - db "Tue" - db "Wed" - db "Thu" - db "Fri" - db "Sat" - db "Sun" -; 1196cd - -SECTION "bank46_2", ROMX, BANK[$46] -; A hack to use ascii above. - -Function1196cd: ; 1196cd (46:56cd) - ld de, wc719 - call Function1196de - ld [wcd4a], a - inc de - call Function1196de - ld [wcd4b], a - ret - -Function1196de: ; 1196de (46:56de) - ld a, [de] - inc de - sub $30 - sla a - ld b, a - sla a - sla a - add b - ld c, a - add hl, bc - ld a, [de] - inc de - sub $30 - add c - ret -; 1196f2 (46:56f2) - -Function1196f2: ; 1196f2 - ld hl, DefaultFlypoint -.asm_1196f5 - call Function118b9a - ret nc - ld a, [hli] - cp $d - jr nz, .asm_1196f5 - ld a, [hl] - cp $a - jr nz, .asm_1196f5 - xor a - ld [hld], a - ld [hli], a - ld a, l - ld [wcd5b], a - ld a, h - ld [wcd5c], a - inc hl - ld e, l - ld d, h - ld a, [de] - inc de - cp $d - jr nz, .asm_119722 - ld a, [de] - inc de - cp $a - jr nz, .asm_119722 - ld a, $b - jp Function118805 - -.asm_119722 - call Random - ld c, $0 - ld b, c -.asm_119728 - call Function119798 - ld a, d - cp $ff - jr nz, .asm_119735 - ld a, e - cp $ff - jr z, .asm_11974c - -.asm_119735 - ld a, [hRandomSub] - cp d - jr c, .asm_11974c - jr z, .asm_11973e - jr .asm_119745 - -.asm_11973e - ld a, [hRandomAdd] - cp e - jr c, .asm_11974c - jr z, .asm_11974c - -.asm_119745 - inc bc - ld a, c - or b - jr z, .asm_119770 - jr .asm_119728 - -.asm_11974c - ld a, [wcd5b] - ld l, a - ld a, [wcd5c] - ld h, a -.asm_119754 - ld a, [hld] - cp $58 - jr nz, .asm_119754 - ld d, $0 -.asm_11975b - inc d - ld a, [hld] - cp $58 - jr z, .asm_11975b -rept 2 - inc hl -endr - ld a, d - dec a - jr z, .asm_11978e - dec a - jr z, .asm_119785 - dec a - jr z, .asm_11977e - dec a - jr z, .asm_119775 - -.asm_119770 - ld a, $d3 - jp Function118805 - -.asm_119775 - ld a, b - and $f0 - swap a - call Function1197bf - ld [hli], a - -.asm_11977e - ld a, b - and $f - call Function1197bf - ld [hli], a - -.asm_119785 - ld a, c - and $f0 - swap a - call Function1197bf - ld [hli], a - -.asm_11978e - ld a, c - and $f - call Function1197bf - ld [hli], a - jp Function119e2e -; 119798 - -Function119798: ; 119798 - ld d, $0 - ld e, d - call Function1197b4 - swap a - or d - ld d, a - call Function1197b4 - or d - ld d, a - call Function1197b4 - swap a - or e - ld e, a - call Function1197b4 - or e - ld e, a - ret -; 1197b4 - -Function1197b4: ; 1197b4 - ld a, [hli] - cp $61 - jr nc, .asm_1197bc - sub $30 - ret - -.asm_1197bc - sub $57 - ret -; 1197bf - -Function1197bf: ; 1197bf - cp $a - jr nc, .asm_1197c6 - add $30 - ret - -.asm_1197c6 - add $57 - ret -; 1197c9 - -Function1197c9: ; 1197c9 - ld hl, DefaultFlypoint - call Function118e39 - ld a, $9 - ld [wcd3c], a - ld a, $12 - ld [wcd45], a - call Function119e2e - -Function1197dc: - call Function119ed8 - ret c - call DelayFrame - ld hl, DefaultFlypoint - ld de, wcc60 - ld bc, $0080 - call CopyBytes - dec de - xor a - ld [de], a - call Function118b24 - ld de, Unkn1Pals - ld bc, $1000 - ld a, $2a - jp Function119e2b -; 119800 - -Function119800: ; 119800 - ld a, $fd - ld [$c6d0], a - ld [wc702], a - ld a, [wcd81] - ld [wc74e], a - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - ld a, [wcf65] - push af - ld a, [wcf66] - push af - ld a, $1 - ld [rSVBK], a - call FadeToMenu - callba Function10803d - call Function11a9ce - call RestartMapMusic - ld a, $3 - ld [rSVBK], a - pop af - ld [wcf66], a - pop af - ld [wcf65], a - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - callba Function115dc3 - jp Function119e2e -; 11984e - -Function11984e: ; 11984e - ld a, [wcd80] - and a - jr nz, .asm_1198a0 - ld a, [wcd38] - and a - jr nz, .asm_1198a8 - callba Function170000 - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - ld a, [wcf65] - push af - ld a, [wcf66] - push af - ld a, $1 - ld [rSVBK], a - call FadeToMenu - callba Function108000 - call Function11a9ce - call RestartMapMusic - ld a, $3 - ld [rSVBK], a - pop af - ld [wcf66], a - pop af - ld [wcf65], a - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - callba Function115dc3 - jp Function119e2e - -.asm_1198a0 - ld a, $a - ld [wc300], a - jp Function119e2e - -.asm_1198a8 - callba Function17005a - ld a, [wJumptableIndex] - push af - ld a, [wcf64] - push af - ld a, [wcf65] - push af - ld a, [wcf66] - push af - ld a, $1 - ld [rSVBK], a - call FadeToMenu - callba Function108012 - call Function11a9ce - call RestartMapMusic - ld a, $3 - ld [rSVBK], a - pop af - ld [wcf66], a - pop af - ld [wcf65], a - pop af - ld [wcf64], a - pop af - ld [wJumptableIndex], a - callba Function115dc3 - jp Function119e2e -; 1198ee - -Function1198ee: ; 1198ee - ld hl, UnknownText_0x11aab2 - call Function11a9c0 - call Function119e2e - -Function1198f7: - ld a, [wPartyMonMenuIconAnims + 6] - and a - ret nz - ld hl, $c608 + 2 - call Function119940 - ld hl, $d800 - ld a, $c608 % $100 - ld [hli], a - ld a, $c608 / $100 - ld [hli], a - ld a, $f6 - ld [hli], a - xor a - ld [hli], a - ld a, wc708 % $100 - ld [hli], a - ld a, wc708 / $100 - ld [hli], a - ld a, [wcd51] - ld [hli], a - ld a, [wcd52] - ld [hli], a - call Function119eb4 - call Function119ec2 - ld a, $40 - ld [wcd89], a - ld hl, $d800 - ld de, $de00 - ld bc, $0200 - ld a, $2c - jp Function119e2b -; 119937 - -Function119937: ; 119937 - callba Function1707f4 - jp Function119e2e -; 119940 - -Function119940: ; 119940 - ld de, wc3cd - ld c, $1e -.asm_119945 - ld a, [de] - inc de - ld [hli], a - dec c - jr z, .asm_119953 - and a - jr nz, .asm_119945 - xor a -.asm_11994f - ld [hli], a - dec c - jr nz, .asm_11994f - -.asm_119953 - ret -; 119954 - -Function119954: ; 119954 - ld a, $1c - ld [wcd3c], a - call Function119ed8 - ld hl, $c608 - ld de, wc3cd -.asm_119962 - ld a, [de] - inc de - ld [hli], a - and a - jr nz, .asm_119962 - call Function119ec2 - ld hl, $c608 - ld a, $1e - jp Function119e2b -; 119973 - -Function119973: ; 119973 - ld a, $1 - ld [wcf64], a - xor a - ld [wcf65], a - ld [StringBuffer2 + 10], a - ld de, Unkn1Pals - ld a, $20 - jp Function119e2b -; 119987 - -Function119987: ; 119987 - ld hl, wd001 - ld a, [Unkn1Pals] - or [hl] - jr z, .asm_1199a0 - ld a, [wcf64] - ld l, a - ld a, [wcf65] - ld h, a - ld de, BGPals - ld a, $22 - jp Function119e2b - -.asm_1199a0 - ld a, [StringBuffer2 + 10] - and a - jr z, .asm_1199ae - ld a, $16 - ld [wcf66], a - jp Function119b0d - -.asm_1199ae - ld a, $1b - ld [wcf66], a - ret -; 1199b4 - -Function1199b4: ; 1199b4 - ld a, [wd000 + 130] - and a - jr nz, .asm_1199c7 - ld a, [wd000 + 129] - cp $7 - jr nc, .asm_1199c7 - call Function119e2e - jp Function1199ca - -.asm_1199c7 - jp Function119ac9 -; 1199ca - -Function1199ca: ; 1199ca - ld a, $20 - ld [wcd89], a - ld a, [wcf64] - ld l, a - ld a, [wcf65] - ld h, a - ld de, LYOverrides - ld bc, $0700 - ld a, $28 - jp Function119e2b -; 1199e2 - -Function1199e2: ; 1199e2 - ld c, $c - ld de, Unknown_119e33 - call Function119e4f - jp c, Function119ac9 - ld a, c - cp $1 - jp nz, Function119ac9 - ld hl, $d880 - ld bc, Unknown_119af1 -.asm_1199f9 - ld a, [bc] - and a - jr z, .asm_119a05 - cp [hl] - jp nz, Function119ac9 - inc bc - inc hl - jr .asm_1199f9 - -.asm_119a05 - ld c, $17 - ld de, Unknown_119e40 - call Function119e4f - jp c, .asm_119aa7 - ld a, c - cp $1 - jp nz, .asm_119aa7 - ld a, [wd000 + $880] - cp $31 - jp nz, .asm_119aa7 - ld a, [wd000 + $881] - cp $20 - jp nz, .asm_119aa7 - ld a, [wd000 + $88a] - cp $20 - jp nz, .asm_119aa7 - ld a, [wd000 + $894] - cp $20 - jp nz, .asm_119aa7 - xor a - ld [wd000 + $8a0], a - ld [wd000 + $8a1], a - ld [wd000 + $8a2], a - ld [wd000 + $8a3], a - ld hl, $d8a0 - ld bc, $d889 - call Function119e98 - call Function119e98 - ld hl, $d8a0 - ld a, [wcd2d] - cp [hl] - jr nz, Function119ac9 - inc hl - ld a, [wcd2c] - cp [hl] - jr nz, Function119ac9 - inc hl - ld a, [wcd2b] - cp [hl] - jr nz, Function119ac9 - inc hl - ld a, [wcd2a] - cp [hl] - jr nz, Function119ac9 - xor a - ld [wd000 + $8a0], a - ld [wd000 + $8a1], a - ld [wd000 + $8a2], a - ld [wd000 + $8a3], a - ld hl, $d8a0 - ld bc, $d88e - call Function119e98 - ld bc, $d893 - call Function119e98 - ld hl, $d8a0 - ld a, [wcd2f] - cp [hl] - jr nz, .asm_119aa7 - inc hl - ld a, [wcd2e] - cp [hl] - jr nz, .asm_119aa7 - inc hl - ld a, [wcd31] - cp [hl] - jr nz, .asm_119aa7 - inc hl - ld a, [wcd30] - cp [hl] - jr z, .asm_119aaf - -.asm_119aa7 - ld a, $25 - ld [wcf66], a - jp Function119b45 - -.asm_119aaf - ld a, [StringBuffer2 + 10] - and a - jr nz, .asm_119aa7 - ld a, [wd000 + $895] - sub $30 - ld [StringBuffer2 + 10], a - ld a, [wcf64] - ld [StringBuffer2 + 11], a - ld a, [wcf65] - ld [StringBuffer2 + 12], a - -Function119ac9: - ld a, [Unkn1Pals] - ld l, a - ld a, [wd001] - ld h, a - dec hl - ld a, l - ld [Unkn1Pals], a - ld a, h - ld [wd001], a - ld a, [wcf64] - ld l, a - ld a, [wcf65] - ld h, a - inc hl - ld a, l - ld [wcf64], a - ld a, h - ld [wcf65], a - ld a, $10 - ld [wcf66], a - ret -; 119af1 - -Unknown_119af1: - INCBIN "data/mobile/x-game-code.txt" - INCBIN "data/mobile/x-game-result.txt" -; 119b0d - -Function119b0d: ; 119b0d - ld a, $8 - ld [wcd3c], a - call Function119ed8 - ld a, [StringBuffer2 + 10] - cp $1 - jr z, .asm_119b23 - ld a, $19 - ld [wcf66], a - jr Function119b3b - -.asm_119b23 - ld a, $10 - ld [wcd89], a - ld a, [StringBuffer2 + 11] - ld l, a - ld a, [StringBuffer2 + 12] - ld h, a - ld de, LYOverrides - ld bc, $0700 - ld a, $24 - jp Function119e2b - -Function119b3b: - ld a, [StringBuffer2 + 11] - ld l, a - ld a, [StringBuffer2 + 12] - ld h, a - jr asm_119b4d - -Function119b45: - ld a, [wcf64] - ld l, a - ld a, [wcf65] - ld h, a - -asm_119b4d - ld a, $26 - jp Function119e2b -; 119b52 - -Function119b52: ; 119b52 - ld a, [StringBuffer2 + 10] - cp $1 - jr nz, .asm_119b66 - ld a, $5 - call GetSRAMBank - ld a, $4 - ld [$a800], a - call CloseSRAM - -.asm_119b66 - ld a, $1c - jp Function119e2b -; 119b6b - -Function119b6b: ; 119b6b - ld a, [StringBuffer2 + 10] - cp $1 - jr z, .asm_119b75 - jp Function119e2e - -.asm_119b75 - ld a, [LYOverrides] - ld b, a - ld a, [wd101] - or b - jr z, .asm_119be3 - ld hl, $d800 - ld de, wd102 -.asm_119b85 - ld a, [de] - inc de - cp $d - jr nz, .asm_119b85 - inc de - ld a, [de] - cp $d - jr nz, .asm_119b85 -rept 2 - inc de -endr -.asm_119b93 - ld a, [de] - inc de - cp $d - jr z, .asm_119bfa - call Function119c3e - ret c - ld [hli], a - ld a, [de] - inc de - call Function119c3e - ret c - ld [hli], a - ld a, [de] - inc de - call Function119c3e - ret c - ld [hli], a - ld a, [de] - inc de - call Function119c3e - ret c - ld [hl], a - push de - ld d, [hl] - dec hl - ld c, [hl] - dec hl - ld b, [hl] - dec hl - ld a, [hl] - sla b - sla b - sla b - rla - sla b - rla - ld [hli], a - ld [hl], b - inc hl - rrc c - rrc c - ld [hl], c - dec hl - ld a, $f - and c - or [hl] - ld [hli], a - ld a, [hli] - and $c0 - or [hl] - dec hl - ld [hld], a - dec hl - pop de -rept 3 - inc hl -endr - ld a, h - cp $e0 - jr c, .asm_119b93 - -.asm_119be3 - ld a, $19 - ld [wcf66], a - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$a800], a - call CloseSRAM - xor a - ld [StringBuffer2 + 10], a - ret - -.asm_119bfa - inc de - ld a, [de] - cp $d - jr nz, .asm_119b93 - ld a, l - cp (wd000 + $800 + $69) % $100 - jr nz, .asm_119be3 - ld a, h - cp (wd000 + $800 + $69) / $100 - jr nz, .asm_119be3 - ld a, $5 - call GetSRAMBank - ld a, [wcf64] - ld [$b090], a - ld a, [wcf65] - ld [$b091], a - ld hl, $d800 - ld de, $b023 - ld bc, $0069 - call CopyBytes - ld a, $3 - ld [$a800], a - call CloseSRAM - ld hl, $d800 - ld de, $c608 - ld bc, $0069 - call CopyBytes - jp Function119e2e -; 119c3e - -Function119c3e: ; 119c3e - cp $2b - jr c, .asm_119c68 - jr z, .asm_119c80 - cp $2f - jr c, .asm_119c68 - jr z, .asm_119c84 - cp $30 - jr c, .asm_119c68 - cp $3a - jr c, .asm_119c88 - cp $3d - jr c, .asm_119c68 - jr z, .asm_119c8c - cp $41 - jr c, .asm_119c68 - cp $5b - jr c, .asm_119c8f - cp $61 - jr c, .asm_119c68 - cp $7b - jr c, .asm_119c93 - -.asm_119c68 - ld a, $19 - ld [wcf66], a - ld a, $5 - call GetSRAMBank - ld a, $1 - ld [$a800], a - call CloseSRAM - xor a - ld [StringBuffer2 + 10], a - scf - ret - -.asm_119c80 - ld a, $3e - and a - ret - -.asm_119c84 - ld a, $3f - and a - ret - -.asm_119c88 - add $4 - and a - ret - -.asm_119c8c - xor a - and a - ret - -.asm_119c8f - sub $41 - and a - ret - -.asm_119c93 - sub $47 - and a - ret -; 119c97 - -Function119c97: ; 119c97 - ld hl, UnknownText_0x11ab0f - call Function11a9c0 - call Function119e2e - jr Function119cab - -Function119ca2: - ld hl, UnknownText_0x11aaf0 - call Function11a9c0 - call Function119e2e - -Function119cab: - ld a, [wPartyMonMenuIconAnims + 6] - and a - ret nz - ld a, $80 - ld [wcd50], a - call Function119e2e - -Function119cb8: - ld hl, wcd50 - dec [hl] - ret nz - ld a, $0 - ld [wcf66], a - ret -; 119cc3 - -Function119cc3: ; 119cc3 - ld a, [wcd38] - and a - jr z, .asm_119cd1 - dec a - jr z, .asm_119cd6 - ld hl, UnknownText_0x11aa6a - jr .asm_119cd9 - -.asm_119cd1 - ld hl, UnknownText_0x11ab4a - jr .asm_119cd9 - -.asm_119cd6 - ld hl, UnknownText_0x11ab6e - -.asm_119cd9 - call Function11a9c0 - call Function119e2e - -Function119cdf: - ld a, [wPartyMonMenuIconAnims + 6] - and a - ret nz - ld a, $f - ld [wcd3c], a - call Function119e2e - -Function119cec: - call Function119ed8 - ret c - ld a, [wcd46] - ld [wcf66], a - ret -; 119cf7 - -MenuDataHeader_119cf7: ; 119cf7 - db $40 ; flags - db 7, 12 ; start coords - db 11, 19 ; end coords - dw NULL - db 0 ; default option -; 119cff - -MenuData_119cff: ; 119cff - db $40 ; flags - db 7, 15 ; start coords - db 11, 19 ; end coords - dw NULL - db 0 ; default option -; 119d07 - -String_119d07: - db " ▼@" - -Strings_L10ToL100: ; 119d0c - db " L:10 @@" - db " L:20 @@" - db " L:30 @@" - db " L:40 @@" - db " L:50 @@" - db " L:60 @@" - db " L:70 @@" - db " L:80 @@" - db " L:90 @@" - db " L:100@@" - db "CANCEL@@" - -Strings_Ll0ToL40: ; 119d64 - db " L:10 @@" - db " L:20 @@" - db " L:30 @@" - db " L:40 @@" - db "CANCEL@@" - -String_119d8c: - db "CANCEL@" -; 119d93 - -Function119d93: ; 119d93 (46:5d93) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $1 - ld [rSVBK], a ; $ff00+$70 - ld a, [wcd4f] - ld c, 10 - call SimpleMultiply - ld hl, wcd50 - ld [hl], a - ld bc, PartyMon2 - PartyMon1 - ld de, PartyMon1Level - ld a, [PartyCount] -.asm_119daf - push af - ld a, [de] - push hl - push de - pop hl - add hl, bc - push hl - pop de - pop hl - cp [hl] - jr z, .asm_119dbd - jr nc, .asm_119dc6 -.asm_119dbd - pop af - dec a - jr nz, .asm_119daf - pop af - ld [rSVBK], a ; $ff00+$70 - and a - ret -.asm_119dc6 - pop af - ld a, $4 - ld [wcf66], a - pop af - ld [rSVBK], a ; $ff00+$70 - scf - ret - -Function119dd1: ; 119dd1 (46:5dd1) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, [wcd4f] - cp 70 / 10 - jr nc, .asm_119e08 - ld a, $1 - ld [rSVBK], a ; $ff00+$70 - ld hl, PartyMon1Level - ld bc, PartyMon2 - PartyMon1 - ld de, PartySpecies - ld a, [PartyCount] -.asm_119deb - push af - ld a, [de] - cp MEWTWO - jr z, .asm_119dfd - cp MEW - jr z, .asm_119dfd - cp LUGIA - jr c, .asm_119e02 - cp NUM_POKEMON + 1 - jr nc, .asm_119e02 -.asm_119dfd - ld a, [hl] - cp 70 - jr c, .asm_119e0d -.asm_119e02 - add hl, bc - inc de - pop af - dec a - jr nz, .asm_119deb -.asm_119e08 - pop af - ld [rSVBK], a ; $ff00+$70 - and a - ret -.asm_119e0d - pop af - ld a, [de] - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld de, wcd49 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - ld a, $a - ld [wcf66], a - pop af - ld [rSVBK], a ; $ff00+$70 - scf - ret -; 119e2b (46:5e2b) - -Function119e2b: ; 119e2b (46:5e2b) - call Function3e32 - -Function119e2e: ; 119e2e (46:5e2e) - ld hl, wcf66 - inc [hl] - ret -; 119e33 (46:5e33) - -Unknown_119e33: ; 119e33 - INCBIN "data/mobile/x-game-code-prefix.txt" -Unknown_119e40: - INCBIN "data/mobile/x-game-result-prefix.txt" -; 119e4f - -Function119e4f: ; 119e4f - push bc - ld hl, LYOverrides - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a -.asm_119e57 - ld a, [de] - cp [hl] - jr z, .asm_119e64 -.asm_119e5b - inc hl - dec bc - ld a, b - or c - jr nz, .asm_119e57 -.asm_119e61 - pop bc - scf - ret - -.asm_119e64 - push de -.asm_119e65 - ld a, [de] - inc de - cp "\n" - jr z, .asm_119e7a - cp [hl] - jr nz, .asm_119e77 - inc hl - dec bc - ld a, b - or c - jr nz, .asm_119e65 - pop de - jr .asm_119e61 - -.asm_119e77 - pop de - jr .asm_119e5b - -.asm_119e7a - pop de - pop bc - inc hl - ld de, $d880 -.asm_119e80 - ld a, [hli] - ld [de], a - inc de - cp $d - jr z, .asm_119e8c - dec c - jr nz, .asm_119e80 - scf - ret - -.asm_119e8c - and a - ret -; 119e8e - -Function119e8e: ; 119e8e - cp $60 - jr c, .asm_119e95 - sub $57 - ret - -.asm_119e95 - sub $30 - ret -; 119e98 - -Function119e98: ; 119e98 - ld a, $2 -.asm_119e9a - push af - ld a, [bc] - dec bc - call Function119e8e - or [hl] - ld [hl], a - ld a, [bc] - dec bc - call Function119e8e - rlca - rlca - rlca - rlca - or [hl] - ld [hl], a - inc hl - pop af - dec a - and a - jr nz, .asm_119e9a - ret -; 119eb4 - -Function119eb4: ; 119eb4 (46:5eb4) - xor a - ld [wc3cc], a - ld de, wc3ac -.asm_119ebb - ld a, [de] - inc de - ld [hli], a - and a - jr nz, .asm_119ebb - ret - -Function119ec2: ; 119ec2 (46:5ec2) - ld a, $5 - call GetSRAMBank - xor a - ld [$aa5c], a - ld de, $aa4c -.asm_119ece - ld a, [de] - inc de - ld [hli], a - and a - jr nz, .asm_119ece - call CloseSRAM - ret - -Function119ed8: ; 119ed8 (46:5ed8) - ld a, [rSVBK] ; $ff00+$70 - ld [wcd8c], a - ld a, $1 - ld [rSVBK], a ; $ff00+$70 - call Function119eee - ld a, [wcd8c] - ld [rSVBK], a ; $ff00+$70 - ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 - ret - -Function119eee: ; 119eee (46:5eee) - ld a, [wcd3c] - ld e, a - ld d, 0 - ld hl, Jumptable_119efd -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 119efd (46:5efd) - -Jumptable_119efd: ; 119efd - dw Function119f3f - dw Function119f45 - dw Function119f56 - dw Function119f76 - dw Function119f98 - dw Function11a113 - dw Function11a129 - dw Function11a131 - dw Function11a13d - dw Function11a14b - dw Function11a16d - dw Function11a192 - dw Function11a2e6 - dw Function11a302 - dw Function11a33a - dw Function11a207 - dw Function11a235 - dw Function11a357 - dw Function11a36b - dw Function11a38d - dw Function11a3c5 - dw Function11a3d9 - dw Function11a3f9 - dw Function11a41b - dw Function11a452 - dw Function11a47a - dw Function11a488 - dw Function11a49e - dw Function11a4db - dw Function11a4e8 - dw Function11a4fe - dw Function11a466 - dw Function11a47a -; 119f3f - -Function119f3f: ; 119f3f - call Function11a5b9 - jp Function11a5b0 -; 119f45 - -Function119f45: ; 119f45 - hlcoord 4, 2 - ld de, String_11a661 - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 119f56 - -Function119f56: ; 119f56 - ld a, [wcd44] - and a - jr z, .asm_119f62 - dec a - ld [wcd44], a - scf - ret - -.asm_119f62 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6aa - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 119f76 - -Function119f76: ; 119f76 - ld a, [wcd44] - and a - jr z, .asm_119f82 - dec a - ld [wcd44], a - scf - ret - -.asm_119f82 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a679 - call PlaceString - call Function11a5f5 - xor a - ld [wcd44], a - jp Function11a5b0 -; 119f98 - -Function119f98: ; 119f98 - call Function11a536 - ret c - call PlayClickSFX - ld a, [wcd44] - and a - jr nz, .asm_119fef - call ExitMenu - call Function11a63c - xor a - ld [ScriptVar], a - call Function11a00e - ld a, [ScriptVar] - and a - jr z, .asm_119fd4 - call ExitMenu - callba Function104061 - callba Function115dc3 - ld a, [wcd33] - ld [wcf66], a - ld a, $a - ld [wc300], a - scf - ret - -.asm_119fd4 - hlcoord 4, 2 - ld de, String_11a692 - call PlaceString - ld a, $1 - ld [wc30d], a - ld a, $1 - ld [wPartyMonMenuIconAnims], a - callba Function104061 - and a - ret - -.asm_119fef - call ExitMenu - call ExitMenu - callba Function104061 - ld a, [wcd45] - ld [wcf66], a - callba Function115dc3 - ld a, $a - ld [wc300], a - scf - ret -; 11a00e - -Function11a00e: ; 11a00e - ld a, $5 - call GetSRAMBank - ld a, [$aa4b] - and a - jr z, .asm_11a02a - ld a, [$aa4c] - call CloseSRAM - and a - ret nz - ld a, $5 - call GetSRAMBank - xor a - ld [$aa4b], a - -.asm_11a02a - call CloseSRAM - ld a, [BGMapPalBuffer] - and a - jr z, .asm_11a039 - dec a - jr z, .asm_11a081 - jp Function11a0ca - -.asm_11a039 - ld a, $3 - ld [rSVBK], a - ld hl, $c608 - ld de, $d800 - ld bc, $00f6 - call CopyBytes - ld a, $1 - ld [rSVBK], a - call FadeToMenu - callba Function11765d - call Function11a9ce - ld a, $3 - ld [rSVBK], a - ld hl, $d800 - ld de, $c608 - ld bc, $00f6 - call CopyBytes - ld a, $1 - ld [rSVBK], a - callba Function115d99 - ld c, $0 - callba Function115e18 - ld a, $1 - ld [wc305], a - ret - -.asm_11a081 - xor a - ld [wMenuBorderLeftCoord], a - ld [wMenuBorderTopCoord], a - ld a, $13 - ld [wMenuBorderRightCoord], a - ld a, $5 - ld [wMenuBorderBottomCoord], a - call BackUpTiles - callba Function11765d - callba Function117ab4 - callba Function106462 - callba Function106464 - call ExitMenu - callba Function104061 - callba Function115d99 - ld c, $0 - callba Function115e18 - ld a, $1 - ld [wc305], a - ret -; 11a0ca - -Function11a0ca: ; 11a0ca - xor a - ld [wMenuBorderLeftCoord], a - ld [wMenuBorderTopCoord], a - ld a, $13 - ld [wMenuBorderRightCoord], a - ld a, $11 - ld [wMenuBorderBottomCoord], a - call BackUpTiles - callba Function11765d - callba Function17d3f6 - callba Function106462 - callba Function106464 - call ExitMenu - callba Function104061 - callba Function115d99 - ld c, $0 - callba Function115e18 - ld a, $1 - ld [wc305], a - ret -; 11a113 - -Function11a113: ; 11a113 - call Function11a63c - ld c, $1 - callba Function115e18 - hlcoord 4, 2 - ld de, String_11a6c8 - call PlaceString - and a - ret -; 11a129 - -Function11a129: ; 11a129 - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a131 - -Function11a131: ; 11a131 - ld hl, wcd44 - dec [hl] - ret nz - ld a, [wcd3c] - inc a - ld [wcd3c], a - -Function11a13d: - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret -; 11a14b - -Function11a14b: ; 11a14b - ld hl, wcd85 - ld a, [hl] - cp $f3 - jr nz, .asm_11a155 - and a - ret - -.asm_11a155 - call Function11a1d6 - ret c - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6f1 - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a16d - -Function11a16d: ; 11a16d - ld a, [wcd44] - and a - jr z, .asm_11a179 - dec a - ld [wcd44], a - scf - ret - -.asm_11a179 - call Function11a63c - call Function11a1e6 - hlcoord 4, 2 - ld de, wPartyMonMenuIconAnims + 48 + 2 - call PlaceString - call Function11a5f5 - xor a - ld [wcd44], a - jp Function11a5b0 -; 11a192 - -Function11a192: ; 11a192 - call Function11a536 - ret c - call PlayClickSFX - ld a, [wcd44] - and a - jr nz, .asm_11a1b6 - call ExitMenu - callba Function104061 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret - -.asm_11a1b6 - call ExitMenu - callba Function104061 - ld a, [wcd45] - ld [wcf66], a - ld [wcd80], a - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - scf - ret -; 11a1d6 - -Function11a1d6: ; 11a1d6 - ld a, [wcd85] - cp $50 - jr nz, .asm_11a1e4 - ld a, $d3 - call Function118805 - scf - ret - -.asm_11a1e4 - and a - ret -; 11a1e6 - -Function11a1e6: ; 11a1e6 - ld hl, String_11a706 - ld de, wPartyMonMenuIconAnims + 48 + 2 - call Function11a1ff - ld hl, wcd85 - call Function11a1ff - ld hl, String_11a70b - call Function11a1ff - ld a, $50 - ld [de], a - ret -; 11a1ff - -Function11a1ff: ; 11a1ff -.asm_11a1ff - ld a, [hli] - cp $50 - ret z - ld [de], a - inc de - jr .asm_11a1ff -; 11a207 - -Function11a207: ; 11a207 - ld hl, MenuDataHeader_11a2de - call LoadMenuDataHeader - call Function1cbb - call GetMemTileCoord - call Function321c - hlcoord 16, 8 - ld de, String_11a2cf - call PlaceString - hlcoord 16, 10 - ld de, String_11a2d3 - call PlaceString - hlcoord 15, 8 - ld a, $ed - ld [hl], a - xor a - ld [wcd44], a - jp Function11a5b0 -; 11a235 - -Function11a235: ; 11a235 - ld hl, hJoyPressed - ld a, [hl] - and A_BUTTON - jr nz, .asm_11a28f - ld a, [hl] - and B_BUTTON - jr nz, .asm_11a2c1 - ld a, [hl] - and D_UP - jr nz, .asm_11a251 - ld a, [hl] - and D_DOWN - jr nz, .asm_11a270 -.asm_11a24c - call Function11a9f0 - scf - ret - -.asm_11a251 - xor a - ld [wcd8a], a - ld [wcd8b], a - ld a, [wcd44] - and a - jr z, .asm_11a24c - xor a - ld [wcd44], a - hlcoord 15, 8 - ld a, $ed - ld [hl], a - hlcoord 15, 10 - ld a, $7f - ld [hl], a - jr .asm_11a24c - -.asm_11a270 - xor a - ld [wcd8a], a - ld [wcd8b], a - ld a, [wcd44] - and a - jr nz, .asm_11a24c - inc a - ld [wcd44], a - hlcoord 15, 8 - ld a, $7f - ld [hl], a - hlcoord 15, 10 - ld a, $ed - ld [hl], a - jr .asm_11a24c - -.asm_11a28f - xor a - ld [wcd8a], a - ld [wcd8b], a - call PlayClickSFX - ld a, [wcd44] - and a - jr nz, .asm_11a2c4 - call ExitMenu - callba Function104061 - ld a, [wcd46] - cp $0 - jr z, .asm_11a2b4 - ld a, [wcd47] - jr .asm_11a2b7 - -.asm_11a2b4 - ld a, [wcd33] - -.asm_11a2b7 - ld [wcf66], a - ld a, $a - ld [wc300], a - scf - ret - -.asm_11a2c1 - call PlayClickSFX - -.asm_11a2c4 - call ExitMenu - callba Function104061 - and a - ret -; 11a2cf - -String_11a2cf: ; 11a2cf - db "YES@" -; 11a2d3 - -String_11a2d3: ; 11a2d3 - db "NO@" -; 11a2d6 - -MenuDataHeader_11a2d6: ; 11a2d6 - db $40 ; flags - db 6, 14 ; start coords - db 10, 19 ; end coords - dw NULL - db 0 ; default option -; 11a2de - -MenuDataHeader_11a2de: ; 11a2de - db $40 ; flags - db 7, 14 ; start coords - db 11, 19 ; end coords - dw NULL - db 0 ; default option -; 11a2e6 - -Function11a2e6: ; 11a2e6 - call Function11a63c - ld c, $2 - callba Function115e18 - hlcoord 4, 2 - ld de, String_11a71e - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a302 - -Function11a302: ; 11a302 - ld a, [wcd44] - and a - jr z, .asm_11a30e - dec a - ld [wcd44], a - scf - ret - -.asm_11a30e - call Function11a63c - hlcoord 4, 2 - ld de, String_11a72a - call PlaceString - hlcoord 9, 4 - ld de, wcd68 - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - hlcoord 14, 4 - ld de, wcd67 - lb bc, PRINTNUM_LEADINGZEROS | 1, 2 - call PrintNum - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a33a - -Function11a33a: ; 11a33a - ld a, [wcd44] - and a - jr z, .asm_11a346 - dec a - ld [wcd44], a - scf - ret - -.asm_11a346 - call ExitMenu - callba Function104061 - callba Function115dc3 - and a - ret -; 11a357 - -Function11a357: ; 11a357 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a743 - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a36b - -Function11a36b: ; 11a36b - ld a, [wcd44] - and a - jr z, .asm_11a377 - dec a - ld [wcd44], a - scf - ret - -.asm_11a377 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a755 - call PlaceString - call Function11a5f5 - xor a - ld [wcd44], a - jp Function11a5b0 -; 11a38d - -Function11a38d: ; 11a38d - call Function11a536 - ret c - call PlayClickSFX - ld a, [wcd44] - and a - jr nz, .asm_11a3b1 - call ExitMenu - callba Function104061 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret - -.asm_11a3b1 - call ExitMenu - callba Function104061 - ld a, [wcd45] - ld [wcf66], a - ld [wcd80], a - scf - ret -; 11a3c5 - -Function11a3c5: ; 11a3c5 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a762 - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a3d9 - -Function11a3d9: ; 11a3d9 - ld a, [wcd44] - and a - jr z, .asm_11a3e5 - dec a - ld [wcd44], a - scf - ret - -.asm_11a3e5 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a779 - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a3f9 - -Function11a3f9: ; 11a3f9 - ld a, [wcd44] - and a - jr z, .asm_11a405 - dec a - ld [wcd44], a - scf - ret - -.asm_11a405 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a755 - call PlaceString - call Function11a5f5 - xor a - ld [wcd44], a - jp Function11a5b0 -; 11a41b - -Function11a41b: ; 11a41b - call Function11a536 - ret c - call PlayClickSFX - ld a, [wcd44] - and a - jr nz, .asm_11a43f - call ExitMenu - callba Function104061 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret - -.asm_11a43f - call ExitMenu - callba Function104061 - ld a, $1c - ld [wcf66], a - ld [wcd80], a - scf - ret -; 11a452 - -Function11a452: ; 11a452 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a791 - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a466 - -Function11a466: ; 11a466 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a7c1 - call PlaceString - ld a, $80 - ld [wcd44], a - jp Function11a5b0 -; 11a47a - -Function11a47a: ; 11a47a - ld a, [wcd44] - and a - jr z, .asm_11a486 - dec a - ld [wcd44], a - scf - ret - -.asm_11a486 - and a - ret -; 11a488 - -Function11a488: ; 11a488 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a7ac - call PlaceString - call Function11a5f5 - xor a - ld [wcd44], a - jp Function11a5b0 -; 11a49e - -Function11a49e: ; 11a49e - call Function11a536 - ret c - call PlayClickSFX - ld a, [wcd44] - and a - jr nz, .asm_11a4c7 - call ExitMenu - callba Function104061 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - ld a, $14 - ld [wcf66], a - and a - ret - -.asm_11a4c7 - call ExitMenu - callba Function104061 - ld a, [wcd46] - ld [wcf66], a - ld [wcd80], a - scf - ret -; 11a4db - -Function11a4db: ; 11a4db - call Function11a63c - ld de, String_11a6db - hlcoord 4, 2 - call PlaceString - ret -; 11a4e8 - -Function11a4e8: ; 11a4e8 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a7d7 - call PlaceString - call Function11a5f5 - xor a - ld [wcd44], a - jp Function11a5b0 -; 11a4fe - -Function11a4fe: ; 11a4fe - call Function11a536 - ret c - call PlayClickSFX - ld a, [wcd44] - and a - jr nz, .asm_11a522 - call ExitMenu - callba Function104061 - call Function11a63c - hlcoord 4, 2 - ld de, String_11a6d2 - call PlaceString - and a - ret - -.asm_11a522 - call ExitMenu - callba Function104061 - ld a, [wcd45] - ld [wcf66], a - ld [wcd80], a - scf - ret -; 11a536 - -Function11a536: ; 11a536 - ld hl, hJoyPressed - ld a, [hl] - and $1 - jr nz, .asm_11a5a7 - ld a, [hl] - and $2 - jr nz, .asm_11a5a2 - ld a, [hl] - and $40 - jr nz, .asm_11a564 - ld a, [hl] - and $80 - jr nz, .asm_11a583 -.asm_11a54d - ld a, [wcd3c] - cp $4 - jr z, .asm_11a562 - call Function11a9f0 - jr nz, .asm_11a562 - call ExitMenu - callba Function104061 - -.asm_11a562 - scf - ret - -.asm_11a564 - xor a - ld [wcd8a], a - ld [wcd8b], a - ld a, [wcd44] - and a - jr z, .asm_11a54d - xor a - ld [wcd44], a - hlcoord 15, 7 - ld a, $ed - ld [hl], a - hlcoord 15, 9 - ld a, $7f - ld [hl], a - jr .asm_11a54d - -.asm_11a583 - xor a - ld [wcd8a], a - ld [wcd8b], a - ld a, [wcd44] - and a - jr nz, .asm_11a54d - inc a - ld [wcd44], a - hlcoord 15, 7 - ld a, $7f - ld [hl], a - hlcoord 15, 9 - ld a, $ed - ld [hl], a - jr .asm_11a54d - -.asm_11a5a2 - ld a, $1 - ld [wcd44], a - -.asm_11a5a7 - xor a - ld [wcd8a], a - ld [wcd8b], a - and a - ret -; 11a5b0 - -Function11a5b0: ; 11a5b0 - ld a, [wcd3c] - inc a - ld [wcd3c], a - scf - ret -; 11a5b9 - -Function11a5b9: ; 11a5b9 - xor a - ld [wMenuBorderLeftCoord], a - ld [wMenuBorderTopCoord], a - ld a, $13 - ld [wMenuBorderRightCoord], a - ld a, $5 - ld [wMenuBorderBottomCoord], a - call BackUpTiles - hlcoord 0, 0, AttrMap - ld b, $6 - ld c, $14 - hlcoord 0, 0 - ld b, $4 - ld c, $12 - call Function3eea - callba Function104061 - call UpdateSprites - ld c, $0 - callba Function115e18 - ld a, $1 - ld [wc305], a - ret -; 11a5f5 - -Function11a5f5: ; 11a5f5 - ld a, $e - ld [wMenuBorderLeftCoord], a - ld a, $13 - ld [wMenuBorderRightCoord], a - ld a, $6 - ld [wMenuBorderTopCoord], a - ld a, $a - ld [wMenuBorderBottomCoord], a - call BackUpTiles - hlcoord 14, 6, AttrMap - ld b, $5 - ld c, $6 - hlcoord 14, 6 - ld b, $3 - ld c, $4 - call Function3eea - hlcoord 16, 7 - ld de, String_11a2cf - call PlaceString - hlcoord 16, 9 - ld de, String_11a2d3 - call PlaceString - hlcoord 15, 7 - ld a, $ed - ld [hl], a - callba Function104061 - ret -; 11a63c - -Function11a63c: ; 11a63c - hlcoord 4, 1 - ld de, String_11a7f4 - call PlaceString - hlcoord 4, 2 - ld de, String_11a7f4 - call PlaceString - hlcoord 4, 3 - ld de, String_11a7f4 - call PlaceString - hlcoord 4, 4 - ld de, String_11a7f4 - call PlaceString - ret -; 11a661 - -String_11a661: ; 11a661 - db "これから モバイルセンターに" - next "でんわ", $1f, "かけます@" -; 11a679 - -String_11a679: ; 11a679 - db "モバイルアダプタ", $25, "じゅんびは" - next "できて いますか?@" -; 11a692 - -String_11a692: ; 11a692 - db "でんわ", $1f, "かけています" - next "しばらく おまちください@" -; 11a6aa - -String_11a6aa: ; 11a6aa - db "でんわをかけると つうわりょう" - next "せつぞくりょう", $4a, "かかります@" -; 11a6c8 - -String_11a6c8: ; 11a6c8 - db "せつぞく しました@" -; 11a6d2 - -String_11a6d2: ; 11a6d2 - db "つうしん ちゅう@" -; 11a6db - -String_11a6db: ; 11a6db - db "つうしん ちゅう" - next "セレクト エーでちゅうし@" -; 11a6f1 - -String_11a6f1: ; 11a6f1 - db "この サービスには" - next "つうわりょう", $25, "ほかに@" -; 11a706 - -String_11a706: ; 11a706 - db "おかね", $4a, "@" -; 11a70b - -String_11a70b: ; 11a70b - db "えん" - next "かかります よろしい ですか?@" -; 11a71e - -String_11a71e: ; 11a71e - db "つうしん しゅうりょう@" -; 11a72a - -String_11a72a: ; 11a72a - db "つないだ じかん" - next " やく ふん びょう@" -; 11a743 - -String_11a743: ; 11a743 - db "もっていない データが" - next "あります!@" -; 11a755 - -String_11a755: ; 11a755 - db "データ", $1f, "よみこみますか?@" -; 11a762 - -String_11a762: ; 11a762 - db "おなじ データ", $1f, "よみこんだ" - next "こと", $4a, "ありますが@" -; 11a779 - -String_11a779: ; 11a779 - db "そのデータ", $24, "なくなっているか" - next "こわれて います@" -; 11a791 - -String_11a791: ; 11a791 - db "もっている データと" - next "おなじデータしか ありません!@" -; 11a7ac - -String_11a7ac: ; 11a7ac - db "データ", $25, "よみこみを" - next "ちゅうし しますか?@" -; 11a7c1 - -String_11a7c1: ; 11a7c1 - db "あたらしい ニュースは" - next "ありません でした@" -; 11a7d7 - -String_11a7d7: ; 11a7d7 - db "あたらしいニュース", $4a, "あります" - next "ニュース", $1f, "よみこみますか?@" -; 11a7f4 - -String_11a7f4: ; 11a7f4 - db " @" -; 11a804 - -MenuDataHeader_11a804: ; 11a804 - db $40 ; flags - db 0, 0 ; start coords - db 5, 19 ; end coords - dw NULL - db 0 ; default option -; 11a80c - -Function11a80c: ; 11a80c - ld de, hDivisor - ld bc, hDividend - ld hl, Unknown_11a89a - call Function11a88c - ld bc, hQuotient - ld hl, Unknown_11a8ba - call Function11a88c - ld bc, $ffb5 - ld hl, Unknown_11a8da - call Function11a88c - xor a - ld b, a - ld a, [hDivisor] - and $f - ld e, a - ld a, [$ffb9] - and $f - call Function11a884 - ld e, a - ld a, [$ffbb] - and $f - call Function11a884 - ld [wcd62], a - ld e, b - xor a - ld b, a - ld a, [hDivisor] - and $f0 - swap a - call Function11a884 - ld e, a - ld a, [$ffb9] - and $f0 - swap a - call Function11a884 - ld e, a - ld a, [$ffbb] - and $f0 - swap a - call Function11a884 - ld [wcd63], a - ld e, b - xor a - ld b, a - ld a, [hMathBuffer] - and $f - call Function11a884 - ld e, a - ld a, [$ffba] - and $f - call Function11a884 - ld e, a - ld a, [$ffbc] - and $f - call Function11a884 - ld [wcd64], a - ret -; 11a884 - -Function11a884: ; 11a884 - add e - cp $a - ret c - sub $a - inc b - ret -; 11a88c - -Function11a88c: ; 11a88c - ld a, [bc] - sla a - ld c, a - xor a - ld b, a - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - ret -; 11a89a - -Unknown_11a89a: ; 11a89a -x = 0 -rept 16 - bcd x % 100, x / 100 -x = x + 1 -endr - -Unknown_11a8ba: ; 11a8ba -x = 0 -rept 16 - bcd x % 100, x / 100 -x = x + 16 -endr - -Unknown_11a8da: ; 11a8da -x = 0 -rept 16 - bcd x % 100, x / 100 -x = x + 256 -endr -; 11a8fa - -Function11a8fa: ; 11a8fa - ld a, [wPartyMonMenuIconAnims + 6] - ld e, a - ld d, 0 - ld hl, Jumptable_11a909 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 11a909 - -Jumptable_11a909: ; 11a909 - dw Function11a970 - dw Function11a90f - dw Function11a971 -; 11a90f - -Function11a90f: ; 11a90f - ld a, $1 - ld [rSVBK], a - call SpeechTextBox - ld a, $50 - ld hl, wPartyMonMenuIconAnims + 12 - ld bc, $008c - call ByteFill - ld a, [wPartyMonMenuIconAnims + 7] - ld l, a - ld a, [wPartyMonMenuIconAnims + 8] - ld h, a - ld de, wPartyMonMenuIconAnims + 12 -.asm_11a92c - ld a, [hli] - cp $57 - jr z, .asm_11a94f - cp $0 - jr z, .asm_11a92c - cp $50 - jr z, .asm_11a92c - cp $1 - jr z, .asm_11a941 - ld [de], a - inc de - jr .asm_11a92c - -.asm_11a941 - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a -.asm_11a945 - ld a, [bc] - inc bc - cp $50 - jr z, .asm_11a92c - ld [de], a - inc de - jr .asm_11a945 - -.asm_11a94f - xor a - ld [wPartyMonMenuIconAnims + 11], a - ld a, $20 - ld [wPartyMonMenuIconAnims + 7], a - ld a, $c3 - ld [wPartyMonMenuIconAnims + 8], a - hlcoord 1, 14 - ld a, l - ld [wPartyMonMenuIconAnims + 9], a - ld a, h - ld [wPartyMonMenuIconAnims + 10], a - ld hl, wPartyMonMenuIconAnims + 6 - inc [hl] - ld a, $3 - ld [rSVBK], a - -Function11a970: - ret -; 11a971 - -Function11a971: ; 11a971 - ld hl, wPartyMonMenuIconAnims + 11 - ld a, [hJoyDown] - and a - jr nz, .asm_11a97f - ld a, [hl] - and a - jr z, .asm_11a97f - dec [hl] - ret - -.asm_11a97f - ld a, [Options] - and $7 - ld [hl], a - ld hl, wcd8d - ld a, [wPartyMonMenuIconAnims + 7] - ld e, a - ld a, [wPartyMonMenuIconAnims + 8] - ld d, a - ld a, [de] - inc de - ld [hli], a - ld a, e - ld [wPartyMonMenuIconAnims + 7], a - ld a, d - ld [wPartyMonMenuIconAnims + 8], a - ld a, $50 - ld [hl], a - ld a, [wPartyMonMenuIconAnims + 9] - ld l, a - ld a, [wPartyMonMenuIconAnims + 10] - ld h, a - ld de, wcd8d - call PlaceString - ld a, c - ld [wPartyMonMenuIconAnims + 9], a - ld a, b - ld [wPartyMonMenuIconAnims + 10], a - ld a, [wcd8d] - cp $50 - jr nz, .asm_11a9bf - xor a - ld [wPartyMonMenuIconAnims + 6], a - -.asm_11a9bf - ret -; 11a9c0 - -Function11a9c0: ; 11a9c0 - ld a, l - ld [wPartyMonMenuIconAnims + 7], a - ld a, h - ld [wPartyMonMenuIconAnims + 8], a - ld a, $1 - ld [wPartyMonMenuIconAnims + 6], a - ret -; 11a9ce - -Function11a9ce: ; 11a9ce - call WhiteBGMap - call Function2bae - call Call_ExitMenu - callba Function106462 - callba Function106464 - call Functiond90 - callba Function2b5c - call UpdateSprites - ret -; 11a9f0 - -Function11a9f0: ; 11a9f0 - ld a, $1 - and a - ret -; 11a9f4 - -Function11a9f4: ; 11a9f4 - ld a, [wcd8a] - ld l, a - ld a, [wcd8b] - ld h, a - inc hl - ld a, l - ld [wcd8a], a - ld a, h - ld [wcd8b], a - ld de, $d5d0 - add hl, de - bit 7, h - ret nz - ld a, $d6 - call Function118805 - and a - ret -; 11aa13 - -UnknownText_0x11aa13: ; 0x11aa13 - text "SAVE FILE will be" - line "sent." - done -; 0x11aa2c - -UnknownText_0x11aa2c: ; 0x11aa2c - text "Sent SAVE FILE." - line "Reading NEWS…" - done -; 0x11aa4b - -UnknownText_0x11aa4b: ; 0x11aa4b - text "Reading NEWS…" - done -; 0x11aa5a - -UnknownText_0x11aa5a: ; 0x11aa5a - text "Received NEWS!" - done -; 0x11aa6a - -UnknownText_0x11aa6a: ; 0x11aa6a - text "Quit reading NEWS?" - done -; 0x11aa7e - -UnknownText_0x11aa7e: ; 0x11aa7e - text "Canceled sending" - line "SAVE FILE." - done -; 0x11aa9b - -UnknownText_0x11aa9b: ; 0x11aa9b - text "ODD EGG" - line "was received!" - done -; 0x11aab2 - -UnknownText_0x11aab2: ; 0x11aab2 - text "Registering your" - line "record…" - done -; 0x11aacc - -UnknownText_0x11aacc: ; 0x11aacc - text "One visit per day" - line "per BATTLE ROOM!" - done -; 0x11aaf0 - -UnknownText_0x11aaf0: ; 0x11aaf0 - text "A party #MON" - line "tops this level." - done -; 0x11ab0f - -UnknownText_0x11ab0f: ; 0x11ab0f - text_from_ram wcd49 - text " may go" - line "only to BATTLE" - - para "ROOMS that are" - line "Lv.70 or higher." - done -; 0x11ab4a - -UnknownText_0x11ab4a: ; 0x11ab4a - text "Cancel your BATTLE" - line "ROOM challenge?" - done -; 0x11ab6e - -UnknownText_0x11ab6e: ; 0x11ab6e - text "Exit GYM LEADER" - line "HONOR ROLL?" - done -; 0x11ab8b - -UnknownText_0x11ab8b: ; 0x11ab8b - text "Linking with the" - line "CENTER…" - done -; 0x11aba5 - -Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5 - text "What level do you" - line "want to challenge?" - done -; 0x11abcb - -Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb - text "Check BATTLE ROOM" - line "list by max level?" - done -; 0x11abf1 - -UnknownText_0x11abf1: ; 0x11abf1 - text "Enter which" - line "BATTLE ROOM?" - done -; 0x11ac0b - -UnknownText_0x11ac0b: ; 0x11ac0b - text "Which BATTLE ROOM?" - done -; 0x11ac1f - -UnknownText_0x11ac1f: ; 0x11ac1f - text_from_ram StringBuffer3 - text "'s ROOM" - line "@" - text_from_ram StringBuffer4 - text "?" - cont "Please wait…" - done -; 0x11ac3e - -Function11ac3e: ; 11ac3e - call SpeechTextBox - call FadeToMenu - callab InefficientlyClear121BytesAtwc300 - call Function11ac51 - call Function2b3c - ret -; 11ac51 - -Function11ac51: ; 11ac51 - xor a - ld [hBGMapMode], a - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - xor a - ld [$ffde], a - ld [wcd49], a - ld [wcd4a], a - ld [wcd4c], a - ld [wcd4d], a - ld [wcd4e], a - call Function11ad1b - call DelayFrame -.asm_11ac82 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_11aca8 - call Function11b314 - call Function11acb7 - call Function11ad6e - ld a, $78 - ld [wc3b5], a - callba Function8cf7a - callba Function104061 - jr .asm_11ac82 - -.asm_11aca8 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret -; 11acb7 - -Function11acb7: ; 11acb7 - ld hl, Unknown_11ba44 - ld a, [wcd49] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - add hl, bc - decoord 6, 6 - ld a, [hli] - ld [de], a - decoord 0, 7 - ld bc, $0007 - call CopyBytes - ld a, [wcd49] - inc a - ld [wcd49], a - ld a, [hl] - cp $ff - jr nz, .asm_11aceb - xor a - ld [wcd49], a - -.asm_11aceb - ld hl, Unknown_11bb7d - ld a, [wcd4a] - ld c, a - ld b, $0 - sla c - rl b - sla c - rl b - sla c - rl b - add hl, bc - decoord 3, 9 - ld bc, $0007 - call CopyBytes - ld a, [wcd4a] - inc a - ld [wcd4a], a - inc hl - ld a, [hl] - cp $ff - ret nz - xor a - ld [wcd4a], a - ret -; 11ad1b - -Function11ad1b: ; 11ad1b - call WhiteBGMap - call ClearSprites - call ClearTileMap - callba Function17c000 - ld a, [wcfa9] - ld [wcd82], a - dec a - ld [hObjectStructIndexBuffer], a - ld a, $10 - ld [wc3b7], a - ld hl, Function8e83f - ld a, BANK(Function8e83f) - ld e, $4 - rst FarCall - ld hl, Function8e83f - ld a, BANK(Function8e83f) - ld e, $5 - rst FarCall - ld hl, $c6d0 - ld bc, $0115 - xor a - call ByteFill - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wcd30], a - ld a, $2 - ld [wc7d4], a - callba Function40bdc - ret -; 11ad6e - -Function11ad6e: ; 11ad6e - ld a, [wJumptableIndex] - ld hl, Jumptable_11ad78 - call Function11b239 - jp [hl] -; 11ad78 - -Jumptable_11ad78: ; 11ad78 - dw Function11b082 - dw Function11b0ff - dw Function11ad95 - dw Function11adc4 - dw Function11ae4e - dw Function11ae98 - dw Function11ad8f - dw Function11af04 - dw Function11af4e -; 11ad8a - -Function11ad8a: ; 11ad8a - ld hl, wJumptableIndex - inc [hl] - ret -; 11ad8f - -Function11ad8f: ; 11ad8f - ld hl, wJumptableIndex - set 7, [hl] - ret -; 11ad95 - -Function11ad95: ; 11ad95 - ld hl, MenuDataHeader_11ae38 - call LoadMenuDataHeader - call Function1cbb - hlcoord 12, 12 - ld de, String_11ae40 - call PlaceString - hlcoord 10, 10, AttrMap - ld bc, $0808 - call Function11afd6 - callba Function104061 - call Function11ad8a - ld a, $1 - ld [wcfa9], a - ld hl, Unknown_11afcc - call Function11afb7 - -Function11adc4: - ld hl, hJoyPressed - ld a, [hl] - and a - ret z - ld a, [hl] - and $40 - jr nz, .asm_11ade6 - ld a, [hl] - and $80 - jr nz, .asm_11aded - ld a, [hl] - and $1 - jr nz, .asm_11ae06 - ld a, [hl] - and $2 - ret z - call PlayClickSFX - xor a - ld [wJumptableIndex], a - jr .asm_11ae2e - -.asm_11ade6 - ld a, [wcfa9] - dec a - ret z - jr .asm_11adf4 - -.asm_11aded - ld a, [wcfa9] - inc a - cp $4 - ret z - -.asm_11adf4 - push af - ld hl, Unknown_11afcc - call Function11afbb - pop af - ld [wcfa9], a - ld hl, Unknown_11afcc - call Function11afb7 - ret - -.asm_11ae06 - call PlayClickSFX - ld a, [wcfa9] - dec a - ld hl, wcd30 - ld [hl], a - and a - jr z, .asm_11ae28 - hlcoord 2, 14 - ld a, [wcfa9] - cp $2 - jr z, .asm_11ae23 - call Function11b272 - jr .asm_11ae2b - -.asm_11ae23 - call Function11b267 - jr .asm_11ae2b - -.asm_11ae28 - ld a, $3 - ld [hl], a - -.asm_11ae2b - call Function11ad8a - -.asm_11ae2e - call ExitMenu - callba Function104061 - ret -; 11ae38 - -MenuDataHeader_11ae38: ; 11ae38 - db $40 ; flags - db 10, 10 ; start coords - db 17, 17 ; end coords - dw NULL - db 0 ; default option -; 11ae40 - -String_11ae40: ; 11ae40 - db "どちらでも" - next "♂ォス" - next "♀メス" - db "@" -; 11ae4e - -Function11ae4e: ; 11ae4e - ld hl, MenuDataHeader_11afe8 - call LoadMenuDataHeader - call Function1cbb - hlcoord 10, 14 - ld de, String_11aff0 - call PlaceString - ld hl, MenuDataHeader_11b013 - call LoadMenuDataHeader - call Function1cbb - hlcoord 16, 8 - ld de, String_11b01b - call PlaceString - hlcoord 14, 7, AttrMap - lb bc, 5, 6 - call Function11afd6 - hlcoord 9, 12, AttrMap - lb bc, 6, 11 - call Function11afd6 - callba Function104061 - call Function11ad8a - ld a, $1 - ld [wcfa9], a - ld hl, Unknown_11afd2 - call Function11afb7 - -Function11ae98: - ld hl, hJoyPressed - ld a, [hl] - and a - ret z - ld a, [hl] - and D_UP - jr nz, .asm_11aec1 - ld a, [hl] - and D_DOWN - jr nz, .asm_11aec8 - ld a, [hl] - and A_BUTTON - jr nz, .asm_11aee1 - ld a, [hl] - and B_BUTTON - ret z - call PlayClickSFX -.asm_11aeb4 - hlcoord 2, 14 - ld a, $7f - ld [hl], a - ld a, $1 - ld [wJumptableIndex], a - jr .asm_11aef7 - -.asm_11aec1 - ld a, [wcfa9] - dec a - ret z - jr .asm_11aecf - -.asm_11aec8 - ld a, [wcfa9] - inc a - cp $3 - ret z - -.asm_11aecf - push af - ld hl, Unknown_11afd2 - call Function11afbb - pop af - ld [wcfa9], a - ld hl, Unknown_11afd2 - call Function11afb7 - ret - -.asm_11aee1 - call PlayClickSFX - ld a, [wcfa9] - cp $2 - jr z, .asm_11aeb4 - ld a, [wcd4b] - ld [ScriptVar], a - call Function11b022 - call Function11ad8a - -.asm_11aef7 - call ExitMenu - call ExitMenu - callba Function104061 - ret -; 11af04 - -Function11af04: ; 11af04 - ld hl, MenuDataHeader_11afe8 - call LoadMenuDataHeader - call Function1cbb - hlcoord 10, 14 - ld de, String_11b003 - call PlaceString - ld hl, MenuDataHeader_11b013 - call LoadMenuDataHeader - call Function1cbb - hlcoord 16, 8 - ld de, String_11b01b - call PlaceString - hlcoord 14, 7, AttrMap - lb bc, 5, 6 - call Function11afd6 - hlcoord 9, 12, AttrMap - lb bc, 6, 11 - call Function11afd6 - callba Function104061 - call Function11ad8a - ld a, $2 - ld [wcfa9], a - ld hl, Unknown_11afd2 - call Function11afb7 - -Function11af4e: - ld hl, hJoyPressed - ld a, [hl] - and a - ret z - ld a, [hl] - and D_UP - jr nz, .asm_11af77 - ld a, [hl] - and D_DOWN - jr nz, .asm_11af7e - ld a, [hl] - and A_BUTTON - jr nz, .asm_11af97 - ld a, [hl] - and B_BUTTON - ret z - call PlayClickSFX -.asm_11af6a - hlcoord 2, 14 - ld a, $7f - ld [hl], a - ld a, $1 - ld [wJumptableIndex], a - jr .asm_11afaa - -.asm_11af77 - ld a, [wcfa9] - dec a - ret z - jr .asm_11af85 - -.asm_11af7e - ld a, [wcfa9] - inc a - cp $3 - ret z - -.asm_11af85 - push af - ld hl, Unknown_11afd2 - call Function11afbb - pop af - ld [wcfa9], a - ld hl, Unknown_11afd2 - call Function11afb7 - ret - -.asm_11af97 - call PlayClickSFX - ld a, [wcfa9] - cp $2 - jr z, .asm_11af6a - ld a, $6 - ld [wJumptableIndex], a - xor a - ld [ScriptVar], a - -.asm_11afaa - call ExitMenu - call ExitMenu - callba Function104061 - ret -; 11afb7 - -Function11afb7: ; 11afb7 - ld e, $ed - jr asm_11afbd - -Function11afbb: - ld e, $7f - -asm_11afbd: - ld a, [wcfa9] - dec a - ld c, a - ld b, 0 -rept 2 - add hl, bc -endr - ld a, e - ld e, [hl] - inc hl - ld d, [hl] - ld [de], a - ret -; 11afcc - -Unknown_11afcc: - dwcoord 11, 12 - dwcoord 11, 14 - dwcoord 11, 16 - -Unknown_11afd2: - dwcoord 15, 8 - dwcoord 15, 10 -; 11afd6 - -Function11afd6: ; 11afd6 - ld de, $0014 - ld a, $3 -.asm_11afdb - push bc - push hl -.asm_11afdd - ld [hli], a - dec c - jr nz, .asm_11afdd - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_11afdb - ret -; 11afe8 - -MenuDataHeader_11afe8: ; 11afe8 - db $40 ; flags - db 12, 9 ; start coords - db 17, 19 ; end coords - dw NULL - db 0 ; default option -; 11aff0 - -String_11aff0: ; 11aff0 - db "この じょうけんで" - next "よろしいですか?@" -; 11b003 - -String_11b003: ; 11b003 - db "こうかんを" - next "ちゅうししますか?@" -; 11b013 - -MenuDataHeader_11b013: ; 11b013 - db $40 ; flags - db 7, 14 ; start coords - db 11, 19 ; end coords - dw NULL - db 1 ; default option -; 11b01b - -String_11b01b: - db "はい" - next "いいえ@" -; 11b022 - -Function11b022: ; 11b022 - ld a, [wcd2e] - and a - jr z, .asm_11b02e - ld hl, StringBuffer3 - call Function11b03d - -.asm_11b02e - ld a, [wcd30] - and a - ret z - cp $3 - ret z - ld hl, StringBuffer4 - call Function11b03d - ret -; 11b03d - -Function11b03d: ; 11b03d - push hl - push af - ld c, $1 -.asm_11b041 - ld a, [hli] - cp $ef - jr z, .asm_11b051 - cp $f5 - jr z, .asm_11b051 - cp $50 - jr z, .asm_11b055 - inc c - jr .asm_11b041 - -.asm_11b051 - dec hl - ld a, $50 - ld [hli], a - -.asm_11b055 - dec hl - push hl - ld e, $4 - ld d, $0 - add hl, de - ld e, l - ld d, h - pop hl -.asm_11b05f - ld a, [hld] - ld [de], a - dec de - dec c - jr nz, .asm_11b05f - pop af - pop de - cp $1 - jr nz, .asm_11b070 - ld hl, String_11b07a - jr .asm_11b073 - -.asm_11b070 - ld hl, String_11b07e - -.asm_11b073 - ld bc, 4 - call CopyBytes - ret -; 11b07a - -String_11b07a: db "ォスの " -String_11b07e: db "メスの " - -Function11b082: ; 11b082 - call Function11b242 - ld a, $7 - ld [wc7d3], a - call Function11b099 - call Function11b295 - call Function11b275 - call SetPalettes - jp Function11ad8a -; 11b099 - -Function11b099: ; 11b099 - ld c, $6 - hlcoord 11, 1 - ld a, [wc7d3] - add a - ld b, a - xor a - call Function11b236 - ld a, [wc7d0] - ld e, a - ld d, $0 - ld hl, $c6d0 - add hl, de - ld e, l - ld d, h - hlcoord 11, 2 - ld a, [wc7d3] -.asm_11b0b9 - push af - ld a, [de] - ld [wd265], a - push de - push hl - call Function11b0cf - pop hl - ld de, $0028 - add hl, de - pop de - inc de - pop af - dec a - jr nz, .asm_11b0b9 - ret -; 11b0cf - -Function11b0cf: ; 11b0cf - and a - ret z - call Function11b0ec - ret c - call Function11b0e1 - push hl - call GetPokemonName - pop hl - call PlaceString - ret -; 11b0e1 - -Function11b0e1: ; 11b0e1 - call Function11b21e - jr nz, .asm_11b0e8 - inc hl - ret - -.asm_11b0e8 - ld a, $1 - ld [hli], a - ret -; 11b0ec - -Function11b0ec: ; 11b0ec - call Function11b22a - ret nz - inc hl - ld de, String_11b0f9 - call PlaceString - scf - ret -; 11b0f9 - -String_11b0f9: ; 11b0f9 - db "ーーーーー@" -; 11b0ff - -Function11b0ff: ; 11b0ff - ld hl, hJoyPressed - ld a, [hl] - and $2 - jr nz, .asm_11b141 - ld a, [hl] - and $1 - jr nz, .asm_11b131 - call Function11b175 - jr nc, .asm_11b125 - ld a, [wcd4c] - inc a - and $3 - ld [wcd4c], a - xor a - ld [hBGMapMode], a - call Function11b099 - ld a, $1 - ld [hBGMapMode], a - ret - -.asm_11b125 - ld a, [wcd4c] - and a - ret z - inc a - and $3 - ld [wcd4c], a - ret - -.asm_11b131 - call Function11b20b - call Function11b22a - jr z, .asm_11b13d - ld a, $1 - jr .asm_11b148 - -.asm_11b13d - ld a, $2 - jr .asm_11b148 - -.asm_11b141 - ld hl, wJumptableIndex - ld a, $7 - ld [hl], a - ret - -.asm_11b148 - call PlayClickSFX - ld [wcd4b], a - and a - jr z, .asm_11b16c - ld a, [wcf65] - cp $0 - jr z, .asm_11b163 - cp $fe - jr z, .asm_11b167 - cp $ff - jr z, .asm_11b16b - jp Function11ad8a - -.asm_11b163 - ld a, $1 - jr .asm_11b16c - -.asm_11b167 - ld a, $2 - jr .asm_11b16c - -.asm_11b16b - xor a - -.asm_11b16c - ld [wcd30], a - ld a, $4 - ld [wJumptableIndex], a - ret -; 11b175 - -Function11b175: ; 11b175 - ld a, [wc7d3] - ld d, a - ld a, [wc7d2] - ld e, a - ld hl, hJoyLast - ld a, [hl] - and $40 - jr nz, .asm_11b19a - ld a, [hl] - and $80 - jr nz, .asm_11b1ae - ld a, d - cp e - jr nc, .asm_11b1ed - ld a, [hl] - and $20 - jr nz, .asm_11b1c6 - ld a, [hl] - and $10 - jr nz, .asm_11b1d8 - jr .asm_11b1ed - -.asm_11b19a - ld hl, wc7d1 - ld a, [hl] - and a - jr z, .asm_11b1a4 - dec [hl] - jr .asm_11b1ef - -.asm_11b1a4 - ld hl, wc7d0 - ld a, [hl] - and a - jr z, .asm_11b1ed - dec [hl] - jr .asm_11b1ef - -.asm_11b1ae - ld hl, wc7d1 - ld a, [hl] - inc a - cp e - jr nc, .asm_11b1ed - cp d - jr nc, .asm_11b1bc - inc [hl] - jr .asm_11b1ef - -.asm_11b1bc - ld hl, wc7d0 - add [hl] - cp e - jr nc, .asm_11b1ed - inc [hl] - jr .asm_11b1ef - -.asm_11b1c6 - ld hl, wc7d0 - ld a, [hl] - and a - jr z, .asm_11b1ed - cp d - jr nc, .asm_11b1d4 - xor a - ld [hl], a - jr .asm_11b1ef - -.asm_11b1d4 - sub d - ld [hl], a - jr .asm_11b1ef - -.asm_11b1d8 - ld hl, wc7d0 - ld a, d - add a - add [hl] - jr c, .asm_11b1e3 - cp e - jr c, .asm_11b1e8 - -.asm_11b1e3 - ld a, e - sub d - ld [hl], a - jr .asm_11b1ef - -.asm_11b1e8 - ld a, [hl] - add d - ld [hl], a - jr .asm_11b1ef - -.asm_11b1ed - and a - ret - -.asm_11b1ef - call Function11b295 - call Function11b275 - scf - ret -; 11b1f7 - -Function11b1f7: ; 11b1f7 - hlcoord 0, 0 - ld a, $32 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - call ByteFill - ret -; 11b203 - -Function11b203: ; 11b203 -.asm_11b203 - ld a, [de] - cp $ff - ret z - inc de - ld [hli], a - jr .asm_11b203 -; 11b20b - -Function11b20b: ; 11b20b - ld a, [wc7d1] - ld hl, wc7d0 - add [hl] - ld e, a - ld d, $0 - ld hl, $c6d0 - add hl, de - ld a, [hl] - ld [wd265], a - ret -; 11b21e - -Function11b21e: ; 11b21e - push de - push hl - ld a, [wd265] - dec a - call CheckCaughtMon - pop hl - pop de - ret -; 11b22a - -Function11b22a: ; 11b22a - push de - push hl - ld a, [wd265] - dec a - call CheckSeenMon - pop hl - pop de - ret -; 11b236 - -Function11b236: ; 11b236 - jp FillBoxWithByte -; 11b239 - -Function11b239: ; 11b239 - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ret -; 11b242 - -Function11b242: ; 11b242 - hlcoord 3, 4 - ld de, StringBuffer3 - call PlaceString - xor a - ld [MonType], a - callba GetGender - hlcoord 1, 4 - ld a, [CurPartySpecies] - ld bc, wcd2f - ld [bc], a - dec bc - jr c, asm_11b26a - jr z, asm_11b26f - ld a, $1 - ld [bc], a - -Function11b267: - ld [hl], $ef - ret - -asm_11b26a - xor a - ld [bc], a - ld [hl], $7f - ret - -asm_11b26f - ld a, $2 - ld [bc], a - -Function11b272: - ld [hl], $f5 - ret -; 11b275 - -Function11b275: ; 11b275 - call Function11b279 - ret -; 11b279 - -Function11b279: ; 11b279 - ld a, [wd265] - ld [CurSpecies], a - call Function11b22a - jr z, .asm_11b28f - call GetBaseData - ld a, [BaseGender] - ld [wcf65], a - jr .asm_11b294 - -.asm_11b28f - ld a, $ff - ld [wcf65], a - -.asm_11b294 - ret -; 11b295 - -Function11b295: ; 11b295 - hlcoord 4, 13 - ld de, String_11b308 - call PlaceString - hlcoord 4, 14 - ld de, String_11b308 - call PlaceString - call Function11b20b - call Function11b22a - jr z, .asm_11b2d1 - ld a, [$c608] - ld c, a - ld a, [$c608 + 1] - ld b, a - ld hl, $0007 - add hl, bc - xor a - ld [hl], a - ld hl, $0003 - add hl, bc - ld e, [hl] - callba Function8e9bc - hlcoord 4, 14 - push hl - call GetPokemonName - jr .asm_11b2e7 - -.asm_11b2d1 - ld a, [$c608] - ld c, a - ld a, [$c608 + 1] - ld b, a - ld hl, $0007 - add hl, bc - ld a, $50 - ld [hl], a - hlcoord 4, 13 - push hl - ld de, String_11b30e - -.asm_11b2e7 - ld a, $6 - ld bc, StringBuffer4 -.asm_11b2ec - push af - ld a, [de] - ld [bc], a - inc de - inc bc - pop af - dec a - and a - jr nz, .asm_11b2ec - pop hl - ld de, StringBuffer4 - call PlaceString - ret -; 11b2fe - -String_11b2fe: ; 11b2fe - db "あげる#@" -; 11b303 - -String_11b303: ; 11b303 - db "ほしい#@" -; 11b308 - -String_11b308: ; 11b308 - db " @" -; 11b30e - -String_11b30e: ; 11b30e - db "みはっけん@" -; 11b314 - -Function11b314: ; 11b314 - call Function11b31b - call Function11b3d9 - ret -; 11b31b - -Function11b31b: ; 11b31b - ld hl, Unknown_11b350 - ld a, [wJumptableIndex] - cp $2 - jr c, .asm_11b349 - ld a, [wc7d1] - cp $4 - jr nc, .asm_11b344 - cp $3 - jr c, .asm_11b349 - ld a, [wJumptableIndex] - cp $2 - jr z, .asm_11b349 - cp $3 - jr z, .asm_11b349 - cp $6 - jr z, .asm_11b349 - - ld bc, Unknown_11b37b - jr .asm_11b34c - -.asm_11b344 - ld bc, Unknown_11b389 - jr .asm_11b34c - -.asm_11b349 - ld bc, Unknown_11b36d - -.asm_11b34c - call Function11b397 - ret -; 11b350 - -Unknown_11b350: - db $1a, $5e, $1a, $66, $1a, $6e, $1a, $76, $1a, $7e, $1a, $86, $1a, $8e - db $22, $5e, $22, $66, $22, $6e, $22, $76, $22, $7e, $22, $86, $22, $8e - db $ff - -Unknown_11b36d: - db $30, $31, $31, $31, $31, $31, $32, $40, $41, $41, $41, $41, $41, $42 -Unknown_11b37b: - db $30, $31, $31, $39, $39, $39, $39, $40, $41, $41, $39, $39, $39, $39 -Unknown_11b389: - db $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39 - -Function11b397: ; 11b397 - ld de, Sprites -.asm_11b39a - ld a, [hl] - cp $ff - ret z - ld a, [wc7d1] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [bc] - inc bc - ld [de], a - inc de - ld a, $5 - ld [de], a - inc de - jr .asm_11b39a -; 11b3b6 - -Function11b3b6: ; 11b3b6 -.asm_11b3b6 - ld a, [hl] - cp $ff - ret z - ld a, [wcd4d] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - push hl - ld l, c - ld h, b - ld a, [wcd4e] - add [hl] - inc bc - ld [de], a - inc de - pop hl - ld a, $5 - ld [de], a - inc de - jr .asm_11b3b6 -; 11b3d9 - -Function11b3d9: ; 11b3d9 - ld de, Sprites + $70 - push de - ld a, [wc7d2] - dec a - ld e, a - ld a, [wc7d1] - ld hl, wc7d0 - add [hl] - cp e - jr z, .asm_11b40d - ld hl, 0 - ld bc, $0070 - call AddNTimes - ld e, l - ld d, h - ld b, $0 - ld a, d - or e - jr z, .asm_11b40f - ld a, [wc7d2] - ld c, a -.asm_11b401 - ld a, e - sub c - ld e, a - ld a, d - sbc $0 - ld d, a - jr c, .asm_11b40f - inc b - jr .asm_11b401 - -.asm_11b40d - ld b, $70 - -.asm_11b40f - ld a, $15 - add b - pop hl - ld [hli], a - cp $41 - jr c, .asm_11b42b - ld a, [wJumptableIndex] - cp $4 - jr z, .asm_11b43b - cp $5 - jr z, .asm_11b43b - cp $7 - jr z, .asm_11b43b - cp $8 - jr z, .asm_11b43b - -.asm_11b42b - ld a, $9b - ld [hli], a - ld a, [wcd4c] - add $3c - ld [hli], a - ld a, [wcd4c] - add $1 - ld [hl], a - ret - -.asm_11b43b - ld a, $9b - ld [hli], a - ld a, $39 - ld [hli], a - xor a - ld [hl], a - ret -; 11b444 - -Function11b444: ; 11b444 - call Function11b44b - call Function11b45c - ret -; 11b44b - -Function11b44b: ; 11b44b - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - call UpdateTime - ret -; 11b45c - -Function11b45c: ; 11b45c -.asm_11b45c - call Function11b46a - call DelayFrame - ld a, [wJumptableIndex] - cp $4 - jr nz, .asm_11b45c - ret -; 11b46a - -Function11b46a: ; 11b46a - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_11b479 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 11b479 - -Jumptable_11b479: ; 11b479 - dw Function11b483 - dw Function11b570 - dw Function11b5c0 - dw Function11b5e0 - dw Function11b5e7 -; 11b483 - -Function11b483: ; 11b483 - call Function11b538 - ld hl, PlayerName - ld a, $5 -.asm_11b48b - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .asm_11b48b - ld de, $0030 - ld hl, PartyMon1Species - ld a, [wcd82] - dec a - push af -.asm_11b49f - and a - jr z, .asm_11b4a6 - add hl, de - dec a - jr .asm_11b49f - -.asm_11b4a6 - push bc - ld a, $30 -.asm_11b4a9 - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .asm_11b4a9 - pop de - push bc - ld a, [de] - ld [CurSpecies], a - call GetBaseData - ld hl, $001f - add hl, de - ld a, [hl] - ld [CurPartyLevel], a - ld hl, $0024 - add hl, de - push hl - ld hl, $000a - add hl, de - pop de - push de - ld b, $1 - predef CalcPkmnStats - pop de - ld h, d - ld l, e -rept 2 - dec hl -endr - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hl], a - pop bc - ld de, $000b - ld hl, PartyMonOT - pop af - push af -.asm_11b4e8 - and a - jr z, .asm_11b4ef - add hl, de - dec a - jr .asm_11b4e8 - -.asm_11b4ef - ld a, $a -.asm_11b4f1 - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .asm_11b4f1 - ld de, $000b - ld hl, PartyMonNicknames - pop af - push af -.asm_11b502 - and a - jr z, .asm_11b509 - add hl, de - dec a - jr .asm_11b502 - -.asm_11b509 - ld a, $a -.asm_11b50b - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .asm_11b50b - ld de, $002f - ld hl, $a600 - pop af -.asm_11b51b - and a - jr z, .asm_11b522 - add hl, de - dec a - jr .asm_11b51b - -.asm_11b522 - ld a, $0 - call GetSRAMBank - ld a, $2f -.asm_11b529 - push af - ld a, [hli] - ld [bc], a - inc bc - pop af - dec a - and a - jr nz, .asm_11b529 - call CloseSRAM - jp Function11ad8a -; 11b538 - -Function11b538: ; 11b538 - ld bc, BattleMonNick + 5 - ld a, [PlayerID] - ld [wcd2a], a - ld [bc], a - inc bc - ld a, [PlayerID + 1] - ld [wcd2b], a - ld [bc], a - inc bc - ld a, [wSecretID] - ld [wcd2c], a - ld [bc], a - inc bc - ld a, [wSecretID + 1] - ld [wcd2d], a - ld [bc], a - inc bc - ld a, [wcd2e] - ld [bc], a - inc bc - ld a, [wcd2f] - ld [bc], a - inc bc - ld a, [wcd30] - ld [bc], a - inc bc - ld a, [wd265] - ld [bc], a - inc bc - ret -; 11b570 - -Function11b570: ; 11b570 - call Function118007 - ld a, [ScriptVar] - and a - jr nz, .asm_11b57f - call Function11b585 - jp Function11ad8a - -.asm_11b57f - ld a, $4 - ld [wJumptableIndex], a - ret -; 11b585 - -Function11b585: ; 11b585 - ld a, $3 - ld [rSVBK], a - ld hl, $d800 - ld de, $c608 - ld bc, $008f - call CopyBytes - ld a, $1 - ld [rSVBK], a - ld a, $5 - call GetSRAMBank - ld de, $a800 - ld a, $1 - ld [de], a - inc de - ld hl, $c608 - ld bc, $008f - call CopyBytes - push de - pop hl - ld a, [hRTCMinutes] - ld [hli], a - ld a, [hRTCHours] - ld [hli], a - ld a, [hRTCDayLo] - ld [hli], a - ld a, [hRTCDayHi] - ld [hl], a - call CloseSRAM - ret -; 11b5c0 - -Function11b5c0: ; 11b5c0 - ld a, [wcd82] - dec a - ld [CurPartyMon], a - xor a - ld [wd10b], a - callba Functione039 - callba Function170807 - callba Function14a58 - jp Function11ad8a -; 11b5e0 - -Function11b5e0: ; 11b5e0 - xor a - ld [ScriptVar], a - jp Function11ad8a -; 11b5e7 - -Function11b5e7: ; 11b5e7 - ret -; 11b5e8 - -Function11b5e8: ; 11b5e8 - ld a, $0 - call GetSRAMBank - ld hl, wRTC - ld de, $c608 - ld bc, $0004 - call CopyBytes - call CloseSRAM - ld a, $5 - call GetSRAMBank - ld hl, $c608 - ld de, $b08c - ld bc, $0004 - call CopyBytes - ld a, $2 - ld [$a800], a - ld a, [$a81f] - ld [wcd2a], a - ld a, [$a820] - ld [wcd2b], a - ld a, [$a821] - ld [wcd2c], a - ld a, [$a822] - ld [wcd2d], a - ld a, [$a823] - ld [wcd2e], a - ld a, [$a824] - ld [wcd2f], a - ld a, [$a825] - ld [wcd30], a - ld a, [$a826] - ld [wcd31], a - call CloseSRAM - call Function11b44b - call Function11b64c - ret -; 11b64c - -Function11b64c: ; 11b64c -.asm_11b64c - call Function11b65a - call DelayFrame - ld a, [wJumptableIndex] - cp $1 - jr nz, .asm_11b64c - ret -; 11b65a - -Function11b65a: ; 11b65a - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_11b669 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 11b669 - -Jumptable_11b669: ; 11b669 - dw Function11b66d - dw Function11b6b3 -; 11b66d - -Function11b66d: ; 11b66d - call Function1180b8 - ld a, [ScriptVar] - and a - jr nz, .asm_11b6b0 - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld a, [StringBuffer2 + 10] - ld b, a - pop af - ld [rSVBK], a - ld a, b - and a - jr z, .asm_11b691 - cp $1 - jr nz, .asm_11b6b0 - call Function11b6b4 - jr .asm_11b6b0 - -.asm_11b691 - callba Function17081d - ld a, [ScriptVar] - and a - jr z, .asm_11b6b0 - xor a - ld [ScriptVar], a - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld a, $2 - ld [StringBuffer2 + 10], a - pop af - ld [rSVBK], a - -.asm_11b6b0 - jp Function11ad8a -; 11b6b3 - -Function11b6b3: ; 11b6b3 - ret -; 11b6b4 - -Function11b6b4: ; 11b6b4 - ld a, $5 - call GetSRAMBank - ld a, [wcd30] - ld [wc708], a - ld a, [wcd31] - ld [wc709], a - ld a, $8 - ld [BGMapBuffer], a - ld a, $c7 - ld [wcd21], a - ld a, $d - ld [CreditsTimer], a - ld a, $c6 - ld [wcd23], a - ld a, $3d - ld [wcd24], a - ld a, $c6 - ld [wcd25], a - ld a, $42 - ld [wcd26], a - ld a, $c6 - ld [wcd27], a - ld a, $47 - ld [wcd28], a - ld a, $c6 - ld [wcd29], a - ld a, $46 - ld [$c628], a - ld de, $c63d - ld c, $5 - callba Function17d073 - jr nc, .asm_11b70f - callba Function17d187 - -.asm_11b70f - ld de, $c63d - ld bc, $0105 - callba Function17d1e1 - jr nc, .asm_11b723 - callba Function17d187 - -.asm_11b723 - ld de, $c642 - ld c, $5 - callba Function17d073 - jr nc, .asm_11b736 - callba Function17d199 - -.asm_11b736 - ld de, $c642 - ld bc, $0105 - callba Function17d1e1 - jr nc, .asm_11b74a - callba Function17d199 - -.asm_11b74a - ld de, $c647 - ld c, $21 - callba Function17d073 - jr nc, .asm_11b75d - callba Function17d1ab - -.asm_11b75d - ld de, $c647 - ld bc, $0221 - callba Function17d1e1 - jr c, .asm_11b770 - ld a, b - cp $2 - jr nz, .asm_11b776 - -.asm_11b770 - callba Function17d1ab - -.asm_11b776 - ld de, $c668 - ld c, $5 - callba Function17d073 - jr nc, .asm_11b789 - callba Function17d1c9 - -.asm_11b789 - ld de, $c668 - ld bc, $0105 - callba Function17d1e1 - jr nc, .asm_11b79d - callba Function17d1c9 - -.asm_11b79d - ld a, [$c608 + 6] - cp $ff - jr nz, .asm_11b7a8 - xor a - ld [$c608 + 6], a - -.asm_11b7a8 - ld a, [wcd31] - ld [$c608 + 5], a - ld [CurSpecies], a - call GetBaseData - - ld hl, $c62c - ld a, [hl] - cp MIN_LEVEL - ld a, MIN_LEVEL - jr c, .asm_11b7c5 - ld a, [hl] - cp MAX_LEVEL - jr c, .asm_11b7c6 - ld a, MAX_LEVEL -.asm_11b7c5 - ld [hl], a -.asm_11b7c6 - ld [CurPartyLevel], a - - ld hl, $c616 + 1 - ld de, $c62c + 5 - ld b, $1 - predef CalcPkmnStats - ld de, $c62c + 5 - ld hl, $c62c + 3 - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hl], a - call Function11b98f - ret -; 11b7e5 - -Function11b7e5: ; 11b7e5 - ld a, [$c608 + 5] - ld [wc702], a - ld [CurPartySpecies], a - ld a, [wcd81] - ld [wc74e], a - ld hl, $c63d - ld de, wc724 - ld bc, $0005 - call CopyBytes - ld a, $50 - ld [de], a - ld a, [$c608 + 11] - ld [wc731], a - ld a, [$c608 + 12] - ld [wc732], a - ld hl, $c608 + 26 - ld a, [hli] - ld [wc72f], a - ld a, [hl] - ld [wc730], a - ld bc, $c608 + 5 - callba GetCaughtGender - ld a, c - ld [wc733], a - call SpeechTextBox - call FadeToMenu - callba Function108016 - callba Function17d1f1 - ld a, $1 - ld [wd1e9], a - ld a, $2 - ld [wLinkMode], a - callba Function421d8 - xor a - ld [wLinkMode], a - callba Function14a58 - ld a, $5 - call GetSRAMBank - ld a, $5 - ld [$a800], a - call CloseSRAM - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetMapTrigger - ld a, d - or e - jr z, .asm_11b872 - ld a, $1 - ld [de], a - -.asm_11b872 - call Function2b3c - call RestartMapMusic - ret -; 11b879 - -Function11b879: ; 11b879 - callba Function17089a - ld a, [ScriptVar] - and a - ret z - ld a, $5 - call GetSRAMBank - ld a, [$a800] - ld [ScriptVar], a - ld a, [$a890] - ld [wcd49], a - ld a, [$a891] - ld [wcd4a], a - ld a, [$a892] - ld [wcd4b], a - ld a, [$a893] - ld [wcd4c], a - call CloseSRAM - ld a, [ScriptVar] - and a - ret z - ld hl, wcd4c - ld a, [hRTCDayHi] - cp [hl] - ret nz - dec hl - ld a, [hRTCDayLo] - cp [hl] - ret nz - ld hl, wcd4a - ld a, [hRTCHours] - cp [hl] - jr nc, .asm_11b8d8 - ld a, $18 - sub [hl] - ld hl, hRTCHours - add [hl] - ld [wcd4c], a - ld a, [hRTCMinutes] - ld [wcd4b], a - xor a - ld [wcd4a], a - jr .asm_11b8e2 - -.asm_11b8d8 - ld a, [hRTCMinutes] - ld [wcd4b], a - ld a, [hRTCHours] - ld [wcd4c], a - -.asm_11b8e2 - xor a - ld l, a - ld h, a - ld b, a - ld d, a - ld a, [wcd4b] - ld e, a - ld a, [wcd4c] - ld c, $3c - call AddNTimes - add hl, de - push hl - xor a - ld l, a - ld h, a - ld b, a - ld d, a - ld a, [wcd49] - ld e, a - ld a, [wcd4a] - ld c, $3c - call AddNTimes - add hl, de - ld a, l - cpl - add $1 - ld e, a - ld a, h - cpl - adc $0 - ld d, a - pop hl - add hl, de - ld de, $ff88 - add hl, de - bit 7, h - ret z - ld a, $2 - ld [ScriptVar], a - ret -; 11b920 - -Function11b920: ; 11b920 - call Function11b44b - ld a, $5 - call GetSRAMBank - ld hl, $a81f - ld de, BattleMonNick + 5 - ld bc, $0008 - call CopyBytes - call CloseSRAM - call Function118000 - ret -; 11b93b - -Function11b93b: ; 11b93b - ld a, $5 - call GetSRAMBank - xor a - ld [$a800], a - ld hl, $a823 - ld de, wEnemyMoveStruct - ld bc, $008f - call CopyBytes - call CloseSRAM - ld a, wEnemyMoveStruct % $100 - ld [wcd20], a - ld a, wEnemyMoveStruct / $100 - ld [wcd21], a - ld a, $c611 % $100 - ld [wcd22], a - ld a, $c611 / $100 - ld [wcd23], a - ld a, $c641 % $100 - ld [wcd24], a - ld a, $c641 / $100 - ld [wcd25], a - ld a, $c646 % $100 - ld [wcd26], a - ld a, $c646 / $100 - ld [wcd27], a - ld a, $c64b % $100 - ld [wcd28], a - ld a, $c64b / $100 - ld [wcd29], a - call Function11b98f - callba Function14a58 - ret -; 11b98f - -Function11b98f: ; 11b98f - ld hl, PartyCount - ld a, [hl] - ld e, a - inc [hl] - ld a, [wcd20] - ld l, a - ld a, [wcd21] - ld h, a - inc hl - ld bc, PartySpecies - ld d, e -.loop1 - inc bc - dec d - jr nz, .loop1 - ld a, e - ld [CurPartyMon], a - ld a, [hl] - ld [bc], a - inc bc - ld a, $ff - ld [bc], a - ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 - ld a, e - ld [wcd2a], a -.loop2 - add hl, bc - dec a - and a - jr nz, .loop2 - ld e, l - ld d, h - ld a, [CreditsTimer] - ld l, a - ld a, [wcd23] - ld h, a - ld bc, PartyMon2 - PartyMon1 - call CopyBytes - ld hl, PartyMonOT - ld bc, NAME_LENGTH - ld a, [wcd2a] -.loop3 - add hl, bc - dec a - and a - jr nz, .loop3 - ld e, l - ld d, h - ld a, [wcd24] - ld l, a - ld a, [wcd25] - ld h, a - ld bc, PKMN_NAME_LENGTH - 1 - call CopyBytes - ld a, "@" - ld [de], a - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - ld a, [wcd2a] -.loop4 - add hl, bc - dec a - and a - jr nz, .loop4 - ld e, l - ld d, h - ld a, [wcd26] - ld l, a - ld a, [wcd27] - ld h, a - ld bc, PKMN_NAME_LENGTH - 1 - call CopyBytes - ld a, "@" - ld [de], a - ld hl, s0_a600 - ld bc, party_struct_length - 1 - ld a, [wcd2a] -.loop5 - add hl, bc - dec a - and a - jr nz, .loop5 - ld a, $0 - call GetSRAMBank - ld e, l - ld d, h - ld a, [wcd28] - ld l, a - ld a, [wcd29] - ld h, a - ld bc, party_struct_length - 1 - call CopyBytes - call CloseSRAM - ret -; 11ba38 - -Function11ba38: ; 11ba38 - callba CheckCurPartyMonFainted - ret c - xor a - ld [ScriptVar], a - ret -; 11ba44 - -Unknown_11ba44: - db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 - db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 - db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 - db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 - db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 - db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 - db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 - db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f - db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e - db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 - db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 - db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 - db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 - db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 - db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 - db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 - db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 - db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 - db $4a, $30, $0a, $0a, $61, $62, $0a, $58 - db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 - db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 - db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 - db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 - db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 - db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 - db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 - db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 - db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 - db $4a, $2f, $68, $87, $88, $89, $0a, $58 - db $4a, $3d, $6e, $6f, $70, $75, $76, $58 - db $4a, $30, $75, $76, $5c, $5d, $5e, $58 - db $4a, $2f, $71, $72, $73, $74, $6d, $58 - db $4a, $3d, $75, $76, $77, $8a, $8b, $58 - db $4a, $30, $66, $67, $65, $0a, $6a, $58 - db $4a, $2f, $83, $84, $0a, $83, $84, $58 - db $4a, $3d, $0a, $85, $82, $84, $0a, $58 - db $4a, $30, $41, $80, $40, $0a, $0a, $58 - db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 - db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 - db $ff - -Unknown_11bb7d: - db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 - db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 - db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 - db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 - db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 - db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 - db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 - db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 - db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 - db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 - db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 - db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 - db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 - db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 - db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 - db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 - db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 - db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 - db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 - db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 - db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 - db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 - db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 - db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 - db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 - db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 - db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 - db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 - db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 - db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 - db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 - db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 - db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 - db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 - db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 - db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 - db $ff - - -SECTION "bank47", ROMX, BANK[$47] - -INCLUDE "misc/battle_tower_47.asm" - -Function170be4: ; 170be4 - ld a, $5 - call GetSRAMBank - xor a - ld hl, $a894 - ld bc, $0008 - call ByteFill - call CloseSRAM - ret -; 170bf7 - -Function170bf7: ; 170bf7 - ld a, $5 - call GetSRAMBank - ld hl, $a89a - xor a - ld [hli], a - ld [hl], a - call CloseSRAM - ret -; 170c06 - -Function170c06: ; 170c06 - ld a, $5 - call GetSRAMBank - ld hl, $a894 - ld a, [wBattleResult] - and a - jr nz, .asm_170c15 - inc [hl] - -.asm_170c15 -rept 2 - inc hl -endr - ld a, [$a89b] - add [hl] - ld [hld], a - ld a, [$a89a] - adc [hl] - ld [hli], a - jr nc, .asm_170c27 - ld a, $ff - ld [hld], a - ld [hli], a - -.asm_170c27 - inc hl - push hl - ld de, 0 - xor a - ld [wd265], a -.asm_170c30 - ld hl, PartyMon1HP - ld a, [wd265] - call GetPartyLocation - ld a, [hli] - ld b, a - ld c, [hl] -rept 2 - inc hl -endr - ld a, [hld] - sub c - ld c, a - ld a, [hl] - sbc b - ld b, a - push de - pop hl - add hl, bc - push hl - pop de - jr c, .asm_170c58 - ld a, [wd265] - inc a - ld [wd265], a - cp $3 - jr c, .asm_170c30 - jr .asm_170c5b - -.asm_170c58 - ld de, -1 - -.asm_170c5b - pop hl - inc hl - ld a, e - add [hl] - ld [hld], a - ld a, d - adc [hl] - ld [hli], a - jr nc, .asm_170c69 - ld a, $ff - ld [hld], a - ld [hli], a - -.asm_170c69 - inc hl - push hl - ld b, $0 - ld c, $0 -.asm_170c6f - ld hl, PartyMon1HP - ld a, b - push bc - call GetPartyLocation - pop bc - ld a, [hli] - or [hl] - jr nz, .asm_170c7d - inc c - -.asm_170c7d - inc b - ld a, b - cp $3 - jr c, .asm_170c6f - pop hl - ld a, [hl] - add c - ld [hl], a - call CloseSRAM - ret -; 170c8b - -Function170c8b: ; 170c8b - ld hl, LastPlayerCounterMove - ld b, $5 -.asm_170c90 - ld a, [hl] - xor $ff - ld [hli], a - dec b - jr nz, .asm_170c90 - ret -; 170c98 - -Function170c98: ; 170c98 - ld c, $3 - ld hl, $c608 + 13 -.asm_170c9d - push hl - ld a, [hl] - cp $fc - jr c, .asm_170ca6 - ld a, $1 - ld [hl], a - -.asm_170ca6 - inc hl - ld b, $3 -.asm_170ca9 - ld a, [hl] - and a - jr z, .asm_170cb1 - cp $fc - jr c, .asm_170cb9 - -.asm_170cb1 - xor a - ld [hl], a - inc hl - dec b - jr nz, .asm_170cb1 - jr .asm_170cbd - -.asm_170cb9 - inc hl - dec b - jr nz, .asm_170ca9 - -.asm_170cbd - pop hl - ld de, $003b - add hl, de - dec c - jr nz, .asm_170c9d - ret -; 170cc6 - -Function170cc6: ; 170cc6 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld hl, LZ_170d16 - ld de, wd000 - call Decompress - ld a, $1 - ld [rVBK], a - ld de, wd000 - ld hl, VTiles0 - lb bc, $6, $c1 - call Get2bpp - xor a - ld [rVBK], a - ld hl, LZ_1715a4 - ld de, wd000 - call Decompress - ld de, Unkn1Pals - ld hl, VTiles0 - lb bc, $6, $53 - call Get2bpp - pop af - ld [rSVBK], a - ret -; 170d02 - -Function170d02: ; 170d02 - ld a, $1 - ld [rVBK], a - ld de, GFX_171848 - ld hl, VTiles1 tile $41 - lb bc, BANK(GFX_171848), $18 - call Get2bpp - xor a - ld [rVBK], a - ret -; 170d16 - -LZ_170d16: -INCBIN "gfx/unknown/170d16.2bpp.lz" - -LZ_1715a4: -INCBIN "gfx/unknown/1715a4.2bpp.lz" - -GFX_171848: -INCBIN "gfx/unknown/171848.2bpp" - -Function1719c8: ; 1719c8 (5c:59c8) - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function1719d6 - pop af - ld [hInMenu], a - ret - -Function1719d6: ; 1719d6 (5c:59d6) - callba Function1183cb - call Function1719ed - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - call Function171a11 - pop af - ld [rSVBK], a ; $ff00+$70 - ret - -Function1719ed: ; 1719ed (5c:59ed) - xor a - ld [wcd49], a - ld [wcd4a], a - dec a - ld [wcd4b], a - call WhiteBGMap - call ClearSprites - callba Function171d2b - callba Function104061 - callba Function8cf53 - ret - -Function171a11: ; 171a11 (5c:5a11) - call JoyTextDelay - ld a, [wcd49] - bit 7, a - jr nz, .asm_171a2c - call Function171a36 - callba Function8cf69 - callba Function104061 - jr Function171a11 -.asm_171a2c - callba Function8cf53 - call ClearSprites - ret - -Function171a36: ; 171a36 (5c:5a36) - ld a, [wcd49] - ld e, a - ld d, 0 - ld hl, Jumptable_171a45 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_171a45: ; 171a45 (5c:5a45) - dw Function171a95 - dw Function171ac9 - dw Function171a5d - dw Function171ad7 - dw Function171a5d - dw Function171aec - dw Function171b4b - dw Function171b85 - dw Function171bcc - dw Function171c2c - dw Function171c39 - dw Function171c41 - - -Function171a5d: ; 171a5d (5c:5a5d) - ld a, [wc821] - bit 1, a - jr nz, .asm_171a6a - bit 0, a - ret nz - jp Function171c66 -.asm_171a6a - ld a, $0 - call Function3e32 - ld [wc300], a - ld a, l - ld [wc301], a - ld a, h - ld [wc302], a - ld a, $a - call Function3e32 - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $1 - ld [rSVBK], a ; $ff00+$70 - callba Function118452 - pop af - ld [rSVBK], a ; $ff00+$70 - ld a, $a - ld [wcd49], a - ret - -Function171a95: ; 171a95 (5c:5a95) - callba Function171ccd - hlcoord 2, 8 - ld de, String_171aa7 - call PlaceString - jp Function171c66 -; 171aa7 (5c:5aa7) - -String_171aa7: ; 171aa7 - db "モバイルアダプタに" - next "せつぞく しています" - next "しばらく おまちください" - db "@" -; 171ac9 - -Function171ac9: ; 171ac9 (5c:5ac9) - ld de, wcd81 - ld hl, $5c - ld a, $2 - call Function3e32 - jp Function171c66 - -Function171ad7: ; 171ad7 (5c:5ad7) - xor a - ld hl, $c608 - ld bc, $66 - call ByteFill - ld de, $c608 - ld a, $c - call Function3e32 - jp Function171c66 - -Function171aec: ; 171aec (5c:5aec) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $1 - ld [rSVBK], a ; $ff00+$70 - callba Function118452 - pop af - ld [rSVBK], a ; $ff00+$70 - hlcoord 2, 6 - ld a, $8 -.asm_171b01 - push af - push hl - xor a - ld bc, $10 - call ByteFill - pop hl - ld de, $14 - add hl, de - pop af - dec a - jr nz, .asm_171b01 - hlcoord 2, 7 - ld a, $3 - ld de, $c608 -.asm_171b1b - push af - push hl - ld a, [de] - and a - jr z, .asm_171b34 - ld a, [wcd4b] - inc a - ld [wcd4b], a - push hl - call Function171b42 - pop hl - ld bc, $ffec - add hl, bc - call Function171b42 -.asm_171b34 - pop hl - ld bc, $14 -rept 3 - add hl, bc -endr - pop af - dec a - jr nz, .asm_171b1b - jp Function171c66 - -Function171b42: ; 171b42 (5c:5b42) - ld a, [de] - inc de - and a - ret z - sub $20 - ld [hli], a - jr Function171b42 - -Function171b4b: ; 171b4b (5c:5b4b) - lb de, $40, $10 - ld a, $1d - call Function3b2a - ld hl, $c - add hl, bc - ld a, $8 - ld [hl], a - lb de, $40, $98 - ld a, $1d - call Function3b2a - ld hl, $c - add hl, bc - ld a, $9 - ld [hl], a - lb de, $8a, $70 - ld a, $1d - call Function3b2a - ld hl, $c - add hl, bc - ld a, $a - ld [hl], a - ld a, $4 - ld [wcd23], a - ld a, $8 - ld [wcd24], a - jp Function171c66 - -Function171b85: ; 171b85 (5c:5b85) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and $2 - jp nz, Function171b9f - ld a, [hl] - and $1 - jp nz, Function171bbd - ld a, [hl] - and $40 - jr nz, asm_171ba5 - ld a, [hl] - and $80 - jr nz, asm_171baf - ret - -Function171b9f: ; 171b9f (5c:5b9f) - ld a, $80 - ld [wcd49], a - ret -asm_171ba5: ; 171ba5 (5c:5ba5) - ld a, [wcd4a] - and a - ret z - dec a - ld [wcd4a], a - ret -asm_171baf: ; 171baf (5c:5baf) - ld a, [wcd4b] - ld c, a - ld a, [wcd4a] - cp c - ret z - inc a - ld [wcd4a], a - ret - -Function171bbd: ; 171bbd (5c:5bbd) - call PlayClickSFX - ld a, $8 - ld [wcd23], a - xor a - ld [wcd24], a - jp Function171c66 - -Function171bcc: ; 171bcc (5c:5bcc) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and $2 - jp nz, Function171bdc - ld a, [hl] - and $1 - jp nz, Function171beb - ret - -Function171bdc: ; 171bdc (5c:5bdc) - ld a, $4 - ld [wcd23], a - ld a, $8 - ld [wcd24], a - ld hl, wcd49 - dec [hl] - ret - -Function171beb: ; 171beb (5c:5beb) - ld a, $5 - call GetSRAMBank - ld a, [wcd4a] - ld [$aa4a], a - call CloseSRAM - ld hl, MenuDataHeader_171c6b - call LoadMenuDataHeader - call Function1cbb - call GetMemTileCoord - callba Function104061 - hlcoord 1, 14 - ld de, String_171c73 - call PlaceString - ld a, [wcd4a] - cp $2 - jr z, .asm_171c1f - ld a, $8 - jr .asm_171c21 -.asm_171c1f - ld a, $c -.asm_171c21 - ld [wcd24], a - ld a, $1e - ld [wcd4c], a - call Function171c66 - -Function171c2c: ; 171c2c (5c:5c2c) - ld hl, wcd4c - dec [hl] - ret nz - call ExitMenu - call WhiteBGMap - jr asm_171c60 - -Function171c39: ; 171c39 (5c:5c39) - ld a, $28 - ld [wcd4c], a - call Function171c66 - -Function171c41: ; 171c41 (5c:5c41) - ld hl, wcd4c - dec [hl] - ret nz - call WhiteBGMap - callba Function106462 - callba Function106464 - ld a, $2 - ld [wc303], a - callba Function17f555 -asm_171c60: ; 171c60 (5c:5c60) - ld a, $80 - ld [wcd49], a - ret - -Function171c66: ; 171c66 (5c:5c66) - ld hl, wcd49 - inc [hl] - ret -; 171c6b (5c:5c6b) - -MenuDataHeader_171c6b: ; 171c6b - db $40 ; flags - db 12, 0 ; start coords - db 17, 19 ; end coords - dw NULL - db 0 ; default option -; 171c73 - -String_171c73: ; 171c73 - db "モバイルセンターを けってい" - next "しました@" -; 171c87 - -Function171c87: ; 171c87 (5c:5c87) - call DisableLCD - ld hl, GFX_171db1 - ld de, VTiles2 tile $00 - ld bc, $6e0 - call CopyBytes - ld hl, LZ_172abd - ld de, VTiles0 tile $00 - call Decompress - call EnableLCD - ld hl, Tilemap_172491 - decoord 0, 0 - ld bc, $168 - call CopyBytes - ld hl, Attrmap_1727ed - decoord 0, 0, AttrMap - ld bc, $168 - call CopyBytes - hlcoord 3, 2 - ld de, String_172e31 - call PlaceString - hlcoord 3, 16 - ld de, String_172e3f - call PlaceString - ret - -Function171ccd: ; 171ccd (5c:5ccd) - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - ld hl, Palette_171d71 - ld de, Unkn1Pals - ld bc, $40 - call CopyBytes - ld hl, MovementAnimation - ld a, $ff - ld [hli], a - ld a, $7f - ld [hl], a - call SetPalettes - pop af - ld [rSVBK], a ; $ff00+$70 - ret - -Function171cf0: ; 171cf0 (5c:5cf0) - xor a - hlcoord 4, 15 -rept 2 - ld [hli], a -endr - ld a, [wcd4b] - xor $1 - ld [wcd4b], a - and a - jr nz, .asm_171d16 - ld hl, Tilemap_17251d - decoord 0, 7 - ld bc, $8c - call CopyBytes - hlcoord 3, 16 - ld de, String_172e3f - jp PlaceString -.asm_171d16 - ld hl, Tilemap_1725f9 - decoord 0, 7 - ld bc, $8c - call CopyBytes - hlcoord 3, 16 - ld de, String_172e4e - jp PlaceString - -Function171d2b: ; 171d2b (5c:5d2b) - call DisableLCD - ld hl, GFX_171db1 - ld de, VTiles2 tile $00 - ld bc, $6e0 - call CopyBytes - ld hl, LZ_172abd - ld de, VTiles0 tile $00 - call Decompress - call EnableLCD - ld hl, Tilemap_172685 - decoord 0, 0 - ld bc, $168 - call CopyBytes - ld hl, Attrmap_172955 - decoord 0, 0, AttrMap - ld bc, $168 - call CopyBytes - hlcoord 2, 2 - ld de, String_172e5d - call PlaceString - hlcoord 14, 16 - ld de, String_172e58 - call PlaceString - ret -; 171d71 (5c:5d71) - -Palette_171d71: - RGB 0, 0, 0 - RGB 3, 0, 0 - RGB 5, 0, 0 - RGB 31, 31, 29 - RGB 0, 2, 10 - RGB 2, 10, 21 - RGB 0, 0, 0 - RGB 10, 26, 31 - RGB 0, 0, 0 - RGB 0, 7, 8 - RGB 31, 8, 0 - RGB 1, 17, 15 - RGB 31, 16, 0 - RGB 31, 22, 0 - RGB 31, 27, 0 - RGB 31, 31, 0 - RGB 31, 18, 6 - RGB 0, 3, 0 - RGB 0, 9, 0 - RGB 0, 12, 0 - RGB 0, 16, 0 - RGB 0, 22, 0 - RGB 0, 25, 0 - RGB 0, 27, 0 - RGB 5, 5, 16 - RGB 8, 19, 28 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 31, 29 - RGB 21, 21, 20 - RGB 11, 11, 10 - RGB 0, 0, 0 -GFX_171db1: -INCBIN "gfx/unknown/171db1.2bpp" -Tilemap_172491: -INCBIN "gfx/unknown/172491.tilemap" -Tilemap_17251d: -INCBIN "gfx/unknown/17251d.tilemap" -Tilemap_1725f9: -INCBIN "gfx/unknown/1725f9.tilemap" -Tilemap_172685: -INCBIN "gfx/unknown/172685.tilemap" -Attrmap_1727ed: -INCBIN "gfx/unknown/1727ed.attrmap" -Attrmap_172955: -INCBIN "gfx/unknown/172955.attrmap" -LZ_172abd: -INCBIN "gfx/pokedex/slowpoke.2bpp.lz" - -String_172e31: ; 172e31 - db "パスワード", $1f, "いれてください@" -String_172e3f: ; 172e3f - db "きりかえ やめる けってい@" -String_172e4e: ; 172e4e - db "きりかえ やめる " -String_172e58: - db "けってい@" -String_172e5d: ; 172e5d - db "せつぞくする モバイルセンターを" - next "えらんで ください@" -; 172e78 - - -Function172e78: ; 172e78 (5c:6e78) - ld a, $7f - hlcoord 0, 0 - ld bc, $168 - call ByteFill - ld a, $7 - hlcoord 0, 0, AttrMap - ld bc, $168 - call ByteFill - call DisableLCD - ld hl, GFX_172f1f - ld de, VTiles2 tile $00 - ld bc, $610 - call CopyBytes - call EnableLCD - ld hl, Tilemap_1733af - decoord 0, 0 - ld bc, $168 - call CopyBytes - ld hl, Attrmap_173517 - decoord 0, 0, AttrMap - ld bc, $168 - call CopyBytes - ret -; 172eb9 (5c:6eb9) - -Function172eb9: - ld a, [rSVBK] ; $ff00+$70 - push af - ld a, $5 - ld [rSVBK], a ; $ff00+$70 - ld hl, Palette_172edf - ld de, Unkn1Pals - ld bc, $40 - call CopyBytes - ld hl, Palette_172edf - ld de, BGPals - ld bc, $40 - call CopyBytes - call SetPalettes - pop af - ld [rSVBK], a ; $ff00+$70 - ret -; 172edf (5c:6edf) - -Palette_172edf: - RGB 5, 12, 17 - RGB 31, 31, 31 - RGB 18, 25, 28 - RGB 10, 17, 21 - RGB 6, 13, 18 - RGB 31, 31, 31 - RGB 20, 26, 28 - RGB 12, 19, 23 - RGB 3, 10, 16 - RGB 31, 31, 31 - RGB 6, 13, 18 - RGB 20, 26, 28 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 5, 5, 16 - RGB 8, 19, 28 - RGB 0, 0, 0 - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 0, 0, 0 - RGB 0, 0, 0 - RGB 0, 0, 0 - -GFX_172f1f: -INCBIN "gfx/unknown/172f1f.2bpp" - -Tilemap_1733af: -IF DEF(CORRUPT_TILES) -INCBIN "gfx/unknown/1733af_corrupt.tilemap" -ELSE -INCBIN "gfx/unknown/1733af.tilemap" -ENDC - -Attrmap_173517: -INCBIN "gfx/unknown/173517.attrmap" diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm new file mode 100755 index 000000000..c7efdac3c --- /dev/null +++ b/misc/mobile_46.asm @@ -0,0 +1,8033 @@ +SECTION "bank46", ROMX, BANK[$46] + +Function118000: ; 118000 + ld a, $1 + ld [wcd38], a + jr asm_11800b + +Function118007: ; 118007 + xor a + ld [wcd38], a + +asm_11800b + call Function1183cb + ld a, $18 + ld [wcd33], a + ld a, $19 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_118024 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $1b + jr c, .asm_118037 + ld a, [wcd34] + ld [wcf66], a + +.asm_118037 + call Function1184a5 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_118024 + pop af + ld [rSVBK], a + call Function118452 + call Function222a +Function11805e: ; 11805e (46:405e) + ret +; 11805f + +Function11805f: ; 11805f + ld a, $1 + ld [wcd38], a + call Function1183cb + ld a, $18 + ld [wcd33], a + ld a, $19 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11807d + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $1b + jr c, .asm_118090 + ld a, [wcd34] + ld [wcf66], a + +.asm_118090 + call Function11857c + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_11807d + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 1180b8 + +Function1180b8: ; 1180b8 + call Function1183cb + ld a, $22 + ld [wcd33], a + ld a, $23 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_1180d1 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $28 + jr c, .asm_1180e4 + ld a, [wcd34] + ld [wcf66], a + +.asm_1180e4 + ld a, [wcf66] + cp $10 + jr c, .asm_1180f2 + cp $16 + jr nc, .asm_1180f2 + call Function11884c + +.asm_1180f2 + call Function1184ec + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_1180d1 + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 11811a + +Function11811a: ; 11811a + ld a, 1 + ld [wcd38], a + jr Function118125 + +Function118121: ; 118121 + xor a + ld [wcd38], a + +Function118125: ; 118125 + call Function1183cb + ld a, $3 + ld [wcd33], a + ld a, $d + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11813e + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $f + jr c, .asm_118151 + ld a, [wcd34] + ld [wcf66], a + +.asm_118151 + call Function11854d + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_11813e + xor a + ld [Unkn1Pals], a + pop af + ld [rSVBK], a + call Function118452 + call Function118180 + call Function222a + ret +; 118180 + +Function118180: ; 118180 + ld a, [ScriptVar] + and a + ret nz + ld a, [wcd38] + and a + ret z + ld a, $5 + call GetSRAMBank + ld hl, wcd69 + ld de, $a89c + ld bc, $0016 + call CopyBytes + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld de, $d202 + ld c, $96 + callba Function17d0b3 + jr c, .asm_1181d0 + ld de, $d202 + ld bc, $0196 + callba Function17d1e1 + jr c, .asm_1181d0 + ld hl, $d202 + ld de, $a8b2 + ld bc, $0096 + call CopyBytes +.asm_1181c9 + pop af + ld [rSVBK], a + call CloseSRAM + ret + +.asm_1181d0 + ld a, $d3 + ld [wc300], a + ld [ScriptVar], a + jr .asm_1181c9 +; 1181da + +Function1181da: ; 1181da + call Function1183cb + ld a, $2 + ld [wcd38], a + ld a, $21 + ld [wcd33], a + ld a, $22 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_1181f8 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $28 + jr c, .asm_11820b + ld a, [wcd34] + ld [wcf66], a + +.asm_11820b + call Function1185c3 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_1181f8 + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 118233 + +Function118233: ; 118233 + call Function1183cb + ld a, $1b + ld [wcd33], a + ld a, $1c + ld [wcd34], a + ld a, $6 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_11824c + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $1e + jr c, .asm_11825f + ld a, [wcd34] + ld [wcf66], a + +.asm_11825f + call Function118624 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_11824c + pop af + ld [rSVBK], a + call Function118452 + ret +; 118284 + +Function118284: ; 118284 + call Function1183cb + ld a, $19 + ld [wcd33], a + ld a, $1e + ld [wcd34], a + ld a, $5 + ld [wc3f0], a + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $3 + ld [rSVBK], a ; $ff00+$70 +.asm_11829d + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $20 + jr c, .asm_1182b0 + ld a, [wcd34] + ld [wcf66], a +.asm_1182b0 + call Function1186f5 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_11829d + pop af + ld [rSVBK], a ; $ff00+$70 + call Function118452 + ret +; 1182d5 (46:42d5) + + +Function1182d5: ; 1182d5 + call Function1183cb + ld a, $18 + ld [wcd33], a + ld a, $19 + ld [wcd34], a + ld a, $4 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_1182ee + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $1b + jr c, .asm_118301 + ld a, [wcd34] + ld [wcf66], a + +.asm_118301 + call Function118746 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_1182ee + pop af + ld [rSVBK], a + call Function118452 + call Function222a + ret +; 118329 + +Function118329: ; 118329 + call Function1183cb + ld a, $15 + ld [wcd33], a + ld a, $16 + ld [wcd34], a + ld a, $6 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_118342 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $18 + jr c, .asm_118355 + ld a, [wcd34] + ld [wcf66], a + +.asm_118355 + call Function118671 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_118342 + pop af + ld [rSVBK], a + call Function118452 + ret +; 11837a + +Function11837a: ; 11837a + call Function1183cb + ld a, $16 + ld [wcd33], a + ld a, $17 + ld [wcd34], a + ld a, $6 + ld [wc3f0], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a +.asm_118393 + call JoyTextDelay + call Function118473 + ld a, [wcf66] + cp $19 + jr c, .asm_1183a6 + ld a, [wcd34] + ld [wcf66], a + +.asm_1183a6 + call Function1186b2 + call Function11a8fa + callba Function115dd3 + callba Function11619d + call DelayFrame + ld a, [wcf66] + ld hl, wcd33 + cp [hl] + jr nz, .asm_118393 + pop af + ld [rSVBK], a + call Function118452 + ret +; 1183cb + +Function1183cb: ; 1183cb + di + ld a, [rIE] + ld [wcd32], a + call DoubleSpeed + xor a + ld [rIF], a + ld [wc300], a + ld [wc301], a + ld [wc302], a + ld [wcd80], a + ld [wcd65], a + ld [wcd66], a + ld [wcd67], a + ld [wcd68], a + ld [wPartyMonMenuIconAnims + 6], a + ld [wcd89], a + ld [wcd8a], a + ld [wcd8b], a + ld [wc3ec], a + ld [wc3ed], a + ld [wc3ee], a + ld [wc3ef], a + ld hl, VramState + ld a, [hl] + ld [wcd7f], a + set 1, [hl] + ld a, $f + ld [rIE], a + ld a, $1 + ld [$ffc9], a + ld [hMobile], a + ei + callba Function106462 + callba Function106464 + callba Function115d99 + callba Function11615a + ld a, $5 + call GetSRAMBank + xor a + ld [$bfff], a + call CloseSRAM + ret +; 118440 + +Function118440: ; 118440 + push af + ld a, $5 + call GetSRAMBank + ld a, [$bfff] + inc a + ld [$bfff], a + call CloseSRAM + pop af + ret +; 118452 + +Function118452: ; 118452 + di + xor a + ld [$ffc9], a + ld [hMobile], a + ld [hVBlank], a + call NormalSpeed + xor a + ld [rIF], a + ld a, [wcd32] + ld [rIE], a + ei + ld a, [wcd7f] + ld [VramState], a + ld a, [wc300] + ld [ScriptVar], a + ret +; 118473 + +Function118473: ; 118473 + ld a, [wcd65] + and a + ret z + ld a, [wcd66] + inc a + ld [wcd66], a + cp $3c + ret nz + xor a + ld [wcd66], a + ld a, [wcd67] + inc a + ld [wcd67], a + cp $3c + ret nz + ld a, [wcd68] + inc a + ld [wcd68], a + cp $63 + jr z, .asm_1184a0 + xor a + ld [wcd67], a + ret + +.asm_1184a0 + xor a + ld [wcd65], a + ret +; 1184a5 + +Function1184a5: ; 1184a5 + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_1184b4 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1184b4 + +Jumptable_1184b4: ; 1184b4 + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118a8f + dw Function11878d + dw Function118d80 + dw Function118d9b + dw Function11878d + dw Function118ded + dw Function118e6d + dw Function11878d + dw Function11984e + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function118e76 + dw Function118e87 + dw Function118e76 +; 1184ec + +Function1184ec: ; 1184ec + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_1184fb +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1184fb + +Jumptable_1184fb: ; 1184fb + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function119954 + dw Function11878d + dw Function119973 + dw Function11878d + dw Function119987 + dw Function11878d + dw Function1199b4 + dw Function1199ca + dw Function11878d + dw Function1199e2 + dw Function119b0d + dw Function11878d + dw Function119b6b + dw Function119b3b + dw Function11878d + dw Function119b52 + dw Function11878d + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function118e76 + dw Function118e87 + dw Function119b45 + dw Function11878d + dw Function119ac9 + dw Function118e76 +; 11854d + +Function11854d: ; 11854d + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_11855c +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11855c + +Jumptable_11855c: ; 11855c + dw Function118922 + dw Function118936 + dw Function118982 + dw Function11805e + dw Function119ca2 + dw Function119cab + dw Function119cb8 + dw Function119cc3 + dw Function119cdf + dw Function119cec + dw Function119c97 + dw Function119cab + dw Function119cb8 + dw Function118e76 + dw Function118e87 + dw Function118e76 +; 11857c + +Function11857c: ; 11857c + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_11858b +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11858b + +Jumptable_11858b: ; 11858b + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118a7a + dw Function11878d + dw Function11891c + dw Function1198ee + dw Function1198f7 + dw Function11878d + dw Function119937 + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function118e76 + dw Function118e87 + dw Function118e76 +; 1185c3 + +Function1185c3: ; 1185c3 + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_1185d2 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1185d2 + +Jumptable_1185d2: ; 1185d2 + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118aa4 + dw Function11878d + dw Function118e92 + dw Function11878d + dw Function118eb0 + dw Function118ec6 + dw Function118f0d + dw Function118f14 + dw Function118f5e + dw Function11878d + dw Function118fc0 + dw Function11878d + dw Function119054 + dw Function1190d0 + dw Function11878d + dw Function1190ec + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function118e76 + dw Function118e87 + dw Function119cc3 + dw Function119cdf + dw Function119cec + dw Function11914e + dw Function118e76 +; 118624 + +Function118624: ; 118624 + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_118633 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 118633 + +Jumptable_118633: ; 118633 + dw Function118866 + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118aa4 + dw Function11878d + dw Function118e92 + dw Function11878d + dw Function11915d + dw Function118f68 + dw Function11878d + dw Function119009 + dw Function11878d + dw Function119054 + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function118e76 + dw Function118e87 + dw Function118e76 +; 118671 + +Function118671: ; 118671 + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_118680 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 118680 + +Jumptable_118680: ; 118680 + dw Function118866 + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function119380 + dw Function119388 + dw Function1193a0 + dw Function11878d + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function118e76 + dw Function118e87 + dw Function118e76 +; 1186b2 + +Function1186b2: ; 1186b2 + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_1186c1 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1186c1 + +Jumptable_1186c1: ; 1186c1 + dw Function118866 + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function119380 + dw Function1193e3 + dw Function1193fb + dw Function11878d + dw Function119413 + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function118e76 + dw Function118e87 + dw Function118e76 +; 1186f5 + +Function1186f5: ; 1186f5 (46:46f5) + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_118704 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 118704 (46:4704) + +Jumptable_118704: ; 118704 (46:4704) + dw Function11886a + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118abc + dw Function11878d + dw Function119451 + dw Function1195f8 + dw Function119612 + dw Function119629 + dw Function119648 + dw Function11878d + dw Function118e6d + dw Function11878d + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function11967d + dw Function119685 + dw Function119665 + dw Function11966d + dw Function118e76 + dw Function118e87 + dw Function118e76 +; 118746 (46:4746) + +Function118746: ; 118746 + ld a, [wcf66] + ld e, a + ld d, 0 + ld hl, Jumptable_118755 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 118755 + +Jumptable_118755: ; 118755 + dw Function11886e + dw Function118880 + dw Function11878d + dw Function1188b0 + dw Function11878d + dw Function1188b8 + dw Function11878d + dw Function1188c0 + dw Function11878d + dw Function1188c8 + dw Function11878d + dw Function118903 + dw Function118ad0 + dw Function11878d + dw Function1196f2 + dw Function1197c9 + dw Function1197dc + dw Function11878d + dw Function118e6d + dw Function11878d + dw Function119800 + dw Function118e76 + dw Function118e7e + dw Function11878d + dw Function11805e + dw Function118e76 + dw Function118e87 + dw Function118e76 +; 11878d + +Function11878d: ; 11878d (46:478d) + ld a, [wc821] + bit 1, a + jr nz, .asm_1187af + bit 2, a + jr nz, .asm_1187d1 + bit 0, a + jr nz, .asm_1187aa + ld a, [wcd89] + and $1 + jr z, .asm_1187a7 + ld a, $3 + ld [rSVBK], a ; $ff00+$70 +.asm_1187a7 + jp Function119e2e +.asm_1187aa + call Function118821 + ret c + ret +.asm_1187af + ld a, $0 + call Function3e32 + ld [wc300], a + ld a, l + ld [wc301], a + ld a, h + ld [wc302], a + ld a, $a + call Function3e32 + ld a, [wc3f0] + ld [wPartyMonMenuIconAnims + 5], a + ld a, [wcd34] + ld [wcf66], a + ret +.asm_1187d1 + ld hl, wcd89 + bit 0, [hl] + jr nz, .asm_118803 + set 0, [hl] + ld a, $6 + ld [rSVBK], a ; $ff00+$70 + ld de, Unkn1Pals + ld bc, $1000 + ld a, [hl] + sla a + jr c, .asm_1187f9 + sla a + jr c, .asm_1187fd + sla a + jr c, .asm_1187f5 + ld a, $24 + jr .asm_1187ff +.asm_1187f5 + ld a, $28 + jr .asm_1187ff +.asm_1187f9 + ld a, $2a + jr .asm_1187ff +.asm_1187fd + ld a, $2c +.asm_1187ff + call Function3e32 + ret +.asm_118803 + ld a, $d3 + +Function118805: ; 118805 (46:4805) + ld [wc300], a + xor a + ld [wc301], a + ld [wc302], a + ld a, $a + call Function3e32 + ld a, [wc3f0] + ld [wPartyMonMenuIconAnims + 5], a + ld a, [wcd34] + ld [wcf66], a + ret + +Function118821: ; 118821 (46:4821) + ld a, [wPartyMonMenuIconAnims + 5] + cp $3 + jr c, .asm_11884a + cp $4 + jr z, .asm_11884a + ld a, [hJoyDown] ; $ff00+$a8 + cp $5 + jr nz, .asm_11884a + ld a, $a + call Function3e32 + ld a, $a + ld [wc300], a + ld a, [wc3f0] + ld [wPartyMonMenuIconAnims + 5], a + ld a, [wcd34] + ld [wcf66], a + scf + ret +.asm_11884a + and a + ret +; 11884c (46:484c) + +Function11884c: ; 11884c + ld a, [hJoyDown] + cp $5 + jr nz, .asm_118864 + ld a, $a + call Function3e32 + ld a, $a + ld [wc300], a + ld a, [wcd34] + ld [wcf66], a + scf + ret + +.asm_118864 + and a + ret +; 118866 + +Function118866: + ld a, 2 + jr asm_11886f + +Function11886a: ; 11886a (46:486a) + ld a, 1 + jr asm_11886f +; 11886e (46:486e) + +Function11886e: + xor a + +asm_11886f + ld [BGMapPalBuffer], a + ld a, $0 + ld [wcd3c], a + call Function119e2e + ld a, [wcd33] + ld [wcd45], a + +Function118880: ; 118880 (46:4880) + call Function119ed8 + ret c + xor a + ld [wcf64], a + ld [wc807], a + ld de, wcd81 + ld hl, $46 + ld a, $2 + jp Function119e2b +; 118896 (46:4896) + +Function118896: ; 118896 + ld a, [wc821] + bit 1, a + jr nz, .asm_1188a5 + bit 2, a + jr nz, .asm_1188a5 + bit 0, a + jr z, .asm_1188aa + +.asm_1188a5 + ld a, $34 + jp Function119e2b + +.asm_1188aa + call Function119e2e + jp Function119e2e +; 1188b0 + +Function1188b0: ; 1188b0 (46:48b0) + ld de, wPartyMonMenuIconAnims + 48 + 2 + ld a, $c + jp Function119e2b + +Function1188b8: ; 1188b8 (46:48b8) + ld de, wc3ac + ld a, $e + jp Function119e2b + +Function1188c0: ; 1188c0 (46:48c0) + ld de, wc3cd + ld a, $10 + jp Function119e2b + +Function1188c8: ; 1188c8 (46:48c8) + ld a, $1 + ld [wcd65], a + call Function1188e7 + ld hl, wc708 +.asm_1188d3 + ld a, [de] + inc de + ld [hli], a + and a + jr nz, .asm_1188d3 + call Function119eb4 + call Function119ec2 + ld hl, wc708 + ld a, $6 + jp Function119e2b + +Function1188e7: ; 1188e7 (46:48e7) + ld de, wPartyMonMenuIconAnims + 48 + 2 + ld a, $5 + call GetSRAMBank + ld a, [$aa4a] + call CloseSRAM + and a + ret z + sla a + ld c, a +.asm_1188fa + ld a, [de] + inc de + and a + jr nz, .asm_1188fa + dec c + jr nz, .asm_1188fa + ret + +Function118903: ; 118903 (46:4903) + ld a, [wc3f0] + ld [wPartyMonMenuIconAnims + 5], a + ld c, $1 + callba Function115e18 + ld a, $8 + ld [wcd3c], a + call Function119ed8 + jp Function119e2e + + +Function11891c: ; 11891c + call Function118b42 + jp Function119e2e + + +Function118922: ; 118922 + ld a, [wcd38] + and a + jr nz, .asm_11892d + ld hl, Text_WhatLevelDoYouWantToChallenge + jr .asm_118930 + +.asm_11892d + ld hl, Text_CheckBattleRoomListByMaxLevel + +.asm_118930 + call Function11a9c0 + call Function119e2e + +Function118936: + ld a, [wPartyMonMenuIconAnims + 6] + and a + ret nz + ld hl, MenuDataHeader_119cf7 + call LoadMenuDataHeader + call Function1cbb + call GetMemTileCoord + call Function321c + hlcoord 16, 8, AttrMap + ld a, $40 + or [hl] + ld [hl], a + call Function3200 + ld a, $1 + ld [wcd4f], a + ld a, $1 + ld [rSVBK], a + ld a, [StatusFlags] + bit 6, a + jr nz, .asm_11896b + ld hl, Strings_Ll0ToL40 ; Address to list of strings with the choosable levels + ld a, 5 ; 4 levels to choose from, including 'Cancel'-option + jr .asm_118970 + +.asm_11896b + ld hl, Strings_L10ToL100 ; Address to list of strings with the choosable levels + ld a, 11 ; 10 levels to choose from, including 'Cancel'-option + +.asm_118970 + ld [wcd4a], a + ld a, l + ld [wcd4b], a + ld a, h + ld [wcd4c], a + ld a, $3 + ld [rSVBK], a + call Function119e2e + +Function118982: + hlcoord 13, 8 + ld de, String_119d07 + call PlaceString + hlcoord 13, 10 + ld de, String_119d07 + call PlaceString + ld a, [wcd4b] + ld l, a + ld a, [wcd4c] + ld h, a + ld d, $0 + ld a, [wcd4f] + dec a + rlca + rlca + rlca + ld e, a + add hl, de + ld a, l + ld e, a + ld a, h + ld d, a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld bc, StringBuffer3 +.asm_1189b5 + ld a, [hli] + cp $50 + jr z, .asm_1189c4 + cp $7f + jr z, .asm_1189c2 + ld [bc], a + inc bc + jr .asm_1189b5 + +.asm_1189c2 + ld a, $50 + +.asm_1189c4 + ld [bc], a + pop af + ld [rSVBK], a + hlcoord 13, 9 + call PlaceString + ld hl, hJoyPressed + ld a, [hl] + and $2 + jr nz, .asm_118a39 + ld a, [hl] + and $1 + jr nz, .asm_118a01 + ld a, [hl] + and $80 + jr nz, .asm_1189e6 + ld a, [hl] + and $40 + jr nz, .asm_1189f2 +.asm_1189e5 + ret + +.asm_1189e6 + ld hl, wcd4f + dec [hl] + jr nz, .asm_1189e5 + ld a, [wcd4a] + ld [hl], a + jr .asm_1189e5 + +.asm_1189f2 + ld a, [wcd4a] + ld hl, wcd4f + inc [hl] + cp [hl] + jr nc, .asm_1189e5 + ld a, $1 + ld [hl], a + jr .asm_1189e5 + +.asm_118a01 + call PlayClickSFX + ld a, [wcd4f] + ld hl, wcd4a + cp [hl] + jr z, .asm_118a3c + dec a + and $fe + srl a + ld [wcf65], a + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + call WriteBackup + pop af + ld [rSVBK], a + ld a, [wcd38] + and a + jr nz, .asm_118a30 + call Function119d93 + ret c + call Function119dd1 + ret c + +.asm_118a30 + ld a, [wcd4f] + ld [wd000 + $800], a + jp Function119e2e + +.asm_118a39 + call PlayClickSFX + +.asm_118a3c + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + call WriteBackup + pop af + ld [rSVBK], a + ld a, $7 + ld [wcf66], a + ld a, $0 + ld [wcd46], a + ret + + + +Function118a54: ; 118a54 + ld a, [wcd55] + ld l, a + ld a, [wcd56] + ld h, a + ld de, wc3ec + ld bc, $0004 + jp Function118ae4 +; 118a65 + +Function118a65: ; 118a65 + ld hl, BattleDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, Unkn1Pals + ld bc, $1000 + jp Function118b10 +; 118a7a + +Function118a7a: ; 118a7a + ld hl, BattleDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, Unkn1Pals + ld bc, $1000 + jp Function118b10 +; 118a8f + +Function118a8f: ; 118a8f + ld hl, ExchangeDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, Unkn1Pals + ld bc, $1000 + jp Function118b10 +; 118aa4 + +Function118aa4: ; 118aa4 + ld hl, NewsDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld a, $5 + ld [rSVBK], a + ld de, LYOverrides + ld bc, $e00 + jr Function118b10 +; 118abc + +Function118abc: ; 118abc (46:4abc) + ld hl, MenuDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, Unkn1Pals + ld bc, $1000 + jr Function118b10 +; 118ad0 (46:4ad0) + +Function118ad0: + ld hl, IndexDownloadURL + ld de, wcc60 + ld bc, $80 + call CopyBytes + ld de, Unkn1Pals + ld bc, $1000 + jr Function118b10 + +Function118ae4: + push bc + push de + push hl + ld a, $8 + ld [wcd3c], a + call Function119ed8 + pop hl + ld c, $0 + ld de, wcc60 +.asm_118af5 + ld a, [hli] + ld [de], a + inc de + and a + jr z, .asm_118b06 + inc c + ld a, c + cp $a6 + jr c, .asm_118af5 + ld a, $da + jp Function118805 + +.asm_118b06 + call Function118b24 + pop de + pop bc + ld a, $2a + jp Function119e2b +; 118b10 + +Function118b10: + push de + push bc + ld a, $8 + ld [wcd3c], a + call Function119ed8 + call Function118b24 + pop bc + pop de + ld a, $2a + jp Function119e2b + +Function118b24: ; 118b24 (46:4b24) + ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld a, $8 + ld [hli], a + ld a, $c7 + ld [hli], a + ld a, $60 + ld [hli], a + ld a, $cc + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $80 + ld [wcd89], a + ld hl, wPartyMonMenuIconAnims + 48 + 2 + ret +; 118b42 (46:4b42) + +Function118b42: ; 118b42 + ld hl, DefaultFlypoint + ld a, l + ld [wcd51], a + ld a, h + ld [wcd52], a + call Function118b8c + ld a, l + ld [wcd55], a + ld [wcd59], a + ld a, h + ld [wcd56], a + ld [wcd5a], a + call Function118b8c + ld a, l + ld [wcd53], a + ld [wcd5d], a + ld a, h + ld [wcd54], a + ld [wcd5e], a + call Function118b8c + ld a, l + ld [wcd57], a + ld [wcd5b], a + ld a, h + ld [wcd58], a + ld [wcd5c], a + call Function118b8c + ld a, l + ld [wcd5f], a + ld a, h + ld [wcd60], a + ret +; 118b8c + +Function118b8c: ; 118b8c +.asm_118b8c + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_118b8c + dec hl + xor a +rept 2 + ld [hli], a +endr + ret +; 118b9a + +Function118b9a: ; 118b9a + ld a, h + cp $e0 + ret c + ld a, $d3 + call Function118805 + and a + ret +; 118ba5 + + + charmap " ", $20 ; revert to ascii + +ExchangeDownloadURL: ; 0x118ba5 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/exchange/index.txt", 0 + +BattleDownloadURL: ; 0x118bf7 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/battle/index.txt", 0 + +NewsDownloadURL: ; 0x118c47 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/news/index.txt", 0 + +MenuDownloadURL: ; 0x118c95 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/POKESTA/menu.cgb", 0 + +IndexDownloadURL: ; 0x118ce5 + db "http://gameboy.datacenter.ne.jp/cgb/download?name=/01/CGB-BXTJ/tamago/index.txt", 0 + + +Function118d35: ; 118d35 + ld hl, LYOverridesBackup + ld a, [wcd38] + and a + jr nz, .asm_118d6e + ld a, [hli] + cp $94 + jr nz, .asm_118d7b + ld a, [hl] + cp $5 + jr nz, .asm_118d7b + ld a, [wcd4f] + sla a + ld b, a + sla a + sla a + add b + ld b, a + ld a, $5 + call GetSRAMBank + ld a, b + ld [$b2fb], a + call CloseSRAM + callba Function170be4 + callba Function1700c4 + jr .asm_118d78 + +.asm_118d6e + ld a, [hli] + cp $96 + jr nz, .asm_118d7b + ld a, [hl] + cp $0 + jr nz, .asm_118d7b + +.asm_118d78 + jp Function119e2e + +.asm_118d7b + ld a, $d3 + jp Function118805 +; 118d80 + +Function118d80: ; 118d80 + call Function118e06 + ld a, [wcd38] + and a + jr z, .asm_118d8e + call Function119e2e + jr asm_118d9f + +.asm_118d8e + ld a, $9 + ld [wcd3c], a + ld a, $12 + ld [wcd45], a + call Function119e2e + +Function118d9b: + call Function119ed8 + ret c + +asm_118d9f + ld hl, $c608 + call Function119940 + ld a, [wcd38] + and a + jr nz, .asm_118db2 + ld a, $8f + ld [wcd3b], a + jr .asm_118db7 + +.asm_118db2 + ld a, $26 + ld [wcd3b], a + +.asm_118db7 + ld hl, $d800 + ld a, $8 + ld [hli], a + ld a, $c6 + ld [hli], a + ld a, [wcd3b] + ld [hli], a + xor a + ld [hli], a + ld a, $8 + ld [hli], a + ld a, $c7 + ld [hli], a + ld a, [wcd39] + ld [hli], a + ld a, [wcd3a] + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, $d800 + ld de, $de00 + ld bc, $0200 + ld a, $2c + jp Function119e2b +; 118ded + +Function118ded: ; 118ded + ld a, [wcd38] + and a + jr z, .asm_118e03 + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + callba Function11b93b + pop af + ld [rSVBK], a + +.asm_118e03 + jp Function119e2e +; 118e06 + +Function118e06: ; 118e06 + ld hl, DefaultFlypoint + ld a, [wcd38] + and a + jr z, .asm_118e1d +.asm_118e0f + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_118e0f + ld a, [hli] + cp $a + jr nz, .asm_118e0f + +.asm_118e1d + ld a, l + ld [wcd39], a + ld a, h + ld [wcd3a], a +.asm_118e25 + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_118e25 + ld a, [hli] + cp $a + jr nz, .asm_118e25 + dec hl + xor a + ld [hld], a + ld [hl], a + jr asm_118e3e + +Function118e39: ; 118e39 (46:4e39) +.asm_118e39 + ld a, [hli] + and a + jr nz, .asm_118e39 + dec hl +asm_118e3e +.asm_118e3e + ld a, [hld] + cp $2f + jr nz, .asm_118e3e +rept 2 + inc hl +endr + ld de, wcd85 + ld c, $4 +.asm_118e4a + ld a, [hli] + cp $2e + jr z, .asm_118e63 + cp $30 + jr c, .asm_118e67 + cp $3a + jr nc, .asm_118e67 + sub $30 + add $f6 + ld [de], a + inc de + dec c + jr nz, .asm_118e4a + ld de, wcd85 +.asm_118e63 + ld a, $50 + ld [de], a + ret +.asm_118e67 + ld a, $f3 + ld [de], a + inc de + jr .asm_118e63 + +Function118e6d: ; 118e6d (46:4e6d) + xor a + ld [wcd65], a + ld a, $a + jp Function119e2b + +Function118e76: ; 118e76 (46:4e76) + ld a, $c + ld [wcd3c], a + jp Function119e2e + +Function118e7e: ; 118e7e (46:4e7e) + call Function119ed8 + ret c + ld a, $36 + jp Function119e2b + +Function118e87: ; 118e87 (46:4e87) + call Function119ed8 + ret c + ld a, [wcd33] + ld [wcf66], a + ret +; 118e92 (46:4e92) + +Function118e92: ; 118e92 + call Function118440 + call Function1191d3 + ld a, [wcd53] + ld l, a + ld a, [wcd54] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld de, $d800 + ld bc, $0800 + jp Function118b10 +; 118eb0 + +Function118eb0: ; 118eb0 + call Function118440 + ld hl, $d802 + ld de, BGMapBuffer + ld bc, $000c + call CopyBytes + call Function1192cc + ret c + jp Function119e2e +; 118ec6 + +Function118ec6: ; 118ec6 + call Function118440 + call SpeechTextBox + ld hl, $d80e + ld de, wPartyMonMenuIconAnims + 12 + ld bc, $0026 + call CopyBytes + xor a + ld [wPartyMonMenuIconAnims + 11], a + ld a, $20 + ld [wPartyMonMenuIconAnims + 7], a + ld a, $c3 + ld [wPartyMonMenuIconAnims + 8], a + hlcoord 1, 14 + ld a, l + ld [wPartyMonMenuIconAnims + 9], a + ld a, h + ld [wPartyMonMenuIconAnims + 10], a + ld a, $2 + ld [wPartyMonMenuIconAnims + 6], a + ld a, $1d + ld [wcd3c], a + ld a, $24 + ld [wcd45], a + ld a, $11 + ld [wcd46], a + ld a, $1c + ld [wcd47], a + jp Function119e2e +; 118f0d + +Function118f0d: ; 118f0d + call Function119ed8 + ret c + call Function118440 + +Function118f14: + call Function118440 + ld a, [wcd51] + ld l, a + ld a, [wcd52] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld a, [wcc60] + and a + jr z, .asm_118f32 + ld hl, UnknownText_0x11aa13 + call Function11a9c0 + +.asm_118f32 + ld a, [wcd57] + ld l, a + ld a, [wcd58] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld hl, wcc60 + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $24 + ld [wcd45], a + ld a, $13 + ld [wcd46], a + ld a, $1c + ld [wcd47], a + jp Function119e2e +; 118f5e + +Function118f5e: ; 118f5e + call Function119ed8 + ret c + call Function118440 + call DelayFrame + +Function118f68: + call Function119223 + ret c + call Function118440 + ld a, [wcd51] + ld l, a + ld a, [wcd52] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld a, [wcc60] + and a + jr z, .asm_118fba + ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld a, $c608 % $100 + ld [hli], a + ld a, $c608 / $100 + ld [hli], a + ld a, [wcd4b] + ld [hli], a + ld a, [wcd4c] + ld [hli], a + ld a, wc708 % $100 + ld [hli], a + ld a, wc708 / $100 + ld [hli], a + ld a, $60 + ld [hli], a + ld a, $cc + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld de, $de00 + ld bc, $0200 + ld a, $2c + jp Function119e2b + +.asm_118fba + call Function119e2e + jp Function119e2e +; 118fc0 + +Function118fc0: ; 118fc0 + call Function118440 + ld a, [wcd55] + ld l, a + ld a, [wcd56] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld a, [wcc60] + and a + jr z, .asm_118ffa + ld a, [wcd51] + ld l, a + ld a, [wcd52] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld a, [wcc60] + and a + jr z, .asm_118ff2 + ld hl, UnknownText_0x11aa2c + jr .asm_118ff5 + +.asm_118ff2 + ld hl, UnknownText_0x11aa4b + +.asm_118ff5 + call Function11a9c0 + jr Function119009 + +.asm_118ffa + ld hl, UnknownText_0x11aa4b + call Function11a9c0 + call Function119e2e + call Function119e2e + jp Function119e2e + +Function119009: + call Function118440 + call Function119300 + ld a, [wcd55] + ld l, a + ld a, [wcd56] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld a, $8 + ld [hli], a + ld a, $c6 + ld [hli], a + ld a, [wcd4b] + ld [hli], a + ld a, [wcd4c] + ld [hli], a + ld a, $8 + ld [hli], a + ld a, $c7 + ld [hli], a + ld a, $60 + ld [hli], a + ld a, $cc + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld de, Unkn1Pals + ld bc, $1000 + ld a, $2c + jp Function119e2b +; 119054 + +Function119054: ; 119054 + ld a, $6 + call GetSRAMBank + ld hl, DefaultFlypoint + ld a, [wcd4f] + ld e, a + ld a, [wcd50] + ld d, a + ld a, [Unkn1Pals] + ld c, a + ld a, [wd001] + ld b, a + call Function119192 + ret c + ld a, [wcd89] + and $1 + jr z, .asm_11908a + ld a, $6 + ld [rSVBK], a + ld hl, DefaultFlypoint + ld a, [Unkn1Pals] + ld c, a + ld a, [wd001] + ld b, a + call Function119192 + ret c + +.asm_11908a + call CloseSRAM + ld a, $3 + ld [rSVBK], a + ld a, $5 + call GetSRAMBank + ld a, [wcd4f] + ld [$b1b3], a + ld a, [wcd50] + ld [$b1b4], a + ld hl, BGMapBuffer + ld de, $aa7f + ld bc, $000c + call CopyBytes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wd474] + ld [$b2f3], a + ld hl, wd475 + ld de, $b2f4 + ld bc, $0004 + call CopyBytes + pop af + ld [rSVBK], a + call CloseSRAM + jp Function119e2e +; 1190d0 + +Function1190d0: ; 1190d0 + ld a, $3 + ld [rSVBK], a + ld a, [wcd57] + ld l, a + ld a, [wcd58] + ld h, a + ld de, wcc60 + call Function1191ad + ret c + ld de, Unkn1Pals + ld bc, $1000 + jp Function118b10 +; 1190ec + +Function1190ec: ; 1190ec + ld a, $5 + call GetSRAMBank + ld hl, BGMapBuffer + ld de, $aa73 + ld bc, $000c + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$aa72], a + call CloseSRAM + ld a, $6 + call GetSRAMBank + ld a, [Unkn1Pals] + ld c, a + ld a, [wd001] + ld b, a + ld hl, DefaultFlypoint + ld de, $a000 + call Function119192 + ret c + ld a, [wcd89] + and $1 + jr z, .asm_11913e + ld a, $6 + ld [rSVBK], a + ld a, [Unkn1Pals] + ld c, a + ld a, [wd001] + ld b, a + ld hl, DefaultFlypoint + call Function119192 + ret c + +.asm_11913e + ld a, $3 + ld [rSVBK], a + call CloseSRAM + ld hl, UnknownText_0x11aa5a + call Function11a9c0 + jp Function119e2e +; 11914e + +Function11914e: ; 11914e + call Function119ed8 + ret c + ld a, $1c + ld [wcf66], a + ld a, $a + ld [wc300], a + ret +; 11915d + +Function11915d: ; 11915d + ld hl, $d802 + ld de, BGMapBuffer + ld bc, $000c + call CopyBytes + ld a, $5 + call GetSRAMBank + ld hl, BGMapBuffer + ld de, $aa7f + ld c, $c +.asm_119176 + ld a, [de] + inc de + cp [hl] + jr nz, .asm_119184 + inc hl + dec c + jr nz, .asm_119176 + call Function119e2e + jr .asm_11918e + +.asm_119184 + ld a, $16 + ld [wcf66], a + ld a, $b + ld [wc300], a + +.asm_11918e + call CloseSRAM + ret +; 119192 + +Function119192: ; 119192 + inc b + inc c + jr .asm_11919e + +.asm_119196 + ld a, [hli] + ld [de], a + inc de + ld a, $bf + cp d + jr c, .asm_1191a6 + +.asm_11919e + dec c + jr nz, .asm_119196 + dec b + jr nz, .asm_119196 + and a + ret + +.asm_1191a6 + ld a, $d3 + call Function118805 + scf + ret +; 1191ad + +Function1191ad: ; 1191ad + push bc + ld c, $0 + ld a, $5 + ld [rSVBK], a +.asm_1191b4 + ld a, [hli] + ld [de], a + inc de + and a + jr z, .asm_1191cc + inc c + ld a, c + cp $a6 + jr c, .asm_1191b4 + ld a, $da + call Function118805 + ld a, $3 + ld [rSVBK], a + pop bc + scf + ret + +.asm_1191cc + ld a, $3 + ld [rSVBK], a + pop bc + and a + ret +; 1191d3 + +Function1191d3: ; 1191d3 + ld hl, wd102 + ld a, l + ld [wcd53], a + ld a, h + ld [wcd54], a + call Function11920f + ld a, l + ld [wcd51], a + ld a, [wcd4a] + ld a, h + ld [wcd52], a + call Function11920f + ld a, l + ld [wcd55], a + ld a, [wcd4a] + ld a, h + ld [wcd56], a + call Function11920f + ld a, [wcd49] + ld a, l + ld [wcd57], a + ld a, [wcd4a] + ld a, h + ld [wcd58], a + call Function11920f + ret +; 11920f + +Function11920f: ; 11920f +.asm_11920f + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_11920f + ld a, [hli] + cp $a + jr nz, .asm_11920f + dec hl + xor a + ld [hld], a + ld [hli], a + inc hl + ret +; 119223 + +Function119223: ; 119223 + xor a + ld [wcd4b], a + ld [wcd4c], a + ld a, $5 + call GetSRAMBank + ld hl, wc3cd + ld de, $b092 + ld bc, $001f + call CopyBytes + dec de + xor a + ld [de], a + ld hl, $d810 +.asm_119241 + ld a, [hli] + cp $50 + jr nz, .asm_119241 + ld a, [hli] + ld [wcd4f], a + ld a, [hli] + ld [wcd50], a + ld a, [hli] + ld [$b1b1], a + ld c, a + ld a, [hli] + ld [$b1b2], a + ld b, a + ld de, $b1d3 + call CopyBytes + call CloseSRAM + ld e, l + ld d, h + ld hl, $c608 +.asm_119266 + ld a, [de] + inc de + cp $ff + jr z, .asm_1192c2 + cp $fe + jr z, .asm_1192a5 + call GetSRAMBank + ld a, [de] + inc de + ld c, a + ld a, [de] + inc de + ld b, a + ld a, [de] + inc de + push de + push af + ld a, [wcd4b] + ld e, a + ld a, [wcd4c] + ld d, a + pop af +.asm_119286 + push af + ld a, [bc] + inc bc + ld [hli], a + inc de + pop af + dec a + jr nz, .asm_119286 + call CloseSRAM + ld a, e + ld [wcd4b], a + ld a, d + ld [wcd4c], a + pop de +.asm_11929b + and a + jr z, .asm_119266 + ld a, $d3 + call Function118805 + scf + ret + +.asm_1192a5 + ld a, [wcd4b] + ld c, a + ld a, [wcd4c] + ld b, a + ld a, [de] + inc de +.asm_1192af + push af + ld a, [de] + inc de + ld [hli], a + inc bc + pop af + dec a + jr nz, .asm_1192af + ld a, c + ld [wcd4b], a + ld a, b + ld [wcd4c], a + jr .asm_11929b + +.asm_1192c2 + ld a, e + ld [wcd4d], a + ld a, d + ld [wcd4e], a + and a + ret +; 1192cc + +Function1192cc: ; 1192cc + ld a, $5 + call GetSRAMBank + ld hl, $aa73 + ld de, $c608 + ld bc, $000c + call CopyBytes + call CloseSRAM + ld hl, $c608 + ld de, BGMapBuffer + ld c, $c +.asm_1192e8 + ld a, [de] + inc de + ld b, a + ld a, [hli] + cp b + jr nz, .asm_1192fe + dec c + jr nz, .asm_1192e8 + ld a, $1f + ld [wcd3c], a + ld a, $27 + ld [wcf66], a + scf + ret + +.asm_1192fe + and a + ret +; 119300 + +Function119300: ; 119300 + xor a + ld [wcd4b], a + ld [wcd4c], a + ld a, [wcd4d] + ld e, a + ld a, [wcd4e] + ld d, a + ld hl, $c608 + ld a, [wcd4b] + ld c, a + ld a, [wcd4c] + ld b, a +.asm_11931a + ld a, [de] + inc de + cp $50 + jr z, .asm_119324 + ld [hli], a + inc bc + jr .asm_11931a + +.asm_119324 + ld a, $3d + ld [hli], a + inc bc + ld a, c + ld [wcd4b], a + ld a, b + ld [wcd4c], a + ld a, [de] + inc de + call GetSRAMBank + ld a, [de] + inc de + ld c, a + ld a, [de] + inc de + ld b, a + ld a, [de] + inc de + push de + push af + ld a, [wcd4b] + ld e, a + ld a, [wcd4c] + ld d, a + pop af +.asm_119348 + push af + ld a, [bc] + and $f0 + swap a + call Function1197bf + ld [hli], a + inc de + ld a, [bc] + inc bc + and $f + call Function1197bf + ld [hli], a + inc de + pop af + dec a + jr nz, .asm_119348 + call CloseSRAM + ld a, e + ld [wcd4b], a + ld a, d + ld [wcd4c], a + pop de + ld a, [de] + cp $50 + jr z, .asm_11937f + ld a, [wcd4b] + ld c, a + ld a, [wcd4c] + ld b, a + ld a, $26 + ld [hli], a + inc bc + jr .asm_11931a + +.asm_11937f + ret +; 119380 + +Function119380: ; 119380 + ld a, $80 + ld [wcd49], a + jp Function119e2e +; 119388 + +Function119388: ; 119388 + ld hl, wcd49 + dec [hl] + ret nz + ld hl, wcc60 + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $10 + ld [wcd45], a + call Function119e2e + +Function1193a0: + call Function119ed8 + ret c + call DelayFrame + ld a, $8 + ld [wcd3c], a + call Function119ed8 + ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld a, wd000 % $100 + ld [hli], a + ld a, wd000 / $100 + ld [hli], a + ld a, [wcd3b] + ld [hli], a + xor a + ld [hli], a + ld a, wc708 % $100 + ld [hli], a + ld a, wc708 / $100 + ld [hli], a + ld a, $60 + ld [hli], a + ld a, $cc + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld de, $de00 + ld bc, $0200 + ld a, $2c + jp Function119e2b +; 1193e3 + +Function1193e3: ; 1193e3 + ld hl, wcd49 + dec [hl] + ret nz + ld hl, wcc60 + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $11 + ld [wcd45], a + call Function119e2e + +Function1193fb: + call Function119ed8 + ret c + call DelayFrame + ld a, $8 + ld [wcd3c], a + call Function119ed8 + ld de, Unkn1Pals + ld bc, $1000 + jp Function118b10 +; 119413 + +Function119413: ; 119413 + ld a, $6 + call GetSRAMBank + ld a, [Unkn1Pals] + ld c, a + ld a, [wd001] + ld b, a +rept 2 + dec bc +endr + ld hl, wd002 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + call Function119192 + ret c + ld a, [wcd89] + and $1 + jr z, .asm_119447 + ld a, $6 + ld [rSVBK], a + ld a, [wd000] + ld c, a + ld a, [wd001] + ld b, a + ld hl, wd002 + call Function119192 + ret c + +.asm_119447 + ld a, $3 + ld [rSVBK], a + call CloseSRAM + jp Function119e2e +; 119451 + +Function119451: ; 119451 (46:5451) + ld a, [wcd89] + and $1 + jr z, .asm_11945d + ld a, $d3 + jp Function118805 +.asm_11945d + xor a + ld [wcd50], a + call Function119694 + ld a, b + ld [wcd49], a + call Function1196cd + ld a, [DefaultFlypoint] + ld hl, wd003 + +Function119471: ; 119471 (46:5471) + push af + ld a, [hli] + ld [$c608], a + ld a, [hli] + ld [$c608 + 3], a + ld a, [hli] + ld [$c608 + 1], a + ld a, [hli] + ld [$c608 + 2], a + ld a, [hli] + ld [$c608 + 4], a + ld a, [hli] + ld [$c608 + 5], a ; $c608 + 5 + push hl + ld a, [$c608] + cp $ff + jr z, .asm_1194a7 + ld a, [$c608 + 2] + cp $ff + jr z, .asm_1194a7 + ld a, [$c608 + 1] + cp $ff + jr nz, .asm_1194a7 + call Function119584 + jr c, .asm_11950c + jr .asm_1194f0 +.asm_1194a7 + ld hl, $c608 + ld de, $c608 + 3 + ld c, $3 +.asm_1194af + ld a, [de] + inc de + cp [hl] + inc hl + jr c, .asm_1194f3 + jr z, .asm_1194b9 + jr nc, .asm_1194bc +.asm_1194b9 + dec c + jr nz, .asm_1194af +.asm_1194bc + ld c, $3 + ld hl, wcd49 + ld de, $c608 +.asm_1194c4 + ld a, [de] + inc de + cp $ff + jr z, .asm_1194d1 + cp [hl] + jr z, .asm_1194d1 + jr c, .asm_1194d5 + jr nc, .asm_1194f0 +.asm_1194d1 + inc hl + dec c + jr nz, .asm_1194c4 +.asm_1194d5 + ld c, $3 + ld hl, wcd49 + ld de, $c608 + 3 +.asm_1194dd + ld a, [de] + inc de + cp $ff + jr z, .asm_1194ea + cp [hl] + jr c, .asm_1194f0 + jr z, .asm_1194ea + jr nc, .asm_11950c +.asm_1194ea + inc hl + dec c + jr nz, .asm_1194dd + jr .asm_11950c +.asm_1194f0 + pop hl + jr .asm_119557 +.asm_1194f3 + ld c, $3 + ld hl, wcd49 + ld de, $c608 +.asm_1194fb + ld a, [de] + inc de + cp $ff + jr z, .asm_119508 + cp [hl] + jr c, .asm_11950c + jr z, .asm_119508 + jr nc, .asm_1194d5 +.asm_119508 + inc hl + dec c + jr nz, .asm_1194fb +.asm_11950c + pop hl + ld a, $1 + ld [wcd50], a + ld a, l + ld [$c608], a + ld a, h + ld [$c608 + 1], a + ld de, wcd69 + ld c, $10 + ld b, $0 +.asm_119521 + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_119528 + inc b +.asm_119528 + dec c + jr nz, .asm_119521 + ld a, $10 + cp b + jr z, .asm_119536 +rept 4 + inc hl +endr + jr .asm_11957a +.asm_119536 + ld a, [hli] + cp $50 + jr nz, .asm_119552 + ld a, [hli] + cp $33 + jr nz, .asm_119553 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [wcd83] + cp c + jr nz, .asm_119576 + ld a, [wcd84] + cp b + jr nz, .asm_119576 + jr .asm_11955b +.asm_119552 + inc hl +.asm_119553 +rept 2 + inc hl +endr + jr .asm_11955b +.asm_119557 + ld de, $14 + add hl, de +.asm_11955b + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + add hl, de + pop af + dec a + jp nz, Function119471 + ld a, [wcd50] + and a + jr z, .asm_119571 + ld a, $1a + ld [wcf66], a + ret +.asm_119571 + ld a, $d8 + jp Function118805 +.asm_119576 + ld a, $10 + jr .asm_11957c +.asm_11957a + ld a, $f +.asm_11957c + ld [wcf66], a + pop af + call Function1195c4 + ret + +Function119584: ; 119584 (46:5584) + ld a, [$c608] + ld b, a + ld a, [$c608 + 3] + ld c, a + cp b + jr c, .asm_11959c + ld a, [wcd49] + cp b + jr c, .asm_1195c2 +.asm_119595 + cp c + jr c, .asm_1195a2 + jr z, .asm_1195a2 + jr .asm_1195c2 +.asm_11959c + ld a, [wcd49] + cp b + jr c, .asm_119595 +.asm_1195a2 + ld a, [$c608 + 2] + ld b, a + ld a, [$c608 + 5] ; $c608 + 5 + ld c, a + cp b + jr c, .asm_1195ba + ld a, [wcd4b] + cp b + jr c, .asm_1195c2 +.asm_1195b3 + cp c + jr c, .asm_1195c0 + jr z, .asm_1195c0 + jr .asm_1195c2 +.asm_1195ba + ld a, [wcd4b] + cp b + jr c, .asm_1195b3 +.asm_1195c0 + scf + ret +.asm_1195c2 + and a + ret + +Function1195c4: ; 1195c4 (46:55c4) + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld de, $a5 + ld a, b + cp d + jr c, .asm_1195d9 + jr z, .asm_1195d3 + jr nc, .asm_1195f3 +.asm_1195d3 + ld a, c + cp e + jr z, .asm_1195d9 + jr nc, .asm_1195f3 +.asm_1195d9 + ld de, wcc60 + call CopyBytes + xor a + ld [de], a + ld a, [$c608] + ld l, a + ld a, [$c608 + 1] + ld h, a + ld de, wcd69 + ld bc, $10 + call CopyBytes + ret +.asm_1195f3 + ld a, $d8 + jp Function118805 + +Function1195f8: ; 1195f8 (46:55f8) + ld a, $11 + ld [wcd3c], a + ld a, $1c + ld [wcd45], a + ld a, $f + ld [wcd46], a + ld a, $14 + ld [wcd47], a + call Function119e2e + jp Function119e2e + +Function119612: ; 119612 (46:5612) + ld a, $14 + ld [wcd3c], a + ld a, $1c + ld [wcd45], a + ld a, $10 + ld [wcd46], a + ld a, $14 + ld [wcd47], a + jp Function119e2e + +Function119629: ; 119629 (46:5629) + call Function119ed8 + ret c + ld a, $60 + ld l, a + ld a, $cc + ld h, a + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $1c + ld [wcd45], a + ld a, $14 + ld [wcd47], a + call Function119e2e + +Function119648: ; 119648 (46:5648) + call Function119ed8 + ret c + call DelayFrame + ld a, $8 + ld [wcd3c], a + call Function119ed8 + call Function118b24 + ld de, Unkn1Pals + ld bc, $1000 + ld a, $2a + jp Function119e2b + +Function119665: ; 119665 (46:5665) + ld a, $1a + ld [wcd3c], a + call Function119e2e + +Function11966d: ; 11966d (46:566d) + call Function119ed8 + ret c + ld a, [wcd47] + ld [wcf66], a + ld a, $a + ld [wc300], a + ret + +Function11967d: ; 11967d (46:567d) + ld a, $18 + ld [wcd3c], a + call Function119e2e + +Function119685: ; 119685 (46:5685) + call Function119ed8 + ret c + ld a, $14 + ld [wcf66], a + ld a, $a + ld [wc300], a + ret + +Function119694: ; 119694 (46:5694) + ld b, 0 + ld hl, Unknown_1196b8 +.asm_119699 + ld de, wc708 + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_1196af + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_1196b0 + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_1196b1 + ret +.asm_1196af + inc hl +.asm_1196b0 + inc hl +.asm_1196b1 + inc b + ld a, b + cp $7 + jr nz, .asm_119699 + ret +; 1196b8 (46:56b8) + +Unknown_1196b8: ; 1196b8 + db "Mon" + db "Tue" + db "Wed" + db "Thu" + db "Fri" + db "Sat" + db "Sun" +; 1196cd + +SECTION "bank46_2", ROMX, BANK[$46] +; A hack to use ascii above. + +Function1196cd: ; 1196cd (46:56cd) + ld de, wc719 + call Function1196de + ld [wcd4a], a + inc de + call Function1196de + ld [wcd4b], a + ret + +Function1196de: ; 1196de (46:56de) + ld a, [de] + inc de + sub $30 + sla a + ld b, a + sla a + sla a + add b + ld c, a + add hl, bc + ld a, [de] + inc de + sub $30 + add c + ret +; 1196f2 (46:56f2) + +Function1196f2: ; 1196f2 + ld hl, DefaultFlypoint +.asm_1196f5 + call Function118b9a + ret nc + ld a, [hli] + cp $d + jr nz, .asm_1196f5 + ld a, [hl] + cp $a + jr nz, .asm_1196f5 + xor a + ld [hld], a + ld [hli], a + ld a, l + ld [wcd5b], a + ld a, h + ld [wcd5c], a + inc hl + ld e, l + ld d, h + ld a, [de] + inc de + cp $d + jr nz, .asm_119722 + ld a, [de] + inc de + cp $a + jr nz, .asm_119722 + ld a, $b + jp Function118805 + +.asm_119722 + call Random + ld c, $0 + ld b, c +.asm_119728 + call Function119798 + ld a, d + cp $ff + jr nz, .asm_119735 + ld a, e + cp $ff + jr z, .asm_11974c + +.asm_119735 + ld a, [hRandomSub] + cp d + jr c, .asm_11974c + jr z, .asm_11973e + jr .asm_119745 + +.asm_11973e + ld a, [hRandomAdd] + cp e + jr c, .asm_11974c + jr z, .asm_11974c + +.asm_119745 + inc bc + ld a, c + or b + jr z, .asm_119770 + jr .asm_119728 + +.asm_11974c + ld a, [wcd5b] + ld l, a + ld a, [wcd5c] + ld h, a +.asm_119754 + ld a, [hld] + cp $58 + jr nz, .asm_119754 + ld d, $0 +.asm_11975b + inc d + ld a, [hld] + cp $58 + jr z, .asm_11975b +rept 2 + inc hl +endr + ld a, d + dec a + jr z, .asm_11978e + dec a + jr z, .asm_119785 + dec a + jr z, .asm_11977e + dec a + jr z, .asm_119775 + +.asm_119770 + ld a, $d3 + jp Function118805 + +.asm_119775 + ld a, b + and $f0 + swap a + call Function1197bf + ld [hli], a + +.asm_11977e + ld a, b + and $f + call Function1197bf + ld [hli], a + +.asm_119785 + ld a, c + and $f0 + swap a + call Function1197bf + ld [hli], a + +.asm_11978e + ld a, c + and $f + call Function1197bf + ld [hli], a + jp Function119e2e +; 119798 + +Function119798: ; 119798 + ld d, $0 + ld e, d + call Function1197b4 + swap a + or d + ld d, a + call Function1197b4 + or d + ld d, a + call Function1197b4 + swap a + or e + ld e, a + call Function1197b4 + or e + ld e, a + ret +; 1197b4 + +Function1197b4: ; 1197b4 + ld a, [hli] + cp $61 + jr nc, .asm_1197bc + sub $30 + ret + +.asm_1197bc + sub $57 + ret +; 1197bf + +Function1197bf: ; 1197bf + cp $a + jr nc, .asm_1197c6 + add $30 + ret + +.asm_1197c6 + add $57 + ret +; 1197c9 + +Function1197c9: ; 1197c9 + ld hl, DefaultFlypoint + call Function118e39 + ld a, $9 + ld [wcd3c], a + ld a, $12 + ld [wcd45], a + call Function119e2e + +Function1197dc: + call Function119ed8 + ret c + call DelayFrame + ld hl, DefaultFlypoint + ld de, wcc60 + ld bc, $0080 + call CopyBytes + dec de + xor a + ld [de], a + call Function118b24 + ld de, Unkn1Pals + ld bc, $1000 + ld a, $2a + jp Function119e2b +; 119800 + +Function119800: ; 119800 + ld a, $fd + ld [$c6d0], a + ld [wc702], a + ld a, [wcd81] + ld [wc74e], a + ld a, [wJumptableIndex] + push af + ld a, [wcf64] + push af + ld a, [wcf65] + push af + ld a, [wcf66] + push af + ld a, $1 + ld [rSVBK], a + call FadeToMenu + callba Function10803d + call Function11a9ce + call RestartMapMusic + ld a, $3 + ld [rSVBK], a + pop af + ld [wcf66], a + pop af + ld [wcf65], a + pop af + ld [wcf64], a + pop af + ld [wJumptableIndex], a + callba Function115dc3 + jp Function119e2e +; 11984e + +Function11984e: ; 11984e + ld a, [wcd80] + and a + jr nz, .asm_1198a0 + ld a, [wcd38] + and a + jr nz, .asm_1198a8 + callba Function170000 + ld a, [wJumptableIndex] + push af + ld a, [wcf64] + push af + ld a, [wcf65] + push af + ld a, [wcf66] + push af + ld a, $1 + ld [rSVBK], a + call FadeToMenu + callba Function108000 + call Function11a9ce + call RestartMapMusic + ld a, $3 + ld [rSVBK], a + pop af + ld [wcf66], a + pop af + ld [wcf65], a + pop af + ld [wcf64], a + pop af + ld [wJumptableIndex], a + callba Function115dc3 + jp Function119e2e + +.asm_1198a0 + ld a, $a + ld [wc300], a + jp Function119e2e + +.asm_1198a8 + callba Function17005a + ld a, [wJumptableIndex] + push af + ld a, [wcf64] + push af + ld a, [wcf65] + push af + ld a, [wcf66] + push af + ld a, $1 + ld [rSVBK], a + call FadeToMenu + callba Function108012 + call Function11a9ce + call RestartMapMusic + ld a, $3 + ld [rSVBK], a + pop af + ld [wcf66], a + pop af + ld [wcf65], a + pop af + ld [wcf64], a + pop af + ld [wJumptableIndex], a + callba Function115dc3 + jp Function119e2e +; 1198ee + +Function1198ee: ; 1198ee + ld hl, UnknownText_0x11aab2 + call Function11a9c0 + call Function119e2e + +Function1198f7: + ld a, [wPartyMonMenuIconAnims + 6] + and a + ret nz + ld hl, $c608 + 2 + call Function119940 + ld hl, $d800 + ld a, $c608 % $100 + ld [hli], a + ld a, $c608 / $100 + ld [hli], a + ld a, $f6 + ld [hli], a + xor a + ld [hli], a + ld a, wc708 % $100 + ld [hli], a + ld a, wc708 / $100 + ld [hli], a + ld a, [wcd51] + ld [hli], a + ld a, [wcd52] + ld [hli], a + call Function119eb4 + call Function119ec2 + ld a, $40 + ld [wcd89], a + ld hl, $d800 + ld de, $de00 + ld bc, $0200 + ld a, $2c + jp Function119e2b +; 119937 + +Function119937: ; 119937 + callba Function1707f4 + jp Function119e2e +; 119940 + +Function119940: ; 119940 + ld de, wc3cd + ld c, $1e +.asm_119945 + ld a, [de] + inc de + ld [hli], a + dec c + jr z, .asm_119953 + and a + jr nz, .asm_119945 + xor a +.asm_11994f + ld [hli], a + dec c + jr nz, .asm_11994f + +.asm_119953 + ret +; 119954 + +Function119954: ; 119954 + ld a, $1c + ld [wcd3c], a + call Function119ed8 + ld hl, $c608 + ld de, wc3cd +.asm_119962 + ld a, [de] + inc de + ld [hli], a + and a + jr nz, .asm_119962 + call Function119ec2 + ld hl, $c608 + ld a, $1e + jp Function119e2b +; 119973 + +Function119973: ; 119973 + ld a, $1 + ld [wcf64], a + xor a + ld [wcf65], a + ld [StringBuffer2 + 10], a + ld de, Unkn1Pals + ld a, $20 + jp Function119e2b +; 119987 + +Function119987: ; 119987 + ld hl, wd001 + ld a, [Unkn1Pals] + or [hl] + jr z, .asm_1199a0 + ld a, [wcf64] + ld l, a + ld a, [wcf65] + ld h, a + ld de, BGPals + ld a, $22 + jp Function119e2b + +.asm_1199a0 + ld a, [StringBuffer2 + 10] + and a + jr z, .asm_1199ae + ld a, $16 + ld [wcf66], a + jp Function119b0d + +.asm_1199ae + ld a, $1b + ld [wcf66], a + ret +; 1199b4 + +Function1199b4: ; 1199b4 + ld a, [wd000 + 130] + and a + jr nz, .asm_1199c7 + ld a, [wd000 + 129] + cp $7 + jr nc, .asm_1199c7 + call Function119e2e + jp Function1199ca + +.asm_1199c7 + jp Function119ac9 +; 1199ca + +Function1199ca: ; 1199ca + ld a, $20 + ld [wcd89], a + ld a, [wcf64] + ld l, a + ld a, [wcf65] + ld h, a + ld de, LYOverrides + ld bc, $0700 + ld a, $28 + jp Function119e2b +; 1199e2 + +Function1199e2: ; 1199e2 + ld c, $c + ld de, Unknown_119e33 + call Function119e4f + jp c, Function119ac9 + ld a, c + cp $1 + jp nz, Function119ac9 + ld hl, $d880 + ld bc, Unknown_119af1 +.asm_1199f9 + ld a, [bc] + and a + jr z, .asm_119a05 + cp [hl] + jp nz, Function119ac9 + inc bc + inc hl + jr .asm_1199f9 + +.asm_119a05 + ld c, $17 + ld de, Unknown_119e40 + call Function119e4f + jp c, .asm_119aa7 + ld a, c + cp $1 + jp nz, .asm_119aa7 + ld a, [wd000 + $880] + cp $31 + jp nz, .asm_119aa7 + ld a, [wd000 + $881] + cp $20 + jp nz, .asm_119aa7 + ld a, [wd000 + $88a] + cp $20 + jp nz, .asm_119aa7 + ld a, [wd000 + $894] + cp $20 + jp nz, .asm_119aa7 + xor a + ld [wd000 + $8a0], a + ld [wd000 + $8a1], a + ld [wd000 + $8a2], a + ld [wd000 + $8a3], a + ld hl, $d8a0 + ld bc, $d889 + call Function119e98 + call Function119e98 + ld hl, $d8a0 + ld a, [wcd2d] + cp [hl] + jr nz, Function119ac9 + inc hl + ld a, [wcd2c] + cp [hl] + jr nz, Function119ac9 + inc hl + ld a, [wcd2b] + cp [hl] + jr nz, Function119ac9 + inc hl + ld a, [wcd2a] + cp [hl] + jr nz, Function119ac9 + xor a + ld [wd000 + $8a0], a + ld [wd000 + $8a1], a + ld [wd000 + $8a2], a + ld [wd000 + $8a3], a + ld hl, $d8a0 + ld bc, $d88e + call Function119e98 + ld bc, $d893 + call Function119e98 + ld hl, $d8a0 + ld a, [wcd2f] + cp [hl] + jr nz, .asm_119aa7 + inc hl + ld a, [wcd2e] + cp [hl] + jr nz, .asm_119aa7 + inc hl + ld a, [wcd31] + cp [hl] + jr nz, .asm_119aa7 + inc hl + ld a, [wcd30] + cp [hl] + jr z, .asm_119aaf + +.asm_119aa7 + ld a, $25 + ld [wcf66], a + jp Function119b45 + +.asm_119aaf + ld a, [StringBuffer2 + 10] + and a + jr nz, .asm_119aa7 + ld a, [wd000 + $895] + sub $30 + ld [StringBuffer2 + 10], a + ld a, [wcf64] + ld [StringBuffer2 + 11], a + ld a, [wcf65] + ld [StringBuffer2 + 12], a + +Function119ac9: + ld a, [Unkn1Pals] + ld l, a + ld a, [wd001] + ld h, a + dec hl + ld a, l + ld [Unkn1Pals], a + ld a, h + ld [wd001], a + ld a, [wcf64] + ld l, a + ld a, [wcf65] + ld h, a + inc hl + ld a, l + ld [wcf64], a + ld a, h + ld [wcf65], a + ld a, $10 + ld [wcf66], a + ret +; 119af1 + +Unknown_119af1: + INCBIN "data/mobile/x-game-code.txt" + INCBIN "data/mobile/x-game-result.txt" +; 119b0d + +Function119b0d: ; 119b0d + ld a, $8 + ld [wcd3c], a + call Function119ed8 + ld a, [StringBuffer2 + 10] + cp $1 + jr z, .asm_119b23 + ld a, $19 + ld [wcf66], a + jr Function119b3b + +.asm_119b23 + ld a, $10 + ld [wcd89], a + ld a, [StringBuffer2 + 11] + ld l, a + ld a, [StringBuffer2 + 12] + ld h, a + ld de, LYOverrides + ld bc, $0700 + ld a, $24 + jp Function119e2b + +Function119b3b: + ld a, [StringBuffer2 + 11] + ld l, a + ld a, [StringBuffer2 + 12] + ld h, a + jr asm_119b4d + +Function119b45: + ld a, [wcf64] + ld l, a + ld a, [wcf65] + ld h, a + +asm_119b4d + ld a, $26 + jp Function119e2b +; 119b52 + +Function119b52: ; 119b52 + ld a, [StringBuffer2 + 10] + cp $1 + jr nz, .asm_119b66 + ld a, $5 + call GetSRAMBank + ld a, $4 + ld [$a800], a + call CloseSRAM + +.asm_119b66 + ld a, $1c + jp Function119e2b +; 119b6b + +Function119b6b: ; 119b6b + ld a, [StringBuffer2 + 10] + cp $1 + jr z, .asm_119b75 + jp Function119e2e + +.asm_119b75 + ld a, [LYOverrides] + ld b, a + ld a, [wd101] + or b + jr z, .asm_119be3 + ld hl, $d800 + ld de, wd102 +.asm_119b85 + ld a, [de] + inc de + cp $d + jr nz, .asm_119b85 + inc de + ld a, [de] + cp $d + jr nz, .asm_119b85 +rept 2 + inc de +endr +.asm_119b93 + ld a, [de] + inc de + cp $d + jr z, .asm_119bfa + call Function119c3e + ret c + ld [hli], a + ld a, [de] + inc de + call Function119c3e + ret c + ld [hli], a + ld a, [de] + inc de + call Function119c3e + ret c + ld [hli], a + ld a, [de] + inc de + call Function119c3e + ret c + ld [hl], a + push de + ld d, [hl] + dec hl + ld c, [hl] + dec hl + ld b, [hl] + dec hl + ld a, [hl] + sla b + sla b + sla b + rla + sla b + rla + ld [hli], a + ld [hl], b + inc hl + rrc c + rrc c + ld [hl], c + dec hl + ld a, $f + and c + or [hl] + ld [hli], a + ld a, [hli] + and $c0 + or [hl] + dec hl + ld [hld], a + dec hl + pop de +rept 3 + inc hl +endr + ld a, h + cp $e0 + jr c, .asm_119b93 + +.asm_119be3 + ld a, $19 + ld [wcf66], a + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$a800], a + call CloseSRAM + xor a + ld [StringBuffer2 + 10], a + ret + +.asm_119bfa + inc de + ld a, [de] + cp $d + jr nz, .asm_119b93 + ld a, l + cp (wd000 + $800 + $69) % $100 + jr nz, .asm_119be3 + ld a, h + cp (wd000 + $800 + $69) / $100 + jr nz, .asm_119be3 + ld a, $5 + call GetSRAMBank + ld a, [wcf64] + ld [$b090], a + ld a, [wcf65] + ld [$b091], a + ld hl, $d800 + ld de, $b023 + ld bc, $0069 + call CopyBytes + ld a, $3 + ld [$a800], a + call CloseSRAM + ld hl, $d800 + ld de, $c608 + ld bc, $0069 + call CopyBytes + jp Function119e2e +; 119c3e + +Function119c3e: ; 119c3e + cp $2b + jr c, .asm_119c68 + jr z, .asm_119c80 + cp $2f + jr c, .asm_119c68 + jr z, .asm_119c84 + cp $30 + jr c, .asm_119c68 + cp $3a + jr c, .asm_119c88 + cp $3d + jr c, .asm_119c68 + jr z, .asm_119c8c + cp $41 + jr c, .asm_119c68 + cp $5b + jr c, .asm_119c8f + cp $61 + jr c, .asm_119c68 + cp $7b + jr c, .asm_119c93 + +.asm_119c68 + ld a, $19 + ld [wcf66], a + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$a800], a + call CloseSRAM + xor a + ld [StringBuffer2 + 10], a + scf + ret + +.asm_119c80 + ld a, $3e + and a + ret + +.asm_119c84 + ld a, $3f + and a + ret + +.asm_119c88 + add $4 + and a + ret + +.asm_119c8c + xor a + and a + ret + +.asm_119c8f + sub $41 + and a + ret + +.asm_119c93 + sub $47 + and a + ret +; 119c97 + +Function119c97: ; 119c97 + ld hl, UnknownText_0x11ab0f + call Function11a9c0 + call Function119e2e + jr Function119cab + +Function119ca2: + ld hl, UnknownText_0x11aaf0 + call Function11a9c0 + call Function119e2e + +Function119cab: + ld a, [wPartyMonMenuIconAnims + 6] + and a + ret nz + ld a, $80 + ld [wcd50], a + call Function119e2e + +Function119cb8: + ld hl, wcd50 + dec [hl] + ret nz + ld a, $0 + ld [wcf66], a + ret +; 119cc3 + +Function119cc3: ; 119cc3 + ld a, [wcd38] + and a + jr z, .asm_119cd1 + dec a + jr z, .asm_119cd6 + ld hl, UnknownText_0x11aa6a + jr .asm_119cd9 + +.asm_119cd1 + ld hl, UnknownText_0x11ab4a + jr .asm_119cd9 + +.asm_119cd6 + ld hl, UnknownText_0x11ab6e + +.asm_119cd9 + call Function11a9c0 + call Function119e2e + +Function119cdf: + ld a, [wPartyMonMenuIconAnims + 6] + and a + ret nz + ld a, $f + ld [wcd3c], a + call Function119e2e + +Function119cec: + call Function119ed8 + ret c + ld a, [wcd46] + ld [wcf66], a + ret +; 119cf7 + +MenuDataHeader_119cf7: ; 119cf7 + db $40 ; flags + db 7, 12 ; start coords + db 11, 19 ; end coords + dw NULL + db 0 ; default option +; 119cff + +MenuData_119cff: ; 119cff + db $40 ; flags + db 7, 15 ; start coords + db 11, 19 ; end coords + dw NULL + db 0 ; default option +; 119d07 + +String_119d07: + db " ▼@" + +Strings_L10ToL100: ; 119d0c + db " L:10 @@" + db " L:20 @@" + db " L:30 @@" + db " L:40 @@" + db " L:50 @@" + db " L:60 @@" + db " L:70 @@" + db " L:80 @@" + db " L:90 @@" + db " L:100@@" + db "CANCEL@@" + +Strings_Ll0ToL40: ; 119d64 + db " L:10 @@" + db " L:20 @@" + db " L:30 @@" + db " L:40 @@" + db "CANCEL@@" + +String_119d8c: + db "CANCEL@" +; 119d93 + +Function119d93: ; 119d93 (46:5d93) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + ld a, [wcd4f] + ld c, 10 + call SimpleMultiply + ld hl, wcd50 + ld [hl], a + ld bc, PartyMon2 - PartyMon1 + ld de, PartyMon1Level + ld a, [PartyCount] +.asm_119daf + push af + ld a, [de] + push hl + push de + pop hl + add hl, bc + push hl + pop de + pop hl + cp [hl] + jr z, .asm_119dbd + jr nc, .asm_119dc6 +.asm_119dbd + pop af + dec a + jr nz, .asm_119daf + pop af + ld [rSVBK], a ; $ff00+$70 + and a + ret +.asm_119dc6 + pop af + ld a, $4 + ld [wcf66], a + pop af + ld [rSVBK], a ; $ff00+$70 + scf + ret + +Function119dd1: ; 119dd1 (46:5dd1) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, [wcd4f] + cp 70 / 10 + jr nc, .asm_119e08 + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + ld hl, PartyMon1Level + ld bc, PartyMon2 - PartyMon1 + ld de, PartySpecies + ld a, [PartyCount] +.asm_119deb + push af + ld a, [de] + cp MEWTWO + jr z, .asm_119dfd + cp MEW + jr z, .asm_119dfd + cp LUGIA + jr c, .asm_119e02 + cp NUM_POKEMON + 1 + jr nc, .asm_119e02 +.asm_119dfd + ld a, [hl] + cp 70 + jr c, .asm_119e0d +.asm_119e02 + add hl, bc + inc de + pop af + dec a + jr nz, .asm_119deb +.asm_119e08 + pop af + ld [rSVBK], a ; $ff00+$70 + and a + ret +.asm_119e0d + pop af + ld a, [de] + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, wcd49 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + ld a, $a + ld [wcf66], a + pop af + ld [rSVBK], a ; $ff00+$70 + scf + ret +; 119e2b (46:5e2b) + +Function119e2b: ; 119e2b (46:5e2b) + call Function3e32 + +Function119e2e: ; 119e2e (46:5e2e) + ld hl, wcf66 + inc [hl] + ret +; 119e33 (46:5e33) + +Unknown_119e33: ; 119e33 + INCBIN "data/mobile/x-game-code-prefix.txt" +Unknown_119e40: + INCBIN "data/mobile/x-game-result-prefix.txt" +; 119e4f + +Function119e4f: ; 119e4f + push bc + ld hl, LYOverrides + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +.asm_119e57 + ld a, [de] + cp [hl] + jr z, .asm_119e64 +.asm_119e5b + inc hl + dec bc + ld a, b + or c + jr nz, .asm_119e57 +.asm_119e61 + pop bc + scf + ret + +.asm_119e64 + push de +.asm_119e65 + ld a, [de] + inc de + cp "\n" + jr z, .asm_119e7a + cp [hl] + jr nz, .asm_119e77 + inc hl + dec bc + ld a, b + or c + jr nz, .asm_119e65 + pop de + jr .asm_119e61 + +.asm_119e77 + pop de + jr .asm_119e5b + +.asm_119e7a + pop de + pop bc + inc hl + ld de, $d880 +.asm_119e80 + ld a, [hli] + ld [de], a + inc de + cp $d + jr z, .asm_119e8c + dec c + jr nz, .asm_119e80 + scf + ret + +.asm_119e8c + and a + ret +; 119e8e + +Function119e8e: ; 119e8e + cp $60 + jr c, .asm_119e95 + sub $57 + ret + +.asm_119e95 + sub $30 + ret +; 119e98 + +Function119e98: ; 119e98 + ld a, $2 +.asm_119e9a + push af + ld a, [bc] + dec bc + call Function119e8e + or [hl] + ld [hl], a + ld a, [bc] + dec bc + call Function119e8e + rlca + rlca + rlca + rlca + or [hl] + ld [hl], a + inc hl + pop af + dec a + and a + jr nz, .asm_119e9a + ret +; 119eb4 + +Function119eb4: ; 119eb4 (46:5eb4) + xor a + ld [wc3cc], a + ld de, wc3ac +.asm_119ebb + ld a, [de] + inc de + ld [hli], a + and a + jr nz, .asm_119ebb + ret + +Function119ec2: ; 119ec2 (46:5ec2) + ld a, $5 + call GetSRAMBank + xor a + ld [$aa5c], a + ld de, $aa4c +.asm_119ece + ld a, [de] + inc de + ld [hli], a + and a + jr nz, .asm_119ece + call CloseSRAM + ret + +Function119ed8: ; 119ed8 (46:5ed8) + ld a, [rSVBK] ; $ff00+$70 + ld [wcd8c], a + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + call Function119eee + ld a, [wcd8c] + ld [rSVBK], a ; $ff00+$70 + ld a, $1 + ld [hBGMapMode], a ; $ff00+$d4 + ret + +Function119eee: ; 119eee (46:5eee) + ld a, [wcd3c] + ld e, a + ld d, 0 + ld hl, Jumptable_119efd +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 119efd (46:5efd) + +Jumptable_119efd: ; 119efd + dw Function119f3f + dw Function119f45 + dw Function119f56 + dw Function119f76 + dw Function119f98 + dw Function11a113 + dw Function11a129 + dw Function11a131 + dw Function11a13d + dw Function11a14b + dw Function11a16d + dw Function11a192 + dw Function11a2e6 + dw Function11a302 + dw Function11a33a + dw Function11a207 + dw Function11a235 + dw Function11a357 + dw Function11a36b + dw Function11a38d + dw Function11a3c5 + dw Function11a3d9 + dw Function11a3f9 + dw Function11a41b + dw Function11a452 + dw Function11a47a + dw Function11a488 + dw Function11a49e + dw Function11a4db + dw Function11a4e8 + dw Function11a4fe + dw Function11a466 + dw Function11a47a +; 119f3f + +Function119f3f: ; 119f3f + call Function11a5b9 + jp Function11a5b0 +; 119f45 + +Function119f45: ; 119f45 + hlcoord 4, 2 + ld de, String_11a661 + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 119f56 + +Function119f56: ; 119f56 + ld a, [wcd44] + and a + jr z, .asm_119f62 + dec a + ld [wcd44], a + scf + ret + +.asm_119f62 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6aa + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 119f76 + +Function119f76: ; 119f76 + ld a, [wcd44] + and a + jr z, .asm_119f82 + dec a + ld [wcd44], a + scf + ret + +.asm_119f82 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a679 + call PlaceString + call Function11a5f5 + xor a + ld [wcd44], a + jp Function11a5b0 +; 119f98 + +Function119f98: ; 119f98 + call Function11a536 + ret c + call PlayClickSFX + ld a, [wcd44] + and a + jr nz, .asm_119fef + call ExitMenu + call Function11a63c + xor a + ld [ScriptVar], a + call Function11a00e + ld a, [ScriptVar] + and a + jr z, .asm_119fd4 + call ExitMenu + callba Function104061 + callba Function115dc3 + ld a, [wcd33] + ld [wcf66], a + ld a, $a + ld [wc300], a + scf + ret + +.asm_119fd4 + hlcoord 4, 2 + ld de, String_11a692 + call PlaceString + ld a, $1 + ld [wc30d], a + ld a, $1 + ld [wPartyMonMenuIconAnims], a + callba Function104061 + and a + ret + +.asm_119fef + call ExitMenu + call ExitMenu + callba Function104061 + ld a, [wcd45] + ld [wcf66], a + callba Function115dc3 + ld a, $a + ld [wc300], a + scf + ret +; 11a00e + +Function11a00e: ; 11a00e + ld a, $5 + call GetSRAMBank + ld a, [$aa4b] + and a + jr z, .asm_11a02a + ld a, [$aa4c] + call CloseSRAM + and a + ret nz + ld a, $5 + call GetSRAMBank + xor a + ld [$aa4b], a + +.asm_11a02a + call CloseSRAM + ld a, [BGMapPalBuffer] + and a + jr z, .asm_11a039 + dec a + jr z, .asm_11a081 + jp Function11a0ca + +.asm_11a039 + ld a, $3 + ld [rSVBK], a + ld hl, $c608 + ld de, $d800 + ld bc, $00f6 + call CopyBytes + ld a, $1 + ld [rSVBK], a + call FadeToMenu + callba Function11765d + call Function11a9ce + ld a, $3 + ld [rSVBK], a + ld hl, $d800 + ld de, $c608 + ld bc, $00f6 + call CopyBytes + ld a, $1 + ld [rSVBK], a + callba Function115d99 + ld c, $0 + callba Function115e18 + ld a, $1 + ld [wc305], a + ret + +.asm_11a081 + xor a + ld [wMenuBorderLeftCoord], a + ld [wMenuBorderTopCoord], a + ld a, $13 + ld [wMenuBorderRightCoord], a + ld a, $5 + ld [wMenuBorderBottomCoord], a + call BackUpTiles + callba Function11765d + callba Function117ab4 + callba Function106462 + callba Function106464 + call ExitMenu + callba Function104061 + callba Function115d99 + ld c, $0 + callba Function115e18 + ld a, $1 + ld [wc305], a + ret +; 11a0ca + +Function11a0ca: ; 11a0ca + xor a + ld [wMenuBorderLeftCoord], a + ld [wMenuBorderTopCoord], a + ld a, $13 + ld [wMenuBorderRightCoord], a + ld a, $11 + ld [wMenuBorderBottomCoord], a + call BackUpTiles + callba Function11765d + callba Function17d3f6 + callba Function106462 + callba Function106464 + call ExitMenu + callba Function104061 + callba Function115d99 + ld c, $0 + callba Function115e18 + ld a, $1 + ld [wc305], a + ret +; 11a113 + +Function11a113: ; 11a113 + call Function11a63c + ld c, $1 + callba Function115e18 + hlcoord 4, 2 + ld de, String_11a6c8 + call PlaceString + and a + ret +; 11a129 + +Function11a129: ; 11a129 + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a131 + +Function11a131: ; 11a131 + ld hl, wcd44 + dec [hl] + ret nz + ld a, [wcd3c] + inc a + ld [wcd3c], a + +Function11a13d: + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret +; 11a14b + +Function11a14b: ; 11a14b + ld hl, wcd85 + ld a, [hl] + cp $f3 + jr nz, .asm_11a155 + and a + ret + +.asm_11a155 + call Function11a1d6 + ret c + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6f1 + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a16d + +Function11a16d: ; 11a16d + ld a, [wcd44] + and a + jr z, .asm_11a179 + dec a + ld [wcd44], a + scf + ret + +.asm_11a179 + call Function11a63c + call Function11a1e6 + hlcoord 4, 2 + ld de, wPartyMonMenuIconAnims + 48 + 2 + call PlaceString + call Function11a5f5 + xor a + ld [wcd44], a + jp Function11a5b0 +; 11a192 + +Function11a192: ; 11a192 + call Function11a536 + ret c + call PlayClickSFX + ld a, [wcd44] + and a + jr nz, .asm_11a1b6 + call ExitMenu + callba Function104061 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret + +.asm_11a1b6 + call ExitMenu + callba Function104061 + ld a, [wcd45] + ld [wcf66], a + ld [wcd80], a + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + scf + ret +; 11a1d6 + +Function11a1d6: ; 11a1d6 + ld a, [wcd85] + cp $50 + jr nz, .asm_11a1e4 + ld a, $d3 + call Function118805 + scf + ret + +.asm_11a1e4 + and a + ret +; 11a1e6 + +Function11a1e6: ; 11a1e6 + ld hl, String_11a706 + ld de, wPartyMonMenuIconAnims + 48 + 2 + call Function11a1ff + ld hl, wcd85 + call Function11a1ff + ld hl, String_11a70b + call Function11a1ff + ld a, $50 + ld [de], a + ret +; 11a1ff + +Function11a1ff: ; 11a1ff +.asm_11a1ff + ld a, [hli] + cp $50 + ret z + ld [de], a + inc de + jr .asm_11a1ff +; 11a207 + +Function11a207: ; 11a207 + ld hl, MenuDataHeader_11a2de + call LoadMenuDataHeader + call Function1cbb + call GetMemTileCoord + call Function321c + hlcoord 16, 8 + ld de, String_11a2cf + call PlaceString + hlcoord 16, 10 + ld de, String_11a2d3 + call PlaceString + hlcoord 15, 8 + ld a, $ed + ld [hl], a + xor a + ld [wcd44], a + jp Function11a5b0 +; 11a235 + +Function11a235: ; 11a235 + ld hl, hJoyPressed + ld a, [hl] + and A_BUTTON + jr nz, .asm_11a28f + ld a, [hl] + and B_BUTTON + jr nz, .asm_11a2c1 + ld a, [hl] + and D_UP + jr nz, .asm_11a251 + ld a, [hl] + and D_DOWN + jr nz, .asm_11a270 +.asm_11a24c + call Function11a9f0 + scf + ret + +.asm_11a251 + xor a + ld [wcd8a], a + ld [wcd8b], a + ld a, [wcd44] + and a + jr z, .asm_11a24c + xor a + ld [wcd44], a + hlcoord 15, 8 + ld a, $ed + ld [hl], a + hlcoord 15, 10 + ld a, $7f + ld [hl], a + jr .asm_11a24c + +.asm_11a270 + xor a + ld [wcd8a], a + ld [wcd8b], a + ld a, [wcd44] + and a + jr nz, .asm_11a24c + inc a + ld [wcd44], a + hlcoord 15, 8 + ld a, $7f + ld [hl], a + hlcoord 15, 10 + ld a, $ed + ld [hl], a + jr .asm_11a24c + +.asm_11a28f + xor a + ld [wcd8a], a + ld [wcd8b], a + call PlayClickSFX + ld a, [wcd44] + and a + jr nz, .asm_11a2c4 + call ExitMenu + callba Function104061 + ld a, [wcd46] + cp $0 + jr z, .asm_11a2b4 + ld a, [wcd47] + jr .asm_11a2b7 + +.asm_11a2b4 + ld a, [wcd33] + +.asm_11a2b7 + ld [wcf66], a + ld a, $a + ld [wc300], a + scf + ret + +.asm_11a2c1 + call PlayClickSFX + +.asm_11a2c4 + call ExitMenu + callba Function104061 + and a + ret +; 11a2cf + +String_11a2cf: ; 11a2cf + db "YES@" +; 11a2d3 + +String_11a2d3: ; 11a2d3 + db "NO@" +; 11a2d6 + +MenuDataHeader_11a2d6: ; 11a2d6 + db $40 ; flags + db 6, 14 ; start coords + db 10, 19 ; end coords + dw NULL + db 0 ; default option +; 11a2de + +MenuDataHeader_11a2de: ; 11a2de + db $40 ; flags + db 7, 14 ; start coords + db 11, 19 ; end coords + dw NULL + db 0 ; default option +; 11a2e6 + +Function11a2e6: ; 11a2e6 + call Function11a63c + ld c, $2 + callba Function115e18 + hlcoord 4, 2 + ld de, String_11a71e + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a302 + +Function11a302: ; 11a302 + ld a, [wcd44] + and a + jr z, .asm_11a30e + dec a + ld [wcd44], a + scf + ret + +.asm_11a30e + call Function11a63c + hlcoord 4, 2 + ld de, String_11a72a + call PlaceString + hlcoord 9, 4 + ld de, wcd68 + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + hlcoord 14, 4 + ld de, wcd67 + lb bc, PRINTNUM_LEADINGZEROS | 1, 2 + call PrintNum + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a33a + +Function11a33a: ; 11a33a + ld a, [wcd44] + and a + jr z, .asm_11a346 + dec a + ld [wcd44], a + scf + ret + +.asm_11a346 + call ExitMenu + callba Function104061 + callba Function115dc3 + and a + ret +; 11a357 + +Function11a357: ; 11a357 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a743 + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a36b + +Function11a36b: ; 11a36b + ld a, [wcd44] + and a + jr z, .asm_11a377 + dec a + ld [wcd44], a + scf + ret + +.asm_11a377 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a755 + call PlaceString + call Function11a5f5 + xor a + ld [wcd44], a + jp Function11a5b0 +; 11a38d + +Function11a38d: ; 11a38d + call Function11a536 + ret c + call PlayClickSFX + ld a, [wcd44] + and a + jr nz, .asm_11a3b1 + call ExitMenu + callba Function104061 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret + +.asm_11a3b1 + call ExitMenu + callba Function104061 + ld a, [wcd45] + ld [wcf66], a + ld [wcd80], a + scf + ret +; 11a3c5 + +Function11a3c5: ; 11a3c5 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a762 + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a3d9 + +Function11a3d9: ; 11a3d9 + ld a, [wcd44] + and a + jr z, .asm_11a3e5 + dec a + ld [wcd44], a + scf + ret + +.asm_11a3e5 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a779 + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a3f9 + +Function11a3f9: ; 11a3f9 + ld a, [wcd44] + and a + jr z, .asm_11a405 + dec a + ld [wcd44], a + scf + ret + +.asm_11a405 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a755 + call PlaceString + call Function11a5f5 + xor a + ld [wcd44], a + jp Function11a5b0 +; 11a41b + +Function11a41b: ; 11a41b + call Function11a536 + ret c + call PlayClickSFX + ld a, [wcd44] + and a + jr nz, .asm_11a43f + call ExitMenu + callba Function104061 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret + +.asm_11a43f + call ExitMenu + callba Function104061 + ld a, $1c + ld [wcf66], a + ld [wcd80], a + scf + ret +; 11a452 + +Function11a452: ; 11a452 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a791 + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a466 + +Function11a466: ; 11a466 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a7c1 + call PlaceString + ld a, $80 + ld [wcd44], a + jp Function11a5b0 +; 11a47a + +Function11a47a: ; 11a47a + ld a, [wcd44] + and a + jr z, .asm_11a486 + dec a + ld [wcd44], a + scf + ret + +.asm_11a486 + and a + ret +; 11a488 + +Function11a488: ; 11a488 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a7ac + call PlaceString + call Function11a5f5 + xor a + ld [wcd44], a + jp Function11a5b0 +; 11a49e + +Function11a49e: ; 11a49e + call Function11a536 + ret c + call PlayClickSFX + ld a, [wcd44] + and a + jr nz, .asm_11a4c7 + call ExitMenu + callba Function104061 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + ld a, $14 + ld [wcf66], a + and a + ret + +.asm_11a4c7 + call ExitMenu + callba Function104061 + ld a, [wcd46] + ld [wcf66], a + ld [wcd80], a + scf + ret +; 11a4db + +Function11a4db: ; 11a4db + call Function11a63c + ld de, String_11a6db + hlcoord 4, 2 + call PlaceString + ret +; 11a4e8 + +Function11a4e8: ; 11a4e8 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a7d7 + call PlaceString + call Function11a5f5 + xor a + ld [wcd44], a + jp Function11a5b0 +; 11a4fe + +Function11a4fe: ; 11a4fe + call Function11a536 + ret c + call PlayClickSFX + ld a, [wcd44] + and a + jr nz, .asm_11a522 + call ExitMenu + callba Function104061 + call Function11a63c + hlcoord 4, 2 + ld de, String_11a6d2 + call PlaceString + and a + ret + +.asm_11a522 + call ExitMenu + callba Function104061 + ld a, [wcd45] + ld [wcf66], a + ld [wcd80], a + scf + ret +; 11a536 + +Function11a536: ; 11a536 + ld hl, hJoyPressed + ld a, [hl] + and $1 + jr nz, .asm_11a5a7 + ld a, [hl] + and $2 + jr nz, .asm_11a5a2 + ld a, [hl] + and $40 + jr nz, .asm_11a564 + ld a, [hl] + and $80 + jr nz, .asm_11a583 +.asm_11a54d + ld a, [wcd3c] + cp $4 + jr z, .asm_11a562 + call Function11a9f0 + jr nz, .asm_11a562 + call ExitMenu + callba Function104061 + +.asm_11a562 + scf + ret + +.asm_11a564 + xor a + ld [wcd8a], a + ld [wcd8b], a + ld a, [wcd44] + and a + jr z, .asm_11a54d + xor a + ld [wcd44], a + hlcoord 15, 7 + ld a, $ed + ld [hl], a + hlcoord 15, 9 + ld a, $7f + ld [hl], a + jr .asm_11a54d + +.asm_11a583 + xor a + ld [wcd8a], a + ld [wcd8b], a + ld a, [wcd44] + and a + jr nz, .asm_11a54d + inc a + ld [wcd44], a + hlcoord 15, 7 + ld a, $7f + ld [hl], a + hlcoord 15, 9 + ld a, $ed + ld [hl], a + jr .asm_11a54d + +.asm_11a5a2 + ld a, $1 + ld [wcd44], a + +.asm_11a5a7 + xor a + ld [wcd8a], a + ld [wcd8b], a + and a + ret +; 11a5b0 + +Function11a5b0: ; 11a5b0 + ld a, [wcd3c] + inc a + ld [wcd3c], a + scf + ret +; 11a5b9 + +Function11a5b9: ; 11a5b9 + xor a + ld [wMenuBorderLeftCoord], a + ld [wMenuBorderTopCoord], a + ld a, $13 + ld [wMenuBorderRightCoord], a + ld a, $5 + ld [wMenuBorderBottomCoord], a + call BackUpTiles + hlcoord 0, 0, AttrMap + ld b, $6 + ld c, $14 + hlcoord 0, 0 + ld b, $4 + ld c, $12 + call Function3eea + callba Function104061 + call UpdateSprites + ld c, $0 + callba Function115e18 + ld a, $1 + ld [wc305], a + ret +; 11a5f5 + +Function11a5f5: ; 11a5f5 + ld a, $e + ld [wMenuBorderLeftCoord], a + ld a, $13 + ld [wMenuBorderRightCoord], a + ld a, $6 + ld [wMenuBorderTopCoord], a + ld a, $a + ld [wMenuBorderBottomCoord], a + call BackUpTiles + hlcoord 14, 6, AttrMap + ld b, $5 + ld c, $6 + hlcoord 14, 6 + ld b, $3 + ld c, $4 + call Function3eea + hlcoord 16, 7 + ld de, String_11a2cf + call PlaceString + hlcoord 16, 9 + ld de, String_11a2d3 + call PlaceString + hlcoord 15, 7 + ld a, $ed + ld [hl], a + callba Function104061 + ret +; 11a63c + +Function11a63c: ; 11a63c + hlcoord 4, 1 + ld de, String_11a7f4 + call PlaceString + hlcoord 4, 2 + ld de, String_11a7f4 + call PlaceString + hlcoord 4, 3 + ld de, String_11a7f4 + call PlaceString + hlcoord 4, 4 + ld de, String_11a7f4 + call PlaceString + ret +; 11a661 + +String_11a661: ; 11a661 + db "これから モバイルセンターに" + next "でんわ", $1f, "かけます@" +; 11a679 + +String_11a679: ; 11a679 + db "モバイルアダプタ", $25, "じゅんびは" + next "できて いますか?@" +; 11a692 + +String_11a692: ; 11a692 + db "でんわ", $1f, "かけています" + next "しばらく おまちください@" +; 11a6aa + +String_11a6aa: ; 11a6aa + db "でんわをかけると つうわりょう" + next "せつぞくりょう", $4a, "かかります@" +; 11a6c8 + +String_11a6c8: ; 11a6c8 + db "せつぞく しました@" +; 11a6d2 + +String_11a6d2: ; 11a6d2 + db "つうしん ちゅう@" +; 11a6db + +String_11a6db: ; 11a6db + db "つうしん ちゅう" + next "セレクト エーでちゅうし@" +; 11a6f1 + +String_11a6f1: ; 11a6f1 + db "この サービスには" + next "つうわりょう", $25, "ほかに@" +; 11a706 + +String_11a706: ; 11a706 + db "おかね", $4a, "@" +; 11a70b + +String_11a70b: ; 11a70b + db "えん" + next "かかります よろしい ですか?@" +; 11a71e + +String_11a71e: ; 11a71e + db "つうしん しゅうりょう@" +; 11a72a + +String_11a72a: ; 11a72a + db "つないだ じかん" + next " やく ふん びょう@" +; 11a743 + +String_11a743: ; 11a743 + db "もっていない データが" + next "あります!@" +; 11a755 + +String_11a755: ; 11a755 + db "データ", $1f, "よみこみますか?@" +; 11a762 + +String_11a762: ; 11a762 + db "おなじ データ", $1f, "よみこんだ" + next "こと", $4a, "ありますが@" +; 11a779 + +String_11a779: ; 11a779 + db "そのデータ", $24, "なくなっているか" + next "こわれて います@" +; 11a791 + +String_11a791: ; 11a791 + db "もっている データと" + next "おなじデータしか ありません!@" +; 11a7ac + +String_11a7ac: ; 11a7ac + db "データ", $25, "よみこみを" + next "ちゅうし しますか?@" +; 11a7c1 + +String_11a7c1: ; 11a7c1 + db "あたらしい ニュースは" + next "ありません でした@" +; 11a7d7 + +String_11a7d7: ; 11a7d7 + db "あたらしいニュース", $4a, "あります" + next "ニュース", $1f, "よみこみますか?@" +; 11a7f4 + +String_11a7f4: ; 11a7f4 + db " @" +; 11a804 + +MenuDataHeader_11a804: ; 11a804 + db $40 ; flags + db 0, 0 ; start coords + db 5, 19 ; end coords + dw NULL + db 0 ; default option +; 11a80c + +Function11a80c: ; 11a80c + ld de, hDivisor + ld bc, hDividend + ld hl, Unknown_11a89a + call Function11a88c + ld bc, hQuotient + ld hl, Unknown_11a8ba + call Function11a88c + ld bc, $ffb5 + ld hl, Unknown_11a8da + call Function11a88c + xor a + ld b, a + ld a, [hDivisor] + and $f + ld e, a + ld a, [$ffb9] + and $f + call Function11a884 + ld e, a + ld a, [$ffbb] + and $f + call Function11a884 + ld [wcd62], a + ld e, b + xor a + ld b, a + ld a, [hDivisor] + and $f0 + swap a + call Function11a884 + ld e, a + ld a, [$ffb9] + and $f0 + swap a + call Function11a884 + ld e, a + ld a, [$ffbb] + and $f0 + swap a + call Function11a884 + ld [wcd63], a + ld e, b + xor a + ld b, a + ld a, [hMathBuffer] + and $f + call Function11a884 + ld e, a + ld a, [$ffba] + and $f + call Function11a884 + ld e, a + ld a, [$ffbc] + and $f + call Function11a884 + ld [wcd64], a + ret +; 11a884 + +Function11a884: ; 11a884 + add e + cp $a + ret c + sub $a + inc b + ret +; 11a88c + +Function11a88c: ; 11a88c + ld a, [bc] + sla a + ld c, a + xor a + ld b, a + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + ret +; 11a89a + +Unknown_11a89a: ; 11a89a +x = 0 +rept 16 + bcd x % 100, x / 100 +x = x + 1 +endr + +Unknown_11a8ba: ; 11a8ba +x = 0 +rept 16 + bcd x % 100, x / 100 +x = x + 16 +endr + +Unknown_11a8da: ; 11a8da +x = 0 +rept 16 + bcd x % 100, x / 100 +x = x + 256 +endr +; 11a8fa + +Function11a8fa: ; 11a8fa + ld a, [wPartyMonMenuIconAnims + 6] + ld e, a + ld d, 0 + ld hl, Jumptable_11a909 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11a909 + +Jumptable_11a909: ; 11a909 + dw Function11a970 + dw Function11a90f + dw Function11a971 +; 11a90f + +Function11a90f: ; 11a90f + ld a, $1 + ld [rSVBK], a + call SpeechTextBox + ld a, $50 + ld hl, wPartyMonMenuIconAnims + 12 + ld bc, $008c + call ByteFill + ld a, [wPartyMonMenuIconAnims + 7] + ld l, a + ld a, [wPartyMonMenuIconAnims + 8] + ld h, a + ld de, wPartyMonMenuIconAnims + 12 +.asm_11a92c + ld a, [hli] + cp $57 + jr z, .asm_11a94f + cp $0 + jr z, .asm_11a92c + cp $50 + jr z, .asm_11a92c + cp $1 + jr z, .asm_11a941 + ld [de], a + inc de + jr .asm_11a92c + +.asm_11a941 + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a +.asm_11a945 + ld a, [bc] + inc bc + cp $50 + jr z, .asm_11a92c + ld [de], a + inc de + jr .asm_11a945 + +.asm_11a94f + xor a + ld [wPartyMonMenuIconAnims + 11], a + ld a, $20 + ld [wPartyMonMenuIconAnims + 7], a + ld a, $c3 + ld [wPartyMonMenuIconAnims + 8], a + hlcoord 1, 14 + ld a, l + ld [wPartyMonMenuIconAnims + 9], a + ld a, h + ld [wPartyMonMenuIconAnims + 10], a + ld hl, wPartyMonMenuIconAnims + 6 + inc [hl] + ld a, $3 + ld [rSVBK], a + +Function11a970: + ret +; 11a971 + +Function11a971: ; 11a971 + ld hl, wPartyMonMenuIconAnims + 11 + ld a, [hJoyDown] + and a + jr nz, .asm_11a97f + ld a, [hl] + and a + jr z, .asm_11a97f + dec [hl] + ret + +.asm_11a97f + ld a, [Options] + and $7 + ld [hl], a + ld hl, wcd8d + ld a, [wPartyMonMenuIconAnims + 7] + ld e, a + ld a, [wPartyMonMenuIconAnims + 8] + ld d, a + ld a, [de] + inc de + ld [hli], a + ld a, e + ld [wPartyMonMenuIconAnims + 7], a + ld a, d + ld [wPartyMonMenuIconAnims + 8], a + ld a, $50 + ld [hl], a + ld a, [wPartyMonMenuIconAnims + 9] + ld l, a + ld a, [wPartyMonMenuIconAnims + 10] + ld h, a + ld de, wcd8d + call PlaceString + ld a, c + ld [wPartyMonMenuIconAnims + 9], a + ld a, b + ld [wPartyMonMenuIconAnims + 10], a + ld a, [wcd8d] + cp $50 + jr nz, .asm_11a9bf + xor a + ld [wPartyMonMenuIconAnims + 6], a + +.asm_11a9bf + ret +; 11a9c0 + +Function11a9c0: ; 11a9c0 + ld a, l + ld [wPartyMonMenuIconAnims + 7], a + ld a, h + ld [wPartyMonMenuIconAnims + 8], a + ld a, $1 + ld [wPartyMonMenuIconAnims + 6], a + ret +; 11a9ce + +Function11a9ce: ; 11a9ce + call WhiteBGMap + call Function2bae + call Call_ExitMenu + callba Function106462 + callba Function106464 + call Functiond90 + callba Function2b5c + call UpdateSprites + ret +; 11a9f0 + +Function11a9f0: ; 11a9f0 + ld a, $1 + and a + ret +; 11a9f4 + +Function11a9f4: ; 11a9f4 + ld a, [wcd8a] + ld l, a + ld a, [wcd8b] + ld h, a + inc hl + ld a, l + ld [wcd8a], a + ld a, h + ld [wcd8b], a + ld de, $d5d0 + add hl, de + bit 7, h + ret nz + ld a, $d6 + call Function118805 + and a + ret +; 11aa13 + +UnknownText_0x11aa13: ; 0x11aa13 + text "SAVE FILE will be" + line "sent." + done +; 0x11aa2c + +UnknownText_0x11aa2c: ; 0x11aa2c + text "Sent SAVE FILE." + line "Reading NEWS…" + done +; 0x11aa4b + +UnknownText_0x11aa4b: ; 0x11aa4b + text "Reading NEWS…" + done +; 0x11aa5a + +UnknownText_0x11aa5a: ; 0x11aa5a + text "Received NEWS!" + done +; 0x11aa6a + +UnknownText_0x11aa6a: ; 0x11aa6a + text "Quit reading NEWS?" + done +; 0x11aa7e + +UnknownText_0x11aa7e: ; 0x11aa7e + text "Canceled sending" + line "SAVE FILE." + done +; 0x11aa9b + +UnknownText_0x11aa9b: ; 0x11aa9b + text "ODD EGG" + line "was received!" + done +; 0x11aab2 + +UnknownText_0x11aab2: ; 0x11aab2 + text "Registering your" + line "record…" + done +; 0x11aacc + +UnknownText_0x11aacc: ; 0x11aacc + text "One visit per day" + line "per BATTLE ROOM!" + done +; 0x11aaf0 + +UnknownText_0x11aaf0: ; 0x11aaf0 + text "A party #MON" + line "tops this level." + done +; 0x11ab0f + +UnknownText_0x11ab0f: ; 0x11ab0f + text_from_ram wcd49 + text " may go" + line "only to BATTLE" + + para "ROOMS that are" + line "Lv.70 or higher." + done +; 0x11ab4a + +UnknownText_0x11ab4a: ; 0x11ab4a + text "Cancel your BATTLE" + line "ROOM challenge?" + done +; 0x11ab6e + +UnknownText_0x11ab6e: ; 0x11ab6e + text "Exit GYM LEADER" + line "HONOR ROLL?" + done +; 0x11ab8b + +UnknownText_0x11ab8b: ; 0x11ab8b + text "Linking with the" + line "CENTER…" + done +; 0x11aba5 + +Text_WhatLevelDoYouWantToChallenge: ; 0x11aba5 + text "What level do you" + line "want to challenge?" + done +; 0x11abcb + +Text_CheckBattleRoomListByMaxLevel: ; 0x11abcb + text "Check BATTLE ROOM" + line "list by max level?" + done +; 0x11abf1 + +UnknownText_0x11abf1: ; 0x11abf1 + text "Enter which" + line "BATTLE ROOM?" + done +; 0x11ac0b + +UnknownText_0x11ac0b: ; 0x11ac0b + text "Which BATTLE ROOM?" + done +; 0x11ac1f + +UnknownText_0x11ac1f: ; 0x11ac1f + text_from_ram StringBuffer3 + text "'s ROOM" + line "@" + text_from_ram StringBuffer4 + text "?" + cont "Please wait…" + done +; 0x11ac3e + +Function11ac3e: ; 11ac3e + call SpeechTextBox + call FadeToMenu + callab InefficientlyClear121BytesAtwc300 + call Function11ac51 + call Function2b3c + ret +; 11ac51 + +Function11ac51: ; 11ac51 + xor a + ld [hBGMapMode], a + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + xor a + ld [$ffde], a + ld [wcd49], a + ld [wcd4a], a + ld [wcd4c], a + ld [wcd4d], a + ld [wcd4e], a + call Function11ad1b + call DelayFrame +.asm_11ac82 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_11aca8 + call Function11b314 + call Function11acb7 + call Function11ad6e + ld a, $78 + ld [wc3b5], a + callba Function8cf7a + callba Function104061 + jr .asm_11ac82 + +.asm_11aca8 + call ClearSprites + pop af + ld [hInMenu], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret +; 11acb7 + +Function11acb7: ; 11acb7 + ld hl, Unknown_11ba44 + ld a, [wcd49] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + decoord 6, 6 + ld a, [hli] + ld [de], a + decoord 0, 7 + ld bc, $0007 + call CopyBytes + ld a, [wcd49] + inc a + ld [wcd49], a + ld a, [hl] + cp $ff + jr nz, .asm_11aceb + xor a + ld [wcd49], a + +.asm_11aceb + ld hl, Unknown_11bb7d + ld a, [wcd4a] + ld c, a + ld b, $0 + sla c + rl b + sla c + rl b + sla c + rl b + add hl, bc + decoord 3, 9 + ld bc, $0007 + call CopyBytes + ld a, [wcd4a] + inc a + ld [wcd4a], a + inc hl + ld a, [hl] + cp $ff + ret nz + xor a + ld [wcd4a], a + ret +; 11ad1b + +Function11ad1b: ; 11ad1b + call WhiteBGMap + call ClearSprites + call ClearTileMap + callba Function17c000 + ld a, [wcfa9] + ld [wcd82], a + dec a + ld [hObjectStructIndexBuffer], a + ld a, $10 + ld [wc3b7], a + ld hl, Function8e83f + ld a, BANK(Function8e83f) + ld e, $4 + rst FarCall + ld hl, Function8e83f + ld a, BANK(Function8e83f) + ld e, $5 + rst FarCall + ld hl, $c6d0 + ld bc, $0115 + xor a + call ByteFill + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [wcd30], a + ld a, $2 + ld [wc7d4], a + callba Function40bdc + ret +; 11ad6e + +Function11ad6e: ; 11ad6e + ld a, [wJumptableIndex] + ld hl, Jumptable_11ad78 + call Function11b239 + jp [hl] +; 11ad78 + +Jumptable_11ad78: ; 11ad78 + dw Function11b082 + dw Function11b0ff + dw Function11ad95 + dw Function11adc4 + dw Function11ae4e + dw Function11ae98 + dw Function11ad8f + dw Function11af04 + dw Function11af4e +; 11ad8a + +Function11ad8a: ; 11ad8a + ld hl, wJumptableIndex + inc [hl] + ret +; 11ad8f + +Function11ad8f: ; 11ad8f + ld hl, wJumptableIndex + set 7, [hl] + ret +; 11ad95 + +Function11ad95: ; 11ad95 + ld hl, MenuDataHeader_11ae38 + call LoadMenuDataHeader + call Function1cbb + hlcoord 12, 12 + ld de, String_11ae40 + call PlaceString + hlcoord 10, 10, AttrMap + ld bc, $0808 + call Function11afd6 + callba Function104061 + call Function11ad8a + ld a, $1 + ld [wcfa9], a + ld hl, Unknown_11afcc + call Function11afb7 + +Function11adc4: + ld hl, hJoyPressed + ld a, [hl] + and a + ret z + ld a, [hl] + and $40 + jr nz, .asm_11ade6 + ld a, [hl] + and $80 + jr nz, .asm_11aded + ld a, [hl] + and $1 + jr nz, .asm_11ae06 + ld a, [hl] + and $2 + ret z + call PlayClickSFX + xor a + ld [wJumptableIndex], a + jr .asm_11ae2e + +.asm_11ade6 + ld a, [wcfa9] + dec a + ret z + jr .asm_11adf4 + +.asm_11aded + ld a, [wcfa9] + inc a + cp $4 + ret z + +.asm_11adf4 + push af + ld hl, Unknown_11afcc + call Function11afbb + pop af + ld [wcfa9], a + ld hl, Unknown_11afcc + call Function11afb7 + ret + +.asm_11ae06 + call PlayClickSFX + ld a, [wcfa9] + dec a + ld hl, wcd30 + ld [hl], a + and a + jr z, .asm_11ae28 + hlcoord 2, 14 + ld a, [wcfa9] + cp $2 + jr z, .asm_11ae23 + call Function11b272 + jr .asm_11ae2b + +.asm_11ae23 + call Function11b267 + jr .asm_11ae2b + +.asm_11ae28 + ld a, $3 + ld [hl], a + +.asm_11ae2b + call Function11ad8a + +.asm_11ae2e + call ExitMenu + callba Function104061 + ret +; 11ae38 + +MenuDataHeader_11ae38: ; 11ae38 + db $40 ; flags + db 10, 10 ; start coords + db 17, 17 ; end coords + dw NULL + db 0 ; default option +; 11ae40 + +String_11ae40: ; 11ae40 + db "どちらでも" + next "♂ォス" + next "♀メス" + db "@" +; 11ae4e + +Function11ae4e: ; 11ae4e + ld hl, MenuDataHeader_11afe8 + call LoadMenuDataHeader + call Function1cbb + hlcoord 10, 14 + ld de, String_11aff0 + call PlaceString + ld hl, MenuDataHeader_11b013 + call LoadMenuDataHeader + call Function1cbb + hlcoord 16, 8 + ld de, String_11b01b + call PlaceString + hlcoord 14, 7, AttrMap + lb bc, 5, 6 + call Function11afd6 + hlcoord 9, 12, AttrMap + lb bc, 6, 11 + call Function11afd6 + callba Function104061 + call Function11ad8a + ld a, $1 + ld [wcfa9], a + ld hl, Unknown_11afd2 + call Function11afb7 + +Function11ae98: + ld hl, hJoyPressed + ld a, [hl] + and a + ret z + ld a, [hl] + and D_UP + jr nz, .asm_11aec1 + ld a, [hl] + and D_DOWN + jr nz, .asm_11aec8 + ld a, [hl] + and A_BUTTON + jr nz, .asm_11aee1 + ld a, [hl] + and B_BUTTON + ret z + call PlayClickSFX +.asm_11aeb4 + hlcoord 2, 14 + ld a, $7f + ld [hl], a + ld a, $1 + ld [wJumptableIndex], a + jr .asm_11aef7 + +.asm_11aec1 + ld a, [wcfa9] + dec a + ret z + jr .asm_11aecf + +.asm_11aec8 + ld a, [wcfa9] + inc a + cp $3 + ret z + +.asm_11aecf + push af + ld hl, Unknown_11afd2 + call Function11afbb + pop af + ld [wcfa9], a + ld hl, Unknown_11afd2 + call Function11afb7 + ret + +.asm_11aee1 + call PlayClickSFX + ld a, [wcfa9] + cp $2 + jr z, .asm_11aeb4 + ld a, [wcd4b] + ld [ScriptVar], a + call Function11b022 + call Function11ad8a + +.asm_11aef7 + call ExitMenu + call ExitMenu + callba Function104061 + ret +; 11af04 + +Function11af04: ; 11af04 + ld hl, MenuDataHeader_11afe8 + call LoadMenuDataHeader + call Function1cbb + hlcoord 10, 14 + ld de, String_11b003 + call PlaceString + ld hl, MenuDataHeader_11b013 + call LoadMenuDataHeader + call Function1cbb + hlcoord 16, 8 + ld de, String_11b01b + call PlaceString + hlcoord 14, 7, AttrMap + lb bc, 5, 6 + call Function11afd6 + hlcoord 9, 12, AttrMap + lb bc, 6, 11 + call Function11afd6 + callba Function104061 + call Function11ad8a + ld a, $2 + ld [wcfa9], a + ld hl, Unknown_11afd2 + call Function11afb7 + +Function11af4e: + ld hl, hJoyPressed + ld a, [hl] + and a + ret z + ld a, [hl] + and D_UP + jr nz, .asm_11af77 + ld a, [hl] + and D_DOWN + jr nz, .asm_11af7e + ld a, [hl] + and A_BUTTON + jr nz, .asm_11af97 + ld a, [hl] + and B_BUTTON + ret z + call PlayClickSFX +.asm_11af6a + hlcoord 2, 14 + ld a, $7f + ld [hl], a + ld a, $1 + ld [wJumptableIndex], a + jr .asm_11afaa + +.asm_11af77 + ld a, [wcfa9] + dec a + ret z + jr .asm_11af85 + +.asm_11af7e + ld a, [wcfa9] + inc a + cp $3 + ret z + +.asm_11af85 + push af + ld hl, Unknown_11afd2 + call Function11afbb + pop af + ld [wcfa9], a + ld hl, Unknown_11afd2 + call Function11afb7 + ret + +.asm_11af97 + call PlayClickSFX + ld a, [wcfa9] + cp $2 + jr z, .asm_11af6a + ld a, $6 + ld [wJumptableIndex], a + xor a + ld [ScriptVar], a + +.asm_11afaa + call ExitMenu + call ExitMenu + callba Function104061 + ret +; 11afb7 + +Function11afb7: ; 11afb7 + ld e, $ed + jr asm_11afbd + +Function11afbb: + ld e, $7f + +asm_11afbd: + ld a, [wcfa9] + dec a + ld c, a + ld b, 0 +rept 2 + add hl, bc +endr + ld a, e + ld e, [hl] + inc hl + ld d, [hl] + ld [de], a + ret +; 11afcc + +Unknown_11afcc: + dwcoord 11, 12 + dwcoord 11, 14 + dwcoord 11, 16 + +Unknown_11afd2: + dwcoord 15, 8 + dwcoord 15, 10 +; 11afd6 + +Function11afd6: ; 11afd6 + ld de, $0014 + ld a, $3 +.asm_11afdb + push bc + push hl +.asm_11afdd + ld [hli], a + dec c + jr nz, .asm_11afdd + pop hl + add hl, de + pop bc + dec b + jr nz, .asm_11afdb + ret +; 11afe8 + +MenuDataHeader_11afe8: ; 11afe8 + db $40 ; flags + db 12, 9 ; start coords + db 17, 19 ; end coords + dw NULL + db 0 ; default option +; 11aff0 + +String_11aff0: ; 11aff0 + db "この じょうけんで" + next "よろしいですか?@" +; 11b003 + +String_11b003: ; 11b003 + db "こうかんを" + next "ちゅうししますか?@" +; 11b013 + +MenuDataHeader_11b013: ; 11b013 + db $40 ; flags + db 7, 14 ; start coords + db 11, 19 ; end coords + dw NULL + db 1 ; default option +; 11b01b + +String_11b01b: + db "はい" + next "いいえ@" +; 11b022 + +Function11b022: ; 11b022 + ld a, [wcd2e] + and a + jr z, .asm_11b02e + ld hl, StringBuffer3 + call Function11b03d + +.asm_11b02e + ld a, [wcd30] + and a + ret z + cp $3 + ret z + ld hl, StringBuffer4 + call Function11b03d + ret +; 11b03d + +Function11b03d: ; 11b03d + push hl + push af + ld c, $1 +.asm_11b041 + ld a, [hli] + cp $ef + jr z, .asm_11b051 + cp $f5 + jr z, .asm_11b051 + cp $50 + jr z, .asm_11b055 + inc c + jr .asm_11b041 + +.asm_11b051 + dec hl + ld a, $50 + ld [hli], a + +.asm_11b055 + dec hl + push hl + ld e, $4 + ld d, $0 + add hl, de + ld e, l + ld d, h + pop hl +.asm_11b05f + ld a, [hld] + ld [de], a + dec de + dec c + jr nz, .asm_11b05f + pop af + pop de + cp $1 + jr nz, .asm_11b070 + ld hl, String_11b07a + jr .asm_11b073 + +.asm_11b070 + ld hl, String_11b07e + +.asm_11b073 + ld bc, 4 + call CopyBytes + ret +; 11b07a + +String_11b07a: db "ォスの " +String_11b07e: db "メスの " + +Function11b082: ; 11b082 + call Function11b242 + ld a, $7 + ld [wc7d3], a + call Function11b099 + call Function11b295 + call Function11b275 + call SetPalettes + jp Function11ad8a +; 11b099 + +Function11b099: ; 11b099 + ld c, $6 + hlcoord 11, 1 + ld a, [wc7d3] + add a + ld b, a + xor a + call Function11b236 + ld a, [wc7d0] + ld e, a + ld d, $0 + ld hl, $c6d0 + add hl, de + ld e, l + ld d, h + hlcoord 11, 2 + ld a, [wc7d3] +.asm_11b0b9 + push af + ld a, [de] + ld [wd265], a + push de + push hl + call Function11b0cf + pop hl + ld de, $0028 + add hl, de + pop de + inc de + pop af + dec a + jr nz, .asm_11b0b9 + ret +; 11b0cf + +Function11b0cf: ; 11b0cf + and a + ret z + call Function11b0ec + ret c + call Function11b0e1 + push hl + call GetPokemonName + pop hl + call PlaceString + ret +; 11b0e1 + +Function11b0e1: ; 11b0e1 + call Function11b21e + jr nz, .asm_11b0e8 + inc hl + ret + +.asm_11b0e8 + ld a, $1 + ld [hli], a + ret +; 11b0ec + +Function11b0ec: ; 11b0ec + call Function11b22a + ret nz + inc hl + ld de, String_11b0f9 + call PlaceString + scf + ret +; 11b0f9 + +String_11b0f9: ; 11b0f9 + db "ーーーーー@" +; 11b0ff + +Function11b0ff: ; 11b0ff + ld hl, hJoyPressed + ld a, [hl] + and $2 + jr nz, .asm_11b141 + ld a, [hl] + and $1 + jr nz, .asm_11b131 + call Function11b175 + jr nc, .asm_11b125 + ld a, [wcd4c] + inc a + and $3 + ld [wcd4c], a + xor a + ld [hBGMapMode], a + call Function11b099 + ld a, $1 + ld [hBGMapMode], a + ret + +.asm_11b125 + ld a, [wcd4c] + and a + ret z + inc a + and $3 + ld [wcd4c], a + ret + +.asm_11b131 + call Function11b20b + call Function11b22a + jr z, .asm_11b13d + ld a, $1 + jr .asm_11b148 + +.asm_11b13d + ld a, $2 + jr .asm_11b148 + +.asm_11b141 + ld hl, wJumptableIndex + ld a, $7 + ld [hl], a + ret + +.asm_11b148 + call PlayClickSFX + ld [wcd4b], a + and a + jr z, .asm_11b16c + ld a, [wcf65] + cp $0 + jr z, .asm_11b163 + cp $fe + jr z, .asm_11b167 + cp $ff + jr z, .asm_11b16b + jp Function11ad8a + +.asm_11b163 + ld a, $1 + jr .asm_11b16c + +.asm_11b167 + ld a, $2 + jr .asm_11b16c + +.asm_11b16b + xor a + +.asm_11b16c + ld [wcd30], a + ld a, $4 + ld [wJumptableIndex], a + ret +; 11b175 + +Function11b175: ; 11b175 + ld a, [wc7d3] + ld d, a + ld a, [wc7d2] + ld e, a + ld hl, hJoyLast + ld a, [hl] + and $40 + jr nz, .asm_11b19a + ld a, [hl] + and $80 + jr nz, .asm_11b1ae + ld a, d + cp e + jr nc, .asm_11b1ed + ld a, [hl] + and $20 + jr nz, .asm_11b1c6 + ld a, [hl] + and $10 + jr nz, .asm_11b1d8 + jr .asm_11b1ed + +.asm_11b19a + ld hl, wc7d1 + ld a, [hl] + and a + jr z, .asm_11b1a4 + dec [hl] + jr .asm_11b1ef + +.asm_11b1a4 + ld hl, wc7d0 + ld a, [hl] + and a + jr z, .asm_11b1ed + dec [hl] + jr .asm_11b1ef + +.asm_11b1ae + ld hl, wc7d1 + ld a, [hl] + inc a + cp e + jr nc, .asm_11b1ed + cp d + jr nc, .asm_11b1bc + inc [hl] + jr .asm_11b1ef + +.asm_11b1bc + ld hl, wc7d0 + add [hl] + cp e + jr nc, .asm_11b1ed + inc [hl] + jr .asm_11b1ef + +.asm_11b1c6 + ld hl, wc7d0 + ld a, [hl] + and a + jr z, .asm_11b1ed + cp d + jr nc, .asm_11b1d4 + xor a + ld [hl], a + jr .asm_11b1ef + +.asm_11b1d4 + sub d + ld [hl], a + jr .asm_11b1ef + +.asm_11b1d8 + ld hl, wc7d0 + ld a, d + add a + add [hl] + jr c, .asm_11b1e3 + cp e + jr c, .asm_11b1e8 + +.asm_11b1e3 + ld a, e + sub d + ld [hl], a + jr .asm_11b1ef + +.asm_11b1e8 + ld a, [hl] + add d + ld [hl], a + jr .asm_11b1ef + +.asm_11b1ed + and a + ret + +.asm_11b1ef + call Function11b295 + call Function11b275 + scf + ret +; 11b1f7 + +Function11b1f7: ; 11b1f7 + hlcoord 0, 0 + ld a, $32 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call ByteFill + ret +; 11b203 + +Function11b203: ; 11b203 +.asm_11b203 + ld a, [de] + cp $ff + ret z + inc de + ld [hli], a + jr .asm_11b203 +; 11b20b + +Function11b20b: ; 11b20b + ld a, [wc7d1] + ld hl, wc7d0 + add [hl] + ld e, a + ld d, $0 + ld hl, $c6d0 + add hl, de + ld a, [hl] + ld [wd265], a + ret +; 11b21e + +Function11b21e: ; 11b21e + push de + push hl + ld a, [wd265] + dec a + call CheckCaughtMon + pop hl + pop de + ret +; 11b22a + +Function11b22a: ; 11b22a + push de + push hl + ld a, [wd265] + dec a + call CheckSeenMon + pop hl + pop de + ret +; 11b236 + +Function11b236: ; 11b236 + jp FillBoxWithByte +; 11b239 + +Function11b239: ; 11b239 + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ret +; 11b242 + +Function11b242: ; 11b242 + hlcoord 3, 4 + ld de, StringBuffer3 + call PlaceString + xor a + ld [MonType], a + callba GetGender + hlcoord 1, 4 + ld a, [CurPartySpecies] + ld bc, wcd2f + ld [bc], a + dec bc + jr c, asm_11b26a + jr z, asm_11b26f + ld a, $1 + ld [bc], a + +Function11b267: + ld [hl], $ef + ret + +asm_11b26a + xor a + ld [bc], a + ld [hl], $7f + ret + +asm_11b26f + ld a, $2 + ld [bc], a + +Function11b272: + ld [hl], $f5 + ret +; 11b275 + +Function11b275: ; 11b275 + call Function11b279 + ret +; 11b279 + +Function11b279: ; 11b279 + ld a, [wd265] + ld [CurSpecies], a + call Function11b22a + jr z, .asm_11b28f + call GetBaseData + ld a, [BaseGender] + ld [wcf65], a + jr .asm_11b294 + +.asm_11b28f + ld a, $ff + ld [wcf65], a + +.asm_11b294 + ret +; 11b295 + +Function11b295: ; 11b295 + hlcoord 4, 13 + ld de, String_11b308 + call PlaceString + hlcoord 4, 14 + ld de, String_11b308 + call PlaceString + call Function11b20b + call Function11b22a + jr z, .asm_11b2d1 + ld a, [$c608] + ld c, a + ld a, [$c608 + 1] + ld b, a + ld hl, $0007 + add hl, bc + xor a + ld [hl], a + ld hl, $0003 + add hl, bc + ld e, [hl] + callba Function8e9bc + hlcoord 4, 14 + push hl + call GetPokemonName + jr .asm_11b2e7 + +.asm_11b2d1 + ld a, [$c608] + ld c, a + ld a, [$c608 + 1] + ld b, a + ld hl, $0007 + add hl, bc + ld a, $50 + ld [hl], a + hlcoord 4, 13 + push hl + ld de, String_11b30e + +.asm_11b2e7 + ld a, $6 + ld bc, StringBuffer4 +.asm_11b2ec + push af + ld a, [de] + ld [bc], a + inc de + inc bc + pop af + dec a + and a + jr nz, .asm_11b2ec + pop hl + ld de, StringBuffer4 + call PlaceString + ret +; 11b2fe + +String_11b2fe: ; 11b2fe + db "あげる#@" +; 11b303 + +String_11b303: ; 11b303 + db "ほしい#@" +; 11b308 + +String_11b308: ; 11b308 + db " @" +; 11b30e + +String_11b30e: ; 11b30e + db "みはっけん@" +; 11b314 + +Function11b314: ; 11b314 + call Function11b31b + call Function11b3d9 + ret +; 11b31b + +Function11b31b: ; 11b31b + ld hl, Unknown_11b350 + ld a, [wJumptableIndex] + cp $2 + jr c, .asm_11b349 + ld a, [wc7d1] + cp $4 + jr nc, .asm_11b344 + cp $3 + jr c, .asm_11b349 + ld a, [wJumptableIndex] + cp $2 + jr z, .asm_11b349 + cp $3 + jr z, .asm_11b349 + cp $6 + jr z, .asm_11b349 + + ld bc, Unknown_11b37b + jr .asm_11b34c + +.asm_11b344 + ld bc, Unknown_11b389 + jr .asm_11b34c + +.asm_11b349 + ld bc, Unknown_11b36d + +.asm_11b34c + call Function11b397 + ret +; 11b350 + +Unknown_11b350: + db $1a, $5e, $1a, $66, $1a, $6e, $1a, $76, $1a, $7e, $1a, $86, $1a, $8e + db $22, $5e, $22, $66, $22, $6e, $22, $76, $22, $7e, $22, $86, $22, $8e + db $ff + +Unknown_11b36d: + db $30, $31, $31, $31, $31, $31, $32, $40, $41, $41, $41, $41, $41, $42 +Unknown_11b37b: + db $30, $31, $31, $39, $39, $39, $39, $40, $41, $41, $39, $39, $39, $39 +Unknown_11b389: + db $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39, $39 + +Function11b397: ; 11b397 + ld de, Sprites +.asm_11b39a + ld a, [hl] + cp $ff + ret z + ld a, [wc7d1] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [bc] + inc bc + ld [de], a + inc de + ld a, $5 + ld [de], a + inc de + jr .asm_11b39a +; 11b3b6 + +Function11b3b6: ; 11b3b6 +.asm_11b3b6 + ld a, [hl] + cp $ff + ret z + ld a, [wcd4d] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + push hl + ld l, c + ld h, b + ld a, [wcd4e] + add [hl] + inc bc + ld [de], a + inc de + pop hl + ld a, $5 + ld [de], a + inc de + jr .asm_11b3b6 +; 11b3d9 + +Function11b3d9: ; 11b3d9 + ld de, Sprites + $70 + push de + ld a, [wc7d2] + dec a + ld e, a + ld a, [wc7d1] + ld hl, wc7d0 + add [hl] + cp e + jr z, .asm_11b40d + ld hl, 0 + ld bc, $0070 + call AddNTimes + ld e, l + ld d, h + ld b, $0 + ld a, d + or e + jr z, .asm_11b40f + ld a, [wc7d2] + ld c, a +.asm_11b401 + ld a, e + sub c + ld e, a + ld a, d + sbc $0 + ld d, a + jr c, .asm_11b40f + inc b + jr .asm_11b401 + +.asm_11b40d + ld b, $70 + +.asm_11b40f + ld a, $15 + add b + pop hl + ld [hli], a + cp $41 + jr c, .asm_11b42b + ld a, [wJumptableIndex] + cp $4 + jr z, .asm_11b43b + cp $5 + jr z, .asm_11b43b + cp $7 + jr z, .asm_11b43b + cp $8 + jr z, .asm_11b43b + +.asm_11b42b + ld a, $9b + ld [hli], a + ld a, [wcd4c] + add $3c + ld [hli], a + ld a, [wcd4c] + add $1 + ld [hl], a + ret + +.asm_11b43b + ld a, $9b + ld [hli], a + ld a, $39 + ld [hli], a + xor a + ld [hl], a + ret +; 11b444 + +Function11b444: ; 11b444 + call Function11b44b + call Function11b45c + ret +; 11b44b + +Function11b44b: ; 11b44b + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + call UpdateTime + ret +; 11b45c + +Function11b45c: ; 11b45c +.asm_11b45c + call Function11b46a + call DelayFrame + ld a, [wJumptableIndex] + cp $4 + jr nz, .asm_11b45c + ret +; 11b46a + +Function11b46a: ; 11b46a + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_11b479 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11b479 + +Jumptable_11b479: ; 11b479 + dw Function11b483 + dw Function11b570 + dw Function11b5c0 + dw Function11b5e0 + dw Function11b5e7 +; 11b483 + +Function11b483: ; 11b483 + call Function11b538 + ld hl, PlayerName + ld a, $5 +.asm_11b48b + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .asm_11b48b + ld de, $0030 + ld hl, PartyMon1Species + ld a, [wcd82] + dec a + push af +.asm_11b49f + and a + jr z, .asm_11b4a6 + add hl, de + dec a + jr .asm_11b49f + +.asm_11b4a6 + push bc + ld a, $30 +.asm_11b4a9 + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .asm_11b4a9 + pop de + push bc + ld a, [de] + ld [CurSpecies], a + call GetBaseData + ld hl, $001f + add hl, de + ld a, [hl] + ld [CurPartyLevel], a + ld hl, $0024 + add hl, de + push hl + ld hl, $000a + add hl, de + pop de + push de + ld b, $1 + predef CalcPkmnStats + pop de + ld h, d + ld l, e +rept 2 + dec hl +endr + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hl], a + pop bc + ld de, $000b + ld hl, PartyMonOT + pop af + push af +.asm_11b4e8 + and a + jr z, .asm_11b4ef + add hl, de + dec a + jr .asm_11b4e8 + +.asm_11b4ef + ld a, $a +.asm_11b4f1 + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .asm_11b4f1 + ld de, $000b + ld hl, PartyMonNicknames + pop af + push af +.asm_11b502 + and a + jr z, .asm_11b509 + add hl, de + dec a + jr .asm_11b502 + +.asm_11b509 + ld a, $a +.asm_11b50b + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .asm_11b50b + ld de, $002f + ld hl, $a600 + pop af +.asm_11b51b + and a + jr z, .asm_11b522 + add hl, de + dec a + jr .asm_11b51b + +.asm_11b522 + ld a, $0 + call GetSRAMBank + ld a, $2f +.asm_11b529 + push af + ld a, [hli] + ld [bc], a + inc bc + pop af + dec a + and a + jr nz, .asm_11b529 + call CloseSRAM + jp Function11ad8a +; 11b538 + +Function11b538: ; 11b538 + ld bc, BattleMonNick + 5 + ld a, [PlayerID] + ld [wcd2a], a + ld [bc], a + inc bc + ld a, [PlayerID + 1] + ld [wcd2b], a + ld [bc], a + inc bc + ld a, [wSecretID] + ld [wcd2c], a + ld [bc], a + inc bc + ld a, [wSecretID + 1] + ld [wcd2d], a + ld [bc], a + inc bc + ld a, [wcd2e] + ld [bc], a + inc bc + ld a, [wcd2f] + ld [bc], a + inc bc + ld a, [wcd30] + ld [bc], a + inc bc + ld a, [wd265] + ld [bc], a + inc bc + ret +; 11b570 + +Function11b570: ; 11b570 + call Function118007 + ld a, [ScriptVar] + and a + jr nz, .asm_11b57f + call Function11b585 + jp Function11ad8a + +.asm_11b57f + ld a, $4 + ld [wJumptableIndex], a + ret +; 11b585 + +Function11b585: ; 11b585 + ld a, $3 + ld [rSVBK], a + ld hl, $d800 + ld de, $c608 + ld bc, $008f + call CopyBytes + ld a, $1 + ld [rSVBK], a + ld a, $5 + call GetSRAMBank + ld de, $a800 + ld a, $1 + ld [de], a + inc de + ld hl, $c608 + ld bc, $008f + call CopyBytes + push de + pop hl + ld a, [hRTCMinutes] + ld [hli], a + ld a, [hRTCHours] + ld [hli], a + ld a, [hRTCDayLo] + ld [hli], a + ld a, [hRTCDayHi] + ld [hl], a + call CloseSRAM + ret +; 11b5c0 + +Function11b5c0: ; 11b5c0 + ld a, [wcd82] + dec a + ld [CurPartyMon], a + xor a + ld [wd10b], a + callba Functione039 + callba Function170807 + callba Function14a58 + jp Function11ad8a +; 11b5e0 + +Function11b5e0: ; 11b5e0 + xor a + ld [ScriptVar], a + jp Function11ad8a +; 11b5e7 + +Function11b5e7: ; 11b5e7 + ret +; 11b5e8 + +Function11b5e8: ; 11b5e8 + ld a, $0 + call GetSRAMBank + ld hl, wRTC + ld de, $c608 + ld bc, $0004 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $c608 + ld de, $b08c + ld bc, $0004 + call CopyBytes + ld a, $2 + ld [$a800], a + ld a, [$a81f] + ld [wcd2a], a + ld a, [$a820] + ld [wcd2b], a + ld a, [$a821] + ld [wcd2c], a + ld a, [$a822] + ld [wcd2d], a + ld a, [$a823] + ld [wcd2e], a + ld a, [$a824] + ld [wcd2f], a + ld a, [$a825] + ld [wcd30], a + ld a, [$a826] + ld [wcd31], a + call CloseSRAM + call Function11b44b + call Function11b64c + ret +; 11b64c + +Function11b64c: ; 11b64c +.asm_11b64c + call Function11b65a + call DelayFrame + ld a, [wJumptableIndex] + cp $1 + jr nz, .asm_11b64c + ret +; 11b65a + +Function11b65a: ; 11b65a + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_11b669 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11b669 + +Jumptable_11b669: ; 11b669 + dw Function11b66d + dw Function11b6b3 +; 11b66d + +Function11b66d: ; 11b66d + call Function1180b8 + ld a, [ScriptVar] + and a + jr nz, .asm_11b6b0 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, [StringBuffer2 + 10] + ld b, a + pop af + ld [rSVBK], a + ld a, b + and a + jr z, .asm_11b691 + cp $1 + jr nz, .asm_11b6b0 + call Function11b6b4 + jr .asm_11b6b0 + +.asm_11b691 + callba Function17081d + ld a, [ScriptVar] + and a + jr z, .asm_11b6b0 + xor a + ld [ScriptVar], a + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld a, $2 + ld [StringBuffer2 + 10], a + pop af + ld [rSVBK], a + +.asm_11b6b0 + jp Function11ad8a +; 11b6b3 + +Function11b6b3: ; 11b6b3 + ret +; 11b6b4 + +Function11b6b4: ; 11b6b4 + ld a, $5 + call GetSRAMBank + ld a, [wcd30] + ld [wc708], a + ld a, [wcd31] + ld [wc709], a + ld a, $8 + ld [BGMapBuffer], a + ld a, $c7 + ld [wcd21], a + ld a, $d + ld [CreditsTimer], a + ld a, $c6 + ld [wcd23], a + ld a, $3d + ld [wcd24], a + ld a, $c6 + ld [wcd25], a + ld a, $42 + ld [wcd26], a + ld a, $c6 + ld [wcd27], a + ld a, $47 + ld [wcd28], a + ld a, $c6 + ld [wcd29], a + ld a, $46 + ld [$c628], a + ld de, $c63d + ld c, $5 + callba Function17d073 + jr nc, .asm_11b70f + callba Function17d187 + +.asm_11b70f + ld de, $c63d + ld bc, $0105 + callba Function17d1e1 + jr nc, .asm_11b723 + callba Function17d187 + +.asm_11b723 + ld de, $c642 + ld c, $5 + callba Function17d073 + jr nc, .asm_11b736 + callba Function17d199 + +.asm_11b736 + ld de, $c642 + ld bc, $0105 + callba Function17d1e1 + jr nc, .asm_11b74a + callba Function17d199 + +.asm_11b74a + ld de, $c647 + ld c, $21 + callba Function17d073 + jr nc, .asm_11b75d + callba Function17d1ab + +.asm_11b75d + ld de, $c647 + ld bc, $0221 + callba Function17d1e1 + jr c, .asm_11b770 + ld a, b + cp $2 + jr nz, .asm_11b776 + +.asm_11b770 + callba Function17d1ab + +.asm_11b776 + ld de, $c668 + ld c, $5 + callba Function17d073 + jr nc, .asm_11b789 + callba Function17d1c9 + +.asm_11b789 + ld de, $c668 + ld bc, $0105 + callba Function17d1e1 + jr nc, .asm_11b79d + callba Function17d1c9 + +.asm_11b79d + ld a, [$c608 + 6] + cp $ff + jr nz, .asm_11b7a8 + xor a + ld [$c608 + 6], a + +.asm_11b7a8 + ld a, [wcd31] + ld [$c608 + 5], a + ld [CurSpecies], a + call GetBaseData + + ld hl, $c62c + ld a, [hl] + cp MIN_LEVEL + ld a, MIN_LEVEL + jr c, .asm_11b7c5 + ld a, [hl] + cp MAX_LEVEL + jr c, .asm_11b7c6 + ld a, MAX_LEVEL +.asm_11b7c5 + ld [hl], a +.asm_11b7c6 + ld [CurPartyLevel], a + + ld hl, $c616 + 1 + ld de, $c62c + 5 + ld b, $1 + predef CalcPkmnStats + ld de, $c62c + 5 + ld hl, $c62c + 3 + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hl], a + call Function11b98f + ret +; 11b7e5 + +Function11b7e5: ; 11b7e5 + ld a, [$c608 + 5] + ld [wc702], a + ld [CurPartySpecies], a + ld a, [wcd81] + ld [wc74e], a + ld hl, $c63d + ld de, wc724 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld a, [$c608 + 11] + ld [wc731], a + ld a, [$c608 + 12] + ld [wc732], a + ld hl, $c608 + 26 + ld a, [hli] + ld [wc72f], a + ld a, [hl] + ld [wc730], a + ld bc, $c608 + 5 + callba GetCaughtGender + ld a, c + ld [wc733], a + call SpeechTextBox + call FadeToMenu + callba Function108016 + callba Function17d1f1 + ld a, $1 + ld [wd1e9], a + ld a, $2 + ld [wLinkMode], a + callba Function421d8 + xor a + ld [wLinkMode], a + callba Function14a58 + ld a, $5 + call GetSRAMBank + ld a, $5 + ld [$a800], a + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_11b872 + ld a, $1 + ld [de], a + +.asm_11b872 + call Function2b3c + call RestartMapMusic + ret +; 11b879 + +Function11b879: ; 11b879 + callba Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, $5 + call GetSRAMBank + ld a, [$a800] + ld [ScriptVar], a + ld a, [$a890] + ld [wcd49], a + ld a, [$a891] + ld [wcd4a], a + ld a, [$a892] + ld [wcd4b], a + ld a, [$a893] + ld [wcd4c], a + call CloseSRAM + ld a, [ScriptVar] + and a + ret z + ld hl, wcd4c + ld a, [hRTCDayHi] + cp [hl] + ret nz + dec hl + ld a, [hRTCDayLo] + cp [hl] + ret nz + ld hl, wcd4a + ld a, [hRTCHours] + cp [hl] + jr nc, .asm_11b8d8 + ld a, $18 + sub [hl] + ld hl, hRTCHours + add [hl] + ld [wcd4c], a + ld a, [hRTCMinutes] + ld [wcd4b], a + xor a + ld [wcd4a], a + jr .asm_11b8e2 + +.asm_11b8d8 + ld a, [hRTCMinutes] + ld [wcd4b], a + ld a, [hRTCHours] + ld [wcd4c], a + +.asm_11b8e2 + xor a + ld l, a + ld h, a + ld b, a + ld d, a + ld a, [wcd4b] + ld e, a + ld a, [wcd4c] + ld c, $3c + call AddNTimes + add hl, de + push hl + xor a + ld l, a + ld h, a + ld b, a + ld d, a + ld a, [wcd49] + ld e, a + ld a, [wcd4a] + ld c, $3c + call AddNTimes + add hl, de + ld a, l + cpl + add $1 + ld e, a + ld a, h + cpl + adc $0 + ld d, a + pop hl + add hl, de + ld de, $ff88 + add hl, de + bit 7, h + ret z + ld a, $2 + ld [ScriptVar], a + ret +; 11b920 + +Function11b920: ; 11b920 + call Function11b44b + ld a, $5 + call GetSRAMBank + ld hl, $a81f + ld de, BattleMonNick + 5 + ld bc, $0008 + call CopyBytes + call CloseSRAM + call Function118000 + ret +; 11b93b + +Function11b93b: ; 11b93b + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + ld hl, $a823 + ld de, wEnemyMoveStruct + ld bc, $008f + call CopyBytes + call CloseSRAM + ld a, wEnemyMoveStruct % $100 + ld [wcd20], a + ld a, wEnemyMoveStruct / $100 + ld [wcd21], a + ld a, $c611 % $100 + ld [wcd22], a + ld a, $c611 / $100 + ld [wcd23], a + ld a, $c641 % $100 + ld [wcd24], a + ld a, $c641 / $100 + ld [wcd25], a + ld a, $c646 % $100 + ld [wcd26], a + ld a, $c646 / $100 + ld [wcd27], a + ld a, $c64b % $100 + ld [wcd28], a + ld a, $c64b / $100 + ld [wcd29], a + call Function11b98f + callba Function14a58 + ret +; 11b98f + +Function11b98f: ; 11b98f + ld hl, PartyCount + ld a, [hl] + ld e, a + inc [hl] + ld a, [wcd20] + ld l, a + ld a, [wcd21] + ld h, a + inc hl + ld bc, PartySpecies + ld d, e +.loop1 + inc bc + dec d + jr nz, .loop1 + ld a, e + ld [CurPartyMon], a + ld a, [hl] + ld [bc], a + inc bc + ld a, $ff + ld [bc], a + ld hl, PartyMon1Species + ld bc, PartyMon2 - PartyMon1 + ld a, e + ld [wcd2a], a +.loop2 + add hl, bc + dec a + and a + jr nz, .loop2 + ld e, l + ld d, h + ld a, [CreditsTimer] + ld l, a + ld a, [wcd23] + ld h, a + ld bc, PartyMon2 - PartyMon1 + call CopyBytes + ld hl, PartyMonOT + ld bc, NAME_LENGTH + ld a, [wcd2a] +.loop3 + add hl, bc + dec a + and a + jr nz, .loop3 + ld e, l + ld d, h + ld a, [wcd24] + ld l, a + ld a, [wcd25] + ld h, a + ld bc, PKMN_NAME_LENGTH - 1 + call CopyBytes + ld a, "@" + ld [de], a + ld hl, PartyMonNicknames + ld bc, PKMN_NAME_LENGTH + ld a, [wcd2a] +.loop4 + add hl, bc + dec a + and a + jr nz, .loop4 + ld e, l + ld d, h + ld a, [wcd26] + ld l, a + ld a, [wcd27] + ld h, a + ld bc, PKMN_NAME_LENGTH - 1 + call CopyBytes + ld a, "@" + ld [de], a + ld hl, s0_a600 + ld bc, party_struct_length - 1 + ld a, [wcd2a] +.loop5 + add hl, bc + dec a + and a + jr nz, .loop5 + ld a, $0 + call GetSRAMBank + ld e, l + ld d, h + ld a, [wcd28] + ld l, a + ld a, [wcd29] + ld h, a + ld bc, party_struct_length - 1 + call CopyBytes + call CloseSRAM + ret +; 11ba38 + +Function11ba38: ; 11ba38 + callba CheckCurPartyMonFainted + ret c + xor a + ld [ScriptVar], a + ret +; 11ba44 + +Unknown_11ba44: + db $47, $30, $0a, $0a, $0a, $0a, $0a, $56 + db $46, $2f, $0a, $0a, $0a, $0a, $0a, $55 + db $45, $3d, $0a, $0a, $0a, $0a, $0a, $54 + db $44, $30, $0a, $0a, $0a, $0a, $0a, $53 + db $43, $2f, $0a, $0a, $0a, $0a, $0a, $52 + db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $51 + db $4a, $30, $0a, $0a, $0a, $0a, $0a, $50 + db $4a, $2f, $0a, $0a, $0a, $0a, $0a, $4f + db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $4e + db $4a, $30, $0a, $0a, $0a, $0a, $4d, $42 + db $4a, $2f, $0a, $0a, $0a, $0a, $6b, $58 + db $4a, $3d, $0a, $0a, $0a, $0a, $6a, $58 + db $4a, $30, $0a, $0a, $0a, $0a, $69, $58 + db $4a, $2f, $0a, $0a, $0a, $0a, $68, $58 + db $4a, $3d, $0a, $0a, $0a, $66, $67, $58 + db $4a, $30, $0a, $0a, $0a, $65, $0a, $58 + db $4a, $2f, $0a, $0a, $0a, $64, $0a, $58 + db $4a, $3d, $0a, $0a, $0a, $63, $0a, $58 + db $4a, $30, $0a, $0a, $61, $62, $0a, $58 + db $4a, $2f, $0a, $0a, $5f, $60, $0a, $58 + db $4a, $3d, $0a, $61, $62, $0a, $0a, $58 + db $4a, $30, $0a, $63, $0a, $0a, $0a, $58 + db $4a, $2f, $69, $0a, $0a, $0a, $0a, $58 + db $4a, $3d, $81, $0a, $0a, $0a, $0a, $58 + db $4a, $30, $80, $0a, $0a, $0a, $0a, $58 + db $4a, $2f, $7f, $0a, $0a, $0a, $0a, $58 + db $4a, $3d, $0a, $0a, $0a, $0a, $0a, $58 + db $4a, $30, $0a, $0a, $0a, $0a, $0a, $58 + db $4a, $2f, $68, $87, $88, $89, $0a, $58 + db $4a, $3d, $6e, $6f, $70, $75, $76, $58 + db $4a, $30, $75, $76, $5c, $5d, $5e, $58 + db $4a, $2f, $71, $72, $73, $74, $6d, $58 + db $4a, $3d, $75, $76, $77, $8a, $8b, $58 + db $4a, $30, $66, $67, $65, $0a, $6a, $58 + db $4a, $2f, $83, $84, $0a, $83, $84, $58 + db $4a, $3d, $0a, $85, $82, $84, $0a, $58 + db $4a, $30, $41, $80, $40, $0a, $0a, $58 + db $4a, $2f, $83, $0a, $0a, $0a, $0a, $58 + db $4a, $3d, $40, $0a, $0a, $0a, $0a, $58 + db $ff + +Unknown_11bb7d: + db $0a, $0a, $0a, $0a, $0a, $0a, $16, $00 + db $78, $0a, $0a, $0a, $0a, $0a, $8c, $00 + db $79, $0a, $0a, $0a, $0a, $0a, $8d, $00 + db $7a, $0a, $0a, $0a, $0a, $0a, $8e, $00 + db $7b, $0a, $0a, $0a, $0a, $0a, $8c, $00 + db $7c, $0a, $0a, $0a, $0a, $0a, $8d, $00 + db $7d, $0a, $0a, $0a, $0a, $0a, $8e, $00 + db $2e, $7e, $0a, $0a, $0a, $0a, $8c, $00 + db $2e, $80, $0a, $0a, $0a, $0a, $8d, $00 + db $2e, $81, $0a, $0a, $0a, $0a, $8e, $00 + db $2e, $82, $0a, $0a, $0a, $0a, $8c, $00 + db $2e, $69, $0a, $0a, $0a, $0a, $8d, $00 + db $2e, $6a, $0a, $0a, $0a, $0a, $8e, $00 + db $2e, $6b, $0a, $0a, $0a, $0a, $8c, $00 + db $2e, $0a, $68, $0a, $0a, $0a, $8d, $00 + db $2e, $0a, $69, $0a, $0a, $0a, $8e, $00 + db $2e, $0a, $0a, $6a, $0a, $0a, $8c, $00 + db $2e, $0a, $0a, $6b, $0a, $0a, $8d, $00 + db $2e, $0a, $0a, $0a, $80, $0a, $8e, $00 + db $2e, $0a, $0a, $0a, $82, $0a, $8c, $00 + db $2e, $0a, $0a, $0a, $6c, $0a, $8d, $00 + db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 + db $2e, $0a, $6b, $0a, $0a, $0a, $8c, $00 + db $2e, $0a, $0a, $69, $0a, $0a, $8d, $00 + db $2e, $0a, $0a, $6a, $0a, $0a, $8e, $00 + db $2e, $0a, $0a, $0a, $68, $0a, $8c, $00 + db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 + db $2e, $0a, $0a, $61, $62, $0a, $8e, $00 + db $2e, $0a, $0a, $0a, $5f, $60, $8c, $00 + db $2e, $0a, $0a, $0a, $63, $0a, $8d, $00 + db $2e, $0a, $0a, $0a, $0a, $69, $8c, $00 + db $2e, $0a, $0a, $0a, $0a, $6b, $8d, $00 + db $2e, $0a, $0a, $0a, $0a, $83, $8e, $00 + db $2e, $0a, $0a, $0a, $0a, $86, $8c, $00 + db $2e, $0a, $85, $0a, $0a, $0a, $8d, $00 + db $2e, $0a, $0a, $84, $0a, $0a, $8e, $00 + db $ff + + diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm new file mode 100755 index 000000000..43cf8f987 --- /dev/null +++ b/misc/mobile_5b.asm @@ -0,0 +1,1236 @@ +Function16c000: ; 16c000 + ld a, [hCGB] + and a + ret z + ld a, [$ffea] + and a + ret z + ld a, [wcfbe] + push af + set 7, a + ld [wcfbe], a + call Function16c108 + callba Function100063 + callba Function100082 + call Function16c031 + callba Function1000a4 + xor a + ld [$ffea], a + pop af + ld [wcfbe], a + ret +; 16c031 + +Function16c031: ; 16c031 + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [DefaultFlypoint], a + ld [wd003], a +.asm_16c03e + call DelayFrame + callba Function10635c + ld a, [DefaultFlypoint] + ld hl, Jumptable_16c05c + rst JumpTable + call Function16cb2e + call Function16cbae + ld a, [DefaultFlypoint] + cp $ff + jr nz, .asm_16c03e + ret +; 16c05c + +Jumptable_16c05c: ; 16c05c + dw Function16c074 + dw Function16c0ba + dw Function16c089 + dw Function16c09e + dw Function16c0a8 + dw Function16c0dc + dw Function16c0ec + dw Function16c0ba + dw Function16c0ca + dw Function16c0dc + dw Function16c0ec + dw Function16c081 +; 16c074 + +Function16c074: ; 16c074 + ld a, [wcf64] + and a + ret z + ld [DefaultFlypoint], a + xor a + ld [wd003], a + ret +; 16c081 + +Function16c081: ; 16c081 + push af + ld a, $ff + ld [DefaultFlypoint], a + pop af + ret +; 16c089 + +Function16c089: ; 16c089 + ld a, $1 + ld [Buffer2], a + ld [wd1f1], a + xor a + ld [hWY], a + call Function16c0fa + ld a, [DefaultFlypoint] + ld [wcf64], a + ret +; 16c09e + +Function16c09e: ; 16c09e + ld a, [wcf64] + cp $4 + ret nz + call Function16c0fa + ret +; 16c0a8 + +Function16c0a8: ; 16c0a8 + xor a + ld [Buffer2], a + ld [wd1f1], a + call ClearSprites + ld a, $90 + ld [hWY], a + call Function16c0fa + ret +; 16c0ba + +Function16c0ba: ; 16c0ba + call Function16c943 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call c, Function16c0fa + ret +; 16c0ca + +Function16c0ca: ; 16c0ca + ld a, [wd003] + cp $28 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call z, Function16c0fa + ret +; 16c0dc + +Function16c0dc: ; 16c0dc + call Function16ca11 + push af + ld a, [wd003] + inc a + ld [wd003], a + pop af + call c, Function16c0fa + ret +; 16c0ec + +Function16c0ec: ; 16c0ec + call WhiteBGMap + call ClearScreen + push af + ld a, $ff + ld [DefaultFlypoint], a + pop af + ret +; 16c0fa + +Function16c0fa: ; 16c0fa + push af + ld a, [DefaultFlypoint] + inc a + ld [DefaultFlypoint], a + xor a + ld [wd003], a + pop af + ret +; 16c108 + +Function16c108: ; 16c108 + call DisableLCD + ld hl, VTiles2 + ld de, GFX_16c173 + lb bc, BANK(GFX_16c173), $68 + call Get2bpp + call Function16c130 + call Function16c145 + call Function16c15c + ld hl, VBGMap0 + call Function16cc73 + call Function16cc02 + xor a + ld [hBGMapMode], a + call EnableLCD + ret +; 16c130 + +Function16c130: ; 16c130 + ld de, Unkn1Pals + ld hl, Unknown_16c903 + ld bc, 8 + ld a, $5 + call FarCopyWRAM + callba Function96a4 + ret +; 16c145 + +Function16c145: ; 16c145 + hlcoord 0, 0 + ld bc, 20 + xor a + call ByteFill + ld hl, Tilemap_16c633 + decoord 0, 1 + ld bc, $0154 + call CopyBytes + ret +; 16c15c + +Function16c15c: ; 16c15c + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH + xor a + call ByteFill + ld hl, Tilemap_16c79b + decoord 0, 1, AttrMap + ld bc, 17 * SCREEN_WIDTH + call CopyBytes + ret +; 16c173 + +GFX_16c173: +INCBIN "gfx/unknown/16c173.2bpp" + +Tilemap_16c633: +INCBIN "gfx/unknown/16c633.tilemap" + +Tilemap_16c79b: +INCBIN "gfx/unknown/16c79b.tilemap" + +Unknown_16c903: + RGB 31, 31, 31 + RGB 04, 10, 20 + RGB 16, 19, 25 + RGB 25, 27, 29 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 31, 31 + +; 16c943 + +Function16c943: ; 16c943 + ld a, [wd003] + and a + jr nz, .asm_16c95e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld a, $ff + ld bc, $0008 + ld hl, Unkn1Pals + call ByteFill + pop af + ld [rSVBK], a + +.asm_16c95e + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld e, $0 + ld a, $0 +.asm_16c969 + ld hl, Unknown_16c903 + call Function16cab6 + call Function16cabb + ld d, a + ld hl, Unkn1Pals + call Function16cab6 + call Function16cabb + cp d + jr z, .asm_16c991 + ld b, $1 +.asm_16c981 + dec a + cp d + jr z, .asm_16c988 + dec b + jr nz, .asm_16c981 + +.asm_16c988 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cadc + +.asm_16c991 + ld hl, Unknown_16c903 + call Function16cab6 + call Function16cad8 + ld d, a + ld hl, Unkn1Pals + call Function16cab6 + call Function16cad8 + cp d + jr z, .asm_16c9b9 + ld b, $1 +.asm_16c9a9 + dec a + cp d + jr z, .asm_16c9b0 + dec b + jr nz, .asm_16c9a9 + +.asm_16c9b0 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cb08 + +.asm_16c9b9 + ld hl, Unknown_16c903 + call Function16cab6 + call Function16cac4 + ld d, a + ld hl, Unkn1Pals + call Function16cab6 + call Function16cac4 + cp d + jr z, .asm_16c9e1 + ld b, $1 +.asm_16c9d1 + dec a + cp d + jr z, .asm_16c9d8 + dec b + jr nz, .asm_16c9d1 + +.asm_16c9d8 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cae8 + +.asm_16c9e1 +rept 2 + inc e +endr + ld a, e + cp $8 + jr nz, .asm_16c969 + callba Function96a4 + call SetPalettes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wd003] + cp $1f + jr z, .asm_16ca09 + pop af + ld [rSVBK], a + ld e, $0 + pop af + ld [rSVBK], a + and a + ret + +.asm_16ca09 + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + scf + ret +; 16ca11 + +Function16ca11: ; 16ca11 + ld a, [wd003] + and a + jr nz, .asm_16ca1d + callba Function96a4 + +.asm_16ca1d + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld e, $0 + ld a, $0 +.asm_16ca28 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cabb + cp $1f + jr z, .asm_16ca48 + ld b, $1 +.asm_16ca37 + inc a + cp $1f + jr z, .asm_16ca3f + dec b + jr nz, .asm_16ca37 + +.asm_16ca3f + ld hl, Unkn1Pals + call Function16cab6 + call Function16cadc + +.asm_16ca48 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cad8 + cp $1f + jr z, .asm_16ca68 + ld b, $1 +.asm_16ca57 + inc a + cp $1f + jr z, .asm_16ca5f + dec b + jr nz, .asm_16ca57 + +.asm_16ca5f + ld hl, Unkn1Pals + call Function16cab6 + call Function16cb08 + +.asm_16ca68 + ld hl, Unkn1Pals + call Function16cab6 + call Function16cac4 + cp $1f + jr z, .asm_16ca88 + ld b, $1 +.asm_16ca77 + inc a + cp $1f + jr z, .asm_16ca7f + dec b + jr nz, .asm_16ca77 + +.asm_16ca7f + ld hl, Unkn1Pals + call Function16cab6 + call Function16cae8 + +.asm_16ca88 +rept 2 + inc e +endr + ld a, e + cp $8 + jr nz, .asm_16ca28 + callba Function96a4 + call SetPalettes + ld a, [rSVBK] + push af + ld a, $1 + ld [rSVBK], a + ld a, [wd003] + cp $1f + jr z, .asm_16caae + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + and a + ret + +.asm_16caae + pop af + ld [rSVBK], a + pop af + ld [rSVBK], a + scf + ret +; 16cab6 + +Function16cab6: ; 16cab6 + ld b, $0 + ld c, e + add hl, bc + ret +; 16cabb + +Function16cabb: ; 16cabb + inc hl + ld a, [hl] + srl a + srl a + and $1f + ret +; 16cac4 + +Function16cac4: ; 16cac4 + inc hl + ld a, [hld] + and $3 + ld b, a + ld a, [hl] + sla a + rl b + sla a + rl b + sla a + rl b + ld a, b + ret +; 16cad8 + +Function16cad8: ; 16cad8 + ld a, [hl] + and $1f + ret +; 16cadc + +Function16cadc: ; 16cadc + sla a + sla a + ld b, a + inc hl + ld a, [hl] + and $83 + or b + ld [hl], a + ret +; 16cae8 + +Function16cae8: ; 16cae8 + ld c, a + srl a + srl a + srl a + ld b, a + inc hl + ld a, [hl] + and $fc + or b + ld [hld], a + ld a, c + sla a + sla a + sla a + sla a + sla a + ld b, a + ld a, [hl] + and $1f + or b + ld [hl], a + ret +; 16cb08 + +Function16cb08: ; 16cb08 + ld b, a + ld a, [hl] + and $e0 + or b + ld [hl], a + ret +; 16cb0f + +Function16cb0f: ; 16cb0f + xor a + ld [Buffer1], a + ld [Buffer2], a + xor a + ld [wd1ec], a + ld a, $70 + ld [wd1ee], a + ld a, $4 + ld [wd1ed], a + ld a, $a0 + ld [wd1ef], a + xor a + ld [wd1f0], a + ret +; 16cb2e + +Function16cb2e: ; 16cb2e + ld a, [Buffer2] + and a + ret z + call Function16cb40 + ld hl, Unknown_16cb86 + ld de, Sprites + call Function16cb5d + ret +; 16cb40 + +Function16cb40: ; 16cb40 + ld hl, wd1ec + inc [hl] + ld a, [hl] + cp $18 + ret c + xor a + ld [hl], a + ld a, [wd1ef] + cp $a0 + jr nz, .asm_16cb57 + ld a, $a7 + ld [wd1ef], a + ret + +.asm_16cb57 + ld a, $a0 + ld [wd1ef], a + ret +; 16cb5d + +Function16cb5d: ; 16cb5d + ld a, [hli] + and a + ret z +.asm_16cb60 + push af + ld a, [wd1ee] + add [hl] + add $10 + ld [de], a + inc hl + inc de + ld a, [wd1ed] + add [hl] + add $8 + ld [de], a + inc hl + inc de + ld a, [wd1ef] + add [hl] + ld [de], a + inc hl + inc de + ld a, [wd1f0] + or [hl] + ld [de], a + inc hl + inc de + pop af + dec a + jr nz, .asm_16cb60 + ret +; 16cb86 + +Unknown_16cb86: + db 7 + db 0, 0, 0, 1 + db 8, 0, 1, 1 + db 8, 8, 2, 0 + db 8, 16, 3, 0 + db 16, 0, 4, 1 + db 16, 8, 5, 0 + db 16, 16, 6, 0 +; 16cba3 + +Function16cba3: ; 16cba3 + xor a + ld [wd1f1], a + ld [wd1f2], a + ld [wd1f3], a + ret +; 16cbae + +Function16cbae: ; 16cbae + ld a, [wd1f1] + and a + ret z + call Function16cbba + call Function16cbd1 + ret +; 16cbba + +Function16cbba: ; 16cbba + ld hl, wd1f2 + inc [hl] + ld a, [hl] + cp $c + ret c + xor a + ld [hl], a + ld a, [wd1f3] + inc a + cp $4 + jr c, .asm_16cbcd + xor a + +.asm_16cbcd + ld [wd1f3], a + ret +; 16cbd1 + +Function16cbd1: ; 16cbd1 + ld a, [wd1f3] + ld c, a + ld b, 0 + ld hl, Unknown_16cbfb + add hl, bc + ld a, [hl] + ld bc, $0002 + ld hl, Unknown_16cfa3 + call AddNTimes + ld de, wd00c + ld bc, $0002 + ld a, $5 + call FarCopyWRAM + callba Function96a4 + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 16cbfb + +Unknown_16cbfb: + db 0, 1, 2, 1, 0, 1, 2 +; 16cc02 + +Function16cc02: ; 16cc02 + call Function16cc18 + call Function16cc49 + call Function16cc62 + call Function16cc25 + call Function16cc6e + call Function16cb0f + call Function16cba3 + ret +; 16cc18 + +Function16cc18: ; 16cc18 + ld hl, VTiles1 + ld de, GFX_16cca3 + lb bc, BANK(GFX_16cca3), $2e + call Get2bpp + ret +; 16cc25 + +Function16cc25: ; 16cc25 + ld hl, Unknown_16cfa9 + ld de, wd008 + call Function16cc41 + ld hl, Unknown_16cfb1 + ld de, Unkn2Pals + call Function16cc41 + ld hl, Unknown_16cfb9 + ld de, wd048 + call Function16cc41 + ret +; 16cc41 + +Function16cc41: ; 16cc41 + ld bc, $0008 + ld a, $5 + jp FarCopyWRAM +; 16cc49 + +Function16cc49: ; 16cc49 + hlcoord 4, 15 + ld a, $80 + call Function16cc5a + hlcoord 4, 16 + ld a, $90 + call Function16cc5a + ret +; 16cc5a + +Function16cc5a: ; 16cc5a + ld c, $10 +.asm_16cc5c + ld [hli], a + inc a + dec c + jr nz, .asm_16cc5c + ret +; 16cc62 + +Function16cc62: ; 16cc62 + hlcoord 0, 15, AttrMap + ld bc, $0028 + ld a, $1 + call ByteFill + ret +; 16cc6e + +Function16cc6e: ; 16cc6e + ld hl, VBGMap1 + jr Function16cc73 + +Function16cc73: + ld a, [rVBK] + push af + ld a, $0 + ld [rVBK], a + push hl + decoord 0, 0 + call Function16cc90 + pop hl + ld a, $1 + ld [rVBK], a + decoord 0, 0, AttrMap + call Function16cc90 + pop af + ld [rVBK], a + ret +; 16cc90 + +Function16cc90: ; 16cc90 + ld bc, $1214 +.asm_16cc93 + push bc +.asm_16cc94 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_16cc94 + ld bc, $000c + add hl, bc + pop bc + dec b + jr nz, .asm_16cc93 + ret +; 16cca3 + +GFX_16cca3: +INCBIN "gfx/unknown/16cca3.2bpp" + +Unknown_16cfa3: + RGB 31, 31, 31 + RGB 25, 27, 29 + RGB 16, 19, 25 + +Unknown_16cfa9: + RGB 31, 31, 31 + RGB 25, 27, 29 + RGB 31, 31, 31 + RGB 07, 07, 07 + + +Unknown_16cfb1: + RGB 31, 31, 31 + RGB 13, 09, 18 + RGB 26, 21, 16 + RGB 07, 07, 07 + + +Unknown_16cfb9: + RGB 31, 31, 31 + RGB 18, 05, 02 + RGB 27, 11, 12 + RGB 07, 07, 07 + +; 16cfc1 + +GFX_16cfc1: +INCBIN "gfx/unknown/16cfc1.2bpp" + +Function16d421: ; 16d421 + ld de, GFX_16cfc1 + ld hl, VTiles2 + lb bc, BANK(GFX_16cfc1), $46 + call Get2bpp + ret +; 16d42e + +Function16d42e: ; 16d42e + ld hl, Tilemap_16d465 + decoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + call CopyBytes + ret +; 16d43b + +Function16d43b: ; 16d43b + call LoadMenuDataHeader_0x1d75 + call WhiteBGMap + call ClearTileMap + call ClearSprites + callba Function16d421 + callba Function16d42e + ld b, $8 + call GetSGBLayout + call SetPalettes + call WaitBGMap + call JoyWaitAorB + call Call_ExitMenu + ret +; 16d465 + +Tilemap_16d465: +INCBIN "gfx/unknown/16d465.tilemap" + +Tilemap_16d5cd: +INCBIN "gfx/unknown/16d5cd.tilemap" + +Tilemap_16d5f5: +INCBIN "gfx/unknown/16d5f5.tilemap" + +Function16d61d: ; 16d61d + ld h, d + ld l, e + push bc + push hl + call Function16d640 + pop hl + pop bc + ld de, AttrMap - TileMap + add hl, de +rept 2 + inc b +endr +rept 2 + inc c +endr + ld a, $7 +.asm_16d630 + push bc + push hl +.asm_16d632 + ld [hli], a + dec c + jr nz, .asm_16d632 + pop hl + ld de, $0014 + add hl, de + pop bc + dec b + jr nz, .asm_16d630 + ret +; 16d640 + +Function16d640: ; 16d640 + push hl + ld a, $30 + ld [hli], a + inc a + call Function16d66d + inc a + ld [hl], a + pop hl + ld de, $0014 + add hl, de +.asm_16d64f + push hl + ld a, $33 + ld [hli], a + ld a, $7f + call Function16d66d + ld [hl], $34 + pop hl + ld de, $0014 + add hl, de + dec b + jr nz, .asm_16d64f + ld a, $35 + ld [hli], a + ld a, $36 + call Function16d66d + ld [hl], $37 + ret +; 16d66d + +Function16d66d: ; 16d66d + ld d, c +.asm_16d66e + ld [hli], a + dec d + jr nz, .asm_16d66e + ret +; 16d673 + +Function16d673: ; 16d673 + call Function16d696 + call Function16d6ae + callba Function49856 + callba Functionfb60d + hlcoord 10, 17 + ld de, String_16d68f + call PlaceString + ret +; 16d68f + +String_16d68f: ; 16d68f + db "CANCEL@" +; 16d696 + +Function16d696: ; 16d696 + call Function16d421 + ret +; 16d69a + + +Function16d69a: ; 16d69a + ld de, GFX_16cfc1 + $300 + ld hl, VTiles2 tile $76 + lb bc, BANK(GFX_16cfc1), 8 + call Get2bpp + ret +; 16d6a7 + +Function16d6a7: ; 16d6a7 + callba Function49811 + ret +; 16d6ae + +Function16d6ae: ; 16d6ae + call Function16d42e + ld hl, Tilemap_16d5cd + decoord 0, 0 + ld bc, $0028 + call CopyBytes + ld hl, Tilemap_16d5f5 + decoord 0, 16 + ld bc, $0028 + call CopyBytes + ret +; 16d6ca + +Function16d6ca: ; 16d6ca + call Function16d61d + ret +; 16d6ce + +Function16d6ce: ; 16d6ce + call LoadMenuDataHeader_0x1d75 + call Function16d6e1 + callba Function87d + call Call_ExitMenu + call Function3200 + ret +; 16d6e1 + +Function16d6e1: ; 16d6e1 + hlcoord 4, 10 + ld b, $1 + ld c, $a + predef Function28eef + hlcoord 5, 11 + ld de, String_16d701 + call PlaceString + call WaitBGMap + call Function3200 + ld c, $32 + jp DelayFrames +; 16d701 + +String_16d701: ; 16d701 + db "WAITING..!@" +; 16d70c + +Function16d70c: ; 16d70c + call Function16d725 + call Function16d713 + ret +; 16d713 + +Function16d713: ; 16d713 + push bc + push af + ld a, [hJoyLast] + and $f0 + ld b, a + ld a, [hJoyPressed] + and $f + or b + ld b, a + pop af + ld a, b + pop bc + ld d, a + ret +; 16d725 + +Function16d725: ; 16d725 + ld hl, wcfa6 + res 7, [hl] + ld a, [hBGMapMode] + push af + call Function16d734 + pop af + ld [hBGMapMode], a + ret +; 16d734 + +Function16d734: ; 16d734 +.asm_16d734 + call Function16d77a + call Function16d759 + call Function16d76a + jr nc, .asm_16d758 + callba Function24270 + jr c, .asm_16d758 + ld a, [wcfa5] + bit 7, a + jr nz, .asm_16d758 + call Function16d713 + ld b, a + ld a, [wcfa8] + and b + jr z, .asm_16d734 + +.asm_16d758 + ret +; 16d759 + +Function16d759: ; 16d759 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + pop af + ld [hOAMUpdate], a + xor a + ld [hBGMapMode], a + ret +; 16d76a + +Function16d76a: ; 16d76a +.asm_16d76a + call RTC + call Function16d7e7 + ret c + ld a, [wcfa5] + bit 7, a + jr z, .asm_16d76a + and a + ret +; 16d77a + +Function16d77a: ; 16d77a + ld hl, wcfac + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + cp $1f + jr nz, .asm_16d792 + ld a, [wcfab] + ld [hl], a + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], a + pop bc + pop hl + +.asm_16d792 + ld a, [wcfa1] + ld b, a + ld a, [wcfa2] + ld c, a + call GetTileCoord + ld a, [wcfa7] + swap a + and $f + ld c, a + ld a, [wcfa9] + ld b, a + xor a + dec b + jr z, .asm_16d7b1 +.asm_16d7ad + add c + dec b + jr nz, .asm_16d7ad + +.asm_16d7b1 + ld c, $14 + call AddNTimes + ld a, [wcfa7] + and $f + ld c, a + ld a, [wcfaa] + ld b, a + xor a + dec b + jr z, .asm_16d7c8 +.asm_16d7c4 + add c + dec b + jr nz, .asm_16d7c4 + +.asm_16d7c8 + ld c, a + add hl, bc + ld a, [hl] + cp $1f + jr z, .asm_16d7de + ld [wcfab], a + ld [hl], $1f + push hl + push bc + ld bc, $000b + add hl, bc + ld [hl], $1f + pop bc + pop hl + +.asm_16d7de + ld a, l + ld [wcfac], a + ld a, h + ld [wcfad], a + ret +; 16d7e7 + +Function16d7e7: ; 16d7e7 + ld a, [wcfa5] + bit 6, a + jr z, .asm_16d7f4 + callba Function8cf62 + +.asm_16d7f4 + call JoyTextDelay + call Function16d713 + and a + ret z + scf + ret +; 16d7fe + + diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm new file mode 100755 index 000000000..50c064c9c --- /dev/null +++ b/misc/mobile_5c.asm @@ -0,0 +1,2592 @@ +Function170000: ; 170000 + ld a, [$c62b] + ld [$c6d0], a + ld hl, $c62e + ld de, $c6e7 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $c663 + ld de, $c6f2 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $c648 + ld a, [hli] + ld [$c6fd], a + ld a, [hl] + ld [$c6fe], a + ld hl, $c639 + ld a, [hli] + ld [$c6ff], a + ld a, [hl] + ld [wc700], a + ld bc, $c633 + callba GetCaughtGender + ld a, c + ld [wc701], a + ld a, [wcd81] + ld [wc74e], a + ld hl, $c608 + ld de, $d800 + ld bc, $008f + call CopyBytes + ret +; 17005a + +Function17005a: ; 17005a + ld a, $5 + call GetSRAMBank + ld a, [$a824] + ld [wc702], a + ld hl, $a827 + ld de, wc719 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $a85c + ld de, wc724 + ld bc, $0005 + call CopyBytes + ld a, $50 + ld [de], a + ld hl, $a841 + ld a, [hli] + ld [wc72f], a + ld a, [hl] + ld [wc730], a + ld hl, $a832 + ld a, [hli] + ld [wc731], a + ld a, [hl] + ld [wc732], a + ld bc, $a82c + callba GetCaughtGender + ld a, c + ld [wc733], a + ld a, [wcd81] + ld [wc74e], a + call CloseSRAM + ret +; 1700b0 + +Function1700b0: ; 1700b0 + call Function17021e + callba Function118121 + ret +; 1700ba + +Function1700ba: ; 1700ba + call Function17021e + callba Function11811a + ret +; 1700c4 + +Function1700c4: ; 1700c4 + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + call Function17042c + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$be45], a + xor a + ld [$be46], a + ld hl, $dffc + ld de, $aa41 + ld bc, $0004 + call CopyBytes + ld hl, $d202 + ld de, $aa8e + ld bc, $0594 + call CopyBytes + ld hl, $aa5d + ld a, [hl] + inc [hl] + inc hl + sla a + sla a + ld e, a + ld d, $0 + add hl, de + ld e, l + ld d, h + ld hl, $dffc + ld bc, $0004 + call CopyBytes + call CloseSRAM + pop af + ld [rSVBK], a + ret +; 170114 + +Function170114: ; 170114 + call Function17021e + call Function170121 + callba Function11805f + ret +; 170121 + +Function170121: ; 170121 + ld a, $5 + call GetSRAMBank + ld hl, $a948 + ld de, $c608 + ld bc, $00f6 + call CopyBytes + call CloseSRAM + call Function170c8b + ret +; 170139 + +Function170139: ; 170139 + ld a, $5 + call GetSRAMBank + ld de, $aa41 + ld h, $0 + ld l, h + ld bc, $03e8 + call Function17020c + ld bc, $0064 + call Function17020c + ld bc, $000a + call Function17020c + ld a, [de] + ld c, a + ld b, $0 + add hl, bc + call CloseSRAM + ld a, h + ld [$c608], a + ld a, l + ld [$c608 + 1], a + ld hl, $c628 + ld a, [PlayerID] + ld [hli], a + ld a, [PlayerID + 1] + ld [hli], a + ld a, [wSecretID] + ld [hli], a + ld a, [wSecretID + 1] + ld [hli], a + ld e, l + ld d, h + ld hl, PlayerName + ld bc, $0005 + call CopyBytes + ld bc, PlayerID + ld de, PlayerGender + callba Function4e929 + ld de, $c62c + 5 + ld a, c + ld [de], a + inc de + ld a, $df + ld [wcd49], a + ld a, $dc + ld [wcd4a], a + ld a, $41 + ld [wcd4b], a + ld a, $de + ld [wcd4c], a + ld a, $3 +.asm_1701ac + push af + ld a, [wcd49] + ld l, a + ld a, [wcd4a] + ld h, a + ld bc, $0030 + call CopyBytes + ld a, l + ld [wcd49], a + ld a, h + ld [wcd4a], a + ld a, [wcd4b] + ld l, a + ld a, [wcd4c] + ld h, a + ld bc, $0006 + call CopyBytes + ld a, l + ld [wcd4b], a + ld a, h + ld [wcd4c], a + pop af + dec a + jr nz, .asm_1701ac + ld a, $4 + call GetSRAMBank + ld hl, $a013 + ld bc, $0024 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $a894 + ld bc, $0006 + call CopyBytes + ld hl, $c608 + ld de, $a948 + ld bc, $00f6 + call CopyBytes + call CloseSRAM + ret +; 17020c + +Function17020c: ; 17020c + ld a, [de] + inc de + and a + ret z +.asm_170210 + add hl, bc + dec a + jr nz, .asm_170210 + ret +; 170215 + +BattleTowerBattle: ; 170215 + xor a + ld [wJumptableIndex], a + call Function17022c + ret +; 17021d + +Function17021d: ; 17021d + ret +; 17021e + +Function17021e: ; 17021e + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ret +; 17022c + +Function17022c: ; 17022c +.loop + call Jumpto_BattleTowerBattleFunction + call DelayFrame + ld a, [wJumptableIndex] + cp $1 + jr nz, .loop + ret +; 17023a + +Jumpto_BattleTowerBattleFunction: ; 17023a + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_BattleTowerBattleFunctions +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170249 + +Jumptable_BattleTowerBattleFunctions: ; 170249 + dw RunBattleTowerBattle + dw SkipBattleTowerBattle +; 17024d + +RunBattleTowerBattle: ; 17024d + ld a, [Options] + push af + ld hl, Options + set 6, [hl] + ld a, [InBattleTowerBattle] + push af + or $1 + ld [InBattleTowerBattle], a + xor a + ld [wLinkMode], a + callba Mobile_HealParty + callba HealParty + call Function1702b7 + call Function170bf7 + predef StartBattle + callba LoadPokemonData + callba HealParty + ld a, [wBattleResult] + ld [ScriptVar], a + and a + jr nz, .lost + ld a, BANK(sNrOfBeatenBattleTowerTrainers) + call GetSRAMBank + ld a, [sNrOfBeatenBattleTowerTrainers] + ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 + call CloseSRAM + ld hl, StringBuffer3 + ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 + add $f7 + ld [hli], a + ld a, $50 + ld [hl], a + +.lost + pop af + ld [InBattleTowerBattle], a + pop af + ld [Options], a + ld a, $1 + ld [wJumptableIndex], a + ret + + +Function1702b7: ; 1702b7 +; Initialise the BattleTower-Trainer and his Pkmn + call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_1702db + + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_1702db + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_1702fc + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_1702fc + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 + ld c, PKMN_NAME_LENGTH + callba Function17d073 + jr nc, .asm_17031d + ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689] + ld [wd265], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.asm_17031d + ld a, $50 + ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d + ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688 + ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3 + call Function170c98 + ld de, wBT_OTTempCopy + ld c, $a + callba Function17d073 + jr nc, .asm_17033d + ld hl, String_170426 + jr .asm_170340 + +.asm_17033d + ld hl, wBT_OTTempCopy ; 0xc608 + +.asm_170340 + ld de, wd26b + ld bc, $000a + call CopyBytes + ld a, $50 + ld [de], a + ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass + ld a, [hli] + ld [OtherTrainerClass], a + ld a, $ea + ld [BGMapBuffer], a + ld a, $d3 + ld [wcd21], a + + ; Copy Pkmn into Memory from the address in hl + ld de, OTPartyMon1Species + ld bc, OTPartyCount + ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has + ld [bc], a + inc bc +.asm_170367 + push af + ld a, [hl] + ld [bc], a + inc bc + push bc + ld bc, party_struct_length + call CopyBytes + push de + ld a, [BGMapBuffer] + ld e, a + ld a, [wcd21] + ld d, a + ld bc, $000b + call CopyBytes + ld a, e + ld [BGMapBuffer], a + ld a, d + ld [wcd21], a + pop de + pop bc + pop af + dec a + and a + jr nz, .asm_170367 + ld a, $ff + ld [bc], a + ret +; 170394 + +Function170394: ; 170394 + ld hl, $c608 + 11 + ld d, $3 +.asm_170399 + push de + push hl + ld b, h + ld c, l + ld a, [hl] + and a + jr z, .asm_1703b1 + cp $ff + jr z, .asm_1703b1 + cp $fe + jr z, .asm_1703b1 + cp $fd + jr z, .asm_1703b1 + cp $fc + jr nz, .asm_1703b4 + +.asm_1703b1 + ld a, $eb + ld [hl], a + +.asm_1703b4 + ld [CurSpecies], a + call GetBaseData + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld e, a + ld hl, $001f + add hl, bc + ld a, [hl] + cp $2 + ld a, $2 + jr c, .asm_1703d6 + ld a, [hl] + cp e + jr c, .asm_1703d7 + ld a, e + +.asm_1703d6 + ld [hl], a + +.asm_1703d7 + ld [CurPartyLevel], a + ld hl, $0002 + add hl, bc + ld d, $3 + ld a, [hli] + and a + jr z, .asm_1703ea + cp $fc + jr nc, .asm_1703ea + jr .asm_1703f4 + +.asm_1703ea + dec hl + ld a, $1 + ld [hli], a + xor a +rept 2 + ld [hli], a +endr + ld [hl], a + jr .asm_1703ff + +.asm_1703f4 + ld a, [hl] + cp $fc + jr c, .asm_1703fb + ld [hl], $0 + +.asm_1703fb + inc hl + dec d + jr nz, .asm_1703f4 + +.asm_1703ff + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + push hl + push de + ld hl, $000a + add hl, bc + ld b, $1 + predef CalcPkmnStats + pop de + pop hl +rept 2 + dec de +endr + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + pop hl + ld bc, $003b + add hl, bc + pop de + dec d + jp nz, .asm_170399 + ret +; 170426 + +String_170426: ; 170426 + db "CHRIS@" +; 17042c + +Function17042c: ; 17042c + ld hl, OTPartyMon2ID + ld a, $7 +.asm_170431 + push af + push hl + ld c, $12 +.asm_170435 + ld a, [hli] + ld b, a + ld a, [hli] + and a + jr z, .asm_170451 + cp $f + jr nc, .asm_17045b + push hl + ld hl, Unknown_170470 + dec a + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + pop hl + cp b + jr c, .asm_17045b + jr z, .asm_17045b + jr .asm_170456 + +.asm_170451 + ld a, b + cp $fc + jr nc, .asm_17045b + +.asm_170456 + dec c + jr nz, .asm_170435 + jr .asm_170466 + +.asm_17045b + pop de + push de + ld hl, Unknown_17047e + ld bc, $0024 + call CopyBytes + +.asm_170466 + pop hl + ld de, $00e0 + add hl, de + pop af + dec a + jr nz, .asm_170431 + ret +; 170470 + +Unknown_170470: + db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 + +Unknown_17047e: + db $03, $04, $05, $08 + db $03, $05, $0e, $06 + db $03, $02, $00, $00 + db $39, $07, $07, $04 + db $00, $05, $04, $07 + db $01, $05, $00, $00 + db $0f, $05, $14, $07 + db $05, $05, $11, $0c + db $0c, $06, $06, $04 + + +CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 +; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy' + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, BT_OTrainer ; $d100 + ld de, wBT_OTTempCopy ; $c608 + ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 + ; = $a + $1 + BATTLETOWER_NROFPKMNS * (party_struct_length + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH + call CopyBytes + pop af + ld [rSVBK], a + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $2 + ld [s1_be45], a + ld hl, sNrOfBeatenBattleTowerTrainers + inc [hl] + call CloseSRAM +SkipBattleTowerBattle: ; 1704c9 + ret +; 1704ca + + +Function1704ca: ; 1704ca + ld a, [$be46] + cp $7 + jr c, .asm_1704d3 + ld a, $6 + +.asm_1704d3 + ld hl, $afce + ld de, -$e0 +.asm_1704d9 + and a + jr z, .asm_1704e0 + add hl, de + dec a + jr .asm_1704d9 + +.asm_1704e0 + ret +; 1704e1 + +Function1704e1: ; 1704e1 + call SpeechTextBox + call FadeToMenu + call Function17021e + call Function1704f1 + call Function2b3c + ret +; 1704f1 + +Function1704f1: ; 1704f1 + call WhiteBGMap + call ClearSprites + call ClearScreen +.asm_1704fa + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_17050f + call Function170510 + callba Function104061 + jr .asm_1704fa + +.asm_17050f + ret +; 170510 + +Function170510: ; 170510 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_17051f +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 17051f + +Jumptable_17051f: ; 17051f + dw Function170525 + dw Function170571 + dw Function170577 +; 170525 + +Function170525: ; 170525 + ld a, $5 + call GetSRAMBank + + ld hl, $a89c + ld de, StringBuffer3 + ld bc, $0016 + call CopyBytes + + ld hl, $a8b2 + ld de, $c608 + ld bc, $0096 + call CopyBytes + + call CloseSRAM + hlcoord 1, 1 + ld de, StringBuffer3 + call PlaceString + hlcoord 1, 3 + ld de, String_170676 + call PlaceString + hlcoord 4, 3 + ld de, StringBuffer4 + call PlaceString + hlcoord 8, 3 + ld de, String_17067a + call PlaceString + call Function1705b7 + call Function1705f0 + jr Function1705b2 + + +Function170571: + call SetPalettes + call Function1705b2 + + +Function170577: + ld hl, hJoyPressed + ld a, [hl] + and $1 + jr nz, .asm_1705ac + ld a, [hl] + and $2 + jr nz, .asm_1705ac + ld a, [hl] + and $40 + jr nz, .asm_17058f + ld a, [hl] + and $80 + jr nz, .asm_17059d + ret + +.asm_17058f + ld a, [wcf64] + and a + ret z + sub $f + ld [wcf64], a + call Function1705f0 + ret + +.asm_17059d + ld a, [wcf64] + cp $3c + ret z + add $f + ld [wcf64], a + call Function1705f0 + ret + +.asm_1705ac + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function1705b2: + ld hl, wJumptableIndex + inc [hl] + ret +; 1705b7 + +Function1705b7: ; 1705b7 + hlcoord 0, 4 + ld a, $79 + ld [hli], a + ld c, $12 +.asm_1705bf + ld a, $7a + ld [hli], a + dec c + jr nz, .asm_1705bf + ld a, $7b + ld [hli], a + ld de, $0014 + ld c, $c +.asm_1705cd + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_1705cd + ld a, $7d + ld [hli], a + ld c, $12 +.asm_1705d9 + ld a, $7a + ld [hli], a + dec c + jr nz, .asm_1705d9 + ld a, $7e + ld [hl], a + ld de, $ffec + add hl, de + ld c, $c +.asm_1705e8 + ld a, $7c + ld [hl], a + add hl, de + dec c + jr nz, .asm_1705e8 + ret +; 1705f0 + +Function1705f0: ; 1705f0 + call Function17064b + call Function17065d + ld a, $50 + ld [wcd4e], a + ld hl, $c608 + ld a, [wcf64] + ld c, a + xor a + ld b, a + add hl, bc + push hl + pop bc + hlcoord 1, 6 + ld a, $6 +.asm_17060c + push af + push hl + ld a, $3 +.asm_170610 + push af + ld de, wcd49 + ld a, [bc] + and a + jr z, .asm_170625 + ld a, $5 +.asm_17061a + push af + ld a, [bc] + ld [de], a + inc bc + inc de + pop af + dec a + jr nz, .asm_17061a + jr .asm_170631 + +.asm_170625 + ld a, $5 +.asm_170627 + push af + ld a, $e3 + ld [de], a + inc de + inc bc + pop af + dec a + jr nz, .asm_170627 + +.asm_170631 + ld de, wcd49 + push bc + call PlaceString + ld de, $0006 + add hl, de + pop bc + pop af + dec a + jr nz, .asm_170610 + pop hl + ld de, $0028 + add hl, de + pop af + dec a + jr nz, .asm_17060c + ret +; 17064b + +Function17064b: ; 17064b + hlcoord 1, 5 + xor a + ld b, $c +.asm_170651 + ld c, $12 +.asm_170653 + ld [hli], a + dec c + jr nz, .asm_170653 +rept 2 + inc hl +endr + dec b + jr nz, .asm_170651 + ret +; 17065d + +Function17065d: ; 17065d + ld a, [wcf64] + and a + jr z, .asm_170669 + hlcoord 18, 5 + ld a, $61 + ld [hl], a + +.asm_170669 + ld a, [wcf64] + cp $3c + ret z + hlcoord 18, 16 + ld a, $ee + ld [hl], a + ret +; 170676 + +String_170676: ; 170676 + db "ルーム@" +; 17067a + +String_17067a: ; 17067a + db "れきだいりーダーいちらん@" +; 170687 + +BattleTowerAction: ; 170687 + ld a, [ScriptVar] + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170696 + + +.jumptable: ; 170696 (5c:4696) + dw Function17075f ; 0x00 + dw Function170788 ; 0x01 + dw Function170778 ; 0x02 + dw Function170799 ; 0x03 + dw Function17079d ; 0x04 + dw Function1707ac ; 0x05 + dw Function1707f4 ; 0x06 + dw Function170868 ; 0x07 + dw Function170881 ; 0x08 + dw Function17089a ; 0x09 + dw Function1708b1 ; 0x0a + dw Function1708b9 ; 0x0b + dw Function1708c8 ; 0x0c + dw Function1708f0 ; 0x0d + dw Function17093c ; 0x0e + dw Function1709aa ; 0x0f + dw Function1709bb ; 0x10 + dw Function170a9c ; 0x11 + dw Function170aa0 ; 0x12 + dw Function170aaf ; 0x13 + dw Function170abe ; 0x14 + dw Function170ad7 ; 0x15 + dw Function170807 ; 0x16 + dw Function17081d ; 0x17 + dw Function170ae8 ; 0x18 + dw Function170b16 ; 0x19 + dw ResetBattleTowerTrainersSRAM ; 0x1a + dw Function1706ee ; 0x1b + dw Function17071b ; 0x1c + dw Function170729 ; 0x1d + dw Function17073e ; 0x1e + dw Function170737 ; 0x1f + + +; Reset the save memory for BattleTower-Trainers (Counter and all 7 TrainerBytes) +ResetBattleTowerTrainersSRAM: ; 1706d6 (5c:46d6) BattleTowerAction $1a + ld a, BANK(sBTTrainers) + call GetSRAMBank + + ld a, $ff + ld hl, sBTTrainers + ld bc, BATTLETOWER_NROFTRAINERS + call ByteFill + + xor a + ld [sNrOfBeatenBattleTowerTrainers], a + + call CloseSRAM + + ret + +Function1706ee: ; 1706ee (5c:46ee) + ld a, BANK(sbe50) + call GetSRAMBank + + ld a, [sbe50] + call CloseSRAM + ld [ScriptVar], a + ld hl, NumItems + ld a, [hli] + cp $14 + ret c + ld b, $14 + ld a, [ScriptVar] + ld c, a +.asm_170709 + ld a, [hli] + cp c + jr nz, .asm_170711 + ld a, [hl] + cp $5f + ret c +.asm_170711 + inc hl + dec b + jr nz, .asm_170709 + ld a, $12 + ld [ScriptVar], a + ret + +Function17071b: ; 17071b (5c:471b) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $3 + ld [s1_be45], a + call CloseSRAM + ret + +Function170729: ; 170729 (5c:4729) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $4 + ld [s1_be45], a + call CloseSRAM + ret + +Function170737: ; 170737 (5c:4737) + callba SaveOptions + ret + +Function17073e: ; 17073e (5c:473e) + call Random + ld a, [hRandomAdd] ; $ff00+$e1 + and $7 + cp $6 + jr c, .asm_17074b + sub $6 +.asm_17074b + add $1a + cp $1e + jr z, Function17073e + push af + ld a, BANK(sbe50) + call GetSRAMBank + pop af + ld [sbe50], a + call CloseSRAM + ret + +Function17075f: ; 17075f (5c:475f) + call Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + and $2 + ld [ScriptVar], a + call CloseSRAM + ret + +Function170778: ; 170778 (5c:4778) + ld hl, s1_be45 + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, [hl] + ld [ScriptVar], a + call CloseSRAM + ret + +Function170788: ; 170788 (5c:4788) + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + or $2 + ld [sbe4f], a + call CloseSRAM + ret + +Function170799: ; 170799 (5c:4799) + ld c, $1 + jr asm_17079f + +Function17079d: ; 17079d (5c:479d) + ld c, $0 +asm_17079f: ; 17079f (5c:479f) + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, c + ld [s1_be45], a + call CloseSRAM + ret + +Function1707ac: ; 1707ac (5c:47ac) + ld a, $5 + call GetSRAMBank + ld a, [$aa8c] + ld b, a + ld a, [$be46] + ld [ScriptVar], a + call CloseSRAM + and a + ret z + ld a, b + cp $2 + jr nc, .asm_1707ef + push bc + call UpdateTime + pop bc + ld a, $5 + call GetSRAMBank + ld a, [$aa8b] + call CloseSRAM + ld c, a + ld a, [CurDay] + sub c + jr c, .asm_1707e5 + cp $8 + jr nc, .asm_1707ef + ld a, b + and a + jr nz, .asm_1707ef + ret +.asm_1707e5 + ld hl, CurDay + ld a, $8c + sub c + add [hl] + cp $8 + ret c +.asm_1707ef + ld a, $8 + ld [ScriptVar], a + +Function1707f4: ; 1707f4 (5c:47f4) + ld a, $5 + call GetSRAMBank + xor a + ld [$be46], a + ld [$aa8b], a + ld [$aa8c], a + call CloseSRAM + ret + +Function170807: ; 170807 (5c:4807) + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [CurDay] + ld [$b2f9], a + xor a + ld [$b2fa], a + call CloseSRAM + ret + +Function17081d: ; 17081d (5c:481d) + xor a + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + ld a, [$b2f9] + ld c, a + ld a, [$b2fa] + ld b, a + call CloseSRAM + cp $2 + jr nc, .asm_170853 + push bc + call UpdateTime + pop bc + ld a, [CurDay] + sub c + jr c, .asm_170849 + cp $b + jr nc, .asm_170853 + ld a, b + and a + jr nz, .asm_170853 + ret +.asm_170849 + ld hl, CurDay + ld a, $8c + sub c + add [hl] + cp $b + ret c +.asm_170853 + ld a, $1 + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + xor a + ld [$b2f9], a + ld [$b2fa], a + call CloseSRAM + ret + +Function170868: ; 170868 (5c:4868) + ld a, BANK(sbe47) + call GetSRAMBank + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $3 + ld [rSVBK], a ; $ff00+$70 + ld a, [wd000 + $800] + ld [sbe47], a + pop af + ld [rSVBK], a ; $ff00+$70 + call CloseSRAM + ret + +Function170881: ; 170881 (5c:4881) + ld a, BANK(sbe47) + call GetSRAMBank + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $3 + ld [rSVBK], a ; $ff00+$70 + ld a, [sbe47] + ld [wd000 + $800], a + pop af + ld [rSVBK], a ; $ff00+$70 + call CloseSRAM + ret + +Function17089a: ; 17089a + ld a, [wcfcd] + and a + jr z, .asm_1708ad + callba Function14bcb + jr z, .asm_1708ab + xor a + jr .asm_1708ad + +.asm_1708ab + ld a, $1 + +.asm_1708ad + ld [ScriptVar], a + ret +; 1708b1 + + +Function1708b1: ; 1708b1 (5c:48b1) + xor a + ld [MusicFade], a + call MaxVolume + ret + +Function1708b9: ; 1708b9 (5c:48b9) something to do with GS Ball + ld a, BANK(s1_be3c) + call GetSRAMBank + ld a, [s1_be3c] + ld [ScriptVar], a + call CloseSRAM + ret + +Function1708c8: ; 1708c8 (5c:48c8) + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [CurDay] + ld [$aa8b], a + xor a + ld [$aa8c], a + ld a, [$aa5d] + cp $2 + jr nc, .asm_1708ec + ld a, [CurDay] + ld [$aa48], a + ld a, $1 + ld [$aa47], a +.asm_1708ec + call CloseSRAM + ret + +Function1708f0: ; 1708f0 (5c:48f0) + xor a + ld [ScriptVar], a + call UpdateTime + ld a, $5 + call GetSRAMBank + ld a, [$aa48] + ld c, a + ld a, [$aa47] + call CloseSRAM + and a + ret z + ld hl, CurDay + ld a, c + cp [hl] + jr nz, Function170923 + ld a, $5 + call GetSRAMBank + ld a, [$aa5d] + call CloseSRAM + cp $5 + ret c + ld a, $1 + ld [ScriptVar], a + ret + + +Function170923: ; 170923 + ld a, $5 + call GetSRAMBank + xor a + ld [$aa48], a + ld [$aa47], a + ld hl, $aa5d + ld bc, $0011 + call ByteFill + call CloseSRAM + ret +; 17093c + + +Function17093c: ; 17093c (5c:493c) + xor a + ld [ScriptVar], a + ld a, EGG_TICKET + ld [CurItem], a + ld hl, NumItems + call CheckItem + ret nc + ld a, [PartyCount] + ld b, 0 + ld c, a + ld hl, PartySpecies +.loop + ld a, [hli] + cp EGG + jr nz, .not_egg + push hl + ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) + ld de, $6 + ld a, b + and a + jr z, .skip +.loop2 + add hl, de + dec a + jr nz, .loop2 +.skip + ld de, String_1709a4 + ld a, $6 +.asm_17096e + push af + ld a, [de] + inc de + cp [hl] + inc hl + jr nz, .asm_17099d + pop af + dec a + jr nz, .asm_17096e +rept 4 + dec hl +endr + ld a, $50 +rept 2 + ld [hli], a +endr + pop hl + ld a, EGG_TICKET + ld [CurItem], a + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld a, $ff + ld [wd107], a + ld hl, NumItems + call TossItem + ld a, $1 + ld [ScriptVar], a + ret + +.asm_17099d + pop af + pop hl +.not_egg + inc b + dec c + jr nz, .loop + ret +; 1709a4 (5c:49a4) + +String_1709a4: ; 1709a4 + db "なぞナゾ@@" + +Function1709aa: ; 1709aa (5c:49aa) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, BANK(w3_d090) + ld [rSVBK], a ; $ff00+$70 + ld a, [w3_d090] + ld [ScriptVar], a + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +Function1709bb: ; 1709bb (5c:49bb) + xor a + ld [ScriptVar], a + ld a, $5 + call GetSRAMBank + ld a, [$a800] + call CloseSRAM + cp 6 + jr nc, .invalid + ld e, a + ld d, 0 + ld hl, Jumptable_1709e7 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.invalid + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + call CloseSRAM + ret +; 1709e7 (5c:49e7) + +Jumptable_1709e7: ; 1709e7 + dw Function170a00 + dw Function170a00 + dw Function1709f3 + dw Function1709f3 + dw Function170a01 + dw Function170a33 +; 1709f3 + +Function1709f3: ; 1709f3 + ld a, $5 + call GetSRAMBank + ld a, $1 + ld [$a800], a + call CloseSRAM + +Function170a00: ; 170a00 + ret +; 170a01 + +Function170a01: ; 170a01 + ld a, $5 + call GetSRAMBank + ld hl, $b023 + ld de, $c608 + ld bc, $0069 + call CopyBytes + ld a, [$a825] + ld [wcd30], a + ld a, [$a826] + ld [wcd31], a + call CloseSRAM + callba Function11b6b4 + callba Function17d0f3 + ld a, $1 + ld [ScriptVar], a + ret +; 170a33 + +Function170a33: ; 170a33 + ld a, $0 + call GetSRAMBank + ld hl, wRTC + ld de, $c608 + ld bc, $0004 + call CopyBytes + call CloseSRAM + ld a, $5 + call GetSRAMBank + ld hl, $b08c + ld de, $c608 + ld c, $4 +.asm_170a54 + ld a, [de] + inc de + cp [hl] + jr nz, .asm_170a78 + inc hl + dec c + jr nz, .asm_170a54 + call CloseSRAM + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_170a72 + ld a, [de] + and a + ret nz + +.asm_170a72 + ld a, $1 + ld [ScriptVar], a + ret + +.asm_170a78 + call CloseSRAM + ld a, $5 + call GetSRAMBank + xor a + ld [$a800], a + call CloseSRAM + ld [ScriptVar], a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetMapTrigger + ld a, d + or e + jr z, .asm_170a9b + xor a + ld [de], a + +.asm_170a9b + ret +; 170a9c + +Function170a9c: ; 170a9c (5c:4a9c) + ld c, $0 + jr asm_170aa2 + +Function170aa0: ; 170aa0 (5c:4aa0) + ld c, $1 +asm_170aa2: ; 170aa2 (5c:4aa2) + ld a, $5 + call GetSRAMBank + ld a, c + ld [$aa8d], a + call CloseSRAM + ret + +Function170aaf: ; 170aaf (5c:4aaf) + ld a, $5 + call GetSRAMBank + ld a, [$aa8d] + ld [ScriptVar], a + call CloseSRAM + ret + +Function170abe: ; 170abe (5c:4abe) + call Function17089a + ld a, [ScriptVar] + and a + ret z + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + and $1 + ld [ScriptVar], a + call CloseSRAM + ret + +Function170ad7: ; 170ad7 (5c:4ad7) + ld a, BANK(sbe4f) + call GetSRAMBank + ld a, [sbe4f] + or $1 + ld [sbe4f], a + call CloseSRAM + ret + +Function170ae8: ; 170ae8 (5c:4ae8) + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld c, $a + call SimpleDivide + ld a, b + ld [wcd4f], a + xor a + ld [ScriptVar], a + callba Function119d93 + ret nc + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld [ScriptVar], a + ret + +Function170b16: ; 170b16 (5c:4b16) + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld c, 10 + call SimpleDivide + ld a, b + ld [wcd4f], a + xor a + ld [ScriptVar], a + callba Function119dd1 + ret nc + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld [ScriptVar], a + ret + +Function_LoadOpponentTrainerAndPokemonsWithOTSprite: ; 0x170b44 + callba Function_LoadOpponentTrainerAndPokemons + ld a, [rSVBK] + push af + ld a, $3 + ld [rSVBK], a + ld hl, wd10a + ld a, [hl] + dec a + ld c, a + ld b, $0 + pop af + ld [rSVBK], a + ld hl, Unknown_170b90 + add hl, bc + ld a, [hl] + ld [wcd49], a + +; Load sprite of the opponent trainer +; because s/he is chosen randomly and appears out of nowhere + ld a, [ScriptVar] + dec a + sla a + ld e, a + sla a + sla a + sla a + ld c, a + ld b, $0 + ld d, $0 + ld hl, MapObjects + add hl, bc + inc hl + ld a, [wcd49] + ld [hl], a + ld hl, UsedSprites + add hl, de + ld [hli], a + ld [hUsedSpriteIndex], a + ld a, [hl] + ld [hUsedSpriteTile], a + callba Function143c8 + ret +; 170b90 + +Unknown_170b90: + db $12, $13, $14, $15, $18, $17 + db $16, $19, $04, $05, $11, $01 + db $1c, $1b, $21, $1e, $1a, $1d + db $1f, $3c, $20, $27, $27, $27 + db $28, $0a, $23, $24, $2a, $2b + db $35, $40, $2a, $29, $22, $25 + db $3a, $2b, $24, $49, $2b, $07 + db $2c, $2d, $4a, $0d, $4b, $3a + db $2b, $41, $35, $27, $28, $27 + db $36, $3e, $30, $2c, $2d, $3d + db $26, $2e, $06, $07, $43, $36 + +Function170bd2: ; 170bd2 + ret +; 170bd3 + +SpecialCheckForBattleTowerRules: ; 170bd3 + callba CheckForBattleTowerRules + jr c, .asm_170bde + xor a + jr .asm_170be0 + +.asm_170bde + ld a, $1 + +.asm_170be0 + ld [ScriptVar], a + ret +; 170be4 +Function170be4: ; 170be4 + ld a, $5 + call GetSRAMBank + xor a + ld hl, $a894 + ld bc, $0008 + call ByteFill + call CloseSRAM + ret +; 170bf7 + +Function170bf7: ; 170bf7 + ld a, $5 + call GetSRAMBank + ld hl, $a89a + xor a + ld [hli], a + ld [hl], a + call CloseSRAM + ret +; 170c06 + +Function170c06: ; 170c06 + ld a, $5 + call GetSRAMBank + ld hl, $a894 + ld a, [wBattleResult] + and a + jr nz, .asm_170c15 + inc [hl] + +.asm_170c15 +rept 2 + inc hl +endr + ld a, [$a89b] + add [hl] + ld [hld], a + ld a, [$a89a] + adc [hl] + ld [hli], a + jr nc, .asm_170c27 + ld a, $ff + ld [hld], a + ld [hli], a + +.asm_170c27 + inc hl + push hl + ld de, 0 + xor a + ld [wd265], a +.asm_170c30 + ld hl, PartyMon1HP + ld a, [wd265] + call GetPartyLocation + ld a, [hli] + ld b, a + ld c, [hl] +rept 2 + inc hl +endr + ld a, [hld] + sub c + ld c, a + ld a, [hl] + sbc b + ld b, a + push de + pop hl + add hl, bc + push hl + pop de + jr c, .asm_170c58 + ld a, [wd265] + inc a + ld [wd265], a + cp $3 + jr c, .asm_170c30 + jr .asm_170c5b + +.asm_170c58 + ld de, -1 + +.asm_170c5b + pop hl + inc hl + ld a, e + add [hl] + ld [hld], a + ld a, d + adc [hl] + ld [hli], a + jr nc, .asm_170c69 + ld a, $ff + ld [hld], a + ld [hli], a + +.asm_170c69 + inc hl + push hl + ld b, $0 + ld c, $0 +.asm_170c6f + ld hl, PartyMon1HP + ld a, b + push bc + call GetPartyLocation + pop bc + ld a, [hli] + or [hl] + jr nz, .asm_170c7d + inc c + +.asm_170c7d + inc b + ld a, b + cp $3 + jr c, .asm_170c6f + pop hl + ld a, [hl] + add c + ld [hl], a + call CloseSRAM + ret +; 170c8b + +Function170c8b: ; 170c8b + ld hl, LastPlayerCounterMove + ld b, $5 +.asm_170c90 + ld a, [hl] + xor $ff + ld [hli], a + dec b + jr nz, .asm_170c90 + ret +; 170c98 + +Function170c98: ; 170c98 + ld c, $3 + ld hl, $c608 + 13 +.asm_170c9d + push hl + ld a, [hl] + cp $fc + jr c, .asm_170ca6 + ld a, $1 + ld [hl], a + +.asm_170ca6 + inc hl + ld b, $3 +.asm_170ca9 + ld a, [hl] + and a + jr z, .asm_170cb1 + cp $fc + jr c, .asm_170cb9 + +.asm_170cb1 + xor a + ld [hl], a + inc hl + dec b + jr nz, .asm_170cb1 + jr .asm_170cbd + +.asm_170cb9 + inc hl + dec b + jr nz, .asm_170ca9 + +.asm_170cbd + pop hl + ld de, $003b + add hl, de + dec c + jr nz, .asm_170c9d + ret +; 170cc6 + +Function170cc6: ; 170cc6 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, LZ_170d16 + ld de, wd000 + call Decompress + ld a, $1 + ld [rVBK], a + ld de, wd000 + ld hl, VTiles0 + lb bc, $6, $c1 + call Get2bpp + xor a + ld [rVBK], a + ld hl, LZ_1715a4 + ld de, wd000 + call Decompress + ld de, Unkn1Pals + ld hl, VTiles0 + lb bc, $6, $53 + call Get2bpp + pop af + ld [rSVBK], a + ret +; 170d02 + +Function170d02: ; 170d02 + ld a, $1 + ld [rVBK], a + ld de, GFX_171848 + ld hl, VTiles1 tile $41 + lb bc, BANK(GFX_171848), $18 + call Get2bpp + xor a + ld [rVBK], a + ret +; 170d16 + +LZ_170d16: +INCBIN "gfx/unknown/170d16.2bpp.lz" + +LZ_1715a4: +INCBIN "gfx/unknown/1715a4.2bpp.lz" + +GFX_171848: +INCBIN "gfx/unknown/171848.2bpp" + +Function1719c8: ; 1719c8 (5c:59c8) + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function1719d6 + pop af + ld [hInMenu], a + ret + +Function1719d6: ; 1719d6 (5c:59d6) + callba Function1183cb + call Function1719ed + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $5 + ld [rSVBK], a ; $ff00+$70 + call Function171a11 + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +Function1719ed: ; 1719ed (5c:59ed) + xor a + ld [wcd49], a + ld [wcd4a], a + dec a + ld [wcd4b], a + call WhiteBGMap + call ClearSprites + callba Function171d2b + callba Function104061 + callba Function8cf53 + ret + +Function171a11: ; 171a11 (5c:5a11) + call JoyTextDelay + ld a, [wcd49] + bit 7, a + jr nz, .asm_171a2c + call Function171a36 + callba Function8cf69 + callba Function104061 + jr Function171a11 +.asm_171a2c + callba Function8cf53 + call ClearSprites + ret + +Function171a36: ; 171a36 (5c:5a36) + ld a, [wcd49] + ld e, a + ld d, 0 + ld hl, Jumptable_171a45 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_171a45: ; 171a45 (5c:5a45) + dw Function171a95 + dw Function171ac9 + dw Function171a5d + dw Function171ad7 + dw Function171a5d + dw Function171aec + dw Function171b4b + dw Function171b85 + dw Function171bcc + dw Function171c2c + dw Function171c39 + dw Function171c41 + + +Function171a5d: ; 171a5d (5c:5a5d) + ld a, [wc821] + bit 1, a + jr nz, .asm_171a6a + bit 0, a + ret nz + jp Function171c66 +.asm_171a6a + ld a, $0 + call Function3e32 + ld [wc300], a + ld a, l + ld [wc301], a + ld a, h + ld [wc302], a + ld a, $a + call Function3e32 + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + callba Function118452 + pop af + ld [rSVBK], a ; $ff00+$70 + ld a, $a + ld [wcd49], a + ret + +Function171a95: ; 171a95 (5c:5a95) + callba Function171ccd + hlcoord 2, 8 + ld de, String_171aa7 + call PlaceString + jp Function171c66 +; 171aa7 (5c:5aa7) + +String_171aa7: ; 171aa7 + db "モバイルアダプタに" + next "せつぞく しています" + next "しばらく おまちください" + db "@" +; 171ac9 + +Function171ac9: ; 171ac9 (5c:5ac9) + ld de, wcd81 + ld hl, $5c + ld a, $2 + call Function3e32 + jp Function171c66 + +Function171ad7: ; 171ad7 (5c:5ad7) + xor a + ld hl, $c608 + ld bc, $66 + call ByteFill + ld de, $c608 + ld a, $c + call Function3e32 + jp Function171c66 + +Function171aec: ; 171aec (5c:5aec) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $1 + ld [rSVBK], a ; $ff00+$70 + callba Function118452 + pop af + ld [rSVBK], a ; $ff00+$70 + hlcoord 2, 6 + ld a, $8 +.asm_171b01 + push af + push hl + xor a + ld bc, $10 + call ByteFill + pop hl + ld de, $14 + add hl, de + pop af + dec a + jr nz, .asm_171b01 + hlcoord 2, 7 + ld a, $3 + ld de, $c608 +.asm_171b1b + push af + push hl + ld a, [de] + and a + jr z, .asm_171b34 + ld a, [wcd4b] + inc a + ld [wcd4b], a + push hl + call Function171b42 + pop hl + ld bc, $ffec + add hl, bc + call Function171b42 +.asm_171b34 + pop hl + ld bc, $14 +rept 3 + add hl, bc +endr + pop af + dec a + jr nz, .asm_171b1b + jp Function171c66 + +Function171b42: ; 171b42 (5c:5b42) + ld a, [de] + inc de + and a + ret z + sub $20 + ld [hli], a + jr Function171b42 + +Function171b4b: ; 171b4b (5c:5b4b) + lb de, $40, $10 + ld a, $1d + call Function3b2a + ld hl, $c + add hl, bc + ld a, $8 + ld [hl], a + lb de, $40, $98 + ld a, $1d + call Function3b2a + ld hl, $c + add hl, bc + ld a, $9 + ld [hl], a + lb de, $8a, $70 + ld a, $1d + call Function3b2a + ld hl, $c + add hl, bc + ld a, $a + ld [hl], a + ld a, $4 + ld [wcd23], a + ld a, $8 + ld [wcd24], a + jp Function171c66 + +Function171b85: ; 171b85 (5c:5b85) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and $2 + jp nz, Function171b9f + ld a, [hl] + and $1 + jp nz, Function171bbd + ld a, [hl] + and $40 + jr nz, asm_171ba5 + ld a, [hl] + and $80 + jr nz, asm_171baf + ret + +Function171b9f: ; 171b9f (5c:5b9f) + ld a, $80 + ld [wcd49], a + ret +asm_171ba5: ; 171ba5 (5c:5ba5) + ld a, [wcd4a] + and a + ret z + dec a + ld [wcd4a], a + ret +asm_171baf: ; 171baf (5c:5baf) + ld a, [wcd4b] + ld c, a + ld a, [wcd4a] + cp c + ret z + inc a + ld [wcd4a], a + ret + +Function171bbd: ; 171bbd (5c:5bbd) + call PlayClickSFX + ld a, $8 + ld [wcd23], a + xor a + ld [wcd24], a + jp Function171c66 + +Function171bcc: ; 171bcc (5c:5bcc) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and $2 + jp nz, Function171bdc + ld a, [hl] + and $1 + jp nz, Function171beb + ret + +Function171bdc: ; 171bdc (5c:5bdc) + ld a, $4 + ld [wcd23], a + ld a, $8 + ld [wcd24], a + ld hl, wcd49 + dec [hl] + ret + +Function171beb: ; 171beb (5c:5beb) + ld a, $5 + call GetSRAMBank + ld a, [wcd4a] + ld [$aa4a], a + call CloseSRAM + ld hl, MenuDataHeader_171c6b + call LoadMenuDataHeader + call Function1cbb + call GetMemTileCoord + callba Function104061 + hlcoord 1, 14 + ld de, String_171c73 + call PlaceString + ld a, [wcd4a] + cp $2 + jr z, .asm_171c1f + ld a, $8 + jr .asm_171c21 +.asm_171c1f + ld a, $c +.asm_171c21 + ld [wcd24], a + ld a, $1e + ld [wcd4c], a + call Function171c66 + +Function171c2c: ; 171c2c (5c:5c2c) + ld hl, wcd4c + dec [hl] + ret nz + call ExitMenu + call WhiteBGMap + jr asm_171c60 + +Function171c39: ; 171c39 (5c:5c39) + ld a, $28 + ld [wcd4c], a + call Function171c66 + +Function171c41: ; 171c41 (5c:5c41) + ld hl, wcd4c + dec [hl] + ret nz + call WhiteBGMap + callba Function106462 + callba Function106464 + ld a, $2 + ld [wc303], a + callba Function17f555 +asm_171c60: ; 171c60 (5c:5c60) + ld a, $80 + ld [wcd49], a + ret + +Function171c66: ; 171c66 (5c:5c66) + ld hl, wcd49 + inc [hl] + ret +; 171c6b (5c:5c6b) + +MenuDataHeader_171c6b: ; 171c6b + db $40 ; flags + db 12, 0 ; start coords + db 17, 19 ; end coords + dw NULL + db 0 ; default option +; 171c73 + +String_171c73: ; 171c73 + db "モバイルセンターを けってい" + next "しました@" +; 171c87 + +Function171c87: ; 171c87 (5c:5c87) + call DisableLCD + ld hl, GFX_171db1 + ld de, VTiles2 tile $00 + ld bc, $6e0 + call CopyBytes + ld hl, LZ_172abd + ld de, VTiles0 tile $00 + call Decompress + call EnableLCD + ld hl, Tilemap_172491 + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_1727ed + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + hlcoord 3, 2 + ld de, String_172e31 + call PlaceString + hlcoord 3, 16 + ld de, String_172e3f + call PlaceString + ret + +Function171ccd: ; 171ccd (5c:5ccd) + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $5 + ld [rSVBK], a ; $ff00+$70 + ld hl, Palette_171d71 + ld de, Unkn1Pals + ld bc, $40 + call CopyBytes + ld hl, MovementAnimation + ld a, $ff + ld [hli], a + ld a, $7f + ld [hl], a + call SetPalettes + pop af + ld [rSVBK], a ; $ff00+$70 + ret + +Function171cf0: ; 171cf0 (5c:5cf0) + xor a + hlcoord 4, 15 +rept 2 + ld [hli], a +endr + ld a, [wcd4b] + xor $1 + ld [wcd4b], a + and a + jr nz, .asm_171d16 + ld hl, Tilemap_17251d + decoord 0, 7 + ld bc, $8c + call CopyBytes + hlcoord 3, 16 + ld de, String_172e3f + jp PlaceString +.asm_171d16 + ld hl, Tilemap_1725f9 + decoord 0, 7 + ld bc, $8c + call CopyBytes + hlcoord 3, 16 + ld de, String_172e4e + jp PlaceString + +Function171d2b: ; 171d2b (5c:5d2b) + call DisableLCD + ld hl, GFX_171db1 + ld de, VTiles2 tile $00 + ld bc, $6e0 + call CopyBytes + ld hl, LZ_172abd + ld de, VTiles0 tile $00 + call Decompress + call EnableLCD + ld hl, Tilemap_172685 + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_172955 + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + hlcoord 2, 2 + ld de, String_172e5d + call PlaceString + hlcoord 14, 16 + ld de, String_172e58 + call PlaceString + ret +; 171d71 (5c:5d71) + +Palette_171d71: + RGB 0, 0, 0 + RGB 3, 0, 0 + RGB 5, 0, 0 + RGB 31, 31, 29 + RGB 0, 2, 10 + RGB 2, 10, 21 + RGB 0, 0, 0 + RGB 10, 26, 31 + RGB 0, 0, 0 + RGB 0, 7, 8 + RGB 31, 8, 0 + RGB 1, 17, 15 + RGB 31, 16, 0 + RGB 31, 22, 0 + RGB 31, 27, 0 + RGB 31, 31, 0 + RGB 31, 18, 6 + RGB 0, 3, 0 + RGB 0, 9, 0 + RGB 0, 12, 0 + RGB 0, 16, 0 + RGB 0, 22, 0 + RGB 0, 25, 0 + RGB 0, 27, 0 + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 29 + RGB 21, 21, 20 + RGB 11, 11, 10 + RGB 0, 0, 0 +GFX_171db1: +INCBIN "gfx/unknown/171db1.2bpp" +Tilemap_172491: +INCBIN "gfx/unknown/172491.tilemap" +Tilemap_17251d: +INCBIN "gfx/unknown/17251d.tilemap" +Tilemap_1725f9: +INCBIN "gfx/unknown/1725f9.tilemap" +Tilemap_172685: +INCBIN "gfx/unknown/172685.tilemap" +Attrmap_1727ed: +INCBIN "gfx/unknown/1727ed.attrmap" +Attrmap_172955: +INCBIN "gfx/unknown/172955.attrmap" +LZ_172abd: +INCBIN "gfx/pokedex/slowpoke.2bpp.lz" + +String_172e31: ; 172e31 + db "パスワード", $1f, "いれてください@" +String_172e3f: ; 172e3f + db "きりかえ やめる けってい@" +String_172e4e: ; 172e4e + db "きりかえ やめる " +String_172e58: + db "けってい@" +String_172e5d: ; 172e5d + db "せつぞくする モバイルセンターを" + next "えらんで ください@" +; 172e78 + + +Function172e78: ; 172e78 (5c:6e78) + ld a, $7f + hlcoord 0, 0 + ld bc, $168 + call ByteFill + ld a, $7 + hlcoord 0, 0, AttrMap + ld bc, $168 + call ByteFill + call DisableLCD + ld hl, GFX_172f1f + ld de, VTiles2 tile $00 + ld bc, $610 + call CopyBytes + call EnableLCD + ld hl, Tilemap_1733af + decoord 0, 0 + ld bc, $168 + call CopyBytes + ld hl, Attrmap_173517 + decoord 0, 0, AttrMap + ld bc, $168 + call CopyBytes + ret +; 172eb9 (5c:6eb9) + +Function172eb9: + ld a, [rSVBK] ; $ff00+$70 + push af + ld a, $5 + ld [rSVBK], a ; $ff00+$70 + ld hl, Palette_172edf + ld de, Unkn1Pals + ld bc, $40 + call CopyBytes + ld hl, Palette_172edf + ld de, BGPals + ld bc, $40 + call CopyBytes + call SetPalettes + pop af + ld [rSVBK], a ; $ff00+$70 + ret +; 172edf (5c:6edf) + +Palette_172edf: + RGB 5, 12, 17 + RGB 31, 31, 31 + RGB 18, 25, 28 + RGB 10, 17, 21 + RGB 6, 13, 18 + RGB 31, 31, 31 + RGB 20, 26, 28 + RGB 12, 19, 23 + RGB 3, 10, 16 + RGB 31, 31, 31 + RGB 6, 13, 18 + RGB 20, 26, 28 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 5, 5, 16 + RGB 8, 19, 28 + RGB 0, 0, 0 + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 0, 0, 0 + RGB 0, 0, 0 + RGB 0, 0, 0 + +GFX_172f1f: +INCBIN "gfx/unknown/172f1f.2bpp" + +Tilemap_1733af: +IF DEF(CORRUPT_TILES) +INCBIN "gfx/unknown/1733af_corrupt.tilemap" +ELSE +INCBIN "gfx/unknown/1733af.tilemap" +ENDC + +Attrmap_173517: +INCBIN "gfx/unknown/173517.attrmap" -- cgit v1.2.3 From 14e0da51164d418b9eb347ed21a2a753393e8883 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 08:43:46 -0500 Subject: Status screen edits --- macros/charmap.asm | 4 ++++ main.asm | 61 +++++++++++++++++++++++++++--------------------------- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/macros/charmap.asm b/macros/charmap.asm index 93710003a..54b3bf37a 100644 --- a/macros/charmap.asm +++ b/macros/charmap.asm @@ -7,6 +7,7 @@ charmap "", $38 charmap "", $39 charmap "", $3f + charmap "", $3f charmap "", $49 charmap "", $4a charmap "", $4e @@ -30,12 +31,15 @@ charmap "", $5f ; Actual characters + charmap "_", $62 charmap "′", $6e charmap "", $6e charmap "″", $6f charmap "", $70 charmap "", $71 + charmap "◀", $71 + charmap "", $73 charmap "№", $74 charmap "…", $75 diff --git a/main.asm b/main.asm index 1da851561..8f25c4e3d 100644 --- a/main.asm +++ b/main.asm @@ -44323,7 +44323,7 @@ Function4deea: ; 4deea (13:5eea) hlcoord 18, 0 call Function4df66 hlcoord 9, 4 - ld a, $f3 + ld a, "/" ld [hli], a ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) ld [wd265], a @@ -44357,9 +44357,9 @@ Function4df66: ; 4df66 (13:5f66) pop hl ret c ld a, "♂" - jr nz, .asm_4df75 + jr nz, .got_gender ld a, "♀" -.asm_4df75 +.got_gender ld [hl], a ret ; 4df77 (13:5f77) @@ -44373,32 +44373,32 @@ Unknown_4df77: ; 4df77 Function4df7f: ; 4df7f hlcoord 7, 0 - ld bc, 20 - ld d, 18 -.asm_4df87 + ld bc, SCREEN_WIDTH + ld d, SCREEN_HEIGHT +.loop ld a, $31 ld [hl], a add hl, bc dec d - jr nz, .asm_4df87 + jr nz, .loop ret ; 4df8f Function4df8f: ; 4df8f (13:5f8f) hlcoord 0, 7 - ld b, 20 - ld a, $62 -.asm_4df96 + ld b, SCREEN_WIDTH + ld a, "_" +.loop ld [hli], a dec b - jr nz, .asm_4df96 + jr nz, .loop ret Function4df9b: ; 4df9b (13:5f9b) hlcoord 12, 6 - ld [hl], $71 + ld [hl], "◀" hlcoord 19, 6 - ld [hl], $ed + ld [hl], "▶" ret Function4dfa6: ; 4dfa6 (13:5fa6) @@ -44406,7 +44406,7 @@ Function4dfa6: ; 4dfa6 (13:5fa6) callba CheckShininess ret nc hlcoord 19, 0 - ld [hl], $3f + ld [hl], "" ret Function4dfb6: ; 4dfb6 (13:5fb6) @@ -44423,6 +44423,7 @@ Function4dfb6: ; 4dfb6 (13:5fb6) jr nz, .asm_4dfd6 call SetPalettes ret + .asm_4dfd6 call Function4e226 ret @@ -81737,7 +81738,7 @@ INCBIN "gfx/misc/unown_font.2bpp" Function1dc1b0: ; 1dc1b0 hlcoord 0, 0 ld de, wca90 - ld bc, $154 + ld bc, 17 * SCREEN_WIDTH call CopyBytes ld hl, wcab5 ld a, $62 @@ -81789,7 +81790,7 @@ Function1dc1b0: ; 1dc1b0 Function1dc213: ; 1dc213 ld hl, wca90 ld bc, $a0 - ld a, $7f + ld a, " " call ByteFill ld hl, wca90 ld a, $36 @@ -81895,14 +81896,14 @@ Function1dc381: ; 1dc381 ld [MonType], a callba CopyPkmnToTempMon hlcoord 0, 7 - ld b, $9 - ld c, $12 + ld b, 9 + ld c, 18 call TextBox hlcoord 8, 2 ld a, [TempMonLevel] call Function383d hlcoord 12, 2 - ld [hl], $71 + ld [hl], "◀" ; Filled left triangle inc hl ld de, TempMonMaxHP lb bc, 2, 3 @@ -81915,14 +81916,14 @@ Function1dc381: ; 1dc381 hlcoord 8, 4 call PlaceString hlcoord 9, 6 - ld [hl], $f3 + ld [hl], "/" call GetPokemonName hlcoord 10, 6 call PlaceString hlcoord 8, 0 - ld [hl], $74 + ld [hl], "№" inc hl - ld [hl], $e8 + ld [hl], "." inc hl ld de, wd265 lb bc, PRINTNUM_LEADINGZEROS | 1, 3 @@ -82053,20 +82054,20 @@ Function1dc51a: ; 1dc51a Function1dc52c: ; 1dc52c callba GetGender - ld a, $7f - jr c, .asm_1dc53c - ld a, $ef - jr nz, .asm_1dc53c - ld a, $f5 + ld a, " " + jr c, .got_gender + ld a, "♂" + jr nz, .got_gender + ld a, "♀" -.asm_1dc53c +.got_gender hlcoord 17, 2 ld [hl], a ld bc, TempMonDVs callba CheckShininess ret nc hlcoord 18, 2 - ld [hl], $3f + ld [hl], "" ret ; 1dc550 @@ -82077,7 +82078,7 @@ String1dc554: ; 1dc554 db "MOVE@" String1dc559: ; 1dc559 - db $73, "№.@" + db "№.@" String1dc55d: ; 1dc55d db "ATTACK" -- cgit v1.2.3 From 739bb3c1363de40ea0f4320e041da1488b084c41 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 11:19:58 -0500 Subject: Replace party struct relative values with EQUS constants --- battle/ai/items.asm | 8 +- battle/ai/scoring.asm | 4 +- battle/core.asm | 28 +- battle/effect_commands.asm | 32 +- constants/pokemon_constants.asm | 7 +- data/battle_tower.asm | 8 +- data/evos_attacks.asm | 4712 +++++++++++++++++++-------------------- data/odd_eggs.asm | 2 +- engine/fruit_trees.asm | 2 +- engine/predef.asm | 2 +- event/battle_tower.asm | 2 +- event/dratini.asm | 6 +- event/magikarp.asm | 2 +- event/move_deleter.asm | 6 +- event/name_rater.asm | 2 +- event/poke_seer.asm | 8 +- event/unown.asm | 2 +- home.asm | 2 +- items/item_effects.asm | 78 +- main.asm | 654 +++--- maps/BlackthornGym1F.asm | 2 +- maps/CeladonCafe.asm | 2 +- maps/CeladonDeptStore6F.asm | 6 +- maps/DragonsDenB1F.asm | 4 +- maps/ElmsLab.asm | 2 +- maps/GoldenrodDeptStore6F.asm | 6 +- maps/GoldenrodGameCorner.asm | 6 +- maps/GoldenrodPokeCenter1F.asm | 2 +- maps/LakeofRage.asm | 2 +- maps/MahoganyTown.asm | 2 +- maps/MrPokemonsHouse.asm | 2 +- maps/PokemonFanClub.asm | 2 +- maps/Route39Farmhouse.asm | 2 +- misc/mobile_40.asm | 6 +- misc/mobile_46.asm | 12 +- misc/mobile_5c.asm | 4 +- misc/mobile_5f.asm | 6 +- predef/cgb.asm | 2 +- sram.asm | 8 +- wram.asm | 13 +- 40 files changed, 2833 insertions(+), 2825 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 547d213df..d9798170d 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -250,7 +250,7 @@ endr ld d, a ld e, 0 ld hl, OTPartyMon1Level - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH .next ld a, [hl] cp e @@ -685,7 +685,7 @@ AI_TrySwitch: ; 3844b inc d .fainted push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc dec c @@ -710,7 +710,7 @@ AI_Switch: ; 3846c push af ld a, [CurOTMon] ld hl, OTPartyMon1Status - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -754,7 +754,7 @@ Function384d5: ; This appears to be unused AI_HealStatus: ; 384e0 ld a, [CurOTMon] ld hl, OTPartyMon1Status - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes xor a ld [hl], a diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 258ee2e16..4737d231c 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -1719,7 +1719,7 @@ AI_Smart_HealBell: ; 38d1f ld b, a ld c, 0 ld hl, OTPartyMon1HP - ld de, OTPartyMon2 - OTPartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .loop push hl @@ -1933,7 +1933,7 @@ AICheckLastPlayerMon: ; 38e2e ld b, a ld c, 0 ld hl, PartyMon1HP - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .loop ld a, [CurBattleMon] diff --git a/battle/core.asm b/battle/core.asm index 90c05ea98..12c5fe190 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2295,7 +2295,7 @@ ShareExperiencePoints: ; 3ceaa .asm_3ceb5 push hl push bc - ld bc, PartyMon1HP - PartyMon1 + ld bc, MON_HP add hl, bc ld a, [hli] or [hl] @@ -2305,7 +2305,7 @@ ShareExperiencePoints: ; 3ceaa push hl push bc - ld bc, PartyMon1Item - PartyMon1 + ld bc, MON_ITEM add hl, bc pop bc ld a, [hl] @@ -2320,7 +2320,7 @@ ShareExperiencePoints: ; 3ceaa .asm_3ced1 sla c push de - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH add hl, de pop de dec b @@ -2384,7 +2384,7 @@ CheckEnemyTrainerDefeated: ; 3cf35 ld b, a xor a ld hl, OTPartyMon1HP - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .loop or [hl] @@ -4062,7 +4062,7 @@ TryToRunAwayFromBattle: ; 3d8b3 Function3da0d: ; 3da0d - ld a, PartyMon1Species - PartyMon1 + ld a, MON_SPECIES call GetPartyParamLocation ld de, BattleMonSpecies ld bc, 1 + 1 + NUM_MOVES ; species, item, moves ; BattleMonDVs - BattleMonSpecies @@ -4265,7 +4265,7 @@ Function3db5f: ; 3db5f call Call_PlayBattleAnim .asm_3dbbc - ld a, PartyMon1Species - PartyMon1 + ld a, MON_SPECIES call GetPartyParamLocation ld b, h ld c, l @@ -5608,7 +5608,7 @@ MoveSelectionScreen: ; 3e4bc jr .asm_3e4e2 .asm_3e4dd - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call GetPartyParamLocation .asm_3e4e2 @@ -5867,7 +5867,7 @@ endr push hl call .asm_3e6a5 pop hl - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, (MON_PP) - (MON_MOVES) add hl, bc call .asm_3e6a5 @@ -7424,7 +7424,7 @@ GiveExperiencePoints: ; 3ee3b .asm_3ee89 push hl push bc - ld a, PartyMon1PokerusStatus - PartyMon1 + ld a, MON_PKRUS call GetPartyParamLocation ld a, [hl] and a @@ -7489,7 +7489,7 @@ endr dec a call nz, DoubleExp push bc - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld a, [hl] cp LUCKY_EGG @@ -7574,7 +7574,7 @@ endr predef CopyPkmnToTempMon callab CalcLevel pop bc - ld hl, PartyMon1Level - PartyMon1 + ld hl, MON_LEVEL add hl, bc ld a, [hl] cp MAX_LEVEL @@ -7587,7 +7587,7 @@ endr ld a, d ld [CurPartyLevel], a ld [hl], a - ld hl, PartyMon1Species - PartyMon1 + ld hl, MON_SPECIES add hl, bc ld a, [hl] ld [CurSpecies], a @@ -7733,7 +7733,7 @@ endr cp b jr z, .asm_3f0d1 ld [CurPartyMon], a - ld a, PartyMon1Species - PartyMon1 + ld a, MON_SPECIES call GetPartyParamLocation ld b, h ld c, l @@ -8577,7 +8577,7 @@ Function3f594: ; 3f594 ld b, a .partyloop push bc - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [hli] or [hl] diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 94f68d1ac..b36d514f7 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -706,7 +706,7 @@ BattleCommand02: ; 343db ; If the monster's id doesn't match the player's, ; some conditions need to be met. - ld a, PartyMon1ID - PartyMon1 + ld a, MON_ID call BattlePartyAttr ld a, [PlayerID] @@ -1949,7 +1949,7 @@ CountEnemyAliveMons: ; 349f4 .next srl b push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc inc e @@ -1987,7 +1987,7 @@ Function34a2a: ; 34a2a push hl push bc - ld bc, PartyMon1HP - PartyMon1 + ld bc, MON_HP add hl, bc pop bc ld a, [hli] @@ -2022,7 +2022,7 @@ Function34a2a: ; 34a2a ret z push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc @@ -2136,7 +2136,7 @@ Function34aa7: ; 34aa7 .asm_34b00 push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc srl b @@ -2266,7 +2266,7 @@ endr srl b pop hl push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc jr .loop @@ -3358,7 +3358,7 @@ endr DittoMetalPowder: ; 352b1 - ld a, PartyMon1Species - PartyMon1 + ld a, MON_SPECIES call BattlePartyAttr ld a, [hBattleTurn] and a @@ -3633,7 +3633,7 @@ SpeciesItemBoost: ; 353d1 ld h, a push hl - ld a, PartyMon1Species - PartyMon1 + ld a, MON_SPECIES call BattlePartyAttr ld a, [hBattleTurn] @@ -4840,7 +4840,7 @@ BattleCommand46: ; 35a74 bit SUBSTATUS_TRANSFORMED, [hl] jp nz, .asm_35b10 - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call UserPartyAttr ld d, h ld e, l @@ -5118,7 +5118,7 @@ BattleCommand4a: ; 35c0f ld a, [AttackMissed] and a jp nz, .asm_35c91 - ld bc, PartyMon2 - PartyMon1 ; ???? + ld bc, PARTYMON_STRUCT_LENGTH ; ???? ld hl, EnemyMonMoves ld a, [hBattleTurn] and a @@ -5166,7 +5166,7 @@ endr sub b ld [hl], a push af - ld a, PartyMon1PP - PartyMon1 + ld a, MON_PP call OpponentPartyAttr ld d, b pop af @@ -5262,7 +5262,7 @@ BattleCommand4c: ; 35cc9 ld [hl], a ld h, d ld l, e - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld d, PartyEnd - PartySpecies .asm_35ce9 ld [hl], a @@ -7418,7 +7418,7 @@ Function36994: ; 36994 ld a, [PartyCount] ld d, a ld e, 0 - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH .asm_3699d ld a, [CurBattleMon] cp e @@ -9286,7 +9286,7 @@ BattleCommand53: ; 37563 jr z, .done .party - ld a, PartyMon1Status - PartyMon1 + ld a, MON_STATUS call UserPartyAttr res FRZ, [hl] @@ -9408,7 +9408,7 @@ BattleCommand5f: ; 377ce Function377f5: ; 377f5 - ld a, PartyMon1Species - PartyMon1 + ld a, MON_SPECIES call BattlePartyAttr ld a, [hl] ld [CurPartySpecies], a @@ -9937,7 +9937,7 @@ CheckAnyOtherAliveMons: ; 37b01 .next push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc inc c diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 0012ec1e2..683e2ceab 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -265,6 +265,7 @@ MON_ITEM EQUS "PartyMon1Item - PartyMon1" MON_MOVES EQUS "PartyMon1Moves - PartyMon1" MON_ID EQUS "PartyMon1ID - PartyMon1" MON_EXP EQUS "PartyMon1Exp - PartyMon1" +MON_STAT_EXP EQUS "PartyMon1StatExp - PartyMon1" MON_HP_EXP EQUS "PartyMon1HPExp - PartyMon1" MON_ATK_EXP EQUS "PartyMon1AtkExp - PartyMon1" MON_DEF_EXP EQUS "PartyMon1DefExp - PartyMon1" @@ -274,8 +275,11 @@ MON_DVS EQUS "PartyMon1DVs - PartyMon1" MON_PP EQUS "PartyMon1PP - PartyMon1" MON_HAPPINESS EQUS "PartyMon1Happiness - PartyMon1" MON_PKRUS EQUS "PartyMon1PokerusStatus - PartyMon1" +MON_CAUGHTDATA EQUS "PartyMon1CaughtData - PartyMon1" +MON_CAUGHTLEVEL EQUS "PartyMon1CaughtLevel - PartyMon1" MON_CAUGHTTIME EQUS "PartyMon1CaughtTime - PartyMon1" MON_CAUGHTGENDER EQUS "PartyMon1CaughtGender - PartyMon1" +MON_CAUGHTLOCATION EQUS "PartyMon1CaughtLocation - PartyMon1" MON_LEVEL EQUS "PartyMon1Level - PartyMon1" MON_STATUS EQUS "PartyMon1Status - PartyMon1" MON_HP EQUS "PartyMon1HP - PartyMon1" @@ -285,5 +289,6 @@ MON_DEF EQUS "PartyMon1Defense - PartyMon1" MON_SPD EQUS "PartyMon1Speed - PartyMon1" MON_SAT EQUS "PartyMon1SpclAtk - PartyMon1" MON_SDF EQUS "PartyMon1SpclDef - PartyMon1" -BOXMON_STRUCT_LENGTH EQUS "PartyMon1Status - PartyMon1" +BOXMON_STRUCT_LENGTH EQUS "PartyMon1End - PartyMon1" PARTYMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1" +SCRATCHMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1Item" diff --git a/data/battle_tower.asm b/data/battle_tower.asm index 264685d2f..775b65951 100644 --- a/data/battle_tower.asm +++ b/data/battle_tower.asm @@ -121,7 +121,7 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081 ; Check if Pkmn was already loaded before ; Check current and the 2 previous teams ; includes check if item is double at the current team - ld bc, party_struct_length + PKMN_NAME_LENGTH + ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH call AddNTimes ld a, [hli] ld b, a @@ -164,17 +164,17 @@ Function_LoadRandomBattleTowerPkmn: ; 1f8081 cp b jr z, .FindARandomBattleTowerPkmn - ld bc, party_struct_length + PKMN_NAME_LENGTH + ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH call CopyBytes ld a, [wNamedObjectIndexBuffer] push af push de - ld hl, - (party_struct_length + PKMN_NAME_LENGTH) + ld hl, - (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) add hl, de ld a, [hl] ld [wNamedObjectIndexBuffer], a - ld bc, party_struct_length + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc push hl call GetPokemonName diff --git a/data/evos_attacks.asm b/data/evos_attacks.asm index a85b5b306..0a0bba542 100644 --- a/data/evos_attacks.asm +++ b/data/evos_attacks.asm @@ -10,3389 +10,3389 @@ INCLUDE "data/evos_attacks_pointers.asm" EvosAttacks:: BulbasaurEvosAttacks: - db EVOLVE_LEVEL,16,IVYSAUR + db EVOLVE_LEVEL, 16, IVYSAUR db 0 ; no more evolutions - db 1,TACKLE - db 4,GROWL - db 7,LEECH_SEED - db 10,VINE_WHIP - db 15,POISONPOWDER - db 15,SLEEP_POWDER - db 20,RAZOR_LEAF - db 25,SWEET_SCENT - db 32,GROWTH - db 39,SYNTHESIS - db 46,SOLARBEAM + db 1, TACKLE + db 4, GROWL + db 7, LEECH_SEED + db 10, VINE_WHIP + db 15, POISONPOWDER + db 15, SLEEP_POWDER + db 20, RAZOR_LEAF + db 25, SWEET_SCENT + db 32, GROWTH + db 39, SYNTHESIS + db 46, SOLARBEAM db 0 ; no more level-up moves IvysaurEvosAttacks: - db EVOLVE_LEVEL,32,VENUSAUR - db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,LEECH_SEED - db 4,GROWL - db 7,LEECH_SEED - db 10,VINE_WHIP - db 15,POISONPOWDER - db 15,SLEEP_POWDER - db 22,RAZOR_LEAF - db 29,SWEET_SCENT - db 38,GROWTH - db 47,SYNTHESIS - db 56,SOLARBEAM + db EVOLVE_LEVEL, 32, VENUSAUR + db 0 ; no more evolutions + db 1, TACKLE + db 1, GROWL + db 1, LEECH_SEED + db 4, GROWL + db 7, LEECH_SEED + db 10, VINE_WHIP + db 15, POISONPOWDER + db 15, SLEEP_POWDER + db 22, RAZOR_LEAF + db 29, SWEET_SCENT + db 38, GROWTH + db 47, SYNTHESIS + db 56, SOLARBEAM db 0 ; no more level-up moves VenusaurEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,LEECH_SEED - db 1,VINE_WHIP - db 4,GROWL - db 7,LEECH_SEED - db 10,VINE_WHIP - db 15,POISONPOWDER - db 15,SLEEP_POWDER - db 22,RAZOR_LEAF - db 29,SWEET_SCENT - db 41,GROWTH - db 53,SYNTHESIS - db 65,SOLARBEAM + db 1, TACKLE + db 1, GROWL + db 1, LEECH_SEED + db 1, VINE_WHIP + db 4, GROWL + db 7, LEECH_SEED + db 10, VINE_WHIP + db 15, POISONPOWDER + db 15, SLEEP_POWDER + db 22, RAZOR_LEAF + db 29, SWEET_SCENT + db 41, GROWTH + db 53, SYNTHESIS + db 65, SOLARBEAM db 0 ; no more level-up moves CharmanderEvosAttacks: - db EVOLVE_LEVEL,16,CHARMELEON + db EVOLVE_LEVEL, 16, CHARMELEON db 0 ; no more evolutions - db 1,SCRATCH - db 1,GROWL - db 7,EMBER - db 13,SMOKESCREEN - db 19,RAGE - db 25,SCARY_FACE - db 31,FLAMETHROWER - db 37,SLASH - db 43,DRAGON_RAGE - db 49,FIRE_SPIN + db 1, SCRATCH + db 1, GROWL + db 7, EMBER + db 13, SMOKESCREEN + db 19, RAGE + db 25, SCARY_FACE + db 31, FLAMETHROWER + db 37, SLASH + db 43, DRAGON_RAGE + db 49, FIRE_SPIN db 0 ; no more level-up moves CharmeleonEvosAttacks: - db EVOLVE_LEVEL,36,CHARIZARD + db EVOLVE_LEVEL, 36, CHARIZARD db 0 ; no more evolutions - db 1,SCRATCH - db 1,GROWL - db 1,EMBER - db 7,EMBER - db 13,SMOKESCREEN - db 20,RAGE - db 27,SCARY_FACE - db 34,FLAMETHROWER - db 41,SLASH - db 48,DRAGON_RAGE - db 55,FIRE_SPIN + db 1, SCRATCH + db 1, GROWL + db 1, EMBER + db 7, EMBER + db 13, SMOKESCREEN + db 20, RAGE + db 27, SCARY_FACE + db 34, FLAMETHROWER + db 41, SLASH + db 48, DRAGON_RAGE + db 55, FIRE_SPIN db 0 ; no more level-up moves CharizardEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,GROWL - db 1,EMBER - db 1,SMOKESCREEN - db 7,EMBER - db 13,SMOKESCREEN - db 20,RAGE - db 27,SCARY_FACE - db 34,FLAMETHROWER - db 36,WING_ATTACK - db 44,SLASH - db 54,DRAGON_RAGE - db 64,FIRE_SPIN + db 1, SCRATCH + db 1, GROWL + db 1, EMBER + db 1, SMOKESCREEN + db 7, EMBER + db 13, SMOKESCREEN + db 20, RAGE + db 27, SCARY_FACE + db 34, FLAMETHROWER + db 36, WING_ATTACK + db 44, SLASH + db 54, DRAGON_RAGE + db 64, FIRE_SPIN db 0 ; no more level-up moves SquirtleEvosAttacks: - db EVOLVE_LEVEL,16,WARTORTLE + db EVOLVE_LEVEL, 16, WARTORTLE db 0 ; no more evolutions - db 1,TACKLE - db 4,TAIL_WHIP - db 7,BUBBLE - db 10,WITHDRAW - db 13,WATER_GUN - db 18,BITE - db 23,RAPID_SPIN - db 28,PROTECT - db 33,RAIN_DANCE - db 40,SKULL_BASH - db 47,HYDRO_PUMP + db 1, TACKLE + db 4, TAIL_WHIP + db 7, BUBBLE + db 10, WITHDRAW + db 13, WATER_GUN + db 18, BITE + db 23, RAPID_SPIN + db 28, PROTECT + db 33, RAIN_DANCE + db 40, SKULL_BASH + db 47, HYDRO_PUMP db 0 ; no more level-up moves WartortleEvosAttacks: - db EVOLVE_LEVEL,36,BLASTOISE - db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 1,BUBBLE - db 4,TAIL_WHIP - db 7,BUBBLE - db 10,WITHDRAW - db 13,WATER_GUN - db 19,BITE - db 25,RAPID_SPIN - db 31,PROTECT - db 37,RAIN_DANCE - db 45,SKULL_BASH - db 53,HYDRO_PUMP + db EVOLVE_LEVEL, 36, BLASTOISE + db 0 ; no more evolutions + db 1, TACKLE + db 1, TAIL_WHIP + db 1, BUBBLE + db 4, TAIL_WHIP + db 7, BUBBLE + db 10, WITHDRAW + db 13, WATER_GUN + db 19, BITE + db 25, RAPID_SPIN + db 31, PROTECT + db 37, RAIN_DANCE + db 45, SKULL_BASH + db 53, HYDRO_PUMP db 0 ; no more level-up moves BlastoiseEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 1,BUBBLE - db 1,WITHDRAW - db 4,TAIL_WHIP - db 7,BUBBLE - db 10,WITHDRAW - db 13,WATER_GUN - db 19,BITE - db 25,RAPID_SPIN - db 31,PROTECT - db 42,RAIN_DANCE - db 55,SKULL_BASH - db 68,HYDRO_PUMP + db 1, TACKLE + db 1, TAIL_WHIP + db 1, BUBBLE + db 1, WITHDRAW + db 4, TAIL_WHIP + db 7, BUBBLE + db 10, WITHDRAW + db 13, WATER_GUN + db 19, BITE + db 25, RAPID_SPIN + db 31, PROTECT + db 42, RAIN_DANCE + db 55, SKULL_BASH + db 68, HYDRO_PUMP db 0 ; no more level-up moves CaterpieEvosAttacks: - db EVOLVE_LEVEL,7,METAPOD + db EVOLVE_LEVEL, 7, METAPOD db 0 ; no more evolutions - db 1,TACKLE - db 1,STRING_SHOT + db 1, TACKLE + db 1, STRING_SHOT db 0 ; no more level-up moves MetapodEvosAttacks: - db EVOLVE_LEVEL,10,BUTTERFREE + db EVOLVE_LEVEL, 10, BUTTERFREE db 0 ; no more evolutions - db 1,HARDEN - db 7,HARDEN + db 1, HARDEN + db 7, HARDEN db 0 ; no more level-up moves ButterfreeEvosAttacks: db 0 ; no more evolutions - db 1,CONFUSION - db 10,CONFUSION - db 13,POISONPOWDER - db 14,STUN_SPORE - db 15,SLEEP_POWDER - db 18,SUPERSONIC - db 23,WHIRLWIND - db 28,GUST - db 34,PSYBEAM - db 40,SAFEGUARD + db 1, CONFUSION + db 10, CONFUSION + db 13, POISONPOWDER + db 14, STUN_SPORE + db 15, SLEEP_POWDER + db 18, SUPERSONIC + db 23, WHIRLWIND + db 28, GUST + db 34, PSYBEAM + db 40, SAFEGUARD db 0 ; no more level-up moves WeedleEvosAttacks: - db EVOLVE_LEVEL,7,KAKUNA + db EVOLVE_LEVEL, 7, KAKUNA db 0 ; no more evolutions - db 1,POISON_STING - db 1,STRING_SHOT + db 1, POISON_STING + db 1, STRING_SHOT db 0 ; no more level-up moves KakunaEvosAttacks: - db EVOLVE_LEVEL,10,BEEDRILL + db EVOLVE_LEVEL, 10, BEEDRILL db 0 ; no more evolutions - db 1,HARDEN - db 7,HARDEN + db 1, HARDEN + db 7, HARDEN db 0 ; no more level-up moves BeedrillEvosAttacks: db 0 ; no more evolutions - db 1,FURY_ATTACK - db 10,FURY_ATTACK - db 15,FOCUS_ENERGY - db 20,TWINEEDLE - db 25,RAGE - db 30,PURSUIT - db 35,PIN_MISSILE - db 40,AGILITY + db 1, FURY_ATTACK + db 10, FURY_ATTACK + db 15, FOCUS_ENERGY + db 20, TWINEEDLE + db 25, RAGE + db 30, PURSUIT + db 35, PIN_MISSILE + db 40, AGILITY db 0 ; no more level-up moves PidgeyEvosAttacks: - db EVOLVE_LEVEL,18,PIDGEOTTO + db EVOLVE_LEVEL, 18, PIDGEOTTO db 0 ; no more evolutions - db 1,TACKLE - db 5,SAND_ATTACK - db 9,GUST - db 15,QUICK_ATTACK - db 21,WHIRLWIND - db 29,WING_ATTACK - db 37,AGILITY - db 47,MIRROR_MOVE + db 1, TACKLE + db 5, SAND_ATTACK + db 9, GUST + db 15, QUICK_ATTACK + db 21, WHIRLWIND + db 29, WING_ATTACK + db 37, AGILITY + db 47, MIRROR_MOVE db 0 ; no more level-up moves PidgeottoEvosAttacks: - db EVOLVE_LEVEL,36,PIDGEOT + db EVOLVE_LEVEL, 36, PIDGEOT db 0 ; no more evolutions - db 1,TACKLE - db 1,SAND_ATTACK - db 1,GUST - db 5,SAND_ATTACK - db 9,GUST - db 15,QUICK_ATTACK - db 23,WHIRLWIND - db 33,WING_ATTACK - db 43,AGILITY - db 55,MIRROR_MOVE + db 1, TACKLE + db 1, SAND_ATTACK + db 1, GUST + db 5, SAND_ATTACK + db 9, GUST + db 15, QUICK_ATTACK + db 23, WHIRLWIND + db 33, WING_ATTACK + db 43, AGILITY + db 55, MIRROR_MOVE db 0 ; no more level-up moves PidgeotEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,SAND_ATTACK - db 1,GUST - db 1,QUICK_ATTACK - db 5,SAND_ATTACK - db 9,GUST - db 15,QUICK_ATTACK - db 23,WHIRLWIND - db 33,WING_ATTACK - db 46,AGILITY - db 61,MIRROR_MOVE + db 1, TACKLE + db 1, SAND_ATTACK + db 1, GUST + db 1, QUICK_ATTACK + db 5, SAND_ATTACK + db 9, GUST + db 15, QUICK_ATTACK + db 23, WHIRLWIND + db 33, WING_ATTACK + db 46, AGILITY + db 61, MIRROR_MOVE db 0 ; no more level-up moves RattataEvosAttacks: - db EVOLVE_LEVEL,20,RATICATE + db EVOLVE_LEVEL, 20, RATICATE db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 7,QUICK_ATTACK - db 13,HYPER_FANG - db 20,FOCUS_ENERGY - db 27,PURSUIT - db 34,SUPER_FANG + db 1, TACKLE + db 1, TAIL_WHIP + db 7, QUICK_ATTACK + db 13, HYPER_FANG + db 20, FOCUS_ENERGY + db 27, PURSUIT + db 34, SUPER_FANG db 0 ; no more level-up moves RaticateEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 1,QUICK_ATTACK - db 7,QUICK_ATTACK - db 13,HYPER_FANG - db 20,SCARY_FACE - db 30,PURSUIT - db 40,SUPER_FANG + db 1, TACKLE + db 1, TAIL_WHIP + db 1, QUICK_ATTACK + db 7, QUICK_ATTACK + db 13, HYPER_FANG + db 20, SCARY_FACE + db 30, PURSUIT + db 40, SUPER_FANG db 0 ; no more level-up moves SpearowEvosAttacks: - db EVOLVE_LEVEL,20,FEAROW + db EVOLVE_LEVEL, 20, FEAROW db 0 ; no more evolutions - db 1,PECK - db 1,GROWL - db 7,LEER - db 13,FURY_ATTACK - db 25,PURSUIT - db 31,MIRROR_MOVE - db 37,DRILL_PECK - db 43,AGILITY + db 1, PECK + db 1, GROWL + db 7, LEER + db 13, FURY_ATTACK + db 25, PURSUIT + db 31, MIRROR_MOVE + db 37, DRILL_PECK + db 43, AGILITY db 0 ; no more level-up moves FearowEvosAttacks: db 0 ; no more evolutions - db 1,PECK - db 1,GROWL - db 1,LEER - db 1,FURY_ATTACK - db 7,LEER - db 13,FURY_ATTACK - db 26,PURSUIT - db 32,MIRROR_MOVE - db 40,DRILL_PECK - db 47,AGILITY + db 1, PECK + db 1, GROWL + db 1, LEER + db 1, FURY_ATTACK + db 7, LEER + db 13, FURY_ATTACK + db 26, PURSUIT + db 32, MIRROR_MOVE + db 40, DRILL_PECK + db 47, AGILITY db 0 ; no more level-up moves EkansEvosAttacks: - db EVOLVE_LEVEL,22,ARBOK + db EVOLVE_LEVEL, 22, ARBOK db 0 ; no more evolutions - db 1,WRAP - db 1,LEER - db 9,POISON_STING - db 15,BITE - db 23,GLARE - db 29,SCREECH - db 37,ACID - db 43,HAZE + db 1, WRAP + db 1, LEER + db 9, POISON_STING + db 15, BITE + db 23, GLARE + db 29, SCREECH + db 37, ACID + db 43, HAZE db 0 ; no more level-up moves ArbokEvosAttacks: db 0 ; no more evolutions - db 1,WRAP - db 1,LEER - db 1,POISON_STING - db 1,BITE - db 9,POISON_STING - db 15,BITE - db 25,GLARE - db 33,SCREECH - db 43,ACID - db 51,HAZE + db 1, WRAP + db 1, LEER + db 1, POISON_STING + db 1, BITE + db 9, POISON_STING + db 15, BITE + db 25, GLARE + db 33, SCREECH + db 43, ACID + db 51, HAZE db 0 ; no more level-up moves PikachuEvosAttacks: - db EVOLVE_ITEM,THUNDERSTONE,RAICHU + db EVOLVE_ITEM, THUNDERSTONE, RAICHU db 0 ; no more evolutions - db 1,THUNDERSHOCK - db 1,GROWL - db 6,TAIL_WHIP - db 8,THUNDER_WAVE - db 11,QUICK_ATTACK - db 15,DOUBLE_TEAM - db 20,SLAM - db 26,THUNDERBOLT - db 33,AGILITY - db 41,THUNDER - db 50,LIGHT_SCREEN + db 1, THUNDERSHOCK + db 1, GROWL + db 6, TAIL_WHIP + db 8, THUNDER_WAVE + db 11, QUICK_ATTACK + db 15, DOUBLE_TEAM + db 20, SLAM + db 26, THUNDERBOLT + db 33, AGILITY + db 41, THUNDER + db 50, LIGHT_SCREEN db 0 ; no more level-up moves RaichuEvosAttacks: db 0 ; no more evolutions - db 1,THUNDERSHOCK - db 1,TAIL_WHIP - db 1,QUICK_ATTACK - db 1,THUNDERBOLT + db 1, THUNDERSHOCK + db 1, TAIL_WHIP + db 1, QUICK_ATTACK + db 1, THUNDERBOLT db 0 ; no more level-up moves SandshrewEvosAttacks: - db EVOLVE_LEVEL,22,SANDSLASH + db EVOLVE_LEVEL, 22, SANDSLASH db 0 ; no more evolutions - db 1,SCRATCH - db 6,DEFENSE_CURL - db 11,SAND_ATTACK - db 17,POISON_STING - db 23,SLASH - db 30,SWIFT - db 37,FURY_SWIPES - db 45,SANDSTORM + db 1, SCRATCH + db 6, DEFENSE_CURL + db 11, SAND_ATTACK + db 17, POISON_STING + db 23, SLASH + db 30, SWIFT + db 37, FURY_SWIPES + db 45, SANDSTORM db 0 ; no more level-up moves SandslashEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,DEFENSE_CURL - db 1,SAND_ATTACK - db 6,DEFENSE_CURL - db 11,SAND_ATTACK - db 17,POISON_STING - db 24,SLASH - db 33,SWIFT - db 42,FURY_SWIPES - db 52,SANDSTORM + db 1, SCRATCH + db 1, DEFENSE_CURL + db 1, SAND_ATTACK + db 6, DEFENSE_CURL + db 11, SAND_ATTACK + db 17, POISON_STING + db 24, SLASH + db 33, SWIFT + db 42, FURY_SWIPES + db 52, SANDSTORM db 0 ; no more level-up moves NidoranFEvosAttacks: - db EVOLVE_LEVEL,16,NIDORINA + db EVOLVE_LEVEL, 16, NIDORINA db 0 ; no more evolutions - db 1,GROWL - db 1,TACKLE - db 8,SCRATCH - db 12,DOUBLE_KICK - db 17,POISON_STING - db 23,TAIL_WHIP - db 30,BITE - db 38,FURY_SWIPES + db 1, GROWL + db 1, TACKLE + db 8, SCRATCH + db 12, DOUBLE_KICK + db 17, POISON_STING + db 23, TAIL_WHIP + db 30, BITE + db 38, FURY_SWIPES db 0 ; no more level-up moves NidorinaEvosAttacks: - db EVOLVE_ITEM,MOON_STONE,NIDOQUEEN + db EVOLVE_ITEM, MOON_STONE, NIDOQUEEN db 0 ; no more evolutions - db 1,GROWL - db 1,TACKLE - db 8,SCRATCH - db 12,DOUBLE_KICK - db 19,POISON_STING - db 27,TAIL_WHIP - db 36,BITE - db 46,FURY_SWIPES + db 1, GROWL + db 1, TACKLE + db 8, SCRATCH + db 12, DOUBLE_KICK + db 19, POISON_STING + db 27, TAIL_WHIP + db 36, BITE + db 46, FURY_SWIPES db 0 ; no more level-up moves NidoqueenEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,SCRATCH - db 1,DOUBLE_KICK - db 1,TAIL_WHIP - db 23,BODY_SLAM + db 1, TACKLE + db 1, SCRATCH + db 1, DOUBLE_KICK + db 1, TAIL_WHIP + db 23, BODY_SLAM db 0 ; no more level-up moves NidoranMEvosAttacks: - db EVOLVE_LEVEL,16,NIDORINO + db EVOLVE_LEVEL, 16, NIDORINO db 0 ; no more evolutions - db 1,LEER - db 1,TACKLE - db 8,HORN_ATTACK - db 12,DOUBLE_KICK - db 17,POISON_STING - db 23,FOCUS_ENERGY - db 30,FURY_ATTACK - db 38,HORN_DRILL + db 1, LEER + db 1, TACKLE + db 8, HORN_ATTACK + db 12, DOUBLE_KICK + db 17, POISON_STING + db 23, FOCUS_ENERGY + db 30, FURY_ATTACK + db 38, HORN_DRILL db 0 ; no more level-up moves NidorinoEvosAttacks: - db EVOLVE_ITEM,MOON_STONE,NIDOKING + db EVOLVE_ITEM, MOON_STONE, NIDOKING db 0 ; no more evolutions - db 1,LEER - db 1,TACKLE - db 8,HORN_ATTACK - db 12,DOUBLE_KICK - db 19,POISON_STING - db 27,FOCUS_ENERGY - db 36,FURY_ATTACK - db 46,HORN_DRILL + db 1, LEER + db 1, TACKLE + db 8, HORN_ATTACK + db 12, DOUBLE_KICK + db 19, POISON_STING + db 27, FOCUS_ENERGY + db 36, FURY_ATTACK + db 46, HORN_DRILL db 0 ; no more level-up moves NidokingEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,HORN_ATTACK - db 1,DOUBLE_KICK - db 1,POISON_STING - db 23,THRASH + db 1, TACKLE + db 1, HORN_ATTACK + db 1, DOUBLE_KICK + db 1, POISON_STING + db 23, THRASH db 0 ; no more level-up moves ClefairyEvosAttacks: - db EVOLVE_ITEM,MOON_STONE,CLEFABLE + db EVOLVE_ITEM, MOON_STONE, CLEFABLE db 0 ; no more evolutions - db 1,POUND - db 1,GROWL - db 4,ENCORE - db 8,SING - db 13,DOUBLESLAP - db 19,MINIMIZE - db 26,DEFENSE_CURL - db 34,METRONOME - db 43,MOONLIGHT - db 53,LIGHT_SCREEN + db 1, POUND + db 1, GROWL + db 4, ENCORE + db 8, SING + db 13, DOUBLESLAP + db 19, MINIMIZE + db 26, DEFENSE_CURL + db 34, METRONOME + db 43, MOONLIGHT + db 53, LIGHT_SCREEN db 0 ; no more level-up moves ClefableEvosAttacks: db 0 ; no more evolutions - db 1,SING - db 1,DOUBLESLAP - db 1,METRONOME - db 1,MOONLIGHT + db 1, SING + db 1, DOUBLESLAP + db 1, METRONOME + db 1, MOONLIGHT db 0 ; no more level-up moves VulpixEvosAttacks: - db EVOLVE_ITEM,FIRE_STONE,NINETALES + db EVOLVE_ITEM, FIRE_STONE, NINETALES db 0 ; no more evolutions - db 1,EMBER - db 1,TAIL_WHIP - db 7,QUICK_ATTACK - db 13,ROAR - db 19,CONFUSE_RAY - db 25,SAFEGUARD - db 31,FLAMETHROWER - db 37,FIRE_SPIN + db 1, EMBER + db 1, TAIL_WHIP + db 7, QUICK_ATTACK + db 13, ROAR + db 19, CONFUSE_RAY + db 25, SAFEGUARD + db 31, FLAMETHROWER + db 37, FIRE_SPIN db 0 ; no more level-up moves NinetalesEvosAttacks: db 0 ; no more evolutions - db 1,EMBER - db 1,QUICK_ATTACK - db 1,CONFUSE_RAY - db 1,SAFEGUARD - db 43,FIRE_SPIN + db 1, EMBER + db 1, QUICK_ATTACK + db 1, CONFUSE_RAY + db 1, SAFEGUARD + db 43, FIRE_SPIN db 0 ; no more level-up moves JigglypuffEvosAttacks: - db EVOLVE_ITEM,MOON_STONE,WIGGLYTUFF + db EVOLVE_ITEM, MOON_STONE, WIGGLYTUFF db 0 ; no more evolutions - db 1,SING - db 4,DEFENSE_CURL - db 9,POUND - db 14,DISABLE - db 19,ROLLOUT - db 24,DOUBLESLAP - db 29,REST - db 34,BODY_SLAM - db 39,DOUBLE_EDGE + db 1, SING + db 4, DEFENSE_CURL + db 9, POUND + db 14, DISABLE + db 19, ROLLOUT + db 24, DOUBLESLAP + db 29, REST + db 34, BODY_SLAM + db 39, DOUBLE_EDGE db 0 ; no more level-up moves WigglytuffEvosAttacks: db 0 ; no more evolutions - db 1,SING - db 1,DISABLE - db 1,DEFENSE_CURL - db 1,DOUBLESLAP + db 1, SING + db 1, DISABLE + db 1, DEFENSE_CURL + db 1, DOUBLESLAP db 0 ; no more level-up moves ZubatEvosAttacks: - db EVOLVE_LEVEL,22,GOLBAT + db EVOLVE_LEVEL, 22, GOLBAT db 0 ; no more evolutions - db 1,LEECH_LIFE - db 6,SUPERSONIC - db 12,BITE - db 19,CONFUSE_RAY - db 27,WING_ATTACK - db 36,MEAN_LOOK - db 46,HAZE + db 1, LEECH_LIFE + db 6, SUPERSONIC + db 12, BITE + db 19, CONFUSE_RAY + db 27, WING_ATTACK + db 36, MEAN_LOOK + db 46, HAZE db 0 ; no more level-up moves GolbatEvosAttacks: - db EVOLVE_HAPPINESS,TR_ANYTIME,CROBAT + db EVOLVE_HAPPINESS, TR_ANYTIME, CROBAT db 0 ; no more evolutions - db 1,SCREECH - db 1,LEECH_LIFE - db 1,SUPERSONIC - db 6,SUPERSONIC - db 12,BITE - db 19,CONFUSE_RAY - db 30,WING_ATTACK - db 42,MEAN_LOOK - db 55,HAZE + db 1, SCREECH + db 1, LEECH_LIFE + db 1, SUPERSONIC + db 6, SUPERSONIC + db 12, BITE + db 19, CONFUSE_RAY + db 30, WING_ATTACK + db 42, MEAN_LOOK + db 55, HAZE db 0 ; no more level-up moves OddishEvosAttacks: - db EVOLVE_LEVEL,21,GLOOM + db EVOLVE_LEVEL, 21, GLOOM db 0 ; no more evolutions - db 1,ABSORB - db 7,SWEET_SCENT - db 14,POISONPOWDER - db 16,STUN_SPORE - db 18,SLEEP_POWDER - db 23,ACID - db 32,MOONLIGHT - db 39,PETAL_DANCE + db 1, ABSORB + db 7, SWEET_SCENT + db 14, POISONPOWDER + db 16, STUN_SPORE + db 18, SLEEP_POWDER + db 23, ACID + db 32, MOONLIGHT + db 39, PETAL_DANCE db 0 ; no more level-up moves GloomEvosAttacks: - db EVOLVE_ITEM,LEAF_STONE,VILEPLUME - db EVOLVE_ITEM,SUN_STONE,BELLOSSOM + db EVOLVE_ITEM, LEAF_STONE, VILEPLUME + db EVOLVE_ITEM, SUN_STONE, BELLOSSOM db 0 ; no more evolutions - db 1,ABSORB - db 1,SWEET_SCENT - db 1,POISONPOWDER - db 7,SWEET_SCENT - db 14,POISONPOWDER - db 16,STUN_SPORE - db 18,SLEEP_POWDER - db 24,ACID - db 35,MOONLIGHT - db 44,PETAL_DANCE + db 1, ABSORB + db 1, SWEET_SCENT + db 1, POISONPOWDER + db 7, SWEET_SCENT + db 14, POISONPOWDER + db 16, STUN_SPORE + db 18, SLEEP_POWDER + db 24, ACID + db 35, MOONLIGHT + db 44, PETAL_DANCE db 0 ; no more level-up moves VileplumeEvosAttacks: db 0 ; no more evolutions - db 1,ABSORB - db 1,SWEET_SCENT - db 1,STUN_SPORE - db 1,PETAL_DANCE + db 1, ABSORB + db 1, SWEET_SCENT + db 1, STUN_SPORE + db 1, PETAL_DANCE db 0 ; no more level-up moves ParasEvosAttacks: - db EVOLVE_LEVEL,24,PARASECT + db EVOLVE_LEVEL, 24, PARASECT db 0 ; no more evolutions - db 1,SCRATCH - db 7,STUN_SPORE - db 13,POISONPOWDER - db 19,LEECH_LIFE - db 25,SPORE - db 31,SLASH - db 37,GROWTH - db 43,GIGA_DRAIN + db 1, SCRATCH + db 7, STUN_SPORE + db 13, POISONPOWDER + db 19, LEECH_LIFE + db 25, SPORE + db 31, SLASH + db 37, GROWTH + db 43, GIGA_DRAIN db 0 ; no more level-up moves ParasectEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,STUN_SPORE - db 1,POISONPOWDER - db 7,STUN_SPORE - db 13,POISONPOWDER - db 19,LEECH_LIFE - db 28,SPORE - db 37,SLASH - db 46,GROWTH - db 55,GIGA_DRAIN + db 1, SCRATCH + db 1, STUN_SPORE + db 1, POISONPOWDER + db 7, STUN_SPORE + db 13, POISONPOWDER + db 19, LEECH_LIFE + db 28, SPORE + db 37, SLASH + db 46, GROWTH + db 55, GIGA_DRAIN db 0 ; no more level-up moves VenonatEvosAttacks: - db EVOLVE_LEVEL,31,VENOMOTH + db EVOLVE_LEVEL, 31, VENOMOTH db 0 ; no more evolutions - db 1,TACKLE - db 1,DISABLE - db 1,FORESIGHT - db 9,SUPERSONIC - db 17,CONFUSION - db 20,POISONPOWDER - db 25,LEECH_LIFE - db 28,STUN_SPORE - db 33,PSYBEAM - db 36,SLEEP_POWDER - db 41,PSYCHIC_M + db 1, TACKLE + db 1, DISABLE + db 1, FORESIGHT + db 9, SUPERSONIC + db 17, CONFUSION + db 20, POISONPOWDER + db 25, LEECH_LIFE + db 28, STUN_SPORE + db 33, PSYBEAM + db 36, SLEEP_POWDER + db 41, PSYCHIC_M db 0 ; no more level-up moves VenomothEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,DISABLE - db 1,FORESIGHT - db 1,SUPERSONIC - db 9,SUPERSONIC - db 17,CONFUSION - db 20,POISONPOWDER - db 25,LEECH_LIFE - db 28,STUN_SPORE - db 31,GUST - db 36,PSYBEAM - db 42,SLEEP_POWDER - db 52,PSYCHIC_M + db 1, TACKLE + db 1, DISABLE + db 1, FORESIGHT + db 1, SUPERSONIC + db 9, SUPERSONIC + db 17, CONFUSION + db 20, POISONPOWDER + db 25, LEECH_LIFE + db 28, STUN_SPORE + db 31, GUST + db 36, PSYBEAM + db 42, SLEEP_POWDER + db 52, PSYCHIC_M db 0 ; no more level-up moves DiglettEvosAttacks: - db EVOLVE_LEVEL,26,DUGTRIO + db EVOLVE_LEVEL, 26, DUGTRIO db 0 ; no more evolutions - db 1,SCRATCH - db 5,GROWL - db 9,MAGNITUDE - db 17,DIG - db 25,SAND_ATTACK - db 33,SLASH - db 41,EARTHQUAKE - db 49,FISSURE + db 1, SCRATCH + db 5, GROWL + db 9, MAGNITUDE + db 17, DIG + db 25, SAND_ATTACK + db 33, SLASH + db 41, EARTHQUAKE + db 49, FISSURE db 0 ; no more level-up moves DugtrioEvosAttacks: db 0 ; no more evolutions if _CRYSTAL - db 1,TRI_ATTACK + db 1, TRI_ATTACK endc - db 1,SCRATCH - db 1,GROWL - db 1,MAGNITUDE - db 5,GROWL - db 9,MAGNITUDE - db 17,DIG - db 25,SAND_ATTACK - db 37,SLASH - db 49,EARTHQUAKE - db 61,FISSURE + db 1, SCRATCH + db 1, GROWL + db 1, MAGNITUDE + db 5, GROWL + db 9, MAGNITUDE + db 17, DIG + db 25, SAND_ATTACK + db 37, SLASH + db 49, EARTHQUAKE + db 61, FISSURE db 0 ; no more level-up moves MeowthEvosAttacks: - db EVOLVE_LEVEL,28,PERSIAN + db EVOLVE_LEVEL, 28, PERSIAN db 0 ; no more evolutions - db 1,SCRATCH - db 1,GROWL - db 11,BITE - db 20,PAY_DAY - db 28,FAINT_ATTACK - db 35,SCREECH - db 41,FURY_SWIPES - db 46,SLASH + db 1, SCRATCH + db 1, GROWL + db 11, BITE + db 20, PAY_DAY + db 28, FAINT_ATTACK + db 35, SCREECH + db 41, FURY_SWIPES + db 46, SLASH db 0 ; no more level-up moves PersianEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,GROWL - db 1,BITE - db 11,BITE - db 20,PAY_DAY - db 29,FAINT_ATTACK - db 38,SCREECH - db 46,FURY_SWIPES - db 53,SLASH + db 1, SCRATCH + db 1, GROWL + db 1, BITE + db 11, BITE + db 20, PAY_DAY + db 29, FAINT_ATTACK + db 38, SCREECH + db 46, FURY_SWIPES + db 53, SLASH db 0 ; no more level-up moves PsyduckEvosAttacks: - db EVOLVE_LEVEL,33,GOLDUCK + db EVOLVE_LEVEL, 33, GOLDUCK db 0 ; no more evolutions - db 1,SCRATCH - db 5,TAIL_WHIP - db 10,DISABLE - db 16,CONFUSION - db 23,SCREECH - db 31,PSYCH_UP - db 40,FURY_SWIPES - db 50,HYDRO_PUMP + db 1, SCRATCH + db 5, TAIL_WHIP + db 10, DISABLE + db 16, CONFUSION + db 23, SCREECH + db 31, PSYCH_UP + db 40, FURY_SWIPES + db 50, HYDRO_PUMP db 0 ; no more level-up moves GolduckEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,TAIL_WHIP - db 1,DISABLE - db 1,CONFUSION - db 5,TAIL_WHIP - db 10,DISABLE - db 16,CONFUSION - db 23,SCREECH - db 31,PSYCH_UP - db 44,FURY_SWIPES - db 58,HYDRO_PUMP + db 1, SCRATCH + db 1, TAIL_WHIP + db 1, DISABLE + db 1, CONFUSION + db 5, TAIL_WHIP + db 10, DISABLE + db 16, CONFUSION + db 23, SCREECH + db 31, PSYCH_UP + db 44, FURY_SWIPES + db 58, HYDRO_PUMP db 0 ; no more level-up moves MankeyEvosAttacks: - db EVOLVE_LEVEL,28,PRIMEAPE + db EVOLVE_LEVEL, 28, PRIMEAPE db 0 ; no more evolutions - db 1,SCRATCH - db 1,LEER - db 9,LOW_KICK - db 15,KARATE_CHOP - db 21,FURY_SWIPES - db 27,FOCUS_ENERGY - db 33,SEISMIC_TOSS - db 39,CROSS_CHOP - db 45,SCREECH - db 51,THRASH + db 1, SCRATCH + db 1, LEER + db 9, LOW_KICK + db 15, KARATE_CHOP + db 21, FURY_SWIPES + db 27, FOCUS_ENERGY + db 33, SEISMIC_TOSS + db 39, CROSS_CHOP + db 45, SCREECH + db 51, THRASH db 0 ; no more level-up moves PrimeapeEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,LEER - db 1,LOW_KICK - db 1,RAGE - db 9,LOW_KICK - db 15,KARATE_CHOP - db 21,FURY_SWIPES - db 27,FOCUS_ENERGY - db 28,RAGE - db 36,SEISMIC_TOSS - db 45,CROSS_CHOP - db 54,SCREECH - db 63,THRASH + db 1, SCRATCH + db 1, LEER + db 1, LOW_KICK + db 1, RAGE + db 9, LOW_KICK + db 15, KARATE_CHOP + db 21, FURY_SWIPES + db 27, FOCUS_ENERGY + db 28, RAGE + db 36, SEISMIC_TOSS + db 45, CROSS_CHOP + db 54, SCREECH + db 63, THRASH db 0 ; no more level-up moves GrowlitheEvosAttacks: - db EVOLVE_ITEM,FIRE_STONE,ARCANINE + db EVOLVE_ITEM, FIRE_STONE, ARCANINE db 0 ; no more evolutions - db 1,BITE - db 1,ROAR - db 9,EMBER - db 18,LEER - db 26,TAKE_DOWN - db 34,FLAME_WHEEL - db 42,AGILITY - db 50,FLAMETHROWER + db 1, BITE + db 1, ROAR + db 9, EMBER + db 18, LEER + db 26, TAKE_DOWN + db 34, FLAME_WHEEL + db 42, AGILITY + db 50, FLAMETHROWER db 0 ; no more level-up moves ArcanineEvosAttacks: db 0 ; no more evolutions - db 1,ROAR - db 1,LEER - db 1,TAKE_DOWN - db 1,FLAME_WHEEL - db 50,EXTREMESPEED + db 1, ROAR + db 1, LEER + db 1, TAKE_DOWN + db 1, FLAME_WHEEL + db 50, EXTREMESPEED db 0 ; no more level-up moves PoliwagEvosAttacks: - db EVOLVE_LEVEL,25,POLIWHIRL + db EVOLVE_LEVEL, 25, POLIWHIRL db 0 ; no more evolutions - db 1,BUBBLE - db 7,HYPNOSIS - db 13,WATER_GUN - db 19,DOUBLESLAP - db 25,RAIN_DANCE - db 31,BODY_SLAM - db 37,BELLY_DRUM - db 43,HYDRO_PUMP + db 1, BUBBLE + db 7, HYPNOSIS + db 13, WATER_GUN + db 19, DOUBLESLAP + db 25, RAIN_DANCE + db 31, BODY_SLAM + db 37, BELLY_DRUM + db 43, HYDRO_PUMP db 0 ; no more level-up moves PoliwhirlEvosAttacks: - db EVOLVE_ITEM,WATER_STONE,POLIWRATH - db EVOLVE_TRADE,KINGS_ROCK,POLITOED + db EVOLVE_ITEM, WATER_STONE, POLIWRATH + db EVOLVE_TRADE, KINGS_ROCK, POLITOED db 0 ; no more evolutions - db 1,BUBBLE - db 1,HYPNOSIS - db 1,WATER_GUN - db 7,HYPNOSIS - db 13,WATER_GUN - db 19,DOUBLESLAP - db 27,RAIN_DANCE - db 35,BODY_SLAM - db 43,BELLY_DRUM - db 51,HYDRO_PUMP + db 1, BUBBLE + db 1, HYPNOSIS + db 1, WATER_GUN + db 7, HYPNOSIS + db 13, WATER_GUN + db 19, DOUBLESLAP + db 27, RAIN_DANCE + db 35, BODY_SLAM + db 43, BELLY_DRUM + db 51, HYDRO_PUMP db 0 ; no more level-up moves PoliwrathEvosAttacks: db 0 ; no more evolutions - db 1,WATER_GUN - db 1,HYPNOSIS - db 1,DOUBLESLAP - db 1,SUBMISSION - db 35,SUBMISSION - db 51,MIND_READER + db 1, WATER_GUN + db 1, HYPNOSIS + db 1, DOUBLESLAP + db 1, SUBMISSION + db 35, SUBMISSION + db 51, MIND_READER db 0 ; no more level-up moves AbraEvosAttacks: - db EVOLVE_LEVEL,16,KADABRA + db EVOLVE_LEVEL, 16, KADABRA db 0 ; no more evolutions - db 1,TELEPORT + db 1, TELEPORT db 0 ; no more level-up moves KadabraEvosAttacks: - db EVOLVE_TRADE,$ff,ALAKAZAM + db EVOLVE_TRADE, $ff, ALAKAZAM db 0 ; no more evolutions - db 1,TELEPORT - db 1,KINESIS - db 1,CONFUSION - db 16,CONFUSION - db 18,DISABLE - db 21,PSYBEAM - db 26,RECOVER - db 31,FUTURE_SIGHT - db 38,PSYCHIC_M - db 45,REFLECT + db 1, TELEPORT + db 1, KINESIS + db 1, CONFUSION + db 16, CONFUSION + db 18, DISABLE + db 21, PSYBEAM + db 26, RECOVER + db 31, FUTURE_SIGHT + db 38, PSYCHIC_M + db 45, REFLECT db 0 ; no more level-up moves AlakazamEvosAttacks: db 0 ; no more evolutions - db 1,TELEPORT - db 1,KINESIS - db 1,CONFUSION - db 16,CONFUSION - db 18,DISABLE - db 21,PSYBEAM - db 26,RECOVER - db 31,FUTURE_SIGHT - db 38,PSYCHIC_M - db 45,REFLECT + db 1, TELEPORT + db 1, KINESIS + db 1, CONFUSION + db 16, CONFUSION + db 18, DISABLE + db 21, PSYBEAM + db 26, RECOVER + db 31, FUTURE_SIGHT + db 38, PSYCHIC_M + db 45, REFLECT db 0 ; no more level-up moves MachopEvosAttacks: - db EVOLVE_LEVEL,28,MACHOKE + db EVOLVE_LEVEL, 28, MACHOKE db 0 ; no more evolutions - db 1,LOW_KICK - db 1,LEER - db 7,FOCUS_ENERGY - db 13,KARATE_CHOP - db 19,SEISMIC_TOSS - db 25,FORESIGHT - db 31,VITAL_THROW - db 37,CROSS_CHOP - db 43,SCARY_FACE - db 49,SUBMISSION + db 1, LOW_KICK + db 1, LEER + db 7, FOCUS_ENERGY + db 13, KARATE_CHOP + db 19, SEISMIC_TOSS + db 25, FORESIGHT + db 31, VITAL_THROW + db 37, CROSS_CHOP + db 43, SCARY_FACE + db 49, SUBMISSION db 0 ; no more level-up moves MachokeEvosAttacks: - db EVOLVE_TRADE,$ff,MACHAMP + db EVOLVE_TRADE, $ff, MACHAMP db 0 ; no more evolutions - db 1,LOW_KICK - db 1,LEER - db 1,FOCUS_ENERGY - db 8,FOCUS_ENERGY - db 15,KARATE_CHOP - db 19,SEISMIC_TOSS - db 25,FORESIGHT - db 34,VITAL_THROW - db 43,CROSS_CHOP - db 52,SCARY_FACE - db 61,SUBMISSION + db 1, LOW_KICK + db 1, LEER + db 1, FOCUS_ENERGY + db 8, FOCUS_ENERGY + db 15, KARATE_CHOP + db 19, SEISMIC_TOSS + db 25, FORESIGHT + db 34, VITAL_THROW + db 43, CROSS_CHOP + db 52, SCARY_FACE + db 61, SUBMISSION db 0 ; no more level-up moves MachampEvosAttacks: db 0 ; no more evolutions - db 1,LOW_KICK - db 1,LEER - db 1,FOCUS_ENERGY - db 8,FOCUS_ENERGY - db 15,KARATE_CHOP - db 19,SEISMIC_TOSS - db 25,FORESIGHT - db 34,VITAL_THROW - db 43,CROSS_CHOP - db 52,SCARY_FACE - db 61,SUBMISSION + db 1, LOW_KICK + db 1, LEER + db 1, FOCUS_ENERGY + db 8, FOCUS_ENERGY + db 15, KARATE_CHOP + db 19, SEISMIC_TOSS + db 25, FORESIGHT + db 34, VITAL_THROW + db 43, CROSS_CHOP + db 52, SCARY_FACE + db 61, SUBMISSION db 0 ; no more level-up moves BellsproutEvosAttacks: - db EVOLVE_LEVEL,21,WEEPINBELL + db EVOLVE_LEVEL, 21, WEEPINBELL db 0 ; no more evolutions - db 1,VINE_WHIP - db 6,GROWTH - db 11,WRAP - db 15,SLEEP_POWDER - db 17,POISONPOWDER - db 19,STUN_SPORE - db 23,ACID - db 30,SWEET_SCENT - db 37,RAZOR_LEAF - db 45,SLAM + db 1, VINE_WHIP + db 6, GROWTH + db 11, WRAP + db 15, SLEEP_POWDER + db 17, POISONPOWDER + db 19, STUN_SPORE + db 23, ACID + db 30, SWEET_SCENT + db 37, RAZOR_LEAF + db 45, SLAM db 0 ; no more level-up moves WeepinbellEvosAttacks: - db EVOLVE_ITEM,LEAF_STONE,VICTREEBEL - db 0 ; no more evolutions - db 1,VINE_WHIP - db 1,GROWTH - db 1,WRAP - db 6,GROWTH - db 11,WRAP - db 15,SLEEP_POWDER - db 17,POISONPOWDER - db 19,STUN_SPORE - db 24,ACID - db 33,SWEET_SCENT - db 42,RAZOR_LEAF - db 54,SLAM + db EVOLVE_ITEM, LEAF_STONE, VICTREEBEL + db 0 ; no more evolutions + db 1, VINE_WHIP + db 1, GROWTH + db 1, WRAP + db 6, GROWTH + db 11, WRAP + db 15, SLEEP_POWDER + db 17, POISONPOWDER + db 19, STUN_SPORE + db 24, ACID + db 33, SWEET_SCENT + db 42, RAZOR_LEAF + db 54, SLAM db 0 ; no more level-up moves VictreebelEvosAttacks: db 0 ; no more evolutions - db 1,VINE_WHIP - db 1,SLEEP_POWDER - db 1,SWEET_SCENT - db 1,RAZOR_LEAF + db 1, VINE_WHIP + db 1, SLEEP_POWDER + db 1, SWEET_SCENT + db 1, RAZOR_LEAF db 0 ; no more level-up moves TentacoolEvosAttacks: - db EVOLVE_LEVEL,30,TENTACRUEL + db EVOLVE_LEVEL, 30, TENTACRUEL db 0 ; no more evolutions - db 1,POISON_STING - db 6,SUPERSONIC - db 12,CONSTRICT - db 19,ACID - db 25,BUBBLEBEAM - db 30,WRAP - db 36,BARRIER - db 43,SCREECH - db 49,HYDRO_PUMP + db 1, POISON_STING + db 6, SUPERSONIC + db 12, CONSTRICT + db 19, ACID + db 25, BUBBLEBEAM + db 30, WRAP + db 36, BARRIER + db 43, SCREECH + db 49, HYDRO_PUMP db 0 ; no more level-up moves TentacruelEvosAttacks: db 0 ; no more evolutions - db 1,POISON_STING - db 1,SUPERSONIC - db 1,CONSTRICT - db 6,SUPERSONIC - db 12,CONSTRICT - db 19,ACID - db 25,BUBBLEBEAM - db 30,WRAP - db 38,BARRIER - db 47,SCREECH - db 55,HYDRO_PUMP + db 1, POISON_STING + db 1, SUPERSONIC + db 1, CONSTRICT + db 6, SUPERSONIC + db 12, CONSTRICT + db 19, ACID + db 25, BUBBLEBEAM + db 30, WRAP + db 38, BARRIER + db 47, SCREECH + db 55, HYDRO_PUMP db 0 ; no more level-up moves GeodudeEvosAttacks: - db EVOLVE_LEVEL,25,GRAVELER + db EVOLVE_LEVEL, 25, GRAVELER db 0 ; no more evolutions - db 1,TACKLE - db 6,DEFENSE_CURL - db 11,ROCK_THROW - db 16,MAGNITUDE - db 21,SELFDESTRUCT - db 26,HARDEN - db 31,ROLLOUT - db 36,EARTHQUAKE - db 41,EXPLOSION + db 1, TACKLE + db 6, DEFENSE_CURL + db 11, ROCK_THROW + db 16, MAGNITUDE + db 21, SELFDESTRUCT + db 26, HARDEN + db 31, ROLLOUT + db 36, EARTHQUAKE + db 41, EXPLOSION db 0 ; no more level-up moves GravelerEvosAttacks: - db EVOLVE_TRADE,$ff,GOLEM + db EVOLVE_TRADE, $ff, GOLEM db 0 ; no more evolutions - db 1,TACKLE - db 1,DEFENSE_CURL - db 1,ROCK_THROW - db 6,DEFENSE_CURL - db 11,ROCK_THROW - db 16,MAGNITUDE - db 21,SELFDESTRUCT - db 27,HARDEN - db 34,ROLLOUT - db 41,EARTHQUAKE - db 48,EXPLOSION + db 1, TACKLE + db 1, DEFENSE_CURL + db 1, ROCK_THROW + db 6, DEFENSE_CURL + db 11, ROCK_THROW + db 16, MAGNITUDE + db 21, SELFDESTRUCT + db 27, HARDEN + db 34, ROLLOUT + db 41, EARTHQUAKE + db 48, EXPLOSION db 0 ; no more level-up moves GolemEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,DEFENSE_CURL - db 1,ROCK_THROW - db 1,MAGNITUDE - db 6,DEFENSE_CURL - db 11,ROCK_THROW - db 16,MAGNITUDE - db 21,SELFDESTRUCT - db 27,HARDEN - db 34,ROLLOUT - db 41,EARTHQUAKE - db 48,EXPLOSION + db 1, TACKLE + db 1, DEFENSE_CURL + db 1, ROCK_THROW + db 1, MAGNITUDE + db 6, DEFENSE_CURL + db 11, ROCK_THROW + db 16, MAGNITUDE + db 21, SELFDESTRUCT + db 27, HARDEN + db 34, ROLLOUT + db 41, EARTHQUAKE + db 48, EXPLOSION db 0 ; no more level-up moves PonytaEvosAttacks: - db EVOLVE_LEVEL,40,RAPIDASH + db EVOLVE_LEVEL, 40, RAPIDASH db 0 ; no more evolutions - db 1,TACKLE - db 4,GROWL - db 8,TAIL_WHIP - db 13,EMBER - db 19,STOMP - db 26,FIRE_SPIN - db 34,TAKE_DOWN - db 43,AGILITY - db 53,FIRE_BLAST + db 1, TACKLE + db 4, GROWL + db 8, TAIL_WHIP + db 13, EMBER + db 19, STOMP + db 26, FIRE_SPIN + db 34, TAKE_DOWN + db 43, AGILITY + db 53, FIRE_BLAST db 0 ; no more level-up moves RapidashEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,TAIL_WHIP - db 1,EMBER - db 4,GROWL - db 8,TAIL_WHIP - db 13,EMBER - db 19,STOMP - db 26,FIRE_SPIN - db 34,TAKE_DOWN - db 40,FURY_ATTACK - db 47,AGILITY - db 61,FIRE_BLAST + db 1, TACKLE + db 1, GROWL + db 1, TAIL_WHIP + db 1, EMBER + db 4, GROWL + db 8, TAIL_WHIP + db 13, EMBER + db 19, STOMP + db 26, FIRE_SPIN + db 34, TAKE_DOWN + db 40, FURY_ATTACK + db 47, AGILITY + db 61, FIRE_BLAST db 0 ; no more level-up moves SlowpokeEvosAttacks: - db EVOLVE_LEVEL,37,SLOWBRO - db EVOLVE_TRADE,KINGS_ROCK,SLOWKING + db EVOLVE_LEVEL, 37, SLOWBRO + db EVOLVE_TRADE, KINGS_ROCK, SLOWKING db 0 ; no more evolutions - db 1,CURSE - db 1,TACKLE - db 6,GROWL - db 15,WATER_GUN - db 20,CONFUSION - db 29,DISABLE - db 34,HEADBUTT - db 43,AMNESIA - db 48,PSYCHIC_M + db 1, CURSE + db 1, TACKLE + db 6, GROWL + db 15, WATER_GUN + db 20, CONFUSION + db 29, DISABLE + db 34, HEADBUTT + db 43, AMNESIA + db 48, PSYCHIC_M db 0 ; no more level-up moves SlowbroEvosAttacks: db 0 ; no more evolutions - db 1,CURSE - db 1,TACKLE - db 1,GROWL - db 1,WATER_GUN - db 6,GROWL - db 15,WATER_GUN - db 20,CONFUSION - db 29,DISABLE - db 34,HEADBUTT - db 37,WITHDRAW - db 46,AMNESIA - db 54,PSYCHIC_M + db 1, CURSE + db 1, TACKLE + db 1, GROWL + db 1, WATER_GUN + db 6, GROWL + db 15, WATER_GUN + db 20, CONFUSION + db 29, DISABLE + db 34, HEADBUTT + db 37, WITHDRAW + db 46, AMNESIA + db 54, PSYCHIC_M db 0 ; no more level-up moves MagnemiteEvosAttacks: - db EVOLVE_LEVEL,30,MAGNETON + db EVOLVE_LEVEL, 30, MAGNETON db 0 ; no more evolutions - db 1,TACKLE - db 6,THUNDERSHOCK - db 11,SUPERSONIC - db 16,SONICBOOM - db 21,THUNDER_WAVE - db 27,LOCK_ON - db 33,SWIFT - db 39,SCREECH - db 45,ZAP_CANNON + db 1, TACKLE + db 6, THUNDERSHOCK + db 11, SUPERSONIC + db 16, SONICBOOM + db 21, THUNDER_WAVE + db 27, LOCK_ON + db 33, SWIFT + db 39, SCREECH + db 45, ZAP_CANNON db 0 ; no more level-up moves MagnetonEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,THUNDERSHOCK - db 1,SUPERSONIC - db 1,SONICBOOM - db 6,THUNDERSHOCK - db 11,SUPERSONIC - db 16,SONICBOOM - db 21,THUNDER_WAVE - db 27,LOCK_ON + db 1, TACKLE + db 1, THUNDERSHOCK + db 1, SUPERSONIC + db 1, SONICBOOM + db 6, THUNDERSHOCK + db 11, SUPERSONIC + db 16, SONICBOOM + db 21, THUNDER_WAVE + db 27, LOCK_ON if _CRYSTAL - db 35,TRI_ATTACK + db 35, TRI_ATTACK else - db 35,SWIFT + db 35, SWIFT endc - db 43,SCREECH - db 53,ZAP_CANNON + db 43, SCREECH + db 53, ZAP_CANNON db 0 ; no more level-up moves FarfetchDEvosAttacks: db 0 ; no more evolutions - db 1,PECK - db 7,SAND_ATTACK - db 13,LEER - db 19,FURY_ATTACK - db 25,SWORDS_DANCE - db 31,AGILITY - db 37,SLASH - db 44,FALSE_SWIPE + db 1, PECK + db 7, SAND_ATTACK + db 13, LEER + db 19, FURY_ATTACK + db 25, SWORDS_DANCE + db 31, AGILITY + db 37, SLASH + db 44, FALSE_SWIPE db 0 ; no more level-up moves DoduoEvosAttacks: - db EVOLVE_LEVEL,31,DODRIO + db EVOLVE_LEVEL, 31, DODRIO db 0 ; no more evolutions - db 1,PECK - db 1,GROWL - db 9,PURSUIT - db 13,FURY_ATTACK - db 21,TRI_ATTACK - db 25,RAGE - db 33,DRILL_PECK - db 37,AGILITY + db 1, PECK + db 1, GROWL + db 9, PURSUIT + db 13, FURY_ATTACK + db 21, TRI_ATTACK + db 25, RAGE + db 33, DRILL_PECK + db 37, AGILITY db 0 ; no more level-up moves DodrioEvosAttacks: db 0 ; no more evolutions - db 1,PECK - db 1,GROWL - db 1,PURSUIT - db 1,FURY_ATTACK - db 9,PURSUIT - db 13,FURY_ATTACK - db 21,TRI_ATTACK - db 25,RAGE - db 38,DRILL_PECK - db 47,AGILITY + db 1, PECK + db 1, GROWL + db 1, PURSUIT + db 1, FURY_ATTACK + db 9, PURSUIT + db 13, FURY_ATTACK + db 21, TRI_ATTACK + db 25, RAGE + db 38, DRILL_PECK + db 47, AGILITY db 0 ; no more level-up moves SeelEvosAttacks: - db EVOLVE_LEVEL,34,DEWGONG + db EVOLVE_LEVEL, 34, DEWGONG db 0 ; no more evolutions - db 1,HEADBUTT - db 5,GROWL - db 16,AURORA_BEAM - db 21,REST - db 32,TAKE_DOWN - db 37,ICE_BEAM - db 48,SAFEGUARD + db 1, HEADBUTT + db 5, GROWL + db 16, AURORA_BEAM + db 21, REST + db 32, TAKE_DOWN + db 37, ICE_BEAM + db 48, SAFEGUARD db 0 ; no more level-up moves DewgongEvosAttacks: db 0 ; no more evolutions - db 1,HEADBUTT - db 1,GROWL - db 1,AURORA_BEAM - db 5,GROWL - db 16,AURORA_BEAM - db 21,REST - db 32,TAKE_DOWN - db 43,ICE_BEAM - db 60,SAFEGUARD + db 1, HEADBUTT + db 1, GROWL + db 1, AURORA_BEAM + db 5, GROWL + db 16, AURORA_BEAM + db 21, REST + db 32, TAKE_DOWN + db 43, ICE_BEAM + db 60, SAFEGUARD db 0 ; no more level-up moves GrimerEvosAttacks: - db EVOLVE_LEVEL,38,MUK + db EVOLVE_LEVEL, 38, MUK db 0 ; no more evolutions - db 1,POISON_GAS - db 1,POUND - db 5,HARDEN - db 10,DISABLE - db 16,SLUDGE - db 23,MINIMIZE - db 31,SCREECH - db 40,ACID_ARMOR - db 50,SLUDGE_BOMB + db 1, POISON_GAS + db 1, POUND + db 5, HARDEN + db 10, DISABLE + db 16, SLUDGE + db 23, MINIMIZE + db 31, SCREECH + db 40, ACID_ARMOR + db 50, SLUDGE_BOMB db 0 ; no more level-up moves MukEvosAttacks: db 0 ; no more evolutions - db 1,POISON_GAS - db 1,POUND - db 1,HARDEN - db 33,HARDEN - db 37,DISABLE - db 45,SLUDGE - db 23,MINIMIZE - db 31,SCREECH - db 45,ACID_ARMOR - db 60,SLUDGE_BOMB + db 1, POISON_GAS + db 1, POUND + db 1, HARDEN + db 33, HARDEN + db 37, DISABLE + db 45, SLUDGE + db 23, MINIMIZE + db 31, SCREECH + db 45, ACID_ARMOR + db 60, SLUDGE_BOMB db 0 ; no more level-up moves ShellderEvosAttacks: - db EVOLVE_ITEM,WATER_STONE,CLOYSTER + db EVOLVE_ITEM, WATER_STONE, CLOYSTER db 0 ; no more evolutions - db 1,TACKLE - db 1,WITHDRAW - db 9,SUPERSONIC - db 17,AURORA_BEAM - db 25,PROTECT - db 33,LEER - db 41,CLAMP - db 49,ICE_BEAM + db 1, TACKLE + db 1, WITHDRAW + db 9, SUPERSONIC + db 17, AURORA_BEAM + db 25, PROTECT + db 33, LEER + db 41, CLAMP + db 49, ICE_BEAM db 0 ; no more level-up moves CloysterEvosAttacks: db 0 ; no more evolutions - db 1,WITHDRAW - db 1,SUPERSONIC - db 1,AURORA_BEAM - db 1,PROTECT + db 1, WITHDRAW + db 1, SUPERSONIC + db 1, AURORA_BEAM + db 1, PROTECT if _CRYSTAL - db 33,SPIKES + db 33, SPIKES endc - db 41,SPIKE_CANNON + db 41, SPIKE_CANNON db 0 ; no more level-up moves GastlyEvosAttacks: - db EVOLVE_LEVEL,25,HAUNTER + db EVOLVE_LEVEL, 25, HAUNTER db 0 ; no more evolutions - db 1,HYPNOSIS - db 1,LICK - db 8,SPITE - db 13,MEAN_LOOK - db 16,CURSE - db 21,NIGHT_SHADE - db 28,CONFUSE_RAY - db 33,DREAM_EATER - db 36,DESTINY_BOND + db 1, HYPNOSIS + db 1, LICK + db 8, SPITE + db 13, MEAN_LOOK + db 16, CURSE + db 21, NIGHT_SHADE + db 28, CONFUSE_RAY + db 33, DREAM_EATER + db 36, DESTINY_BOND db 0 ; no more level-up moves HaunterEvosAttacks: - db EVOLVE_TRADE,$ff,GENGAR + db EVOLVE_TRADE, $ff, GENGAR db 0 ; no more evolutions - db 1,HYPNOSIS - db 1,LICK - db 1,SPITE - db 8,SPITE - db 13,MEAN_LOOK - db 16,CURSE - db 21,NIGHT_SHADE - db 31,CONFUSE_RAY - db 39,DREAM_EATER - db 48,DESTINY_BOND + db 1, HYPNOSIS + db 1, LICK + db 1, SPITE + db 8, SPITE + db 13, MEAN_LOOK + db 16, CURSE + db 21, NIGHT_SHADE + db 31, CONFUSE_RAY + db 39, DREAM_EATER + db 48, DESTINY_BOND db 0 ; no more level-up moves GengarEvosAttacks: db 0 ; no more evolutions - db 1,HYPNOSIS - db 1,LICK - db 1,SPITE - db 8,SPITE - db 13,MEAN_LOOK - db 16,CURSE - db 21,NIGHT_SHADE - db 31,CONFUSE_RAY - db 39,DREAM_EATER - db 48,DESTINY_BOND + db 1, HYPNOSIS + db 1, LICK + db 1, SPITE + db 8, SPITE + db 13, MEAN_LOOK + db 16, CURSE + db 21, NIGHT_SHADE + db 31, CONFUSE_RAY + db 39, DREAM_EATER + db 48, DESTINY_BOND db 0 ; no more level-up moves OnixEvosAttacks: - db EVOLVE_TRADE,METAL_COAT,STEELIX + db EVOLVE_TRADE, METAL_COAT, STEELIX db 0 ; no more evolutions - db 1,TACKLE - db 1,SCREECH - db 10,BIND - db 14,ROCK_THROW - db 23,HARDEN - db 27,RAGE - db 36,SANDSTORM - db 40,SLAM + db 1, TACKLE + db 1, SCREECH + db 10, BIND + db 14, ROCK_THROW + db 23, HARDEN + db 27, RAGE + db 36, SANDSTORM + db 40, SLAM db 0 ; no more level-up moves DrowzeeEvosAttacks: - db EVOLVE_LEVEL,26,HYPNO + db EVOLVE_LEVEL, 26, HYPNO db 0 ; no more evolutions - db 1,POUND - db 1,HYPNOSIS - db 10,DISABLE - db 18,CONFUSION - db 25,HEADBUTT - db 31,POISON_GAS - db 36,MEDITATE - db 40,PSYCHIC_M - db 43,PSYCH_UP - db 45,FUTURE_SIGHT + db 1, POUND + db 1, HYPNOSIS + db 10, DISABLE + db 18, CONFUSION + db 25, HEADBUTT + db 31, POISON_GAS + db 36, MEDITATE + db 40, PSYCHIC_M + db 43, PSYCH_UP + db 45, FUTURE_SIGHT db 0 ; no more level-up moves HypnoEvosAttacks: db 0 ; no more evolutions - db 1,POUND - db 1,HYPNOSIS - db 1,DISABLE - db 1,CONFUSION - db 10,DISABLE - db 18,CONFUSION - db 25,HEADBUTT - db 33,POISON_GAS - db 40,MEDITATE - db 49,PSYCHIC_M - db 55,PSYCH_UP - db 60,FUTURE_SIGHT + db 1, POUND + db 1, HYPNOSIS + db 1, DISABLE + db 1, CONFUSION + db 10, DISABLE + db 18, CONFUSION + db 25, HEADBUTT + db 33, POISON_GAS + db 40, MEDITATE + db 49, PSYCHIC_M + db 55, PSYCH_UP + db 60, FUTURE_SIGHT db 0 ; no more level-up moves KrabbyEvosAttacks: - db EVOLVE_LEVEL,28,KINGLER + db EVOLVE_LEVEL, 28, KINGLER db 0 ; no more evolutions - db 1,BUBBLE - db 5,LEER - db 12,VICEGRIP - db 16,HARDEN - db 23,STOMP - db 27,GUILLOTINE - db 34,PROTECT - db 41,CRABHAMMER + db 1, BUBBLE + db 5, LEER + db 12, VICEGRIP + db 16, HARDEN + db 23, STOMP + db 27, GUILLOTINE + db 34, PROTECT + db 41, CRABHAMMER db 0 ; no more level-up moves KinglerEvosAttacks: db 0 ; no more evolutions - db 1,BUBBLE - db 1,LEER - db 1,VICEGRIP - db 5,LEER - db 12,VICEGRIP - db 16,HARDEN - db 23,STOMP - db 27,GUILLOTINE - db 38,PROTECT - db 49,CRABHAMMER + db 1, BUBBLE + db 1, LEER + db 1, VICEGRIP + db 5, LEER + db 12, VICEGRIP + db 16, HARDEN + db 23, STOMP + db 27, GUILLOTINE + db 38, PROTECT + db 49, CRABHAMMER db 0 ; no more level-up moves VoltorbEvosAttacks: - db EVOLVE_LEVEL,30,ELECTRODE + db EVOLVE_LEVEL, 30, ELECTRODE db 0 ; no more evolutions - db 1,TACKLE - db 9,SCREECH - db 17,SONICBOOM - db 23,SELFDESTRUCT - db 29,ROLLOUT - db 33,LIGHT_SCREEN - db 37,SWIFT - db 39,EXPLOSION - db 41,MIRROR_COAT + db 1, TACKLE + db 9, SCREECH + db 17, SONICBOOM + db 23, SELFDESTRUCT + db 29, ROLLOUT + db 33, LIGHT_SCREEN + db 37, SWIFT + db 39, EXPLOSION + db 41, MIRROR_COAT db 0 ; no more level-up moves ElectrodeEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,SCREECH - db 1,SONICBOOM - db 1,SELFDESTRUCT - db 9,SCREECH - db 17,SONICBOOM - db 23,SELFDESTRUCT - db 29,ROLLOUT - db 34,LIGHT_SCREEN - db 40,SWIFT - db 44,EXPLOSION - db 48,MIRROR_COAT + db 1, TACKLE + db 1, SCREECH + db 1, SONICBOOM + db 1, SELFDESTRUCT + db 9, SCREECH + db 17, SONICBOOM + db 23, SELFDESTRUCT + db 29, ROLLOUT + db 34, LIGHT_SCREEN + db 40, SWIFT + db 44, EXPLOSION + db 48, MIRROR_COAT db 0 ; no more level-up moves ExeggcuteEvosAttacks: - db EVOLVE_ITEM,LEAF_STONE,EXEGGUTOR + db EVOLVE_ITEM, LEAF_STONE, EXEGGUTOR db 0 ; no more evolutions - db 1,BARRAGE - db 1,HYPNOSIS - db 7,REFLECT - db 13,LEECH_SEED - db 19,CONFUSION - db 25,STUN_SPORE - db 31,POISONPOWDER - db 37,SLEEP_POWDER - db 43,SOLARBEAM + db 1, BARRAGE + db 1, HYPNOSIS + db 7, REFLECT + db 13, LEECH_SEED + db 19, CONFUSION + db 25, STUN_SPORE + db 31, POISONPOWDER + db 37, SLEEP_POWDER + db 43, SOLARBEAM db 0 ; no more level-up moves ExeggutorEvosAttacks: db 0 ; no more evolutions - db 1,BARRAGE - db 1,HYPNOSIS - db 1,CONFUSION - db 19,STOMP - db 31,EGG_BOMB + db 1, BARRAGE + db 1, HYPNOSIS + db 1, CONFUSION + db 19, STOMP + db 31, EGG_BOMB db 0 ; no more level-up moves CuboneEvosAttacks: - db EVOLVE_LEVEL,28,MAROWAK + db EVOLVE_LEVEL, 28, MAROWAK db 0 ; no more evolutions - db 1,GROWL - db 5,TAIL_WHIP - db 9,BONE_CLUB - db 13,HEADBUTT - db 17,LEER - db 21,FOCUS_ENERGY - db 25,BONEMERANG - db 29,RAGE - db 33,FALSE_SWIPE - db 37,THRASH - db 41,BONE_RUSH + db 1, GROWL + db 5, TAIL_WHIP + db 9, BONE_CLUB + db 13, HEADBUTT + db 17, LEER + db 21, FOCUS_ENERGY + db 25, BONEMERANG + db 29, RAGE + db 33, FALSE_SWIPE + db 37, THRASH + db 41, BONE_RUSH db 0 ; no more level-up moves MarowakEvosAttacks: db 0 ; no more evolutions - db 1,GROWL - db 1,TAIL_WHIP - db 1,BONE_CLUB - db 1,HEADBUTT - db 5,TAIL_WHIP - db 9,BONE_CLUB - db 13,HEADBUTT - db 17,LEER - db 21,FOCUS_ENERGY - db 25,BONEMERANG - db 32,RAGE - db 39,FALSE_SWIPE - db 46,THRASH - db 53,BONE_RUSH + db 1, GROWL + db 1, TAIL_WHIP + db 1, BONE_CLUB + db 1, HEADBUTT + db 5, TAIL_WHIP + db 9, BONE_CLUB + db 13, HEADBUTT + db 17, LEER + db 21, FOCUS_ENERGY + db 25, BONEMERANG + db 32, RAGE + db 39, FALSE_SWIPE + db 46, THRASH + db 53, BONE_RUSH db 0 ; no more level-up moves HitmonleeEvosAttacks: db 0 ; no more evolutions - db 1,DOUBLE_KICK - db 6,MEDITATE - db 11,ROLLING_KICK - db 16,JUMP_KICK - db 21,FOCUS_ENERGY - db 26,HI_JUMP_KICK - db 31,MIND_READER - db 36,FORESIGHT - db 41,ENDURE - db 46,MEGA_KICK - db 51,REVERSAL + db 1, DOUBLE_KICK + db 6, MEDITATE + db 11, ROLLING_KICK + db 16, JUMP_KICK + db 21, FOCUS_ENERGY + db 26, HI_JUMP_KICK + db 31, MIND_READER + db 36, FORESIGHT + db 41, ENDURE + db 46, MEGA_KICK + db 51, REVERSAL db 0 ; no more level-up moves HitmonchanEvosAttacks: db 0 ; no more evolutions - db 1,COMET_PUNCH - db 7,AGILITY - db 13,PURSUIT - db 26,THUNDERPUNCH - db 26,ICE_PUNCH - db 26,FIRE_PUNCH - db 32,MACH_PUNCH - db 38,MEGA_PUNCH - db 44,DETECT - db 50,COUNTER + db 1, COMET_PUNCH + db 7, AGILITY + db 13, PURSUIT + db 26, THUNDERPUNCH + db 26, ICE_PUNCH + db 26, FIRE_PUNCH + db 32, MACH_PUNCH + db 38, MEGA_PUNCH + db 44, DETECT + db 50, COUNTER db 0 ; no more level-up moves LickitungEvosAttacks: db 0 ; no more evolutions - db 1,LICK - db 7,SUPERSONIC - db 13,DEFENSE_CURL - db 19,STOMP - db 25,WRAP - db 31,DISABLE - db 37,SLAM - db 43,SCREECH + db 1, LICK + db 7, SUPERSONIC + db 13, DEFENSE_CURL + db 19, STOMP + db 25, WRAP + db 31, DISABLE + db 37, SLAM + db 43, SCREECH db 0 ; no more level-up moves KoffingEvosAttacks: - db EVOLVE_LEVEL,35,WEEZING + db EVOLVE_LEVEL, 35, WEEZING db 0 ; no more evolutions - db 1,POISON_GAS - db 1,TACKLE - db 9,SMOG - db 17,SELFDESTRUCT - db 21,SLUDGE - db 25,SMOKESCREEN - db 33,HAZE - db 41,EXPLOSION - db 45,DESTINY_BOND + db 1, POISON_GAS + db 1, TACKLE + db 9, SMOG + db 17, SELFDESTRUCT + db 21, SLUDGE + db 25, SMOKESCREEN + db 33, HAZE + db 41, EXPLOSION + db 45, DESTINY_BOND db 0 ; no more level-up moves WeezingEvosAttacks: db 0 ; no more evolutions - db 1,POISON_GAS - db 1,TACKLE - db 1,SMOG - db 1,SELFDESTRUCT - db 9,SMOG - db 17,SELFDESTRUCT - db 21,SLUDGE - db 25,SMOKESCREEN - db 33,HAZE - db 44,EXPLOSION - db 51,DESTINY_BOND + db 1, POISON_GAS + db 1, TACKLE + db 1, SMOG + db 1, SELFDESTRUCT + db 9, SMOG + db 17, SELFDESTRUCT + db 21, SLUDGE + db 25, SMOKESCREEN + db 33, HAZE + db 44, EXPLOSION + db 51, DESTINY_BOND db 0 ; no more level-up moves RhyhornEvosAttacks: - db EVOLVE_LEVEL,42,RHYDON + db EVOLVE_LEVEL, 42, RHYDON db 0 ; no more evolutions - db 1,HORN_ATTACK - db 1,TAIL_WHIP - db 13,STOMP - db 19,FURY_ATTACK - db 31,SCARY_FACE - db 37,HORN_DRILL - db 49,TAKE_DOWN - db 55,EARTHQUAKE + db 1, HORN_ATTACK + db 1, TAIL_WHIP + db 13, STOMP + db 19, FURY_ATTACK + db 31, SCARY_FACE + db 37, HORN_DRILL + db 49, TAKE_DOWN + db 55, EARTHQUAKE db 0 ; no more level-up moves RhydonEvosAttacks: db 0 ; no more evolutions - db 1,HORN_ATTACK - db 1,TAIL_WHIP - db 1,STOMP - db 1,FURY_ATTACK - db 13,STOMP - db 19,FURY_ATTACK - db 31,SCARY_FACE - db 37,HORN_DRILL - db 54,TAKE_DOWN - db 65,EARTHQUAKE + db 1, HORN_ATTACK + db 1, TAIL_WHIP + db 1, STOMP + db 1, FURY_ATTACK + db 13, STOMP + db 19, FURY_ATTACK + db 31, SCARY_FACE + db 37, HORN_DRILL + db 54, TAKE_DOWN + db 65, EARTHQUAKE db 0 ; no more level-up moves ChanseyEvosAttacks: - db EVOLVE_HAPPINESS,TR_ANYTIME,BLISSEY + db EVOLVE_HAPPINESS, TR_ANYTIME, BLISSEY db 0 ; no more evolutions - db 1,POUND - db 5,GROWL - db 9,TAIL_WHIP - db 13,SOFTBOILED - db 17,DOUBLESLAP - db 23,MINIMIZE - db 29,SING - db 35,EGG_BOMB - db 41,DEFENSE_CURL - db 49,LIGHT_SCREEN - db 57,DOUBLE_EDGE + db 1, POUND + db 5, GROWL + db 9, TAIL_WHIP + db 13, SOFTBOILED + db 17, DOUBLESLAP + db 23, MINIMIZE + db 29, SING + db 35, EGG_BOMB + db 41, DEFENSE_CURL + db 49, LIGHT_SCREEN + db 57, DOUBLE_EDGE db 0 ; no more level-up moves TangelaEvosAttacks: db 0 ; no more evolutions - db 1,CONSTRICT - db 4,SLEEP_POWDER - db 10,ABSORB - db 13,POISONPOWDER - db 19,VINE_WHIP - db 25,BIND - db 31,MEGA_DRAIN - db 34,STUN_SPORE - db 40,SLAM - db 46,GROWTH + db 1, CONSTRICT + db 4, SLEEP_POWDER + db 10, ABSORB + db 13, POISONPOWDER + db 19, VINE_WHIP + db 25, BIND + db 31, MEGA_DRAIN + db 34, STUN_SPORE + db 40, SLAM + db 46, GROWTH db 0 ; no more level-up moves KangaskhanEvosAttacks: db 0 ; no more evolutions - db 1,COMET_PUNCH - db 7,LEER - db 13,BITE - db 19,TAIL_WHIP - db 25,MEGA_PUNCH - db 31,RAGE - db 37,ENDURE - db 43,DIZZY_PUNCH - db 49,REVERSAL + db 1, COMET_PUNCH + db 7, LEER + db 13, BITE + db 19, TAIL_WHIP + db 25, MEGA_PUNCH + db 31, RAGE + db 37, ENDURE + db 43, DIZZY_PUNCH + db 49, REVERSAL db 0 ; no more level-up moves HorseaEvosAttacks: - db EVOLVE_LEVEL,32,SEADRA + db EVOLVE_LEVEL, 32, SEADRA db 0 ; no more evolutions - db 1,BUBBLE - db 8,SMOKESCREEN - db 15,LEER - db 22,WATER_GUN - db 29,TWISTER - db 36,AGILITY - db 43,HYDRO_PUMP + db 1, BUBBLE + db 8, SMOKESCREEN + db 15, LEER + db 22, WATER_GUN + db 29, TWISTER + db 36, AGILITY + db 43, HYDRO_PUMP db 0 ; no more level-up moves SeadraEvosAttacks: - db EVOLVE_TRADE,DRAGON_SCALE,KINGDRA + db EVOLVE_TRADE, DRAGON_SCALE, KINGDRA db 0 ; no more evolutions - db 1,BUBBLE - db 1,SMOKESCREEN - db 1,LEER - db 1,WATER_GUN - db 8,SMOKESCREEN - db 15,LEER - db 22,WATER_GUN - db 29,TWISTER - db 40,AGILITY - db 51,HYDRO_PUMP + db 1, BUBBLE + db 1, SMOKESCREEN + db 1, LEER + db 1, WATER_GUN + db 8, SMOKESCREEN + db 15, LEER + db 22, WATER_GUN + db 29, TWISTER + db 40, AGILITY + db 51, HYDRO_PUMP db 0 ; no more level-up moves GoldeenEvosAttacks: - db EVOLVE_LEVEL,33,SEAKING + db EVOLVE_LEVEL, 33, SEAKING db 0 ; no more evolutions - db 1,PECK - db 1,TAIL_WHIP - db 10,SUPERSONIC - db 15,HORN_ATTACK - db 24,FLAIL - db 29,FURY_ATTACK - db 38,WATERFALL - db 43,HORN_DRILL - db 52,AGILITY + db 1, PECK + db 1, TAIL_WHIP + db 10, SUPERSONIC + db 15, HORN_ATTACK + db 24, FLAIL + db 29, FURY_ATTACK + db 38, WATERFALL + db 43, HORN_DRILL + db 52, AGILITY db 0 ; no more level-up moves SeakingEvosAttacks: db 0 ; no more evolutions - db 1,PECK - db 1,TAIL_WHIP - db 1,TAIL_WHIP - db 10,SUPERSONIC - db 15,HORN_ATTACK - db 24,FLAIL - db 29,FURY_ATTACK - db 41,WATERFALL - db 49,HORN_DRILL - db 61,AGILITY + db 1, PECK + db 1, TAIL_WHIP + db 1, TAIL_WHIP + db 10, SUPERSONIC + db 15, HORN_ATTACK + db 24, FLAIL + db 29, FURY_ATTACK + db 41, WATERFALL + db 49, HORN_DRILL + db 61, AGILITY db 0 ; no more level-up moves StaryuEvosAttacks: - db EVOLVE_ITEM,WATER_STONE,STARMIE + db EVOLVE_ITEM, WATER_STONE, STARMIE db 0 ; no more evolutions - db 1,TACKLE - db 1,HARDEN - db 7,WATER_GUN - db 13,RAPID_SPIN - db 19,RECOVER - db 25,SWIFT - db 31,BUBBLEBEAM - db 37,MINIMIZE - db 43,LIGHT_SCREEN - db 50,HYDRO_PUMP + db 1, TACKLE + db 1, HARDEN + db 7, WATER_GUN + db 13, RAPID_SPIN + db 19, RECOVER + db 25, SWIFT + db 31, BUBBLEBEAM + db 37, MINIMIZE + db 43, LIGHT_SCREEN + db 50, HYDRO_PUMP db 0 ; no more level-up moves StarmieEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,RAPID_SPIN - db 1,RECOVER - db 1,BUBBLEBEAM - db 37,CONFUSE_RAY + db 1, TACKLE + db 1, RAPID_SPIN + db 1, RECOVER + db 1, BUBBLEBEAM + db 37, CONFUSE_RAY db 0 ; no more level-up moves MrMimeEvosAttacks: db 0 ; no more evolutions - db 1,BARRIER - db 6,CONFUSION - db 11,SUBSTITUTE - db 16,MEDITATE - db 21,DOUBLESLAP - db 26,LIGHT_SCREEN - db 26,REFLECT - db 31,ENCORE - db 36,PSYBEAM - db 41,BATON_PASS - db 46,SAFEGUARD + db 1, BARRIER + db 6, CONFUSION + db 11, SUBSTITUTE + db 16, MEDITATE + db 21, DOUBLESLAP + db 26, LIGHT_SCREEN + db 26, REFLECT + db 31, ENCORE + db 36, PSYBEAM + db 41, BATON_PASS + db 46, SAFEGUARD db 0 ; no more level-up moves ScytherEvosAttacks: - db EVOLVE_TRADE,METAL_COAT,SCIZOR + db EVOLVE_TRADE, METAL_COAT, SCIZOR db 0 ; no more evolutions - db 1,QUICK_ATTACK - db 1,LEER - db 6,FOCUS_ENERGY - db 12,PURSUIT - db 18,FALSE_SWIPE - db 24,AGILITY - db 30,WING_ATTACK - db 36,SLASH - db 42,SWORDS_DANCE - db 48,DOUBLE_TEAM + db 1, QUICK_ATTACK + db 1, LEER + db 6, FOCUS_ENERGY + db 12, PURSUIT + db 18, FALSE_SWIPE + db 24, AGILITY + db 30, WING_ATTACK + db 36, SLASH + db 42, SWORDS_DANCE + db 48, DOUBLE_TEAM db 0 ; no more level-up moves JynxEvosAttacks: db 0 ; no more evolutions - db 1,POUND - db 1,LICK - db 1,LOVELY_KISS - db 1,POWDER_SNOW - db 9,LOVELY_KISS - db 13,POWDER_SNOW - db 21,DOUBLESLAP - db 25,ICE_PUNCH - db 35,MEAN_LOOK - db 41,BODY_SLAM - db 51,PERISH_SONG - db 57,BLIZZARD + db 1, POUND + db 1, LICK + db 1, LOVELY_KISS + db 1, POWDER_SNOW + db 9, LOVELY_KISS + db 13, POWDER_SNOW + db 21, DOUBLESLAP + db 25, ICE_PUNCH + db 35, MEAN_LOOK + db 41, BODY_SLAM + db 51, PERISH_SONG + db 57, BLIZZARD db 0 ; no more level-up moves ElectabuzzEvosAttacks: db 0 ; no more evolutions - db 1,QUICK_ATTACK - db 1,LEER - db 1,THUNDERPUNCH - db 9,THUNDERPUNCH - db 17,LIGHT_SCREEN - db 25,SWIFT - db 36,SCREECH - db 47,THUNDERBOLT - db 58,THUNDER + db 1, QUICK_ATTACK + db 1, LEER + db 1, THUNDERPUNCH + db 9, THUNDERPUNCH + db 17, LIGHT_SCREEN + db 25, SWIFT + db 36, SCREECH + db 47, THUNDERBOLT + db 58, THUNDER db 0 ; no more level-up moves MagmarEvosAttacks: db 0 ; no more evolutions - db 1,EMBER - db 1,LEER - db 1,SMOG - db 1,FIRE_PUNCH - db 7,LEER - db 13,SMOG - db 19,FIRE_PUNCH - db 25,SMOKESCREEN - db 33,SUNNY_DAY - db 41,FLAMETHROWER - db 49,CONFUSE_RAY - db 57,FIRE_BLAST + db 1, EMBER + db 1, LEER + db 1, SMOG + db 1, FIRE_PUNCH + db 7, LEER + db 13, SMOG + db 19, FIRE_PUNCH + db 25, SMOKESCREEN + db 33, SUNNY_DAY + db 41, FLAMETHROWER + db 49, CONFUSE_RAY + db 57, FIRE_BLAST db 0 ; no more level-up moves PinsirEvosAttacks: db 0 ; no more evolutions - db 1,VICEGRIP - db 7,FOCUS_ENERGY - db 13,BIND - db 19,SEISMIC_TOSS - db 25,HARDEN - db 31,GUILLOTINE - db 37,SUBMISSION - db 43,SWORDS_DANCE + db 1, VICEGRIP + db 7, FOCUS_ENERGY + db 13, BIND + db 19, SEISMIC_TOSS + db 25, HARDEN + db 31, GUILLOTINE + db 37, SUBMISSION + db 43, SWORDS_DANCE db 0 ; no more level-up moves TaurosEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 4,TAIL_WHIP - db 8,RAGE - db 13,HORN_ATTACK - db 19,SCARY_FACE - db 26,PURSUIT - db 34,REST - db 43,THRASH - db 53,TAKE_DOWN + db 1, TACKLE + db 4, TAIL_WHIP + db 8, RAGE + db 13, HORN_ATTACK + db 19, SCARY_FACE + db 26, PURSUIT + db 34, REST + db 43, THRASH + db 53, TAKE_DOWN db 0 ; no more level-up moves MagikarpEvosAttacks: - db EVOLVE_LEVEL,20,GYARADOS + db EVOLVE_LEVEL, 20, GYARADOS db 0 ; no more evolutions - db 1,SPLASH - db 15,TACKLE - db 30,FLAIL + db 1, SPLASH + db 15, TACKLE + db 30, FLAIL db 0 ; no more level-up moves GyaradosEvosAttacks: db 0 ; no more evolutions - db 1,THRASH - db 20,BITE - db 25,DRAGON_RAGE - db 30,LEER - db 35,TWISTER - db 40,HYDRO_PUMP - db 45,RAIN_DANCE - db 50,HYPER_BEAM + db 1, THRASH + db 20, BITE + db 25, DRAGON_RAGE + db 30, LEER + db 35, TWISTER + db 40, HYDRO_PUMP + db 45, RAIN_DANCE + db 50, HYPER_BEAM db 0 ; no more level-up moves LaprasEvosAttacks: db 0 ; no more evolutions - db 1,WATER_GUN - db 1,GROWL - db 1,SING - db 8,MIST - db 15,BODY_SLAM - db 22,CONFUSE_RAY - db 29,PERISH_SONG - db 36,ICE_BEAM - db 43,RAIN_DANCE - db 50,SAFEGUARD - db 57,HYDRO_PUMP + db 1, WATER_GUN + db 1, GROWL + db 1, SING + db 8, MIST + db 15, BODY_SLAM + db 22, CONFUSE_RAY + db 29, PERISH_SONG + db 36, ICE_BEAM + db 43, RAIN_DANCE + db 50, SAFEGUARD + db 57, HYDRO_PUMP db 0 ; no more level-up moves DittoEvosAttacks: db 0 ; no more evolutions - db 1,TRANSFORM + db 1, TRANSFORM db 0 ; no more level-up moves EeveeEvosAttacks: - db EVOLVE_ITEM,THUNDERSTONE,JOLTEON - db EVOLVE_ITEM,WATER_STONE,VAPOREON - db EVOLVE_ITEM,FIRE_STONE,FLAREON - db EVOLVE_HAPPINESS,TR_MORNDAY,ESPEON - db EVOLVE_HAPPINESS,TR_NITE,UMBREON - db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 8,SAND_ATTACK - db 16,GROWL - db 23,QUICK_ATTACK - db 30,BITE + db EVOLVE_ITEM, THUNDERSTONE, JOLTEON + db EVOLVE_ITEM, WATER_STONE, VAPOREON + db EVOLVE_ITEM, FIRE_STONE, FLAREON + db EVOLVE_HAPPINESS, TR_MORNDAY, ESPEON + db EVOLVE_HAPPINESS, TR_NITE, UMBREON + db 0 ; no more evolutions + db 1, TACKLE + db 1, TAIL_WHIP + db 8, SAND_ATTACK + db 16, GROWL + db 23, QUICK_ATTACK + db 30, BITE if _CRYSTAL - db 36,BATON_PASS + db 36, BATON_PASS else - db 36,FOCUS_ENERGY + db 36, FOCUS_ENERGY endc - db 42,TAKE_DOWN + db 42, TAKE_DOWN db 0 ; no more level-up moves VaporeonEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 8,SAND_ATTACK - db 16,WATER_GUN - db 23,QUICK_ATTACK - db 30,BITE - db 36,AURORA_BEAM - db 42,HAZE - db 47,ACID_ARMOR - db 52,HYDRO_PUMP + db 1, TACKLE + db 1, TAIL_WHIP + db 8, SAND_ATTACK + db 16, WATER_GUN + db 23, QUICK_ATTACK + db 30, BITE + db 36, AURORA_BEAM + db 42, HAZE + db 47, ACID_ARMOR + db 52, HYDRO_PUMP db 0 ; no more level-up moves JolteonEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 8,SAND_ATTACK - db 16,THUNDERSHOCK - db 23,QUICK_ATTACK - db 30,DOUBLE_KICK - db 36,PIN_MISSILE - db 42,THUNDER_WAVE - db 47,AGILITY - db 52,THUNDER + db 1, TACKLE + db 1, TAIL_WHIP + db 8, SAND_ATTACK + db 16, THUNDERSHOCK + db 23, QUICK_ATTACK + db 30, DOUBLE_KICK + db 36, PIN_MISSILE + db 42, THUNDER_WAVE + db 47, AGILITY + db 52, THUNDER db 0 ; no more level-up moves FlareonEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 8,SAND_ATTACK - db 16,EMBER - db 23,QUICK_ATTACK - db 30,BITE - db 36,FIRE_SPIN - db 42,SMOG - db 47,LEER - db 52,FLAMETHROWER + db 1, TACKLE + db 1, TAIL_WHIP + db 8, SAND_ATTACK + db 16, EMBER + db 23, QUICK_ATTACK + db 30, BITE + db 36, FIRE_SPIN + db 42, SMOG + db 47, LEER + db 52, FLAMETHROWER db 0 ; no more level-up moves PorygonEvosAttacks: - db EVOLVE_TRADE,UP_GRADE,PORYGON2 + db EVOLVE_TRADE, UP_GRADE, PORYGON2 db 0 ; no more evolutions - db 1,CONVERSION2 - db 1,TACKLE - db 1,CONVERSION - db 9,AGILITY - db 12,PSYBEAM - db 20,RECOVER - db 24,SHARPEN - db 32,LOCK_ON - db 36,TRI_ATTACK - db 44,ZAP_CANNON + db 1, CONVERSION2 + db 1, TACKLE + db 1, CONVERSION + db 9, AGILITY + db 12, PSYBEAM + db 20, RECOVER + db 24, SHARPEN + db 32, LOCK_ON + db 36, TRI_ATTACK + db 44, ZAP_CANNON db 0 ; no more level-up moves OmanyteEvosAttacks: - db EVOLVE_LEVEL,40,OMASTAR + db EVOLVE_LEVEL, 40, OMASTAR db 0 ; no more evolutions - db 1,CONSTRICT - db 1,WITHDRAW - db 13,BITE - db 19,WATER_GUN - db 31,LEER - db 37,PROTECT - db 49,ANCIENTPOWER - db 55,HYDRO_PUMP + db 1, CONSTRICT + db 1, WITHDRAW + db 13, BITE + db 19, WATER_GUN + db 31, LEER + db 37, PROTECT + db 49, ANCIENTPOWER + db 55, HYDRO_PUMP db 0 ; no more level-up moves OmastarEvosAttacks: db 0 ; no more evolutions - db 1,CONSTRICT - db 1,WITHDRAW - db 1,BITE - db 13,BITE - db 19,WATER_GUN - db 31,LEER - db 37,PROTECT - db 40,SPIKE_CANNON - db 54,ANCIENTPOWER - db 65,HYDRO_PUMP + db 1, CONSTRICT + db 1, WITHDRAW + db 1, BITE + db 13, BITE + db 19, WATER_GUN + db 31, LEER + db 37, PROTECT + db 40, SPIKE_CANNON + db 54, ANCIENTPOWER + db 65, HYDRO_PUMP db 0 ; no more level-up moves KabutoEvosAttacks: - db EVOLVE_LEVEL,40,KABUTOPS + db EVOLVE_LEVEL, 40, KABUTOPS db 0 ; no more evolutions - db 1,SCRATCH - db 1,HARDEN - db 10,ABSORB - db 19,LEER - db 28,SAND_ATTACK - db 37,ENDURE - db 46,MEGA_DRAIN - db 55,ANCIENTPOWER + db 1, SCRATCH + db 1, HARDEN + db 10, ABSORB + db 19, LEER + db 28, SAND_ATTACK + db 37, ENDURE + db 46, MEGA_DRAIN + db 55, ANCIENTPOWER db 0 ; no more level-up moves KabutopsEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,HARDEN - db 1,ABSORB - db 10,ABSORB - db 19,LEER - db 28,SAND_ATTACK - db 37,ENDURE - db 40,SLASH - db 51,MEGA_DRAIN - db 65,ANCIENTPOWER + db 1, SCRATCH + db 1, HARDEN + db 1, ABSORB + db 10, ABSORB + db 19, LEER + db 28, SAND_ATTACK + db 37, ENDURE + db 40, SLASH + db 51, MEGA_DRAIN + db 65, ANCIENTPOWER db 0 ; no more level-up moves AerodactylEvosAttacks: db 0 ; no more evolutions - db 1,WING_ATTACK - db 8,AGILITY - db 15,BITE - db 22,SUPERSONIC - db 29,ANCIENTPOWER - db 36,SCARY_FACE - db 43,TAKE_DOWN - db 50,HYPER_BEAM + db 1, WING_ATTACK + db 8, AGILITY + db 15, BITE + db 22, SUPERSONIC + db 29, ANCIENTPOWER + db 36, SCARY_FACE + db 43, TAKE_DOWN + db 50, HYPER_BEAM db 0 ; no more level-up moves SnorlaxEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 8,AMNESIA - db 15,DEFENSE_CURL - db 22,BELLY_DRUM - db 29,HEADBUTT - db 36,SNORE - db 36,REST - db 43,BODY_SLAM - db 50,ROLLOUT - db 57,HYPER_BEAM + db 1, TACKLE + db 8, AMNESIA + db 15, DEFENSE_CURL + db 22, BELLY_DRUM + db 29, HEADBUTT + db 36, SNORE + db 36, REST + db 43, BODY_SLAM + db 50, ROLLOUT + db 57, HYPER_BEAM db 0 ; no more level-up moves ArticunoEvosAttacks: db 0 ; no more evolutions - db 1,GUST - db 1,POWDER_SNOW - db 13,MIST - db 25,AGILITY - db 37,MIND_READER - db 49,ICE_BEAM - db 61,REFLECT - db 73,BLIZZARD + db 1, GUST + db 1, POWDER_SNOW + db 13, MIST + db 25, AGILITY + db 37, MIND_READER + db 49, ICE_BEAM + db 61, REFLECT + db 73, BLIZZARD db 0 ; no more level-up moves ZapdosEvosAttacks: db 0 ; no more evolutions - db 1,PECK - db 1,THUNDERSHOCK - db 13,THUNDER_WAVE - db 25,AGILITY - db 37,DETECT - db 49,DRILL_PECK - db 61,LIGHT_SCREEN - db 73,THUNDER + db 1, PECK + db 1, THUNDERSHOCK + db 13, THUNDER_WAVE + db 25, AGILITY + db 37, DETECT + db 49, DRILL_PECK + db 61, LIGHT_SCREEN + db 73, THUNDER db 0 ; no more level-up moves MoltresEvosAttacks: db 0 ; no more evolutions - db 1,WING_ATTACK - db 1,EMBER - db 13,FIRE_SPIN - db 25,AGILITY - db 37,ENDURE - db 49,FLAMETHROWER - db 61,SAFEGUARD - db 73,SKY_ATTACK + db 1, WING_ATTACK + db 1, EMBER + db 13, FIRE_SPIN + db 25, AGILITY + db 37, ENDURE + db 49, FLAMETHROWER + db 61, SAFEGUARD + db 73, SKY_ATTACK db 0 ; no more level-up moves DratiniEvosAttacks: - db EVOLVE_LEVEL,30,DRAGONAIR + db EVOLVE_LEVEL, 30, DRAGONAIR db 0 ; no more evolutions - db 1,WRAP - db 1,LEER - db 8,THUNDER_WAVE - db 15,TWISTER - db 22,DRAGON_RAGE - db 29,SLAM - db 36,AGILITY - db 43,SAFEGUARD - db 50,OUTRAGE - db 57,HYPER_BEAM + db 1, WRAP + db 1, LEER + db 8, THUNDER_WAVE + db 15, TWISTER + db 22, DRAGON_RAGE + db 29, SLAM + db 36, AGILITY + db 43, SAFEGUARD + db 50, OUTRAGE + db 57, HYPER_BEAM db 0 ; no more level-up moves DragonairEvosAttacks: - db EVOLVE_LEVEL,55,DRAGONITE - db 0 ; no more evolutions - db 1,WRAP - db 1,LEER - db 1,THUNDER_WAVE - db 1,TWISTER - db 8,THUNDER_WAVE - db 15,TWISTER - db 22,DRAGON_RAGE - db 29,SLAM - db 38,AGILITY - db 47,SAFEGUARD - db 56,OUTRAGE - db 65,HYPER_BEAM + db EVOLVE_LEVEL, 55, DRAGONITE + db 0 ; no more evolutions + db 1, WRAP + db 1, LEER + db 1, THUNDER_WAVE + db 1, TWISTER + db 8, THUNDER_WAVE + db 15, TWISTER + db 22, DRAGON_RAGE + db 29, SLAM + db 38, AGILITY + db 47, SAFEGUARD + db 56, OUTRAGE + db 65, HYPER_BEAM db 0 ; no more level-up moves DragoniteEvosAttacks: db 0 ; no more evolutions - db 1,WRAP - db 1,LEER - db 1,THUNDER_WAVE - db 1,TWISTER - db 8,THUNDER_WAVE - db 15,TWISTER - db 22,DRAGON_RAGE - db 29,SLAM - db 38,AGILITY - db 47,SAFEGUARD - db 55,WING_ATTACK - db 61,OUTRAGE - db 75,HYPER_BEAM + db 1, WRAP + db 1, LEER + db 1, THUNDER_WAVE + db 1, TWISTER + db 8, THUNDER_WAVE + db 15, TWISTER + db 22, DRAGON_RAGE + db 29, SLAM + db 38, AGILITY + db 47, SAFEGUARD + db 55, WING_ATTACK + db 61, OUTRAGE + db 75, HYPER_BEAM db 0 ; no more level-up moves MewtwoEvosAttacks: db 0 ; no more evolutions - db 1,CONFUSION - db 1,DISABLE - db 11,BARRIER - db 22,SWIFT - db 33,PSYCH_UP - db 44,FUTURE_SIGHT - db 55,MIST - db 66,PSYCHIC_M - db 77,AMNESIA - db 88,RECOVER - db 99,SAFEGUARD + db 1, CONFUSION + db 1, DISABLE + db 11, BARRIER + db 22, SWIFT + db 33, PSYCH_UP + db 44, FUTURE_SIGHT + db 55, MIST + db 66, PSYCHIC_M + db 77, AMNESIA + db 88, RECOVER + db 99, SAFEGUARD db 0 ; no more level-up moves MewEvosAttacks: db 0 ; no more evolutions - db 1,POUND - db 10,TRANSFORM - db 20,MEGA_PUNCH - db 30,METRONOME - db 40,PSYCHIC_M - db 50,ANCIENTPOWER + db 1, POUND + db 10, TRANSFORM + db 20, MEGA_PUNCH + db 30, METRONOME + db 40, PSYCHIC_M + db 50, ANCIENTPOWER db 0 ; no more level-up moves ChikoritaEvosAttacks: - db EVOLVE_LEVEL,16,BAYLEEF + db EVOLVE_LEVEL, 16, BAYLEEF db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 8,RAZOR_LEAF - db 12,REFLECT - db 15,POISONPOWDER - db 22,SYNTHESIS - db 29,BODY_SLAM - db 36,LIGHT_SCREEN - db 43,SAFEGUARD - db 50,SOLARBEAM + db 1, TACKLE + db 1, GROWL + db 8, RAZOR_LEAF + db 12, REFLECT + db 15, POISONPOWDER + db 22, SYNTHESIS + db 29, BODY_SLAM + db 36, LIGHT_SCREEN + db 43, SAFEGUARD + db 50, SOLARBEAM db 0 ; no more level-up moves BayleefEvosAttacks: - db EVOLVE_LEVEL,32,MEGANIUM - db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,RAZOR_LEAF - db 1,REFLECT - db 8,RAZOR_LEAF - db 12,REFLECT - db 15,POISONPOWDER - db 23,SYNTHESIS - db 31,BODY_SLAM - db 39,LIGHT_SCREEN - db 47,SAFEGUARD - db 55,SOLARBEAM + db EVOLVE_LEVEL, 32, MEGANIUM + db 0 ; no more evolutions + db 1, TACKLE + db 1, GROWL + db 1, RAZOR_LEAF + db 1, REFLECT + db 8, RAZOR_LEAF + db 12, REFLECT + db 15, POISONPOWDER + db 23, SYNTHESIS + db 31, BODY_SLAM + db 39, LIGHT_SCREEN + db 47, SAFEGUARD + db 55, SOLARBEAM db 0 ; no more level-up moves MeganiumEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,RAZOR_LEAF - db 1,REFLECT - db 8,RAZOR_LEAF - db 12,REFLECT - db 15,POISONPOWDER - db 23,SYNTHESIS - db 31,BODY_SLAM - db 41,LIGHT_SCREEN - db 51,SAFEGUARD - db 61,SOLARBEAM + db 1, TACKLE + db 1, GROWL + db 1, RAZOR_LEAF + db 1, REFLECT + db 8, RAZOR_LEAF + db 12, REFLECT + db 15, POISONPOWDER + db 23, SYNTHESIS + db 31, BODY_SLAM + db 41, LIGHT_SCREEN + db 51, SAFEGUARD + db 61, SOLARBEAM db 0 ; no more level-up moves CyndaquilEvosAttacks: - db EVOLVE_LEVEL,14,QUILAVA + db EVOLVE_LEVEL, 14, QUILAVA db 0 ; no more evolutions - db 1,TACKLE - db 1,LEER - db 6,SMOKESCREEN - db 12,EMBER - db 19,QUICK_ATTACK - db 27,FLAME_WHEEL - db 36,SWIFT - db 46,FLAMETHROWER + db 1, TACKLE + db 1, LEER + db 6, SMOKESCREEN + db 12, EMBER + db 19, QUICK_ATTACK + db 27, FLAME_WHEEL + db 36, SWIFT + db 46, FLAMETHROWER db 0 ; no more level-up moves QuilavaEvosAttacks: - db EVOLVE_LEVEL,36,TYPHLOSION + db EVOLVE_LEVEL, 36, TYPHLOSION db 0 ; no more evolutions - db 1,TACKLE - db 1,LEER - db 1,SMOKESCREEN - db 6,SMOKESCREEN - db 12,EMBER - db 21,QUICK_ATTACK - db 31,FLAME_WHEEL - db 42,SWIFT - db 54,FLAMETHROWER + db 1, TACKLE + db 1, LEER + db 1, SMOKESCREEN + db 6, SMOKESCREEN + db 12, EMBER + db 21, QUICK_ATTACK + db 31, FLAME_WHEEL + db 42, SWIFT + db 54, FLAMETHROWER db 0 ; no more level-up moves TyphlosionEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,LEER - db 1,SMOKESCREEN - db 1,EMBER - db 6,SMOKESCREEN - db 12,EMBER - db 21,QUICK_ATTACK - db 31,FLAME_WHEEL - db 45,SWIFT - db 60,FLAMETHROWER + db 1, TACKLE + db 1, LEER + db 1, SMOKESCREEN + db 1, EMBER + db 6, SMOKESCREEN + db 12, EMBER + db 21, QUICK_ATTACK + db 31, FLAME_WHEEL + db 45, SWIFT + db 60, FLAMETHROWER db 0 ; no more level-up moves TotodileEvosAttacks: - db EVOLVE_LEVEL,18,CROCONAW + db EVOLVE_LEVEL, 18, CROCONAW db 0 ; no more evolutions - db 1,SCRATCH - db 1,LEER - db 7,RAGE - db 13,WATER_GUN - db 20,BITE - db 27,SCARY_FACE - db 35,SLASH - db 43,SCREECH - db 52,HYDRO_PUMP + db 1, SCRATCH + db 1, LEER + db 7, RAGE + db 13, WATER_GUN + db 20, BITE + db 27, SCARY_FACE + db 35, SLASH + db 43, SCREECH + db 52, HYDRO_PUMP db 0 ; no more level-up moves CroconawEvosAttacks: - db EVOLVE_LEVEL,30,FERALIGATR + db EVOLVE_LEVEL, 30, FERALIGATR db 0 ; no more evolutions - db 1,SCRATCH - db 1,LEER - db 1,RAGE - db 7,RAGE - db 13,WATER_GUN - db 21,BITE - db 28,SCARY_FACE - db 37,SLASH - db 45,SCREECH - db 55,HYDRO_PUMP + db 1, SCRATCH + db 1, LEER + db 1, RAGE + db 7, RAGE + db 13, WATER_GUN + db 21, BITE + db 28, SCARY_FACE + db 37, SLASH + db 45, SCREECH + db 55, HYDRO_PUMP db 0 ; no more level-up moves FeraligatrEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,LEER - db 1,RAGE - db 1,WATER_GUN - db 7,RAGE - db 13,WATER_GUN - db 21,BITE - db 28,SCARY_FACE - db 38,SLASH - db 47,SCREECH - db 58,HYDRO_PUMP + db 1, SCRATCH + db 1, LEER + db 1, RAGE + db 1, WATER_GUN + db 7, RAGE + db 13, WATER_GUN + db 21, BITE + db 28, SCARY_FACE + db 38, SLASH + db 47, SCREECH + db 58, HYDRO_PUMP db 0 ; no more level-up moves SentretEvosAttacks: - db EVOLVE_LEVEL,15,FURRET + db EVOLVE_LEVEL, 15, FURRET db 0 ; no more evolutions - db 1,TACKLE - db 5,DEFENSE_CURL - db 11,QUICK_ATTACK - db 17,FURY_SWIPES - db 25,SLAM - db 33,REST - db 41,AMNESIA + db 1, TACKLE + db 5, DEFENSE_CURL + db 11, QUICK_ATTACK + db 17, FURY_SWIPES + db 25, SLAM + db 33, REST + db 41, AMNESIA db 0 ; no more level-up moves FurretEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,DEFENSE_CURL - db 1,QUICK_ATTACK - db 5,DEFENSE_CURL - db 11,QUICK_ATTACK - db 18,FURY_SWIPES - db 28,SLAM - db 38,REST - db 48,AMNESIA + db 1, SCRATCH + db 1, DEFENSE_CURL + db 1, QUICK_ATTACK + db 5, DEFENSE_CURL + db 11, QUICK_ATTACK + db 18, FURY_SWIPES + db 28, SLAM + db 38, REST + db 48, AMNESIA db 0 ; no more level-up moves HoothootEvosAttacks: - db EVOLVE_LEVEL,20,NOCTOWL + db EVOLVE_LEVEL, 20, NOCTOWL db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 6,FORESIGHT - db 11,PECK - db 16,HYPNOSIS - db 22,REFLECT - db 28,TAKE_DOWN - db 34,CONFUSION - db 48,DREAM_EATER + db 1, TACKLE + db 1, GROWL + db 6, FORESIGHT + db 11, PECK + db 16, HYPNOSIS + db 22, REFLECT + db 28, TAKE_DOWN + db 34, CONFUSION + db 48, DREAM_EATER db 0 ; no more level-up moves NoctowlEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,FORESIGHT - db 1,PECK - db 6,FORESIGHT - db 11,PECK - db 16,HYPNOSIS - db 25,REFLECT - db 33,TAKE_DOWN - db 41,CONFUSION - db 57,DREAM_EATER + db 1, TACKLE + db 1, GROWL + db 1, FORESIGHT + db 1, PECK + db 6, FORESIGHT + db 11, PECK + db 16, HYPNOSIS + db 25, REFLECT + db 33, TAKE_DOWN + db 41, CONFUSION + db 57, DREAM_EATER db 0 ; no more level-up moves LedybaEvosAttacks: - db EVOLVE_LEVEL,18,LEDIAN + db EVOLVE_LEVEL, 18, LEDIAN db 0 ; no more evolutions - db 1,TACKLE - db 8,SUPERSONIC - db 15,COMET_PUNCH - db 22,LIGHT_SCREEN - db 22,REFLECT - db 22,SAFEGUARD - db 29,BATON_PASS - db 36,SWIFT - db 43,AGILITY - db 50,DOUBLE_EDGE + db 1, TACKLE + db 8, SUPERSONIC + db 15, COMET_PUNCH + db 22, LIGHT_SCREEN + db 22, REFLECT + db 22, SAFEGUARD + db 29, BATON_PASS + db 36, SWIFT + db 43, AGILITY + db 50, DOUBLE_EDGE db 0 ; no more level-up moves LedianEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,SUPERSONIC - db 8,SUPERSONIC - db 15,COMET_PUNCH - db 24,LIGHT_SCREEN - db 24,REFLECT - db 24,SAFEGUARD - db 33,BATON_PASS - db 42,SWIFT - db 51,AGILITY - db 60,DOUBLE_EDGE + db 1, TACKLE + db 1, SUPERSONIC + db 8, SUPERSONIC + db 15, COMET_PUNCH + db 24, LIGHT_SCREEN + db 24, REFLECT + db 24, SAFEGUARD + db 33, BATON_PASS + db 42, SWIFT + db 51, AGILITY + db 60, DOUBLE_EDGE db 0 ; no more level-up moves SpinarakEvosAttacks: - db EVOLVE_LEVEL,22,ARIADOS - db 0 ; no more evolutions - db 1,POISON_STING - db 1,STRING_SHOT - db 6,SCARY_FACE - db 11,CONSTRICT - db 17,NIGHT_SHADE - db 23,LEECH_LIFE - db 30,FURY_SWIPES - db 37,SPIDER_WEB + db EVOLVE_LEVEL, 22, ARIADOS + db 0 ; no more evolutions + db 1, POISON_STING + db 1, STRING_SHOT + db 6, SCARY_FACE + db 11, CONSTRICT + db 17, NIGHT_SHADE + db 23, LEECH_LIFE + db 30, FURY_SWIPES + db 37, SPIDER_WEB if _CRYSTAL - db 45,AGILITY + db 45, AGILITY else - db 45,SCREECH + db 45, SCREECH endc - db 53,PSYCHIC_M + db 53, PSYCHIC_M db 0 ; no more level-up moves AriadosEvosAttacks: db 0 ; no more evolutions - db 1,POISON_STING - db 1,STRING_SHOT - db 1,SCARY_FACE - db 1,CONSTRICT - db 6,SCARY_FACE - db 11,CONSTRICT - db 17,NIGHT_SHADE - db 25,LEECH_LIFE - db 34,FURY_SWIPES - db 43,SPIDER_WEB + db 1, POISON_STING + db 1, STRING_SHOT + db 1, SCARY_FACE + db 1, CONSTRICT + db 6, SCARY_FACE + db 11, CONSTRICT + db 17, NIGHT_SHADE + db 25, LEECH_LIFE + db 34, FURY_SWIPES + db 43, SPIDER_WEB if _CRYSTAL - db 53,AGILITY + db 53, AGILITY else - db 53,SCREECH + db 53, SCREECH endc - db 63,PSYCHIC_M + db 63, PSYCHIC_M db 0 ; no more level-up moves CrobatEvosAttacks: db 0 ; no more evolutions - db 1,SCREECH - db 1,LEECH_LIFE - db 1,SUPERSONIC - db 6,SUPERSONIC - db 12,BITE - db 19,CONFUSE_RAY - db 30,WING_ATTACK - db 42,MEAN_LOOK - db 55,HAZE + db 1, SCREECH + db 1, LEECH_LIFE + db 1, SUPERSONIC + db 6, SUPERSONIC + db 12, BITE + db 19, CONFUSE_RAY + db 30, WING_ATTACK + db 42, MEAN_LOOK + db 55, HAZE db 0 ; no more level-up moves ChinchouEvosAttacks: - db EVOLVE_LEVEL,27,LANTURN + db EVOLVE_LEVEL, 27, LANTURN db 0 ; no more evolutions - db 1,BUBBLE - db 1,THUNDER_WAVE - db 5,SUPERSONIC - db 13,FLAIL - db 17,WATER_GUN - db 25,SPARK - db 29,CONFUSE_RAY - db 37,TAKE_DOWN - db 41,HYDRO_PUMP + db 1, BUBBLE + db 1, THUNDER_WAVE + db 5, SUPERSONIC + db 13, FLAIL + db 17, WATER_GUN + db 25, SPARK + db 29, CONFUSE_RAY + db 37, TAKE_DOWN + db 41, HYDRO_PUMP db 0 ; no more level-up moves LanturnEvosAttacks: db 0 ; no more evolutions - db 1,BUBBLE - db 1,THUNDER_WAVE - db 1,SUPERSONIC - db 5,SUPERSONIC - db 13,FLAIL - db 17,WATER_GUN - db 25,SPARK - db 33,CONFUSE_RAY - db 45,TAKE_DOWN - db 53,HYDRO_PUMP + db 1, BUBBLE + db 1, THUNDER_WAVE + db 1, SUPERSONIC + db 5, SUPERSONIC + db 13, FLAIL + db 17, WATER_GUN + db 25, SPARK + db 33, CONFUSE_RAY + db 45, TAKE_DOWN + db 53, HYDRO_PUMP db 0 ; no more level-up moves PichuEvosAttacks: - db EVOLVE_HAPPINESS,TR_ANYTIME,PIKACHU + db EVOLVE_HAPPINESS, TR_ANYTIME, PIKACHU db 0 ; no more evolutions - db 1,THUNDERSHOCK - db 1,CHARM - db 6,TAIL_WHIP - db 8,THUNDER_WAVE - db 11,SWEET_KISS + db 1, THUNDERSHOCK + db 1, CHARM + db 6, TAIL_WHIP + db 8, THUNDER_WAVE + db 11, SWEET_KISS db 0 ; no more level-up moves CleffaEvosAttacks: - db EVOLVE_HAPPINESS,TR_ANYTIME,CLEFAIRY + db EVOLVE_HAPPINESS, TR_ANYTIME, CLEFAIRY db 0 ; no more evolutions - db 1,POUND - db 1,CHARM - db 4,ENCORE - db 8,SING - db 13,SWEET_KISS + db 1, POUND + db 1, CHARM + db 4, ENCORE + db 8, SING + db 13, SWEET_KISS db 0 ; no more level-up moves IgglybuffEvosAttacks: - db EVOLVE_HAPPINESS,TR_ANYTIME,JIGGLYPUFF + db EVOLVE_HAPPINESS, TR_ANYTIME, JIGGLYPUFF db 0 ; no more evolutions - db 1,SING - db 1,CHARM - db 4,DEFENSE_CURL - db 9,POUND - db 14,SWEET_KISS + db 1, SING + db 1, CHARM + db 4, DEFENSE_CURL + db 9, POUND + db 14, SWEET_KISS db 0 ; no more level-up moves TogepiEvosAttacks: - db EVOLVE_HAPPINESS,TR_ANYTIME,TOGETIC + db EVOLVE_HAPPINESS, TR_ANYTIME, TOGETIC db 0 ; no more evolutions - db 1,GROWL - db 1,CHARM - db 7,METRONOME - db 18,SWEET_KISS - db 25,ENCORE - db 31,SAFEGUARD - db 38,DOUBLE_EDGE + db 1, GROWL + db 1, CHARM + db 7, METRONOME + db 18, SWEET_KISS + db 25, ENCORE + db 31, SAFEGUARD + db 38, DOUBLE_EDGE db 0 ; no more level-up moves TogeticEvosAttacks: db 0 ; no more evolutions - db 1,GROWL - db 1,CHARM - db 7,METRONOME - db 18,SWEET_KISS - db 25,ENCORE - db 31,SAFEGUARD - db 38,DOUBLE_EDGE + db 1, GROWL + db 1, CHARM + db 7, METRONOME + db 18, SWEET_KISS + db 25, ENCORE + db 31, SAFEGUARD + db 38, DOUBLE_EDGE db 0 ; no more level-up moves NatuEvosAttacks: - db EVOLVE_LEVEL,25,XATU + db EVOLVE_LEVEL, 25, XATU db 0 ; no more evolutions - db 1,PECK - db 1,LEER - db 10,NIGHT_SHADE - db 20,TELEPORT - db 30,FUTURE_SIGHT - db 40,CONFUSE_RAY - db 50,PSYCHIC_M + db 1, PECK + db 1, LEER + db 10, NIGHT_SHADE + db 20, TELEPORT + db 30, FUTURE_SIGHT + db 40, CONFUSE_RAY + db 50, PSYCHIC_M db 0 ; no more level-up moves XatuEvosAttacks: db 0 ; no more evolutions - db 1,PECK - db 1,LEER - db 1,NIGHT_SHADE - db 10,NIGHT_SHADE - db 20,TELEPORT - db 35,FUTURE_SIGHT - db 50,CONFUSE_RAY - db 65,PSYCHIC_M + db 1, PECK + db 1, LEER + db 1, NIGHT_SHADE + db 10, NIGHT_SHADE + db 20, TELEPORT + db 35, FUTURE_SIGHT + db 50, CONFUSE_RAY + db 65, PSYCHIC_M db 0 ; no more level-up moves MareepEvosAttacks: - db EVOLVE_LEVEL,15,FLAAFFY + db EVOLVE_LEVEL, 15, FLAAFFY db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 9,THUNDERSHOCK - db 16,THUNDER_WAVE - db 23,COTTON_SPORE - db 30,LIGHT_SCREEN - db 37,THUNDER + db 1, TACKLE + db 1, GROWL + db 9, THUNDERSHOCK + db 16, THUNDER_WAVE + db 23, COTTON_SPORE + db 30, LIGHT_SCREEN + db 37, THUNDER db 0 ; no more level-up moves FlaaffyEvosAttacks: - db EVOLVE_LEVEL,30,AMPHAROS + db EVOLVE_LEVEL, 30, AMPHAROS db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,THUNDERSHOCK - db 9,THUNDERSHOCK - db 18,THUNDER_WAVE - db 27,COTTON_SPORE - db 36,LIGHT_SCREEN - db 45,THUNDER + db 1, TACKLE + db 1, GROWL + db 1, THUNDERSHOCK + db 9, THUNDERSHOCK + db 18, THUNDER_WAVE + db 27, COTTON_SPORE + db 36, LIGHT_SCREEN + db 45, THUNDER db 0 ; no more level-up moves AmpharosEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,THUNDERSHOCK - db 1,THUNDER_WAVE - db 9,THUNDERSHOCK - db 18,THUNDER_WAVE - db 27,COTTON_SPORE - db 30,THUNDERPUNCH - db 42,LIGHT_SCREEN - db 57,THUNDER + db 1, TACKLE + db 1, GROWL + db 1, THUNDERSHOCK + db 1, THUNDER_WAVE + db 9, THUNDERSHOCK + db 18, THUNDER_WAVE + db 27, COTTON_SPORE + db 30, THUNDERPUNCH + db 42, LIGHT_SCREEN + db 57, THUNDER db 0 ; no more level-up moves BellossomEvosAttacks: db 0 ; no more evolutions - db 1,ABSORB - db 1,SWEET_SCENT - db 1,STUN_SPORE - db 1,PETAL_DANCE - db 55,SOLARBEAM + db 1, ABSORB + db 1, SWEET_SCENT + db 1, STUN_SPORE + db 1, PETAL_DANCE + db 55, SOLARBEAM db 0 ; no more level-up moves MarillEvosAttacks: - db EVOLVE_LEVEL,18,AZUMARILL + db EVOLVE_LEVEL, 18, AZUMARILL db 0 ; no more evolutions - db 1,TACKLE - db 3,DEFENSE_CURL - db 6,TAIL_WHIP - db 10,WATER_GUN - db 15,ROLLOUT - db 21,BUBBLEBEAM - db 28,DOUBLE_EDGE - db 36,RAIN_DANCE + db 1, TACKLE + db 3, DEFENSE_CURL + db 6, TAIL_WHIP + db 10, WATER_GUN + db 15, ROLLOUT + db 21, BUBBLEBEAM + db 28, DOUBLE_EDGE + db 36, RAIN_DANCE db 0 ; no more level-up moves AzumarillEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,DEFENSE_CURL - db 1,TAIL_WHIP - db 1,WATER_GUN - db 3,DEFENSE_CURL - db 6,TAIL_WHIP - db 10,WATER_GUN - db 15,ROLLOUT - db 25,BUBBLEBEAM - db 36,DOUBLE_EDGE - db 48,RAIN_DANCE + db 1, TACKLE + db 1, DEFENSE_CURL + db 1, TAIL_WHIP + db 1, WATER_GUN + db 3, DEFENSE_CURL + db 6, TAIL_WHIP + db 10, WATER_GUN + db 15, ROLLOUT + db 25, BUBBLEBEAM + db 36, DOUBLE_EDGE + db 48, RAIN_DANCE db 0 ; no more level-up moves SudowoodoEvosAttacks: db 0 ; no more evolutions - db 1,ROCK_THROW - db 1,MIMIC - db 10,FLAIL - db 19,LOW_KICK - db 28,ROCK_SLIDE - db 37,FAINT_ATTACK - db 46,SLAM + db 1, ROCK_THROW + db 1, MIMIC + db 10, FLAIL + db 19, LOW_KICK + db 28, ROCK_SLIDE + db 37, FAINT_ATTACK + db 46, SLAM db 0 ; no more level-up moves PolitoedEvosAttacks: db 0 ; no more evolutions - db 1,WATER_GUN - db 1,HYPNOSIS - db 1,DOUBLESLAP - db 1,PERISH_SONG - db 35,PERISH_SONG - db 51,SWAGGER + db 1, WATER_GUN + db 1, HYPNOSIS + db 1, DOUBLESLAP + db 1, PERISH_SONG + db 35, PERISH_SONG + db 51, SWAGGER db 0 ; no more level-up moves HoppipEvosAttacks: - db EVOLVE_LEVEL,18,SKIPLOOM + db EVOLVE_LEVEL, 18, SKIPLOOM db 0 ; no more evolutions - db 1,SPLASH + db 1, SPLASH if _CRYSTAL - db 5,SYNTHESIS + db 5, SYNTHESIS else - db 1,SYNTHESIS + db 1, SYNTHESIS endc - db 5,TAIL_WHIP - db 10,TACKLE - db 13,POISONPOWDER - db 15,STUN_SPORE - db 17,SLEEP_POWDER - db 20,LEECH_SEED - db 25,COTTON_SPORE - db 30,MEGA_DRAIN + db 5, TAIL_WHIP + db 10, TACKLE + db 13, POISONPOWDER + db 15, STUN_SPORE + db 17, SLEEP_POWDER + db 20, LEECH_SEED + db 25, COTTON_SPORE + db 30, MEGA_DRAIN db 0 ; no more level-up moves SkiploomEvosAttacks: - db EVOLVE_LEVEL,27,JUMPLUFF + db EVOLVE_LEVEL, 27, JUMPLUFF db 0 ; no more evolutions - db 1,SPLASH - db 1,SYNTHESIS - db 1,TAIL_WHIP - db 1,TACKLE + db 1, SPLASH + db 1, SYNTHESIS + db 1, TAIL_WHIP + db 1, TACKLE if _CRYSTAL - db 5,SYNTHESIS + db 5, SYNTHESIS endc - db 5,TAIL_WHIP - db 10,TACKLE - db 13,POISONPOWDER - db 15,STUN_SPORE - db 17,SLEEP_POWDER - db 22,LEECH_SEED - db 29,COTTON_SPORE - db 36,MEGA_DRAIN + db 5, TAIL_WHIP + db 10, TACKLE + db 13, POISONPOWDER + db 15, STUN_SPORE + db 17, SLEEP_POWDER + db 22, LEECH_SEED + db 29, COTTON_SPORE + db 36, MEGA_DRAIN db 0 ; no more level-up moves JumpluffEvosAttacks: db 0 ; no more evolutions - db 1,SPLASH - db 1,SYNTHESIS - db 1,TAIL_WHIP - db 1,TACKLE + db 1, SPLASH + db 1, SYNTHESIS + db 1, TAIL_WHIP + db 1, TACKLE if _CRYSTAL - db 5,SYNTHESIS + db 5, SYNTHESIS endc - db 5,TAIL_WHIP - db 10,TACKLE - db 13,POISONPOWDER - db 15,STUN_SPORE - db 17,SLEEP_POWDER - db 22,LEECH_SEED - db 33,COTTON_SPORE - db 44,MEGA_DRAIN + db 5, TAIL_WHIP + db 10, TACKLE + db 13, POISONPOWDER + db 15, STUN_SPORE + db 17, SLEEP_POWDER + db 22, LEECH_SEED + db 33, COTTON_SPORE + db 44, MEGA_DRAIN db 0 ; no more level-up moves AipomEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,TAIL_WHIP - db 6,SAND_ATTACK - db 12,BATON_PASS - db 19,FURY_SWIPES - db 27,SWIFT - db 36,SCREECH - db 46,AGILITY + db 1, SCRATCH + db 1, TAIL_WHIP + db 6, SAND_ATTACK + db 12, BATON_PASS + db 19, FURY_SWIPES + db 27, SWIFT + db 36, SCREECH + db 46, AGILITY db 0 ; no more level-up moves SunkernEvosAttacks: - db EVOLVE_ITEM,SUN_STONE,SUNFLORA + db EVOLVE_ITEM, SUN_STONE, SUNFLORA db 0 ; no more evolutions - db 1,ABSORB - db 4,GROWTH - db 10,MEGA_DRAIN - db 19,SUNNY_DAY - db 31,SYNTHESIS - db 46,GIGA_DRAIN + db 1, ABSORB + db 4, GROWTH + db 10, MEGA_DRAIN + db 19, SUNNY_DAY + db 31, SYNTHESIS + db 46, GIGA_DRAIN db 0 ; no more level-up moves SunfloraEvosAttacks: db 0 ; no more evolutions - db 1,ABSORB - db 1,POUND - db 4,GROWTH - db 10,RAZOR_LEAF - db 19,SUNNY_DAY - db 31,PETAL_DANCE - db 46,SOLARBEAM + db 1, ABSORB + db 1, POUND + db 4, GROWTH + db 10, RAZOR_LEAF + db 19, SUNNY_DAY + db 31, PETAL_DANCE + db 46, SOLARBEAM db 0 ; no more level-up moves YanmaEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,FORESIGHT - db 7,QUICK_ATTACK - db 13,DOUBLE_TEAM - db 19,SONICBOOM - db 25,DETECT - db 31,SUPERSONIC + db 1, TACKLE + db 1, FORESIGHT + db 7, QUICK_ATTACK + db 13, DOUBLE_TEAM + db 19, SONICBOOM + db 25, DETECT + db 31, SUPERSONIC if _CRYSTAL - db 37,WING_ATTACK + db 37, WING_ATTACK else - db 37,SWIFT + db 37, SWIFT endc - db 43,SCREECH + db 43, SCREECH db 0 ; no more level-up moves WooperEvosAttacks: - db EVOLVE_LEVEL,20,QUAGSIRE + db EVOLVE_LEVEL, 20, QUAGSIRE db 0 ; no more evolutions - db 1,WATER_GUN - db 1,TAIL_WHIP - db 11,SLAM - db 21,AMNESIA - db 31,EARTHQUAKE - db 41,RAIN_DANCE - db 51,MIST - db 51,HAZE + db 1, WATER_GUN + db 1, TAIL_WHIP + db 11, SLAM + db 21, AMNESIA + db 31, EARTHQUAKE + db 41, RAIN_DANCE + db 51, MIST + db 51, HAZE db 0 ; no more level-up moves QuagsireEvosAttacks: db 0 ; no more evolutions - db 1,WATER_GUN - db 1,TAIL_WHIP - db 11,SLAM - db 23,AMNESIA - db 35,EARTHQUAKE - db 47,RAIN_DANCE - db 59,MIST - db 59,HAZE + db 1, WATER_GUN + db 1, TAIL_WHIP + db 11, SLAM + db 23, AMNESIA + db 35, EARTHQUAKE + db 47, RAIN_DANCE + db 59, MIST + db 59, HAZE db 0 ; no more level-up moves EspeonEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 8,SAND_ATTACK - db 16,CONFUSION - db 23,QUICK_ATTACK - db 30,SWIFT - db 36,PSYBEAM - db 42,PSYCH_UP - db 47,PSYCHIC_M - db 52,MORNING_SUN + db 1, TACKLE + db 1, TAIL_WHIP + db 8, SAND_ATTACK + db 16, CONFUSION + db 23, QUICK_ATTACK + db 30, SWIFT + db 36, PSYBEAM + db 42, PSYCH_UP + db 47, PSYCHIC_M + db 52, MORNING_SUN db 0 ; no more level-up moves UmbreonEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,TAIL_WHIP - db 8,SAND_ATTACK - db 16,PURSUIT - db 23,QUICK_ATTACK - db 30,CONFUSE_RAY - db 36,FAINT_ATTACK - db 42,MEAN_LOOK - db 47,SCREECH - db 52,MOONLIGHT + db 1, TACKLE + db 1, TAIL_WHIP + db 8, SAND_ATTACK + db 16, PURSUIT + db 23, QUICK_ATTACK + db 30, CONFUSE_RAY + db 36, FAINT_ATTACK + db 42, MEAN_LOOK + db 47, SCREECH + db 52, MOONLIGHT db 0 ; no more level-up moves MurkrowEvosAttacks: db 0 ; no more evolutions - db 1,PECK - db 11,PURSUIT - db 16,HAZE - db 26,NIGHT_SHADE - db 31,FAINT_ATTACK - db 41,MEAN_LOOK + db 1, PECK + db 11, PURSUIT + db 16, HAZE + db 26, NIGHT_SHADE + db 31, FAINT_ATTACK + db 41, MEAN_LOOK db 0 ; no more level-up moves SlowkingEvosAttacks: db 0 ; no more evolutions - db 1,CURSE - db 1,TACKLE - db 6,GROWL - db 15,WATER_GUN - db 20,CONFUSION - db 29,DISABLE - db 34,HEADBUTT - db 43,SWAGGER - db 48,PSYCHIC_M + db 1, CURSE + db 1, TACKLE + db 6, GROWL + db 15, WATER_GUN + db 20, CONFUSION + db 29, DISABLE + db 34, HEADBUTT + db 43, SWAGGER + db 48, PSYCHIC_M db 0 ; no more level-up moves MisdreavusEvosAttacks: db 0 ; no more evolutions - db 1,GROWL - db 1,PSYWAVE - db 6,SPITE - db 12,CONFUSE_RAY - db 19,MEAN_LOOK - db 27,PSYBEAM - db 36,PAIN_SPLIT - db 46,PERISH_SONG + db 1, GROWL + db 1, PSYWAVE + db 6, SPITE + db 12, CONFUSE_RAY + db 19, MEAN_LOOK + db 27, PSYBEAM + db 36, PAIN_SPLIT + db 46, PERISH_SONG db 0 ; no more level-up moves UnownEvosAttacks: db 0 ; no more evolutions - db 1,HIDDEN_POWER + db 1, HIDDEN_POWER db 0 ; no more level-up moves WobbuffetEvosAttacks: db 0 ; no more evolutions - db 1,COUNTER - db 1,MIRROR_COAT - db 1,SAFEGUARD - db 1,DESTINY_BOND + db 1, COUNTER + db 1, MIRROR_COAT + db 1, SAFEGUARD + db 1, DESTINY_BOND db 0 ; no more level-up moves GirafarigEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 1,CONFUSION - db 1,STOMP - db 7,CONFUSION - db 13,STOMP - db 20,AGILITY - db 30,BATON_PASS - db 41,PSYBEAM - db 54,CRUNCH + db 1, TACKLE + db 1, GROWL + db 1, CONFUSION + db 1, STOMP + db 7, CONFUSION + db 13, STOMP + db 20, AGILITY + db 30, BATON_PASS + db 41, PSYBEAM + db 54, CRUNCH db 0 ; no more level-up moves PinecoEvosAttacks: - db EVOLVE_LEVEL,31,FORRETRESS + db EVOLVE_LEVEL, 31, FORRETRESS db 0 ; no more evolutions - db 1,TACKLE - db 1,PROTECT - db 8,SELFDESTRUCT - db 15,TAKE_DOWN - db 22,RAPID_SPIN - db 29,BIDE - db 36,EXPLOSION - db 43,SPIKES - db 50,DOUBLE_EDGE + db 1, TACKLE + db 1, PROTECT + db 8, SELFDESTRUCT + db 15, TAKE_DOWN + db 22, RAPID_SPIN + db 29, BIDE + db 36, EXPLOSION + db 43, SPIKES + db 50, DOUBLE_EDGE db 0 ; no more level-up moves ForretressEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,PROTECT - db 1,SELFDESTRUCT - db 8,SELFDESTRUCT - db 15,TAKE_DOWN - db 22,RAPID_SPIN - db 29,BIDE - db 39,EXPLOSION - db 49,SPIKES - db 59,DOUBLE_EDGE + db 1, TACKLE + db 1, PROTECT + db 1, SELFDESTRUCT + db 8, SELFDESTRUCT + db 15, TAKE_DOWN + db 22, RAPID_SPIN + db 29, BIDE + db 39, EXPLOSION + db 49, SPIKES + db 59, DOUBLE_EDGE db 0 ; no more level-up moves DunsparceEvosAttacks: db 0 ; no more evolutions - db 1,RAGE - db 5,DEFENSE_CURL - db 13,GLARE - db 18,SPITE - db 26,PURSUIT - db 30,SCREECH - db 38,TAKE_DOWN + db 1, RAGE + db 5, DEFENSE_CURL + db 13, GLARE + db 18, SPITE + db 26, PURSUIT + db 30, SCREECH + db 38, TAKE_DOWN db 0 ; no more level-up moves GligarEvosAttacks: db 0 ; no more evolutions - db 1,POISON_STING - db 6,SAND_ATTACK - db 13,HARDEN - db 20,QUICK_ATTACK - db 28,FAINT_ATTACK - db 36,SLASH - db 44,SCREECH - db 52,GUILLOTINE + db 1, POISON_STING + db 6, SAND_ATTACK + db 13, HARDEN + db 20, QUICK_ATTACK + db 28, FAINT_ATTACK + db 36, SLASH + db 44, SCREECH + db 52, GUILLOTINE db 0 ; no more level-up moves SteelixEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,SCREECH - db 10,BIND - db 14,ROCK_THROW - db 23,HARDEN - db 27,RAGE - db 36,SANDSTORM - db 40,SLAM - db 49,CRUNCH + db 1, TACKLE + db 1, SCREECH + db 10, BIND + db 14, ROCK_THROW + db 23, HARDEN + db 27, RAGE + db 36, SANDSTORM + db 40, SLAM + db 49, CRUNCH db 0 ; no more level-up moves SnubbullEvosAttacks: - db EVOLVE_LEVEL,23,GRANBULL + db EVOLVE_LEVEL, 23, GRANBULL db 0 ; no more evolutions - db 1,TACKLE - db 1,SCARY_FACE - db 4,TAIL_WHIP - db 8,CHARM - db 13,BITE - db 19,LICK - db 26,ROAR - db 34,RAGE - db 43,TAKE_DOWN + db 1, TACKLE + db 1, SCARY_FACE + db 4, TAIL_WHIP + db 8, CHARM + db 13, BITE + db 19, LICK + db 26, ROAR + db 34, RAGE + db 43, TAKE_DOWN db 0 ; no more level-up moves GranbullEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,SCARY_FACE - db 4,TAIL_WHIP - db 8,CHARM - db 13,BITE - db 19,LICK - db 28,ROAR - db 38,RAGE - db 51,TAKE_DOWN + db 1, TACKLE + db 1, SCARY_FACE + db 4, TAIL_WHIP + db 8, CHARM + db 13, BITE + db 19, LICK + db 28, ROAR + db 38, RAGE + db 51, TAKE_DOWN db 0 ; no more level-up moves QwilfishEvosAttacks: db 0 ; no more evolutions if _CRYSTAL - db 1,SPIKES + db 1, SPIKES endc - db 1,TACKLE - db 1,POISON_STING - db 10,HARDEN - db 10,MINIMIZE - db 19,WATER_GUN - db 28,PIN_MISSILE - db 37,TAKE_DOWN - db 46,HYDRO_PUMP + db 1, TACKLE + db 1, POISON_STING + db 10, HARDEN + db 10, MINIMIZE + db 19, WATER_GUN + db 28, PIN_MISSILE + db 37, TAKE_DOWN + db 46, HYDRO_PUMP db 0 ; no more level-up moves ScizorEvosAttacks: db 0 ; no more evolutions - db 1,QUICK_ATTACK - db 1,LEER - db 6,FOCUS_ENERGY - db 12,PURSUIT - db 18,FALSE_SWIPE - db 24,AGILITY - db 30,METAL_CLAW - db 36,SLASH - db 42,SWORDS_DANCE - db 48,DOUBLE_TEAM + db 1, QUICK_ATTACK + db 1, LEER + db 6, FOCUS_ENERGY + db 12, PURSUIT + db 18, FALSE_SWIPE + db 24, AGILITY + db 30, METAL_CLAW + db 36, SLASH + db 42, SWORDS_DANCE + db 48, DOUBLE_TEAM db 0 ; no more level-up moves ShuckleEvosAttacks: db 0 ; no more evolutions - db 1,CONSTRICT - db 1,WITHDRAW - db 9,WRAP - db 14,ENCORE - db 23,SAFEGUARD - db 28,BIDE - db 37,REST + db 1, CONSTRICT + db 1, WITHDRAW + db 9, WRAP + db 14, ENCORE + db 23, SAFEGUARD + db 28, BIDE + db 37, REST db 0 ; no more level-up moves HeracrossEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,LEER - db 6,HORN_ATTACK - db 12,ENDURE - db 19,FURY_ATTACK - db 27,COUNTER - db 35,TAKE_DOWN - db 44,REVERSAL - db 54,MEGAHORN + db 1, TACKLE + db 1, LEER + db 6, HORN_ATTACK + db 12, ENDURE + db 19, FURY_ATTACK + db 27, COUNTER + db 35, TAKE_DOWN + db 44, REVERSAL + db 54, MEGAHORN db 0 ; no more level-up moves SneaselEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,LEER - db 9,QUICK_ATTACK - db 17,SCREECH - db 25,FAINT_ATTACK - db 33,FURY_SWIPES - db 41,AGILITY - db 49,SLASH - db 57,BEAT_UP + db 1, SCRATCH + db 1, LEER + db 9, QUICK_ATTACK + db 17, SCREECH + db 25, FAINT_ATTACK + db 33, FURY_SWIPES + db 41, AGILITY + db 49, SLASH + db 57, BEAT_UP if _CRYSTAL - db 65,METAL_CLAW + db 65, METAL_CLAW endc db 0 ; no more level-up moves TeddiursaEvosAttacks: - db EVOLVE_LEVEL,30,URSARING + db EVOLVE_LEVEL, 30, URSARING db 0 ; no more evolutions - db 1,SCRATCH - db 1,LEER - db 8,LICK - db 15,FURY_SWIPES - db 22,FAINT_ATTACK - db 29,REST - db 36,SLASH - db 43,SNORE - db 50,THRASH + db 1, SCRATCH + db 1, LEER + db 8, LICK + db 15, FURY_SWIPES + db 22, FAINT_ATTACK + db 29, REST + db 36, SLASH + db 43, SNORE + db 50, THRASH db 0 ; no more level-up moves UrsaringEvosAttacks: db 0 ; no more evolutions - db 1,SCRATCH - db 1,LEER - db 1,LICK - db 1,FURY_SWIPES - db 8,LICK - db 15,FURY_SWIPES - db 22,FAINT_ATTACK - db 29,REST - db 39,SLASH - db 49,SNORE - db 59,THRASH + db 1, SCRATCH + db 1, LEER + db 1, LICK + db 1, FURY_SWIPES + db 8, LICK + db 15, FURY_SWIPES + db 22, FAINT_ATTACK + db 29, REST + db 39, SLASH + db 49, SNORE + db 59, THRASH db 0 ; no more level-up moves SlugmaEvosAttacks: - db EVOLVE_LEVEL,38,MAGCARGO + db EVOLVE_LEVEL, 38, MAGCARGO db 0 ; no more evolutions - db 1,SMOG - db 8,EMBER - db 15,ROCK_THROW - db 22,HARDEN - db 29,AMNESIA - db 36,FLAMETHROWER - db 43,ROCK_SLIDE - db 50,BODY_SLAM + db 1, SMOG + db 8, EMBER + db 15, ROCK_THROW + db 22, HARDEN + db 29, AMNESIA + db 36, FLAMETHROWER + db 43, ROCK_SLIDE + db 50, BODY_SLAM db 0 ; no more level-up moves MagcargoEvosAttacks: db 0 ; no more evolutions - db 1,SMOG - db 1,EMBER - db 1,ROCK_THROW - db 8,EMBER - db 15,ROCK_THROW - db 22,HARDEN - db 29,AMNESIA - db 36,FLAMETHROWER - db 48,ROCK_SLIDE - db 60,BODY_SLAM + db 1, SMOG + db 1, EMBER + db 1, ROCK_THROW + db 8, EMBER + db 15, ROCK_THROW + db 22, HARDEN + db 29, AMNESIA + db 36, FLAMETHROWER + db 48, ROCK_SLIDE + db 60, BODY_SLAM db 0 ; no more level-up moves SwinubEvosAttacks: - db EVOLVE_LEVEL,33,PILOSWINE - db 0 ; no more evolutions - db 1,TACKLE - db 10,POWDER_SNOW - db 19,ENDURE - db 28,TAKE_DOWN - db 37,MIST - db 46,BLIZZARD + db EVOLVE_LEVEL, 33, PILOSWINE + db 0 ; no more evolutions + db 1, TACKLE + db 10, POWDER_SNOW + db 19, ENDURE + db 28, TAKE_DOWN + db 37, MIST + db 46, BLIZZARD if _CRYSTAL - db 55,AMNESIA + db 55, AMNESIA endc db 0 ; no more level-up moves PiloswineEvosAttacks: db 0 ; no more evolutions - db 1,HORN_ATTACK - db 1,POWDER_SNOW - db 1,ENDURE - db 10,POWDER_SNOW - db 19,ENDURE - db 28,TAKE_DOWN - db 33,FURY_ATTACK - db 42,MIST - db 56,BLIZZARD + db 1, HORN_ATTACK + db 1, POWDER_SNOW + db 1, ENDURE + db 10, POWDER_SNOW + db 19, ENDURE + db 28, TAKE_DOWN + db 33, FURY_ATTACK + db 42, MIST + db 56, BLIZZARD if _CRYSTAL - db 70,AMNESIA + db 70, AMNESIA endc db 0 ; no more level-up moves CorsolaEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 7,HARDEN - db 13,BUBBLE - db 19,RECOVER - db 25,BUBBLEBEAM - db 31,SPIKE_CANNON - db 37,MIRROR_COAT - db 43,ANCIENTPOWER + db 1, TACKLE + db 7, HARDEN + db 13, BUBBLE + db 19, RECOVER + db 25, BUBBLEBEAM + db 31, SPIKE_CANNON + db 37, MIRROR_COAT + db 43, ANCIENTPOWER db 0 ; no more level-up moves RemoraidEvosAttacks: - db EVOLVE_LEVEL,25,OCTILLERY + db EVOLVE_LEVEL, 25, OCTILLERY db 0 ; no more evolutions - db 1,WATER_GUN - db 11,LOCK_ON - db 22,PSYBEAM - db 22,AURORA_BEAM - db 22,BUBBLEBEAM - db 33,FOCUS_ENERGY - db 44,ICE_BEAM - db 55,HYPER_BEAM + db 1, WATER_GUN + db 11, LOCK_ON + db 22, PSYBEAM + db 22, AURORA_BEAM + db 22, BUBBLEBEAM + db 33, FOCUS_ENERGY + db 44, ICE_BEAM + db 55, HYPER_BEAM db 0 ; no more level-up moves OctilleryEvosAttacks: db 0 ; no more evolutions - db 1,WATER_GUN - db 11,CONSTRICT - db 22,PSYBEAM - db 22,AURORA_BEAM - db 22,BUBBLEBEAM - db 25,OCTAZOOKA - db 38,FOCUS_ENERGY - db 54,ICE_BEAM - db 70,HYPER_BEAM + db 1, WATER_GUN + db 11, CONSTRICT + db 22, PSYBEAM + db 22, AURORA_BEAM + db 22, BUBBLEBEAM + db 25, OCTAZOOKA + db 38, FOCUS_ENERGY + db 54, ICE_BEAM + db 70, HYPER_BEAM db 0 ; no more level-up moves DelibirdEvosAttacks: db 0 ; no more evolutions - db 1,PRESENT + db 1, PRESENT db 0 ; no more level-up moves MantineEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 1,BUBBLE - db 10,SUPERSONIC - db 18,BUBBLEBEAM - db 25,TAKE_DOWN - db 32,AGILITY - db 40,WING_ATTACK - db 49,CONFUSE_RAY + db 1, TACKLE + db 1, BUBBLE + db 10, SUPERSONIC + db 18, BUBBLEBEAM + db 25, TAKE_DOWN + db 32, AGILITY + db 40, WING_ATTACK + db 49, CONFUSE_RAY db 0 ; no more level-up moves SkarmoryEvosAttacks: db 0 ; no more evolutions - db 1,LEER - db 1,PECK - db 13,SAND_ATTACK - db 19,SWIFT - db 25,AGILITY - db 37,FURY_ATTACK - db 49,STEEL_WING + db 1, LEER + db 1, PECK + db 13, SAND_ATTACK + db 19, SWIFT + db 25, AGILITY + db 37, FURY_ATTACK + db 49, STEEL_WING db 0 ; no more level-up moves HoundourEvosAttacks: - db EVOLVE_LEVEL,24,HOUNDOOM + db EVOLVE_LEVEL, 24, HOUNDOOM db 0 ; no more evolutions - db 1,LEER - db 1,EMBER - db 7,ROAR - db 13,SMOG - db 20,BITE - db 27,FAINT_ATTACK - db 35,FLAMETHROWER - db 43,CRUNCH + db 1, LEER + db 1, EMBER + db 7, ROAR + db 13, SMOG + db 20, BITE + db 27, FAINT_ATTACK + db 35, FLAMETHROWER + db 43, CRUNCH db 0 ; no more level-up moves HoundoomEvosAttacks: db 0 ; no more evolutions - db 1,LEER - db 1,EMBER - db 7,ROAR - db 13,SMOG - db 20,BITE - db 30,FAINT_ATTACK - db 41,FLAMETHROWER - db 52,CRUNCH + db 1, LEER + db 1, EMBER + db 7, ROAR + db 13, SMOG + db 20, BITE + db 30, FAINT_ATTACK + db 41, FLAMETHROWER + db 52, CRUNCH db 0 ; no more level-up moves KingdraEvosAttacks: db 0 ; no more evolutions - db 1,BUBBLE - db 1,SMOKESCREEN - db 1,LEER - db 1,WATER_GUN - db 8,SMOKESCREEN - db 15,LEER - db 22,WATER_GUN - db 29,TWISTER - db 40,AGILITY - db 51,HYDRO_PUMP + db 1, BUBBLE + db 1, SMOKESCREEN + db 1, LEER + db 1, WATER_GUN + db 8, SMOKESCREEN + db 15, LEER + db 22, WATER_GUN + db 29, TWISTER + db 40, AGILITY + db 51, HYDRO_PUMP db 0 ; no more level-up moves PhanpyEvosAttacks: - db EVOLVE_LEVEL,25,DONPHAN + db EVOLVE_LEVEL, 25, DONPHAN db 0 ; no more evolutions - db 1,TACKLE - db 1,GROWL - db 9,DEFENSE_CURL - db 17,FLAIL - db 25,TAKE_DOWN - db 33,ROLLOUT - db 41,ENDURE - db 49,DOUBLE_EDGE + db 1, TACKLE + db 1, GROWL + db 9, DEFENSE_CURL + db 17, FLAIL + db 25, TAKE_DOWN + db 33, ROLLOUT + db 41, ENDURE + db 49, DOUBLE_EDGE db 0 ; no more level-up moves DonphanEvosAttacks: db 0 ; no more evolutions - db 1,HORN_ATTACK - db 1,GROWL - db 9,DEFENSE_CURL - db 17,FLAIL - db 25,FURY_ATTACK - db 33,ROLLOUT - db 41,RAPID_SPIN - db 49,EARTHQUAKE + db 1, HORN_ATTACK + db 1, GROWL + db 9, DEFENSE_CURL + db 17, FLAIL + db 25, FURY_ATTACK + db 33, ROLLOUT + db 41, RAPID_SPIN + db 49, EARTHQUAKE db 0 ; no more level-up moves Porygon2EvosAttacks: db 0 ; no more evolutions - db 1,CONVERSION2 - db 1,TACKLE - db 1,CONVERSION - db 9,AGILITY - db 12,PSYBEAM - db 20,RECOVER - db 24,DEFENSE_CURL - db 32,LOCK_ON - db 36,TRI_ATTACK - db 44,ZAP_CANNON + db 1, CONVERSION2 + db 1, TACKLE + db 1, CONVERSION + db 9, AGILITY + db 12, PSYBEAM + db 20, RECOVER + db 24, DEFENSE_CURL + db 32, LOCK_ON + db 36, TRI_ATTACK + db 44, ZAP_CANNON db 0 ; no more level-up moves StantlerEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 8,LEER - db 15,HYPNOSIS - db 23,STOMP - db 31,SAND_ATTACK - db 40,TAKE_DOWN - db 49,CONFUSE_RAY + db 1, TACKLE + db 8, LEER + db 15, HYPNOSIS + db 23, STOMP + db 31, SAND_ATTACK + db 40, TAKE_DOWN + db 49, CONFUSE_RAY db 0 ; no more level-up moves SmeargleEvosAttacks: db 0 ; no more evolutions - db 1,SKETCH - db 11,SKETCH - db 21,SKETCH - db 31,SKETCH - db 41,SKETCH - db 51,SKETCH - db 61,SKETCH - db 71,SKETCH - db 81,SKETCH - db 91,SKETCH + db 1, SKETCH + db 11, SKETCH + db 21, SKETCH + db 31, SKETCH + db 41, SKETCH + db 51, SKETCH + db 61, SKETCH + db 71, SKETCH + db 81, SKETCH + db 91, SKETCH db 0 ; no more level-up moves TyrogueEvosAttacks: - db EVOLVE_STAT,20,ATK_LT_DEF,HITMONCHAN - db EVOLVE_STAT,20,ATK_GT_DEF,HITMONLEE - db EVOLVE_STAT,20,ATK_EQ_DEF,HITMONTOP + db EVOLVE_STAT, 20, ATK_LT_DEF, HITMONCHAN + db EVOLVE_STAT, 20, ATK_GT_DEF, HITMONLEE + db EVOLVE_STAT, 20, ATK_EQ_DEF, HITMONTOP db 0 ; no more evolutions - db 1,TACKLE + db 1, TACKLE db 0 ; no more level-up moves HitmontopEvosAttacks: db 0 ; no more evolutions - db 1,ROLLING_KICK - db 7,FOCUS_ENERGY - db 13,PURSUIT - db 19,QUICK_ATTACK - db 25,RAPID_SPIN - db 31,COUNTER - db 37,AGILITY - db 43,DETECT - db 49,TRIPLE_KICK + db 1, ROLLING_KICK + db 7, FOCUS_ENERGY + db 13, PURSUIT + db 19, QUICK_ATTACK + db 25, RAPID_SPIN + db 31, COUNTER + db 37, AGILITY + db 43, DETECT + db 49, TRIPLE_KICK db 0 ; no more level-up moves SmoochumEvosAttacks: - db EVOLVE_LEVEL,30,JYNX + db EVOLVE_LEVEL, 30, JYNX db 0 ; no more evolutions - db 1,POUND - db 1,LICK - db 9,SWEET_KISS - db 13,POWDER_SNOW - db 21,CONFUSION - db 25,SING - db 33,MEAN_LOOK - db 37,PSYCHIC_M - db 45,PERISH_SONG - db 49,BLIZZARD + db 1, POUND + db 1, LICK + db 9, SWEET_KISS + db 13, POWDER_SNOW + db 21, CONFUSION + db 25, SING + db 33, MEAN_LOOK + db 37, PSYCHIC_M + db 45, PERISH_SONG + db 49, BLIZZARD db 0 ; no more level-up moves ElekidEvosAttacks: - db EVOLVE_LEVEL,30,ELECTABUZZ + db EVOLVE_LEVEL, 30, ELECTABUZZ db 0 ; no more evolutions - db 1,QUICK_ATTACK - db 1,LEER - db 9,THUNDERPUNCH - db 17,LIGHT_SCREEN - db 25,SWIFT - db 33,SCREECH - db 41,THUNDERBOLT - db 49,THUNDER + db 1, QUICK_ATTACK + db 1, LEER + db 9, THUNDERPUNCH + db 17, LIGHT_SCREEN + db 25, SWIFT + db 33, SCREECH + db 41, THUNDERBOLT + db 49, THUNDER db 0 ; no more level-up moves MagbyEvosAttacks: - db EVOLVE_LEVEL,30,MAGMAR + db EVOLVE_LEVEL, 30, MAGMAR db 0 ; no more evolutions - db 1,EMBER - db 7,LEER - db 13,SMOG - db 19,FIRE_PUNCH - db 25,SMOKESCREEN - db 31,SUNNY_DAY - db 37,FLAMETHROWER - db 43,CONFUSE_RAY - db 49,FIRE_BLAST + db 1, EMBER + db 7, LEER + db 13, SMOG + db 19, FIRE_PUNCH + db 25, SMOKESCREEN + db 31, SUNNY_DAY + db 37, FLAMETHROWER + db 43, CONFUSE_RAY + db 49, FIRE_BLAST db 0 ; no more level-up moves MiltankEvosAttacks: db 0 ; no more evolutions - db 1,TACKLE - db 4,GROWL - db 8,DEFENSE_CURL - db 13,STOMP - db 19,MILK_DRINK - db 26,BIDE - db 34,ROLLOUT - db 43,BODY_SLAM - db 53,HEAL_BELL + db 1, TACKLE + db 4, GROWL + db 8, DEFENSE_CURL + db 13, STOMP + db 19, MILK_DRINK + db 26, BIDE + db 34, ROLLOUT + db 43, BODY_SLAM + db 53, HEAL_BELL db 0 ; no more level-up moves BlisseyEvosAttacks: db 0 ; no more evolutions - db 1,POUND - db 4,GROWL - db 7,TAIL_WHIP - db 10,SOFTBOILED - db 13,DOUBLESLAP - db 18,MINIMIZE - db 23,SING - db 28,EGG_BOMB - db 33,DEFENSE_CURL - db 40,LIGHT_SCREEN - db 47,DOUBLE_EDGE + db 1, POUND + db 4, GROWL + db 7, TAIL_WHIP + db 10, SOFTBOILED + db 13, DOUBLESLAP + db 18, MINIMIZE + db 23, SING + db 28, EGG_BOMB + db 33, DEFENSE_CURL + db 40, LIGHT_SCREEN + db 47, DOUBLE_EDGE db 0 ; no more level-up moves RaikouEvosAttacks: db 0 ; no more evolutions - db 1,BITE - db 1,LEER - db 11,THUNDERSHOCK - db 21,ROAR - db 31,QUICK_ATTACK - db 41,SPARK - db 51,REFLECT - db 61,CRUNCH - db 71,THUNDER + db 1, BITE + db 1, LEER + db 11, THUNDERSHOCK + db 21, ROAR + db 31, QUICK_ATTACK + db 41, SPARK + db 51, REFLECT + db 61, CRUNCH + db 71, THUNDER db 0 ; no more level-up moves EnteiEvosAttacks: db 0 ; no more evolutions - db 1,BITE - db 1,LEER - db 11,EMBER - db 21,ROAR - db 31,FIRE_SPIN - db 41,STOMP - db 51,FLAMETHROWER - db 61,SWAGGER - db 71,FIRE_BLAST + db 1, BITE + db 1, LEER + db 11, EMBER + db 21, ROAR + db 31, FIRE_SPIN + db 41, STOMP + db 51, FLAMETHROWER + db 61, SWAGGER + db 71, FIRE_BLAST db 0 ; no more level-up moves SuicuneEvosAttacks: db 0 ; no more evolutions - db 1,BITE - db 1,LEER + db 1, BITE + db 1, LEER if _CRYSTAL - db 11,BUBBLEBEAM - db 21,RAIN_DANCE - db 31,GUST - db 41,AURORA_BEAM + db 11, BUBBLEBEAM + db 21, RAIN_DANCE + db 31, GUST + db 41, AURORA_BEAM else - db 11,WATER_GUN - db 21,ROAR - db 31,GUST - db 41,BUBBLEBEAM + db 11, WATER_GUN + db 21, ROAR + db 31, GUST + db 41, BUBBLEBEAM endc - db 51,MIST - db 61,MIRROR_COAT - db 71,HYDRO_PUMP + db 51, MIST + db 61, MIRROR_COAT + db 71, HYDRO_PUMP db 0 ; no more level-up moves LarvitarEvosAttacks: - db EVOLVE_LEVEL,30,PUPITAR + db EVOLVE_LEVEL, 30, PUPITAR db 0 ; no more evolutions - db 1,BITE - db 1,LEER - db 8,SANDSTORM - db 15,SCREECH - db 22,ROCK_SLIDE - db 29,THRASH - db 36,SCARY_FACE - db 43,CRUNCH - db 50,EARTHQUAKE - db 57,HYPER_BEAM + db 1, BITE + db 1, LEER + db 8, SANDSTORM + db 15, SCREECH + db 22, ROCK_SLIDE + db 29, THRASH + db 36, SCARY_FACE + db 43, CRUNCH + db 50, EARTHQUAKE + db 57, HYPER_BEAM db 0 ; no more level-up moves PupitarEvosAttacks: - db EVOLVE_LEVEL,55,TYRANITAR - db 0 ; no more evolutions - db 1,BITE - db 1,LEER - db 1,SANDSTORM - db 1,SCREECH - db 8,SANDSTORM - db 15,SCREECH - db 22,ROCK_SLIDE - db 29,THRASH - db 38,SCARY_FACE - db 47,CRUNCH - db 56,EARTHQUAKE - db 65,HYPER_BEAM + db EVOLVE_LEVEL, 55, TYRANITAR + db 0 ; no more evolutions + db 1, BITE + db 1, LEER + db 1, SANDSTORM + db 1, SCREECH + db 8, SANDSTORM + db 15, SCREECH + db 22, ROCK_SLIDE + db 29, THRASH + db 38, SCARY_FACE + db 47, CRUNCH + db 56, EARTHQUAKE + db 65, HYPER_BEAM db 0 ; no more level-up moves TyranitarEvosAttacks: db 0 ; no more evolutions - db 1,BITE - db 1,LEER - db 1,SANDSTORM - db 1,SCREECH - db 8,SANDSTORM - db 15,SCREECH - db 22,ROCK_SLIDE - db 29,THRASH - db 38,SCARY_FACE - db 47,CRUNCH - db 61,EARTHQUAKE - db 75,HYPER_BEAM + db 1, BITE + db 1, LEER + db 1, SANDSTORM + db 1, SCREECH + db 8, SANDSTORM + db 15, SCREECH + db 22, ROCK_SLIDE + db 29, THRASH + db 38, SCARY_FACE + db 47, CRUNCH + db 61, EARTHQUAKE + db 75, HYPER_BEAM db 0 ; no more level-up moves LugiaEvosAttacks: db 0 ; no more evolutions - db 1,AEROBLAST - db 11,SAFEGUARD - db 22,GUST - db 33,RECOVER - db 44,HYDRO_PUMP - db 55,RAIN_DANCE - db 66,SWIFT - db 77,WHIRLWIND - db 88,ANCIENTPOWER - db 99,FUTURE_SIGHT + db 1, AEROBLAST + db 11, SAFEGUARD + db 22, GUST + db 33, RECOVER + db 44, HYDRO_PUMP + db 55, RAIN_DANCE + db 66, SWIFT + db 77, WHIRLWIND + db 88, ANCIENTPOWER + db 99, FUTURE_SIGHT db 0 ; no more level-up moves HoOhEvosAttacks: db 0 ; no more evolutions - db 1,SACRED_FIRE - db 11,SAFEGUARD - db 22,GUST - db 33,RECOVER - db 44,FIRE_BLAST - db 55,SUNNY_DAY - db 66,SWIFT - db 77,WHIRLWIND - db 88,ANCIENTPOWER - db 99,FUTURE_SIGHT + db 1, SACRED_FIRE + db 11, SAFEGUARD + db 22, GUST + db 33, RECOVER + db 44, FIRE_BLAST + db 55, SUNNY_DAY + db 66, SWIFT + db 77, WHIRLWIND + db 88, ANCIENTPOWER + db 99, FUTURE_SIGHT db 0 ; no more level-up moves CelebiEvosAttacks: db 0 ; no more evolutions - db 1,LEECH_SEED - db 1,CONFUSION - db 1,RECOVER - db 1,HEAL_BELL - db 10,SAFEGUARD - db 20,ANCIENTPOWER - db 30,FUTURE_SIGHT - db 40,BATON_PASS - db 50,PERISH_SONG + db 1, LEECH_SEED + db 1, CONFUSION + db 1, RECOVER + db 1, HEAL_BELL + db 10, SAFEGUARD + db 20, ANCIENTPOWER + db 30, FUTURE_SIGHT + db 40, BATON_PASS + db 50, PERISH_SONG db 0 ; no more level-up moves diff --git a/data/odd_eggs.asm b/data/odd_eggs.asm index 96a6717b9..1e4525d39 100644 --- a/data/odd_eggs.asm +++ b/data/odd_eggs.asm @@ -44,7 +44,7 @@ GiveOddEgg: ; 1fb4b6 call AddNTimes ld de, OddEggSpecies - ld bc, party_struct_length + 2 * PKMN_NAME_LENGTH + ld bc, PARTYMON_STRUCT_LENGTH + 2 * PKMN_NAME_LENGTH call CopyBytes ld a, EGG_TICKET diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm index 9002404fd..1b5c9a18b 100644 --- a/engine/fruit_trees.asm +++ b/engine/fruit_trees.asm @@ -15,7 +15,7 @@ FruitTreeScript:: ; 44000 .fruit writetext HeyItsFruitText copybytetovar CurFruit - giveitem $ff, 1 + giveitem ITEM_FROM_MEM, 1 iffalse .packisfull keeptextopen writetext ObtainedFruitText diff --git a/engine/predef.asm b/engine/predef.asm index 8f6a17779..e0b6e787b 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -43,7 +43,7 @@ PredefPointers:: ; 856b add_predef GiveEgg add_predef Functionc6e0 add_predef CalcPkmnStats - add_predef Functione17b + add_predef CalcPkmnStatC add_predef CanLearnTMHMMove add_predef GetTMHMMove add_predef Function28eef ; $ 10 diff --git a/event/battle_tower.asm b/event/battle_tower.asm index 03d24a972..9c494b168 100644 --- a/event/battle_tower.asm +++ b/event/battle_tower.asm @@ -302,7 +302,7 @@ VerifyUniqueness: ; 8b2e9 .nextmon: ; 8b31a push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc inc de pop bc diff --git a/event/dratini.asm b/event/dratini.asm index 7e82dc1b8..aa1d7a0f4 100644 --- a/event/dratini.asm +++ b/event/dratini.asm @@ -12,7 +12,7 @@ SpecialDratini: ; 0x8b170 call GetNthPartyMon ld a, [bc] ld c, a - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .CheckForDratini ; start at the end of the party and search backwards for a Dratini ld a, [hl] @@ -59,7 +59,7 @@ endr call GetFarByte ; get the address of the move's PP and update the PP - ld hl, PartyMon1PP - PartyMon1Moves + ld hl, (MON_PP) - (MON_MOVES) add hl, de ld [hl], a @@ -100,7 +100,7 @@ GetNthPartyMon: ; 0x8b1ce jr z, .EmptyParty dec a ret z - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .loop add hl, de dec a diff --git a/event/magikarp.asm b/event/magikarp.asm index 46939ee97..a60d90336 100644 --- a/event/magikarp.asm +++ b/event/magikarp.asm @@ -16,7 +16,7 @@ Special_CheckMagikarpLength: ; fbb32 ; Now let's compute its length based on its DVs and ID. ld a, [CurPartyMon] ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes push hl ld bc, MON_DVS diff --git a/event/move_deleter.asm b/event/move_deleter.asm index 88dd234af..c9ec76345 100644 --- a/event/move_deleter.asm +++ b/event/move_deleter.asm @@ -12,7 +12,7 @@ MoveDeletion: jr z, .asm_2c5bc ld a, [CurPartyMon] ld hl, PartyMon1Moves + 1 - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [hl] and a @@ -116,7 +116,7 @@ Function2c5f9: ; 2c5f9 ld hl, PartyMon1Moves add hl, bc ld a, [CurPartyMon] - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc push bc @@ -145,7 +145,7 @@ Function2c5f9: ; 2c5f9 ld hl, PartyMon1PP add hl, bc ld a, [CurPartyMon] - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc inc b diff --git a/event/name_rater.asm b/event/name_rater.asm index 957d64efd..96d0ee363 100644 --- a/event/name_rater.asm +++ b/event/name_rater.asm @@ -91,7 +91,7 @@ CheckIfMonIsYourOT: ; fb78a jr c, .nope ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes ld de, PlayerID diff --git a/event/poke_seer.asm b/event/poke_seer.asm index f785e378c..b5364e67f 100644 --- a/event/poke_seer.asm +++ b/event/poke_seer.asm @@ -97,7 +97,7 @@ SeerAction4: ; 4f12b ; 4f134 ReadCaughtData: ; 4f134 - ld a, PartyMon1CaughtData - PartyMon1 + ld a, MON_CAUGHTDATA call GetPartyParamLocation ld a, [hli] ld [wd03b], a @@ -109,7 +109,7 @@ ReadCaughtData: ; 4f134 ld a, 1 ld [wd002], a - ld a, PartyMon1ID - PartyMon1 + ld a, MON_ID call GetPartyParamLocation ld a, [PlayerID] cp [hl] @@ -358,7 +358,7 @@ SeerCancelText: ; 0x4f2af SeerAdvice: ; 4f2b4 - ld a, PartyMon1Level - PartyMon1 + ld a, MON_LEVEL call GetPartyParamLocation ld a, [wd038 + 2] ld c, a @@ -426,7 +426,7 @@ SeerAdvice5: ; 0x4f2fc GetCaughtGender: ; 4f301 - ld hl, PartyMon1CaughtGender - PartyMon1 + ld hl, MON_CAUGHTGENDER add hl, bc ld a, [hl] diff --git a/event/unown.asm b/event/unown.asm index d0456f896..b39eba371 100644 --- a/event/unown.asm +++ b/event/unown.asm @@ -38,7 +38,7 @@ SpecialOmanyteChamber: ; 8adef dec a ld [CurPartyMon], a push bc - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation pop bc ld a, [hl] diff --git a/home.asm b/home.asm index 69a413db0..2d3d0b456 100644 --- a/home.asm +++ b/home.asm @@ -1965,7 +1965,7 @@ GetPartyParamLocation:: ; 3917 GetPartyLocation:: ; 3927 ; Add the length of a PartyMon struct to hl a times. - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH jp AddNTimes ; 392d diff --git a/items/item_effects.asm b/items/item_effects.asm index 5df6a1a6c..1343eab50 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -573,7 +573,7 @@ endr ld a, [PartyCount] dec a ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, FRIEND_BALL_HAPPINESS @@ -1198,7 +1198,7 @@ SunStone: ; ee0f jp c, .asm_ee38 - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld a, [hl] @@ -1239,7 +1239,7 @@ Calcium: ; ee3d call Functioneed9 - ld a, PartyMon1StatExp - PartyMon1 + ld a, MON_STAT_EXP call GetPartyParamLocation add hl, bc @@ -1281,11 +1281,11 @@ Functionee83: ; ee83 Functionee8c: ; ee8c - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld d, h ld e, l - ld a, PartyMon1HPExp - 1 - PartyMon1 + ld a, MON_EXP + 2 call GetPartyParamLocation ld b, $1 predef_jump CalcPkmnStats @@ -1338,11 +1338,11 @@ Functioneed9: ; eed9 ; eeeb Table_eeeb: ; eeeb - db HP_UP, PartyMon1HPExp - PartyMon1StatExp - db PROTEIN, PartyMon1AtkExp - PartyMon1StatExp - db IRON, PartyMon1DefExp - PartyMon1StatExp - db CARBOS, PartyMon1SpdExp - PartyMon1StatExp - db CALCIUM, PartyMon1SpcExp - PartyMon1StatExp + db HP_UP, (MON_HP_EXP) - (MON_STAT_EXP) + db PROTEIN, (MON_ATK_EXP) - (MON_STAT_EXP) + db IRON, (MON_DEF_EXP) - (MON_STAT_EXP) + db CARBOS, (MON_SPD_EXP) - (MON_STAT_EXP) + db CALCIUM, (MON_SPC_EXP) - (MON_STAT_EXP) ; eef5 @@ -1350,7 +1350,7 @@ Functioneef5: ; eef5 ld a, [CurPartySpecies] ld [CurSpecies], a ld [wd265], a - ld a, PartyMon1Level - PartyMon1 + ld a, MON_LEVEL call GetPartyParamLocation ld a, [hl] ld [CurPartyLevel], a @@ -1370,7 +1370,7 @@ RareCandy: ; ef14 call Functioneef5 - ld a, PartyMon1Level - PartyMon1 + ld a, MON_LEVEL call GetPartyParamLocation ld a, [hl] @@ -1385,7 +1385,7 @@ RareCandy: ; ef14 callba CalcExpAtLevel pop de - ld a, PartyMon1Exp - PartyMon1 + ld a, MON_EXP call GetPartyParamLocation ld a, [hMultiplicand] @@ -1395,7 +1395,7 @@ RareCandy: ; ef14 ld a, [$ffb6] ld [hl], a - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld a, [hli] ld b, a @@ -1403,7 +1403,7 @@ RareCandy: ; ef14 push bc call Functionee8c - ld a, PartyMon1MaxHP + 1 - PartyMon1 + ld a, MON_MAXHP + 1 call GetPartyParamLocation pop bc @@ -1503,7 +1503,7 @@ Functionefda: ; efda (3:6fda) ld a, $1 ret z call Functionf058 - ld a, PartyMon1Status - PartyMon1 + ld a, MON_STATUS call GetPartyParamLocation ld a, [hl] and c @@ -1542,7 +1542,7 @@ Functionf009: ; f009 (3:7009) Functionf01e: ; f01e (3:701e) call Functionf2a6 ret nc - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [hli] ld [BattleMonHP], a @@ -1724,7 +1724,7 @@ Functionf144: ; f144 xor a ld [Danger], a call Functionf2c3 - ld a, PartyMon1Status - PartyMon1 + ld a, MON_STATUS call GetPartyParamLocation xor a ld [hli], a @@ -1960,7 +1960,7 @@ Functionf2ba: ; f2ba (3:72ba) Functionf2c3: ; f2c3 (3:72c3) call Functionf36f asm_f2c6: ; f2c6 (3:72c6) - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld [hl], d inc hl @@ -1968,7 +1968,7 @@ asm_f2c6: ; f2c6 (3:72c6) jp Functionf328 Functionf2d1: ; f2d1 (3:72d1) - ld a, PartyMon1HP + 1 - PartyMon1 + ld a, MON_HP + 1 call GetPartyParamLocation ld a, [hl] add e @@ -1978,11 +1978,11 @@ Functionf2d1: ; f2d1 (3:72d1) ld [hl], a jr c, .asm_f2f5 call Functionf328 - ld a, PartyMon1HP + 1 - PartyMon1 + ld a, MON_HP + 1 call GetPartyParamLocation ld d, h ld e, l - ld a, PartyMon1MaxHP + 1 - PartyMon1 + ld a, MON_MAXHP + 1 call GetPartyParamLocation ld a, [de] sub [hl] @@ -1997,7 +1997,7 @@ Functionf2d1: ; f2d1 (3:72d1) ret Functionf2f9: ; f2f9 (3:72f9) - ld a, PartyMon1HP + 1 - PartyMon1 + ld a, MON_HP + 1 call GetPartyParamLocation ld a, [hl] sub e @@ -2035,7 +2035,7 @@ Functionf31b: ; f31b (3:731b) ret Functionf328: ; f328 (3:7328) - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [hli] ld [wd1ef], a @@ -2061,7 +2061,7 @@ Functionf33f: ; f33f ; f348 Functionf348: ; f348 (3:7348) - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [hli] ld [wd1ed], a @@ -2078,7 +2078,7 @@ Functionf356: ; f356 (3:7356) Functionf35f: ; f35f (3:735f) push hl - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld a, [hli] ld [Buffer2], a @@ -2096,7 +2096,7 @@ Functionf36f: ; f36f (3:736f) Functionf378: ; f378 (3:7378) push bc - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld a, [hli] ld [hDividend + 0], a @@ -2408,7 +2408,7 @@ PokeFlute: ; f50c .Functionf554 - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH ld c, PARTY_LENGTH .loop @@ -2555,7 +2555,7 @@ Mysteryberry: ; f5bf ld [CurMoveNum], a jr nz, .loop ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call GetMthMoveOfNthPartymon push hl @@ -2625,7 +2625,7 @@ Functionf652: ; f652 .asm_f677 ld a, [CurPartyMon] ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld de, BattleMonMoves ld b, NUM_MOVES @@ -2641,7 +2641,7 @@ Functionf652: ; f652 rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves inc de endr - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, (MON_PP) - (MON_MOVES) add hl, bc ld a, [hl] ld [de], a @@ -2674,7 +2674,7 @@ Elixer_RestorePPofAllMoves: ; f6af .moveLoop push bc ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call GetMthMoveOfNthPartymon ld a, [hl] and a @@ -2710,7 +2710,7 @@ RestorePP: ; f6e8 ld [MonType], a call Functionf8ec ld hl, PartyMon1PP - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call GetMthMoveOfNthPartymon ld a, [wd265] ld b, a @@ -3105,13 +3105,13 @@ GotOffTheItemText: ; 0xf847 Functionf84c: ; f84c - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call GetPartyParamLocation push hl ld de, Buffer1 predef FillPP pop hl - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, (MON_PP) - (MON_MOVES) add hl, bc ld de, Buffer1 ld b, 0 @@ -3193,10 +3193,10 @@ ComputeMaxPP: ; f881 ; f8b9 Functionf8b9: ; f8b9 - ld a, PartyMon1PP - PartyMon1 + ld a, MON_PP call GetPartyParamLocation push hl - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call GetPartyParamLocation pop de xor a ; PARTYMON @@ -3239,7 +3239,7 @@ Functionf8ec: ; f8ec and a ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH jr z, .got_partymon ; PARTYMON ld hl, OTPartyMon1Moves @@ -3279,7 +3279,7 @@ Functionf8ec: ; f8ec pop hl push bc - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, (MON_PP) - (MON_MOVES) ld a, [MonType] cp WILDMON jr nz, .notwild diff --git a/main.asm b/main.asm index 8f25c4e3d..d9fdb065c 100644 --- a/main.asm +++ b/main.asm @@ -1598,7 +1598,7 @@ LearnMove: ; 6508 .loop ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes ld d, h @@ -1642,7 +1642,7 @@ LearnMove: ; 6508 .learn ld a, [wd262] ld [hl], a - ld bc, PartyMon1PP - PartyMon1Moves + ld bc, (MON_PP) - (MON_MOVES) add hl, bc push hl @@ -2681,7 +2681,7 @@ Function7171: ; 7171 GetFirstPokemonHappiness: ; 718d ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld de, PartySpecies .loop ld a, [de] @@ -2729,7 +2729,7 @@ ChangeHappiness: ; 71c2 push bc ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes pop bc @@ -2838,7 +2838,7 @@ StepHappiness:: ; 725a .next push de - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH add hl, de pop de dec c @@ -2945,10 +2945,10 @@ SpecialGiveShuckle: ; 7305 ; Caught data. ld b, 0 - callba SetPkmnCaughtData + callba SetPartymonCaughtData ; Holding a Berry. - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [PartyCount] dec a push af @@ -3012,7 +3012,7 @@ SpecialReturnShuckle: ; 737e ld a, [CurPartyMon] ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ; OT ID @@ -3044,7 +3044,7 @@ SpecialReturnShuckle: ; 737e jr c, .fainted ld a, [CurPartyMon] ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [hl] cp 150 @@ -4444,21 +4444,21 @@ HealParty: ; c658 ; c677 HealPartyMon: ; c677 - ld a, PartyMon1Species - PartyMon1 + ld a, MON_SPECIES call GetPartyParamLocation ld d, h ld e, l - ld hl, PartyMon1Status - PartyMon1Species + ld hl, MON_STATUS add hl, de xor a ld [hli], a ld [hl], a - ld hl, PartyMon1MaxHP - PartyMon1Species + ld hl, MON_MAXHP add hl, de - ; bc = PartyMon1HP - PartyMon1Species + ; bc = MON_HP ld b, h ld c, l rept 2 @@ -4626,7 +4626,7 @@ CheckPartyMove: ; c742 cp a, EGG jr z, .next - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Moves ld a, e call AddNTimes @@ -8005,7 +8005,7 @@ TryAddMonToParty: ; d88c .initializeStats ld a, [$ffae] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes GeneratePartyMonStats: ; d906 ld e, l @@ -8157,7 +8157,7 @@ endr ld a, $1 ld c, a ld b, $0 - call Functione17b + call CalcPkmnStatC ld a, [$ffb5] ld [de], a inc de @@ -8243,7 +8243,7 @@ endr ld hl, PartyMon1DVs ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes predef GetUnownLetter callab Functionfba18 @@ -8303,7 +8303,7 @@ Functionda96: ; da96 ld hl, PartyMon1Species ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld e, l ld d, h @@ -8341,7 +8341,7 @@ Functionda96: ; da96 ld hl, PartyMon1Happiness ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld [hl], BASE_HAPPINESS .owned @@ -8352,7 +8352,7 @@ Functionda96: ; da96 ld hl, PartyMon1DVs ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes predef GetUnownLetter callab Functionfba18 @@ -8415,11 +8415,11 @@ SentGetPkmnIntoFromBox: ; db3f ld a, [wd10b] dec a ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [PartyCount] jr nz, .asm_db97 ld hl, sBoxMon1Species - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH ld a, [sBoxCount] .asm_db97 @@ -8433,20 +8433,20 @@ SentGetPkmnIntoFromBox: ; db3f ld a, [wd10b] and a ld hl, sBoxMon1Species - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH jr z, .asm_dbb7 cp $2 ld hl, wBreedMon1Species jr z, .asm_dbbd ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH .asm_dbb7 ld a, [CurPartyMon] call AddNTimes .asm_dbbd - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH call CopyBytes ld a, [wd10b] cp $3 @@ -8599,11 +8599,11 @@ CloseSRAM_And_SetCFlag: ; dcb1 Functiondcb6: ; dcb6 ld a, b ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH call AddNTimes ld b, h ld c, l - ld hl, sBoxMon1PP - sBoxMon1 + ld hl, MON_PP add hl, bc push hl push bc @@ -8611,7 +8611,7 @@ Functiondcb6: ; dcb6 ld bc, NUM_MOVES call CopyBytes pop bc - ld hl, sBoxMon1Moves - sBoxMon1 + ld hl, MON_MOVES add hl, bc push hl ld de, TempMonMoves @@ -8764,7 +8764,7 @@ Functiondd64: ; dd64 ld hl, PartyMon1Moves ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -8795,7 +8795,7 @@ Functionde1a: ; de1a ld a, [PartyCount] dec a ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -8829,9 +8829,9 @@ Functionde44: ; de44 call CopyBytes ld a, [CurPartyMon] ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH jp CopyBytes @@ -8980,7 +8980,7 @@ ShiftBoxMon: ; df47 call .asm_df5f ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH .asm_df5f ld a, [sBoxCount] @@ -9062,7 +9062,7 @@ GiveEgg:: ; df8c ld [CurPartySpecies], a ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Species call AddNTimes ld a, [CurPartySpecies] @@ -9083,7 +9083,7 @@ GiveEgg:: ; df8c ld a, [PartyCount] dec a ld hl, PartyMon1Happiness - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [wc2cc] bit 1, a @@ -9096,7 +9096,7 @@ GiveEgg:: ; df8c ld a, [PartyCount] dec a ld hl, PartyMon1HP - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes xor a ld [hli], a @@ -9168,12 +9168,12 @@ Functione039: ; e039 call CopyDataUntil ld hl, PartyMons - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [wd10b] and a jr z, .asm_e0a5 ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH .asm_e0a5 ld a, [CurPartyMon] @@ -9183,13 +9183,13 @@ Functione039: ; e039 ld a, [wd10b] and a jr z, .asm_e0bc - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc ld bc, sBoxMonOT jr .asm_e0c3 .asm_e0bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc ld bc, PartyMonOT @@ -9232,7 +9232,7 @@ Functione039: ; e039 cp [hl] jr z, .asm_e131 ld hl, s0_a600 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes push hl add hl, bc @@ -9242,11 +9242,11 @@ Functione039: ; e039 .asm_e11a push bc push hl - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call CopyBytes pop hl push hl - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) add hl, bc pop de pop bc @@ -9260,26 +9260,26 @@ Functione039: ; e039 ; e134 Functione134: ; e134 - ld a, PartyMon1Level - PartyMon1 + ld a, MON_LEVEL call GetPartyParamLocation ld a, [hl] - ld [PartyMon1Level - PartyMon1], a ; wow - ld a, PartyMon1Species - PartyMon1 + ld [MON_LEVEL], a ; wow + ld a, MON_SPECIES call GetPartyParamLocation ld a, [hl] ld [CurSpecies], a call GetBaseData - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld d, h ld e, l push de - ld a, PartyMon1Exp + 2 - PartyMon1 + ld a, MON_EXP + 2 call GetPartyParamLocation ld b, $1 call CalcPkmnStats pop de - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [de] inc de @@ -9296,24 +9296,29 @@ CalcPkmnStats: ; e167 ; results in $ffb5 and $ffb6 are saved in [de] ld c, $0 -.asm_e169 +.loop inc c - call Functione17b - ld a, [$ffb5] + call CalcPkmnStatC + ld a, [hMultiplicand + 1] ld [de], a inc de - ld a, [$ffb6] + ld a, [hMultiplicand + 2] ld [de], a inc de ld a, c - cp $6 - jr nz, .asm_e169 + cp STAT_SDEF + jr nz, .loop ret ; e17b -Functione17b: ; e17b +CalcPkmnStatC: ; e17b ; 'c' is 1-6 and points to the BaseStat - +; 1: HP +; 2: Attack +; 3: Defense +; 4: Speed +; 5: SpAtk +; 6: SpDef push hl push de push bc @@ -9329,17 +9334,17 @@ Functione17b: ; e17b pop hl push hl ld a, c - cp $6 - jr nz, .asm_e193 + cp STAT_SDEF + jr nz, .not_spdef rept 2 dec hl endr -.asm_e193 +.not_spdef sla c ld a, d and a - jr z, .asm_e1a5 + jr z, .SkipSqrt add hl, bc push de ld a, [hld] @@ -9348,24 +9353,25 @@ endr callba GetSquareRoot pop de -.asm_e1a5 +.SkipSqrt srl c pop hl push bc - ld bc, NAME_LENGTH + ld bc, (MON_DVS) - (MON_HP_EXP) + 1 add hl, bc pop bc ld a, c - cp $2 - jr z, .asm_e1e3 - cp $3 - jr z, .asm_e1ea - cp $4 - jr z, .asm_e1ef - cp $5 - jr z, .asm_e1f7 - cp $6 - jr z, .asm_e1f7 + cp STAT_ATK + jr z, .Attack + cp STAT_DEF + jr z, .Defense + cp STAT_SPD + jr z, .Speed + cp STAT_SATK + jr z, .Special + cp STAT_SDEF + jr z, .Special +; DV_HP = (DV_ATK & 1) << 3 + (DV_DEF & 1) << 2 + (DV_SPD & 1) << 1 + (DV_SPC & 1) push bc ld a, [hl] swap a @@ -9391,49 +9397,49 @@ endr and $1 add b pop bc - jr .asm_e1fb + jr .GotDV -.asm_e1e3 +.Attack ld a, [hl] swap a and $f - jr .asm_e1fb + jr .GotDV -.asm_e1ea +.Defense ld a, [hl] and $f - jr .asm_e1fb + jr .GotDV -.asm_e1ef +.Speed inc hl ld a, [hl] swap a and $f - jr .asm_e1fb + jr .GotDV -.asm_e1f7 +.Special inc hl ld a, [hl] and $f -.asm_e1fb - ld d, $0 +.GotDV + ld d, 0 add e ld e, a - jr nc, .asm_e202 + jr nc, .no_overflow_1 inc d -.asm_e202 +.no_overflow_1 sla e rl d srl b srl b ld a, b add e - jr nc, .asm_e20f + jr nc, .no_overflow_2 inc d -.asm_e20f +.no_overflow_2 ld [hMultiplicand + 2], a ld a, d ld [hMultiplicand + 1], a @@ -9448,55 +9454,55 @@ endr ld [hDividend + 1], a ld a, [hProduct + 3] ld [hDividend + 2], a - ld a, $64 + ld a, 100 ld [hDivisor], a - ld a, $3 + ld a, 3 ld b, a call Divide ld a, c - cp $1 - ld a, $5 - jr nz, .asm_e24e + cp STAT_HP + ld a, 5 + jr nz, .not_hp ld a, [CurPartyLevel] ld b, a ld a, [hQuotient + 2] add b - ld [$ffb6], a - jr nc, .asm_e24c + ld [hMultiplicand + 2], a + jr nc, .no_overflow_3 ld a, [hQuotient + 1] inc a - ld [$ffb5], a + ld [hMultiplicand + 1], a -.asm_e24c - ld a, $a +.no_overflow_3 + ld a, 10 -.asm_e24e +.not_hp ld b, a - ld a, [$ffb6] + ld a, [hQuotient + 2] add b - ld [$ffb6], a - jr nc, .asm_e25b - ld a, [$ffb5] + ld [hMultiplicand + 2], a + jr nc, .no_overflow_4 + ld a, [hQuotient + 1] inc a - ld [$ffb5], a + ld [hMultiplicand + 1], a -.asm_e25b - ld a, [$ffb5] - cp $4 - jr nc, .asm_e26b - cp $3 - jr c, .asm_e273 - ld a, [$ffb6] - cp $e8 - jr c, .asm_e273 +.no_overflow_4 + ld a, [hQuotient + 1] + cp (1000 / $100) + 1 + jr nc, .max_stat + cp 1000 / $100 + jr c, .stat_value_okay + ld a, [hQuotient + 2] + cp 1000 % $100 + jr c, .stat_value_okay -.asm_e26b - ld a, $3 - ld [$ffb5], a - ld a, $e7 - ld [$ffb6], a +.max_stat + ld a, 999 / $100 + ld [hMultiplicand + 1], a + ld a, 999 % $100 + ld [hMultiplicand + 2], a -.asm_e273 +.stat_value_okay pop bc pop de pop hl @@ -9528,7 +9534,7 @@ GivePoke:: ; e277 jr z, .done ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [CurItem] ld [hl], a @@ -9613,27 +9619,27 @@ endr push bc ld a, [CurPartyMon] ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, 01001 / $100 ld [hli], a ld [hl], 01001 % $100 pop bc - callba SetPkmnCaughtData - jr .asm_e3b2 + callba SetPartymonCaughtData + jr .skip_nickname .asm_e35e ld a, BANK(sBoxMonOT) call GetSRAMBank ld de, sBoxMonOT -.asm_e366 +.loop ld a, [ScriptBank] call GetFarByte ld [de], a inc hl inc de cp "@" - jr nz, .asm_e366 + jr nz, .loop ld a, [ScriptBank] call GetFarByte ld b, a @@ -9643,8 +9649,8 @@ endr call Random ld [hl], a call CloseSRAM - callba Function4db92 - jr .asm_e3b2 + callba SetBoxMonCaughtData + jr .skip_nickname .asm_e390 pop de @@ -9663,10 +9669,10 @@ endr .asm_e3a6 callba GiveANickname_YesNo pop de - jr c, .asm_e3b2 - call Functione3de + jr c, .skip_nickname + call InitNickname -.asm_e3b2 +.skip_nickname pop bc pop de ld a, b @@ -9699,7 +9705,7 @@ TextJump_WasSentToBillsPC: ; 0xe3d9 db "@" ; 0xe3de -Functione3de: ; e3de +InitNickname: ; e3de push de call LoadMenuDataHeader_0x1d75 call DisableSpriteUpdates @@ -9911,7 +9917,7 @@ UnknownText_0xe533: ; 0xe533 CheckCurPartyMonFainted: ; e538 ld hl, PartyMon1HP - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH ld b, $0 .loop ld a, [CurPartyMon] @@ -10187,7 +10193,7 @@ BugContest_SetCaughtContestMon: ; e6ce ld [CurPartySpecies], a call GetBaseData xor a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, wContestMon call ByteFill xor a @@ -10298,7 +10304,7 @@ WobbleChances: ; f9ba KnowsMove: ; f9ea - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call GetPartyParamLocation ld a, [wd262] ld b, a @@ -13485,7 +13491,7 @@ CantBeHeldText: ; 12cd2 GetPartyItemLocation: ; 12cd7 push af - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation pop af ret @@ -13530,12 +13536,12 @@ Function12cfe: ; 12cfe (4:6cfe) ld [de], a ld a, [CurPartyMon] ld hl, s0_a600 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes ld d, h ld e, l ld hl, DefaultFlypoint - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) ld a, BANK(s0_a600) call GetSRAMBank call CopyBytes @@ -13847,7 +13853,7 @@ UnknownText_0x12f00: ; 0x12f00 ; 0x12f05 Function12f05: ; 12f05 - ld a, PartyMon1MaxHP - PartyMon1 + ld a, MON_MAXHP call GetPartyParamLocation ld a, [hli] ld [hDividend + 0], a @@ -13857,7 +13863,7 @@ Function12f05: ; 12f05 ld [hDivisor], a ld b, $2 call Divide - ld a, PartyMon1HP + 1 - PartyMon1 + ld a, MON_HP + 1 call GetPartyParamLocation ld a, [hQuotient + 2] sub [hl] @@ -14119,7 +14125,7 @@ Function12fd5: ; 12fd5 .asm_130de ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes push hl @@ -14274,7 +14280,7 @@ Function131ef: ; 131ef Function13235: ; 13235 ld hl, PartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes ld a, [wcfa9] @@ -15553,7 +15559,7 @@ ApplyPokerusTick: ; 13988 ld [hl], a .does_not_have_pokerus - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH add hl, de dec c jr nz, .loop @@ -15762,7 +15768,7 @@ Function13a47: ; unreferenced .asm_13a9c ld [CurSpecies], a call GetBaseData - ld hl, PartyMon1Level - PartyMon1 + ld hl, MON_LEVEL add hl, bc ld a, [hl] cp MIN_LEVEL @@ -15777,16 +15783,16 @@ Function13a47: ; unreferenced .asm_13ab5 ld [CurPartyLevel], a - ld hl, PartyMon1MaxHP - PartyMon1 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l - ld hl, PartyMon1Exp + 2 - PartyMon1 + ld hl, MON_EXP + 2 add hl, bc ld b, $1 predef CalcPkmnStats pop hl - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop de inc e @@ -15889,7 +15895,7 @@ Function13a47: ; unreferenced .asm_13b60 pop hl push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc dec b @@ -19788,7 +19794,7 @@ Function16798: ; 16798 callba CheckCurPartyMonFainted jr c, .asm_167e9 ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes ld d, [hl] @@ -20194,7 +20200,7 @@ Function169ac: ; 169ac ld hl, wEggOT call CopyBytes ld hl, PartyMon1 - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Function16a31 ld hl, wEggMon ld bc, wEggMonEnd - wEggMon @@ -20203,14 +20209,14 @@ Function169ac: ; 169ac ld a, [PartyCount] dec a ld hl, PartyMon1 - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld b, h ld c, l - ld hl, PartyMon1ID + 1 - PartyMon1 + ld hl, MON_ID + 1 add hl, bc push hl - ld hl, PartyMon1MaxHP - PartyMon1 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l @@ -20219,7 +20225,7 @@ Function169ac: ; 169ac ld b, $0 predef CalcPkmnStats pop bc - ld hl, PartyMon1HP - PartyMon1 + ld hl, MON_HP add hl, bc xor a ld [hli], a @@ -20926,7 +20932,7 @@ DoEggStep:: ; 16f3e .next push de - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH add hl, de pop de jr .loop @@ -20967,7 +20973,7 @@ Function16f7a: ; 16f7a (5:6f7a) callba MobileFn_10608d ld a, [CurPartyMon] ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [hl] ld [CurPartySpecies], a @@ -20996,45 +21002,45 @@ Function16f7a: ; 16f7a (5:6f7a) call GetBaseData ld a, [CurPartyMon] ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes push hl - ld bc, PartyMon1MaxHP - PartyMon1 + ld bc, MON_MAXHP add hl, bc ld d, h ld e, l pop hl push hl - ld bc, PartyMon1Level - PartyMon1 + ld bc, MON_LEVEL add hl, bc ld a, [hl] ld [CurPartyLevel], a pop hl push hl - ld bc, PartyMon1Status - PartyMon1 + ld bc, MON_STATUS add hl, bc xor a ld [hli], a ld [hl], a pop hl push hl - ld bc, PartyMon1Exp + 2 - PartyMon1 + ld bc, MON_EXP + 2 add hl, bc ld b, $0 predef CalcPkmnStats pop bc - ld hl, PartyMon1MaxHP - PartyMon1 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l - ld hl, PartyMon1HP - PartyMon1 + ld hl, MON_HP add hl, bc ld a, [de] inc de ld [hli], a ld a, [de] ld [hl], a - ld hl, PartyMon1ID - PartyMon1 + ld hl, MON_ID add hl, bc ld a, [PlayerID] ld [hli], a @@ -21082,7 +21088,7 @@ Function1707d: ; 1707d (5:707d) ld hl, CurPartyMon inc [hl] pop hl - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH add hl, de pop de jp Function16f7a @@ -24244,7 +24250,7 @@ Function24dd4: ; 24dd4 ld a, [wLinkMode] and a jr nz, .skip - ld a, PartyMon1Moves - PartyMon1 + ld a, MON_MOVES call GetPartyParamLocation ld d, h ld e, l @@ -24279,7 +24285,7 @@ Function24dd4: ; 24dd4 and a jr nz, .skip2 push hl - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld d, [hl] callba ItemIsMail @@ -27902,7 +27908,7 @@ Function28499: ; 28499 .asm_284db push bc call Function284f6 - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc dec c @@ -28010,7 +28016,7 @@ Function284f6: ; 284f6 add hl, bc ld c, $5 ld b, $1 - predef Functione17b + predef CalcPkmnStatC pop bc pop de @@ -28108,7 +28114,7 @@ Function28595: ; 28595 .next pop de - ld hl, PartyMon1StatsEnd - PartyMon1Item + ld hl, (SCRATCHMON_STRUCT_LENGTH) add hl, de ld d, h ld e, l @@ -28281,7 +28287,7 @@ Function286ba: ; 286ba add hl, bc ld c, $5 ld b, $1 - predef Functione17b + predef CalcPkmnStatC pop bc pop hl ld a, [$ffb5] @@ -28294,7 +28300,7 @@ Function286ba: ; 286ba add hl, bc ld c, $6 ld b, $1 - predef Functione17b + predef CalcPkmnStatC pop bc pop hl ld a, [$ffb5] @@ -28971,13 +28977,13 @@ Function28b87: ; 28b87 .asm_28c7b ld hl, s0_a600 ld a, [DefaultFlypoint] - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes ld a, BANK(s0_a600) call GetSRAMBank ld d, h ld e, l - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) add hl, bc ld a, [DefaultFlypoint] ld c, a @@ -28987,7 +28993,7 @@ Function28b87: ; 28b87 cp $6 jr z, .asm_28ca6 push bc - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call CopyBytes pop bc jr .asm_28c96 @@ -28996,15 +29002,15 @@ Function28b87: ; 28b87 ld hl, s0_a600 ld a, [PartyCount] dec a - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes push hl ld hl, wc9f4 ld a, [wd003] - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes pop de - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call CopyBytes call CloseSRAM ld hl, PlayerName @@ -29139,7 +29145,7 @@ Function28b87: ; 28b87 ld a, c call GetPartyLocation ld de, TempMonSpecies - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes predef Functionda96 ld a, [PartyCount] @@ -30829,7 +30835,7 @@ Special_CheckTimeCapsuleCompatibility: ; 29bfb pop bc pop hl jr c, .mon_has_mail - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH add hl, de dec b jr nz, .itemloop @@ -31601,7 +31607,7 @@ ApplyMusicEffectOnEncounterRate:: ; 2a124 ApplyCleanseTagEffectOnEncounterRate:: ; 2a138 ; Cleanse Tag halves encounter rate. ld hl, PartyMon1Item - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH ld a, [PartyCount] ld c, a .loop @@ -31738,7 +31744,7 @@ CheckRepelEffect:: ; 2a1df jr z, .encounter ; Get the first Pokemon in your party that isn't fainted. ld hl, PartyMon1HP - ld bc, PartyMon2 - PartyMon1 - 1 + ld bc, PARTYMON_STRUCT_LENGTH - 1 .loop ld a, [hli] or [hl] @@ -33978,7 +33984,7 @@ Function2ed44: ; 2ed44 ld hl, PartyMon1PokerusStatus ld a, [PartyCount] ld b, a - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .loopMons ld a, [hl] and $f @@ -34104,7 +34110,7 @@ ConvertBerriesToBerryJuice: ; 2ede6 ld a, [hl] cp SHUCKLE jr nz, .loopMon - ld bc, PartyMon1Item - PartyMon1Species + ld bc, MON_ITEM add hl, bc ld a, [hl] cp BERRY @@ -34112,7 +34118,7 @@ ConvertBerriesToBerryJuice: ; 2ede6 .loopMon pop hl - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop af dec a @@ -34149,7 +34155,7 @@ FindFirstAliveMon: ; 2ee2f call DelayFrame ld b, 6 ld hl, PartyMon1HP - ld de, PartyMon2 - PartyMon1 - 1 + ld de, PARTYMON_STRUCT_LENGTH - 1 .loop ld a, [hli] @@ -34160,7 +34166,7 @@ FindFirstAliveMon: ; 2ee2f jr nz, .loop .okay - ld de, PartyMon1Level - PartyMon1HP + ld de, (MON_LEVEL) - (MON_HP) add hl, de ld a, [hl] ld [BattleMonLevel], a @@ -34614,7 +34620,7 @@ TrainerType2: ; 39806 ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Moves - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34633,14 +34639,14 @@ TrainerType2: ; 39806 ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l - ld hl, OTPartyMon1PP - OTPartyMon1 + ld hl, MON_PP add hl, de push hl - ld hl, OTPartyMon1Moves - OTPartyMon1 + ld hl, MON_MOVES add hl, de pop de @@ -34690,7 +34696,7 @@ TrainerType3: ; 39871 ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Item - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34721,7 +34727,7 @@ TrainerType4: ; 3989d ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Item - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34734,7 +34740,7 @@ TrainerType4: ; 3989d ld a, [OTPartyCount] dec a ld hl, OTPartyMon1Moves - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34753,15 +34759,15 @@ TrainerType4: ; 3989d ld a, [OTPartyCount] dec a ld hl, OTPartyMon1 - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l - ld hl, OTPartyMon1PP - OTPartyMon1 + ld hl, MON_PP add hl, de push hl - ld hl, OTPartyMon1Moves - OTPartyMon1 + ld hl, MON_MOVES add hl, de pop de @@ -35242,11 +35248,11 @@ endr ld a, [CurPartyMon] ld hl, PartyMons - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld e, l ld d, h - ld bc, PartyMon1MaxHP - PartyMon1 + ld bc, MON_MAXHP add hl, bc ld a, [hli] ld b, a @@ -35267,7 +35273,7 @@ endr ld [hl], a ld hl, TempMonSpecies - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld a, [CurSpecies] @@ -35370,7 +35376,7 @@ Function42461: ; 42461 push hl ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [hl] cp EVERSTONE @@ -35437,7 +35443,7 @@ endr ld d, a ld hl, PartyMon1Moves ld a, [CurPartyMon] - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld b, NUM_MOVES @@ -35560,7 +35566,7 @@ FillMoves: ; 424e1 jr z, .NextMove push hl ld a, [hl] - ld hl, PartyMon1PP - PartyMon1Moves + ld hl, (MON_PP) - (MON_MOVES) add hl, de push hl dec a @@ -35583,12 +35589,12 @@ FillMoves: ; 424e1 ShiftMoves: ; 4256e ld c, NUM_MOVES - 1 -.asm_42570 +.loop inc de ld a, [de] ld [hli], a dec c - jr nz, .asm_42570 + jr nz, .loop ret ; 42577 @@ -35608,7 +35614,7 @@ GetPreEvolution: ; 42581 ; if a pre-evolution is found. ld c, 0 -.asm_42583 +.loop ; For each Pokemon... ld hl, EvosAttacksPointers ld b, 0 rept 2 @@ -35617,33 +35623,33 @@ endr ld a, [hli] ld h, [hl] ld l, a -.asm_4258d +.loop2 ; For each evolution... ld a, [hli] and a - jr z, .asm_425a2 - cp EVOLVE_STAT - jr nz, .asm_42596 + jr z, .no_evolve ; If we jump, this Pokemon does not evolve into CurPartySpecies. + cp EVOLVE_STAT ; This evolution type has the extra parameter of stat comparison. + jr nz, .not_tyrogue inc hl -.asm_42596 +.not_tyrogue inc hl ld a, [CurPartySpecies] cp [hl] - jr z, .asm_425aa + jr z, .found_preevo inc hl ld a, [hl] and a - jr nz, .asm_4258d + jr nz, .loop2 -.asm_425a2 +.no_evolve inc c ld a, c cp NUM_POKEMON - jr c, .asm_42583 + jr c, .loop and a ret -.asm_425aa +.found_preevo inc c ld a, c ld [CurPartySpecies], a @@ -36173,7 +36179,7 @@ INCLUDE "data/pokedex/entry_pointers.asm" Function4456e: ; 4456e - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld d, [hl] callba ItemIsMail @@ -36181,25 +36187,25 @@ Function4456e: ; 4456e call Function44648 cp $a jr nc, .asm_445be - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) ld hl, s0_a835 call AddNTimes ld d, h ld e, l ld a, [CurPartyMon] - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) ld hl, s0_a600 call AddNTimes push hl ld a, BANK(s0_a834) call GetSRAMBank - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call CopyBytes pop hl xor a - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call ByteFill - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld [hl], $0 ld hl, s0_a834 @@ -36219,7 +36225,7 @@ Function445c0: ; 445c0 (11:45c0) ld a, b push bc ld hl, s0_a835 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes push hl add hl, bc @@ -36230,7 +36236,7 @@ Function445c0: ; 445c0 (11:45c0) cp $9 jr z, .done push bc - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call CopyBytes pop bc inc b @@ -36239,7 +36245,7 @@ Function445c0: ; 445c0 (11:45c0) ld h, d ld l, e xor a - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call ByteFill ld hl, s0_a834 dec [hl] @@ -36249,7 +36255,7 @@ Function445c0: ; 445c0 (11:45c0) ReadMailMessage: ; 445f4 ld a, b ld hl, s0_a835 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes ld d, h ld e, l @@ -36261,27 +36267,27 @@ Function44607: ; 44607 call GetSRAMBank push bc ld a, b - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) ld hl, s0_a835 call AddNTimes push hl ld a, [CurPartyMon] - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) ld hl, s0_a600 call AddNTimes ld d, h ld e, l pop hl push hl - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call CopyBytes pop hl - ld de, PartyMon1StatsEnd - PartyMon1Moves + ld de, (PARTYMON_STRUCT_LENGTH) - (MON_MOVES) add hl, de ld d, [hl] ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld [hl], d call CloseSRAM @@ -36305,7 +36311,7 @@ Function44654:: ; 44654 jr c, .asm_446c6 ld a, [CurPartyMon] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, [hl] callba ItemIsMail @@ -36315,7 +36321,7 @@ Function44654:: ; 44654 call GetSRAMBank ld a, [CurPartyMon] ld hl, s0_a600 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes ld d, h ld e, l @@ -36369,7 +36375,7 @@ GivePokeItem:: ; 446cc push af push bc ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc ld [hl], b @@ -36395,7 +36401,7 @@ GivePokeItem:: ; 446cc call CopyBytes pop af ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [hli] ld [de], a @@ -36418,11 +36424,11 @@ Function44725: ; 44725 call GetSRAMBank ld hl, s0_a600 ld de, s0_a71a - ld bc, 6 * (party_struct_length + PartyMon1 - PartyMon1Item) + ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) call CopyBytes ld hl, s0_a834 ld de, s0_aa0b - ld bc, 1 + 10 * (party_struct_length + PartyMon1 - PartyMon1Item) + ld bc, 1 + 10 * (SCRATCHMON_STRUCT_LENGTH) call CopyBytes jp CloseSRAM ; 44745 @@ -36432,11 +36438,11 @@ Function44745: ; 44745 (11:4745) call GetSRAMBank ld hl, s0_a71a ld de, s0_a600 - ld bc, 6 * (party_struct_length + PartyMon1 - PartyMon1Item) + ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) call CopyBytes ld hl, s0_aa0b ld de, s0_a834 - ld bc, 1 + 10 * (party_struct_length + PartyMon1 - PartyMon1Item) + ld bc, 1 + 10 * (SCRATCHMON_STRUCT_LENGTH) call CopyBytes jp CloseSRAM @@ -36445,11 +36451,11 @@ Function44765: ; 44765 (11:4765) call GetSRAMBank xor a ld hl, s0_a600 - ld bc, 6 * (party_struct_length + PartyMon1 - PartyMon1Item) + ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) call ByteFill xor a ld hl, s0_a834 - ld bc, 1 + 10 * (party_struct_length + PartyMon1 - PartyMon1Item) + ld bc, 1 + 10 * (SCRATCHMON_STRUCT_LENGTH) call ByteFill jp CloseSRAM ; 44781 (11:4781) @@ -36469,7 +36475,7 @@ Function44781: ; 44781 pop de pop hl ret c - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc dec e jr nz, .asm_4478b @@ -36683,7 +36689,7 @@ Function4484a: ; 0x4484a ld a, [CurPartySpecies] cp EGG jr z, .asm_44923 - ld a, PartyMon1Item - PartyMon1 + ld a, MON_ITEM call GetPartyParamLocation ld a, [hl] and a @@ -41136,7 +41142,7 @@ CheckOwnMonAnywhere: ; 0x4a721 ret c ; found! push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc call UpdateOTPointer @@ -41163,7 +41169,7 @@ CheckOwnMonAnywhere: ; 0x4a721 .loop push bc - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc call UpdateOTPointer @@ -41227,7 +41233,7 @@ endr .loopboxmon push bc - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc call UpdateOTPointer @@ -41271,7 +41277,7 @@ CheckOwnMon: ; 0x4a7ba jr nz, .notfound ; species doesn't match ; check ID number - ld bc, PartyMon1ID - PartyMon1Species + ld bc, MON_ID add hl, bc ; now hl points to ID number ld a, [PlayerID] cp [hl] @@ -41360,7 +41366,7 @@ MobileCheckOwnMonAnywhere: ; 4a843 call Function4a8dc ret c push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc call Function4a91e @@ -41382,7 +41388,7 @@ MobileCheckOwnMonAnywhere: ; 4a843 .asm_4a87c push bc - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc call Function4a91e @@ -41433,7 +41439,7 @@ endr .asm_4a8c4 push bc - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc call Function4a91e @@ -41818,7 +41824,7 @@ Function4aafb: ; 4aafb Function4ab06: ; 4ab06 ld a, [CurPartyMon] - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld a, [hli] @@ -43285,7 +43291,7 @@ CheckPokerus: ; 4d860 ld b, a ; Check each monster in the party for Pokerus ld hl, PartyMon1PokerusStatus - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH .Check ld a, [hl] and $0f ; only the bottom nybble is used @@ -43318,7 +43324,7 @@ Special_CheckForLuckyNumberWinners: ; 4d87a cp EGG call nz, .CompareLuckyNumberToMonID push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc dec d @@ -43343,7 +43349,7 @@ Special_CheckForLuckyNumberWinners: ; 4d87a .SkipOpenBoxMon push bc - ld bc, sBoxMon2 - sBoxMon1 ; box_struct_length + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc dec d @@ -43390,7 +43396,7 @@ endr .SkipBoxMon push bc - ld bc, sBoxMon2 - sBoxMon1 ; box_struct_length + ld bc, BOXMON_STRUCT_LENGTH add hl, bc pop bc dec d @@ -43538,14 +43544,14 @@ Special_PrintTodaysLuckyNumber: ; 4d9d3 CheckPartyFullAfterContest: ; 4d9e5 ld a, [wContestMon] and a - jp z, Function4db35 + jp z, .DidntCatchAnything ld [CurPartySpecies], a ld [CurSpecies], a call GetBaseData ld hl, PartyCount ld a, [hl] cp 6 - jp nc, Function4daa3 + jp nc, .TryAddToBox inc a ld [hl], a ld c, a @@ -43559,12 +43565,12 @@ CheckPartyFullAfterContest: ; 4d9e5 ld hl, PartyMon1Species ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l ld hl, wContestMon - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld a, [PartyCount] dec a @@ -43582,16 +43588,16 @@ CheckPartyFullAfterContest: ; 4d9e5 ld bc, PKMN_NAME_LENGTH call CopyBytes call GiveANickname_YesNo - jr c, .asm_4da66 + jr c, .Party_SkipNickname ld a, [PartyCount] dec a ld [CurPartyMon], a xor a ld [MonType], a ld de, wd050 - callab Functione3de + callab InitNickname -.asm_4da66 +.Party_SkipNickname ld a, [PartyCount] dec a ld hl, PartyMonNicknames @@ -43623,19 +43629,19 @@ CheckPartyFullAfterContest: ; 4d9e5 ret ; 4daa3 -Function4daa3: ; 4daa3 +.TryAddToBox: ; 4daa3 ld a, BANK(sBoxCount) call GetSRAMBank ld hl, sBoxCount ld a, [hl] cp MONS_PER_BOX call CloseSRAM - jr nc, .asm_4db08 + jr nc, .BoxFull xor a ld [CurPartyMon], a ld hl, wContestMon ld de, wd018 - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH call CopyBytes ld hl, PlayerName ld de, wd00d @@ -43647,14 +43653,14 @@ Function4daa3: ; 4daa3 call GetPokemonName call GiveANickname_YesNo ld hl, StringBuffer1 - jr c, .asm_4daf7 + jr c, .Box_SkipNickname ld a, BOXMON ld [MonType], a ld de, wd050 - callab Functione3de + callab InitNickname ld hl, wd050 -.asm_4daf7 +.Box_SkipNickname ld a, BANK(sBoxMonNicknames) call GetSRAMBank ld de, sBoxMonNicknames @@ -43662,7 +43668,7 @@ Function4daa3: ; 4daa3 call CopyBytes call CloseSRAM -.asm_4db08 +.BoxFull ld a, BANK(sBoxMon1Level) call GetSRAMBank ld a, [sBoxMon1Level] @@ -43685,7 +43691,7 @@ Function4daa3: ; 4daa3 ret ; 4db35 -Function4db35: ; 4db35 +.DidntCatchAnything: ; 4db35 ld a, $2 ld [ScriptVar], a ret @@ -43724,17 +43730,17 @@ Function4db53: ; 4db53 ld a, [MapNumber] ld c, a cp MAP_POKECENTER_2F - jr nz, .asm_4db78 + jr nz, .NotPokeCenter2F ld a, b cp GROUP_POKECENTER_2F - jr nz, .asm_4db78 + jr nz, .NotPokeCenter2F ld a, [BackupMapGroup] ld b, a ld a, [BackupMapNumber] ld c, a -.asm_4db78 +.NotPokeCenter2F call GetWorldMapLocation ld b, a ld a, [PlayerGender] @@ -43753,25 +43759,25 @@ Function4db83: ; 4db83 ret ; 4db92 -Function4db92: ; 4db92 +SetBoxMonCaughtData: ; 4db92 push bc ld a, BANK(sBoxMon1CaughtLevel) call GetSRAMBank ld hl, sBoxMon1CaughtLevel pop bc - call Function4dbaf + call SetPkmnCaughtData call CloseSRAM ret ; 4dba3 -SetPkmnCaughtData: ; 4dba3 +SetPartymonCaughtData: ; 4dba3 ld a, [PartyCount] dec a ld hl, PartyMon1CaughtLevel push bc call GetPartyLocation pop bc -Function4dbaf: ; 4dbaf +SetPkmnCaughtData: ; 4dbaf xor a ld [hli], a ld a, $7e @@ -43818,7 +43824,7 @@ _FindThatSpeciesYourTrainerID: ; 4dbe6 ret z ld a, c ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld a, [PlayerID] cp [hl] @@ -43847,7 +43853,7 @@ FindAtLeastThatHappy: ; 4dc0a dec a push hl push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc ld a, b @@ -43880,7 +43886,7 @@ FindGreaterThanThatLevel: ; 4dc31 dec a push hl push bc - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc ld a, b @@ -44810,7 +44816,7 @@ Jumptable_4e2b5: ; 4e2b5 (13:62b5) Function4e2bf: ; 4e2bf (13:62bf) ld a, [CurPartyMon] ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld b, h ld c, l @@ -45067,12 +45073,12 @@ Function4e528: ; 4e528 (13:6528) Function4e53f: ; 4e53f - ld hl, PartyMon1HP - PartyMon1 + ld hl, MON_HP add hl, bc ld a, [hli] or [hl] jr z, .asm_4e552 - ld hl, PartyMon1Status - PartyMon1 + ld hl, MON_STATUS add hl, bc ld a, [hl] and (1 << FRZ) | SLP @@ -46091,7 +46097,7 @@ Function500cf: ; 500cf Function50117: ; 50117 ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld a, [hli] @@ -46130,7 +46136,7 @@ Function50138: ; 50138 jr z, .asm_5016b push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld e, l @@ -46173,7 +46179,7 @@ Function50176: ; 50176 jr z, .asm_501a7 push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Level call AddNTimes ld e, l @@ -46214,7 +46220,7 @@ Function501b2: ; 501b2 jr z, .asm_501d5 push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Status call AddNTimes ld e, l @@ -46303,7 +46309,7 @@ Function5022f: ; 5022f jr z, .asm_5025d push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Species call AddNTimes ld a, [hl] @@ -46918,13 +46924,13 @@ DoPoisonStep:: ; 505da ; 5062e Function5062e: ; 5062e - ld a, PartyMon1Status - PartyMon1 + ld a, MON_STATUS call GetPartyParamLocation ld a, [hl] and 1 << PSN ret z - ld a, PartyMon1HP - PartyMon1 + ld a, MON_HP call GetPartyParamLocation ld a, [hli] ld b, a @@ -46942,7 +46948,7 @@ Function5062e: ; 5062e or c jr nz, .not_fainted - ld a, PartyMon1Status - PartyMon1 + ld a, MON_STATUS call GetPartyParamLocation ld [hl], 0 ld c, 2 @@ -47238,7 +47244,7 @@ _SacredAsh: ; 507e6 ; 507fb CheckAnyFaintedMon: ; 507fb - ld de, PartyMon2 - PartyMon1 + ld de, PARTYMON_STRUCT_LENGTH ld bc, PartySpecies ld hl, PartyMon1HP ld a, [PartyCount] @@ -47311,11 +47317,11 @@ CopyPkmnToTempMon: ; 5084a ld a, [MonType] ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH and a jr z, .copywholestruct ld hl, OTPartyMon1Species - ld bc, OTPartyMon2 - OTPartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH cp OTPARTYMON jr z, .copywholestruct ld bc, BOXMON_STRUCT_LENGTH @@ -47326,7 +47332,7 @@ CopyPkmnToTempMon: ; 5084a ld a, [CurPartyMon] call AddNTimes ld de, TempMon - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes .done @@ -47680,7 +47686,7 @@ GetGender: ; 50bdd ; 0: PartyMon ld hl, PartyMon1DVs - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [MonType] and a jr z, .PartyMon @@ -47692,7 +47698,7 @@ GetGender: ; 50bdd ; 2: sBoxMon ld hl, sBoxMon1DVs - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH dec a jr z, .sBoxMon @@ -48972,7 +48978,7 @@ Function51322: ; 51322 dec a ld [wd265], a ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH ld de, wd018 call Function513e0 ld hl, wd01a @@ -49010,7 +49016,7 @@ Function5138b: ; 5138b dec a ld [wd265], a ld hl, PartyMons - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld de, wd018 call Function513e0 ret @@ -53401,18 +53407,18 @@ GetHallOfFameParty: ; 8653f ld a, c ld hl, PartyMons - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes ld c, l ld b, h - ld hl, PartyMon1Species - PartyMon1 + ld hl, MON_SPECIES add hl, bc ld a, [hl] ld [de], a inc de - ld hl, PartyMon1ID - PartyMon1 + ld hl, MON_ID add hl, bc ld a, [hli] ld [de], a @@ -53421,7 +53427,7 @@ GetHallOfFameParty: ; 8653f ld [de], a inc de - ld hl, PartyMon1DVs - PartyMon1 + ld hl, MON_DVS add hl, bc ld a, [hli] ld [de], a @@ -53430,7 +53436,7 @@ GetHallOfFameParty: ; 8653f ld [de], a inc de - ld hl, PartyMon1Level - PartyMon1 + ld hl, MON_LEVEL add hl, bc ld a, [hl] ld [de], a @@ -58156,7 +58162,7 @@ Function8e86c: ; 8e86c (23:686c) push bc ld a, [hObjectStructIndexBuffer] ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop bc ld a, [hl] @@ -65078,7 +65084,7 @@ INCLUDE "engine/radio.asm" ReadPartyMonMail: ; b9229 ld a, [CurPartyMon] ld hl, s0_a600 - ld bc, PartyMon1StatsEnd - PartyMon1Item + ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes ld d, h ld e, l @@ -69880,14 +69886,14 @@ BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) call Functione2f18 jp c, BillsPCDepositFuncCancel call Functione307c - jr c, .asm_e24c1 + jr c, .no_overflow_31 ld a, $0 ld [wJumptableIndex], a xor a ld [wcb2b], a ld [wcb2a], a ret -.asm_e24c1 +.no_overflow_31 ld de, PCString_WhatsUp call Functione2a6e ret @@ -70004,11 +70010,11 @@ Functione2583: ; e2583 (38:6583) call JoyTextDelay ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_e25b9 + jr nz, .no_overflow_49 call Functione25c8 call DelayFrame jr .asm_e25a7 -.asm_e25b9 +.no_overflow_49 call ClearSprites pop af ld [hInMenu], a @@ -71520,7 +71526,7 @@ Functione2fd6: ; e2fd6 (38:6fd6) ld hl, sBoxMonOT call Functione3376 ld hl, sBoxMons - ld bc, sBoxMon2 - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes ld de, wd018 @@ -71872,7 +71878,7 @@ Functione32b0: ; e32b0 ld hl, sBoxMonOT call Functione3376 ld hl, sBoxMons - ld bc, sBoxMon1End - sBoxMon1 + ld bc, BOXMON_STRUCT_LENGTH call Functione3389 call CloseSRAM callba Function5088b @@ -71907,7 +71913,7 @@ Functione3316: ; e3316 ld hl, PartyMonOT call Functione3376 ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functione3389 xor a ld [wd10b], a @@ -75736,7 +75742,7 @@ Functionfb57e: ; fb57e .asm_fb59c ld b, h ld c, l - ld hl, OTPartyMon1Level - OTPartyMon1 + ld hl, MON_LEVEL add hl, bc ld a, [hl] cp 101 @@ -76698,19 +76704,19 @@ Functionfcc63: ; fcc63 call Functionfcdf4 ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdd7 ld de, wc6ff call Functionfce0f ld hl, PartyMon1DVs - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdd7 ld de, wc6fd call Functionfce0f ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdd7 ld b, h ld c, l @@ -76729,7 +76735,7 @@ Functionfcc63: ; fcc63 ld [wc733], a ld hl, PartyMon1Level - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdd7 ld a, [hl] ld [CurPartyLevel], a @@ -76749,7 +76755,7 @@ Functionfcc63: ; fcc63 jr c, .asm_fcd1c ld b, 1 .asm_fcd1c - callba SetPkmnCaughtData + callba SetPartymonCaughtData ld e, TRADE_NICK call GetTradeAttribute @@ -76783,7 +76789,7 @@ Functionfcc63: ; fcc63 call Functionfce0f ld hl, PartyMon1DVs - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdde ld hl, wc72f call Functionfce0f @@ -76794,7 +76800,7 @@ Functionfcc63: ; fcc63 call Functionfce15 ld hl, PartyMon1ID - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdde ld hl, wc731 call Functionfce0f @@ -76803,7 +76809,7 @@ Functionfcc63: ; fcc63 call GetTradeAttribute push hl ld hl, PartyMon1Item - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdde pop hl ld a, [hl] @@ -79685,17 +79691,17 @@ Function10510b: ; 10510b (41:510b) cp EGG jr z, .asm_10513e push hl - ld hl, PartyMon1Level - PartyMon1 + ld hl, MON_LEVEL add hl, bc ld a, [hl] ld [de], a inc de - ld hl, PartyMon1Species - PartyMon1 + ld hl, MON_SPECIES add hl, bc ld a, [hl] ld [de], a inc de - ld hl, PartyMon1Moves - PartyMon1 + ld hl, MON_MOVES add hl, bc push bc ld bc, NUM_MOVES @@ -79704,7 +79710,7 @@ Function10510b: ; 10510b (41:510b) pop hl .asm_10513e push hl - ld hl, PartyMon2 - PartyMon1 + ld hl, PARTYMON_STRUCT_LENGTH add hl, bc ld b, h ld c, l diff --git a/maps/BlackthornGym1F.asm b/maps/BlackthornGym1F.asm index ca810cf23..60e11880a 100644 --- a/maps/BlackthornGym1F.asm +++ b/maps/BlackthornGym1F.asm @@ -62,7 +62,7 @@ UnknownScript_0x194e69: iftrue UnknownScript_0x194e94 writetext UnknownText_0x195196 keeptextopen - giveitem TM_DRAGONBREATH, $1 + giveitem TM_DRAGONBREATH, 1 iffalse UnknownScript_0x194e8e itemtotext TM_DRAGONBREATH, $0 writetext UnknownText_0x1951bf diff --git a/maps/CeladonCafe.asm b/maps/CeladonCafe.asm index 7f2bb2208..ffb70ee4b 100644 --- a/maps/CeladonCafe.asm +++ b/maps/CeladonCafe.asm @@ -86,7 +86,7 @@ EatathonContestPoster: CeladonCafeTrashcan: checkevent EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE iftrue .TrashEmpty - giveitem LEFTOVERS, $1 + giveitem LEFTOVERS, 1 iffalse .PackFull loadfont itemtotext LEFTOVERS, $0 diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm index ee9013f0c..2d8703dd7 100644 --- a/maps/CeladonDeptStore6F.asm +++ b/maps/CeladonDeptStore6F.asm @@ -36,7 +36,7 @@ CeladonVendingMachine: .FreshWater checkmoney $0, 200 if_equal $2, .NotEnoughMoney - giveitem FRESH_WATER, $1 + giveitem FRESH_WATER, 1 iffalse .NotEnoughSpace takemoney $0, 200 itemtotext FRESH_WATER, $0 @@ -45,7 +45,7 @@ CeladonVendingMachine: .SodaPop checkmoney $0, 300 if_equal $2, .NotEnoughMoney - giveitem SODA_POP, $1 + giveitem SODA_POP, 1 iffalse .NotEnoughSpace takemoney $0, 300 itemtotext SODA_POP, $0 @@ -54,7 +54,7 @@ CeladonVendingMachine: .Lemonade checkmoney $0, 350 if_equal $2, .NotEnoughMoney - giveitem LEMONADE, $1 + giveitem LEMONADE, 1 iffalse .NotEnoughSpace takemoney $0, 350 itemtotext LEMONADE, $0 diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm index 7fb28360a..99aa96dfe 100644 --- a/maps/DragonsDenB1F.asm +++ b/maps/DragonsDenB1F.asm @@ -49,7 +49,7 @@ UnknownScript_0x18c8b8: loadfont writetext UnknownText_0x18c9bf keeptextopen - giveitem TM_DRAGONBREATH, $1 + giveitem TM_DRAGONBREATH, 1 iffalse UnknownScript_0x18c8f4 itemtotext TM_DRAGONBREATH, $0 writetext UnknownText_0x18c9fb @@ -122,7 +122,7 @@ TwinsLeaandpia2Script: end PokeBallScript_0x18c95a: - giveitem DRAGON_FANG, $1 + giveitem DRAGON_FANG, 1 iffalse UnknownScript_0x18c970 disappear $2 loadfont diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm index 11ab81dfb..fed21c05b 100644 --- a/maps/ElmsLab.asm +++ b/maps/ElmsLab.asm @@ -499,7 +499,7 @@ AideScript_GiveYouBalls: keeptextopen itemtotext POKE_BALL, $1 scall AideScript_ReceiveTheBalls - giveitem POKE_BALL, $5 + giveitem POKE_BALL, 5 writetext AideText_ExplainBalls keeptextopen itemnotify diff --git a/maps/GoldenrodDeptStore6F.asm b/maps/GoldenrodDeptStore6F.asm index c4f75766b..265e61ef1 100644 --- a/maps/GoldenrodDeptStore6F.asm +++ b/maps/GoldenrodDeptStore6F.asm @@ -22,7 +22,7 @@ GoldenrodVendingMachine: .FreshWater checkmoney $0, 200 if_equal $2, .NotEnoughMoney - giveitem FRESH_WATER, $1 + giveitem FRESH_WATER, 1 iffalse .NotEnoughSpace takemoney $0, 200 itemtotext FRESH_WATER, $0 @@ -31,7 +31,7 @@ GoldenrodVendingMachine: .SodaPop checkmoney $0, 300 if_equal $2, .NotEnoughMoney - giveitem SODA_POP, $1 + giveitem SODA_POP, 1 iffalse .NotEnoughSpace takemoney $0, 300 itemtotext SODA_POP, $0 @@ -40,7 +40,7 @@ GoldenrodVendingMachine: .Lemonade checkmoney $0, 350 if_equal $2, .NotEnoughMoney - giveitem LEMONADE, $1 + giveitem LEMONADE, 1 iffalse .NotEnoughSpace takemoney $0, 350 itemtotext LEMONADE, $0 diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm index 1f5bdefc8..ff5db5f81 100644 --- a/maps/GoldenrodGameCorner.asm +++ b/maps/GoldenrodGameCorner.asm @@ -64,7 +64,7 @@ UnknownScript_0x56c4d: itemtotext TM_THUNDER, $0 scall UnknownScript_0x56ca1 iffalse UnknownScript_0x56cbd - giveitem TM_THUNDER, $1 + giveitem TM_THUNDER, 1 iffalse UnknownScript_0x56cb7 takecoins 5500 jump UnknownScript_0x56ca6 @@ -75,7 +75,7 @@ UnknownScript_0x56c69: itemtotext TM_BLIZZARD, $0 scall UnknownScript_0x56ca1 iffalse UnknownScript_0x56cbd - giveitem TM_BLIZZARD, $1 + giveitem TM_BLIZZARD, 1 iffalse UnknownScript_0x56cb7 takecoins 5500 jump UnknownScript_0x56ca6 @@ -86,7 +86,7 @@ UnknownScript_0x56c85: itemtotext TM_FIRE_BLAST, $0 scall UnknownScript_0x56ca1 iffalse UnknownScript_0x56cbd - giveitem TM_FIRE_BLAST, $1 + giveitem TM_FIRE_BLAST, 1 iffalse UnknownScript_0x56cb7 takecoins 5500 jump UnknownScript_0x56ca6 diff --git a/maps/GoldenrodPokeCenter1F.asm b/maps/GoldenrodPokeCenter1F.asm index b3095b278..9053e2bca 100644 --- a/maps/GoldenrodPokeCenter1F.asm +++ b/maps/GoldenrodPokeCenter1F.asm @@ -106,7 +106,7 @@ UnknownScript_0x6104b: end UnknownScript_0x61051: - giveitem EON_MAIL, $1 + giveitem EON_MAIL, 1 writetext UnknownText_0x6252a closetext loadmovesprites diff --git a/maps/LakeofRage.asm b/maps/LakeofRage.asm index 3ecc820cb..af5461c48 100644 --- a/maps/LakeofRage.asm +++ b/maps/LakeofRage.asm @@ -85,7 +85,7 @@ GyaradosScript_0x70063: UnknownScript_0x7007a: returnafterbattle loadfont - giveitem RED_SCALE, $1 + giveitem RED_SCALE, 1 waitbutton writetext UnknownText_0x703df playsound SFX_ITEM diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm index f7c1bcc08..2adef6804 100644 --- a/maps/MahoganyTown.asm +++ b/maps/MahoganyTown.asm @@ -56,7 +56,7 @@ UnknownScript_0x190040: iffalse UnknownScript_0x190072 checkmoney $0, 300 if_equal $2, UnknownScript_0x19006c - giveitem RAGECANDYBAR, $1 + giveitem RAGECANDYBAR, 1 iffalse UnknownScript_0x190078 waitbutton playsound SFX_TRANSACTION diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm index 604b74022..fabe40dac 100644 --- a/maps/MrPokemonsHouse.asm +++ b/maps/MrPokemonsHouse.asm @@ -28,7 +28,7 @@ UnknownScript_0x196e56: writetext UnknownText_0x196fa8 keeptextopen waitbutton - giveitem MYSTERY_EGG, $1 + giveitem MYSTERY_EGG, 1 writetext UnknownText_0x196fd2 playsound SFX_KEY_ITEM waitbutton diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm index 330e02ebc..be1383480 100644 --- a/maps/PokemonFanClub.asm +++ b/maps/PokemonFanClub.asm @@ -69,7 +69,7 @@ UnknownScript_0x191844: writetext UnknownText_0x191c5a keeptextopen waitbutton - giveitem LOST_ITEM, $1 + giveitem LOST_ITEM, 1 iffalse UnknownScript_0x191865 disappear $6 writetext UnknownText_0x191d0a diff --git a/maps/Route39Farmhouse.asm b/maps/Route39Farmhouse.asm index 8509bff61..9b63096d7 100644 --- a/maps/Route39Farmhouse.asm +++ b/maps/Route39Farmhouse.asm @@ -25,7 +25,7 @@ UnknownScript_0x9cec5: iffalse UnknownScript_0x9cf02 checkmoney $0, 500 if_equal $2, UnknownScript_0x9cef6 - giveitem MOOMOO_MILK, $1 + giveitem MOOMOO_MILK, 1 iffalse UnknownScript_0x9cefc takemoney $0, 500 special Function24ae8 diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 821a8eaf8..c8fba9be1 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -6527,7 +6527,7 @@ Function102bdc: ; 102bdc jr nz, .asm_102c05 .asm_102bfa - ld bc, OTPartyMon1Level - OTPartyMon1 + ld bc, MON_LEVEL add hl, bc ld a, [hl] cp MAX_LEVEL + 1 @@ -6718,7 +6718,7 @@ Function102d48: ; 102d48 call SetSeenAndCaughtMon ld a, [wcd4c] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Happiness call AddNTimes ld [hl], BASE_HAPPINESS @@ -6729,7 +6729,7 @@ Function102d48: ; 102d48 jr nz, .asm_102d98 ld a, [wcd4c] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1DVs call AddNTimes predef GetUnownLetter diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index c7efdac3c..1c0b56afa 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -4101,7 +4101,7 @@ Function119d93: ; 119d93 (46:5d93) call SimpleMultiply ld hl, wcd50 ld [hl], a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld de, PartyMon1Level ld a, [PartyCount] .asm_119daf @@ -4143,7 +4143,7 @@ Function119dd1: ; 119dd1 (46:5dd1) ld a, $1 ld [rSVBK], a ; $ff00+$70 ld hl, PartyMon1Level - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld de, PartySpecies ld a, [PartyCount] .asm_119deb @@ -7867,7 +7867,7 @@ Function11b98f: ; 11b98f ld a, $ff ld [bc], a ld hl, PartyMon1Species - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, e ld [wcd2a], a .loop2 @@ -7881,7 +7881,7 @@ Function11b98f: ; 11b98f ld l, a ld a, [wcd23] ld h, a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld hl, PartyMonOT ld bc, NAME_LENGTH @@ -7920,7 +7920,7 @@ Function11b98f: ; 11b98f ld a, "@" ld [de], a ld hl, s0_a600 - ld bc, party_struct_length - 1 + ld bc, PARTYMON_STRUCT_LENGTH - 1 ld a, [wcd2a] .loop5 add hl, bc @@ -7935,7 +7935,7 @@ Function11b98f: ; 11b98f ld l, a ld a, [wcd29] ld h, a - ld bc, party_struct_length - 1 + ld bc, PARTYMON_STRUCT_LENGTH - 1 call CopyBytes call CloseSRAM ret diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 50c064c9c..2cb0cccf0 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -431,7 +431,7 @@ Function1702b7: ; 1702b7 ld [bc], a inc bc push bc - ld bc, party_struct_length + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes push de ld a, [BGMapBuffer] @@ -648,7 +648,7 @@ CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 ld hl, BT_OTrainer ; $d100 ld de, wBT_OTTempCopy ; $c608 ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 - ; = $a + $1 + BATTLETOWER_NROFPKMNS * (party_struct_length + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH + ; = $a + $1 + BATTLETOWER_NROFPKMNS * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH call CopyBytes pop af ld [rSVBK], a diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 66d696729..e1928a440 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -410,7 +410,7 @@ Function17d1f1: ; 17d1f1 ld hl, PartyMon1DVs ld a, [PartyCount] dec a - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes predef GetUnownLetter callab Functionfba18 @@ -2398,7 +2398,7 @@ Function17ded9: ; 17ded9 ld a, [hli] ld b, a push hl - callba SetPkmnCaughtData + callba SetPartymonCaughtData pop hl pop bc jr .asm_17df5e @@ -2585,7 +2585,7 @@ Function17e026: ; 17e026 ld b, a push hl call CloseSRAM - callba Function4db92 + callba SetBoxMonCaughtData ld a, $1 call GetSRAMBank pop hl diff --git a/predef/cgb.asm b/predef/cgb.asm index b5c7aedf7..c15265db5 100644 --- a/predef/cgb.asm +++ b/predef/cgb.asm @@ -615,7 +615,7 @@ Function91e4: ; 91e4 .asm_91f5 ld hl, PartyMon1DVs - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes ld c, l diff --git a/sram.asm b/sram.asm index 04a1bfdaa..8046fd1db 100644 --- a/sram.asm +++ b/sram.asm @@ -9,12 +9,12 @@ sScratch:: SECTION "SRAM Bank 0", SRAM [$a600], BANK [0] -s0_a600:: ds 6 * (party_struct_length + PartyMon1 - PartyMon1Item) -s0_a71a:: ds 6 * (party_struct_length + PartyMon1 - PartyMon1Item) +s0_a600:: ds 6 * (SCRATCHMON_STRUCT_LENGTH) +s0_a71a:: ds 6 * (SCRATCHMON_STRUCT_LENGTH) s0_a834:: ds 1 -s0_a835:: ds 10 * (party_struct_length + PartyMon1 - PartyMon1Item) +s0_a835:: ds 10 * (SCRATCHMON_STRUCT_LENGTH) s0_aa0b:: ds 1 -s0_aa0c:: ds 10 * (party_struct_length + PartyMon1 - PartyMon1Item) +s0_aa0c:: ds 10 * (SCRATCHMON_STRUCT_LENGTH) sMysteryGiftItem:: ds 1 s0_abe3:: ds 1 diff --git a/wram.asm b/wram.asm index 0b70142af..91c2c52a1 100644 --- a/wram.asm +++ b/wram.asm @@ -4,7 +4,6 @@ flag_array: MACRO ds ((\1) + 7) / 8 ENDM -box_struct_length EQU 24 + NUM_MOVES * 2 ; 32 box_struct: MACRO \1Species:: db \1Item:: db @@ -30,7 +29,6 @@ box_struct: MACRO \1End:: ENDM -party_struct_length EQU box_struct_length + 16 party_struct: MACRO box_struct \1 \1Status:: db @@ -76,7 +74,7 @@ box: MACRO \1Species:: ds MONS_PER_BOX + 1 \1Mons:: \1Mon1:: box_struct \1Mon1 -\1Mon2:: ds box_struct_length * (MONS_PER_BOX +- 1) +\1Mon2:: ds BOXMON_STRUCT_LENGTH * (MONS_PER_BOX +- 1) \1MonOT:: ds NAME_LENGTH * MONS_PER_BOX \1MonNicknames:: ds PKMN_NAME_LENGTH * MONS_PER_BOX \1MonNicknamesEnd:: @@ -129,7 +127,6 @@ channel_struct: MACRO ds 1 ; c131 ds 1 ; c132 ENDM -GLOBAL box_struct_length, party_struct_length INCLUDE "vram.asm" @@ -885,15 +882,15 @@ wc7e8:: ds 24 RSSET 0 ; Offsets for wBT_OTTempCopy:: @ $c608 -wBT_OTTempCopy_0 RB 10 ; $c608 +wBT_OTTempCopy_0 RB NAME_LENGTH + -1 ; $c608 wBT_OTTempCopy_TrainerClass RB 1 ; $c608 + $a = $c612 -wBT_OTTempCopy_Pkmn1 RB party_struct_length ; $c608 + $b = $c613 +wBT_OTTempCopy_Pkmn1 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $b = $c613 wBT_OTTempCopy_Pkmn1Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $45 = $c64d wBT_OTTempCopy_45 RB 1 -wBT_OTTempCopy_Pkmn2 RB party_struct_length ; $c608 + $46 = $c64e +wBT_OTTempCopy_Pkmn2 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $46 = $c64e wBT_OTTempCopy_Pkmn2Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $76 = $c67e wBT_OTTempCopy_80 RB 1 -wBT_OTTempCopy_Pkmn3 RB party_struct_length ; $c608 + $81 = $c689 +wBT_OTTempCopy_Pkmn3 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $81 = $c689 wBT_OTTempCopy_Pkmn3Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $b1 = $c6b9 wBT_OTTempCopy_BB RB 1 -- cgit v1.2.3 From 94c720832a577be03a471de6db27eba09a96e946 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 11:45:30 -0500 Subject: Additional pass for dba --- main.asm | 120 +++++++++++++++++++++++++++++++-------------------------------- 1 file changed, 60 insertions(+), 60 deletions(-) diff --git a/main.asm b/main.asm index d9fdb065c..3a26cb862 100644 --- a/main.asm +++ b/main.asm @@ -10119,15 +10119,15 @@ Functione5d9: ; unreferenced ; e66e Unknown_e66e: ; e66e - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -41323,15 +41323,15 @@ CheckOwnMon: ; 0x4a7ba ; 0x4a810 BoxAddressTable1: ; 4a810 - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -41485,15 +41485,15 @@ Function4a8dc: ; 4a8dc ; 4a8f4 BoxAddressTable2: ; 4a8f4 - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -43380,7 +43380,7 @@ endr ld b, h ld c, l inc bc - ld de, MONS_PER_BOX + NUM_MOVES + 4 + ld de, sBoxMon1ID - sBox add hl, de ld d, a .BoxNLoop @@ -43389,7 +43389,7 @@ endr cp EGG jr z, .SkipBoxMon - call .CompareLuckyNumberToMonID + call .CompareLuckyNumberToMonID ; sets ScriptVar and CurPartySpecies appropriately jr nc, .SkipBoxMon ld a, 1 ld [wFoundMatchingIDInParty], a @@ -43480,11 +43480,11 @@ endr inc b ld a, [ScriptVar] and a - jr z, .foundmatch + jr z, .bettermatch cp b jr c, .nomatch -.foundmatch +.bettermatch dec b ld a, b ld [ScriptVar], a @@ -43503,15 +43503,15 @@ endr ; 4d99f .BoxBankAddresses: ; 4d99f - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -71982,15 +71982,15 @@ endr Unknown_e33a6: ; e33a6 ; bank, address - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -72215,15 +72215,15 @@ endr ; e36a5 (38:76a5) .boxbanks: ; e36a5 - dbw BANK(sBox1), sBox1 - dbw BANK(sBox2), sBox2 - dbw BANK(sBox3), sBox3 - dbw BANK(sBox4), sBox4 - dbw BANK(sBox5), sBox5 - dbw BANK(sBox6), sBox6 - dbw BANK(sBox7), sBox7 - dbw BANK(sBox8), sBox8 - dbw BANK(sBox9), sBox9 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 dba sBox10 dba sBox11 dba sBox12 @@ -72233,8 +72233,8 @@ endr Functione36cf: ; e36cf (38:76cf) hlcoord 0, 0 - ld b, $2 - ld c, $12 + ld b, 2 + ld c, 18 call TextBox hlcoord 1, 2 ld de, String_e36f1 -- cgit v1.2.3 From cf5d726b7f00633acad3cdf0c25178bde5fc14fb Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 14:02:11 -0500 Subject: Mon submenu, engine/menu.asm --- battle/core.asm | 52 +- constants/misc_constants.asm | 3 + constants/pokemon_constants.asm | 27 + engine/menu.asm | 587 ++++++++++++++++++++ engine/pack.asm | 24 +- engine/save.asm | 2 +- engine/scripting.asm | 2 +- event/buena.asm | 4 +- event/kurt.asm | 4 +- event/mom.asm | 2 +- event/move_deleter.asm | 2 +- event/unown.asm | 2 +- gfx/battle/expbar.2bpp | Bin 0 -> 144 bytes gfx/unknown/0f8b10.2bpp | Bin 144 -> 0 bytes home/menu.asm | 26 +- home/tilemap.asm | 10 +- items/item_effects.asm | 12 +- main.asm | 1128 ++++++++++----------------------------- misc/battle_tower_47.asm | 8 +- misc/mobile_22.asm | 14 +- misc/mobile_22_2.asm | 8 +- misc/mobile_40.asm | 76 +-- misc/mobile_45.asm | 12 +- misc/mobile_46.asm | 50 +- misc/mobile_5b.asm | 2 +- misc/mobile_5c.asm | 2 +- misc/mobile_5f.asm | 8 +- wram.asm | 8 +- 28 files changed, 1057 insertions(+), 1018 deletions(-) create mode 100755 engine/menu.asm create mode 100644 gfx/battle/expbar.2bpp delete mode 100644 gfx/unknown/0f8b10.2bpp diff --git a/battle/core.asm b/battle/core.asm index 12c5fe190..ac3c1b5b0 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2860,13 +2860,13 @@ Function3d1f8: ; 3d1f8 .asm_3d20a lb bc, 1, 7 call PlaceYesNoBox - ld a, [wcfa9] + ld a, [MenuSelection2] jr c, .asm_3d217 and a ret .asm_3d217 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .asm_3d20a ld hl, PartyMon1Speed @@ -3684,7 +3684,7 @@ Function3d74b: ; 3d74b call StdBattleTextBox lb bc, 1, 7 call PlaceYesNoBox - ld a, [wcfa9] + ld a, [MenuSelection2] dec a jr nz, .asm_3d79a call Function3d2f7 @@ -5288,7 +5288,7 @@ Function3e234: ; 3e234 .asm_3e25d call Function3f47c ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a call ExitMenu call Function3df2c call WaitBGMap @@ -5328,7 +5328,7 @@ Function3e299: call Function3e2f5 jr c, .asm_3e2c8 call Function1bee - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jp z, Function3e358 cp $2 @@ -5533,7 +5533,7 @@ BattleMonEntrance: ; 3e40b call SetPlayerTurn call SpikesDamage ld a, $2 - ld [wcfa9], a + ld [MenuSelection2], a ret ; 3e459 @@ -5563,7 +5563,7 @@ PassedBattleMonEntrance: ; 3e459 BattleMenu_Run: ; 3e489 call Call_LoadTempTileMapToTileMap ld a, $3 - ld [wcfa9], a + ld [MenuSelection2], a ld hl, BattleMonSpeed ld de, EnemyMonSpeed call TryToRunAwayFromBattle @@ -5659,7 +5659,7 @@ MoveSelectionScreen: ; 3e4bc inc a .asm_3e53e - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a ld a, [wd0eb] @@ -5726,9 +5726,9 @@ MoveSelectionScreen: ; 3e4bc xor a ld [wd0e3], a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a - ld [wcfa9], a + ld [MenuSelection2], a ld b, a ld a, [wd235] dec a @@ -5751,7 +5751,7 @@ MoveSelectionScreen: ; 3e4bc ret nz ld hl, BattleMonPP - ld a, [wcfa9] + ld a, [MenuSelection2] ld c, a ld b, 0 add hl, bc @@ -5767,7 +5767,7 @@ MoveSelectionScreen: ; 3e4bc ld a, [wc6e1] and a jr nz, .asm_3e606 - ld a, [wcfa9] + ld a, [MenuSelection2] ld hl, BattleMonMoves ld c, a ld b, 0 @@ -5797,17 +5797,17 @@ MoveSelectionScreen: ; 3e4bc ; 3e61d .asm_3e61d - ld a, [wcfa9] + ld a, [MenuSelection2] and a jp nz, .asm_3e57a ld a, [wd0eb] inc a - ld [wcfa9], a + ld [MenuSelection2], a jp .asm_3e57a ; 3e62e .asm_3e62e ; 3e62e - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [wd0eb] rept 2 @@ -5816,7 +5816,7 @@ endr cp b jp nz, .asm_3e57a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a jp .asm_3e57a ; 3e643 @@ -5833,7 +5833,7 @@ endr swap a and $f ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] cp b jr nz, .asm_3e671 ld a, [hl] @@ -5852,7 +5852,7 @@ endr ld a, [hl] and $f ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] swap a add b ld [hl], a @@ -5886,7 +5886,7 @@ endr ld d, h ld e, l pop hl - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, 0 @@ -5899,7 +5899,7 @@ endr ret .asm_3e6bf - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0e3], a jp MoveSelectionScreen ; 3e6c8 @@ -5921,7 +5921,7 @@ MoveInfoBox: ; 3e6c8 swap a and $f ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] cp b jr nz, .asm_3e6f4 @@ -5931,11 +5931,11 @@ MoveInfoBox: ; 3e6c8 jr .done .asm_3e6f4 - ld hl, wcfa9 + ld hl, MenuSelection2 dec [hl] call SetPlayerTurn ld hl, BattleMonMoves - ld a, [wcfa9] + ld a, [MenuSelection2] ld c, a ld b, 0 add hl, bc @@ -5948,7 +5948,7 @@ MoveInfoBox: ; 3e6c8 ld [MonType], a callab Functionf8ec - ld hl, wcfa9 + ld hl, MenuSelection2 ld c, [hl] inc [hl] ld b, 0 @@ -7250,9 +7250,9 @@ Function3edad: ; 3edad ld hl, VTiles2 tile $73 lb bc, BANK(GFX_f8ae0), 6 call Get1bpp - ld de, GFX_f8b10 + ld de, ExpBarGFX ld hl, VTiles2 tile $55 - lb bc, BANK(GFX_f8b10), 8 + lb bc, BANK(ExpBarGFX), 8 jp Get2bpp ; 3edd1 diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index a1ca51c9e..173f0145f 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -7,6 +7,7 @@ MAX_PC_ITEMS EQU 50 ; strings PLAYER_NAME_LENGTH EQU 8 +BOX_NAME_LENGTH EQU 9 PKMN_NAME_LENGTH EQU 11 MOVE_NAME_LENGTH EQU 13 ITEM_NAME_LENGTH EQU 13 @@ -161,3 +162,5 @@ const_value = 1 HMENURETURN_SCRIPT EQU %10000000 HMENURETURN_ASM EQU %11111111 + +NUM_MON_SUBMENU_ITEMS EQU 8 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 683e2ceab..4fe16d09c 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -292,3 +292,30 @@ MON_SDF EQUS "PartyMon1SpclDef - PartyMon1" BOXMON_STRUCT_LENGTH EQUS "PartyMon1End - PartyMon1" PARTYMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1" SCRATCHMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1Item" + +const_value SET 1 + const MONMENU_CUT ; 1 + const MONMENU_FLY ; 2 + const MONMENU_SURF ; 3 + const MONMENU_STRENGTH ; 4 + const MONMENU_WATERFALL ; 5 + const MONMENU_FLASH ; 6 + const MONMENU_WHIRLPOOL ; 7 + const MONMENU_DIG ; 8 + const MONMENU_TELEPORT ; 9 + const MONMENU_SOFTBOILED ; 10 + const MONMENU_HEADBUTT ; 11 + const MONMENU_ROCKSMASH ; 12 + const MONMENU_MILKDRINK ; 13 + const MONMENU_SWEETSCENT ; 14 + + const MONMENU_STATS ; 15 + const MONMENU_SWITCH ; 16 + const MONMENU_ITEM ; 17 + const MONMENU_CANCEL ; 18 + const MONMENU_MOVE ; 19 + const MONMENU_MAIL ; 20 + const MONMENU_ERROR ; 21 + +MONMENU_FIELD_MOVE EQU 0 +MONMENU_MENUOPTION EQU 1 diff --git a/engine/menu.asm b/engine/menu.asm new file mode 100755 index 000000000..c1d2949d0 --- /dev/null +++ b/engine/menu.asm @@ -0,0 +1,587 @@ +Function2400e:: ; 2400e + ld hl, Function1c66 + ld a, [wcf94] + rst FarCall + call Function24085 + call UpdateSprites + call Function321c + call Function2408f + ret +; 24022 + +Function24022:: ; 24022 + ld hl, Function1c66 + ld a, [wcf94] + rst FarCall + call Function24085 + callba MobileTextBorder + call UpdateSprites + call Function321c + call Function2408f + ret +; 2403c + +Function2403c:: ; 2403c + ld hl, Function1c66 + ld a, [wcf94] + rst FarCall + call Function24085 + callba MobileTextBorder + call UpdateSprites + call Function321c + call Function2411a + ld hl, wcfa5 + set 7, [hl] +.asm_2405a + call DelayFrame + callba Function10032e + ld a, [wcd2b] + and a + jr nz, .asm_24076 + call Function241ba + ld a, [wcfa8] + and c + jr z, .asm_2405a + call Function24098 + ret + +.asm_24076 + ld a, [wcfa4] + ld c, a + ld a, [wcfa3] + call SimpleMultiply + ld [wMenuCursorBuffer], a + and a + ret +; 24085 + + + +Function24085: ; 24085 + xor a + ld [hBGMapMode], a + call MenuBox + call Function240db + ret +; 2408f + +Function2408f: ; 2408f + call Function2411a + call Function1bc9 + call Function1ff8 + +Function24098: ; 24098 + ld a, [wMenuData2Flags] + bit 1, a + jr z, .asm_240a6 + call Function1bdd + bit 2, a + jr nz, .asm_240c9 + +.asm_240a6 + ld a, [wMenuData2Flags] + bit 0, a + jr nz, .asm_240b4 + call Function1bdd + bit 1, a + jr nz, .asm_240cb + +.asm_240b4 + ld a, [wcfa4] + ld c, a + ld a, [MenuSelection2] + dec a + call SimpleMultiply + ld c, a + ld a, [wcfaa] + add c + ld [wMenuCursorBuffer], a + and a + ret + +.asm_240c9 + scf + ret + +.asm_240cb + scf + ret +; 240cd + +Function240cd: ; 240cd + ld a, [wMenuData2Items] + and $f + ret +; 240d3 + +Function240d3: ; 240d3 + ld a, [wMenuData2Items] + swap a + and $f + ret +; 240db + +Function240db: ; 240db + ld hl, wcf95 + ld e, [hl] + inc hl + ld d, [hl] + call Function1cc6 + call GetTileCoord + call Function240d3 + ld b, a +.asm_240eb + push bc + push hl + call Function240cd + ld c, a +.asm_240f1 + push bc + ld a, [wcf94] + call Function201c + inc de + ld a, [wcf93] + ld c, a + ld b, $0 + add hl, bc + pop bc + dec c + jr nz, .asm_240f1 + pop hl + ld bc, $28 + add hl, bc + pop bc + dec b + jr nz, .asm_240eb + ld hl, wcf98 + ld a, [hli] + ld h, [hl] + ld l, a + or h + ret z + ld a, [wcf97] + rst FarCall + ret +; 2411a + + +Function2411a: ; 2411a (9:411a) + call Function1cc6 + ld a, b + ld [wcfa1], a + dec c + ld a, c + ld [wcfa2], a + call Function240d3 + ld [wcfa3], a + call Function240cd + ld [wcfa4], a + call Function24179 + call Function2418a + call Function24193 + ld a, [wcfa4] + ld e, a + ld a, [wMenuCursorBuffer] + ld b, a + xor a + ld d, $0 +.asm_24146 + inc d + add e + cp b + jr c, .asm_24146 + sub e + ld c, a + ld a, b + sub c + and a + jr z, .asm_24157 + cp e + jr z, .asm_24159 + jr c, .asm_24159 +.asm_24157 + ld a, $1 +.asm_24159 + ld [wcfaa], a + ld a, [wcfa3] + ld e, a + ld a, d + and a + jr z, .asm_24169 + cp e + jr z, .asm_2416b + jr c, .asm_2416b +.asm_24169 + ld a, $1 +.asm_2416b + ld [MenuSelection2], a + xor a + ld [wcfab], a + ld [wcfac], a + ld [wcfad], a + ret +; 24179 + +Function24179: ; 24179 + xor a + ld hl, wcfa5 + ld [hli], a + ld [hld], a + ld a, [wMenuData2Flags] + bit 5, a + ret z + set 5, [hl] + set 4, [hl] + ret +; 2418a + +Function2418a: ; 2418a + ld a, [wcf93] + or $20 + ld [wcfa7], a + ret +; 24193 + +Function24193: ; 24193 + ld hl, wMenuData2Flags + ld a, $1 + bit 0, [hl] + jr nz, .asm_2419e + or $2 + +.asm_2419e + bit 1, [hl] + jr z, .asm_241a4 + or $4 + +.asm_241a4 + ld [wcfa8], a + ret +; 241a8 + + +Function241a8:: ; 241a8 + call Function24329 +Function241ab:: ; 241ab + ld hl, wcfa6 + res 7, [hl] + ld a, [hBGMapMode] + push af + call Function24216 + pop af + ld [hBGMapMode], a + ret +; 241ba + +Function241ba: ; 241ba + ld hl, wcfa6 + res 7, [hl] + ld a, [hBGMapMode] + push af + call Function2431a + call Function24249 + jr nc, .asm_241cd + call Function24270 + +.asm_241cd + pop af + ld [hBGMapMode], a + call Function1bdd + ld c, a + ret +; 241d5 + + +Function241d5: ; 241d5 + call Function24329 +.loop + call Function2431a + call Function10402d ; BUG: This function is in another bank. + ; Pointer in current bank (9) is bogus. + call Function241fa + jr nc, .done + call Function24270 + jr c, .done + ld a, [wcfa5] + bit 7, a + jr nz, .done + call Function1bdd + ld c, a + ld a, [wcfa8] + and c + jr z, .loop + +.done + ret +; 241fa + +Function241fa: ; 241fa +.loop + call Function24259 + ret c + ld c, 1 + ld b, 3 + call Function10062d ; BUG: This function is in another bank. + ; Pointer in current bank (9) is bogus. + ret c + callba Function100337 + ret c + ld a, [wcfa5] + bit 7, a + jr z, .loop + and a + ret +; 24216 + + +Function24216: ; 24216 +.asm_24216 + call Function2431a + call Function24238 + call Function24249 + jr nc, .asm_24237 + call Function24270 + jr c, .asm_24237 + ld a, [wcfa5] + bit 7, a + jr nz, .asm_24237 + call Function1bdd + ld b, a + ld a, [wcfa8] + and b + jr z, .asm_24216 + +.asm_24237 + ret +; 24238 + +Function24238: ; 24238 + ld a, [hOAMUpdate] + push af + ld a, $1 + ld [hOAMUpdate], a + call WaitBGMap + pop af + ld [hOAMUpdate], a + xor a + ld [hBGMapMode], a + ret +; 24249 + +Function24249: ; 24249 +.asm_24249 + call RTC + call Function24259 + ret c + ld a, [wcfa5] + bit 7, a + jr z, .asm_24249 + and a + ret +; 24259 + +Function24259: ; 24259 + ld a, [wcfa5] + bit 6, a + jr z, .asm_24266 + callab Function8cf62 + +.asm_24266 + call JoyTextDelay + call Function1bdd + and a + ret z + scf + ret +; 24270 + +Function24270: ; 24270 + call Function1bdd + bit 0, a + jp nz, Function24318 + bit 1, a + jp nz, Function24318 + bit 2, a + jp nz, Function24318 + bit 3, a + jp nz, Function24318 + bit 4, a + jr nz, .asm_242fa + bit 5, a + jr nz, .asm_242dc + bit 6, a + jr nz, .asm_242be + bit 7, a + jr nz, .asm_242a0 + and a + ret + +.asm_24299: ; 24299 + ld hl, wcfa6 + set 7, [hl] + scf + ret + +.asm_242a0 + ld hl, MenuSelection2 + ld a, [wcfa3] + cp [hl] + jr z, .asm_242ac + inc [hl] + xor a + ret + +.asm_242ac + ld a, [wcfa5] + bit 5, a + jr nz, .asm_242ba + bit 3, a + jp nz, .asm_24299 + xor a + ret + +.asm_242ba + ld [hl], $1 + xor a + ret + +.asm_242be + ld hl, MenuSelection2 + ld a, [hl] + dec a + jr z, .asm_242c8 + ld [hl], a + xor a + ret + +.asm_242c8 + ld a, [wcfa5] + bit 5, a + jr nz, .asm_242d6 + bit 2, a + jp nz, .asm_24299 + xor a + ret + +.asm_242d6 + ld a, [wcfa3] + ld [hl], a + xor a + ret + +.asm_242dc + ld hl, wcfaa + ld a, [hl] + dec a + jr z, .asm_242e6 + ld [hl], a + xor a + ret + +.asm_242e6 + ld a, [wcfa5] + bit 4, a + jr nz, .asm_242f4 + bit 1, a + jp nz, .asm_24299 + xor a + ret + +.asm_242f4 + ld a, [wcfa4] + ld [hl], a + xor a + ret + +.asm_242fa + ld hl, wcfaa + ld a, [wcfa4] + cp [hl] + jr z, .asm_24306 + inc [hl] + xor a + ret + +.asm_24306 + ld a, [wcfa5] + bit 4, a + jr nz, .asm_24314 + bit 0, a + jp nz, .asm_24299 + xor a + ret + +.asm_24314 + ld [hl], $1 + xor a + ret +; 24318 + +Function24318: ; 24318 + xor a + ret +; 2431a + +Function2431a: ; 2431a + ld hl, wcfac + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + cp $ed + jr nz, Function24329 + ld a, [wcfab] + ld [hl], a + +Function24329: ; 24329 + ld a, [wcfa1] + ld b, a + ld a, [wcfa2] + ld c, a + call GetTileCoord + ld a, [wcfa7] + swap a + and $f + ld c, a + ld a, [MenuSelection2] + ld b, a + xor a + dec b + jr z, .asm_24348 +.asm_24344 + add c + dec b + jr nz, .asm_24344 + +.asm_24348 + ld c, $14 + call AddNTimes + ld a, [wcfa7] + and $f + ld c, a + ld a, [wcfaa] + ld b, a + xor a + dec b + jr z, .asm_2435f +.asm_2435b + add c + dec b + jr nz, .asm_2435b + +.asm_2435f + ld c, a + add hl, bc + ld a, [hl] + cp $ed + jr z, .asm_2436b + ld [wcfab], a + ld [hl], $ed + +.asm_2436b + ld a, l + ld [wcfac], a + ld a, h + ld [wcfad], a + ret +; 24374 diff --git a/engine/pack.asm b/engine/pack.asm index 6b471e045..d5878b7dd 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -70,7 +70,7 @@ Function10067: ; 10067 (4:4067) call Function350c ld a, [wd0e4] ld [wd0df], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wItemsPocketCursor], a ld b, $7 ld c, $3 @@ -98,7 +98,7 @@ Function100a6: ; 100a6 (4:40a6) call Function350c ld a, [wd0e4] ld [wd0e0], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wKeyItemsPocketCursor], a ld b, $3 ld c, $7 @@ -141,7 +141,7 @@ Function100e8: ; 100e8 (4:40e8) call ExitMenu pop hl ret c - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function1086b jp [hl] @@ -228,7 +228,7 @@ Function10198: ; 10198 (4:4198) call Function350c ld a, [wd0e4] ld [wd0e1], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wBallsPocketCursor], a ld b, $1 ld c, $5 @@ -301,7 +301,7 @@ Function101c5: ; 101c5 (4:41c5) call ExitMenu pop hl ret c - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function1086b jp [hl] @@ -728,7 +728,7 @@ Function104fa: ; 104fa (4:44fa) call Function350c ld a, [wd0e4] ld [wd0df], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wItemsPocketCursor], a ld b, $7 ld c, $3 @@ -756,7 +756,7 @@ Function10539: ; 10539 (4:4539) call Function350c ld a, [wd0e4] ld [wd0e0], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wKeyItemsPocketCursor], a ld b, $3 ld c, $7 @@ -807,7 +807,7 @@ Function105a6: ; 105a6 (4:45a6) call Function350c ld a, [wd0e4] ld [wd0e1], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wBallsPocketCursor], a ld b, $1 ld c, $5 @@ -836,7 +836,7 @@ Function105dc: ; 105dc (4:45dc) call ExitMenu pop hl ret c - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function1086b jp [hl] @@ -1013,7 +1013,7 @@ Jumptable_106d1: ; 106d1 (4:46d1) call Function350c ld a, [wd0e4] ld [wd0df], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wItemsPocketCursor], a ret @@ -1029,7 +1029,7 @@ Jumptable_106d1: ; 106d1 (4:46d1) call Function350c ld a, [wd0e4] ld [wd0e0], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wKeyItemsPocketCursor], a ret @@ -1054,7 +1054,7 @@ Jumptable_106d1: ; 106d1 (4:46d1) call Function350c ld a, [wd0e4] ld [wd0e1], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wBallsPocketCursor], a ret diff --git a/engine/save.asm b/engine/save.asm index fa9aeda12..338d6bc40 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -212,7 +212,7 @@ SaveTheGame_yesorno: ; 14baf call LoadMenuTextBox lb bc, 0, 7 call PlaceYesNoBox - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call WriteBackup push af diff --git a/engine/scripting.asm b/engine/scripting.asm index 246314f79..d502a94db 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -515,7 +515,7 @@ Script_interpretmenu2: ; 0x96f30 ld a, [ScriptBank] ld hl, InterpretMenu2 rst FarCall - ld a, [wcfa9] + ld a, [MenuSelection2] jr nc, .ok xor a .ok diff --git a/event/buena.asm b/event/buena.asm index 8ae1094c8..0fabb81ac 100644 --- a/event/buena.asm +++ b/event/buena.asm @@ -201,7 +201,7 @@ Function8b09e: ; 8b09e ld [hBGMapMode], a ld hl, MenuDataHeader_0x8b0d1 call CopyMenuDataHeader - call Function1cbb + call MenuBox call UpdateSprites call GetMemTileCoord ld bc, $0015 @@ -255,7 +255,7 @@ Function8b0e2: ; 8b0e2 call Function350c ld a, [MenuSelection] ld c, a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [MenuSelection], a ld a, [wcf73] cp $2 diff --git a/event/kurt.asm b/event/kurt.asm index 4924fdf6a..bf46fae11 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -40,7 +40,7 @@ Special_SelectApricornForKurt: ; 88018 and a jr z, .done ld [CurItem], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld c, a push bc call Kurt_PrintTextHowMany @@ -135,7 +135,7 @@ Kurt_SelectQuantity: ; 880c2 .loop xor a ld [hBGMapMode], a - call Function1cbb + call MenuBox call UpdateSprites call .PlaceApricornName call PlaceApricornQuantity diff --git a/event/mom.asm b/event/mom.asm index c6bf0da52..9f8c5d543 100644 --- a/event/mom.asm +++ b/event/mom.asm @@ -109,7 +109,7 @@ endr call InterpretMenu2 call WriteBackup jr c, .cancel - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .withdraw cp $2 diff --git a/event/move_deleter.asm b/event/move_deleter.asm index c9ec76345..98391edcb 100644 --- a/event/move_deleter.asm +++ b/event/move_deleter.asm @@ -25,7 +25,7 @@ MoveDeletion: call Function2b74 pop af jr c, .asm_2c5c3 - ld a, [wcfa9] + ld a, [MenuSelection2] push af ld a, [CurSpecies] ld [wd265], a diff --git a/event/unown.asm b/event/unown.asm index b39eba371..ef4dc0eaf 100644 --- a/event/unown.asm +++ b/event/unown.asm @@ -122,7 +122,7 @@ Special_DisplayUnownWords: ; 8ae68 call LoadMenuDataHeader xor a ld [hBGMapMode], a - call Function1cbb + call MenuBox call UpdateSprites call Function321c call GetMemTileCoord diff --git a/gfx/battle/expbar.2bpp b/gfx/battle/expbar.2bpp new file mode 100644 index 000000000..cf869d98b Binary files /dev/null and b/gfx/battle/expbar.2bpp differ diff --git a/gfx/unknown/0f8b10.2bpp b/gfx/unknown/0f8b10.2bpp deleted file mode 100644 index cf869d98b..000000000 Binary files a/gfx/unknown/0f8b10.2bpp and /dev/null differ diff --git a/home/menu.asm b/home/menu.asm index a42b29cd1..ff7c2e4f1 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -74,12 +74,12 @@ Call_ExitMenu:: ; 1d7d InterpretMenu2:: xor a ld [hBGMapMode], a - call Function1cbb + call MenuBox call UpdateSprites call Function1c89 call Function321c call Function1c66 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 7, a jr z, .cancel call Function1c10 @@ -99,7 +99,7 @@ GetMenu2:: ; 1dab call LoadMenuDataHeader call InterpretMenu2 call WriteBackup - ld a, [wcfa9] + ld a, [MenuSelection2] ret ; 1db8 @@ -168,7 +168,7 @@ InterpretTwoOptionMenu:: ; 1dfe call WriteBackup pop af jr c, .no - ld a, [wcfa9] + ld a, [MenuSelection2] cp 2 ; no jr z, .no and a @@ -176,7 +176,7 @@ InterpretTwoOptionMenu:: ; 1dfe .no ld a, 2 - ld [wcfa9], a + ld [MenuSelection2], a scf ret ; 1e1d @@ -249,7 +249,7 @@ MenuFunc_1e7f:: call Function1c66 call Function1ebd call Function1ea6 - call Function1cbb + call MenuBox ret MenuWriteText:: @@ -274,7 +274,7 @@ Function1ea6:: ; 1ea6 ld a, [wMenuBorderRightCoord] sub c ld c, a - ld a, [wcf92] + ld a, [wMenuData2Items] add a inc a ld b, a @@ -305,7 +305,7 @@ Function1ebd:: ; 1ebd ld d, h ld e, l ld a, [hl] - ld [wcf92], a + ld [wMenuData2Items], a ret ; 1eda @@ -342,13 +342,13 @@ Function1efb:: ; 1efb Function1eff:: ; 1eff call Function1c10 ld hl, wcfa8 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 3, a jr z, .asm_1f0e set 3, [hl] .asm_1f0e - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 2, a jr z, .asm_1f19 set 5, [hl] @@ -403,13 +403,13 @@ Function1f2a:: ; 1f2a .asm_1f57 call Function1ebd - ld a, [wcfa9] + ld a, [MenuSelection2] ld l, a ld h, $0 add hl, de ld a, [hl] ld [MenuSelection], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wMenuCursorBuffer], a and a ret @@ -491,7 +491,7 @@ ResetTextRelatedRAM:: ; 1fbf call .bytefill ld hl, wcf81 call .bytefill - ld hl, wcf91 + ld hl, wMenuData2Flags call .bytefill ld hl, wcfa1 call .bytefill diff --git a/home/tilemap.asm b/home/tilemap.asm index 928c6a983..23cdfdd72 100644 --- a/home/tilemap.asm +++ b/home/tilemap.asm @@ -88,7 +88,7 @@ Function1c66:: ; 1c66 ld a, [hli] ld h, [hl] ld l, a - ld de, wcf91 + ld de, wMenuData2Flags ld bc, $0010 call CopyBytes pop af @@ -131,7 +131,7 @@ Function1c89:: ; 1c89 pop bc dec b jr nz, .asm_1c9c - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 4, a ret z call GetMemTileCoord @@ -143,7 +143,7 @@ Function1c89:: ; 1c89 jp PlaceString ; 1cbb -Function1cbb:: ; 1cbb +MenuBox:: ; 1cbb call GetMemTileCoord call GetMenuBoxDims dec b @@ -158,13 +158,13 @@ Function1cc6:: ; 1cc6 ld a, [wMenuBorderLeftCoord] ld c, a inc c - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 6, a jr nz, .asm_1cd8 inc b .asm_1cd8 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 7, a jr z, .asm_1ce0 inc c diff --git a/items/item_effects.asm b/items/item_effects.asm index 1343eab50..480ed895f 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -2667,7 +2667,7 @@ Functionf6a7: ; f6a7 Elixer_RestorePPofAllMoves: ; f6af xor a - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hli], a ld [hl], a ld b, NUM_MOVES @@ -2686,7 +2686,7 @@ Elixer_RestorePPofAllMoves: ; f6af inc [hl] .cant_restore_pp - ld hl, wcfa9 + ld hl, MenuSelection2 inc [hl] pop bc dec b @@ -3123,7 +3123,7 @@ Functionf84c: ; f84c ld a, [wd265] dec a jr nz, .asm_f876 - ld a, [wcfa9] + ld a, [MenuSelection2] inc a cp b jr nz, .asm_f87d @@ -3200,7 +3200,7 @@ Functionf8b9: ; f8b9 call GetPartyParamLocation pop de xor a ; PARTYMON - ld [wcfa9], a + ld [MenuSelection2], a ld [MonType], a ld c, NUM_MOVES .loop @@ -3220,7 +3220,7 @@ Functionf8b9: ; f8b9 add b ld [de], a inc de - ld hl, wcfa9 + ld hl, MenuSelection2 inc [hl] pop hl dec c @@ -3313,7 +3313,7 @@ GetMthMoveOfNthPartymon: ; f963 call AddNTimes GetMthMoveOfCurrentMon: ; f969 - ld a, [wcfa9] + ld a, [MenuSelection2] ld c, a ld b, 0 add hl, bc diff --git a/main.asm b/main.asm index 3a26cb862..8d09f0022 100644 --- a/main.asm +++ b/main.asm @@ -607,7 +607,7 @@ Function5ebf: ; 5ebf .asm_5ecf call Function1e35 - call Function1cbb + call MenuBox call Function1c89 ret ; 5ed9 @@ -840,7 +840,7 @@ OakText7: ; 0x606f NamePlayer: ; 0x6074 callba MovePlayerPicRight callba ShowPlayerNamingChoices - ld a, [wcfa9] + ld a, [MenuSelection2] dec a jr z, .NewName call StorePlayerName @@ -886,7 +886,7 @@ NamePlayer: ; 0x6074 Function60e9: ; Unreferenced call LoadMenuDataHeader call InterpretMenu2 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function1db8 call WriteBackup @@ -1737,7 +1737,7 @@ ForgetMove: ; 65d3 ld [wcfa3], a ld a, $1 ld [wcfa4], a - ld [wcfa9], a + ld [MenuSelection2], a ld [wcfaa], a ld a, $3 ld [wcfa8], a @@ -1755,7 +1755,7 @@ ForgetMove: ; 65d3 bit 1, a jr nz, .cancel push hl - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, 0 @@ -8620,7 +8620,7 @@ Functiondcb6: ; dcb6 pop hl pop de - ld a, [wcfa9] + ld a, [MenuSelection2] push af ld a, [MonType] push af @@ -8633,7 +8633,7 @@ Functiondcb6: ; dcb6 ld a, BOXMON ld [MonType], a ld a, b - ld [wcfa9], a + ld [MenuSelection2], a push bc push hl push de @@ -8657,7 +8657,7 @@ Functiondcb6: ; dcb6 pop af ld [MonType], a pop af - ld [wcfa9], a + ld [MenuSelection2], a ret ; dd21 @@ -9776,14 +9776,14 @@ Functione443: ; e443 (3:6443) ld hl, MenuDataHeader_0xe46f call LoadMenuDataHeader ld a, $1 -.asm_e44b +.loop ld [wMenuCursorBuffer], a call SetPalettes xor a ld [wcf76], a ld [hBGMapMode], a ; $ff00+$d4 call Function1e5d - jr c, .asm_e46b + jr c, .cancel ld a, [wMenuCursorBuffer] push af ld a, [MenuSelection] @@ -9791,8 +9791,8 @@ Functione443: ; e443 (3:6443) rst JumpTable pop bc ld a, b - jr nc, .asm_e44b -.asm_e46b + jr nc, .loop +.cancel call WriteBackup ret ; e46f (3:646f) @@ -13147,7 +13147,7 @@ PokemonActionSubmenu: ; 12a88 hlcoord 1, 15 lb bc, 2, 18 call ClearBox - callba Function24d19 + callba MonSubmenu call GetCurNick ld a, [MenuSelection] ld hl, .Actions @@ -13166,26 +13166,26 @@ PokemonActionSubmenu: ; 12a88 ret .Actions - dbw 1, Function12e1b ; Cut - dbw 2, Function12e30 ; Fly - dbw 3, Function12ebd ; Surf - dbw 4, Function12e6a ; Strength - dbw 6, Function12e55 ; Flash - dbw 7, Function12e7f ; Whirlpool - dbw 8, Function12ed1 ; Dig - dbw 9, Function12ea9 ; Teleport - dbw 10, Function12ee6 ; Softboiled - dbw 13, Function12ee6 ; MilkDrink - dbw 11, Function12f26 ; Headbutt - dbw 5, Function12e94 ; Waterfall - dbw 12, Function12f3b ; RockSmash - dbw 14, Function12f50 ; SweetScent - dbw 15, OpenPartyStats - dbw 16, SwitchPartyMons - dbw 17, GiveTakePartyMonItem - dbw 18, CancelPokemonAction - dbw 19, Function12fba ; move - dbw 20, MonMailAction ; mail + dbw MONMENU_CUT, Function12e1b ; Cut + dbw MONMENU_FLY, Function12e30 ; Fly + dbw MONMENU_SURF, Function12ebd ; Surf + dbw MONMENU_STRENGTH, Function12e6a ; Strength + dbw MONMENU_FLASH, Function12e55 ; Flash + dbw MONMENU_WHIRLPOOL, Function12e7f ; Whirlpool + dbw MONMENU_DIG, Function12ed1 ; Dig + dbw MONMENU_TELEPORT, Function12ea9 ; Teleport + dbw MONMENU_SOFTBOILED, Function12ee6 ; Softboiled + dbw MONMENU_MILKDRINK, Function12ee6 ; MilkDrink + dbw MONMENU_HEADBUTT, Function12f26 ; Headbutt + dbw MONMENU_WATERFALL, Function12e94 ; Waterfall + dbw MONMENU_ROCKSMASH, Function12f3b ; RockSmash + dbw MONMENU_SWEETSCENT, Function12f50 ; SweetScent + dbw MONMENU_STATS, OpenPartyStats + dbw MONMENU_SWITCH, SwitchPartyMons + dbw MONMENU_ITEM, GiveTakePartyMonItem + dbw MONMENU_CANCEL, CancelPokemonAction + dbw MONMENU_MOVE, Function12fba ; move + dbw MONMENU_MAIL, MonMailAction ; mail ; 12aec @@ -13260,7 +13260,7 @@ GiveTakePartyMonItem: ; 12b60 ld de, wd050 ld bc, $b call CopyBytes - ld a, [wcfa9] + ld a, [MenuSelection2] cp 1 jr nz, .asm_12ba0 @@ -13566,7 +13566,7 @@ MonMailAction: ; 12d45 ; Interpret the menu. jp c, .done - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .read cp $2 @@ -14039,7 +14039,7 @@ Function12fd5: ; 12fd5 and a jp z, Function13154 ld a, [wd0e3] - ld [wcfa9], a + ld [MenuSelection2], a xor a ld [wd0e3], a hlcoord 1, 2 @@ -14118,7 +14118,7 @@ Function12fd5: ; 12fd5 ld a, [wd0e3] and a jr nz, .asm_130de - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0e3], a call Function1bee jp .asm_13018 @@ -14165,7 +14165,7 @@ Function12fd5: ; 12fd5 Function1313a: ; 1313a push hl - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, $0 @@ -14283,7 +14283,7 @@ Function13235: ; 13235 ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, $0 @@ -18372,7 +18372,7 @@ Function15985: ; 0x15985 call Function350c ld a, [wd0e4] ld [wd0dd], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0d7], a pop af ld [wc2ce], a @@ -18664,7 +18664,7 @@ StandardMart: ; 15b47 call CopyMenuDataHeader call InterpretMenu2 jr c, .quit - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .buy cp $2 @@ -18948,7 +18948,7 @@ Function15cef: ; 15cef call Function350c ld a, [wd0e4] ld [WalkingY], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [WalkingX], a call SpeechTextBox ld a, [wcf73] @@ -22003,591 +22003,7 @@ StringBufferPointers:: ; 24000 dw BattleMonNick ; 2400e -Function2400e:: ; 2400e - ld hl, Function1c66 - ld a, [wcf94] - rst FarCall - call Function24085 - call UpdateSprites - call Function321c - call Function2408f - ret -; 24022 - -Function24022:: ; 24022 - ld hl, Function1c66 - ld a, [wcf94] - rst FarCall - call Function24085 - callba MobileTextBorder - call UpdateSprites - call Function321c - call Function2408f - ret -; 2403c - -Function2403c:: ; 2403c - ld hl, Function1c66 - ld a, [wcf94] - rst FarCall - call Function24085 - callba MobileTextBorder - call UpdateSprites - call Function321c - call Function2411a - ld hl, wcfa5 - set 7, [hl] -.asm_2405a - call DelayFrame - callba Function10032e - ld a, [wcd2b] - and a - jr nz, .asm_24076 - call Function241ba - ld a, [wcfa8] - and c - jr z, .asm_2405a - call Function24098 - ret - -.asm_24076 - ld a, [wcfa4] - ld c, a - ld a, [wcfa3] - call SimpleMultiply - ld [wMenuCursorBuffer], a - and a - ret -; 24085 - - - -Function24085: ; 24085 - xor a - ld [hBGMapMode], a - call Function1cbb - call Function240db - ret -; 2408f - -Function2408f: ; 2408f - call Function2411a - call Function1bc9 - call Function1ff8 - -Function24098: ; 24098 - ld a, [wcf91] - bit 1, a - jr z, .asm_240a6 - call Function1bdd - bit 2, a - jr nz, .asm_240c9 - -.asm_240a6 - ld a, [wcf91] - bit 0, a - jr nz, .asm_240b4 - call Function1bdd - bit 1, a - jr nz, .asm_240cb - -.asm_240b4 - ld a, [wcfa4] - ld c, a - ld a, [wcfa9] - dec a - call SimpleMultiply - ld c, a - ld a, [wcfaa] - add c - ld [wMenuCursorBuffer], a - and a - ret - -.asm_240c9 - scf - ret - -.asm_240cb - scf - ret -; 240cd - -Function240cd: ; 240cd - ld a, [wcf92] - and $f - ret -; 240d3 - -Function240d3: ; 240d3 - ld a, [wcf92] - swap a - and $f - ret -; 240db - -Function240db: ; 240db - ld hl, wcf95 - ld e, [hl] - inc hl - ld d, [hl] - call Function1cc6 - call GetTileCoord - call Function240d3 - ld b, a -.asm_240eb - push bc - push hl - call Function240cd - ld c, a -.asm_240f1 - push bc - ld a, [wcf94] - call Function201c - inc de - ld a, [wcf93] - ld c, a - ld b, $0 - add hl, bc - pop bc - dec c - jr nz, .asm_240f1 - pop hl - ld bc, $28 - add hl, bc - pop bc - dec b - jr nz, .asm_240eb - ld hl, wcf98 - ld a, [hli] - ld h, [hl] - ld l, a - or h - ret z - ld a, [wcf97] - rst FarCall - ret -; 2411a - - -Function2411a: ; 2411a (9:411a) - call Function1cc6 - ld a, b - ld [wcfa1], a - dec c - ld a, c - ld [wcfa2], a - call Function240d3 - ld [wcfa3], a - call Function240cd - ld [wcfa4], a - call Function24179 - call Function2418a - call Function24193 - ld a, [wcfa4] - ld e, a - ld a, [wMenuCursorBuffer] - ld b, a - xor a - ld d, $0 -.asm_24146 - inc d - add e - cp b - jr c, .asm_24146 - sub e - ld c, a - ld a, b - sub c - and a - jr z, .asm_24157 - cp e - jr z, .asm_24159 - jr c, .asm_24159 -.asm_24157 - ld a, $1 -.asm_24159 - ld [wcfaa], a - ld a, [wcfa3] - ld e, a - ld a, d - and a - jr z, .asm_24169 - cp e - jr z, .asm_2416b - jr c, .asm_2416b -.asm_24169 - ld a, $1 -.asm_2416b - ld [wcfa9], a - xor a - ld [wcfab], a - ld [wcfac], a - ld [wcfad], a - ret -; 24179 - -Function24179: ; 24179 - xor a - ld hl, wcfa5 - ld [hli], a - ld [hld], a - ld a, [wcf91] - bit 5, a - ret z - set 5, [hl] - set 4, [hl] - ret -; 2418a - -Function2418a: ; 2418a - ld a, [wcf93] - or $20 - ld [wcfa7], a - ret -; 24193 - -Function24193: ; 24193 - ld hl, wcf91 - ld a, $1 - bit 0, [hl] - jr nz, .asm_2419e - or $2 - -.asm_2419e - bit 1, [hl] - jr z, .asm_241a4 - or $4 - -.asm_241a4 - ld [wcfa8], a - ret -; 241a8 - - -Function241a8:: ; 241a8 - call Function24329 -Function241ab:: ; 241ab - ld hl, wcfa6 - res 7, [hl] - ld a, [hBGMapMode] - push af - call Function24216 - pop af - ld [hBGMapMode], a - ret -; 241ba - -Function241ba: ; 241ba - ld hl, wcfa6 - res 7, [hl] - ld a, [hBGMapMode] - push af - call Function2431a - call Function24249 - jr nc, .asm_241cd - call Function24270 - -.asm_241cd - pop af - ld [hBGMapMode], a - call Function1bdd - ld c, a - ret -; 241d5 - - -Function241d5: ; 241d5 - call Function24329 -.asm_241d8 - call Function2431a - call Function10402d ; BUG: This function is in another bank. - call Function241fa - jr nc, .asm_241f9 - call Function24270 - jr c, .asm_241f9 - ld a, [wcfa5] - bit 7, a - jr nz, .asm_241f9 - call Function1bdd - ld c, a - ld a, [wcfa8] - and c - jr z, .asm_241d8 - -.asm_241f9 - ret -; 241fa - -Function241fa: ; 241fa -.asm_241fa - call Function24259 - ret c - ld c, $1 - ld b, $3 - call Function10062d ; BUG: This function is in another bank. - ret c - callba Function100337 - ret c - ld a, [wcfa5] - bit 7, a - jr z, .asm_241fa - and a - ret -; 24216 - - -Function24216: ; 24216 -.asm_24216 - call Function2431a - call Function24238 - call Function24249 - jr nc, .asm_24237 - call Function24270 - jr c, .asm_24237 - ld a, [wcfa5] - bit 7, a - jr nz, .asm_24237 - call Function1bdd - ld b, a - ld a, [wcfa8] - and b - jr z, .asm_24216 - -.asm_24237 - ret -; 24238 - -Function24238: ; 24238 - ld a, [hOAMUpdate] - push af - ld a, $1 - ld [hOAMUpdate], a - call WaitBGMap - pop af - ld [hOAMUpdate], a - xor a - ld [hBGMapMode], a - ret -; 24249 - -Function24249: ; 24249 -.asm_24249 - call RTC - call Function24259 - ret c - ld a, [wcfa5] - bit 7, a - jr z, .asm_24249 - and a - ret -; 24259 - -Function24259: ; 24259 - ld a, [wcfa5] - bit 6, a - jr z, .asm_24266 - callab Function8cf62 - -.asm_24266 - call JoyTextDelay - call Function1bdd - and a - ret z - scf - ret -; 24270 - -Function24270: ; 24270 - call Function1bdd - bit 0, a - jp nz, Function24318 - bit 1, a - jp nz, Function24318 - bit 2, a - jp nz, Function24318 - bit 3, a - jp nz, Function24318 - bit 4, a - jr nz, .asm_242fa - bit 5, a - jr nz, .asm_242dc - bit 6, a - jr nz, .asm_242be - bit 7, a - jr nz, .asm_242a0 - and a - ret - -.asm_24299: ; 24299 - ld hl, wcfa6 - set 7, [hl] - scf - ret - -.asm_242a0 - ld hl, wcfa9 - ld a, [wcfa3] - cp [hl] - jr z, .asm_242ac - inc [hl] - xor a - ret - -.asm_242ac - ld a, [wcfa5] - bit 5, a - jr nz, .asm_242ba - bit 3, a - jp nz, .asm_24299 - xor a - ret - -.asm_242ba - ld [hl], $1 - xor a - ret - -.asm_242be - ld hl, wcfa9 - ld a, [hl] - dec a - jr z, .asm_242c8 - ld [hl], a - xor a - ret - -.asm_242c8 - ld a, [wcfa5] - bit 5, a - jr nz, .asm_242d6 - bit 2, a - jp nz, .asm_24299 - xor a - ret - -.asm_242d6 - ld a, [wcfa3] - ld [hl], a - xor a - ret - -.asm_242dc - ld hl, wcfaa - ld a, [hl] - dec a - jr z, .asm_242e6 - ld [hl], a - xor a - ret - -.asm_242e6 - ld a, [wcfa5] - bit 4, a - jr nz, .asm_242f4 - bit 1, a - jp nz, .asm_24299 - xor a - ret - -.asm_242f4 - ld a, [wcfa4] - ld [hl], a - xor a - ret - -.asm_242fa - ld hl, wcfaa - ld a, [wcfa4] - cp [hl] - jr z, .asm_24306 - inc [hl] - xor a - ret - -.asm_24306 - ld a, [wcfa5] - bit 4, a - jr nz, .asm_24314 - bit 0, a - jp nz, .asm_24299 - xor a - ret - -.asm_24314 - ld [hl], $1 - xor a - ret -; 24318 - -Function24318: ; 24318 - xor a - ret -; 2431a - -Function2431a: ; 2431a - ld hl, wcfac - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - cp $ed - jr nz, Function24329 - ld a, [wcfab] - ld [hl], a - -Function24329: ; 24329 - ld a, [wcfa1] - ld b, a - ld a, [wcfa2] - ld c, a - call GetTileCoord - ld a, [wcfa7] - swap a - and $f - ld c, a - ld a, [wcfa9] - ld b, a - xor a - dec b - jr z, .asm_24348 -.asm_24344 - add c - dec b - jr nz, .asm_24344 - -.asm_24348 - ld c, $14 - call AddNTimes - ld a, [wcfa7] - and $f - ld c, a - ld a, [wcfaa] - ld b, a - xor a - dec b - jr z, .asm_2435f -.asm_2435b - add c - dec b - jr nz, .asm_2435b - -.asm_2435f - ld c, a - add hl, bc - ld a, [hl] - cp $ed - jr z, .asm_2436b - ld [wcfab], a - ld [hl], $ed - -.asm_2436b - ld a, l - ld [wcfac], a - ld a, h - ld [wcfad], a - ret -; 24374 +INCLUDE "engine/menu.asm" _BackUpTiles:: ; 24374 ld a, [rSVBK] @@ -22778,7 +22194,7 @@ UnknownText_0x24468: ; 24468 ; 2446d Function2446d:: ; 2446d - ld a, [wcf91] + ld a, [wMenuData2Flags] ld b, a ld hl, wcfa1 ld a, [wMenuBorderTopCoord] @@ -22792,7 +22208,7 @@ Function2446d:: ; 2446d ld a, [wMenuBorderLeftCoord] inc a ld [hli], a - ld a, [wcf92] + ld a, [wMenuData2Items] ld [hli], a ld a, $1 ld [hli], a @@ -22824,7 +22240,7 @@ Function2446d:: ; 2446d and a jr z, .asm_244b7 ld c, a - ld a, [wcf92] + ld a, [wMenuData2Items] cp c jr nc, .asm_244b9 @@ -22862,7 +22278,7 @@ Function244c3: ; 0x244c3 Pokepic:: ; 244e3 ld hl, MenuDataHeader_0x24547 call CopyMenuDataHeader - call Function1cbb + call MenuBox call UpdateSprites call Function321c ld b, $12 @@ -23079,7 +22495,7 @@ MenuJoyAction: ; 24609 .a_button: ; 24644 call Function1bee - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function248d5 ld a, [MenuSelection] @@ -23105,10 +22521,10 @@ MenuJoyAction: ; 24609 ; 24673 .select: ; 24673 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 7, a jp z, xor_a_dec_a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function248d5 ld a, [MenuSelection] @@ -23123,7 +22539,7 @@ MenuJoyAction: ; 24609 ; 24695 .start: ; 24695 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 6, a jp z, xor_a_dec_a ld a, START @@ -23135,7 +22551,7 @@ MenuJoyAction: ; 24609 ld hl, wcfa6 bit 7, [hl] jp z, xor_a_dec_a - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 3, a jp z, xor_a_dec_a ld a, D_LEFT @@ -23147,7 +22563,7 @@ MenuJoyAction: ; 24609 ld hl, wcfa6 bit 7, [hl] jp z, xor_a_dec_a - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 2, a jp z, xor_a_dec_a ld a, D_RIGHT @@ -23175,7 +22591,7 @@ MenuJoyAction: ; 24609 bit 7, [hl] jp z, xor_a ld hl, wd0e4 - ld a, [wcf92] + ld a, [wMenuData2Items] add [hl] ld b, a ld a, [wd144] @@ -23191,7 +22607,7 @@ MenuJoyAction: ; 24609 Function246fc: ; 246fc ld a, [wd0e4] ld c, a - ld a, [wcfa9] + ld a, [MenuSelection2] add c ld c, a ret @@ -23202,7 +22618,7 @@ Function24706: ; 24706 (9:4706) ld de, SCREEN_WIDTH add hl, de ld de, 2 * SCREEN_WIDTH - ld a, [wcf92] + ld a, [wMenuData2Items] .asm_24713 ld [hl], " " add hl, de @@ -23219,8 +22635,8 @@ Function2471a: ; 2471a ld a, [wcf95] call GetFarByte ld [wd144], a -; if ([wd144] + 1) < [wcf92] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wcf92], 0) - ld a, [wcf92] +; if ([wd144] + 1) < [wMenuData2Items] + [wd0e4]: [wd0e4] = max(([wd144] + 1) - [wMenuData2Items], 0) + ld a, [wMenuData2Items] ld c, a ld a, [wd0e4] add c @@ -23229,7 +22645,7 @@ Function2471a: ; 2471a inc a cp c jr nc, .skip - ld a, [wcf92] + ld a, [wMenuData2Items] ld c, a ld a, [wd144] inc a @@ -23263,7 +22679,7 @@ Function2471a: ; 2471a ; 24764 Function24764: ; 24764 - ld a, [wcf91] + ld a, [wMenuData2Flags] ld c, a ld a, [wd144] ld b, a @@ -23273,7 +22689,7 @@ Function24764: ; 24764 ld a, [wMenuBorderLeftCoord] add $0 ld [wcfa2], a - ld a, [wcf92] + ld a, [wMenuData2Items] cp b jr c, .asm_24786 jr z, .asm_24786 @@ -23325,7 +22741,7 @@ Function24764: ; 24764 ld a, $1 .asm_247ca - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a xor a @@ -23353,7 +22769,7 @@ Function247dd: ; 247dd Function247f0: ; 247f0 call Function1cf1 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 4, a jr z, .asm_2480d ld a, [wd0e4] @@ -23370,7 +22786,7 @@ Function247f0: ; 247f0 call GetMemTileCoord ld bc, $15 add hl, bc - ld a, [wcf92] + ld a, [wMenuData2Items] ld b, a ld c, $0 .asm_2481a @@ -23393,7 +22809,7 @@ Function247f0: ; 247f0 ld a, c cp b jr nz, .asm_2481a - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 4, a jr z, .asm_24850 ld a, [wMenuBorderBottomCoord] @@ -23407,7 +22823,7 @@ Function247f0: ; 247f0 ret .asm_24851 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 0, a jr nz, .asm_24866 ld de, .string_2485f @@ -23455,7 +22871,7 @@ Function2488b: ; 2488b cp b jr nc, .asm_248b7 ld c, a - ld a, [wcf92] + ld a, [wMenuData2Items] add c cp b jr c, .asm_248b7 @@ -23479,7 +22895,7 @@ Function2488b: ; 2488b ; 248b8 Function248b8: ; 248b8 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 5, a ret z bit 1, a @@ -23489,7 +22905,7 @@ Function248b8: ; 248b8 ret nz .asm_248c7 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function248d5 ld hl, wcf9e @@ -23847,7 +23263,7 @@ Function24af8: ; 24af8 call Function1e2e Function24b01: ; 24b01 - call Function1cbb + call MenuBox call GetMemTileCoord ld de, $15 add hl, de @@ -24095,41 +23511,41 @@ MonMenuOptionStrings: ; 24caf MonMenuOptions: ; 24cd9 ; Moves - db 0, 1, CUT - db 0, 2, FLY - db 0, 3, SURF - db 0, 4, STRENGTH - db 0, 6, FLASH - db 0, 5, WATERFALL - db 0, 7, WHIRLPOOL - db 0, 8, DIG - db 0, 9, TELEPORT - db 0, 10, SOFTBOILED - db 0, 11, HEADBUTT - db 0, 12, ROCK_SMASH - db 0, 13, MILK_DRINK - db 0, 14, SWEET_SCENT + db MONMENU_FIELD_MOVE, MONMENU_CUT, CUT + db MONMENU_FIELD_MOVE, MONMENU_FLY, FLY + db MONMENU_FIELD_MOVE, MONMENU_SURF, SURF + db MONMENU_FIELD_MOVE, MONMENU_STRENGTH, STRENGTH + db MONMENU_FIELD_MOVE, MONMENU_FLASH, FLASH + db MONMENU_FIELD_MOVE, MONMENU_WATERFALL, WATERFALL + db MONMENU_FIELD_MOVE, MONMENU_WHIRLPOOL, WHIRLPOOL + db MONMENU_FIELD_MOVE, MONMENU_DIG, DIG + db MONMENU_FIELD_MOVE, MONMENU_TELEPORT, TELEPORT + db MONMENU_FIELD_MOVE, MONMENU_SOFTBOILED, SOFTBOILED + db MONMENU_FIELD_MOVE, MONMENU_HEADBUTT, HEADBUTT + db MONMENU_FIELD_MOVE, MONMENU_ROCKSMASH, ROCK_SMASH + db MONMENU_FIELD_MOVE, MONMENU_MILKDRINK, MILK_DRINK + db MONMENU_FIELD_MOVE, MONMENU_SWEETSCENT, SWEET_SCENT ; Options - db 1, 15, 1 ; STATS - db 1, 16, 2 ; SWITCH - db 1, 17, 3 ; ITEM - db 1, 18, 4 ; CANCEL - db 1, 19, 5 ; MOVE - db 1, 20, 6 ; MAIL - db 1, 21, 7 ; ERROR! + db MONMENU_MENUOPTION, MONMENU_STATS, 1 ; STATS + db MONMENU_MENUOPTION, MONMENU_SWITCH, 2 ; SWITCH + db MONMENU_MENUOPTION, MONMENU_ITEM, 3 ; ITEM + db MONMENU_MENUOPTION, MONMENU_CANCEL, 4 ; CANCEL + db MONMENU_MENUOPTION, MONMENU_MOVE, 5 ; MOVE + db MONMENU_MENUOPTION, MONMENU_MAIL, 6 ; MAIL + db MONMENU_MENUOPTION, MONMENU_ERROR, 7 ; ERROR! - db $ff + db -1 ; 24d19 -Function24d19: ; 24d19 +MonSubmenu: ; 24d19 xor a ld [hBGMapMode], a - call Function24dd4 + call GetMonSubmenuItems callba Function8ea4a - ld hl, MenuDataHeader_0x24d3f + ld hl, .MenuDataHeader call LoadMenuDataHeader - call Function24d47 + call .GetTopCoord call PopulateMonMenu ld a, 1 @@ -24141,7 +23557,7 @@ Function24d19: ; 24d19 ret ; 24d3f -MenuDataHeader_0x24d3f: ; 24d3f +.MenuDataHeader: ; 24d3f db $40 ; tile backup db 00, 06 ; start coords db 17, 19 ; end coords @@ -24149,7 +23565,8 @@ MenuDataHeader_0x24d3f: ; 24d3f db 1 ; default option ; 24d47 -Function24d47: ; 24d47 +.GetTopCoord: ; 24d47 +; TopCoord = 1 + BottomCoord - 2 * (NumSubmenuItems + 1) ld a, [Buffer1] inc a add a @@ -24158,16 +23575,16 @@ Function24d47: ; 24d47 sub b inc a ld [wMenuBorderTopCoord], a - call Function1cbb + call MenuBox ret ; 24d59 MonMenuLoop: ; 24d59 .loop - ld a, $a0 - ld [wcf91], a - ld a, [Buffer1] - ld [wcf92], a + ld a, $a0 ; flags + ld [wMenuData2Flags], a + ld a, [Buffer1] ; items + ld [wMenuData2Items], a call Function1c10 ld hl, wcfa5 set 6, [hl] @@ -24182,11 +23599,11 @@ MonMenuLoop: ; 24d59 jr .loop .cancel - ld a, 18 ; CANCEL + ld a, MONMENU_CANCEL ; CANCEL ret .select - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, 0 @@ -24242,14 +23659,14 @@ GetMonMenuString: ; 24db0 ret ; 24dd4 -Function24dd4: ; 24dd4 - call Function24e68 +GetMonSubmenuItems: ; 24dd4 + call ResetMonSubmenu ld a, [CurPartySpecies] cp EGG jr z, .egg ld a, [wLinkMode] and a - jr nz, .skip + jr nz, .skip_moves ld a, MON_MOVES call GetPartyParamLocation ld d, h @@ -24262,10 +23679,10 @@ Function24dd4: ; 24dd4 and a jr z, .next push hl - call Function24e52 + call IsFieldMove pop hl jr nc, .next - call Function24e83 + call AddMonMenuItem .next pop de @@ -24274,13 +23691,13 @@ Function24dd4: ; 24dd4 dec c jr nz, .loop -.skip - ld a, $f - call Function24e83 - ld a, $10 - call Function24e83 - ld a, $13 - call Function24e83 +.skip_moves + ld a, MONMENU_STATS + call AddMonMenuItem + ld a, MONMENU_SWITCH + call AddMonMenuItem + ld a, MONMENU_MOVE + call AddMonMenuItem ld a, [wLinkMode] and a jr nz, .skip2 @@ -24290,66 +23707,66 @@ Function24dd4: ; 24dd4 ld d, [hl] callba ItemIsMail pop hl - ld a, $14 + ld a, MONMENU_MAIL jr c, .ok - ld a, $11 + ld a, MONMENU_ITEM .ok - call Function24e83 + call AddMonMenuItem .skip2 ld a, [Buffer1] - cp $8 + cp NUM_MON_SUBMENU_ITEMS jr z, .ok2 - ld a, $12 - call Function24e83 + ld a, MONMENU_CANCEL + call AddMonMenuItem .ok2 - call Function24e76 + call TerminateMonSubmenu ret .egg - ld a, $f - call Function24e83 - ld a, $10 - call Function24e83 - ld a, $12 - call Function24e83 - call Function24e76 + ld a, MONMENU_STATS + call AddMonMenuItem + ld a, MONMENU_SWITCH + call AddMonMenuItem + ld a, MONMENU_CANCEL + call AddMonMenuItem + call TerminateMonSubmenu ret ; 24e52 -Function24e52: ; 24e52 +IsFieldMove: ; 24e52 ld b, a ld hl, MonMenuOptions -.asm_24e56 +.next ld a, [hli] - cp $ff - jr z, .asm_24e67 - cp $1 - jr z, .asm_24e67 + cp -1 + jr z, .nope + cp MONMENU_MENUOPTION + jr z, .nope ld d, [hl] inc hl ld a, [hli] cp b - jr nz, .asm_24e56 + jr nz, .next ld a, d scf -.asm_24e67 +.nope ret ; 24e68 -Function24e68: ; 24e68 +ResetMonSubmenu: ; 24e68 xor a ld [Buffer1], a ld hl, Buffer2 - ld bc, 9 + ld bc, NUM_MON_SUBMENU_ITEMS + 1 call ByteFill ret ; 24e76 -Function24e76: ; 24e76 +TerminateMonSubmenu: ; 24e76 ld a, [Buffer1] ld e, a ld d, $0 @@ -24359,7 +23776,7 @@ Function24e76: ; 24e76 ret ; 24e83 -Function24e83: ; 24e83 +AddMonMenuItem: ; 24e83 push hl push de push af @@ -24383,12 +23800,12 @@ Function24e99: ; 24e99 call CopyMenuDataHeader xor a ld [hBGMapMode], a - call Function1cbb + call MenuBox call UpdateSprites call Function1c89 call WaitBGMap call Function1c66 - ld a, [wcf91] + ld a, [wMenuData2Flags] bit 7, a jr z, .asm_24ed0 call Function1c10 @@ -24684,7 +24101,7 @@ Function2500e: ; 2500e ; 25072 Function25072: ; 25072 - call Function1cbb + call MenuBox call GetMemTileCoord ld de, $15 add hl, de @@ -25700,7 +25117,7 @@ _KrisDecorationMenu: ; 0x2675c ld [wMenuCursorBuffer], a call Function26806 call Function1e5d - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd1ef], a jr c, .asm_2678e ld a, [MenuSelection] @@ -26646,7 +26063,7 @@ DecoAction_AskWhichSide: ; 26e70 call ExitMenu call Function1c66 jr c, .nope - ld a, [wcfa9] + ld a, [MenuSelection2] cp 3 jr z, .nope ld [Buffer2], a @@ -28435,7 +27852,7 @@ rept 3 endr ld [hl], a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a inc a ld [wcf56], a jp Function2888b @@ -28480,7 +27897,7 @@ Function28835: ; 28835 .asm_2885b bit 6, a jr z, .asm_28883 - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [OTPartyCount] cp b @@ -28496,7 +27913,7 @@ Function28835: ; 28835 pop bc pop hl ld a, [PartyCount] - ld [wcfa9], a + ld [MenuSelection2], a jr Function2888b .asm_28883 @@ -28544,7 +27961,7 @@ Function288c5: ; 288c5 .asm_288d9 bit 7, a jr z, .asm_288fe - ld a, [wcfa9] + ld a, [MenuSelection2] dec a jp nz, Function2891c ld a, $1 @@ -28558,13 +27975,13 @@ Function288c5: ; 288c5 pop bc pop hl ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a jp Function28803 .asm_288fe bit 6, a jr z, Function2891c - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [PartyCount] cp b @@ -28589,7 +28006,7 @@ Function2891c: ; 2891c Function28926: ; 28926 call LoadTileMapToTempTileMap - ld a, [wcfa9] + ld a, [MenuSelection2] push af hlcoord 0, 15 ld b, $1 @@ -28614,7 +28031,7 @@ Function28926: ; 28926 ld a, $1 ld [wcfa2], a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a ld [wcfaa], a ld a, $20 ld [wcfa7], a @@ -28628,7 +28045,7 @@ Function28926: ; 28926 jr z, .asm_289cd .asm_28983 pop af - ld [wcfa9], a + ld [MenuSelection2], a call Call_LoadTempTileMapToTileMap jp Function2888b @@ -28646,7 +28063,7 @@ Function28926: ; 28926 ld a, $b ld [wcfa2], a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a ld [wcfaa], a ld a, $20 ld [wcfa7], a @@ -28662,7 +28079,7 @@ Function28926: ; 28926 .asm_289cd pop af - ld [wcfa9], a + ld [MenuSelection2], a ld a, $4 ld [wd263], a callab Function50db9 @@ -28681,7 +28098,7 @@ Function28926: ; 28926 .asm_289fe call Function1bee pop af - ld [wcfa9], a + ld [MenuSelection2], a dec a ld [DefaultFlypoint], a ld [wcf56], a @@ -28765,7 +28182,7 @@ UnknownText_0x28ac4: ; 0x28ac4 Function28ac9: ; 28ac9 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jp nz, Function2891c call Function1bf7 @@ -28795,12 +28212,12 @@ Function28ade: ; 28ade bit 6, a jr z, .asm_28b03 ld a, [OTPartyCount] - ld [wcfa9], a + ld [MenuSelection2], a jp Function28803 .asm_28b03 ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a jp Function2888b .asm_28b0b @@ -28931,7 +28348,7 @@ Function28b87: ; 28b87 ld a, $3 ld [wcfa8], a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a ld [wcfaa], a callba Function4d354 call Function1bd3 @@ -28941,7 +28358,7 @@ Function28b87: ; 28b87 pop af bit 1, a jr nz, .asm_28c33 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a jr z, .asm_28c54 @@ -33601,7 +33018,7 @@ Function2c8d3: ; 2c8d3 (b:48d3) ld [wcfa8], a ld a, [wTMHMPocketCursor] inc a - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a jr Function2c946 @@ -33610,7 +33027,7 @@ Function2c915: ; 2c915 (b:4915) call Function2c9e2 call Function1bc9 ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [wTMHMPocketCursor], a xor a @@ -33650,7 +33067,7 @@ Function2c946: ; 2c946 (b:4946) Function2c974: ; 2c974 (b:4974) call Function2cad6 call Function2cb2a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld b, a ld a, [wd0e2] @@ -33662,7 +33079,7 @@ Function2c974: ; 2c974 (b:4974) Function2c98a: ; 2c98a (b:498a) call Function2cab5 - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a .asm_2c991 inc c @@ -36576,7 +35993,7 @@ Function44806: ; 0x44806 call Function350c ld a, [wd0e4] ld [OBPals + 8 * 6], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0f1], a ld a, [wcf73] cp $2 @@ -36595,7 +36012,7 @@ Function4484a: ; 0x4484a call InterpretMenu2 call ExitMenu jr c, .asm_44860 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld hl, .JumpTable rst JumpTable @@ -36904,14 +36321,14 @@ Function4802f: ; 4802f (12:402f) call Function3200 call SetPalettes call Function1bc9 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc jr asm_4815f Function48157: ; 48157 (12:4157) call Function1bd3 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc @@ -37004,7 +36421,7 @@ String_48202: ; 48202 Function4820d: ; 4820d (12:420d) call Function1bee - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] push af ld a, [DefaultFlypoint] @@ -37095,7 +36512,7 @@ asm_4828d: ; 4828d (12:428d) call ExitMenu bit 0, a jp z, Function4840c - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] ld hl, Strings_484fb cp $1 @@ -37204,7 +36621,7 @@ Function48383: ; 48383 (12:4383) ld [wd0e4], a jr .asm_483af .asm_483af - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] ld [wMenuCursorBuffer], a scf @@ -37282,7 +36699,7 @@ Function4840c: ; 4840c (12:440c) call PlaceString call Function486bf pop bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hl], b ld a, [DefaultFlypoint] bit 6, a @@ -38010,7 +37427,7 @@ Function48a3a: ; 48a3a (12:4a3a) ld a, $b ld [wcfa2], a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a hlcoord 10, 8 ld b, $4 ld c, $8 @@ -38025,7 +37442,7 @@ Function48a3a: ; 48a3a (12:4a3a) pop af bit 1, a jp nz, Function48a9a - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .asm_48a98 ld a, [wd003] @@ -38630,7 +38047,7 @@ InitGender: ; 48dcb (12:4dcb) call Function3200 call InterpretMenu2 call WriteBackup - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [PlayerGender], a ld c, 10 @@ -40219,14 +39636,14 @@ Function49f16: ; 49f16 call Function3200 call SetPalettes call Function1bc9 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc jr .asm_49f5d .asm_49f55 call Function1bd3 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc @@ -40238,7 +39655,7 @@ Function49f16: ; 49f16 jr .asm_49f97 .asm_49f67 - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] cp $1 jp z, Function4a098 @@ -40262,7 +39679,7 @@ Function49f16: ; 49f16 ret .asm_49f97 - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] dec a ld hl, MobileStrings2 @@ -40280,7 +39697,7 @@ Function49f16: ; 49f16 .asm_49fb7 call Function4a071 pop bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hl], b ld b, $a ld c, $1 @@ -40460,7 +39877,7 @@ Function4a149: ; 4a149 (12:6149) ld b, $4 ld c, $12 call TextBox - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld hl, Strings_4a23d call GetNthString @@ -40475,14 +39892,14 @@ Function4a149: ; 4a149 (12:6149) callba Function104148 call SetPalettes call Function1bc9 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc jr asm_4a19d Function4a195: ; 4a195 (12:6195) call Function1bd3 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc @@ -40493,7 +39910,7 @@ asm_4a19d: ; 4a19d (12:619d) jr nz, .asm_4a1ba jr .asm_4a1bc .asm_4a1a7 - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] cp $1 jp z, Function4a20e @@ -40505,7 +39922,7 @@ asm_4a19d: ; 4a19d (12:619d) pop bc ret .asm_4a1bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] dec a ld hl, Strings_4a23d @@ -40522,7 +39939,7 @@ asm_4a19d: ; 4a19d (12:619d) .asm_4a1db call Function4a373 pop bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hl], b lb bc, 6, 1 hlcoord 2, 3 @@ -40551,7 +39968,7 @@ Function4a221: ; 4a221 (12:6221) jr c, Function4a239 call Function4a373 ld a, $2 - ld [wcfa9], a + ld [MenuSelection2], a jr .asm_4a235 .asm_4a235 pop bc @@ -40603,7 +40020,7 @@ Function4a28a: ; 4a28a (12:628a) pop af bit 1, a jr nz, .asm_4a33b - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_4a2f0 cp $3 @@ -40629,7 +40046,7 @@ Function4a28a: ; 4a28a (12:628a) call InterpretMenu2 bit 1, a jr nz, .asm_4a338 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_4a338 ld a, $5 @@ -40904,14 +40321,14 @@ Function4a4c4: ; 4a4c4 (12:64c4) call Function3200 call SetPalettes call Function1bc9 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc jr asm_4a54d Function4a545: ; 4a545 (12:6545) call Function1bd3 - ld hl, wcfa9 + ld hl, MenuSelection2 ld b, [hl] push bc @@ -40922,7 +40339,7 @@ asm_4a54d: ; 4a54d (12:654d) jr nz, .asm_4a574 jr .asm_4a57e .asm_4a557 - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] cp $1 jp z, Function4a6ab @@ -40940,7 +40357,7 @@ asm_4a54d: ; 4a54d (12:654d) call ClearTileMap jp Function49f0a .asm_4a57e - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] dec a add a @@ -40968,7 +40385,7 @@ asm_4a54d: ; 4a54d (12:654d) Function4a5b0: ; 4a5b0 (12:65b0) call Function4a680 pop bc - ld hl, wcfa9 + ld hl, MenuSelection2 ld [hl], b ld b, $a ld c, $1 @@ -41859,11 +41276,11 @@ Function4ab1a: ; 4ab1a ld a, [PartyCount] inc a ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0d8], a cp b jr z, .asm_4ab7e - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a ld c, a @@ -41880,7 +41297,7 @@ Function4ab1a: ; 4ab1a ret .asm_4ab6d - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd0d8], a .asm_4ab73 ld de, SFX_READ_TEXT_2 @@ -41946,7 +41363,7 @@ Function4abc3: ; 4abc3 jr z, .asm_4abd5 ld a, [PartyCount] inc a - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a jr .asm_4ac29 @@ -41954,30 +41371,30 @@ Function4abc3: ; 4abc3 .asm_4abd5 bit 6, a jr z, .asm_4abeb - ld a, [wcfa9] - ld [wcfa9], a + ld a, [MenuSelection2] + ld [MenuSelection2], a and a jr nz, .asm_4ac29 ld a, [PartyCount] inc a - ld [wcfa9], a + ld [MenuSelection2], a jr .asm_4ac29 .asm_4abeb bit 7, a jr z, .asm_4ac08 - ld a, [wcfa9] - ld [wcfa9], a + ld a, [MenuSelection2] + ld [MenuSelection2], a ld a, [PartyCount] rept 2 inc a endr ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] cp b jr nz, .asm_4ac29 ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a jr .asm_4ac29 .asm_4ac08 @@ -41987,7 +41404,7 @@ endr jr z, .asm_4ac56 .asm_4ac10 - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [PartyCount] inc a @@ -42015,7 +41432,7 @@ endr dec a jr nz, .asm_4ac3b ld [hl], $7f - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [PartyCount] inc a @@ -42079,19 +41496,19 @@ MenuDataHeader_0x4aca2: ; 0x4aca2 Function4acaa: ; 4acaa .asm_4acaa ld a, $a0 - ld [wcf91], a + ld [wMenuData2Flags], a ld a, [wd019] bit 1, a jr z, .asm_4acc2 ld a, $2 - ld [wcf92], a + ld [wMenuData2Items], a ld a, $c ld [wMenuBorderTopCoord], a jr .asm_4accc .asm_4acc2 ld a, $4 - ld [wcf92], a + ld [wMenuData2Items], a ld a, $8 ld [wMenuBorderTopCoord], a @@ -42120,7 +41537,7 @@ Function4acaa: ; 4acaa ld a, [wd019] bit 1, a jr nz, .asm_4ad0e - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, Function4ad17 cp $2 @@ -42130,7 +41547,7 @@ Function4acaa: ; 4acaa jr .asm_4acf3 .asm_4ad0e - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, Function4ad56 jr .asm_4acf3 @@ -42280,7 +41697,7 @@ Function4adf7: ; 4adf7 ret z ld a, [PartyCount] inc a - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1 ld [wcfaa], a ld a, [wd019] @@ -42322,7 +41739,7 @@ Function4ae1f: ; 4ae1f call Function4ae5e pop af jr c, .asm_4ae57 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_4ae57 and a @@ -42330,7 +41747,7 @@ Function4ae1f: ; 4ae1f .asm_4ae57 ld a, $2 - ld [wcfa9], a + ld [MenuSelection2], a scf ret ; 4ae5e @@ -42747,14 +42164,14 @@ INCBIN "gfx/shrink2.2bpp.lz" ; 4d319 Function4d319: ; 4d319 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a call LowVolume predef StatsScreenInit ld a, [CurPartyMon] inc a - ld [wcfa9], a + ld [MenuSelection2], a call ClearScreen call WhiteBGMap call MaxVolume @@ -42860,7 +42277,7 @@ _ResetClock: ; 4d3b1 call CopyMenuDataHeader call InterpretMenu2 ret c - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 ret z call ClockResetPassword @@ -43136,7 +42553,7 @@ Function4d54c: ; 4d54c call CopyMenuDataHeader call InterpretMenu2 ret c - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 ret z callba EmptyAllSRAMBanks @@ -46621,7 +46038,7 @@ Function50405: ; 50405 ld a, $1 .asm_50424 - ld [wcfa9], a + ld [MenuSelection2], a ld a, $3 ld [wcfa8], a ret @@ -46642,7 +46059,7 @@ Function5042d: ; 0x5042d .asm_50444 ld a, $1 .asm_50446 - ld [wcfa9], a + ld [MenuSelection2], a ld a, $3 ld [wcfa8], a ret @@ -46667,7 +46084,7 @@ PartyMenuSelect: ; 0x50457 ld a, [PartyCount] inc a ld b, a - ld a, [wcfa9] ; menu selection? + ld a, [MenuSelection2] ; menu selection? cp b jr z, .exitmenu ; CANCEL ld [wd0d8], a @@ -46675,7 +46092,7 @@ PartyMenuSelect: ; 0x50457 ld b, a bit 1, b jr nz, .exitmenu ; B button? - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a ld c, a @@ -47825,7 +47242,7 @@ endr push bc push hl push de - ld hl, wcfa9 + ld hl, MenuSelection2 ld a, [hl] push af ld [hl], b @@ -48302,7 +47719,7 @@ Function50f12: dec a ld [wd1ec], a ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [Buffer2], a ; wd1eb (aliases: MovementType) cp b @@ -52958,7 +52375,7 @@ Function84817: ; 84817 (21:4817) ld de, String_84865 call PlaceString ld a, [wd007] - ld bc, 9 + ld bc, BOX_NAME_LENGTH ld hl, wBoxNames call AddNTimes ld d, h @@ -53939,7 +53356,7 @@ ShowPlayerNamingChoices: ; 88297 .GotGender call LoadMenuDataHeader call InterpretMenu2 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function1db8 call WriteBackup @@ -55770,7 +55187,7 @@ endr ret .one: ; 8d2a2 (23:52a2) - ld a, [wcfa9] + ld a, [MenuSelection2] ld hl, $ add hl, bc cp [hl] @@ -55821,7 +55238,7 @@ endr ret .three: ; 8d2ea (23:52ea) - ld a, [wcfa9] + ld a, [MenuSelection2] ld hl, $ add hl, bc cp [hl] @@ -58462,7 +57879,7 @@ GetGFXUnlessMobile: ; 8ea3f Function8ea4a: ; 8ea4a ld hl, wPartyMonMenuIconAnims ld e, $6 - ld a, [wcfa9] + ld a, [MenuSelection2] ld d, a .loop ld a, [hl] @@ -63720,7 +63137,7 @@ Function9307c: ; 9307c (24:707c) call InterpretMenu2 call WriteBackup ret c - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, $4 sub b @@ -63803,7 +63220,7 @@ Function930e9: ; 930e9 (24:70e9) call LoadMenuTextBox lb bc, 14, 12 call PlaceYesNoBox - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call WriteBackup and a @@ -69533,7 +68950,7 @@ Functione20e5: ; e20e5 ; e2101 Functione2101: ; e2101 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld l, a ld h, 0 @@ -69850,18 +69267,18 @@ Functione245d: ; e245d (38:645d) ld de, PCString_WhatsUp call Functione2a6e ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a call Functione298d ret Functione247d: ; e247d (38:647d) ld hl, BillsPCDepositMenuDataHeader call CopyMenuDataHeader - ld a, [wcfa9] + ld a, [MenuSelection2] call Function1d4b call InterpretMenu2 jp c, BillsPCDepositFuncCancel - ld a, [wcfa9] + ld a, [MenuSelection2] dec a and $3 ld e, a @@ -69914,14 +69331,14 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0) jr c, BillsPCDepositFuncCancel call Functione2f5f jr c, BillsPCDepositFuncCancel - ld a, [wcfa9] + ld a, [MenuSelection2] push af ld de, PCString_ReleasePKMN call Functione2a6e call LoadMenuDataHeader_0x1d75 lb bc, 14, 11 call PlaceYesNoBox - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call ExitMenu and a @@ -69945,7 +69362,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0) ld de, PCString_WhatsUp call Functione2a6e pop af - ld [wcfa9], a + ld [MenuSelection2], a ret BillsPCDepositFuncCancel: ; e2537 (38:6537) @@ -70115,18 +69532,18 @@ Functione2655: ; e2655 (38:6655) ld de, PCString_WhatsUp call Functione2a6e ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a call Functione298d ret BillsPC_Withdraw: ; e2675 (38:6675) ld hl, .MenuDataHeader call CopyMenuDataHeader - ld a, [wcfa9] + ld a, [MenuSelection2] call Function1d4b call InterpretMenu2 jp c, .cancel - ld a, [wcfa9] + ld a, [MenuSelection2] dec a and 3 ld e, a @@ -70175,7 +69592,7 @@ endr ret .release: ; e26d8 (38:66d8) - ld a, [wcfa9] + ld a, [MenuSelection2] push af call Functione2f5f jr c, .FailedRelease @@ -70184,7 +69601,7 @@ endr call LoadMenuDataHeader_0x1d75 lb bc, 14, 11 call PlaceYesNoBox - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call ExitMenu and a @@ -70208,7 +69625,7 @@ endr ld de, PCString_WhatsUp call Functione2a6e pop af - ld [wcfa9], a + ld [MenuSelection2], a ret .cancel: ; e272b (38:672b) @@ -70376,7 +69793,7 @@ Functione283d: ; e283d ld de, PCString_WhatsUp call Functione2a6e ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a call Functione298d ret ; e285d @@ -70384,11 +69801,11 @@ Functione283d: ; e283d Functione285d: ; e285d ld hl, MenuDataHeader_0xe28c3 call CopyMenuDataHeader - ld a, [wcfa9] + ld a, [MenuSelection2] call Function1d4b call InterpretMenu2 jp c, Functione28bd - ld a, [wcfa9] + ld a, [MenuSelection2] dec a and 3 ld e, a @@ -70758,7 +70175,7 @@ Functione2a8e: ; e2a8e (38:6a8e) .gotbox dec a ld hl, wBoxNames - ld bc, 9 + ld bc, BOX_NAME_LENGTH call AddNTimes ld e, l ld d, h @@ -72116,8 +71533,12 @@ Functione35aa_menudataheader: ; 0xe35f1 ; e3609 .boxes: ; e3609 - db 14 - db 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 + db NUM_BOXES +x = 1 +rept NUM_BOXES + db x +x = x + 1 +endr db -1 ; e3619 @@ -72125,14 +71546,14 @@ Functione35aa_menudataheader: ; 0xe35f1 push de ld a, [MenuSelection] dec a - call Functione3626 + call GetBoxName pop hl call PlaceString ret ; e3626 -Functione3626: ; e3626 (38:7626) - ld bc, 9 +GetBoxName: ; e3626 (38:7626) + ld bc, BOX_NAME_LENGTH ld hl, wBoxNames call AddNTimes ld d, h @@ -72166,6 +71587,7 @@ String_e3663: ; e3663 ; e3668 String_e3668: ; e3668 + ; db "/20@" db "/" db "0" + MONS_PER_BOX / 10 ; "2" db "0" + MONS_PER_BOX % 10 ; "0" @@ -72241,7 +71663,7 @@ Functione36cf: ; e36cf (38:76cf) call PlaceString ld a, [wCurBox] and $f - call Functione3626 + call GetBoxName hlcoord 11, 2 call PlaceString ret @@ -72257,7 +71679,7 @@ Functione36f9: ; e36f9 (38:76f9) call InterpretMenu2 call ExitMenu ret c - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .asm_e3734 cp $2 @@ -72305,7 +71727,7 @@ Functione36f9: ; e36f9 (38:76f9) call LoadFontsBattleExtra ld a, [MenuSelection] dec a - call Functione3626 + call GetBoxName ld e, l ld d, h ld hl, DefaultFlypoint @@ -72313,7 +71735,7 @@ Functione36f9: ; e36f9 (38:76f9) call InitString ld a, [MenuSelection] dec a - call Functione3626 + call GetBoxName ld de, DefaultFlypoint call CopyName2 ret @@ -75526,8 +74948,8 @@ GFX_f8ae0: ; f8ae0 INCBIN "gfx/unknown/0f8ae0.2bpp" ; f8b10 -GFX_f8b10: ; f8b10 -INCBIN "gfx/unknown/0f8b10.2bpp" +ExpBarGFX: ; f8b10 +INCBIN "gfx/battle/expbar.2bpp" ; f8ba0 TownMapGFX: ; f8ba0 @@ -75683,9 +75105,9 @@ Functionfb50d: ; fb50d ld hl, VTiles2 tile $73 lb bc, BANK(GFX_f8ae0), 6 call Functionddc - ld de, GFX_f8b10 + ld de, ExpBarGFX ld hl, VTiles2 tile $55 - lb bc, BANK(GFX_f8b10), 9 + lb bc, BANK(ExpBarGFX), 9 call Functiondc9 ld de, GFX_f9214 + $90 ld hl, VTiles2 tile $5e @@ -75708,9 +75130,9 @@ Functionfb53e: ; fb53e ld hl, VTiles2 tile $76 lb bc, BANK(GFX_f8ae0), 2 call Functionddc - ld de, GFX_f8b10 + ld de, ExpBarGFX ld hl, VTiles2 tile $55 - lb bc, BANK(GFX_f8b10), 8 + lb bc, BANK(ExpBarGFX), 8 call Functiondc9 Functionfb571: ; fb571 diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index d66525916..8cf670c80 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -368,7 +368,7 @@ Function11c1ca: ; 11c1ca ld [wcd2b], a ld a, $ff ld [wcd24], a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a call Function11c254 call WhiteBGMap @@ -1813,7 +1813,7 @@ String_11cb31: ; 11cb31 Function11cb52: ; 11cb52 (47:4b52) ld hl, Unknown_11cc01 - ld a, [wcfa9] + ld a, [MenuSelection2] .asm_11cb58 dec a jr z, .asm_11cb5f @@ -1851,7 +1851,7 @@ Function11cb66: ; 11cb66 (47:4b66) ld a, $4 call GetSRAMBank ld hl, $a007 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a sla a sla a @@ -1874,7 +1874,7 @@ Function11cb66: ; 11cb66 (47:4b66) ld de, Unknown_11cfc6 call Function11cfce ld hl, Unknown_11cc7e - ld a, [wcfa9] + ld a, [MenuSelection2] .asm_11cbba dec a jr z, .asm_11cbc1 diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 716ad50a3..f529b5bc7 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -259,7 +259,7 @@ Function89261: ; 89261 call Function8920f pop af jr c, .done - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .done and a @@ -2222,7 +2222,7 @@ asm_89d90: ; 89d90 (22:5d90) push hl call _hl_ call Function89dab - ld a, [wcfa9] + ld a, [MenuSelection2] push af call Function891ab pop af @@ -2253,7 +2253,7 @@ Function89dab: ; 89dab (22:5dab) call PlayClickSFX ld a, [wcfa3] ld c, a - ld a, [wcfa9] + ld a, [MenuSelection2] cp c jr z, .asm_89dd9 call Function1bee @@ -2273,7 +2273,7 @@ Function89de0: ; 89de0 (22:5de0) .asm_89dea call Function8a31c jr z, .asm_89dfd - ld a, [wcfa9] + ld a, [MenuSelection2] ld c, a push bc ld hl, Jumptable_89e04 @@ -2782,7 +2782,7 @@ Function8a116: ; 8a116 (22:6116) call Function8923c call Function8a17b jr c, .asm_8a16b - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd030], a dec d jr z, .asm_8a140 @@ -2865,7 +2865,7 @@ Function8a1b0: ; 8a1b0 ld c, $12 call TextBox hlcoord 1, 14 - ld a, [wcfa9] + ld a, [MenuSelection2] ld de, Strings_8a1cc dec a ld c, a @@ -3104,7 +3104,7 @@ Function8a383: ; 8a383 (22:6383) ret Function8a3a2: ; 8a3a2 (22:63a2) - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld hl, DefaultFlypoint ld e, a diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index 40196ae9a..6502d9043 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -854,7 +854,7 @@ Function8b7bd: ; 8b7bd .asm_8b824 ld c, a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wd030], a ld a, [wd0e4] ld [wd031], a @@ -863,7 +863,7 @@ Function8b7bd: ; 8b7bd Function8b832: ; 8b832 ld a, [wd0e4] - ld hl, wcf92 + ld hl, wMenuData2Items sub [hl] jr nc, Function8b84b xor a @@ -872,7 +872,7 @@ Function8b832: ; 8b832 Function8b83e: ; 8b83e ld a, [wd0e4] - ld hl, wcf92 + ld hl, wMenuData2Items add [hl] cp $24 jr c, Function8b84b @@ -880,7 +880,7 @@ Function8b83e: ; 8b83e Function8b84b: ; 8b84b ld [wd0e4], a - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wMenuCursorBuffer], a ret ; 8b855 diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index c8fba9be1..a777be7b9 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -901,7 +901,7 @@ Function100597: ; 100597 ret z jr nc, .asm_1005a6 xor a - ld [wcfa9], a + ld [MenuSelection2], a .asm_1005a6 call ExitMenu @@ -953,7 +953,7 @@ Function1005e1: ; 1005e1 ret z jr nc, .asm_1005f0 xor a - ld [wcfa9], a + ld [MenuSelection2], a .asm_1005f0 call ExitMenu ld a, [wcd26] @@ -1882,16 +1882,16 @@ Function100bc2: ; 100bc2 jr .asm_100bd1 .asm_100bff - ld a, [wcfa9] + ld a, [MenuSelection2] and a jp nz, .asm_100bcb ld a, [wd0eb] inc a - ld [wcfa9], a + ld [MenuSelection2], a jp .asm_100bcb .asm_100c10 - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [wd0eb] rept 2 @@ -1900,11 +1900,11 @@ endr cp b jp nz, .asm_100bcb ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a jp .asm_100bcb .asm_100c25 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurMoveNum], a ld a, $1 @@ -1912,10 +1912,10 @@ endr ret .asm_100c30 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurMoveNum], a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, 0 @@ -1930,7 +1930,7 @@ endr dec a cp c jr z, .asm_100c63 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, 0 @@ -1978,7 +1978,7 @@ Function100c98: ; 100c98 ld [wcfa3], a ld a, [CurMoveNum] inc a - ld [wcfa9], a + ld [MenuSelection2], a ret ; 100cad @@ -2007,7 +2007,7 @@ Function100cb5: ; 100cb5 ld a, [PartyCount] inc a ld b, a - ld a, [wcfa9] + ld a, [MenuSelection2] cp b jr z, .asm_100d17 ld [wd0d8], a @@ -2015,7 +2015,7 @@ Function100cb5: ; 100cb5 ld b, a bit 1, b jr nz, .asm_100d17 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a ld c, a @@ -2084,7 +2084,7 @@ Function100d67: ; 100d67 call CopyMenuDataHeader xor a ld [hBGMapMode], a - call Function1cbb + call MenuBox call UpdateSprites call Function1c89 call WaitBGMap @@ -4141,7 +4141,7 @@ Function101b2b: ; 101b2b call Function1013dd ld a, $0 ld [wcd26], a - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .asm_101b51 ld a, $2 @@ -4194,7 +4194,7 @@ Function101b8f: ; 101b8f call Function1013dd ld a, $0 ld [wcd26], a - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .asm_101bbc ld a, $1 @@ -4238,7 +4238,7 @@ Function101be5: ; 101be5 call Function1013dd ld a, $0 ld [wcd26], a - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr nz, .asm_101c0b ld a, $2a @@ -5330,7 +5330,7 @@ Function102387: ; 102387 call Function102d9a call Function102dd3 ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a Function1023a1: ; 1023a1 call Function102283 @@ -5696,20 +5696,20 @@ Function1025ff: ; 1025ff ret .asm_10262e - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [OTPartyCount] cp b ret nz call Function1bf7 ld a, [PartyCount] - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1d ld [wcd49], a ret .asm_102646 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 ret nz ld a, $23 @@ -5758,7 +5758,7 @@ Function10266b: ; 10266b ret .asm_10269a - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ret nz call Function1bf7 @@ -5767,7 +5767,7 @@ Function10266b: ; 10266b ret .asm_1026a8 - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a ld a, [PartyCount] cp b @@ -5827,7 +5827,7 @@ Function1026f3: ; 1026f3 hlcoord 9, 17 ld [hl], $7f ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1d ld [wcd49], a ret @@ -5836,7 +5836,7 @@ Function1026f3: ; 1026f3 hlcoord 9, 17 ld [hl], $7f ld a, [OTPartyCount] - ld [wcfa9], a + ld [MenuSelection2], a ld a, $1f ld [wcd49], a ret @@ -5947,7 +5947,7 @@ asm_1027c6: asm_1027d1: ld hl, wcd4b set 3, [hl] - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wcd4c], a ld a, $7 ld [wcd49], a @@ -5978,7 +5978,7 @@ String_102804: ; 102804 ; 102814 Function102814: ; 102814 - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wcd52], a ld a, [wcd4c] dec a @@ -6030,7 +6030,7 @@ Function10286f: ; 10286f call Function1028fc ret nc ld a, [wcd52] - ld [wcfa9], a + ld [MenuSelection2], a ld a, [wcd51] cp $8 jr nz, .asm_102886 @@ -6062,7 +6062,7 @@ Function1028a5: ; 1028a5 Function1028ab: ; 1028ab ld a, [wcd52] - ld [wcfa9], a + ld [MenuSelection2], a call Function102f15 ld hl, wcd4b set 1, [hl] @@ -6288,7 +6288,7 @@ Function1029fe: ; 1029fe push af call ExitMenu pop af - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr nz, .asm_102a21 ld a, $1 @@ -6439,12 +6439,12 @@ Function102b32: ; 102b32 Function102b4e: ; 102b4e ld a, $1 ld [MonType], a - ld a, [wcfa9] + ld a, [MenuSelection2] push af ld de, Unknown_102b73 call Function1bb1 pop af - ld [wcfa9], a + ld [MenuSelection2], a ld a, [OTPartyCount] ld [wcfa3], a ret @@ -6464,12 +6464,12 @@ Unknown_102b73: Function102b7b: ; 102b7b xor a ld [MonType], a - ld a, [wcfa9] + ld a, [MenuSelection2] push af ld de, Unknown_102b94 call Function1bb1 pop af - ld [wcfa9], a + ld [MenuSelection2], a ld a, [PartyCount] ld [wcfa3], a ret @@ -6489,7 +6489,7 @@ Function102b9c: ; 102b9c ; 102bac Function102bac: ; 102bac - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a call LowVolume @@ -6497,7 +6497,7 @@ Function102bac: ; 102bac callba Function4dc8f ld a, [CurPartyMon] inc a - ld [wcfa9], a + ld [MenuSelection2], a call Function102d9a call ClearPalettes call DelayFrame @@ -7695,7 +7695,7 @@ Function103612: ; 103612 call InterpretMenu2 call WriteBackup jr c, .asm_10363b - ld a, [wcfa9] + ld a, [MenuSelection2] ld [ScriptVar], a ld c, a ld a, [wdc40] @@ -7783,7 +7783,7 @@ Mobile_SelectThreeMons: ; 10366e call InterpretMenu2 call ExitMenu jr c, .asm_1036f4 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr z, .asm_1036d9 cp $2 diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 373834193..c250da03f 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -7972,11 +7972,11 @@ Function11784c: ; 11784c (45:784c) Function1178aa: ; 1178aa (45:78aa) ld hl, MenuDataHeader_1179b5 call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord ld hl, MenuDataHeader_1179bd call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord callba Function104061 hlcoord 16, 8 @@ -8075,7 +8075,7 @@ asm_11797e: ; 11797e (45:797e) Function117984: ; 117984 (45:7984) ld hl, MenuDataHeader_1179b5 call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord callba Function104061 hlcoord 1, 14 @@ -8235,7 +8235,7 @@ Function117b14: ret nz ld hl, Data117cbc call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord jp Function117cdd @@ -8247,7 +8247,7 @@ Function117b28: Function117b31: ld hl, Data117cc4 call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord hlcoord 16, 8 ld de, YesNo117ccc @@ -8385,7 +8385,7 @@ Function117bb6: Function117c4a: ld hl, Data117cbc call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord callba Function104061 ld hl, MobileStadiumSuccessText diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 1c0b56afa..37d0223a2 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -1284,7 +1284,7 @@ Function118936: ret nz ld hl, MenuDataHeader_119cf7 call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord call Function321c hlcoord 16, 8, AttrMap @@ -4739,7 +4739,7 @@ Function11a1ff: ; 11a1ff Function11a207: ; 11a207 ld hl, MenuDataHeader_11a2de call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord call Function321c hlcoord 16, 8 @@ -5954,7 +5954,7 @@ Function11ad1b: ; 11ad1b call ClearSprites call ClearTileMap callba Function17c000 - ld a, [wcfa9] + ld a, [MenuSelection2] ld [wcd82], a dec a ld [hObjectStructIndexBuffer], a @@ -6018,7 +6018,7 @@ Function11ad8f: ; 11ad8f Function11ad95: ; 11ad95 ld hl, MenuDataHeader_11ae38 call LoadMenuDataHeader - call Function1cbb + call MenuBox hlcoord 12, 12 ld de, String_11ae40 call PlaceString @@ -6028,7 +6028,7 @@ Function11ad95: ; 11ad95 callba Function104061 call Function11ad8a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a ld hl, Unknown_11afcc call Function11afb7 @@ -6055,13 +6055,13 @@ Function11adc4: jr .asm_11ae2e .asm_11ade6 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ret z jr .asm_11adf4 .asm_11aded - ld a, [wcfa9] + ld a, [MenuSelection2] inc a cp $4 ret z @@ -6071,21 +6071,21 @@ Function11adc4: ld hl, Unknown_11afcc call Function11afbb pop af - ld [wcfa9], a + ld [MenuSelection2], a ld hl, Unknown_11afcc call Function11afb7 ret .asm_11ae06 call PlayClickSFX - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld hl, wcd30 ld [hl], a and a jr z, .asm_11ae28 hlcoord 2, 14 - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_11ae23 call Function11b272 @@ -6126,13 +6126,13 @@ String_11ae40: ; 11ae40 Function11ae4e: ; 11ae4e ld hl, MenuDataHeader_11afe8 call LoadMenuDataHeader - call Function1cbb + call MenuBox hlcoord 10, 14 ld de, String_11aff0 call PlaceString ld hl, MenuDataHeader_11b013 call LoadMenuDataHeader - call Function1cbb + call MenuBox hlcoord 16, 8 ld de, String_11b01b call PlaceString @@ -6145,7 +6145,7 @@ Function11ae4e: ; 11ae4e callba Function104061 call Function11ad8a ld a, $1 - ld [wcfa9], a + ld [MenuSelection2], a ld hl, Unknown_11afd2 call Function11afb7 @@ -6176,13 +6176,13 @@ Function11ae98: jr .asm_11aef7 .asm_11aec1 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ret z jr .asm_11aecf .asm_11aec8 - ld a, [wcfa9] + ld a, [MenuSelection2] inc a cp $3 ret z @@ -6192,14 +6192,14 @@ Function11ae98: ld hl, Unknown_11afd2 call Function11afbb pop af - ld [wcfa9], a + ld [MenuSelection2], a ld hl, Unknown_11afd2 call Function11afb7 ret .asm_11aee1 call PlayClickSFX - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_11aeb4 ld a, [wcd4b] @@ -6217,13 +6217,13 @@ Function11ae98: Function11af04: ; 11af04 ld hl, MenuDataHeader_11afe8 call LoadMenuDataHeader - call Function1cbb + call MenuBox hlcoord 10, 14 ld de, String_11b003 call PlaceString ld hl, MenuDataHeader_11b013 call LoadMenuDataHeader - call Function1cbb + call MenuBox hlcoord 16, 8 ld de, String_11b01b call PlaceString @@ -6236,7 +6236,7 @@ Function11af04: ; 11af04 callba Function104061 call Function11ad8a ld a, $2 - ld [wcfa9], a + ld [MenuSelection2], a ld hl, Unknown_11afd2 call Function11afb7 @@ -6267,13 +6267,13 @@ Function11af4e: jr .asm_11afaa .asm_11af77 - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ret z jr .asm_11af85 .asm_11af7e - ld a, [wcfa9] + ld a, [MenuSelection2] inc a cp $3 ret z @@ -6283,14 +6283,14 @@ Function11af4e: ld hl, Unknown_11afd2 call Function11afbb pop af - ld [wcfa9], a + ld [MenuSelection2], a ld hl, Unknown_11afd2 call Function11afb7 ret .asm_11af97 call PlayClickSFX - ld a, [wcfa9] + ld a, [MenuSelection2] cp $2 jr z, .asm_11af6a ld a, $6 @@ -6313,7 +6313,7 @@ Function11afbb: ld e, $7f asm_11afbd: - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld c, a ld b, 0 diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 43cf8f987..dd661851d 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -1168,7 +1168,7 @@ Function16d77a: ; 16d77a swap a and $f ld c, a - ld a, [wcfa9] + ld a, [MenuSelection2] ld b, a xor a dec b diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 2cb0cccf0..6a0de4e47 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -2270,7 +2270,7 @@ Function171beb: ; 171beb (5c:5beb) call CloseSRAM ld hl, MenuDataHeader_171c6b call LoadMenuDataHeader - call Function1cbb + call MenuBox call GetMemTileCoord callba Function104061 hlcoord 1, 14 diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index e1928a440..5ef47e8ff 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -462,7 +462,7 @@ Function17d246: ; 17d246 ld a, [ScriptVar] cp $5 jr nz, .asm_17d25d - ld a, [wcfa9] + ld a, [MenuSelection2] cp $3 ret z jr c, .asm_17d25d @@ -470,7 +470,7 @@ Function17d246: ; 17d246 jr .asm_17d260 .asm_17d25d - ld a, [wcfa9] + ld a, [MenuSelection2] .asm_17d260 ld [ScriptVar], a @@ -1932,13 +1932,13 @@ Function17dc1f: ; 17dc1f call InterpretMenu2 jr nc, .asm_17dc6e ld a, $2 - ld [wcfa9], a + ld [MenuSelection2], a .asm_17dc6e call WriteBackup pop af ld [rSVBK], a - ld a, [wcfa9] + ld a, [MenuSelection2] cp $1 jr nz, .asm_17dc85 ld a, [$c68a] diff --git a/wram.asm b/wram.asm index 91c2c52a1..68667cf37 100644 --- a/wram.asm +++ b/wram.asm @@ -1238,9 +1238,9 @@ wcf86:: ds 1 wcf87:: ds 1 wMenuCursorBuffer:: ds 2 wcf8a:: ds 7 ; menu data 2 bank? -wcf91:: ds 1 -wcf92:: ds 1 +wMenuData2Flags:: ds 1 +wMenuData2Items:: ds 1 wcf93:: ds 1 wcf94:: ds 1 wcf95:: ds 1 ; bank @@ -1257,7 +1257,7 @@ wcfa5:: ds 1 wcfa6:: ds 1 wcfa7:: ds 1 wcfa8:: ds 1 -wcfa9:: ds 1 +MenuSelection2:: ds 1 wcfaa:: ds 1 wcfab:: ds 1 wcfac:: ds 1 @@ -2321,7 +2321,7 @@ wCurBox:: ; db72 ds 2 ; 8 chars + $50 -wBoxNames:: ds 9 * NUM_BOXES ; db75 +wBoxNames:: ds BOX_NAME_LENGTH * NUM_BOXES ; db75 wCelebiEvent:: ds 1 ds 1 -- cgit v1.2.3 From 95cb4636af8e19922922f4d183edaea20a56596c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 15:35:29 -0500 Subject: Corrected some mislabeled 1bpps --- battle/core.asm | 22 +++--- constants/misc_constants.asm | 4 + gfx/battle/enemy_hp_bar_border.1bpp | Bin 0 -> 32 bytes gfx/battle/hp_exp_bar_border.1bpp | Bin 0 -> 48 bytes gfx/unknown/0f8ac0.2bpp | Bin 32 -> 0 bytes gfx/unknown/0f8ae0.2bpp | Bin 48 -> 0 bytes home.asm | 11 +-- home/copy.asm | 8 +- main.asm | 144 +++++++++++++++++++----------------- misc/mobile_42.asm | 2 +- 10 files changed, 104 insertions(+), 87 deletions(-) create mode 100644 gfx/battle/enemy_hp_bar_border.1bpp create mode 100644 gfx/battle/hp_exp_bar_border.1bpp delete mode 100644 gfx/unknown/0f8ac0.2bpp delete mode 100644 gfx/unknown/0f8ae0.2bpp diff --git a/battle/core.asm b/battle/core.asm index ac3c1b5b0..752343df8 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2488,10 +2488,10 @@ WinTrainerBattle: ; 3cfa4 .skip_heal ld a, [wc2cc] bit 0, a - jr nz, .skip_whatever_this_is - call Function3718 + jr nz, .skip_win_loss_text + call PrintWinLossText -.skip_whatever_this_is +.skip_win_loss_text jp Function3d02b .mobile @@ -3104,9 +3104,9 @@ LostBattle: ; 3d38e ld a, [wc2cc] bit 0, a - jr nz, .skip - call Function3718 -.skip + jr nz, .skip_win_loss_text + call PrintWinLossText +.skip_win_loss_text ret .battle_tower @@ -7241,14 +7241,14 @@ Function3eda6: ; 3eda6 ; 3edad -Function3edad: ; 3edad - ld de, GFX_f8ac0 +LoadHPExpBarGFX: ; unreferenced + ld de, EnemyHPBarBorderGFX ld hl, VTiles2 tile $6c - lb bc, BANK(GFX_f8ac0), 4 + lb bc, BANK(EnemyHPBarBorderGFX), 4 call Get1bpp - ld de, GFX_f8ae0 + ld de, HPExpBarBorderGFX ld hl, VTiles2 tile $73 - lb bc, BANK(GFX_f8ae0), 6 + lb bc, BANK(HPExpBarBorderGFX), 6 call Get1bpp ld de, ExpBarGFX ld hl, VTiles2 tile $55 diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 173f0145f..b2db8f5e2 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -164,3 +164,7 @@ HMENURETURN_SCRIPT EQU %10000000 HMENURETURN_ASM EQU %11111111 NUM_MON_SUBMENU_ITEMS EQU 8 + +LEN_2BPP_TILE EQU 16 +LEN_1BPP_TILE EQU 8 +TILES_PER_FRAME EQU 6 diff --git a/gfx/battle/enemy_hp_bar_border.1bpp b/gfx/battle/enemy_hp_bar_border.1bpp new file mode 100644 index 000000000..629b4770a Binary files /dev/null and b/gfx/battle/enemy_hp_bar_border.1bpp differ diff --git a/gfx/battle/hp_exp_bar_border.1bpp b/gfx/battle/hp_exp_bar_border.1bpp new file mode 100644 index 000000000..1e5dd7af6 Binary files /dev/null and b/gfx/battle/hp_exp_bar_border.1bpp differ diff --git a/gfx/unknown/0f8ac0.2bpp b/gfx/unknown/0f8ac0.2bpp deleted file mode 100644 index 629b4770a..000000000 Binary files a/gfx/unknown/0f8ac0.2bpp and /dev/null differ diff --git a/gfx/unknown/0f8ae0.2bpp b/gfx/unknown/0f8ae0.2bpp deleted file mode 100644 index 1e5dd7af6..000000000 Binary files a/gfx/unknown/0f8ae0.2bpp and /dev/null differ diff --git a/home.asm b/home.asm index 2d3d0b456..292769cc9 100644 --- a/home.asm +++ b/home.asm @@ -1600,20 +1600,21 @@ CheckTrainerFlag:: ; 36f5 ; 3718 -Function3718:: ; 3718 +PrintWinLossText:: ; 3718 ld a, [BattleType] cp BATTLETYPE_CANLOSE - jr .canlose + jr .canlose ; ?????????? - ld hl, WalkingTile +; unreferenced + ld hl, wWinTextPointer jr .ok .canlose ld a, [wBattleResult] - ld hl, WalkingTile + ld hl, wWinTextPointer and $f jr z, .ok - ld hl, wd048 + 1 + ld hl, wLossTextPointer .ok ld a, [hli] diff --git a/home/copy.asm b/home/copy.asm index d17e459ca..30934df8f 100644 --- a/home/copy.asm +++ b/home/copy.asm @@ -1,7 +1,7 @@ ; Functions to copy data from ROM. -Functiondc9:: ; dc9 +Get2bpp_2:: ; dc9 ld a, [rLCDC] bit 7, a jp z, Copy2bpp @@ -17,7 +17,7 @@ Functiondc9:: ; dc9 ret ; ddc -Functionddc:: ; ddc +Get1bpp_2:: ; ddc ld a, [rLCDC] bit 7, a jp z, Copy1bpp @@ -33,13 +33,15 @@ Functionddc:: ; ddc ret ; def -Functiondef:: ; def +FarCopyBytesDouble_DoubleBankSwitch:: ; def ld [hBuffer], a ld a, [hROMBank] push af ld a, [hBuffer] rst Bankswitch + call FarCopyBytesDouble + pop af rst Bankswitch ret diff --git a/main.asm b/main.asm index 8d09f0022..d4a39a489 100644 --- a/main.asm +++ b/main.asm @@ -32254,7 +32254,7 @@ Function2c165: ; 2c165 ld de, GFX_2c172 ld hl, VTiles0 tile $31 lb bc, BANK(GFX_2c172), 4 - call Functiondc9 + call Get2bpp_2 ret ; 2c172 @@ -57873,7 +57873,7 @@ GetGFXUnlessMobile: ; 8ea3f ld a, [wLinkMode] cp LINK_MOBILE jp nz, Request2bpp - jp Functiondc9 + jp Get2bpp_2 ; 8ea4a Function8ea4a: ; 8ea4a @@ -74940,12 +74940,12 @@ GFX_f8aa0: ; f8aa0 INCBIN "gfx/unknown/0f8aa0.2bpp" ; f8ac0 -GFX_f8ac0: ; f8ac0 -INCBIN "gfx/unknown/0f8ac0.2bpp" +EnemyHPBarBorderGFX: ; f8ac0 +INCBIN "gfx/battle/enemy_hp_bar_border.1bpp" ; f8ae0 -GFX_f8ae0: ; f8ae0 -INCBIN "gfx/unknown/0f8ae0.2bpp" +HPExpBarBorderGFX: ; f8ae0 +INCBIN "gfx/battle/hp_exp_bar_border.1bpp" ; f8b10 ExpBarGFX: ; f8b10 @@ -74994,41 +74994,41 @@ Unknown_fb434: Functionfb435: ; 4b435 ld a, [Unknown_fb434] and a - jp nz, Functionddc + jp nz, Get1bpp_2 jp Get1bpp ; fb43f Functionfb43f: ; fb43f ld a, [Unknown_fb434] and a - jp nz, Functiondc9 + jp nz, Get2bpp_2 jp Get2bpp ; fb449 Functionfb449:: ; fb449 ld de, Font ld hl, VTiles1 - lb bc, BANK(Font), $400 / 8 + lb bc, BANK(Font), $80 ld a, [rLCDC] bit 7, a jp z, Copy1bpp ld de, Font ld hl, VTiles1 - lb bc, BANK(Font), $100 / 8 - call Functionddc - ld de, Font + $100 - ld hl, VTiles1 + $200 - lb bc, BANK(Font), $100 / 8 - call Functionddc - ld de, Font + $200 - ld hl, VTiles1 + $400 - lb bc, BANK(Font), $100 / 8 - call Functionddc - ld de, Font + $300 - ld hl, VTiles1 + $600 - lb bc, BANK(Font), $100 / 8 - call Functionddc + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $20 * LEN_1BPP_TILE + ld hl, VTiles1 tile $20 + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $40 * LEN_1BPP_TILE + ld hl, VTiles1 tile $40 + lb bc, BANK(Font), $20 + call Get1bpp_2 + ld de, Font + $60 * LEN_1BPP_TILE + ld hl, VTiles1 tile $60 + lb bc, BANK(Font), $20 + call Get1bpp_2 ret ; fb48a @@ -75038,16 +75038,16 @@ Functionfb48a:: ; fb48a ld de, GFX_f9214 ld hl, VTiles2 tile $60 lb bc, BANK(GFX_f9214), 1 - call Functionddc + call Get1bpp_2 ld de, GFX_f8f24 ld hl, VTiles2 tile $62 lb bc, BANK(GFX_f8f24), 1 - call Functiondc9 - ld de, FontExtra + $30 + call Get2bpp_2 + ld de, FontExtra + 3 * LEN_2BPP_TILE ld hl, VTiles2 tile $63 lb bc, BANK(FontExtra), $16 - call Functiondc9 - jr Functionfb4cc + call Get2bpp_2 + jr LoadFrame ; fb4b0 Functionfb4b0:: ; fb4b0 @@ -75055,7 +75055,7 @@ Functionfb4b0:: ; fb4b0 ld hl, VTiles2 tile $61 ld b, BANK(GFX_f9424) ld c, 1 - call Functiondc9 + call Get2bpp_2 ret ; fb4be @@ -75063,25 +75063,25 @@ _LoadFontsBattleExtra:: ; fb4be ld de, FontBattleExtra ld hl, VTiles2 tile $60 lb bc, BANK(FontBattleExtra), $19 - call Functiondc9 - jr Functionfb4cc + call Get2bpp_2 + jr LoadFrame ; fb4cc -Functionfb4cc: ; fb4cc +LoadFrame: ; fb4cc ld a, [TextBoxFrame] and 7 - ld bc, $30 + ld bc, TILES_PER_FRAME * LEN_1BPP_TILE ld hl, Frames call AddNTimes ld d, h ld e, l ld hl, VTiles2 tile $79 - lb bc, BANK(Frames), 6 - call Functionddc + lb bc, BANK(Frames), TILES_PER_FRAME + call Get1bpp_2 ld hl, VTiles2 tile $7f ld de, GFX_f9204 lb bc, BANK(GFX_f9204), 1 - call Functionddc + call Get1bpp_2 ret ; fb4f2 @@ -75089,60 +75089,62 @@ Functionfb4f2: ; fb4f2 ld de, FontBattleExtra ld hl, VTiles2 tile $60 lb bc, BANK(FontBattleExtra), $c - call Functiondc9 + call Get2bpp_2 ld hl, VTiles2 tile $70 - ld de, FontBattleExtra + $100 + ld de, FontBattleExtra + $10 * LEN_2BPP_TILE lb bc, BANK(FontBattleExtra), 3 - call Functiondc9 - call Functionfb4cc + call Get2bpp_2 + call LoadFrame Functionfb50d: ; fb50d - ld de, GFX_f8ac0 + ld de, EnemyHPBarBorderGFX ld hl, VTiles2 tile $6c - lb bc, BANK(GFX_f8ac0), 4 - call Functionddc - ld de, GFX_f8ae0 + lb bc, BANK(EnemyHPBarBorderGFX), 4 + call Get1bpp_2 + ld de, HPExpBarBorderGFX ld hl, VTiles2 tile $73 - lb bc, BANK(GFX_f8ae0), 6 - call Functionddc + lb bc, BANK(HPExpBarBorderGFX), 6 + call Get1bpp_2 ld de, ExpBarGFX ld hl, VTiles2 tile $55 lb bc, BANK(ExpBarGFX), 9 - call Functiondc9 - ld de, GFX_f9214 + $90 + call Get2bpp_2 + ld de, GFX_f9214 + 9 * LEN_2BPP_TILE ld hl, VTiles2 tile $5e lb bc, BANK(GFX_f9214), 2 - call Functiondc9 + call Get2bpp_2 ret ; fb53e Functionfb53e: ; fb53e call _LoadFontsBattleExtra - ld de, GFX_f8ac0 + ld de, EnemyHPBarBorderGFX ld hl, VTiles2 tile $6c - lb bc, BANK(GFX_f8ac0), 4 - call Functionddc - ld de, GFX_f8ae0 + lb bc, BANK(EnemyHPBarBorderGFX), 4 + call Get1bpp_2 + ld de, HPExpBarBorderGFX ld hl, VTiles2 tile $78 - lb bc, BANK(GFX_f8ae0), 1 - call Functionddc - ld de, GFX_f8ae0 + $18 + lb bc, BANK(HPExpBarBorderGFX), 1 + call Get1bpp_2 + ld de, HPExpBarBorderGFX + 3 * LEN_1BPP_TILE ld hl, VTiles2 tile $76 - lb bc, BANK(GFX_f8ae0), 2 - call Functionddc + lb bc, BANK(HPExpBarBorderGFX), 2 + call Get1bpp_2 ld de, ExpBarGFX ld hl, VTiles2 tile $55 lb bc, BANK(ExpBarGFX), 8 - call Functiondc9 + call Get2bpp_2 Functionfb571: ; fb571 ld de, GFX_f89b0 ld hl, VTiles2 tile $31 lb bc, BANK(GFX_f89b0), $11 - call Functiondc9 + call Get2bpp_2 ret ; fb57e +; These functions seem to be related to backwards compatibility + Functionfb57e: ; fb57e ld a, [wd003] ld hl, OTPartyMon1Species @@ -77306,6 +77308,7 @@ Function104265: ; 104265 (41:4265) Function104284:: ; 104284 + ; 2bpp when [rLCDC] & $80 ; switch to WRAM bank 6 ld a, [rSVBK] push af @@ -77348,16 +77351,17 @@ endr ; 1042b2 Function1042b2:: ; 1042b2 + ; 1bpp when [rLCDC] & $80 .loop ld a, c cp $10 - jp c, .asm_1042d6 - jp z, .asm_1042d6 + jp c, .bankswitch + jp z, .bankswitch push bc push hl push de ld c, $10 - call .asm_1042d6 + call .bankswitch pop de ld hl, $80 add hl, de @@ -77373,34 +77377,40 @@ Function1042b2:: ; 1042b2 jr .loop ; 1042d6 -.asm_1042d6: ; 1042d6 +.bankswitch: ; 1042d6 ld a, [rSVBK] push af ld a, $6 ld [rSVBK], a + push bc push hl + ld a, b ld l, c ld h, $0 rept 3 - add hl, hl + add hl, hl ; multiply by 8 endr ld c, l ld b, h ld h, d ld l, e ld de, w6_d000 - call Functiondef + call FarCopyBytesDouble_DoubleBankSwitch + pop hl pop bc + push bc call DelayFrame pop bc + ld d, h ld e, l ld hl, w6_d000 call Function104209 + pop af ld [rSVBK], a ret @@ -80944,7 +80954,7 @@ Function106464:: ; 106464 ld hl, VTiles2 tile $6b ld b, $f ; XXX no graphics at 0f:40b0 call Get2bpp - callba Functionfb4cc + callba LoadFrame ret ; 10649b diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index e09899f48..c57a4008a 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -1407,7 +1407,7 @@ Function108ad4: ; 108ad4 ld [rVBK], a ld hl, VTiles2 tile $4a lb bc, $42, $10 - call Functiondc9 + call Get2bpp_2 call DelayFrame ld a, $0 ld [rVBK], a -- cgit v1.2.3 From 7fd20e63223e777872618b3eac7cf49f8b105fec Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 16:14:27 -0500 Subject: home/copy.asm completely labeled --- battle/anim_objects.asm | 2 +- battle/core.asm | 2 +- engine/map_setup.asm | 2 +- engine/pokedex.asm | 6 +-- engine/specials.asm | 2 +- home/copy.asm | 56 ++++++++++++--------- home/map.asm | 4 +- home/window.asm | 2 +- items/item_effects.asm | 4 +- main.asm | 126 ++++++++++++++++++++++++------------------------ maps/PokeCenter2F.asm | 10 ++-- misc/mobile_22.asm | 12 ++--- misc/mobile_40.asm | 2 +- misc/mobile_42.asm | 6 +-- misc/mobile_5f.asm | 4 +- 15 files changed, 124 insertions(+), 116 deletions(-) diff --git a/battle/anim_objects.asm b/battle/anim_objects.asm index f4aea5163..943b550b3 100644 --- a/battle/anim_objects.asm +++ b/battle/anim_objects.asm @@ -4949,7 +4949,7 @@ endr ld l, a pop de push bc - call Functione73 + call DecompressRequest2bpp pop bc ret ; ce85e (33:685e) diff --git a/battle/core.asm b/battle/core.asm index 752343df8..e7bd66203 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -9366,7 +9366,7 @@ Function3fb6c: ; 3fb6c hlcoord 1, 5 lb bc, 3, 7 call ClearBox - call Functione51 + call LoadStandardFont call Function3ed9f call Function3fbd6 xor a diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 7d0a9affb..957747406 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -343,7 +343,7 @@ Function154f7: ; 154f7 jr c, .ok ret .ok - call Special_ReplaceKrisSprite + call ReplaceKrisSprite ret Function1550c: ; 1550c (5:550c) diff --git a/engine/pokedex.asm b/engine/pokedex.asm index dd58e940d..005129f5f 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -838,7 +838,7 @@ Function405df: ; 405df (10:45df) ld hl, PokedexLZ ld de, VTiles2 tile $31 lb bc, BANK(PokedexLZ), $3a - call Functione73 + call DecompressRequest2bpp .asm_4060f ret @@ -2487,7 +2487,7 @@ Function414b7: ; 414b7 xor a call ByteFill call Function414fb - call Functione5f + call LoadFontsExtra ld hl, VTiles2 tile $60 ld bc, $0200 call Function41504 @@ -2511,7 +2511,7 @@ Function414b7: ; 414b7 ret Function414fb: ; 414fb - call Functione51 + call LoadStandardFont ld hl, VTiles1 ld bc, $0800 diff --git a/engine/specials.asm b/engine/specials.asm index 0dc12a542..931a59078 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -76,7 +76,7 @@ SpecialsPointers:: ; c029 add_special UpdateTimePals add_special ClearTileMap add_special UpdateSprites - add_special Special_ReplaceKrisSprite + add_special ReplaceKrisSprite add_special Special_GameCornerPrizeMonCheckDex add_special SpecialSeenMon add_special WaitSFX diff --git a/home/copy.asm b/home/copy.asm index 30934df8f..e479ddeaf 100644 --- a/home/copy.asm +++ b/home/copy.asm @@ -8,9 +8,9 @@ Get2bpp_2:: ; dc9 ld a, [hROMBank] push af - ld a, BANK(Function104284) + ld a, BANK(_Get2bpp) rst Bankswitch - call Function104284 + call _Get2bpp pop af rst Bankswitch @@ -24,9 +24,9 @@ Get1bpp_2:: ; ddc ld a, [hROMBank] push af - ld a, BANK(Function1042b2) + ld a, BANK(_Get1bpp) rst Bankswitch - call Function1042b2 + call _Get1bpp pop af rst Bankswitch @@ -47,7 +47,7 @@ FarCopyBytesDouble_DoubleBankSwitch:: ; def ret ; dfd -Functiondfd:: ; dfd +OldDMATransfer:: ; dfd dec c ld a, [hBGMapMode] push af @@ -59,42 +59,47 @@ Functiondfd:: ; dfd rst Bankswitch .loop +; load the source and target MSB and LSB ld a, d - ld [rHDMA1], a + ld [rHDMA1], a ; source MSB ld a, e and $f0 - ld [rHDMA2], a + ld [rHDMA2], a ; source LSB ld a, h and $1f - ld [rHDMA3], a + ld [rHDMA3], a ; target MSB ld a, l and $f0 - ld [rHDMA4], a + ld [rHDMA4], a ; target LSB +; stop when c < 8 ld a, c cp $8 jr c, .done +; decrease c by 8 sub $8 ld c, a +; DMA transfer state ld a, $f ld [hDMATransfer], a call DelayFrame +; add $100 to hl and de ld a, l - add 0 + add $100 % $100 ld l, a ld a, h - adc 1 + adc $100 / $100 ld h, a ld a, e - add 0 + add $100 % $100 ld e, a ld a, d - adc 1 + adc $100 / $100 ld d, a jr .loop .done ld a, c - and $7f + and $7f ; pretty silly, considering at most bits 0-2 would be set ld [hDMATransfer], a call DelayFrame pop af @@ -107,15 +112,15 @@ Functiondfd:: ; dfd -Special_ReplaceKrisSprite:: ; e4a - callba Function14135 +ReplaceKrisSprite:: ; e4a + callba _ReplaceKrisSprite ret ; e51 -Functione51:: ; e51 - callba Functionfb449 +LoadStandardFont:: ; e51 + callba _LoadStandardFont ret ; e58 @@ -126,27 +131,30 @@ LoadFontsBattleExtra:: ; e58 -Functione5f:: ; e5f - callba Functionfb48a - callba Functionfb4b0 +LoadFontsExtra:: ; e5f + callba _LoadFontsExtra1 + callba _LoadFontsExtra2 ret ; e6c -Functione6c:: ; e6c - callba Functionfb4b0 +LoadFontsExtra2:: ; e6c + callba _LoadFontsExtra2 ret ; e73 -Functione73:: ; e73 +DecompressRequest2bpp:: ; e73 push de ld a, BANK(sScratch) call GetSRAMBank push bc + ld de, sScratch ld a, b call FarDecompress + pop bc pop hl + ld de, sScratch call Request2bpp call CloseSRAM diff --git a/home/map.asm b/home/map.asm index d2a5b1771..16b2456ab 100644 --- a/home/map.asm +++ b/home/map.asm @@ -2022,8 +2022,8 @@ Function2bae:: ; 2bae call DisableLCD call ClearSprites callba Function14168 - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra ld a, [hROMBank] push af ld a, [MapGroup] diff --git a/home/window.asm b/home/window.asm index 1198cfbe1..886799bea 100644 --- a/home/window.asm +++ b/home/window.asm @@ -42,7 +42,7 @@ Function2de2:: ; 2de2 call Function2e31 ld a, $90 ld [hWY], a - call Special_ReplaceKrisSprite + call ReplaceKrisSprite callba ReturnFromMapSetupScript callba Function106594 ret diff --git a/items/item_effects.asm b/items/item_effects.asm index 480ed895f..c1d891326 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -607,7 +607,7 @@ endr call FadeToWhite - call Functione51 + call LoadStandardFont pop hl ld de, StringBuffer1 @@ -687,7 +687,7 @@ endr call PrintText call FadeToWhite - call Functione51 + call LoadStandardFont jr .asm_ebe2 .asm_ebd1 diff --git a/main.asm b/main.asm index d4a39a489..f1b391494 100644 --- a/main.asm +++ b/main.asm @@ -109,8 +109,8 @@ Function5b44: ; 5b44 xor a ld [$ffde], a call ClearTileMap - call Functione5f - call Functione51 + call LoadFontsExtra + call LoadStandardFont call ResetTextRelatedRAM ret ; 5b54 @@ -582,7 +582,7 @@ Function5e9f: ; 5e9f call Function5ebf call Function5f1c call Function5f40 - call Functione5f + call LoadFontsExtra call UpdateSprites ret ; 5eaf @@ -591,7 +591,7 @@ Function5eaf: ; 5eaf call Function5ebf call Function5f1c call Function5f48 - call Functione5f + call LoadFontsExtra call UpdateSprites ret ; 5ebf @@ -856,7 +856,7 @@ NamePlayer: ; 0x6074 call FadeToWhite call ClearTileMap - call Functione5f + call LoadFontsExtra call WaitBGMap xor a @@ -948,7 +948,7 @@ ShrinkPlayer: ; 610f call DelayFrames call Intro_PlacePlayerSprite - call Functione5f + call LoadFontsExtra ld c, 50 call DelayFrames @@ -1431,7 +1431,7 @@ Data63ca: ; 63ca Copyright: ; 63e2 call ClearTileMap - call Functione5f + call LoadFontsExtra ld de, CopyrightGFX ld hl, VTiles2 tile $60 lb bc, BANK(CopyrightGFX), $1d @@ -1553,11 +1553,11 @@ Function64bf:: ; 64bf ; 64cd Function64cd: ; 64cd - call Functione5f + call LoadFontsExtra ld a, $90 ld [hWY], a call Function2e31 - call Functione51 + call LoadStandardFont ret ; 64db @@ -4783,7 +4783,7 @@ CutDownTreeOrGrass: ; c810 call Function2914 call UpdateSprites call DelayFrame - call Functione51 + call LoadStandardFont ret ; c840 @@ -5020,7 +5020,7 @@ UsedSurfScript: ; c986 copybytetovar Buffer2 writevarcode VAR_MOVEMENT - special Special_ReplaceKrisSprite + special ReplaceKrisSprite special PlayMapMusic ; step into the water special Special_SurfStartStep ; (slow_step_x, step_end) @@ -5258,7 +5258,7 @@ FlyFunction: ; ca3b Functioncacb: ; cacb callba Function561d call DelayFrame - call Special_ReplaceKrisSprite + call ReplaceKrisSprite callba Function106594 ret ; cade @@ -6359,7 +6359,7 @@ PutTheRodAway: ; d095 ld a, $1 ld [PlayerAction], a call UpdateSprites - call Special_ReplaceKrisSprite + call ReplaceKrisSprite ret ; d0a4 @@ -6478,14 +6478,14 @@ Script_GetOnBike: ; 0xd13e writetext UnknownText_0xd17c closetext loadmovesprites - special Special_ReplaceKrisSprite + special ReplaceKrisSprite end ; 0xd14e Script_GetOnBike_Register: ; 0xd14e writecode VAR_MOVEMENT, $1 loadmovesprites - special Special_ReplaceKrisSprite + special ReplaceKrisSprite end ; 0xd156 @@ -6502,7 +6502,7 @@ Script_GetOffBike: ; 0xd158 UnknownScript_0xd163: loadmovesprites - special Special_ReplaceKrisSprite + special ReplaceKrisSprite special PlayMapMusic end ; 0xd16b @@ -11322,8 +11322,8 @@ Function11c11: ; 11c11 (4:5c11) Function11c51: ; 11c51 call ClearSprites callab Function8cf53 - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra ld de, GFX_11e65 ld hl, VTiles1 tile $6b @@ -12525,7 +12525,7 @@ endr push af ld a, 1 ld [hOAMUpdate], a - call Functione5f + call LoadFontsExtra pop af ld [hOAMUpdate], a .ReturnEnd @@ -16188,7 +16188,7 @@ GetEmote2bpp: ; 1412a ret ; 14135 -Function14135:: ; 14135 +_ReplaceKrisSprite:: ; 14135 call GetPlayerSprite ld a, [UsedSprites] ld [hUsedSpriteIndex], a @@ -22316,7 +22316,7 @@ PokepicYesOrNo:: ; 24528 call Function2173 call Function321c call UpdateSprites - call Functione51 + call LoadStandardFont ret ; 24547 @@ -26660,7 +26660,7 @@ LinkCommunications: ; 28000 call DelayFrames call ClearScreen call UpdateSprites - call Functione51 + call LoadStandardFont call LoadFontsBattleExtra callba Function16d69a call Function3200 @@ -28897,7 +28897,7 @@ Function29082: ; 29082 ret .asm_2909b - call Functione51 + call LoadStandardFont scf ret ; 290a0 @@ -32264,7 +32264,7 @@ INCBIN "gfx/battle/balls.2bpp" _ShowLinkBattleParticipants: ; 2c1b2 call WhiteBGMap - call Functione5f + call LoadFontsExtra hlcoord 2, 3 ld b, 9 ld c, 14 @@ -34330,8 +34330,8 @@ Function41a7f: ; 41a7f callba Function1de247 call Function41af7 call DisableLCD - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra call Function414b7 call Function4147b ld a, [wd265] @@ -36226,7 +36226,7 @@ Function4802f: ; 4802f (12:402f) ld [wd003], a .asm_4805a call Function486bf - call Functione5f + call LoadFontsExtra ld de, GFX_488c3 ld hl, VTiles2 tile $10 lb bc, BANK(GFX_488c3), 1 @@ -38087,7 +38087,7 @@ Function48e14: ; 48e14 (12:4e14) call DelayFrames call WhiteBGMap call Function48000 - call Functione5f + call LoadFontsExtra hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, $0 @@ -39576,8 +39576,8 @@ Function49ed0: ; 49ed0 xor a ld [$ffde], a call ClearTileMap - call Functione5f - call Functione51 + call LoadFontsExtra + call LoadStandardFont call ResetTextRelatedRAM ret ; 49ee0 @@ -39829,7 +39829,7 @@ Function4a100: ; 4a100 (12:6100) asm_4a111: ; 4a111 (12:6111) pop bc - call Functione5f + call LoadFontsExtra jp Function49f0a Function4a118: ; 4a118 (12:6118) @@ -40029,7 +40029,7 @@ Function4a28a: ; 4a28a (12:628a) callba Function11765d call WhiteBGMap call Call_ExitMenu - call Functione5f + call LoadFontsExtra scf ret .asm_4a2f0 @@ -40459,7 +40459,7 @@ Function4a6ab: ; 4a6ab (12:66ab) call GetSGBLayout callba Function11c1ab pop bc - call Functione5f + call LoadFontsExtra jp Function4a4c4 Function4a6c5: ; 4a6c5 (12:66c5) @@ -42267,8 +42267,8 @@ _ResetClock: ; 4d3b1 callba Function8000 ld b, $8 call GetSGBLayout - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra ld de, MUSIC_MAIN_MENU call PlayMusic ld hl, .text_askreset @@ -42543,8 +42543,8 @@ Function4d54c: ; 4d54c callba Function8000 ld b, $8 call GetSGBLayout - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra ld de, MUSIC_MAIN_MENU call PlayMusic ld hl, UnknownText_0x4d580 @@ -44975,7 +44975,7 @@ Function4e881: ; 4e881 call ClearTileMap call ClearSprites call DisableLCD - call Functione51 + call LoadStandardFont call LoadFontsBattleExtra ld hl, VBGMap0 ld bc, VBGMap1 - VBGMap0 @@ -45008,7 +45008,7 @@ Function4e8c2: ; 4e8c2 call ClearTileMap call ClearSprites call DisableLCD - call Functione51 + call LoadStandardFont call LoadFontsBattleExtra ld hl, VBGMap0 ld bc, VBGMap1 - VBGMap0 @@ -49349,7 +49349,7 @@ WaterToLandSprite: ; 803f9 push bc ld a, PLAYER_NORMAL ld [PlayerState], a - call Special_ReplaceKrisSprite ; UpdateSprites + call ReplaceKrisSprite ; UpdateSprites pop bc ret ; 80404 @@ -49776,7 +49776,7 @@ Function8197c: ; 8197c ld de, VTiles0 ld bc, $10 call CopyBytes - call Functione51 + call LoadStandardFont ld hl, VTiles1 lb bc, 8, 0 .asm_8199d @@ -53681,7 +53681,7 @@ ShakeHeadbuttTree: ; 8c80a ld hl, VTiles1 lb bc, BANK(Font), $c call Get1bpp - call Special_ReplaceKrisSprite + call ReplaceKrisSprite ret ; 8c893 @@ -57994,7 +57994,7 @@ InitClock: ; 90672 (24:4672) call GetSGBLayout xor a ld [hBGMapMode], a ; $ff00+$d4 - call Functione51 + call LoadStandardFont ld de, GFX_908fb ld hl, VTiles2 tile $00 lb bc, BANK(GFX_908fb), 1 @@ -58424,7 +58424,7 @@ Special_SetDayOfWeek: ; 90913 ld a, [DefaultFlypoint] ld [StringBuffer2], a call Function663 - call Functione51 + call LoadStandardFont pop af ld [hInMenu], a ret @@ -61336,7 +61336,7 @@ Function91ff2: ; 91ff2 ld hl, TownMapGFX ld de, VTiles2 lb bc, BANK(TownMapGFX), $30 - call Functione73 + call DecompressRequest2bpp ret ; 91fff @@ -64511,7 +64511,7 @@ ReadAnyMail: ; b9237 call ClearSprites call ClearTileMap call DisableLCD - call Functione5f + call LoadFontsExtra pop de push de ld a, BANK(s0_a600) @@ -64544,7 +64544,7 @@ ReadAnyMail: ; b9237 call Functionb929a call WhiteBGMap call DisableLCD - call Functione51 + call LoadStandardFont jp EnableLCD ; b929a @@ -65981,8 +65981,8 @@ _CardFlip: ; e00ee (38:40ee) call PlayMusic call DelayFrame call DisableLCD - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra ld hl, LZ_e0d16 ld de, VTiles2 tile $00 call Decompress @@ -71441,7 +71441,7 @@ Functione33e8: ; e33e8 (38:73e8) ld bc, $310 xor a call ByteFill - call Functione51 + call LoadStandardFont call LoadFontsBattleExtra ld hl, PCMailGFX ld de, VTiles2 tile $5c @@ -71723,7 +71723,7 @@ Functione36f9: ; e36f9 (38:76f9) ld de, DefaultFlypoint callba Function116c1 call ClearTileMap - call Functione51 + call LoadStandardFont call LoadFontsBattleExtra ld a, [MenuSelection] dec a @@ -72314,7 +72314,7 @@ Functione4512: ; e4512 hlcoord 16, 15 ;where on the screen the number is drawn add "1" ld [hl], a - call Functione5f + call LoadFontsExtra and a ret ; e4520 @@ -74988,6 +74988,7 @@ Footprints: ; f9434 INCBIN "gfx/misc/footprints.1bpp" ; fb434 +; This and the following two functions are unreferenced. Unknown_fb434: db 0 @@ -75003,9 +75004,10 @@ Functionfb43f: ; fb43f and a jp nz, Get2bpp_2 jp Get2bpp +; End unreferenced block ; fb449 -Functionfb449:: ; fb449 +_LoadStandardFont:: ; fb449 ld de, Font ld hl, VTiles1 lb bc, BANK(Font), $80 @@ -75032,9 +75034,7 @@ Functionfb449:: ; fb449 ret ; fb48a - - -Functionfb48a:: ; fb48a +_LoadFontsExtra1:: ; fb48a ld de, GFX_f9214 ld hl, VTiles2 tile $60 lb bc, BANK(GFX_f9214), 1 @@ -75050,7 +75050,7 @@ Functionfb48a:: ; fb48a jr LoadFrame ; fb4b0 -Functionfb4b0:: ; fb4b0 +_LoadFontsExtra2:: ; fb4b0 ld de, GFX_f9424 ld hl, VTiles2 tile $61 ld b, BANK(GFX_f9424) @@ -75521,8 +75521,8 @@ Functionfb877: ; fb877 Functionfb8c8: ; fb8c8 call ClearTileMap - call Functione5f - call Functione51 + call LoadFontsExtra + call LoadStandardFont callba Function40ab2 call Function3200 callba Function3da97 @@ -77307,7 +77307,7 @@ Function104265: ; 104265 (41:4265) ret -Function104284:: ; 104284 +_Get2bpp:: ; 104284 ; 2bpp when [rLCDC] & $80 ; switch to WRAM bank 6 ld a, [rSVBK] @@ -77350,7 +77350,7 @@ endr ret ; 1042b2 -Function1042b2:: ; 1042b2 +_Get1bpp:: ; 1042b2 ; 1bpp when [rLCDC] & $80 .loop ld a, c @@ -77785,7 +77785,7 @@ LoadGraphics: ; 1047cf xor a ld [hTileAnimFrame], a ; $ff00+$df callba Function14168 - call Functione5f + call LoadFontsExtra callba Function106594 ret @@ -81626,7 +81626,7 @@ Function1ddf26: ; 1ddf26 (77:5f26) ld hl, LZ_1ddf33 ld de, VTiles2 tile $31 lb bc, BANK(LZ_1ddf33), $3a - call Functione73 + call DecompressRequest2bpp ret ; 1ddf33 (77:5f33) diff --git a/maps/PokeCenter2F.asm b/maps/PokeCenter2F.asm index 93fc07a2f..9c3a858a9 100644 --- a/maps/PokeCenter2F.asm +++ b/maps/PokeCenter2F.asm @@ -435,7 +435,7 @@ PokeCenter2F_CheckGender: special Functionc225 applymovement PLAYER, MovementData_0x192d1c setflag ENGINE_KRIS_IN_CABLE_CLUB - special Special_ReplaceKrisSprite + special ReplaceKrisSprite loadfont writetext Text_LikeTheLook closetext @@ -461,7 +461,7 @@ Script_CleanUpFemaleFlagAfterTrade: writebyte $90 special Functionc225 applymovement PLAYER, MovementData_0x192d1c - special Special_ReplaceKrisSprite + special ReplaceKrisSprite applymovement PLAYER, MovementData_0x192d2a applymovement $2, MovementData_0x192cfe end @@ -483,7 +483,7 @@ Script_CleanUpFemaleFlagAfterBattle: writebyte $90 special Functionc225 applymovement PLAYER, MovementData_0x192d1c - special Special_ReplaceKrisSprite + special ReplaceKrisSprite applymovement PLAYER, MovementData_0x192d2a applymovement $3, MovementData_0x192cfe end @@ -544,7 +544,7 @@ TimeCapsuleScript_CheckPlayerGender: applymovement PLAYER, MovementData_0x192d22 faceperson PLAYER, $4 setflag ENGINE_KRIS_IN_CABLE_CLUB - special Special_ReplaceKrisSprite + special ReplaceKrisSprite loadfont writetext Text_LikeTheLook closetext @@ -571,7 +571,7 @@ Script_LeftTimeCapsule: writebyte $90 special Functionc225 applymovement PLAYER, MovementData_0x192d1c - special Special_ReplaceKrisSprite + special ReplaceKrisSprite applymovement PLAYER, MovementData_0x192cfc applymovement $4, MovementData_0x192d01 .Done: diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index f529b5bc7..0f0e1852e 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -499,8 +499,8 @@ Function8939a: ; 8939a Function893b3: ; 893b3 (22:53b3) call DisableLCD call ClearSprites - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra call Function893ef call Function8942b call Function89455 @@ -510,8 +510,8 @@ Function893b3: ; 893b3 (22:53b3) Function893cc: ; 893cc call DisableLCD call ClearSprites - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra call Function893ef call Function89464 call EnableLCD @@ -4307,7 +4307,7 @@ Function8ac7c: ; 8ac7c .asm_8ace4 call CloseSRAM - call Functione51 + call LoadStandardFont ld a, [wd02f] ld c, a and a @@ -4319,7 +4319,7 @@ Function8ac7c: ; 8ac7c ld a, $2 call Function89259 jp c, Function8ac7c - call Functione51 + call LoadStandardFont pop de ld c, $0 scf diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index a777be7b9..5afe9e3a9 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -411,7 +411,7 @@ Function1002dc: ; 1002dc callba RunMapSetupScript xor a ld [hMapEntryMethod], a - call Functione51 + call LoadStandardFont ret ; 1002ed diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index c57a4008a..613c21bc3 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -131,7 +131,7 @@ Function1080b7: ; 1080b7 call DisableLCD call Function1081ad call Function1081ca - call Functione51 + call LoadStandardFont call LoadFontsBattleExtra ld a, $1 ld [rVBK], a @@ -194,7 +194,7 @@ Function108157: ; 108157 call DisableLCD call Function1081ad call Function1081ca - call Functione51 + call LoadStandardFont call LoadFontsBattleExtra call EnableLCD xor a @@ -326,7 +326,7 @@ Function10824b: ; 10824b ld [hWX], a ld a, $90 ld [hWY], a - call Functione51 + call LoadStandardFont call LoadFontsBattleExtra callba Function106462 callba Function106464 diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 5ef47e8ff..a58c6eb0d 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -10,8 +10,8 @@ Function17c000: ; 17c000 xor a call ByteFill - call Functione51 - call Functione5f + call LoadStandardFont + call LoadFontsExtra ld hl, HaveWantMap decoord 0, 0 -- cgit v1.2.3 From 3cadc7b012c3d11f227d71814f729952d0f56c21 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 20:20:14 -0500 Subject: give/takeitem *, 1: the 1 is optional --- constants/gfx_constants.asm | 4 + constants/map_constants.asm | 5 +- constants/misc_constants.asm | 4 - constants/sprite_constants.asm | 12 + engine/fruit_trees.asm | 2 +- engine/scripting.asm | 4 +- engine/specials.asm | 2 +- engine/sprites.asm | 1480 +++++++++++++++++++++++++ engine/std_scripts.asm | 8 +- gfx/overworld/sprite_headers.asm | 1 + home/map.asm | 2 +- home/map_objects.asm | 6 +- macros/event.asm | 12 + main.asm | 1491 +------------------------- maps/AzaleaGym.asm | 2 +- maps/AzaleaTown.asm | 2 +- maps/BillsHouse.asm | 10 +- maps/BlackthornCity.asm | 2 +- maps/BlackthornGym1F.asm | 2 +- maps/CeladonCafe.asm | 2 +- maps/CeladonDeptStore6F.asm | 6 +- maps/CeladonGameCornerPrizeRoom.asm | 6 +- maps/CeladonGym.asm | 2 +- maps/CeladonMansionRoofHouse.asm | 2 +- maps/CharcoalKiln.asm | 2 +- maps/CherrygroveCity.asm | 2 +- maps/CianwoodCity.asm | 2 +- maps/CianwoodGym.asm | 2 +- maps/CianwoodPharmacy.asm | 2 +- maps/CopycatsHouse2F.asm | 4 +- maps/DanceTheatre.asm | 2 +- maps/DarkCaveBlackthornEntrance.asm | 2 +- maps/DragonsDenB1F.asm | 4 +- maps/EcruteakGym.asm | 2 +- maps/EcruteakItemfinderHouse.asm | 2 +- maps/ElmsLab.asm | 10 +- maps/FastShipCabins_SE_SSE_CaptainsCabin.asm | 4 +- maps/FuchsiaGym.asm | 2 +- maps/GoldenrodBikeShop.asm | 2 +- maps/GoldenrodDeptStore5F.asm | 4 +- maps/GoldenrodDeptStore6F.asm | 6 +- maps/GoldenrodFlowerShop.asm | 2 +- maps/GoldenrodGameCorner.asm | 6 +- maps/GoldenrodGym.asm | 2 +- maps/GoldenrodPokeCenter1F.asm | 10 +- maps/IlexForest.asm | 6 +- maps/KurtsHouse.asm | 18 +- maps/LakeofRage.asm | 4 +- maps/LakeofRageHiddenPowerHouse.asm | 2 +- maps/LakeofRageMagikarpHouse.asm | 2 +- maps/MahoganyGym.asm | 2 +- maps/MahoganyTown.asm | 2 +- maps/MrPokemonsHouse.asm | 6 +- maps/MrPsychicsHouse.asm | 2 +- maps/NationalPark.asm | 4 +- maps/OlivineCafe.asm | 2 +- maps/OlivineGoodRodHouse.asm | 2 +- maps/OlivineGym.asm | 2 +- maps/OlivineLighthouse2F.asm | 4 +- maps/OlivineLighthouse6F.asm | 2 +- maps/PewterCity.asm | 2 +- maps/PokemonFanClub.asm | 4 +- maps/PowerPlant.asm | 4 +- maps/RadioTower1F.asm | 6 +- maps/RadioTower2F.asm | 2 +- maps/RadioTower3F.asm | 2 +- maps/RadioTower4F.asm | 2 +- maps/RadioTower5F.asm | 4 +- maps/Route12SuperRodHouse.asm | 2 +- maps/Route25.asm | 2 +- maps/Route27.asm | 2 +- maps/Route27SandstormHouse.asm | 2 +- maps/Route28FamousSpeechHouse.asm | 2 +- maps/Route29.asm | 2 +- maps/Route2NuggetSpeechHouse.asm | 2 +- maps/Route30.asm | 4 +- maps/Route30BerrySpeechHouse.asm | 2 +- maps/Route31.asm | 10 +- maps/Route32.asm | 6 +- maps/Route32PokeCenter1F.asm | 2 +- maps/Route34.asm | 4 +- maps/Route34IlexForestGate.asm | 2 +- maps/Route35Goldenrodgate.asm | 2 +- maps/Route36.asm | 8 +- maps/Route36NationalParkgate.asm | 8 +- maps/Route37.asm | 2 +- maps/Route38.asm | 2 +- maps/Route39.asm | 2 +- maps/Route39Barn.asm | 2 +- maps/Route39Farmhouse.asm | 4 +- maps/Route40.asm | 2 +- maps/Route42.asm | 2 +- maps/Route43.asm | 2 +- maps/Route43Gate.asm | 2 +- maps/Route44.asm | 10 +- maps/Route45.asm | 6 +- maps/Route46.asm | 4 +- maps/Route5CleanseTagSpeechHouse.asm | 2 +- maps/SilphCo1F.asm | 2 +- maps/SlowpokeWellB2F.asm | 2 +- maps/SproutTower3F.asm | 2 +- maps/TeamRocketBaseB2F.asm | 2 +- maps/TinTower1F.asm | 2 +- maps/UndergroundWarehouse.asm | 2 +- maps/VermilionCity.asm | 2 +- maps/VioletGym.asm | 2 +- maps/ViridianCity.asm | 2 +- wram.asm | 34 +- 108 files changed, 1722 insertions(+), 1663 deletions(-) create mode 100755 engine/sprites.asm diff --git a/constants/gfx_constants.asm b/constants/gfx_constants.asm index 5e7583f8e..c774faa95 100644 --- a/constants/gfx_constants.asm +++ b/constants/gfx_constants.asm @@ -39,4 +39,8 @@ const_value SET 1 const ANIM_GFX_WAVE const ANIM_GFX_AEROBLAST + +LEN_2BPP_TILE EQU 16 +LEN_1BPP_TILE EQU 8 +TILES_PER_FRAME EQU 6 TILESIZE EQU $10 diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 35a26b9e2..799410e17 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -587,7 +587,10 @@ OW_RIGHT EQU RIGHT << 2 const EMOTE_BOLT ; 5 const EMOTE_SLEEP ; 6 const EMOTE_FISH ; 7 - const EMOTE_ROD ; 8 - add directional constant + const EMOTE_08 ; 8 + const EMOTE_09 ; 9 + const EMOTE_0A ; 10 + const EMOTE_0B ; 11 EMOTE_MEM EQU -1 const_def diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index b2db8f5e2..173f0145f 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -164,7 +164,3 @@ HMENURETURN_SCRIPT EQU %10000000 HMENURETURN_ASM EQU %11111111 NUM_MON_SUBMENU_ITEMS EQU 8 - -LEN_2BPP_TILE EQU 16 -LEN_1BPP_TILE EQU 8 -TILES_PER_FRAME EQU 6 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index a355877f2..6f1d5d1d5 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -170,6 +170,16 @@ const_value SET 1 const STANDING_SPRITE const STILL_SPRITE +; sprite header fields + const_def + const SPRITEHEADER_ADDR_LO + const SPRITEHEADER_ADDR_HI + const SPRITEHEADER_SIZE + const SPRITEHEADER_BANK + const SPRITEHEADER_TYPE + const SPRITEHEADER_PALETTE +NUM_SPRITEHEADER_FIELDS EQU const_value + ; sprite palettes const_def const PAL_OW_RED @@ -252,3 +262,5 @@ const_value SET 1 const SPRITEMOVEFN_19 const SPRITEMOVEFN_1A const SPRITEMOVEFN_1B + +MAX_OUTDOOR_SPRITES EQU 23 diff --git a/engine/fruit_trees.asm b/engine/fruit_trees.asm index 1b5c9a18b..28e6e8cec 100644 --- a/engine/fruit_trees.asm +++ b/engine/fruit_trees.asm @@ -15,7 +15,7 @@ FruitTreeScript:: ; 44000 .fruit writetext HeyItsFruitText copybytetovar CurFruit - giveitem ITEM_FROM_MEM, 1 + giveitem ITEM_FROM_MEM iffalse .packisfull keeptextopen writetext ObtainedFruitText diff --git a/engine/scripting.asm b/engine/scripting.asm index d502a94db..c37d82594 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1197,9 +1197,9 @@ ApplyPersonFacing: ; 0x9728b add hl, bc ld a, [hl] push bc - call Function1836 + call DoesSpriteHaveFacings pop bc - jr c, .not_visible ; 0x9729c $1b + jr c, .not_visible ; STILL_SPRITE ld hl, OBJECT_FLAGS1 add hl, bc bit 2, [hl] diff --git a/engine/specials.asm b/engine/specials.asm index 931a59078..ac8c220d8 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -178,7 +178,7 @@ SpecialsPointers:: ; c029 add_special Function1037eb add_special Function10383c add_special Mobile_HealParty - add_special Function14168 + add_special RefreshSprites add_special Function1037c2 add_special Function10630f add_special Function103780 diff --git a/engine/sprites.asm b/engine/sprites.asm new file mode 100755 index 000000000..517428007 --- /dev/null +++ b/engine/sprites.asm @@ -0,0 +1,1480 @@ +GetEmote2bpp: ; 1412a + ld a, $1 + ld [rVBK], a + call Get2bpp + xor a + ld [rVBK], a + ret +; 14135 + +_ReplaceKrisSprite:: ; 14135 + call GetPlayerSprite + ld a, [UsedSprites] + ld [hUsedSpriteIndex], a + ld a, [UsedSprites + 1] + ld [hUsedSpriteTile], a + call Function143c8 + ret +; 14146 + +Function14146: ; 14146 + ld hl, wSpriteFlags + ld a, [hl] + push af + res 7, [hl] + set 6, [hl] + call RunCallback_04 + pop af + ld [wSpriteFlags], a + ret +; 14157 + +Function14157: ; 14157 + ld hl, wSpriteFlags + ld a, [hl] + push af + set 7, [hl] + res 6, [hl] + call RunCallback_04 + pop af + ld [wSpriteFlags], a + ret +; 14168 + +RefreshSprites:: ; 14168 + call .Refresh + call RunCallback_04 + ret +; 1416f + +.Refresh: ; 1416f + xor a + ld bc, UsedSpritesEnd - UsedSprites + ld hl, UsedSprites + call ByteFill + call GetPlayerSprite + call AddMapSprites + call LoadAndSortSprites + ret +; 14183 + +GetPlayerSprite: ; 14183 +; Get Chris or Kris's sprite. + ld hl, .Chris + ld a, [wPlayerSpriteSetupFlags] + bit 2, a + jr nz, .go + ld a, [PlayerGender] + bit 0, a + jr z, .go + ld hl, .Kris + +.go + ld a, [PlayerState] + ld c, a +.loop + ld a, [hli] + cp c + jr z, .good + inc hl + cp $ff + jr nz, .loop + +; Any player state not in the array defaults to Chris's sprite. + xor a ; ld a, PLAYER_NORMAL + ld [PlayerState], a + ld a, SPRITE_CHRIS + jr .finish + +.good + ld a, [hl] + +.finish + ld [UsedSprites + 0], a + ld [PlayerSprite], a + ld [PlayerObjectSprite], a + ret + +.Chris + db PLAYER_NORMAL, SPRITE_CHRIS + db PLAYER_BIKE, SPRITE_CHRIS_BIKE + db PLAYER_SURF, SPRITE_SURF + db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU + db $ff + +.Kris + db PLAYER_NORMAL, SPRITE_KRIS + db PLAYER_BIKE, SPRITE_KRIS_BIKE + db PLAYER_SURF, SPRITE_SURF + db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU + db $ff +; 141c9 + + +AddMapSprites: ; 141c9 + call GetMapPermission + call CheckOutdoorMap + jr z, .outdoor + call AddIndoorSprites + ret + +.outdoor + call AddOutdoorSprites + ret +; 141d9 + + +AddIndoorSprites: ; 141d9 + ld hl, Map1ObjectSprite + ld a, 1 +.loop + push af + ld a, [hl] + call AddSpriteGFX + ld de, OBJECT_LENGTH + add hl, de + pop af + inc a + cp NUM_OBJECTS + jr nz, .loop + ret +; 141ee + + +AddOutdoorSprites: ; 141ee + ld a, [MapGroup] + dec a + ld c, a + ld b, 0 + ld hl, OutdoorSprites +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld c, MAX_OUTDOOR_SPRITES +.loop + push bc + ld a, [hli] + call AddSpriteGFX + pop bc + dec c + jr nz, .loop + ret +; 14209 + + +RunCallback_04: ; 14209 + ld a, $4 + call RunMapCallback + call Function1439b + call Function14215 + ret +; 14215 + +Function14215: ; 14215 + ld a, [wSpriteFlags] + bit 6, a + ret nz + ld c, EMOTE_08 + callba LoadEmote + call GetMapPermission + call CheckOutdoorMap + ld c, EMOTE_0B + jr z, .outdoor + ld c, EMOTE_0A + +.outdoor + callba LoadEmote + ret +; 14236 + + + +SafeGetSprite: ; 14236 + push hl + call GetSprite + pop hl + ret +; 1423c + +GetSprite: ; 1423c + call GetMonSprite + ret c + + ld hl, SpriteHeaders ; address + dec a + ld c, a + ld b, 0 + ld a, 6 + call AddNTimes + ; load the address into de + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ; load the length into c + ld a, [hli] + swap a + ld c, a + ; load the sprite bank into both b and h + ld b, [hl] + ld a, [hli] + ; load the sprite type into l + ld l, [hl] + ld h, a + ret +; 14259 + + +GetMonSprite: ; 14259 +; Return carry if a monster sprite was loaded. + + cp SPRITE_POKEMON + jr c, .Normal + cp SPRITE_DAYCARE_MON_1 + jr z, .wBreedMon1 + cp SPRITE_DAYCARE_MON_2 + jr z, .wBreedMon2 + cp SPRITE_VARS + jr nc, .Variable + jr .Icon + +.Normal + and a + ret + +.Icon + sub SPRITE_POKEMON + ld e, a + ld d, 0 + ld hl, SpriteMons + add hl, de + ld a, [hl] + jr .Mon + +.wBreedMon1 + ld a, [wBreedMon1Species] + jr .Mon + +.wBreedMon2 + ld a, [wBreedMon2Species] + +.Mon + ld e, a + and a + jr z, .NoBreedmon + + callba Function8e82b + + ld l, 1 + ld h, 0 + scf + ret + +.Variable + sub SPRITE_VARS + ld e, a + ld d, 0 + ld hl, VariableSprites + add hl, de + ld a, [hl] + and a + jp nz, GetMonSprite + +.NoBreedmon + ld a, 1 + ld l, 1 + ld h, 0 + and a + ret +; 142a7 + + +_DoesSpriteHaveFacings:: ; 142a7 +; Checks to see whether we can apply a facing to a sprite. +; Returns carry unless the sprite is a Pokemon or a Still Sprite. + cp SPRITE_POKEMON + jr nc, .only_down + + push hl + push bc + ld hl, SpriteHeaders + SPRITEHEADER_TYPE ; type + dec a + ld c, a + ld b, 0 + ld a, NUM_SPRITEHEADER_FIELDS + call AddNTimes + ld a, [hl] + pop bc + pop hl + cp STILL_SPRITE + jr nz, .only_down + scf + ret + +.only_down + and a + ret +; 142c4 + + +_GetSpritePalette:: ; 142c4 + ld a, c + call GetMonSprite + jr c, .is_pokemon + + ld hl, SpriteHeaders + 5 ; palette + dec a + ld c, a + ld b, 0 + ld a, 6 + call AddNTimes + ld c, [hl] + ret + +.is_pokemon + xor a + ld c, a + ret +; 142db + + +LoadAndSortSprites: ; 142db + call LoadSpriteGFX + call SortUsedSprites + call ArrangeUsedSprites + ret +; 142e5 + + +AddSpriteGFX: ; 142e5 +; Add any new sprite ids to a list of graphics to be loaded. +; Return carry if the list is full. + + push hl + push bc + ld b, a + ld hl, UsedSprites + 2 + ld c, SPRITE_GFX_LIST_CAPACITY - 1 +.loop + ld a, [hl] + cp b + jr z, .exists + and a + jr z, .new +rept 2 + inc hl +endr + dec c + jr nz, .loop + + pop bc + pop hl + scf + ret + +.exists + pop bc + pop hl + and a + ret + +.new + ld [hl], b + pop bc + pop hl + and a + ret +; 14306 + + +LoadSpriteGFX: ; 14306 +; Bug: b is not preserved, so +; it's useless as a next count. + + ld hl, UsedSprites + ld b, SPRITE_GFX_LIST_CAPACITY +.loop + ld a, [hli] + and a + jr z, .done + push hl + call .LoadSprite + pop hl + ld [hli], a + dec b + jr nz, .loop + +.done + ret + +.LoadSprite + call GetSprite + ld a, l + ret +; 1431e + + +SortUsedSprites: ; 1431e +; Bubble-sort sprites by type. + +; Run backwards through UsedSprites to find the last one. + + ld c, SPRITE_GFX_LIST_CAPACITY + ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2 +.FindLastSprite + ld a, [de] + and a + jr nz, .FoundLastSprite +rept 2 + dec de +endr + dec c + jr nz, .FindLastSprite +.FoundLastSprite + dec c + jr z, .quit + +; If the length of the current sprite is +; higher than a later one, swap them. + + inc de + ld hl, UsedSprites + 1 + +.CheckSprite + push bc + push de + push hl + +.CheckFollowing + ld a, [de] + cp [hl] + jr nc, .loop + +; Swap the two sprites. + + ld b, a + ld a, [hl] + ld [hl], b + ld [de], a + dec de + dec hl + ld a, [de] + ld b, a + ld a, [hl] + ld [hl], b + ld [de], a + inc de + inc hl + +; Keep doing this until everything's in order. + +.loop +rept 2 + dec de +endr + dec c + jr nz, .CheckFollowing + + pop hl +rept 2 + inc hl +endr + pop de + pop bc + dec c + jr nz, .CheckSprite + +.quit + ret +; 14355 + + +ArrangeUsedSprites: ; 14355 +; Get the length of each sprite and space them out in VRAM. +; Crystal introduces a second table in VRAM bank 0. + + ld hl, UsedSprites + ld c, SPRITE_GFX_LIST_CAPACITY + ld b, 0 +.FirstTableLength +; Keep going until the end of the list. + ld a, [hli] + and a + jr z, .quit + + ld a, [hl] + call GetSpriteLength + +; Spill over into the second table after $80 tiles. + add b + cp $80 + jr z, .loop + jr nc, .SecondTable + +.loop + ld [hl], b + inc hl + ld b, a + +; Assumes the next table will be reached before c hits 0. + dec c + jr nz, .FirstTableLength + +.SecondTable +; The second tile table starts at tile $80. + ld b, $80 + dec hl +.SecondTableLength +; Keep going until the end of the list. + ld a, [hli] + and a + jr z, .quit + + ld a, [hl] + call GetSpriteLength + +; There are only two tables, so don't go any further than that. + add b + jr c, .quit + + ld [hl], b + ld b, a + inc hl + + dec c + jr nz, .SecondTableLength + +.quit + ret +; 14386 + + +GetSpriteLength: ; 14386 +; Return the length of sprite type a in tiles. + + cp WALKING_SPRITE + jr z, .AnyDirection + cp STANDING_SPRITE + jr z, .AnyDirection + cp STILL_SPRITE + jr z, .OneDirection + + ld a, 12 + ret + +.AnyDirection + ld a, 12 + ret + +.OneDirection + ld a, 4 + ret +; 1439b + + +Function1439b: ; 1439b + ld hl, UsedSprites + ld c, SPRITE_GFX_LIST_CAPACITY +.loop + ld a, [wSpriteFlags] + res 5, a + ld [wSpriteFlags], a + ld a, [hli] + and a + jr z, .done + ld [hUsedSpriteIndex], a + ld a, [hli] + ld [hUsedSpriteTile], a + bit 7, a + jr z, .dont_set + ld a, [wSpriteFlags] + set 5, a + ld [wSpriteFlags], a + +.dont_set + push bc + push hl + call Function143c8 + pop hl + pop bc + dec c + jr nz, .loop + +.done + ret +; 143c8 + +Function143c8: ; 143c8 + ld a, [hUsedSpriteIndex] + call SafeGetSprite + ld a, [hUsedSpriteTile] + call .GetTileAddr + push hl + push de + push bc + ld a, [wSpriteFlags] + bit 7, a + jr nz, .skip + call .CopyToVram + +.skip + pop bc + ld l, c + ld h, $0 +rept 4 + add hl, hl +endr + pop de + add hl, de + ld d, h + ld e, l + pop hl + ld a, [wSpriteFlags] + bit 5, a + jr nz, .done + bit 6, a + jr nz, .done + ld a, [hUsedSpriteIndex] + call _DoesSpriteHaveFacings + jr c, .done + ld a, h + add $8 + ld h, a + call .CopyToVram + +.done + ret +; 14406 + +.GetTileAddr: ; 14406 +; Return the address of tile (a) in (hl). + and $7f + ld l, a + ld h, 0 +rept 4 + add hl, hl +endr + ld a, l + add VTiles0 % $100 + ld l, a + ld a, h + adc VTiles0 / $100 + ld h, a + ret +; 14418 + +.CopyToVram: ; 14418 + ld a, [rVBK] + push af + ld a, [wSpriteFlags] + bit 5, a + ld a, $1 + jr z, .bankswitch + ld a, $0 + +.bankswitch + ld [rVBK], a + call Get2bpp + pop af + ld [rVBK], a + ret +; 1442f + +LoadEmote:: ; 1442f +; Get the address of the pointer to emote c. + ld a, c + ld bc, 6 + ld hl, EmotesPointers + call AddNTimes +; Load the emote address into de + ld e, [hl] + inc hl + ld d, [hl] +; load the length of the emote (in tiles) into c + inc hl + ld c, [hl] + swap c +; load the emote pointer bank into b + inc hl + ld b, [hl] +; load the VRAM destination into hl + inc hl + ld a, [hli] + ld h, [hl] + ld l, a +; if the emote has a length of 0, do not proceed (error handling) + ld a, c + and a + ret z + call GetEmote2bpp + ret +; 1444d + +emote_header: MACRO + dw \1 + db \2 tiles, BANK(\1) + dw \3 +ENDM + +EmotesPointers: ; 144d +; dw source address +; db length, bank +; dw dest address + + emote_header ShockEmote, 4, VTiles1 tile $78 + emote_header QuestionEmote, 4, VTiles1 tile $78 + emote_header HappyEmote, 4, VTiles1 tile $78 + emote_header SadEmote, 4, VTiles1 tile $78 + emote_header HeartEmote, 4, VTiles1 tile $78 + emote_header BoltEmote, 4, VTiles1 tile $78 + emote_header SleepEmote, 4, VTiles1 tile $78 + emote_header FishEmote, 4, VTiles1 tile $78 + emote_header FishingRodGFX1, 1, VTiles1 tile $7c + emote_header FishingRodGFX2, 2, VTiles1 tile $7c + emote_header FishingRodGFX3, 2, VTiles1 tile $7e + emote_header FishingRodGFX4, 1, VTiles1 tile $7e +; 14495 + + +SpriteMons: ; 14495 + db UNOWN + db GEODUDE + db GROWLITHE + db WEEDLE + db SHELLDER + db ODDISH + db GENGAR + db ZUBAT + db MAGIKARP + db SQUIRTLE + db TOGEPI + db BUTTERFREE + db DIGLETT + db POLIWAG + db PIKACHU + db CLEFAIRY + db CHARMANDER + db JYNX + db STARMIE + db BULBASAUR + db JIGGLYPUFF + db GRIMER + db EKANS + db PARAS + db TENTACOOL + db TAUROS + db MACHOP + db VOLTORB + db LAPRAS + db RHYDON + db MOLTRES + db SNORLAX + db GYARADOS + db LUGIA + db HO_OH +; 144b8 + + +OutdoorSprites: ; 144b8 +; Valid sprite IDs for each map group. + + dw Group1Sprites + dw Group2Sprites + dw Group3Sprites + dw Group4Sprites + dw Group5Sprites + dw Group6Sprites + dw Group7Sprites + dw Group8Sprites + dw Group9Sprites + dw Group10Sprites + dw Group11Sprites + dw Group12Sprites + dw Group13Sprites + dw Group14Sprites + dw Group15Sprites + dw Group16Sprites + dw Group17Sprites + dw Group18Sprites + dw Group19Sprites + dw Group20Sprites + dw Group21Sprites + dw Group22Sprites + dw Group23Sprites + dw Group24Sprites + dw Group25Sprites + dw Group26Sprites +; 144ec + + +Group13Sprites: ; 144ec + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14503 + +Group23Sprites: ; 14503 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1451a + +Group14Sprites: ; 1451a + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14531 + +Group6Sprites: ; 14531 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_BLUE + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_SWIMMER_GIRL + db SPRITE_SWIMMER_GUY + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14548 + +Group7Sprites: ; 14548 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_COOLTRAINER_M + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_POKEFAN_M + db SPRITE_ROCKET + db SPRITE_MISTY + db SPRITE_POKE_BALL + db SPRITE_SLOWPOKE +; 1455f + +Group25Sprites: ; 1455f + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_COOLTRAINER_M + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_POKEFAN_M + db SPRITE_ROCKET + db SPRITE_MISTY + db SPRITE_POKE_BALL + db SPRITE_SLOWPOKE +; 14576 + +Group21Sprites: ; 14576 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_POLIWAG + db SPRITE_TEACHER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_BIKER + db SPRITE_SILVER + db SPRITE_BLUE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1458d + +Group18Sprites: ; 1458d + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145a4 + +Group12Sprites: ; 145a4 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145bb + +Group17Sprites: ; 145bb + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_MACHOP + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_BIG_SNORLAX + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 145d2 + +Group16Sprites: ; 145d2 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_POKEFAN_M + db SPRITE_BUENA + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_SUPER_NERD + db SPRITE_MACHOP + db SPRITE_BIKER + db SPRITE_POKE_BALL + db SPRITE_BOULDER +; 145e9 + +Group24Sprites: ; 145e9 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14600 + +Group26Sprites: ; 14600 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14617 + +Group19Sprites: ; 14617 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SILVER + db SPRITE_TEACHER + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_YOUNGSTER + db SPRITE_MONSTER + db SPRITE_GRAMPS + db SPRITE_BUG_CATCHER + db SPRITE_COOLTRAINER_F + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1462e + +Group10Sprites: ; 1462e + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_LASS + db SPRITE_OFFICER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_COOLTRAINER_M + db SPRITE_BUG_CATCHER + db SPRITE_SUPER_NERD + db SPRITE_WEIRD_TREE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 14645 + +Group4Sprites: ; 14645 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_FISHER + db SPRITE_LASS + db SPRITE_OFFICER + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_COOLTRAINER_M + db SPRITE_BUG_CATCHER + db SPRITE_SUPER_NERD + db SPRITE_WEIRD_TREE + db SPRITE_POKE_BALL + db SPRITE_FRUIT_TREE +; 1465c + +Group8Sprites: ; 1465c + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_KURT_OUTSIDE + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_OFFICER + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_TEACHER + db SPRITE_AZALEA_ROCKET + db SPRITE_LASS + db SPRITE_SILVER + db SPRITE_FRUIT_TREE + db SPRITE_SLOWPOKE +; 14673 + +Group11Sprites: ; 14673 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_POKE_BALL + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_OFFICER + db SPRITE_POKEFAN_M + db SPRITE_DAYCARE_MON_1 + db SPRITE_COOLTRAINER_F + db SPRITE_ROCKET + db SPRITE_LASS + db SPRITE_DAYCARE_MON_2 + db SPRITE_FRUIT_TREE + db SPRITE_SLOWPOKE +; 1468a + +Group22Sprites: ; 1468a + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_STANDING_YOUNGSTER + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_OLIVINE_RIVAL + db SPRITE_POKEFAN_M + db SPRITE_LASS + db SPRITE_BUENA + db SPRITE_SWIMMER_GIRL + db SPRITE_SAILOR + db SPRITE_POKEFAN_F + db SPRITE_SUPER_NERD + db SPRITE_TAUROS + db SPRITE_FRUIT_TREE + db SPRITE_ROCK +; 146a1 + +Group1Sprites: ; 146a1 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_STANDING_YOUNGSTER + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_OLIVINE_RIVAL + db SPRITE_POKEFAN_M + db SPRITE_LASS + db SPRITE_BUENA + db SPRITE_SWIMMER_GIRL + db SPRITE_SAILOR + db SPRITE_POKEFAN_F + db SPRITE_SUPER_NERD + db SPRITE_TAUROS + db SPRITE_FRUIT_TREE + db SPRITE_ROCK +; 146b8 + +Group9Sprites: ; 146b8 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_LANCE + db SPRITE_GRAMPS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_COOLTRAINER_M + db SPRITE_LASS + db SPRITE_YOUNGSTER + db SPRITE_GYARADOS + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146cf + +Group2Sprites: ; 146cf + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_M + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146e6 + +Group5Sprites: ; 146e6 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_GRAMPS + db SPRITE_YOUNGSTER + db SPRITE_LASS + db SPRITE_SUPER_NERD + db SPRITE_COOLTRAINER_M + db SPRITE_POKEFAN_M + db SPRITE_BLACK_BELT + db SPRITE_COOLTRAINER_F + db SPRITE_FISHER + db SPRITE_FRUIT_TREE + db SPRITE_POKE_BALL +; 146fd + +Group3Sprites: ; 146fd + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_GAMEBOY_KID + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_LASS + db SPRITE_POKEFAN_F + db SPRITE_TEACHER + db SPRITE_YOUNGSTER + db SPRITE_GROWLITHE + db SPRITE_POKEFAN_M + db SPRITE_ROCKER + db SPRITE_FISHER + db SPRITE_SCIENTIST + db SPRITE_POKE_BALL + db SPRITE_BOULDER +; 14714 + +Group15Sprites: ; 14714 + db SPRITE_SUICUNE + db SPRITE_SILVER_TROPHY + db SPRITE_FAMICOM + db SPRITE_POKEDEX + db SPRITE_WILL + db SPRITE_KAREN + db SPRITE_NURSE + db SPRITE_OLD_LINK_RECEPTIONIST + db SPRITE_BIG_LAPRAS + db SPRITE_BIG_ONIX + db SPRITE_SUDOWOODO + db SPRITE_BIG_SNORLAX + db SPRITE_SAILOR + db SPRITE_FISHING_GURU + db SPRITE_GENTLEMAN + db SPRITE_SUPER_NERD + db SPRITE_HO_OH + db SPRITE_TEACHER + db SPRITE_COOLTRAINER_F + db SPRITE_YOUNGSTER + db SPRITE_FAIRY + db SPRITE_POKE_BALL + db SPRITE_ROCK +; 1472b + +Group20Sprites: ; 1472b + db SPRITE_OAK + db SPRITE_FISHER + db SPRITE_TEACHER + db SPRITE_TWIN + db SPRITE_POKEFAN_M + db SPRITE_GRAMPS + db SPRITE_FAIRY + db SPRITE_SILVER + db SPRITE_FISHING_GURU + db SPRITE_POKE_BALL + db SPRITE_POKEDEX +; 14736 + + +SpriteHeaders: ; 14736 +INCLUDE "gfx/overworld/sprite_headers.asm" +; 1499a diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm index 88135ea63..c898eae14 100644 --- a/engine/std_scripts.asm +++ b/engine/std_scripts.asm @@ -328,7 +328,7 @@ BugContestResultsScript: farwritetext ContestResults_ConsolationPrizeText keeptextopen waitbutton - verbosegiveitem BERRY, 1 + verbosegiveitem BERRY iffalse BugContestResults_NoRoomForBerry BugContestResults_DidNotWin @@ -387,7 +387,7 @@ BugContestResults_FirstPlace ; 0xbc31e itemtotext SUN_STONE, $1 farwritetext ContestResults_PlayerWonAPrizeText closetext - verbosegiveitem SUN_STONE, 1 + verbosegiveitem SUN_STONE iffalse BugContestResults_NoRoomForSunStone jump BugContestResults_ReturnAfterWinnersPrize ; 0xbc332 @@ -396,7 +396,7 @@ BugContestResults_SecondPlace ; 0xbc332 itemtotext EVERSTONE, $1 farwritetext ContestResults_PlayerWonAPrizeText closetext - verbosegiveitem EVERSTONE, 1 + verbosegiveitem EVERSTONE iffalse BugContestResults_NoRoomForEverstone jump BugContestResults_ReturnAfterWinnersPrize ; 0xbc343 @@ -405,7 +405,7 @@ BugContestResults_ThirdPlace ; 0xbc343 itemtotext GOLD_BERRY, $1 farwritetext ContestResults_PlayerWonAPrizeText closetext - verbosegiveitem GOLD_BERRY, 1 + verbosegiveitem GOLD_BERRY iffalse BugContestResults_NoRoomForGoldBerry jump BugContestResults_ReturnAfterWinnersPrize ; 0xbc354 diff --git a/gfx/overworld/sprite_headers.asm b/gfx/overworld/sprite_headers.asm index 94b6fd691..095d7594b 100644 --- a/gfx/overworld/sprite_headers.asm +++ b/gfx/overworld/sprite_headers.asm @@ -4,6 +4,7 @@ ; Type, Palette sprite_header: MACRO +; pointer, length, type, palette dw \1 db \2 * 4 tiles, BANK(\1) db \3, \4 diff --git a/home/map.asm b/home/map.asm index 16b2456ab..fd68e5442 100644 --- a/home/map.asm +++ b/home/map.asm @@ -2021,7 +2021,7 @@ Function2b74:: ; 0x2b74 Function2bae:: ; 2bae call DisableLCD call ClearSprites - callba Function14168 + callba RefreshSprites call LoadStandardFont call LoadFontsExtra ld a, [hROMBank] diff --git a/home/map_objects.asm b/home/map_objects.asm index 36750b1eb..66fd3f753 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -52,18 +52,18 @@ endr ret ; 1836 -Function1836:: ; 1836 +DoesSpriteHaveFacings:: ; 1836 push de push hl ld b, a ld a, [hROMBank] push af - ld a, BANK(Function142a7) + ld a, BANK(_DoesSpriteHaveFacings) rst Bankswitch ld a, b - call Function142a7 + call _DoesSpriteHaveFacings ld c, a pop de diff --git a/macros/event.asm b/macros/event.asm index df2baab65..c51f798c5 100644 --- a/macros/event.asm +++ b/macros/event.asm @@ -206,14 +206,22 @@ writecode: macro giveitem: macro db giveitem_command db \1 ; item +if _NARG == 2 db \2 ; quantity +else + db 1 +endc endm enum takeitem_command takeitem: macro db takeitem_command db \1 ; item +if _NARG == 2 db \2 ; quantity +else + db 1 +endc endm enum checkitem_command @@ -986,7 +994,11 @@ checkphonecall: macro verbosegiveitem: macro db verbosegiveitem_command db \1 ; item +if _NARG == 2 db \2 ; quantity +else + db 1 +endc endm enum verbosegiveitem2_command diff --git a/main.asm b/main.asm index f1b391494..9a7e47527 100644 --- a/main.asm +++ b/main.asm @@ -6269,7 +6269,7 @@ Script_NotEvenANibble2: ; 0xd027 writetext UnknownText_0xd0a9 Script_NotEvenANibble_FallThrough: ; 0xd02d - loademote EMOTE_ROD + DOWN + loademote EMOTE_08 callasm PutTheRodAway loadmovesprites end @@ -6340,7 +6340,7 @@ Script_FishCastRod: ; 0xd07c reloadmappart loadvar hBGMapMode, $0 special UpdateTimePals - loademote EMOTE_ROD + UP + loademote EMOTE_09 callasm Functionb84b3 loademote EMOTE_SHOCK applymovement PLAYER, MovementData_0xd093 @@ -14972,7 +14972,7 @@ SignpostItemScript:: ; 0x13625 copybytetovar Unkn2Pals itemtotext 0, 0 writetext UnknownText_0x13645 - giveitem -1, 1 + giveitem -1 iffalse UnknownScript_0x1363e callasm SetMemEvent specialsound @@ -16179,1488 +16179,7 @@ Function140ed:: ; 140ed ret ; 1412a -GetEmote2bpp: ; 1412a - ld a, $1 - ld [rVBK], a - call Get2bpp - xor a - ld [rVBK], a - ret -; 14135 - -_ReplaceKrisSprite:: ; 14135 - call GetPlayerSprite - ld a, [UsedSprites] - ld [hUsedSpriteIndex], a - ld a, [UsedSprites + 1] - ld [hUsedSpriteTile], a - call Function143c8 - ret -; 14146 - -Function14146: ; 14146 - ld hl, wSpriteFlags - ld a, [hl] - push af - res 7, [hl] - set 6, [hl] - call RunCallback_04 - pop af - ld [wSpriteFlags], a - ret -; 14157 - -Function14157: ; 14157 - ld hl, wSpriteFlags - ld a, [hl] - push af - set 7, [hl] - res 6, [hl] - call RunCallback_04 - pop af - ld [wSpriteFlags], a - ret -; 14168 - - -Function14168:: ; 14168 - call Function1416f - call RunCallback_04 - ret -; 1416f - -Function1416f: ; 1416f - xor a - ld bc, UsedSpritesEnd - UsedSprites - ld hl, UsedSprites - call ByteFill - call GetPlayerSprite - call AddMapSprites - call Function142db - ret -; 14183 - - - -GetPlayerSprite: ; 14183 -; Get Chris or Kris's sprite. - - ld hl, .Chris - ld a, [wPlayerSpriteSetupFlags] - bit 2, a - jr nz, .go - ld a, [PlayerGender] - bit 0, a - jr z, .go - ld hl, .Kris - -.go - ld a, [PlayerState] - ld c, a -.loop - ld a, [hli] - cp c - jr z, .good - inc hl - cp $ff - jr nz, .loop - -; Any player state not in the array defaults to Chris's sprite. - xor a ; ld a, PLAYER_NORMAL - ld [PlayerState], a - ld a, SPRITE_CHRIS - jr .finish - -.good - ld a, [hl] - -.finish - ld [UsedSprites + 0], a - ld [PlayerSprite], a - ld [MapObjects + OBJECT_LENGTH * PLAYER_OBJECT + MAPOBJECT_SPRITE], a - ret - -.Chris - db PLAYER_NORMAL, SPRITE_CHRIS - db PLAYER_BIKE, SPRITE_CHRIS_BIKE - db PLAYER_SURF, SPRITE_SURF - db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU - db $ff - -.Kris - db PLAYER_NORMAL, SPRITE_KRIS - db PLAYER_BIKE, SPRITE_KRIS_BIKE - db PLAYER_SURF, SPRITE_SURF - db PLAYER_SURF_PIKA, SPRITE_SURFING_PIKACHU - db $ff -; 141c9 - - -AddMapSprites: ; 141c9 - call GetMapPermission - call CheckOutdoorMap - jr z, .outdoor - call AddIndoorSprites - ret -.outdoor - call AddOutdoorSprites - ret -; 141d9 - - -AddIndoorSprites: ; 141d9 - ld hl, MapObjects + 1 * OBJECT_LENGTH + MAPOBJECT_SPRITE ; sprite - ld a, 1 -.loop - push af - ld a, [hl] - call AddSpriteGFX - ld de, OBJECT_LENGTH - add hl, de - pop af - inc a - cp NUM_OBJECTS - jr nz, .loop - ret -; 141ee - - -AddOutdoorSprites: ; 141ee - ld a, [MapGroup] - dec a - ld c, a - ld b, 0 - ld hl, OutdoorSprites -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld c, $17 -.loop - push bc - ld a, [hli] - call AddSpriteGFX - pop bc - dec c - jr nz, .loop - ret -; 14209 - - -RunCallback_04: ; 14209 - ld a, $4 - call RunMapCallback - call Function1439b - call Function14215 - ret -; 14215 - -Function14215: ; 14215 - ld a, [wSpriteFlags] - bit 6, a - ret nz - ld c, $8 - callba LoadEmote - call GetMapPermission - call CheckOutdoorMap - ld c, $b - jr z, .asm_1422f - ld c, $a - -.asm_1422f - callba LoadEmote - ret -; 14236 - - - -SafeGetSprite: ; 14236 - push hl - call GetSprite - pop hl - ret -; 1423c - -GetSprite: ; 1423c - call GetMonSprite - ret c - - ld hl, SpriteHeaders ; address - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ; load the address into de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ; load the length into c - ld a, [hli] - swap a - ld c, a - ; load the sprite bank into both b and h - ld b, [hl] - ld a, [hli] - ; load the sprite type into l - ld l, [hl] - ld h, a - ret -; 14259 - - -GetMonSprite: ; 14259 -; Return carry if a monster sprite was loaded. - - cp SPRITE_POKEMON - jr c, .Normal - cp SPRITE_DAYCARE_MON_1 - jr z, .wBreedMon1 - cp SPRITE_DAYCARE_MON_2 - jr z, .wBreedMon2 - cp SPRITE_VARS - jr nc, .Variable - jr .Icon - -.Normal - and a - ret - -.Icon - sub SPRITE_POKEMON - ld e, a - ld d, 0 - ld hl, SpriteMons - add hl, de - ld a, [hl] - jr .Mon - -.wBreedMon1 - ld a, [wBreedMon1Species] - jr .Mon - -.wBreedMon2 - ld a, [wBreedMon2Species] - -.Mon - ld e, a - and a - jr z, .NoBreedmon - - callba Function8e82b - - ld l, 1 - ld h, 0 - scf - ret - -.Variable - sub SPRITE_VARS - ld e, a - ld d, 0 - ld hl, VariableSprites - add hl, de - ld a, [hl] - and a - jp nz, GetMonSprite - -.NoBreedmon - ld a, 1 - ld l, 1 - ld h, 0 - and a - ret -; 142a7 - - -Function142a7:: ; 142a7 - cp SPRITE_POKEMON - jr nc, .is_pokemon - - push hl - push bc - ld hl, SpriteHeaders + 4 ; type - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ld a, [hl] - pop bc - pop hl - cp 3 - jr nz, .is_pokemon - scf - ret - -.is_pokemon - and a - ret -; 142c4 - - -_GetSpritePalette:: ; 142c4 - ld a, c - call GetMonSprite - jr c, .is_pokemon - - ld hl, SpriteHeaders + 5 ; palette - dec a - ld c, a - ld b, 0 - ld a, 6 - call AddNTimes - ld c, [hl] - ret - -.is_pokemon - xor a - ld c, a - ret -; 142db - - -Function142db: ; 142db - call LoadSpriteGFX - call SortUsedSprites - call ArrangeUsedSprites - ret -; 142e5 - - -AddSpriteGFX: ; 142e5 -; Add any new sprite ids to a list of graphics to be loaded. -; Return carry if the list is full. - - push hl - push bc - ld b, a - ld hl, UsedSprites + 2 - ld c, SPRITE_GFX_LIST_CAPACITY - 1 -.loop - ld a, [hl] - cp b - jr z, .exists - and a - jr z, .new -rept 2 - inc hl -endr - dec c - jr nz, .loop - - pop bc - pop hl - scf - ret - -.exists - pop bc - pop hl - and a - ret - -.new - ld [hl], b - pop bc - pop hl - and a - ret -; 14306 - - -LoadSpriteGFX: ; 14306 -; Bug: b is not preserved, so -; it's useless as a next count. - - ld hl, UsedSprites - ld b, SPRITE_GFX_LIST_CAPACITY -.loop - ld a, [hli] - and a - jr z, .done - push hl - call .LoadSprite - pop hl - ld [hli], a - dec b - jr nz, .loop - -.done - ret - -.LoadSprite - call GetSprite - ld a, l - ret -; 1431e - - -SortUsedSprites: ; 1431e -; Bubble-sort sprites by type. - -; Run backwards through UsedSprites to find the last one. - - ld c, SPRITE_GFX_LIST_CAPACITY - ld de, UsedSprites + (SPRITE_GFX_LIST_CAPACITY - 1) * 2 -.FindLastSprite - ld a, [de] - and a - jr nz, .FoundLastSprite -rept 2 - dec de -endr - dec c - jr nz, .FindLastSprite -.FoundLastSprite - dec c - jr z, .quit - -; If the length of the current sprite is -; higher than a later one, swap them. - - inc de - ld hl, UsedSprites + 1 - -.CheckSprite - push bc - push de - push hl - -.CheckFollowing - ld a, [de] - cp [hl] - jr nc, .loop - -; Swap the two sprites. - - ld b, a - ld a, [hl] - ld [hl], b - ld [de], a - dec de - dec hl - ld a, [de] - ld b, a - ld a, [hl] - ld [hl], b - ld [de], a - inc de - inc hl - -; Keep doing this until everything's in order. - -.loop -rept 2 - dec de -endr - dec c - jr nz, .CheckFollowing - - pop hl -rept 2 - inc hl -endr - pop de - pop bc - dec c - jr nz, .CheckSprite - -.quit - ret -; 14355 - - -ArrangeUsedSprites: ; 14355 -; Get the length of each sprite and space them out in VRAM. -; Crystal introduces a second table in VRAM bank 0. - - ld hl, UsedSprites - ld c, SPRITE_GFX_LIST_CAPACITY - ld b, 0 -.FirstTableLength -; Keep going until the end of the list. - ld a, [hli] - and a - jr z, .quit - - ld a, [hl] - call GetSpriteLength - -; Spill over into the second table after $80 tiles. - add b - cp $80 - jr z, .loop - jr nc, .SecondTable - -.loop - ld [hl], b - inc hl - ld b, a - -; Assumes the next table will be reached before c hits 0. - dec c - jr nz, .FirstTableLength - -.SecondTable -; The second tile table starts at tile $80. - ld b, $80 - dec hl -.SecondTableLength -; Keep going until the end of the list. - ld a, [hli] - and a - jr z, .quit - - ld a, [hl] - call GetSpriteLength - -; There are only two tables, so don't go any further than that. - add b - jr c, .quit - - ld [hl], b - ld b, a - inc hl - - dec c - jr nz, .SecondTableLength - -.quit - ret -; 14386 - - -GetSpriteLength: ; 14386 -; Return the length of sprite type a in tiles. - - cp WALKING_SPRITE - jr z, .AnyDirection - cp STANDING_SPRITE - jr z, .AnyDirection - cp STILL_SPRITE - jr z, .OneDirection - - ld a, 12 - ret - -.AnyDirection - ld a, 12 - ret - -.OneDirection - ld a, 4 - ret -; 1439b - - -Function1439b: ; 1439b - ld hl, UsedSprites - ld c, SPRITE_GFX_LIST_CAPACITY -.loop - ld a, [wSpriteFlags] - res 5, a - ld [wSpriteFlags], a - ld a, [hli] - and a - jr z, .done - ld [hUsedSpriteIndex], a - ld a, [hli] - ld [hUsedSpriteTile], a - bit 7, a - jr z, .dont_set - ld a, [wSpriteFlags] - set 5, a - ld [wSpriteFlags], a - -.dont_set - push bc - push hl - call Function143c8 - pop hl - pop bc - dec c - jr nz, .loop - -.done - ret -; 143c8 - -Function143c8: ; 143c8 - ld a, [hUsedSpriteIndex] - call SafeGetSprite - ld a, [hUsedSpriteTile] - call GetTileAddr - push hl - push de - push bc - ld a, [wSpriteFlags] - bit 7, a - jr nz, .asm_143df - call Function14418 - -.asm_143df - pop bc - ld l, c - ld h, $0 -rept 4 - add hl, hl -endr - pop de - add hl, de - ld d, h - ld e, l - pop hl - ld a, [wSpriteFlags] - bit 5, a - jr nz, .asm_14405 - bit 6, a - jr nz, .asm_14405 - ld a, [hUsedSpriteIndex] - call Function142a7 - jr c, .asm_14405 - ld a, h - add $8 - ld h, a - call Function14418 - -.asm_14405 - ret -; 14406 - -GetTileAddr: ; 14406 -; Return the address of tile (a) in (hl). - and $7f - ld l, a - ld h, 0 -rept 4 - add hl, hl -endr - ld a, l - add VTiles0 % $100 - ld l, a - ld a, h - adc VTiles0 / $100 - ld h, a - ret -; 14418 - -Function14418: ; 14418 - ld a, [rVBK] - push af - ld a, [wSpriteFlags] - bit 5, a - ld a, $1 - jr z, .asm_14426 - ld a, $0 - -.asm_14426 - ld [rVBK], a - call Get2bpp - pop af - ld [rVBK], a - ret -; 1442f - -LoadEmote:: ; 1442f -; Get the address of the pointer to emote c. - ld a, c - ld bc, 6 - ld hl, EmotesPointers - call AddNTimes -; Load the emote address into de - ld e, [hl] - inc hl - ld d, [hl] -; load the length of the emote (in tiles) into c - inc hl - ld c, [hl] - swap c -; load the emote pointer bank into b - inc hl - ld b, [hl] -; load the VRAM destination into hl - inc hl - ld a, [hli] - ld h, [hl] - ld l, a -; if the emote has a length of 0, do not proceed (error handling) - ld a, c - and a - ret z - call GetEmote2bpp - ret -; 1444d - -emote_header: MACRO - dw \1 - db \2 tiles, BANK(\1) - dw \3 -ENDM - -EmotesPointers: ; 144d -; dw source address -; db length, bank -; dw dest address - - emote_header ShockEmote, 4, VTiles1 tile $78 - emote_header QuestionEmote, 4, VTiles1 tile $78 - emote_header HappyEmote, 4, VTiles1 tile $78 - emote_header SadEmote, 4, VTiles1 tile $78 - emote_header HeartEmote, 4, VTiles1 tile $78 - emote_header BoltEmote, 4, VTiles1 tile $78 - emote_header SleepEmote, 4, VTiles1 tile $78 - emote_header FishEmote, 4, VTiles1 tile $78 - emote_header FishingRodGFX1, 1, VTiles1 tile $7c - emote_header FishingRodGFX2, 2, VTiles1 tile $7c - emote_header FishingRodGFX3, 2, VTiles1 tile $7e - emote_header FishingRodGFX4, 1, VTiles1 tile $7e -; 14495 - - -SpriteMons: ; 14495 - db UNOWN - db GEODUDE - db GROWLITHE - db WEEDLE - db SHELLDER - db ODDISH - db GENGAR - db ZUBAT - db MAGIKARP - db SQUIRTLE - db TOGEPI - db BUTTERFREE - db DIGLETT - db POLIWAG - db PIKACHU - db CLEFAIRY - db CHARMANDER - db JYNX - db STARMIE - db BULBASAUR - db JIGGLYPUFF - db GRIMER - db EKANS - db PARAS - db TENTACOOL - db TAUROS - db MACHOP - db VOLTORB - db LAPRAS - db RHYDON - db MOLTRES - db SNORLAX - db GYARADOS - db LUGIA - db HO_OH -; 144b8 - - -OutdoorSprites: ; 144b8 -; Valid sprite IDs for each map group. - - dw Group1Sprites - dw Group2Sprites - dw Group3Sprites - dw Group4Sprites - dw Group5Sprites - dw Group6Sprites - dw Group7Sprites - dw Group8Sprites - dw Group9Sprites - dw Group10Sprites - dw Group11Sprites - dw Group12Sprites - dw Group13Sprites - dw Group14Sprites - dw Group15Sprites - dw Group16Sprites - dw Group17Sprites - dw Group18Sprites - dw Group19Sprites - dw Group20Sprites - dw Group21Sprites - dw Group22Sprites - dw Group23Sprites - dw Group24Sprites - dw Group25Sprites - dw Group26Sprites -; 144ec - - -Group13Sprites: ; 144ec - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14503 - -Group23Sprites: ; 14503 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1451a - -Group14Sprites: ; 1451a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14531 - -Group6Sprites: ; 14531 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_BLUE - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_SWIMMER_GIRL - db SPRITE_SWIMMER_GUY - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14548 - -Group7Sprites: ; 14548 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 1455f - -Group25Sprites: ; 1455f - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_COOLTRAINER_M - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_POKEFAN_M - db SPRITE_ROCKET - db SPRITE_MISTY - db SPRITE_POKE_BALL - db SPRITE_SLOWPOKE -; 14576 - -Group21Sprites: ; 14576 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_POLIWAG - db SPRITE_TEACHER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_BIKER - db SPRITE_SILVER - db SPRITE_BLUE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1458d - -Group18Sprites: ; 1458d - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145a4 - -Group12Sprites: ; 145a4 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145bb - -Group17Sprites: ; 145bb - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_MACHOP - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_BIG_SNORLAX - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 145d2 - -Group16Sprites: ; 145d2 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_POKEFAN_M - db SPRITE_BUENA - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_SUPER_NERD - db SPRITE_MACHOP - db SPRITE_BIKER - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 145e9 - -Group24Sprites: ; 145e9 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14600 - -Group26Sprites: ; 14600 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14617 - -Group19Sprites: ; 14617 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SILVER - db SPRITE_TEACHER - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_YOUNGSTER - db SPRITE_MONSTER - db SPRITE_GRAMPS - db SPRITE_BUG_CATCHER - db SPRITE_COOLTRAINER_F - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1462e - -Group10Sprites: ; 1462e - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 14645 - -Group4Sprites: ; 14645 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_FISHER - db SPRITE_LASS - db SPRITE_OFFICER - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_COOLTRAINER_M - db SPRITE_BUG_CATCHER - db SPRITE_SUPER_NERD - db SPRITE_WEIRD_TREE - db SPRITE_POKE_BALL - db SPRITE_FRUIT_TREE -; 1465c - -Group8Sprites: ; 1465c - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_KURT_OUTSIDE - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_TEACHER - db SPRITE_AZALEA_ROCKET - db SPRITE_LASS - db SPRITE_SILVER - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 14673 - -Group11Sprites: ; 14673 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_POKE_BALL - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_OFFICER - db SPRITE_POKEFAN_M - db SPRITE_DAYCARE_MON_1 - db SPRITE_COOLTRAINER_F - db SPRITE_ROCKET - db SPRITE_LASS - db SPRITE_DAYCARE_MON_2 - db SPRITE_FRUIT_TREE - db SPRITE_SLOWPOKE -; 1468a - -Group22Sprites: ; 1468a - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146a1 - -Group1Sprites: ; 146a1 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_STANDING_YOUNGSTER - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_OLIVINE_RIVAL - db SPRITE_POKEFAN_M - db SPRITE_LASS - db SPRITE_BUENA - db SPRITE_SWIMMER_GIRL - db SPRITE_SAILOR - db SPRITE_POKEFAN_F - db SPRITE_SUPER_NERD - db SPRITE_TAUROS - db SPRITE_FRUIT_TREE - db SPRITE_ROCK -; 146b8 - -Group9Sprites: ; 146b8 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LANCE - db SPRITE_GRAMPS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_COOLTRAINER_M - db SPRITE_LASS - db SPRITE_YOUNGSTER - db SPRITE_GYARADOS - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146cf - -Group2Sprites: ; 146cf - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146e6 - -Group5Sprites: ; 146e6 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_GRAMPS - db SPRITE_YOUNGSTER - db SPRITE_LASS - db SPRITE_SUPER_NERD - db SPRITE_COOLTRAINER_M - db SPRITE_POKEFAN_M - db SPRITE_BLACK_BELT - db SPRITE_COOLTRAINER_F - db SPRITE_FISHER - db SPRITE_FRUIT_TREE - db SPRITE_POKE_BALL -; 146fd - -Group3Sprites: ; 146fd - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_GAMEBOY_KID - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_LASS - db SPRITE_POKEFAN_F - db SPRITE_TEACHER - db SPRITE_YOUNGSTER - db SPRITE_GROWLITHE - db SPRITE_POKEFAN_M - db SPRITE_ROCKER - db SPRITE_FISHER - db SPRITE_SCIENTIST - db SPRITE_POKE_BALL - db SPRITE_BOULDER -; 14714 - -Group15Sprites: ; 14714 - db SPRITE_SUICUNE - db SPRITE_SILVER_TROPHY - db SPRITE_FAMICOM - db SPRITE_POKEDEX - db SPRITE_WILL - db SPRITE_KAREN - db SPRITE_NURSE - db SPRITE_OLD_LINK_RECEPTIONIST - db SPRITE_BIG_LAPRAS - db SPRITE_BIG_ONIX - db SPRITE_SUDOWOODO - db SPRITE_BIG_SNORLAX - db SPRITE_SAILOR - db SPRITE_FISHING_GURU - db SPRITE_GENTLEMAN - db SPRITE_SUPER_NERD - db SPRITE_HO_OH - db SPRITE_TEACHER - db SPRITE_COOLTRAINER_F - db SPRITE_YOUNGSTER - db SPRITE_FAIRY - db SPRITE_POKE_BALL - db SPRITE_ROCK -; 1472b - -Group20Sprites: ; 1472b - db SPRITE_OAK - db SPRITE_FISHER - db SPRITE_TEACHER - db SPRITE_TWIN - db SPRITE_POKEFAN_M - db SPRITE_GRAMPS - db SPRITE_FAIRY - db SPRITE_SILVER - db SPRITE_FISHING_GURU - db SPRITE_POKE_BALL - db SPRITE_POKEDEX -; 14736 - - -SpriteHeaders: ; 14736 -INCLUDE "gfx/overworld/sprite_headers.asm" -; 1499a - +INCLUDE "engine/sprites.asm" Function1499a:: ; 1499a ld a, [PlayerStandingTile] @@ -77784,7 +76303,7 @@ LoadGraphics: ; 1047cf ld [$ffde], a xor a ld [hTileAnimFrame], a ; $ff00+$df - callba Function14168 + callba RefreshSprites call LoadFontsExtra callba Function106594 ret diff --git a/maps/AzaleaGym.asm b/maps/AzaleaGym.asm index cd22312ae..32796ee5d 100644 --- a/maps/AzaleaGym.asm +++ b/maps/AzaleaGym.asm @@ -34,7 +34,7 @@ BugsyScript: setevent EVENT_BEAT_BUG_CATCHER_JOSH writetext BugsyText_HiveBadgeSpeech keeptextopen - verbosegiveitem TM_FURY_CUTTER, 1 + verbosegiveitem TM_FURY_CUTTER iffalse .NoRoomForFuryCutter setevent EVENT_GOT_TM49_FURY_CUTTER writetext BugsyText_FuryCutterSpeech diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index bbc574c4b..e31eb8da4 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -155,7 +155,7 @@ UnknownScript_0x1980e5: keeptextopen writetext UnknownText_0x198628 closetext - verbosegiveitem GS_BALL, 1 + verbosegiveitem GS_BALL spriteface $d, LEFT setflag ENGINE_HAVE_EXAMINED_GS_BALL clearevent EVENT_ILEX_FOREST_LASS diff --git a/maps/BillsHouse.asm b/maps/BillsHouse.asm index f049e96e3..f5077287b 100644 --- a/maps/BillsHouse.asm +++ b/maps/BillsHouse.asm @@ -117,7 +117,7 @@ UnknownScript_0x18963b: checkevent EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x189592 scall UnknownScript_0x1896b5 - verbosegiveitem EVERSTONE, 1 + verbosegiveitem EVERSTONE iffalse UnknownScript_0x1896cc setevent EVENT_GOT_EVERSTONE_FROM_BILLS_GRANDPA setevent EVENT_GAVE_KURT_APRICORNS @@ -128,7 +128,7 @@ UnknownScript_0x189652: checkevent EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x1895b3 scall UnknownScript_0x1896b5 - verbosegiveitem LEAF_STONE, 1 + verbosegiveitem LEAF_STONE iffalse UnknownScript_0x1896cc setevent EVENT_GOT_LEAF_STONE_FROM_BILLS_GRANDPA setevent EVENT_GAVE_KURT_APRICORNS @@ -139,7 +139,7 @@ UnknownScript_0x189669: checkevent EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x1895d4 scall UnknownScript_0x1896b5 - verbosegiveitem WATER_STONE, 1 + verbosegiveitem WATER_STONE iffalse UnknownScript_0x1896cc setevent EVENT_GOT_WATER_STONE_FROM_BILLS_GRANDPA setevent EVENT_GAVE_KURT_APRICORNS @@ -150,7 +150,7 @@ UnknownScript_0x189680: checkevent EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA iftrue UnknownScript_0x18961a scall UnknownScript_0x1896b5 - verbosegiveitem FIRE_STONE, 1 + verbosegiveitem FIRE_STONE iffalse UnknownScript_0x1896cc setevent EVENT_GOT_FIRE_STONE_FROM_BILLS_GRANDPA setevent EVENT_GAVE_KURT_APRICORNS @@ -159,7 +159,7 @@ UnknownScript_0x189680: UnknownScript_0x189697: scall UnknownScript_0x1896b5 - verbosegiveitem THUNDERSTONE, 1 + verbosegiveitem THUNDERSTONE iffalse UnknownScript_0x1896cc setevent EVENT_GOT_THUNDERSTONE_FROM_BILLS_GRANDPA loadmovesprites diff --git a/maps/BlackthornCity.asm b/maps/BlackthornCity.asm index 889f4e374..1c396777f 100644 --- a/maps/BlackthornCity.asm +++ b/maps/BlackthornCity.asm @@ -93,7 +93,7 @@ SantosScript: .MetSantos writetext SantosGivesGiftText keeptextopen - verbosegiveitem SPELL_TAG, 1 + verbosegiveitem SPELL_TAG iffalse SantosDoneScript setevent EVENT_GOT_SPELL_TAG_FROM_SANTOS writetext SantosGaveGiftText diff --git a/maps/BlackthornGym1F.asm b/maps/BlackthornGym1F.asm index 60e11880a..5bd21b7bc 100644 --- a/maps/BlackthornGym1F.asm +++ b/maps/BlackthornGym1F.asm @@ -62,7 +62,7 @@ UnknownScript_0x194e69: iftrue UnknownScript_0x194e94 writetext UnknownText_0x195196 keeptextopen - giveitem TM_DRAGONBREATH, 1 + giveitem TM_DRAGONBREATH iffalse UnknownScript_0x194e8e itemtotext TM_DRAGONBREATH, $0 writetext UnknownText_0x1951bf diff --git a/maps/CeladonCafe.asm b/maps/CeladonCafe.asm index ffb70ee4b..dd626fe31 100644 --- a/maps/CeladonCafe.asm +++ b/maps/CeladonCafe.asm @@ -86,7 +86,7 @@ EatathonContestPoster: CeladonCafeTrashcan: checkevent EVENT_FOUND_LEFTOVERS_IN_CELADON_CAFE iftrue .TrashEmpty - giveitem LEFTOVERS, 1 + giveitem LEFTOVERS iffalse .PackFull loadfont itemtotext LEFTOVERS, $0 diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm index 2d8703dd7..e73f1bfdb 100644 --- a/maps/CeladonDeptStore6F.asm +++ b/maps/CeladonDeptStore6F.asm @@ -36,7 +36,7 @@ CeladonVendingMachine: .FreshWater checkmoney $0, 200 if_equal $2, .NotEnoughMoney - giveitem FRESH_WATER, 1 + giveitem FRESH_WATER iffalse .NotEnoughSpace takemoney $0, 200 itemtotext FRESH_WATER, $0 @@ -45,7 +45,7 @@ CeladonVendingMachine: .SodaPop checkmoney $0, 300 if_equal $2, .NotEnoughMoney - giveitem SODA_POP, 1 + giveitem SODA_POP iffalse .NotEnoughSpace takemoney $0, 300 itemtotext SODA_POP, $0 @@ -54,7 +54,7 @@ CeladonVendingMachine: .Lemonade checkmoney $0, 350 if_equal $2, .NotEnoughMoney - giveitem LEMONADE, 1 + giveitem LEMONADE iffalse .NotEnoughSpace takemoney $0, 350 itemtotext LEMONADE, $0 diff --git a/maps/CeladonGameCornerPrizeRoom.asm b/maps/CeladonGameCornerPrizeRoom.asm index bdea5f770..781833311 100644 --- a/maps/CeladonGameCornerPrizeRoom.asm +++ b/maps/CeladonGameCornerPrizeRoom.asm @@ -35,7 +35,7 @@ CeladonPrizeRoom_tmcounterloop: itemtotext TM_DOUBLE_TEAM, $0 scall CeladonPrizeRoom_askbuy iffalse CeladonPrizeRoom_cancel - giveitem TM_DOUBLE_TEAM, 1 + giveitem TM_DOUBLE_TEAM iffalse CeladonPrizeRoom_notenoughroom takecoins 1500 jump CeladonPrizeRoom_purchased @@ -46,7 +46,7 @@ CeladonPrizeRoom_tmcounterloop: itemtotext TM_PSYCHIC, $0 scall CeladonPrizeRoom_askbuy iffalse CeladonPrizeRoom_cancel - giveitem TM_PSYCHIC, 1 + giveitem TM_PSYCHIC iffalse CeladonPrizeRoom_notenoughroom takecoins 3500 jump CeladonPrizeRoom_purchased @@ -57,7 +57,7 @@ CeladonPrizeRoom_tmcounterloop: itemtotext TM_HYPER_BEAM, $0 scall CeladonPrizeRoom_askbuy iffalse CeladonPrizeRoom_cancel - giveitem TM_HYPER_BEAM, 1 + giveitem TM_HYPER_BEAM iffalse CeladonPrizeRoom_notenoughroom takecoins 7500 jump CeladonPrizeRoom_purchased diff --git a/maps/CeladonGym.asm b/maps/CeladonGym.asm index db63741b8..f8c53a138 100644 --- a/maps/CeladonGym.asm +++ b/maps/CeladonGym.asm @@ -32,7 +32,7 @@ ErikaScript_0x72a6a: iftrue UnknownScript_0x72aae writetext UnknownText_0x72cb0 keeptextopen - verbosegiveitem TM_GIGA_DRAIN, 1 + verbosegiveitem TM_GIGA_DRAIN iffalse UnknownScript_0x72aae setevent EVENT_GOT_TM19_GIGA_DRAIN UnknownScript_0x72aae: diff --git a/maps/CeladonMansionRoofHouse.asm b/maps/CeladonMansionRoofHouse.asm index 46a5b6124..25c3a0dbe 100644 --- a/maps/CeladonMansionRoofHouse.asm +++ b/maps/CeladonMansionRoofHouse.asm @@ -22,7 +22,7 @@ PharmacistScript_0x71afd: UnknownScript_0x71b14: writetext UnknownText_0x71ba3 keeptextopen - verbosegiveitem TM_CURSE, 1 + verbosegiveitem TM_CURSE iffalse UnknownScript_0x71b25 setevent EVENT_GOT_TM03_CURSE UnknownScript_0x71b21: diff --git a/maps/CharcoalKiln.asm b/maps/CharcoalKiln.asm index cc6a4107e..62dc02425 100644 --- a/maps/CharcoalKiln.asm +++ b/maps/CharcoalKiln.asm @@ -44,7 +44,7 @@ CharcoalKilnApprentice: .Thanks writetext CharcoalKilnApprenticeText2 keeptextopen - verbosegiveitem CHARCOAL, 1 + verbosegiveitem CHARCOAL iffalse .Done setevent EVENT_GOT_CHARCOAL_IN_CHARCOAL_KILN loadmovesprites diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index 0aec4b65e..f41cf424b 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -213,7 +213,7 @@ MysticWaterGuy: iftrue UnknownScript_0x19c183 writetext UnknownText_0x19c766 keeptextopen - verbosegiveitem MYSTIC_WATER, 1 + verbosegiveitem MYSTIC_WATER iffalse UnknownScript_0x19c187 setevent EVENT_GOT_MYSTIC_WATER_IN_CHERRYGROVE UnknownScript_0x19c183: diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm index 7829b0960..6db6dc7e8 100644 --- a/maps/CianwoodCity.asm +++ b/maps/CianwoodCity.asm @@ -89,7 +89,7 @@ PokefanFScript_0x1a0084: UnknownScript_0x1a009c: writetext UnknownText_0x1a01e3 keeptextopen - verbosegiveitem HM_FLY, 1 + verbosegiveitem HM_FLY iffalse UnknownScript_0x1a00b1 setevent EVENT_GOT_HM02_FLY writetext UnknownText_0x1a021d diff --git a/maps/CianwoodGym.asm b/maps/CianwoodGym.asm index 26f4654a3..cacd4090d 100644 --- a/maps/CianwoodGym.asm +++ b/maps/CianwoodGym.asm @@ -49,7 +49,7 @@ ChuckScript_0x9d60f: setevent EVENT_BEAT_BLACKBELT_LUNG writetext UnknownText_0x9d84d keeptextopen - verbosegiveitem TM_DYNAMICPUNCH, 1 + verbosegiveitem TM_DYNAMICPUNCH iffalse UnknownScript_0x9d67f setevent EVENT_GOT_TM01_DYNAMICPUNCH writetext UnknownText_0x9d8da diff --git a/maps/CianwoodPharmacy.asm b/maps/CianwoodPharmacy.asm index 56f49f2a0..f9e776d38 100644 --- a/maps/CianwoodPharmacy.asm +++ b/maps/CianwoodPharmacy.asm @@ -20,7 +20,7 @@ CianwoodPharmacist: iffalse .Mart writetext PharmacistGiveSecretpotionText keeptextopen - giveitem SECRETPOTION, 1 + giveitem SECRETPOTION writetext ReceivedSecretpotionText playsound SFX_KEY_ITEM waitbutton diff --git a/maps/CopycatsHouse2F.asm b/maps/CopycatsHouse2F.asm index 7f82335ca..b078c8ec6 100644 --- a/maps/CopycatsHouse2F.asm +++ b/maps/CopycatsHouse2F.asm @@ -106,7 +106,7 @@ Copycat: loadfont writetext UnknownText_0x18b17f keeptextopen - takeitem LOST_ITEM, 1 + takeitem LOST_ITEM setevent EVENT_RETURNED_LOST_ITEM_TO_COPYCAT clearevent EVENT_COPYCATS_HOUSE_2F_DOLL jump .Part14 @@ -116,7 +116,7 @@ Copycat: .Part14 writetext UnknownText_0x18b1e2 keeptextopen - verbosegiveitem PASS, 1 + verbosegiveitem PASS iffalse .Part22 setevent EVENT_GOT_PASS_FROM_COPYCAT writetext UnknownText_0x18b214 diff --git a/maps/DanceTheatre.asm b/maps/DanceTheatre.asm index 397b2beea..1d094c98d 100644 --- a/maps/DanceTheatre.asm +++ b/maps/DanceTheatre.asm @@ -96,7 +96,7 @@ UnknownScript_0x994ff: UnknownScript_0x99505: writetext UnknownText_0x9991a keeptextopen - verbosegiveitem HM_SURF, 1 + verbosegiveitem HM_SURF setevent EVENT_GOT_HM03_SURF writetext UnknownText_0x9999b closetext diff --git a/maps/DarkCaveBlackthornEntrance.asm b/maps/DarkCaveBlackthornEntrance.asm index d5ccaf8ba..ecfcb0862 100644 --- a/maps/DarkCaveBlackthornEntrance.asm +++ b/maps/DarkCaveBlackthornEntrance.asm @@ -12,7 +12,7 @@ PharmacistScript_0x18c720: iftrue UnknownScript_0x18c735 writetext UnknownText_0x18c73f keeptextopen - verbosegiveitem BLACKGLASSES, 1 + verbosegiveitem BLACKGLASSES iffalse UnknownScript_0x18c739 setevent EVENT_GOT_BLACKGLASSES_IN_DARK_CAVE UnknownScript_0x18c735: diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm index 99aa96dfe..b8a11e636 100644 --- a/maps/DragonsDenB1F.asm +++ b/maps/DragonsDenB1F.asm @@ -49,7 +49,7 @@ UnknownScript_0x18c8b8: loadfont writetext UnknownText_0x18c9bf keeptextopen - giveitem TM_DRAGONBREATH, 1 + giveitem TM_DRAGONBREATH iffalse UnknownScript_0x18c8f4 itemtotext TM_DRAGONBREATH, $0 writetext UnknownText_0x18c9fb @@ -122,7 +122,7 @@ TwinsLeaandpia2Script: end PokeBallScript_0x18c95a: - giveitem DRAGON_FANG, 1 + giveitem DRAGON_FANG iffalse UnknownScript_0x18c970 disappear $2 loadfont diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm index 4cd1a2a58..af89cbb90 100644 --- a/maps/EcruteakGym.asm +++ b/maps/EcruteakGym.asm @@ -48,7 +48,7 @@ MortyScript_0x99d58: setevent EVENT_BEAT_MEDIUM_GRACE writetext UnknownText_0x9a059 keeptextopen - verbosegiveitem TM_SHADOW_BALL, 1 + verbosegiveitem TM_SHADOW_BALL iffalse UnknownScript_0x99db5 setevent EVENT_GOT_TM30_SHADOW_BALL writetext UnknownText_0x9a0ec diff --git a/maps/EcruteakItemfinderHouse.asm b/maps/EcruteakItemfinderHouse.asm index 35a33bd4b..dd5ec85de 100644 --- a/maps/EcruteakItemfinderHouse.asm +++ b/maps/EcruteakItemfinderHouse.asm @@ -15,7 +15,7 @@ CooltrainerMScript_0x9a5fb: iffalse UnknownScript_0x9a61a writetext UnknownText_0x9a6b5 keeptextopen - verbosegiveitem ITEMFINDER, 1 + verbosegiveitem ITEMFINDER setevent EVENT_GOT_ITEMFINDER UnknownScript_0x9a614: writetext UnknownText_0x9a70e diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm index fed21c05b..27f9e3280 100644 --- a/maps/ElmsLab.asm +++ b/maps/ElmsLab.asm @@ -327,7 +327,7 @@ ElmAfterTheftScript: keeptextopen writetext ElmAfterTheftText2 closetext - takeitem MYSTERY_EGG, 1 + takeitem MYSTERY_EGG scall ElmJumpBackScript1 writetext ElmAfterTheftText3 closetext @@ -379,7 +379,7 @@ ShowElmTogepiScript: ElmGiveEverstoneScript: writetext ElmGiveEverstoneText1 keeptextopen - verbosegiveitem EVERSTONE, 1 + verbosegiveitem EVERSTONE iffalse ElmScript_NoRoomForEverstone writetext ElmGiveEverstoneText2 closetext @@ -397,7 +397,7 @@ ElmScript_NoRoomForEverstone: ElmGiveMasterBallScript: writetext ElmGiveMasterBallText1 keeptextopen - verbosegiveitem MASTER_BALL, 1 + verbosegiveitem MASTER_BALL iffalse .notdone setevent EVENT_GOT_MASTER_BALL_FROM_ELM writetext ElmGiveMasterBallText2 @@ -409,7 +409,7 @@ ElmGiveMasterBallScript: ElmGiveTicketScript: writetext ElmGiveTicketText1 keeptextopen - verbosegiveitem S_S_TICKET, 1 + verbosegiveitem S_S_TICKET setevent EVENT_GOT_SS_TICKET_FROM_ELM writetext ElmGiveTicketText2 closetext @@ -472,7 +472,7 @@ AideScript_GivePotions: loadfont writetext AideText_GiveYouPotions keeptextopen - verbosegiveitem POTION, 1 + verbosegiveitem POTION writetext AideText_AlwaysBusy closetext loadmovesprites diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm index 70ac3449e..bd050cb96 100644 --- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm +++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm @@ -87,7 +87,7 @@ GentlemanScript_0x75f1f: UnknownScript_0x75f37: writetext UnknownText_0x7619b keeptextopen - verbosegiveitem METAL_COAT, 1 + verbosegiveitem METAL_COAT iffalse UnknownScript_0x75f44 setevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA UnknownScript_0x75f44: @@ -106,7 +106,7 @@ UnknownScript_0x75f44: UnknownScript_0x75f58: writetext UnknownText_0x7619b keeptextopen - verbosegiveitem METAL_COAT, 1 + verbosegiveitem METAL_COAT iffalse UnknownScript_0x75f65 setevent EVENT_GOT_METAL_COAT_FROM_GRANDPA_ON_SS_AQUA UnknownScript_0x75f65: diff --git a/maps/FuchsiaGym.asm b/maps/FuchsiaGym.asm index d69a3f435..211c470a0 100644 --- a/maps/FuchsiaGym.asm +++ b/maps/FuchsiaGym.asm @@ -42,7 +42,7 @@ UnknownScript_0x195e02: iftrue UnknownScript_0x195e15 writetext UnknownText_0x196002 keeptextopen - verbosegiveitem TM_TOXIC, 1 + verbosegiveitem TM_TOXIC iffalse UnknownScript_0x195e15 setevent EVENT_GOT_TM06_TOXIC UnknownScript_0x195e15: diff --git a/maps/GoldenrodBikeShop.asm b/maps/GoldenrodBikeShop.asm index db9dfdbba..42b8cfabd 100644 --- a/maps/GoldenrodBikeShop.asm +++ b/maps/GoldenrodBikeShop.asm @@ -19,7 +19,7 @@ ClerkScript_0x54750: writetext UnknownText_0x547f8 keeptextopen waitbutton - giveitem BICYCLE, 1 + giveitem BICYCLE writetext UnknownText_0x54848 playsound SFX_KEY_ITEM waitbutton diff --git a/maps/GoldenrodDeptStore5F.asm b/maps/GoldenrodDeptStore5F.asm index fc715179d..bc7078ede 100644 --- a/maps/GoldenrodDeptStore5F.asm +++ b/maps/GoldenrodDeptStore5F.asm @@ -70,7 +70,7 @@ ReceptionistScript_0x560ce: .VeryHappy: writetext UnknownText_0x5615a keeptextopen - verbosegiveitem TM_RETURN, 1 + verbosegiveitem TM_RETURN iffalse .Done setflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT loadmovesprites @@ -85,7 +85,7 @@ ReceptionistScript_0x560ce: .NotVeryHappy: writetext UnknownText_0x561d8 keeptextopen - verbosegiveitem TM_FRUSTRATION, 1 + verbosegiveitem TM_FRUSTRATION iffalse .Done setflag ENGINE_GOLDENROD_MALL_5F_HAPPINESS_EVENT loadmovesprites diff --git a/maps/GoldenrodDeptStore6F.asm b/maps/GoldenrodDeptStore6F.asm index 265e61ef1..8619a516e 100644 --- a/maps/GoldenrodDeptStore6F.asm +++ b/maps/GoldenrodDeptStore6F.asm @@ -22,7 +22,7 @@ GoldenrodVendingMachine: .FreshWater checkmoney $0, 200 if_equal $2, .NotEnoughMoney - giveitem FRESH_WATER, 1 + giveitem FRESH_WATER iffalse .NotEnoughSpace takemoney $0, 200 itemtotext FRESH_WATER, $0 @@ -31,7 +31,7 @@ GoldenrodVendingMachine: .SodaPop checkmoney $0, 300 if_equal $2, .NotEnoughMoney - giveitem SODA_POP, 1 + giveitem SODA_POP iffalse .NotEnoughSpace takemoney $0, 300 itemtotext SODA_POP, $0 @@ -40,7 +40,7 @@ GoldenrodVendingMachine: .Lemonade checkmoney $0, 350 if_equal $2, .NotEnoughMoney - giveitem LEMONADE, 1 + giveitem LEMONADE iffalse .NotEnoughSpace takemoney $0, 350 itemtotext LEMONADE, $0 diff --git a/maps/GoldenrodFlowerShop.asm b/maps/GoldenrodFlowerShop.asm index 6a9a6ee69..29106e91e 100644 --- a/maps/GoldenrodFlowerShop.asm +++ b/maps/GoldenrodFlowerShop.asm @@ -20,7 +20,7 @@ FlowerShopTeacherScript: loadfont writetext UnknownText_0x554c2 keeptextopen - verbosegiveitem SQUIRTBOTTLE, 1 + verbosegiveitem SQUIRTBOTTLE setevent EVENT_GOT_SQUIRTBOTTLE loadmovesprites setevent EVENT_FLORIA_AT_SUDOWOODO diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm index ff5db5f81..ad2b04cc2 100644 --- a/maps/GoldenrodGameCorner.asm +++ b/maps/GoldenrodGameCorner.asm @@ -64,7 +64,7 @@ UnknownScript_0x56c4d: itemtotext TM_THUNDER, $0 scall UnknownScript_0x56ca1 iffalse UnknownScript_0x56cbd - giveitem TM_THUNDER, 1 + giveitem TM_THUNDER iffalse UnknownScript_0x56cb7 takecoins 5500 jump UnknownScript_0x56ca6 @@ -75,7 +75,7 @@ UnknownScript_0x56c69: itemtotext TM_BLIZZARD, $0 scall UnknownScript_0x56ca1 iffalse UnknownScript_0x56cbd - giveitem TM_BLIZZARD, 1 + giveitem TM_BLIZZARD iffalse UnknownScript_0x56cb7 takecoins 5500 jump UnknownScript_0x56ca6 @@ -86,7 +86,7 @@ UnknownScript_0x56c85: itemtotext TM_FIRE_BLAST, $0 scall UnknownScript_0x56ca1 iffalse UnknownScript_0x56cbd - giveitem TM_FIRE_BLAST, 1 + giveitem TM_FIRE_BLAST iffalse UnknownScript_0x56cb7 takecoins 5500 jump UnknownScript_0x56ca6 diff --git a/maps/GoldenrodGym.asm b/maps/GoldenrodGym.asm index bdaed919b..ba9d1a5b1 100644 --- a/maps/GoldenrodGym.asm +++ b/maps/GoldenrodGym.asm @@ -60,7 +60,7 @@ WhitneyScript_0x5400c: UnknownScript_0x54064: writetext UnknownText_0x5428b keeptextopen - verbosegiveitem TM_ATTRACT, 1 + verbosegiveitem TM_ATTRACT iffalse UnknownScript_0x5407b setevent EVENT_GOT_TM45_ATTRACT writetext UnknownText_0x54302 diff --git a/maps/GoldenrodPokeCenter1F.asm b/maps/GoldenrodPokeCenter1F.asm index 9053e2bca..a41d3e739 100644 --- a/maps/GoldenrodPokeCenter1F.asm +++ b/maps/GoldenrodPokeCenter1F.asm @@ -27,7 +27,7 @@ GoldenrodPokeCenter1F_GSBallTriggerLeft: loadfont writetext UnknownText_0x622f0 closetext - verbosegiveitem GS_BALL, 1 + verbosegiveitem GS_BALL setevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER setevent EVENT_CAN_GIVE_GS_BALL_TO_KURT writetext UnknownText_0x62359 @@ -59,7 +59,7 @@ GoldenrodPokeCenter1F_GSBallTriggerRight: loadfont writetext UnknownText_0x622f0 closetext - verbosegiveitem GS_BALL, 1 + verbosegiveitem GS_BALL setevent EVENT_GOT_GS_BALL_FROM_POKECOM_CENTER setevent EVENT_CAN_GIVE_GS_BALL_TO_KURT writetext UnknownText_0x62359 @@ -86,13 +86,13 @@ PokefanFScript_0x61024: writetext UnknownText_0x6248c yesorno iffalse UnknownScript_0x6104b - takeitem EON_MAIL, 1 + takeitem EON_MAIL iffalse UnknownScript_0x6104b writetext UnknownText_0x62549 closetext writetext UnknownText_0x624a4 closetext - verbosegiveitem REVIVE, 1 + verbosegiveitem REVIVE iffalse UnknownScript_0x61051 writetext UnknownText_0x624e9 closetext @@ -106,7 +106,7 @@ UnknownScript_0x6104b: end UnknownScript_0x61051: - giveitem EON_MAIL, 1 + giveitem EON_MAIL writetext UnknownText_0x6252a closetext loadmovesprites diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index bf625052e..290127a0d 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -339,7 +339,7 @@ BlackBeltScript_0x6edae: iftrue UnknownScript_0x6edd8 writetext UnknownText_0x6f099 keeptextopen - verbosegiveitem HM_CUT, 1 + verbosegiveitem HM_CUT setevent EVENT_GOT_HM01_CUT writetext UnknownText_0x6f141 closetext @@ -365,7 +365,7 @@ RockerScript_0x6edde: iftrue UnknownScript_0x6edf3 writetext UnknownText_0x6f21b keeptextopen - verbosegiveitem TM_HEADBUTT, 1 + verbosegiveitem TM_HEADBUTT iffalse UnknownScript_0x6edf7 setevent EVENT_GOT_TM02_HEADBUTT UnknownScript_0x6edf3: @@ -439,7 +439,7 @@ UnknownScript_0x6ee38: end UnknownScript_0x6ee42: - takeitem GS_BALL, 1 + takeitem GS_BALL clearevent EVENT_FOREST_IS_RESTLESS setevent EVENT_AZALEA_TOWN_KURT disappear $8 diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm index 36eebd1cd..10cfd1349 100644 --- a/maps/KurtsHouse.asm +++ b/maps/KurtsHouse.asm @@ -66,7 +66,7 @@ KurtScript_0x18e178: .ClearedSlowpokeWell: writetext UnknownText_0x18e615 keeptextopen - verbosegiveitem LURE_BALL, 1 + verbosegiveitem LURE_BALL iffalse .NoRoomForBall setevent EVENT_KURT_GAVE_YOU_LURE_BALL .GotLureBall: @@ -192,7 +192,7 @@ KurtScript_0x18e178: iftrue KurtMakingBallsScript writetext UnknownText_0x18e7fb keeptextopen - verbosegiveitem2 LEVEL_BALL, $16 + verbosegiveitem2 LEVEL_BALL, VAR_KURT_APRICORNS iffalse .NoRoomForBall clearevent EVENT_GAVE_KURT_RED_APRICORN jump ._ThatTurnedOutGreat @@ -202,7 +202,7 @@ KurtScript_0x18e178: iftrue KurtMakingBallsScript writetext UnknownText_0x18e7fb keeptextopen - verbosegiveitem2 LURE_BALL, $16 + verbosegiveitem2 LURE_BALL, VAR_KURT_APRICORNS iffalse .NoRoomForBall clearevent EVENT_GAVE_KURT_BLU_APRICORN jump ._ThatTurnedOutGreat @@ -212,7 +212,7 @@ KurtScript_0x18e178: iftrue KurtMakingBallsScript writetext UnknownText_0x18e7fb keeptextopen - verbosegiveitem2 MOON_BALL, $16 + verbosegiveitem2 MOON_BALL, VAR_KURT_APRICORNS iffalse .NoRoomForBall clearevent EVENT_GAVE_KURT_YLW_APRICORN jump ._ThatTurnedOutGreat @@ -222,7 +222,7 @@ KurtScript_0x18e178: iftrue KurtMakingBallsScript writetext UnknownText_0x18e7fb keeptextopen - verbosegiveitem2 FRIEND_BALL, $16 + verbosegiveitem2 FRIEND_BALL, VAR_KURT_APRICORNS iffalse .NoRoomForBall clearevent EVENT_GAVE_KURT_GRN_APRICORN jump ._ThatTurnedOutGreat @@ -232,7 +232,7 @@ KurtScript_0x18e178: iftrue KurtMakingBallsScript writetext UnknownText_0x18e7fb keeptextopen - verbosegiveitem2 FAST_BALL, $16 + verbosegiveitem2 FAST_BALL, VAR_KURT_APRICORNS iffalse .NoRoomForBall clearevent EVENT_GAVE_KURT_WHT_APRICORN jump ._ThatTurnedOutGreat @@ -242,7 +242,7 @@ KurtScript_0x18e178: iftrue KurtMakingBallsScript writetext UnknownText_0x18e7fb keeptextopen - verbosegiveitem2 HEAVY_BALL, $16 + verbosegiveitem2 HEAVY_BALL, VAR_KURT_APRICORNS iffalse .NoRoomForBall clearevent EVENT_GAVE_KURT_BLK_APRICORN jump ._ThatTurnedOutGreat @@ -252,7 +252,7 @@ KurtScript_0x18e178: iftrue KurtMakingBallsScript writetext UnknownText_0x18e7fb keeptextopen - verbosegiveitem2 LOVE_BALL, $16 + verbosegiveitem2 LOVE_BALL, VAR_KURT_APRICORNS iffalse .NoRoomForBall clearevent EVENT_GAVE_KURT_PNK_APRICORN jump ._ThatTurnedOutGreat @@ -266,7 +266,7 @@ KurtScript_0x18e178: closetext loadmovesprites setevent EVENT_GAVE_GS_BALL_TO_KURT - takeitem GS_BALL, 1 + takeitem GS_BALL setflag ENGINE_KURT_MAKING_BALLS end diff --git a/maps/LakeofRage.asm b/maps/LakeofRage.asm index af5461c48..2cd260cd0 100644 --- a/maps/LakeofRage.asm +++ b/maps/LakeofRage.asm @@ -85,7 +85,7 @@ GyaradosScript_0x70063: UnknownScript_0x7007a: returnafterbattle loadfont - giveitem RED_SCALE, 1 + giveitem RED_SCALE waitbutton writetext UnknownText_0x703df playsound SFX_ITEM @@ -195,7 +195,7 @@ WesleyScript: .MetWesley writetext WesleyGivesGiftText keeptextopen - verbosegiveitem BLACKBELT, 1 + verbosegiveitem BLACKBELT iffalse WesleyDoneScript setevent EVENT_GOT_BLACKBELT_FROM_WESLEY writetext WesleyGaveGiftText diff --git a/maps/LakeofRageHiddenPowerHouse.asm b/maps/LakeofRageHiddenPowerHouse.asm index fcbfc4e5a..6a3744289 100644 --- a/maps/LakeofRageHiddenPowerHouse.asm +++ b/maps/LakeofRageHiddenPowerHouse.asm @@ -12,7 +12,7 @@ HiddenPowerGuy: iftrue .AlreadyGotItem writetext HiddenPowerGuyText1 keeptextopen - verbosegiveitem TM_HIDDEN_POWER, 1 + verbosegiveitem TM_HIDDEN_POWER iffalse .Done setevent EVENT_GOT_TM10_HIDDEN_POWER writetext HiddenPowerGuyText2 diff --git a/maps/LakeofRageMagikarpHouse.asm b/maps/LakeofRageMagikarpHouse.asm index b19769b8e..e197d90fd 100644 --- a/maps/LakeofRageMagikarpHouse.asm +++ b/maps/LakeofRageMagikarpHouse.asm @@ -50,7 +50,7 @@ UnknownScript_0x19a6e0: UnknownScript_0x19a6fe: writetext UnknownText_0x19a977 keeptextopen - verbosegiveitem ELIXER, 1 + verbosegiveitem ELIXER iffalse UnknownScript_0x19a711 writetext UnknownText_0x19a9c3 closetext diff --git a/maps/MahoganyGym.asm b/maps/MahoganyGym.asm index 7888001fd..b1a3d8851 100644 --- a/maps/MahoganyGym.asm +++ b/maps/MahoganyGym.asm @@ -35,7 +35,7 @@ PryceScript_0x199a9e: setevent EVENT_BEAT_BOARDER_DOUGLAS writetext UnknownText_0x199d55 keeptextopen - verbosegiveitem TM_ICY_WIND, 1 + verbosegiveitem TM_ICY_WIND iffalse UnknownScript_0x199af4 setevent EVENT_GOT_TM16_ICY_WIND writetext UnknownText_0x199def diff --git a/maps/MahoganyTown.asm b/maps/MahoganyTown.asm index 2adef6804..ce93c18a8 100644 --- a/maps/MahoganyTown.asm +++ b/maps/MahoganyTown.asm @@ -56,7 +56,7 @@ UnknownScript_0x190040: iffalse UnknownScript_0x190072 checkmoney $0, 300 if_equal $2, UnknownScript_0x19006c - giveitem RAGECANDYBAR, 1 + giveitem RAGECANDYBAR iffalse UnknownScript_0x190078 waitbutton playsound SFX_TRANSACTION diff --git a/maps/MrPokemonsHouse.asm b/maps/MrPokemonsHouse.asm index fabe40dac..d66ad7506 100644 --- a/maps/MrPokemonsHouse.asm +++ b/maps/MrPokemonsHouse.asm @@ -28,7 +28,7 @@ UnknownScript_0x196e56: writetext UnknownText_0x196fa8 keeptextopen waitbutton - giveitem MYSTERY_EGG, 1 + giveitem MYSTERY_EGG writetext UnknownText_0x196fd2 playsound SFX_KEY_ITEM waitbutton @@ -69,9 +69,9 @@ UnknownScript_0x196eb0: writetext UnknownText_0x197476 yesorno iffalse UnknownScript_0x196ec3 - verbosegiveitem EXP_SHARE, 1 + verbosegiveitem EXP_SHARE iffalse UnknownScript_0x196ec7 - takeitem RED_SCALE, 1 + takeitem RED_SCALE jump UnknownScript_0x196eaa UnknownScript_0x196ec3: diff --git a/maps/MrPsychicsHouse.asm b/maps/MrPsychicsHouse.asm index 0ab0c8f67..703e425d4 100644 --- a/maps/MrPsychicsHouse.asm +++ b/maps/MrPsychicsHouse.asm @@ -12,7 +12,7 @@ MrPsychic: iftrue .AlreadyGotItem writetext MrPsychicText1 keeptextopen - verbosegiveitem TM_PSYCHIC, 1 + verbosegiveitem TM_PSYCHIC iffalse .Done setevent EVENT_GOT_TM29_PSYCHIC .AlreadyGotItem diff --git a/maps/NationalPark.asm b/maps/NationalPark.asm index 8010c3d08..c6bfa3540 100644 --- a/maps/NationalPark.asm +++ b/maps/NationalPark.asm @@ -18,7 +18,7 @@ TeacherScript_0x5c008: iftrue UnknownScript_0x5c01d writetext UnknownText_0x5c265 keeptextopen - verbosegiveitem QUICK_CLAW, 1 + verbosegiveitem QUICK_CLAW iffalse UnknownScript_0x5c021 setevent EVENT_GOT_QUICK_CLAW UnknownScript_0x5c01d: @@ -216,7 +216,7 @@ UnknownScript_0x5c163: UnknownScript_0x5c177: scall UnknownScript_0x5c1a7 - verbosegiveitem NUGGET, 1 + verbosegiveitem NUGGET iffalse UnknownScript_0x5c186 clearflag ENGINE_BEVERLY_HAS_NUGGET jump UnknownScript_0x5c19b diff --git a/maps/OlivineCafe.asm b/maps/OlivineCafe.asm index a23b89266..799b6bac6 100644 --- a/maps/OlivineCafe.asm +++ b/maps/OlivineCafe.asm @@ -12,7 +12,7 @@ SailorScript_0x9c8c1: iftrue UnknownScript_0x9c8d3 writetext UnknownText_0x9c8df keeptextopen - verbosegiveitem HM_STRENGTH, 1 + verbosegiveitem HM_STRENGTH setevent EVENT_GOT_HM04_STRENGTH UnknownScript_0x9c8d3: writetext UnknownText_0x9c965 diff --git a/maps/OlivineGoodRodHouse.asm b/maps/OlivineGoodRodHouse.asm index 87fc6219a..52a969d1c 100644 --- a/maps/OlivineGoodRodHouse.asm +++ b/maps/OlivineGoodRodHouse.asm @@ -15,7 +15,7 @@ GoodRodGuru: iffalse .DontWantIt writetext GiveGoodRodText keeptextopen - verbosegiveitem GOOD_ROD, 1 + verbosegiveitem GOOD_ROD writetext GaveGoodRodText closetext loadmovesprites diff --git a/maps/OlivineGym.asm b/maps/OlivineGym.asm index 8b259b46b..ecdcf8e33 100644 --- a/maps/OlivineGym.asm +++ b/maps/OlivineGym.asm @@ -30,7 +30,7 @@ JasmineScript_0x9c12f: iftrue UnknownScript_0x9c172 writetext UnknownText_0x9c354 keeptextopen - verbosegiveitem TM_IRON_TAIL, 1 + verbosegiveitem TM_IRON_TAIL iffalse UnknownScript_0x9c176 setevent EVENT_GOT_TM23_IRON_TAIL writetext UnknownText_0x9c3a5 diff --git a/maps/OlivineLighthouse2F.asm b/maps/OlivineLighthouse2F.asm index 3062d615f..0b84dad11 100644 --- a/maps/OlivineLighthouse2F.asm +++ b/maps/OlivineLighthouse2F.asm @@ -94,7 +94,7 @@ UnknownScript_0x5afc7: checkevent EVENT_GOT_PROTEIN_FROM_HUEY iftrue UnknownScript_0x5b03e scall UnknownScript_0x5b076 - verbosegiveitem PROTEIN, 1 + verbosegiveitem PROTEIN iffalse UnknownScript_0x5b06f setevent EVENT_GOT_PROTEIN_FROM_HUEY jump UnknownScript_0x5b05f @@ -106,7 +106,7 @@ UnknownScript_0x5b03f: loadfont writetext UnknownText_0x5b1b6 closetext - verbosegiveitem PROTEIN, 1 + verbosegiveitem PROTEIN iffalse UnknownScript_0x5b06f clearevent EVENT_HUEY_PROTEIN setevent EVENT_GOT_PROTEIN_FROM_HUEY diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm index 8f491ebcf..3feed5100 100644 --- a/maps/OlivineLighthouse6F.asm +++ b/maps/OlivineLighthouse6F.asm @@ -27,7 +27,7 @@ UnknownScript_0x60bab: iffalse UnknownScript_0x60c25 writetext UnknownText_0x60dc3 keeptextopen - takeitem SECRETPOTION, 1 + takeitem SECRETPOTION writetext UnknownText_0x60dea closetext loadmovesprites diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm index 47f0cbbd2..9541a9f58 100644 --- a/maps/PewterCity.asm +++ b/maps/PewterCity.asm @@ -25,7 +25,7 @@ GrampsScript_0x18c00f: iftrue UnknownScript_0x18c023 writetext UnknownText_0x18c0c6 keeptextopen - verbosegiveitem SILVER_WING, 1 + verbosegiveitem SILVER_WING setevent EVENT_GOT_SILVER_WING loadmovesprites end diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm index be1383480..c7d1d3844 100644 --- a/maps/PokemonFanClub.asm +++ b/maps/PokemonFanClub.asm @@ -20,7 +20,7 @@ GentlemanScript_0x1917e9: UnknownScript_0x191802: writetext UnknownText_0x191a3d keeptextopen - verbosegiveitem RARE_CANDY, 1 + verbosegiveitem RARE_CANDY iffalse UnknownScript_0x19181f setevent EVENT_LISTENED_TO_FAN_CLUB_PRESIDENT writetext UnknownText_0x191a72 @@ -69,7 +69,7 @@ UnknownScript_0x191844: writetext UnknownText_0x191c5a keeptextopen waitbutton - giveitem LOST_ITEM, 1 + giveitem LOST_ITEM iffalse UnknownScript_0x191865 disappear $6 writetext UnknownText_0x191d0a diff --git a/maps/PowerPlant.asm b/maps/PowerPlant.asm index ac334e530..b60672af9 100644 --- a/maps/PowerPlant.asm +++ b/maps/PowerPlant.asm @@ -154,7 +154,7 @@ UnknownScript_0x188e8d: UnknownScript_0x188e93: writetext UnknownText_0x18936e keeptextopen - takeitem MACHINE_PART, 1 + takeitem MACHINE_PART setevent EVENT_RETURNED_MACHINE_PART clearevent EVENT_SAFFRON_TRAIN_STATION_POPULATION setevent EVENT_ROUTE_5_6_POKEFAN_M_BLOCKS_UNDERGROUND_PATH @@ -166,7 +166,7 @@ UnknownScript_0x188eac: iftrue UnknownScript_0x188ec5 writetext UnknownText_0x1893c4 keeptextopen - verbosegiveitem TM_ZAP_CANNON, 1 + verbosegiveitem TM_ZAP_CANNON iffalse UnknownScript_0x188ec3 setevent EVENT_GOT_TM07_ZAP_CANNON writetext UnknownText_0x1893f4 diff --git a/maps/RadioTower1F.asm b/maps/RadioTower1F.asm index dd3d4e2d0..84630c3b2 100644 --- a/maps/RadioTower1F.asm +++ b/maps/RadioTower1F.asm @@ -65,7 +65,7 @@ GentlemanScript_0x5cd3d: playsound SFX_1ST_PLACE waitbutton keeptextopen - giveitem MASTER_BALL, 1 + giveitem MASTER_BALL iffalse .BagFull itemnotify setflag ENGINE_LUCKY_NUMBER_SHOW @@ -76,7 +76,7 @@ GentlemanScript_0x5cd3d: playsound SFX_2ND_PLACE waitbutton keeptextopen - giveitem EXP_SHARE, 1 + giveitem EXP_SHARE iffalse .BagFull itemnotify setflag ENGINE_LUCKY_NUMBER_SHOW @@ -87,7 +87,7 @@ GentlemanScript_0x5cd3d: playsound SFX_3RD_PLACE waitbutton keeptextopen - giveitem PP_UP, 1 + giveitem PP_UP iffalse .BagFull itemnotify setflag ENGINE_LUCKY_NUMBER_SHOW diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm index bf99ee5fb..67ee63962 100644 --- a/maps/RadioTower2F.asm +++ b/maps/RadioTower2F.asm @@ -151,7 +151,7 @@ UnknownScript_0x5d800: writetext UnknownText_0x5dcf4 keeptextopen setevent EVENT_MET_BUENA - verbosegiveitem BLUE_CARD, 1 + verbosegiveitem BLUE_CARD UnknownScript_0x5d80a: writetext UnknownText_0x5de10 closetext diff --git a/maps/RadioTower3F.asm b/maps/RadioTower3F.asm index 164a22c6b..c7da85658 100644 --- a/maps/RadioTower3F.asm +++ b/maps/RadioTower3F.asm @@ -61,7 +61,7 @@ UnknownScript_0x5e584: UnknownScript_0x5e58a: writetext UnknownText_0x5e7e2 keeptextopen - verbosegiveitem TM_SUNNY_DAY, 1 + verbosegiveitem TM_SUNNY_DAY iffalse UnknownScript_0x5e5a1 writetext UnknownText_0x5e821 closetext diff --git a/maps/RadioTower4F.asm b/maps/RadioTower4F.asm index 2fb0b6875..07349e512 100644 --- a/maps/RadioTower4F.asm +++ b/maps/RadioTower4F.asm @@ -23,7 +23,7 @@ TeacherScript_0x5eb85: UnknownScript_0x5eb99: writetext UnknownText_0x5ecab keeptextopen - verbosegiveitem PINK_BOW, 1 + verbosegiveitem PINK_BOW iffalse UnknownScript_0x5ebb0 writetext UnknownText_0x5ecef closetext diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm index a7516aa10..ad0071ea7 100644 --- a/maps/RadioTower5F.asm +++ b/maps/RadioTower5F.asm @@ -40,7 +40,7 @@ UnknownScript_0x60011: loadfont writetext UnknownText_0x60246 keeptextopen - verbosegiveitem BASEMENT_KEY, 1 + verbosegiveitem BASEMENT_KEY loadmovesprites dotrigger $1 setevent EVENT_BEAT_ROCKET_EXECUTIVEM_3 @@ -117,7 +117,7 @@ UnknownScript_0x6006e: loadfont writetext UnknownText_0x605b2 keeptextopen - verbosegiveitem CLEAR_BELL, 1 + verbosegiveitem CLEAR_BELL writetext UnknownText_0x6062c closetext loadmovesprites diff --git a/maps/Route12SuperRodHouse.asm b/maps/Route12SuperRodHouse.asm index c4b21e728..4fd67e033 100644 --- a/maps/Route12SuperRodHouse.asm +++ b/maps/Route12SuperRodHouse.asm @@ -15,7 +15,7 @@ FishingGuruScript_0x7f484: iffalse UnknownScript_0x7f4a6 writetext UnknownText_0x7f52f keeptextopen - verbosegiveitem SUPER_ROD, 1 + verbosegiveitem SUPER_ROD iffalse UnknownScript_0x7f4aa setevent EVENT_GOT_SUPER_ROD UnknownScript_0x7f4a0: diff --git a/maps/Route25.asm b/maps/Route25.asm index a99538b90..d1b181802 100644 --- a/maps/Route25.asm +++ b/maps/Route25.asm @@ -153,7 +153,7 @@ CooltrainerMScript_0x19efac: iftrue UnknownScript_0x19efc7 writetext UnknownText_0x19f43b keeptextopen - verbosegiveitem NUGGET, 1 + verbosegiveitem NUGGET iffalse UnknownScript_0x19efde setevent EVENT_CLEARED_NUGGET_BRIDGE UnknownScript_0x19efc7: diff --git a/maps/Route27.asm b/maps/Route27.asm index 6a1f52f8d..b3944a440 100644 --- a/maps/Route27.asm +++ b/maps/Route27.asm @@ -119,7 +119,7 @@ UnknownScript_0x1a08ff: UnknownScript_0x1a0945: scall UnknownScript_0x1a0973 - verbosegiveitem STAR_PIECE, 1 + verbosegiveitem STAR_PIECE iffalse UnknownScript_0x1a0954 clearflag ENGINE_JOSE_HAS_STAR_PIECE jump UnknownScript_0x1a0963 diff --git a/maps/Route27SandstormHouse.asm b/maps/Route27SandstormHouse.asm index 04f3a155d..a219b935d 100644 --- a/maps/Route27SandstormHouse.asm +++ b/maps/Route27SandstormHouse.asm @@ -19,7 +19,7 @@ SandstormHouseWoman: .Loyal writetext SandstormHouseWomanLoyalText keeptextopen - verbosegiveitem TM_SANDSTORM, 1 + verbosegiveitem TM_SANDSTORM iffalse .Done setevent EVENT_GOT_TM37_SANDSTORM .AlreadyGotItem diff --git a/maps/Route28FamousSpeechHouse.asm b/maps/Route28FamousSpeechHouse.asm index add88ec34..9a9499602 100644 --- a/maps/Route28FamousSpeechHouse.asm +++ b/maps/Route28FamousSpeechHouse.asm @@ -18,7 +18,7 @@ Celebrity: iftrue .AlreadyGotItem writetext CelebrityText1 keeptextopen - verbosegiveitem TM_STEEL_WING, 1 + verbosegiveitem TM_STEEL_WING iffalse .Done setevent EVENT_GOT_TM47_STEEL_WING .Done diff --git a/maps/Route29.asm b/maps/Route29.asm index a50f02aba..ea99094aa 100644 --- a/maps/Route29.asm +++ b/maps/Route29.asm @@ -176,7 +176,7 @@ TuscanyScript: .MetTuscany writetext TuscanyGivesGiftText keeptextopen - verbosegiveitem PINK_BOW, 1 + verbosegiveitem PINK_BOW iffalse TuscanyDoneScript setevent EVENT_GOT_PINK_BOW_FROM_TUSCANY writetext TuscanyGaveGiftText diff --git a/maps/Route2NuggetSpeechHouse.asm b/maps/Route2NuggetSpeechHouse.asm index e020d41a2..143897a9d 100644 --- a/maps/Route2NuggetSpeechHouse.asm +++ b/maps/Route2NuggetSpeechHouse.asm @@ -12,7 +12,7 @@ FisherScript_0x9b847: iftrue .GotItem writetext UnknownText_0x9b865 keeptextopen - verbosegiveitem NUGGET, 1 + verbosegiveitem NUGGET iffalse .Done setevent EVENT_GOT_NUGGET_FROM_GUY .GotItem diff --git a/maps/Route30.asm b/maps/Route30.asm index 362337b8b..0e994d1bc 100644 --- a/maps/Route30.asm +++ b/maps/Route30.asm @@ -117,7 +117,7 @@ UnknownScript_0x1a16e0: checkevent EVENT_GOT_HP_UP_FROM_JOEY iftrue UnknownScript_0x1a176e scall UnknownScript_0x1a17a6 - verbosegiveitem HP_UP, 1 + verbosegiveitem HP_UP iffalse UnknownScript_0x1a179f setevent EVENT_GOT_HP_UP_FROM_JOEY jump UnknownScript_0x1a178f @@ -129,7 +129,7 @@ UnknownScript_0x1a176f: loadfont writetext UnknownText_0x1a1bc0 closetext - verbosegiveitem HP_UP, 1 + verbosegiveitem HP_UP iffalse UnknownScript_0x1a179f clearevent EVENT_JOEY_HP_UP setevent EVENT_GOT_HP_UP_FROM_JOEY diff --git a/maps/Route30BerrySpeechHouse.asm b/maps/Route30BerrySpeechHouse.asm index baf20ad5b..177f93781 100644 --- a/maps/Route30BerrySpeechHouse.asm +++ b/maps/Route30BerrySpeechHouse.asm @@ -12,7 +12,7 @@ PokefanMScript_0x196d64: iftrue UnknownScript_0x196d79 writetext UnknownText_0x196d82 keeptextopen - verbosegiveitem BERRY, 1 + verbosegiveitem BERRY iffalse UnknownScript_0x196d7d setevent EVENT_GOT_BERRY_FROM_ROUTE_30_HOUSE UnknownScript_0x196d79: diff --git a/maps/Route31.asm b/maps/Route31.asm index a68f1af06..f75097b3a 100644 --- a/maps/Route31.asm +++ b/maps/Route31.asm @@ -120,19 +120,19 @@ UnknownScript_0x1a5507: checkevent EVENT_WADE_HAS_BITTER_BERRY iftrue .BitterBerry .Berry - verbosegiveitem BERRY, 1 + verbosegiveitem BERRY iffalse .PackFull jump .Done .Psncureberry - verbosegiveitem PSNCUREBERRY, 1 + verbosegiveitem PSNCUREBERRY iffalse .PackFull jump .Done .Przcureberry - verbosegiveitem PRZCUREBERRY, 1 + verbosegiveitem PRZCUREBERRY iffalse .PackFull jump .Done .BitterBerry - verbosegiveitem BITTER_BERRY, 1 + verbosegiveitem BITTER_BERRY iffalse .PackFull .Done clearflag ENGINE_WADE_HAS_ITEM @@ -201,7 +201,7 @@ UnknownScript_0x1a5584: writetext UnknownText_0x1a57ba keeptextopen setevent EVENT_GAVE_KENYA - verbosegiveitem TM_NIGHTMARE, 1 + verbosegiveitem TM_NIGHTMARE iffalse UnknownScript_0x1a55b3 setevent EVENT_GOT_TM50_NIGHTMARE UnknownScript_0x1a55af: diff --git a/maps/Route32.asm b/maps/Route32.asm index a3d9ecdb6..85ea0b36a 100644 --- a/maps/Route32.asm +++ b/maps/Route32.asm @@ -57,7 +57,7 @@ UnknownScript_0x190489: UnknownScript_0x19048f: writetext UnknownText_0x190925 keeptextopen - verbosegiveitem MIRACLE_SEED, 1 + verbosegiveitem MIRACLE_SEED iffalse UnknownScript_0x1904a9 setevent EVENT_GOT_MIRACLE_SEED_IN_ROUTE_32 jump UnknownScript_0x1904a5 @@ -98,7 +98,7 @@ FisherScript_0x1904ce: iftrue UnknownScript_0x1904e3 writetext UnknownText_0x191133 keeptextopen - verbosegiveitem TM_ROAR, 1 + verbosegiveitem TM_ROAR iffalse UnknownScript_0x1904e7 setevent EVENT_GOT_TM05_ROAR UnknownScript_0x1904e3: @@ -455,7 +455,7 @@ FriedaScript: .MetFrieda writetext FriedaGivesGiftText keeptextopen - verbosegiveitem POISON_BARB, 1 + verbosegiveitem POISON_BARB iffalse FriedaDoneScript setevent EVENT_GOT_POISON_BARB_FROM_FRIEDA writetext FriedaGaveGiftText diff --git a/maps/Route32PokeCenter1F.asm b/maps/Route32PokeCenter1F.asm index 0fea8bd1c..eaff59e08 100644 --- a/maps/Route32PokeCenter1F.asm +++ b/maps/Route32PokeCenter1F.asm @@ -18,7 +18,7 @@ FishingGuruScript_0x69b55: iffalse UnknownScript_0x69b74 writetext UnknownText_0x69be8 keeptextopen - verbosegiveitem OLD_ROD, 1 + verbosegiveitem OLD_ROD writetext UnknownText_0x69c1b closetext loadmovesprites diff --git a/maps/Route34.asm b/maps/Route34.asm index 39edd9560..9c29e9459 100644 --- a/maps/Route34.asm +++ b/maps/Route34.asm @@ -293,7 +293,7 @@ UnknownScript_0x7819f: UnknownScript_0x78213: scall UnknownScript_0x78244 - verbosegiveitem LEAF_STONE, 1 + verbosegiveitem LEAF_STONE iffalse UnknownScript_0x78225 clearflag ENGINE_GINA_HAS_LEAF_STONE setevent EVENT_GINA_GAVE_LEAF_STONE @@ -450,7 +450,7 @@ CooltrainerfKateScript: iftrue UnknownScript_0x78319 writetext UnknownText_0x788e2 keeptextopen - verbosegiveitem SOFT_SAND, 1 + verbosegiveitem SOFT_SAND iffalse UnknownScript_0x7831d setevent EVENT_GOT_SOFT_SAND_FROM_KATE UnknownScript_0x78319: diff --git a/maps/Route34IlexForestGate.asm b/maps/Route34IlexForestGate.asm index 3468c7120..1c4fd0cbb 100644 --- a/maps/Route34IlexForestGate.asm +++ b/maps/Route34IlexForestGate.asm @@ -48,7 +48,7 @@ TeacherScript_0x62d63: iftrue UnknownScript_0x62d7e writetext UnknownText_0x62d9d keeptextopen - verbosegiveitem TM_SWEET_SCENT, 1 + verbosegiveitem TM_SWEET_SCENT iffalse UnknownScript_0x62d82 setevent EVENT_GOT_TM12_SWEET_SCENT UnknownScript_0x62d7e: diff --git a/maps/Route35Goldenrodgate.asm b/maps/Route35Goldenrodgate.asm index 8e855aaec..3d5b4c5e9 100644 --- a/maps/Route35Goldenrodgate.asm +++ b/maps/Route35Goldenrodgate.asm @@ -49,7 +49,7 @@ OfficerScript_0x69d37: .questcomplete: writetext UnknownText_0x69f8b keeptextopen - verbosegiveitem HP_UP, 1 + verbosegiveitem HP_UP iffalse .bagfull setevent EVENT_GOT_HP_UP_FROM_RANDY .gothpup: diff --git a/maps/Route36.asm b/maps/Route36.asm index e7693cfbe..dc28758bd 100644 --- a/maps/Route36.asm +++ b/maps/Route36.asm @@ -90,7 +90,7 @@ UnknownScript_0x19407b: disappear $4 variablesprite SPRITE_WEIRD_TREE, SPRITE_TWIN special RunCallback_04 - special Function14168 + special RefreshSprites end LassScript_0x19408c: @@ -135,7 +135,7 @@ FisherScript_0x1940b9: UnknownScript_0x1940cd: writetext UnknownText_0x1944d0 keeptextopen - verbosegiveitem TM_ROCK_SMASH, 1 + verbosegiveitem TM_ROCK_SMASH iffalse UnknownScript_0x1940de setevent EVENT_GOT_TM08_ROCK_SMASH UnknownScript_0x1940da: @@ -254,7 +254,7 @@ UnknownScript_0x194140: UnknownScript_0x1941b4: scall UnknownScript_0x1941e5 - verbosegiveitem FIRE_STONE, 1 + verbosegiveitem FIRE_STONE iffalse UnknownScript_0x1941c6 clearflag ENGINE_ALAN_HAS_FIRE_STONE setevent EVENT_ALAN_GAVE_FIRE_STONE @@ -325,7 +325,7 @@ ArthurScript: .MetArthur writetext ArthurGivesGiftText keeptextopen - verbosegiveitem HARD_STONE, 1 + verbosegiveitem HARD_STONE iffalse ArthurDoneScript setevent EVENT_GOT_HARD_STONE_FROM_ARTHUR writetext ArthurGaveGiftText diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm index 025133902..4985b5476 100644 --- a/maps/Route36NationalParkgate.asm +++ b/maps/Route36NationalParkgate.asm @@ -241,7 +241,7 @@ Route36Officer_ContestHasConcluded: .Sunstone: writetext UnknownText_0x6b97f keeptextopen - verbosegiveitem SUN_STONE, 1 + verbosegiveitem SUN_STONE iffalse .BagFull clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE loadmovesprites @@ -250,7 +250,7 @@ Route36Officer_ContestHasConcluded: .Everstone: writetext UnknownText_0x6b97f keeptextopen - verbosegiveitem EVERSTONE, 1 + verbosegiveitem EVERSTONE iffalse .BagFull clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE loadmovesprites @@ -259,7 +259,7 @@ Route36Officer_ContestHasConcluded: .GoldBerry: writetext UnknownText_0x6b97f keeptextopen - verbosegiveitem GOLD_BERRY, 1 + verbosegiveitem GOLD_BERRY iffalse .BagFull clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY loadmovesprites @@ -268,7 +268,7 @@ Route36Officer_ContestHasConcluded: .Berry: writetext UnknownText_0x6b97f keeptextopen - verbosegiveitem BERRY, 1 + verbosegiveitem BERRY iffalse .BagFull clearevent EVENT_CONTEST_OFFICER_HAS_BERRY loadmovesprites diff --git a/maps/Route37.asm b/maps/Route37.asm index d2dc3e11f..fe220cdcd 100644 --- a/maps/Route37.asm +++ b/maps/Route37.asm @@ -74,7 +74,7 @@ SunnyScript: writetext SunnyGivesGiftText2 keeptextopen .next - verbosegiveitem MAGNET, 1 + verbosegiveitem MAGNET iffalse SunnyDoneScript setevent EVENT_GOT_MAGNET_FROM_SUNNY writetext SunnyGaveGiftText diff --git a/maps/Route38.asm b/maps/Route38.asm index 54e209a16..71aba2773 100644 --- a/maps/Route38.asm +++ b/maps/Route38.asm @@ -120,7 +120,7 @@ UnknownScript_0x1a1d82: UnknownScript_0x1a1df6: scall UnknownScript_0x1a1e27 - verbosegiveitem THUNDERSTONE, 1 + verbosegiveitem THUNDERSTONE iffalse UnknownScript_0x1a1e08 clearflag ENGINE_DANA_HAS_THUNDERSTONE setevent EVENT_DANA_GAVE_THUNDERSTONE diff --git a/maps/Route39.asm b/maps/Route39.asm index 174830ffa..5553f483b 100644 --- a/maps/Route39.asm +++ b/maps/Route39.asm @@ -46,7 +46,7 @@ UnknownScript_0x1a5b36: UnknownScript_0x1a5b4a: scall UnknownScript_0x1a5b7a - verbosegiveitem NUGGET, 1 + verbosegiveitem NUGGET iffalse UnknownScript_0x1a5b59 clearflag ENGINE_DEREK_HAS_NUGGET jump UnknownScript_0x1a5b6e diff --git a/maps/Route39Barn.asm b/maps/Route39Barn.asm index f0257a7db..eb44481a0 100644 --- a/maps/Route39Barn.asm +++ b/maps/Route39Barn.asm @@ -63,7 +63,7 @@ TaurosScript_0x9ccaa: iffalse .Refused checkitem BERRY iffalse .NoBerriesInBag - takeitem BERRY, 1 + takeitem BERRY copybytetovar MooMooBerries addvar 1 copyvartobyte MooMooBerries diff --git a/maps/Route39Farmhouse.asm b/maps/Route39Farmhouse.asm index 9b63096d7..ce736a806 100644 --- a/maps/Route39Farmhouse.asm +++ b/maps/Route39Farmhouse.asm @@ -25,7 +25,7 @@ UnknownScript_0x9cec5: iffalse UnknownScript_0x9cf02 checkmoney $0, 500 if_equal $2, UnknownScript_0x9cef6 - giveitem MOOMOO_MILK, 1 + giveitem MOOMOO_MILK iffalse UnknownScript_0x9cefc takemoney $0, 500 special Function24ae8 @@ -76,7 +76,7 @@ PokefanFScript_0x9cf0e: UnknownScript_0x9cf22: writetext UnknownText_0x9d156 keeptextopen - verbosegiveitem TM_SNORE, 1 + verbosegiveitem TM_SNORE iffalse UnknownScript_0x9cf33 setevent EVENT_GOT_TM13_SNORE_FROM_MOOMOO_FARM UnknownScript_0x9cf2f: diff --git a/maps/Route40.asm b/maps/Route40.asm index b8cd1bc88..e96a01422 100644 --- a/maps/Route40.asm +++ b/maps/Route40.asm @@ -96,7 +96,7 @@ MonicaScript: .MetMonica writetext MonicaGivesGiftText keeptextopen - verbosegiveitem SHARP_BEAK, 1 + verbosegiveitem SHARP_BEAK iffalse MonicaDoneScript setevent EVENT_GOT_SHARP_BEAK_FROM_MONICA writetext MonicaGaveGiftText diff --git a/maps/Route42.asm b/maps/Route42.asm index 2a3582b24..1ee15cffb 100644 --- a/maps/Route42.asm +++ b/maps/Route42.asm @@ -108,7 +108,7 @@ UnknownScript_0x1a927f: UnknownScript_0x1a92dc: scall UnknownScript_0x1a930d - verbosegiveitem WATER_STONE, 1 + verbosegiveitem WATER_STONE iffalse UnknownScript_0x1a92ee clearflag ENGINE_TULLY_HAS_WATER_STONE setevent EVENT_TULLY_GAVE_WATER_STONE diff --git a/maps/Route43.asm b/maps/Route43.asm index 7be3e3ebc..8c12f8d02 100644 --- a/maps/Route43.asm +++ b/maps/Route43.asm @@ -251,7 +251,7 @@ UnknownScript_0x19d1c1: UnknownScript_0x19d21e: scall UnknownScript_0x19d255 - verbosegiveitem PINK_BOW, 1 + verbosegiveitem PINK_BOW iffalse UnknownScript_0x19d230 clearflag ENGINE_TIFFANY_HAS_PINK_BOW setevent EVENT_TIFFANY_GAVE_PINK_BOW diff --git a/maps/Route43Gate.asm b/maps/Route43Gate.asm index 741ddaaf2..c863bc937 100644 --- a/maps/Route43Gate.asm +++ b/maps/Route43Gate.asm @@ -113,7 +113,7 @@ OfficerScript_0x19ac85: iftrue UnknownScript_0x19ac9c writetext UnknownText_0x19ad9b keeptextopen - verbosegiveitem TM_SLUDGE_BOMB, 1 + verbosegiveitem TM_SLUDGE_BOMB iffalse UnknownScript_0x19aca0 setevent EVENT_GOT_TM36_SLUDGE_BOMB loadmovesprites diff --git a/maps/Route44.asm b/maps/Route44.asm index 43082d590..2cbb5e40e 100644 --- a/maps/Route44.asm +++ b/maps/Route44.asm @@ -73,7 +73,7 @@ UnknownScript_0x19d86a: checkevent EVENT_GOT_CARBOS_FROM_VANCE iftrue UnknownScript_0x19d8ca scall UnknownScript_0x19d90a - verbosegiveitem CARBOS, 1 + verbosegiveitem CARBOS iffalse UnknownScript_0x19d903 setevent EVENT_GOT_CARBOS_FROM_VANCE jump UnknownScript_0x19d8eb @@ -85,7 +85,7 @@ UnknownScript_0x19d8cb: loadfont writetext UnknownText_0x19dc67 closetext - verbosegiveitem CARBOS, 1 + verbosegiveitem CARBOS iffalse UnknownScript_0x19d903 clearevent EVENT_VANCE_CARBOS setevent EVENT_GOT_CARBOS_FROM_VANCE @@ -223,17 +223,17 @@ UnknownScript_0x19d9b4: checkevent EVENT_WILTON_HAS_POKE_BALL iftrue UnknownScript_0x19d9db UnknownScript_0x19d9c9: - verbosegiveitem ULTRA_BALL, 1 + verbosegiveitem ULTRA_BALL iffalse UnknownScript_0x19d9e7 jump UnknownScript_0x19d9e1 UnknownScript_0x19d9d2: - verbosegiveitem GREAT_BALL, 1 + verbosegiveitem GREAT_BALL iffalse UnknownScript_0x19d9e7 jump UnknownScript_0x19d9e1 UnknownScript_0x19d9db: - verbosegiveitem POKE_BALL, 1 + verbosegiveitem POKE_BALL iffalse UnknownScript_0x19d9e7 UnknownScript_0x19d9e1: clearflag ENGINE_WILTON_HAS_ITEM diff --git a/maps/Route45.asm b/maps/Route45.asm index 35c1c054e..e21515ef0 100644 --- a/maps/Route45.asm +++ b/maps/Route45.asm @@ -43,7 +43,7 @@ UnknownScript_0x19e0e4: checkevent EVENT_KENJI_ON_BREAK iffalse UnknownScript_0x19e127 scall UnknownScript_0x19e137 - verbosegiveitem PP_UP, 1 + verbosegiveitem PP_UP iffalse UnknownScript_0x19e118 clearevent EVENT_KENJI_ON_BREAK special Special_SampleKenjiBreakCountdown @@ -199,7 +199,7 @@ UnknownScript_0x19e1b8: checkevent EVENT_GOT_IRON_FROM_PARRY iftrue UnknownScript_0x19e218 scall UnknownScript_0x19e146 - verbosegiveitem IRON, 1 + verbosegiveitem IRON iffalse UnknownScript_0x19e13f setevent EVENT_GOT_IRON_FROM_PARRY jump UnknownScript_0x19e127 @@ -211,7 +211,7 @@ UnknownScript_0x19e219: loadfont writetext UnknownText_0x19e52c closetext - verbosegiveitem IRON, 1 + verbosegiveitem IRON iffalse UnknownScript_0x19e13f clearevent EVENT_PARRY_IRON setevent EVENT_GOT_IRON_FROM_PARRY diff --git a/maps/Route46.asm b/maps/Route46.asm index 968ddfb22..91ddfe8b5 100644 --- a/maps/Route46.asm +++ b/maps/Route46.asm @@ -84,7 +84,7 @@ UnknownScript_0x1a96da: checkevent EVENT_GOT_CALCIUM_FROM_ERIN iftrue UnknownScript_0x1a973a scall UnknownScript_0x1a9772 - verbosegiveitem CALCIUM, 1 + verbosegiveitem CALCIUM iffalse UnknownScript_0x1a976b setevent EVENT_GOT_CALCIUM_FROM_ERIN jump UnknownScript_0x1a975b @@ -96,7 +96,7 @@ UnknownScript_0x1a973b: loadfont writetext UnknownText_0x1a9927 closetext - verbosegiveitem CALCIUM, 1 + verbosegiveitem CALCIUM iffalse UnknownScript_0x1a976b clearevent EVENT_ERIN_CALCIUM setevent EVENT_GOT_CALCIUM_FROM_ERIN diff --git a/maps/Route5CleanseTagSpeechHouse.asm b/maps/Route5CleanseTagSpeechHouse.asm index 9002ee420..f1a57e338 100644 --- a/maps/Route5CleanseTagSpeechHouse.asm +++ b/maps/Route5CleanseTagSpeechHouse.asm @@ -12,7 +12,7 @@ GrannyScript_0x18b634: iftrue UnknownScript_0x18b649 writetext UnknownText_0x18b655 keeptextopen - verbosegiveitem CLEANSE_TAG, 1 + verbosegiveitem CLEANSE_TAG iffalse UnknownScript_0x18b64d setevent EVENT_GOT_CLEANSE_TAG UnknownScript_0x18b649: diff --git a/maps/SilphCo1F.asm b/maps/SilphCo1F.asm index 91b1423c4..de52fd6f6 100644 --- a/maps/SilphCo1F.asm +++ b/maps/SilphCo1F.asm @@ -15,7 +15,7 @@ OfficerScript_0x18abe8: iftrue UnknownScript_0x18abfd writetext UnknownText_0x18ac36 keeptextopen - verbosegiveitem UP_GRADE, 1 + verbosegiveitem UP_GRADE iffalse UnknownScript_0x18ac01 setevent EVENT_GOT_UP_GRADE UnknownScript_0x18abfd: diff --git a/maps/SlowpokeWellB2F.asm b/maps/SlowpokeWellB2F.asm index 56255a4c9..a5816de3b 100644 --- a/maps/SlowpokeWellB2F.asm +++ b/maps/SlowpokeWellB2F.asm @@ -12,7 +12,7 @@ GymGuyScript_0x5ad0b: iftrue UnknownScript_0x5ad22 writetext UnknownText_0x5ad2a keeptextopen - verbosegiveitem KINGS_ROCK, 1 + verbosegiveitem KINGS_ROCK iffalse UnknownScript_0x5ad20 setevent EVENT_GOT_KINGS_ROCK_IN_SLOWPOKE_WELL UnknownScript_0x5ad20: diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index daeae5805..f0dece4d3 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -71,7 +71,7 @@ SageLiScript: loadfont writetext UnknownText_0x184cc2 keeptextopen - verbosegiveitem HM_FLASH, 1 + verbosegiveitem HM_FLASH setevent EVENT_GOT_HM05_FLASH setevent EVENT_BEAT_SAGE_LI writetext UnknownText_0x184d13 diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm index 7b6892d61..fe6aa731f 100644 --- a/maps/TeamRocketBaseB2F.asm +++ b/maps/TeamRocketBaseB2F.asm @@ -276,7 +276,7 @@ UnknownScript_0x6d184: loadfont writetext UnknownText_0x6d809 keeptextopen - verbosegiveitem HM_WHIRLPOOL, 1 + verbosegiveitem HM_WHIRLPOOL setevent EVENT_GOT_HM06_WHIRLPOOL writetext UnknownText_0x6d8f8 closetext diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm index 33e8674b8..ee0e6277d 100644 --- a/maps/TinTower1F.asm +++ b/maps/TinTower1F.asm @@ -189,7 +189,7 @@ SageScript_0x185188: iftrue UnknownScript_0x1851b0 writetext UnknownText_0x185629 keeptextopen - verbosegiveitem RAINBOW_WING, 1 + verbosegiveitem RAINBOW_WING loadmovesprites refreshscreen $0 earthquake 72 diff --git a/maps/UndergroundWarehouse.asm b/maps/UndergroundWarehouse.asm index 60f4a5656..7d519ca97 100644 --- a/maps/UndergroundWarehouse.asm +++ b/maps/UndergroundWarehouse.asm @@ -69,7 +69,7 @@ GentlemanScript_0x7d9bf: iftrue UnknownScript_0x7d9de writetext UnknownText_0x7dbc6 keeptextopen - verbosegiveitem CARD_KEY, 1 + verbosegiveitem CARD_KEY setevent EVENT_RECEIVED_CARD_KEY setevent EVENT_WAREHOUSE_LAYOUT_1 clearevent EVENT_WAREHOUSE_LAYOUT_2 diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm index f3df277be..d80b56b12 100644 --- a/maps/VermilionCity.asm +++ b/maps/VermilionCity.asm @@ -85,7 +85,7 @@ VermilionGymBadgeGuy: .AllBadges writetext UnknownText_0x1aacf3 keeptextopen - verbosegiveitem HP_UP, 1 + verbosegiveitem HP_UP iffalse .Done setevent EVENT_GOT_HP_UP_FROM_VERMILION_GUY .AlreadyGotItem diff --git a/maps/VioletGym.asm b/maps/VioletGym.asm index 3ba553ae2..041ba6f4e 100644 --- a/maps/VioletGym.asm +++ b/maps/VioletGym.asm @@ -34,7 +34,7 @@ FalknerScript_0x683c2: specialphonecall SPECIALCALL_ASSISTANT writetext UnknownText_0x685c8 keeptextopen - verbosegiveitem TM_MUD_SLAP, 1 + verbosegiveitem TM_MUD_SLAP iffalse .NoRoomForMudSlap setevent EVENT_GOT_TM31_MUD_SLAP writetext UnknownText_0x68648 diff --git a/maps/ViridianCity.asm b/maps/ViridianCity.asm index 32282c1ad..eecc84915 100644 --- a/maps/ViridianCity.asm +++ b/maps/ViridianCity.asm @@ -52,7 +52,7 @@ FisherScript_0x1a9a75: iftrue UnknownScript_0x1a9a8a writetext UnknownText_0x1a9cc4 keeptextopen - verbosegiveitem TM_DREAM_EATER, 1 + verbosegiveitem TM_DREAM_EATER iffalse UnknownScript_0x1a9a8e setevent EVENT_GOT_TM42_DREAM_EATER UnknownScript_0x1a9a8a: diff --git a/wram.asm b/wram.asm index 68667cf37..fe79c8095 100644 --- a/wram.asm +++ b/wram.asm @@ -2090,8 +2090,40 @@ ENDM wd6de:: ds 64 +map_object: MACRO +\1Object:: +\1ObjectStructID:: ds 1 +\1ObjectSprite:: ds 1 +\1ObjectYCoord:: ds 1 +\1ObjectXCoord:: ds 1 +\1ObjectMovement:: ds 1 +\1ObjectRadius:: ds 1 +\1ObjectHour:: ds 1 +\1ObjectTimeOfDay:: ds 1 +\1ObjectColor:: ds 1 +\1ObjectRange:: ds 1 +\1ObjectScript:: ds 2 +\1ObjectEventFlag:: ds 2 + ds 2 +endm + MapObjects:: ; d71e - ds OBJECT_LENGTH * NUM_OBJECTS + map_object Player + map_object Map1 + map_object Map2 + map_object Map3 + map_object Map4 + map_object Map5 + map_object Map6 + map_object Map7 + map_object Map8 + map_object Map9 + map_object Map10 + map_object Map11 + map_object Map12 + map_object Map13 + map_object Map14 + map_object Map15 wObjectMasks:: ds NUM_OBJECTS ; d81e -- cgit v1.2.3 From 893b3a217eefd354d8b0023aa91d9b6a7d03604a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 4 Nov 2015 20:29:11 -0500 Subject: Restore compare.sh with new version as compare2.sh --- compare.sh | 30 ++++-------------------------- compare2.sh | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 55 insertions(+), 26 deletions(-) create mode 100755 compare2.sh diff --git a/compare.sh b/compare.sh index 1dc7bcd04..d013a88ab 100755 --- a/compare.sh +++ b/compare.sh @@ -2,32 +2,10 @@ # Compares baserom.gbc and pokecrystal.gbc # create baserom.txt if necessary -crystal_md5=9f2922b235a5eeb78d65594e82ef5dde -if [ ! -f baserom.gbc ]; then - echo "FATAL: Baserom not found" - exit 1 +if [ ! -f baserom.txt ]; then + hexdump -C baserom.gbc > baserom.txt fi -base_md5=`md5sum baserom.gbc | cut -d' ' -f1` -echo "baserom.gbc: $base_md5" -if [ $base_md5 != $crystal_md5 ]; then - echo "FATAL: Baserom is incorrect" - exit 1 -fi - -built_md5=`md5sum pokecrystal.gbc | cut -d' ' -f1` -echo "pokecrystal.gbc: $built_md5" -if [ $built_md5 != $crystal_md5 ] -then - echo "Checksums do not match, here's where the ROMs differ..." - if [ ! -f baserom.txt ]; then - hexdump -C baserom.gbc > baserom.txt - fi - - hexdump -C pokecrystal.gbc > pokecrystal.txt - - diff -u baserom.txt pokecrystal.txt | less -else - echo "Checksums match! :D" -fi +hexdump -C pokecrystal.gbc > pokecrystal.txt +diff -u baserom.txt pokecrystal.txt | less diff --git a/compare2.sh b/compare2.sh new file mode 100755 index 000000000..64695229e --- /dev/null +++ b/compare2.sh @@ -0,0 +1,51 @@ +#!/bin/sh +# Compares baserom.gbc and pokecrystal.gbc + +# create baserom.txt if necessary +crystal_md5=9f2922b235a5eeb78d65594e82ef5dde +if [ ! -f baserom.gbc ]; then + echo "FATAL: Baserom not found" + exit 1 +fi + +if [ $1 ]; then + if [ $1 == "-v" ]; then + verbose=1 + else + verbose = 0 + fi +else + verbose=0 +fi + +base_md5=`md5sum baserom.gbc | cut -d' ' -f1` +if [ $verbose == 1 ]; then + echo "baserom.gbc: $base_md5" +fi +if [ $base_md5 != $crystal_md5 ]; then + echo "FATAL: Baserom is incorrect" + exit 1 +fi + +built_md5=`md5sum pokecrystal.gbc | cut -d' ' -f1` +if [ $verbose == 1 ]; then + echo "pokecrystal.gbc: $built_md5" +fi +if [ $built_md5 != $crystal_md5 ] +then + if [ $verbose == 1 ]; then + echo "Checksums do not match, here's where the ROMs differ..." + fi + if [ ! -f baserom.txt ]; then + hexdump -C baserom.gbc > baserom.txt + fi + + hexdump -C pokecrystal.gbc > pokecrystal.txt + + diff -u baserom.txt pokecrystal.txt | less +else + if [ $verbose == 1 ]; then + echo "Checksums match! :D" + fi +fi + -- cgit v1.2.3 From adf2fe712d372bad8c68590ae77b1dde85290d8f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 5 Nov 2015 14:06:03 -0500 Subject: Various labels --- audio/engine.asm | 2 + battle/core.asm | 8 +- engine/map_setup.asm | 6 +- engine/pokedex.asm | 2 +- engine/save.asm | 18 +- engine/scripting.asm | 2 +- engine/specials.asm | 2 +- home.asm | 22 +- home/audio.asm | 7 +- home/copy.asm | 29 +- home/init.asm | 4 +- home/map.asm | 36 +- home/video.asm | 2 +- hram.asm | 6 +- main.asm | 990 ++++++++++++++++++++------------------- maps/CianwoodCityPhotoStudio.asm | 2 +- misc/mobile_40.asm | 6 +- misc/mobile_42.asm | 12 +- misc/mobile_46.asm | 4 +- misc/mobile_5c.asm | 8 +- misc/mobile_5f.asm | 8 +- sram.asm | 10 +- wram.asm | 14 +- 23 files changed, 621 insertions(+), 579 deletions(-) diff --git a/audio/engine.asm b/audio/engine.asm index 0c4ebcad3..7739534ac 100644 --- a/audio/engine.asm +++ b/audio/engine.asm @@ -613,6 +613,7 @@ FadeMusic: ; e8358 jr z, .novolume dec a jr .updatevolume + .novolume ; make sure volume is off xor a @@ -660,6 +661,7 @@ FadeMusic: ; e8358 ld hl, MusicFade set 7, [hl] ret + .fadein ; are we done? cp a, $07 diff --git a/battle/core.asm b/battle/core.asm index e7bd66203..4340dfac6 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -8463,7 +8463,7 @@ Function3f4dd: ; 3f4dd ld [TempBattleMonSpecies], a ld [wd0d2], a xor a - ld [$ffde], a + ld [hMapAnims], a callba PlayBattleMusic callba ShowLinkBattleParticipants callba FindFirstAliveMon @@ -8783,7 +8783,7 @@ endr Function3f759: ; 3f759 callba MobileFn_1060df - callba Function106187 + callba BackupMobileEventIndex ld a, [CurOTMon] ld hl, OTPartyMon1Status call GetPartyLocation @@ -8827,7 +8827,7 @@ Function3f77c: ; 3f77c .asm_3f7c3 hlcoord 6, 8 call PlaceString - callba Function106187 + callba BackupMobileEventIndex ld c, $c8 call DelayFrames ld a, BANK(sLinkBattleStats) @@ -9370,7 +9370,7 @@ Function3fb6c: ; 3fb6c call Function3ed9f call Function3fbd6 xor a - ld [$ffde], a + ld [hMapAnims], a ld [hSCY], a ld a, $90 ld [hWY], a diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 957747406..8ae9838f0 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -252,7 +252,7 @@ MapSetupCommands: ; 15440 dba FadeOutMapAndMusic ; 06 dba EnterMapMusic ; 07 dba ForceMapMusic ; 08 - dba CrankUpTheVolume ; 09 + dba FadeInMusic ; 09 dba LoadBlockData ; 0a dba LoadNeighboringBlockData ; 0b dba SaveScreen ; 0c @@ -300,13 +300,13 @@ DontScrollText: ; 154ca ActivateMapAnims: ; 154cf ld a, $1 - ld [$ffde], a + ld [hMapAnims], a ret ; 154d3 SuspendMapAnims: ; 154d3 xor a - ld [$ffde], a + ld [hMapAnims], a ret ; 154d7 diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 005129f5f..01ea1c7c2 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -22,7 +22,7 @@ Pokedex: ; 40000 ld [hInMenu], a xor a - ld [$ffde], a + ld [hMapAnims], a call InitPokedex call DelayFrame diff --git a/engine/save.asm b/engine/save.asm index 338d6bc40..21382a802 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -30,7 +30,7 @@ Function14a58: ; 14a58 call Function14e13 call SaveBackupPokemonData call SaveBackupChecksum - callba Function44725 + callba BackupScratchmons callba Function1406a call ClearWRAMStateAfterSave ret @@ -106,8 +106,8 @@ Function14ad5: ; 14ad5 call SaveBackupPlayerData call SaveBackupPokemonData call SaveBackupChecksum - callba Function44725 - callba Function106187 + callba BackupScratchmons + callba BackupMobileEventIndex callba Function1406a call LoadBox call ClearWRAMStateAfterSave @@ -284,8 +284,8 @@ SaveGameData_: ; 14c10 call SaveBackupPokemonData call SaveBackupChecksum call UpdateStackTop - callba Function44725 - callba Function106187 + callba BackupScratchmons + callba BackupMobileEventIndex callba Function1406a ld a, BANK(s1_be45) call GetSRAMBank @@ -630,8 +630,8 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) call LoadPlayerData call LoadPokemonData call LoadBox - callba Function44745 - callba Function10619d + callba RestoreScratchmons + callba RestoreMobileEventIndex callba Function1050ea call ValidateBackupSave call SaveBackupOptions @@ -647,8 +647,8 @@ TryLoadSaveFile: ; 14ea5 (5:4ea5) call LoadBackupPlayerData call LoadBackupPokemonData call LoadBox - callba Function44745 - callba Function10619d + callba RestoreScratchmons + callba RestoreMobileEventIndex callba Function1050ea call ValidateSave call SaveOptions diff --git a/engine/scripting.asm b/engine/scripting.asm index c37d82594..115ed77f8 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1222,7 +1222,7 @@ ApplyPersonFacing: ; 0x9728b ; 0x972bc .DisableTextTiles: ; 0x972bc - call Function217a + call LoadMapPart hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT .loop diff --git a/engine/specials.asm b/engine/specials.asm index ac8c220d8..68543f2d9 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -124,7 +124,7 @@ SpecialsPointers:: ; c029 add_special ProfOaksPCBoot add_special SpecialGameboyCheck add_special SpecialTrainerHouse - add_special Function16dc7 + add_special PhotoStudio add_special InitRoamMons add_special Functionc48f add_special Functionc49f diff --git a/home.asm b/home.asm index 292769cc9..7bda59055 100644 --- a/home.asm +++ b/home.asm @@ -99,7 +99,7 @@ Function2ecb:: ; 2ecb DisableSpriteUpdates:: ; 0x2ed3 ; disables overworld sprite updating? xor a - ld [$ffde], a + ld [hMapAnims], a ld a, [VramState] res 0, a ld [VramState], a @@ -115,7 +115,7 @@ EnableSpriteUpdates:: ; 2ee4 set 0, a ld [VramState], a ld a, $1 - ld [$ffde], a + ld [hMapAnims], a ret ; 2ef6 @@ -427,13 +427,13 @@ PrintNum:: ; 3198 ; 31a4 -Function31a4:: ; 31a4 +MobilePrintNum:: ; 31a4 ld a, [hROMBank] push af - ld a, BANK(Function1061ef) + ld a, BANK(_MobilePrintNum) rst Bankswitch - call Function1061ef + call _MobilePrintNum pop af rst Bankswitch @@ -609,10 +609,10 @@ Function3246:: ; 3246 xor a ld [hBGMapMode], a - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a .wait ld a, [rLY] @@ -636,7 +636,7 @@ Function3246:: ; 3246 ei pop af - ld [$ffde], a + ld [hMapAnims], a pop af ld [hBGMapMode], a ret @@ -650,7 +650,7 @@ Function327b:: ; 327b ld h, a ld l, 0 ld a, SCREEN_HEIGHT - ld [$ffd3], a + ld [hTilesPerCycle], a ld b, 1 << 1 ; not in v/hblank ld c, rSTAT % $100 @@ -671,9 +671,9 @@ endr ld de, $20 - SCREEN_WIDTH add hl, de - ld a, [$ffd3] + ld a, [hTilesPerCycle] dec a - ld [$ffd3], a + ld [hTilesPerCycle], a jr nz, .loop ld a, [hSPBuffer] diff --git a/home/audio.asm b/home/audio.asm index 3e22a1540..a41fdbf00 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -312,13 +312,13 @@ VolumeOff:: ; 3ca3 ret ; 3ca8 -Function3ca8:: ; 3ca8 +FadeOutMusic:: ; 3ca8 ld a, 4 ld [MusicFade], a ret ; 3cae -CrankUpTheVolume:: ; 3cae +FadeInMusic:: ; 3cae ld a, 4 | 1 << 7 ld [MusicFade], a ret @@ -326,11 +326,12 @@ CrankUpTheVolume:: ; 3cae SkipMusic:: ; 3cb4 ; Skip a frames of music. +.loop and a ret z dec a call UpdateSound - jr SkipMusic + jr .loop ; 3cbc FadeToMapMusic:: ; 3cbc diff --git a/home/copy.asm b/home/copy.asm index e479ddeaf..08eb5c10d 100644 --- a/home/copy.asm +++ b/home/copy.asm @@ -232,10 +232,10 @@ Request2bpp:: ; eba ld a, b rst Bankswitch - ld a, [$ffd3] + ld a, [hTilesPerCycle] push af ld a, $8 - ld [$ffd3], a + ld [hTilesPerCycle], a ld a, [wLinkMode] cp LINK_MOBILE @@ -244,7 +244,7 @@ Request2bpp:: ; eba and a jr nz, .NotMobile ld a, $6 - ld [$ffd3], a + ld [hTilesPerCycle], a .NotMobile ld a, e @@ -257,7 +257,7 @@ Request2bpp:: ; eba ld [Requested2bppDest + 1], a .loop ld a, c - ld hl, $ffd3 + ld hl, hTilesPerCycle cp [hl] jr nc, .iterate @@ -269,7 +269,7 @@ Request2bpp:: ; eba jr nz, .wait pop af - ld [$ffd3], a + ld [hTilesPerCycle], a pop af rst Bankswitch @@ -279,7 +279,7 @@ Request2bpp:: ; eba ret .iterate - ld a, [$ffd3] + ld a, [hTilesPerCycle] ld [Requested2bpp], a .wait2 @@ -289,7 +289,7 @@ Request2bpp:: ; eba jr nz, .wait2 ld a, c - ld hl, $ffd3 + ld hl, hTilesPerCycle sub [hl] ld c, a jr .loop @@ -297,6 +297,7 @@ Request2bpp:: ; eba Request1bpp:: ; f1e +; Load 1bpp at b:de to occupy c tiles of hl. ld a, [hBGMapMode] push af xor a @@ -307,11 +308,11 @@ Request1bpp:: ; f1e ld a, b rst Bankswitch - ld a, [$ffd3] + ld a, [hTilesPerCycle] push af ld a, $8 - ld [$ffd3], a + ld [hTilesPerCycle], a ld a, [wLinkMode] cp LINK_MOBILE jr nz, .NotMobile @@ -319,7 +320,7 @@ Request1bpp:: ; f1e and a jr nz, .NotMobile ld a, $6 - ld [$ffd3], a + ld [hTilesPerCycle], a .NotMobile ld a, e @@ -332,7 +333,7 @@ Request1bpp:: ; f1e ld [Requested1bppDest + 1], a .loop ld a, c - ld hl, $ffd3 + ld hl, hTilesPerCycle cp [hl] jr nc, .iterate @@ -344,7 +345,7 @@ Request1bpp:: ; f1e jr nz, .wait pop af - ld [$ffd3], a + ld [hTilesPerCycle], a pop af rst Bankswitch @@ -354,7 +355,7 @@ Request1bpp:: ; f1e ret .iterate - ld a, [$ffd3] + ld a, [hTilesPerCycle] ld [Requested1bpp], a .wait2 @@ -364,7 +365,7 @@ Request1bpp:: ; f1e jr nz, .wait2 ld a, c - ld hl, $ffd3 + ld hl, hTilesPerCycle sub [hl] ld c, a jr .loop diff --git a/home/init.asm b/home/init.asm index 8325f6294..f78149dd6 100644 --- a/home/init.asm +++ b/home/init.asm @@ -2,7 +2,7 @@ Reset:: ; 150 di call SoundRestart xor a - ld [$ffde], a + ld [hMapAnims], a call ClearPalettes xor a ld [rIF], a @@ -109,7 +109,7 @@ Init:: ; 17d call LoadPushOAM xor a - ld [$ffde], a + ld [hMapAnims], a ld [hSCX], a ld [hSCY], a ld [rJOYP], a diff --git a/home/map.asm b/home/map.asm index fd68e5442..cb83a689d 100644 --- a/home/map.asm +++ b/home/map.asm @@ -96,19 +96,19 @@ GetMapTrigger:: ; 2147 ; 2173 Function2173:: ; 2173 - call Function217a + call LoadMapPart call FarCallSwapTextboxPalettes ret ; 217a -Function217a:: ; 217a +LoadMapPart:: ; 217a ld a, [hROMBank] push af ld a, [TilesetBlocksBank] rst Bankswitch - call Function2198 + call LoadMetatiles ld a, $60 hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT @@ -123,36 +123,38 @@ Function217a:: ; 217a ret ; 2198 -Function2198:: ; 2198 +LoadMetatiles:: ; 2198 ld a, [wd194] ld e, a ld a, [wd195] ld d, a - ld hl, wEnemyMoveStruct - ld b, $5 + ld hl, wMisc + ld b, 5 ; SCREEN_WIDTH / 4 .loop push de push hl - ld c, $6 + ld c, 6 ; SCREEN_HEIGHT / 3 .loop2 push de push hl ld a, [de] and a - jr nz, .asm_21b2 + jr nz, .ok ld a, [MapBorderBlock] -.asm_21b2 +.ok ld e, l ld d, h +; double a, load hl <- a, multiply hl by 8 add a ld l, a ld h, 0 rept 3 add hl,hl endr +; hl <- hl + [TilesetBlocksAddress] ld a, [TilesetBlocksAddress] add l ld l, a @@ -168,7 +170,7 @@ rept 4 endr ld a, e - add 20 + add 5 * 4 ld e, a jr nc, .next\@ inc d @@ -182,24 +184,24 @@ rept 4 endr pop hl - ld de, $0004 + ld de, 4 add hl, de pop de inc de dec c jp nz, .loop2 pop hl - ld de, $0060 + ld de, $60 add hl, de pop de ld a, [MapWidth] - add $6 + add 6 add e ld e, a - jr nc, .asm_2225 + jr nc, .ok2 inc d -.asm_2225 +.ok2 dec b jp nz, .loop ret @@ -2001,7 +2003,7 @@ Function2b74:: ; 0x2b74 call ClearSprites call Function2bae hlcoord 0, 12 - ld bc, $0412 + lb bc, 4, 18 call TextBox ld hl, VramState set 0, [hl] @@ -2013,7 +2015,7 @@ Function2b74:: ; 0x2b74 call UpdateTimePals call DelayFrame ld a, $1 - ld [$ffde], a + ld [hMapAnims], a pop af ret ; 0x2bae diff --git a/home/video.asm b/home/video.asm index b7e9f4db5..15ea9b72b 100644 --- a/home/video.asm +++ b/home/video.asm @@ -449,7 +449,7 @@ endr AnimateTileset:: ; 17d3 ; Only call during the first fifth of VBlank - ld a, [$ffde] + ld a, [hMapAnims] and a ret z diff --git a/hram.asm b/hram.asm index d0bd382e2..c7532c123 100644 --- a/hram.asm +++ b/hram.asm @@ -60,6 +60,9 @@ hPrintNum4 EQU $ffb6 hPrintNum5 EQU $ffb7 hPrintNum6 EQU $ffb8 hPrintNum7 EQU $ffb9 +hPrintNum8 EQU $ffba +hPrintNum9 EQU $ffbb +hPrintNum10 EQU $ffbc hUsedSpriteIndex EQU $ffbd hUsedSpriteTile EQU $ffbe @@ -74,7 +77,7 @@ hSCX EQU $ffcf hSCY EQU $ffd0 hWX EQU $ffd1 hWY EQU $ffd2 - +hTilesPerCycle EQU $ffd3 hBGMapMode EQU $ffd4 hBGMapThird EQU $ffd5 hBGMapAddress EQU $ffd6 @@ -84,6 +87,7 @@ hSPBuffer EQU $ffd9 hBGMapUpdate EQU $ffdb +hMapAnims EQU $ffde hTileAnimFrame EQU $ffdf hLastTalked EQU $ffe0 diff --git a/main.asm b/main.asm index 9a7e47527..02bf1fb29 100644 --- a/main.asm +++ b/main.asm @@ -107,7 +107,7 @@ Function5b05: ; 5b05 Function5b44: ; 5b44 xor a - ld [$ffde], a + ld [hMapAnims], a call ClearTileMap call LoadFontsExtra call LoadStandardFont @@ -283,11 +283,11 @@ ENDC call InitializeNPCNames - callba Function26751 + callba InitDecorations - callba Function44765 + callba DeleteScratchmons - callba Function1061c0 + callba DeleteMobileEventIndex call ResetGameTime ret @@ -4329,7 +4329,7 @@ _PrintNum:: ; c4c7 ld a, [hPrintNum6] ld b, a ld a, [hPrintNum3] - ld [$ffbb], a + ld [hPrintNum9], a cp b jr nc, .skip2 ld a, [hPrintNum2] @@ -4344,7 +4344,7 @@ _PrintNum:: ; c4c7 ld a, [hPrintNum7] ld b, a ld a, [hPrintNum4] - ld [$ffbc], a + ld [hPrintNum10], a cp b jr nc, .skip4 ld a, [hPrintNum3] @@ -4366,7 +4366,7 @@ _PrintNum:: ; c4c7 inc c jr .loop .skip6 - ld a, [$ffbb] + ld a, [hPrintNum9] ld [hPrintNum3], a .skip3 ld a, [$ffba] @@ -5196,7 +5196,7 @@ FlyFunction: ; ca3b .outdoors xor a - ld [$ffde], a + ld [hMapAnims], a call LoadMenuDataHeader_0x1d75 call ClearSprites callba _FlyMap @@ -7354,22 +7354,22 @@ Functiond536: ; d536 (3:5536) ret .asm_d549 call Functiond571 - call Function217a + call LoadMapPart call Function2748 ret .asm_d553 call Functiond5a2 - call Function217a + call LoadMapPart call Function272a ret .asm_d55d call Functiond5d5 - call Function217a + call LoadMapPart call Function2771 ret .asm_d567 call Functiond5fe - call Function217a + call LoadMapPart call Function278f ret @@ -9225,13 +9225,13 @@ Functione039: ; e039 ld a, [wLinkMode] and a ret nz - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank ld hl, PartyCount ld a, [CurPartyMon] cp [hl] jr z, .asm_e131 - ld hl, s0_a600 + ld hl, sPartyScratch1 ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes push hl @@ -10471,10 +10471,10 @@ Function116c1: ; 116c1 ld a, [hl] push af set 4, [hl] - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a ld a, [hInMenu] push af ld a, $1 @@ -10487,7 +10487,7 @@ Function116c1: ; 116c1 pop af ld [hInMenu], a pop af - ld [$ffde], a + ld [hMapAnims], a pop af ld [Options], a call ClearJoypad @@ -11418,10 +11418,10 @@ Function11e75: ; 11e75 (4:5e75) ld [hl], e inc hl ld [hl], d - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a ld a, [hInMenu] push af ld a, $1 @@ -11434,7 +11434,7 @@ Function11e75: ; 11e75 (4:5e75) pop af ld [hInMenu], a pop af - ld [$ffde], a + ld [hMapAnims], a ret Function11e9a: ; 11e9a (4:5e9a) @@ -13166,25 +13166,25 @@ PokemonActionSubmenu: ; 12a88 ret .Actions - dbw MONMENU_CUT, Function12e1b ; Cut - dbw MONMENU_FLY, Function12e30 ; Fly - dbw MONMENU_SURF, Function12ebd ; Surf - dbw MONMENU_STRENGTH, Function12e6a ; Strength - dbw MONMENU_FLASH, Function12e55 ; Flash - dbw MONMENU_WHIRLPOOL, Function12e7f ; Whirlpool - dbw MONMENU_DIG, Function12ed1 ; Dig - dbw MONMENU_TELEPORT, Function12ea9 ; Teleport - dbw MONMENU_SOFTBOILED, Function12ee6 ; Softboiled - dbw MONMENU_MILKDRINK, Function12ee6 ; MilkDrink - dbw MONMENU_HEADBUTT, Function12f26 ; Headbutt - dbw MONMENU_WATERFALL, Function12e94 ; Waterfall - dbw MONMENU_ROCKSMASH, Function12f3b ; RockSmash - dbw MONMENU_SWEETSCENT, Function12f50 ; SweetScent + dbw MONMENU_CUT, MonMenu_Cut ; Cut + dbw MONMENU_FLY, MonMenu_Fly ; Fly + dbw MONMENU_SURF, MonMenu_Surf ; Surf + dbw MONMENU_STRENGTH, MonMenu_Strength ; Strength + dbw MONMENU_FLASH, MonMenu_Flash ; Flash + dbw MONMENU_WHIRLPOOL, MonMenu_Whirlpool ; Whirlpool + dbw MONMENU_DIG, MonMenu_Dig ; Dig + dbw MONMENU_TELEPORT, MonMenu_Teleport ; Teleport + dbw MONMENU_SOFTBOILED, MonMenu_Softboiled_MilkDrink ; Softboiled + dbw MONMENU_MILKDRINK, MonMenu_Softboiled_MilkDrink ; MilkDrink + dbw MONMENU_HEADBUTT, MonMenu_Headbutt ; Headbutt + dbw MONMENU_WATERFALL, MonMenu_Waterfall ; Waterfall + dbw MONMENU_ROCKSMASH, MonMenu_RockSmash ; RockSmash + dbw MONMENU_SWEETSCENT, MonMenu_SweetScent ; SweetScent dbw MONMENU_STATS, OpenPartyStats dbw MONMENU_SWITCH, SwitchPartyMons dbw MONMENU_ITEM, GiveTakePartyMonItem dbw MONMENU_CANCEL, CancelPokemonAction - dbw MONMENU_MOVE, Function12fba ; move + dbw MONMENU_MOVE, ManagePokemonMoves ; move dbw MONMENU_MAIL, MonMailAction ; mail ; 12aec @@ -13222,7 +13222,7 @@ SwitchPartyMons: ; 12aec bit 1, b jr c, .DontSwitch - callba Function50f12 + callba _SwitchPartyMons xor a ld [PartyMenuActionText], a @@ -13535,14 +13535,14 @@ Function12cfe: ; 12cfe (4:6cfe) ld a, [CurItem] ld [de], a ld a, [CurPartyMon] - ld hl, s0_a600 + ld hl, sPartyScratch1 ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes ld d, h ld e, l ld hl, DefaultFlypoint ld bc, (SCRATCHMON_STRUCT_LENGTH) - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank call CopyBytes call CloseSRAM @@ -13691,7 +13691,7 @@ OpenPartyStats: ; 12e00 ; 12e1b -Function12e1b: ; 12e1b +MonMenu_Cut: ; 12e1b callba CutFunction ld a, [wd0ec] cp $1 @@ -13706,7 +13706,7 @@ Function12e1b: ; 12e1b ; 12e30 -Function12e30: ; 12e30 +MonMenu_Fly: ; 12e30 callba FlyFunction ld a, [wd0ec] cp $2 @@ -13731,7 +13731,7 @@ Function12e30: ; 12e30 ret ; 12e55 -Function12e55: ; 12e55 +MonMenu_Flash: ; 12e55 callba Functionc8ac ld a, [wd0ec] cp $1 @@ -13745,7 +13745,7 @@ Function12e55: ; 12e55 ret ; 12e6a -Function12e6a: ; 12e6a +MonMenu_Strength: ; 12e6a callba StrengthFunction ld a, [wd0ec] cp $1 @@ -13759,7 +13759,7 @@ Function12e6a: ; 12e6a ret ; 12e7f -Function12e7f: ; 12e7f +MonMenu_Whirlpool: ; 12e7f callba WhirlpoolFunction ld a, [wd0ec] cp $1 @@ -13773,7 +13773,7 @@ Function12e7f: ; 12e7f ret ; 12e94 -Function12e94: ; 12e94 +MonMenu_Waterfall: ; 12e94 callba Functioncade ld a, [wd0ec] cp $1 @@ -13787,7 +13787,7 @@ Function12e94: ; 12e94 ret ; 12ea9 -Function12ea9: ; 12ea9 +MonMenu_Teleport: ; 12ea9 callba TeleportFunction ld a, [wd0ec] and a @@ -13801,7 +13801,7 @@ Function12ea9: ; 12ea9 ret ; 12ebd -Function12ebd: ; 12ebd +MonMenu_Surf: ; 12ebd callba SurfFunction ld a, [wd0ec] and a @@ -13815,7 +13815,7 @@ Function12ebd: ; 12ebd ret ; 12ed1 -Function12ed1: ; 12ed1 +MonMenu_Dig: ; 12ed1 callba DigFunction ld a, [wd0ec] cp $1 @@ -13829,7 +13829,7 @@ Function12ed1: ; 12ed1 ret ; 12ee6 -Function12ee6: ; 12ee6 +MonMenu_Softboiled_MilkDrink: ; 12ee6 call Function12f05 jr nc, .asm_12ef3 callba Functionf3df @@ -13873,7 +13873,7 @@ Function12f05: ; 12f05 ret ; 12f26 -Function12f26: ; 12f26 +MonMenu_Headbutt: ; 12f26 callba HeadbuttFunction ld a, [wd0ec] cp $1 @@ -13887,7 +13887,7 @@ Function12f26: ; 12f26 ret ; 12f3b -Function12f3b: ; 12f3b +MonMenu_RockSmash: ; 12f3b callba RockSmashFunction ld a, [wd0ec] cp $1 @@ -13901,7 +13901,7 @@ Function12f3b: ; 12f3b ret ; 12f50 -Function12f50: ; 12f50 +MonMenu_SweetScent: ; 12f50 callba DoMovementFunctionc ld b, $4 ld a, $2 @@ -13925,7 +13925,7 @@ Function12f5b: ; 12f5b ; 12f73 Function12f73: ; 12f73 - call Function13172 + call SetUpMoveScreenBG ld de, Unknown_12fb2 call Function1bb1 call Function131ef @@ -13941,8 +13941,8 @@ Function12f86: ; 12f86 jp nz, Function12f9c Function12f93: ; 12f93 - call Function13235 - call Function13256 + call PrepareToPlaceMoveData + call PlaceMoveData jp Function12f86 ; 12f9c @@ -13969,58 +13969,58 @@ Unknown_12fb2: ; 12fb2 db $03, $01, $03, $01, $40, $00, $20, $c3 ; 12fba -Function12fba: ; 12fba +ManagePokemonMoves: ; 12fba ld a, [CurPartySpecies] cp EGG - jr z, .asm_12fd2 + jr z, .egg ld hl, Options ld a, [hl] push af set 4, [hl] - call Function12fd5 + call MoveScreenLoop pop af ld [Options], a call WhiteBGMap -.asm_12fd2 +.egg ld a, $0 ret ; 12fd5 -Function12fd5: ; 12fd5 +MoveScreenLoop: ; 12fd5 ld a, [CurPartyMon] inc a ld [wd0d8], a - call Function13172 + call SetUpMoveScreenBG call Function132d3 ld de, Unknown_13163 call Function1bb1 -.asm_12fe8 +.loop call Function131ef ld hl, wcfa5 set 6, [hl] - jr .asm_13009 + jr .skip_joy -.asm_12ff2 +.joy_loop call Function1bd3 bit 1, a - jp nz, .asm_13038 + jp nz, .b_button bit 0, a - jp nz, .asm_130c6 + jp nz, .a_button bit 4, a - jp nz, .asm_1305b + jp nz, .d_right bit 5, a - jp nz, .asm_13075 + jp nz, .d_left -.asm_13009 - call Function13235 - ld a, [wd0e3] +.skip_joy + call PrepareToPlaceMoveData + ld a, [wMoveSwapBuffer] and a - jr nz, .asm_13018 - call Function13256 - jp .asm_12ff2 + jr nz, .moving_move + call PlaceMoveData + jp .joy_loop -.asm_13018 +.moving_move ld a, " " hlcoord 1, 11 ld bc, 5 @@ -14031,52 +14031,54 @@ Function12fd5: ; 12fd5 hlcoord 1, 12 ld de, String_1316b call PlaceString - jp .asm_12ff2 -.asm_13038: ; 13038 + jp .joy_loop +.b_button: ; 13038 call PlayClickSFX call WaitSFX - ld a, [wd0e3] + ld a, [wMoveSwapBuffer] and a - jp z, Function13154 - ld a, [wd0e3] + jp z, .exit + + ld a, [wMoveSwapBuffer] ld [MenuSelection2], a xor a - ld [wd0e3], a + ld [wMoveSwapBuffer], a hlcoord 1, 2 lb bc, 8, SCREEN_WIDTH - 2 call ClearBox - jp .asm_12fe8 + jp .loop ; 1305b -.asm_1305b: ; 1305b - ld a, [wd0e3] +.d_right: ; 1305b + ld a, [wMoveSwapBuffer] and a - jp nz, .asm_12ff2 + jp nz, .joy_loop + ld a, [CurPartyMon] ld b, a push bc - call .asm_1308f + call .cycle_right pop bc ld a, [CurPartyMon] cp b - jp z, .asm_12ff2 - jp Function12fd5 + jp z, .joy_loop + jp MoveScreenLoop -.asm_13075: ; 13075 - ld a, [wd0e3] +.d_left: ; 13075 + ld a, [wMoveSwapBuffer] and a - jp nz, .asm_12ff2 + jp nz, .joy_loop ld a, [CurPartyMon] ld b, a push bc - call .asm_130a7 + call .cycle_left pop bc ld a, [CurPartyMon] cp b - jp z, .asm_12ff2 - jp Function12fd5 + jp z, .joy_loop + jp MoveScreenLoop -.asm_1308f +.cycle_right ld a, [CurPartyMon] inc a ld [CurPartyMon], a @@ -14085,17 +14087,17 @@ Function12fd5: ; 12fd5 ld hl, PartySpecies add hl, bc ld a, [hl] - cp $ff - jr z, .asm_130a7 + cp -1 + jr z, .cycle_left cp EGG ret nz - jr .asm_1308f + jr .cycle_right -.asm_130a7 +.cycle_left ld a, [CurPartyMon] and a ret z -.asm_130ac +.cycle_left_loop ld a, [CurPartyMon] dec a ld [CurPartyMon], a @@ -14108,46 +14110,46 @@ Function12fd5: ; 12fd5 ret nz ld a, [CurPartyMon] and a - jr z, .asm_1308f - jr .asm_130ac + jr z, .cycle_right + jr .cycle_left_loop ; 130c6 -.asm_130c6: ; 130c6 +.a_button: ; 130c6 call PlayClickSFX call WaitSFX - ld a, [wd0e3] + ld a, [wMoveSwapBuffer] and a - jr nz, .asm_130de + jr nz, .place_move ld a, [MenuSelection2] - ld [wd0e3], a + ld [wMoveSwapBuffer], a call Function1bee - jp .asm_13018 + jp .moving_move -.asm_130de +.place_move ld hl, PartyMon1Moves ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] call AddNTimes push hl - call Function1313a + call .copy_move pop hl ld bc, $15 add hl, bc - call Function1313a + call .copy_move ld a, [wBattleMode] - jr z, .asm_13113 + jr z, .swap_moves ld hl, BattleMonMoves ld bc, $20 ld a, [CurPartyMon] call AddNTimes push hl - call Function1313a + call .copy_move pop hl ld bc, 6 add hl, bc - call Function1313a + call .copy_move -.asm_13113 +.swap_moves ld de, SFX_SWITCH_POKEMON call PlaySFX call WaitSFX @@ -14160,10 +14162,10 @@ Function12fd5: ; 12fd5 hlcoord 10, 10 lb bc, 1, 9 call ClearBox - jp .asm_12fe8 + jp .loop ; 1313a -Function1313a: ; 1313a +.copy_move: ; 1313a push hl ld a, [MenuSelection2] dec a @@ -14173,7 +14175,7 @@ Function1313a: ; 1313a ld d, h ld e, l pop hl - ld a, [wd0e3] + ld a, [wMoveSwapBuffer] dec a ld c, a ld b, $0 @@ -14186,9 +14188,9 @@ Function1313a: ; 1313a ret ; 13154 -Function13154: ; 13154 +.exit: ; 13154 xor a - ld [wd0e3], a + ld [wMoveSwapBuffer], a ld hl, wcfa5 res 6, [hl] call ClearSprites @@ -14203,7 +14205,7 @@ String_1316b: ; 1316b db "Where?@" ; 13172 -Function13172: ; 13172 +SetUpMoveScreenBG: ; 13172 call WhiteBGMap call ClearTileMap call ClearSprites @@ -14221,12 +14223,12 @@ Function13172: ; 13172 ld e, $2 callba Function8e83f hlcoord 0, 1 - ld b, $9 - ld c, $12 + ld b, 9 + ld c, 18 call TextBox hlcoord 0, 11 - ld b, $5 - ld c, $12 + ld b, 5 + ld c, 18 call TextBox hlcoord 2, 0 lb bc, 2, 3 @@ -14254,7 +14256,7 @@ Function13172: ; 13172 Function131ef: ; 131ef xor a ld [hBGMapMode], a - ld [wd0e3], a + ld [wMoveSwapBuffer], a ld [MonType], a predef CopyPkmnToTempMon ld hl, TempMonMoves @@ -14278,7 +14280,7 @@ Function131ef: ; 131ef jp TextBox ; 13235 -Function13235: ; 13235 +PrepareToPlaceMoveData: ; 13235 ld hl, PartyMon1Moves ld bc, PARTYMON_STRUCT_LENGTH ld a, [CurPartyMon] @@ -14289,13 +14291,13 @@ Function13235: ; 13235 ld b, $0 add hl, bc ld a, [hl] - ld [CurSpecies], a + ld [CurMove], a hlcoord 1, 12 lb bc, 5, 18 jp ClearBox ; 13256 -Function13256: ; 13256 +PlaceMoveData: ; 13256 xor a ld [hBGMapMode], a hlcoord 0, 10 @@ -14307,11 +14309,11 @@ Function13256: ; 13256 hlcoord 12, 12 ld de, String_132ca call PlaceString - ld a, [CurSpecies] + ld a, [CurMove] ld b, a hlcoord 2, 12 predef PrintMoveType - ld a, [CurSpecies] + ld a, [CurMove] dec a ld hl, Moves + MOVE_POWER ld bc, MOVE_LENGTH @@ -14319,19 +14321,19 @@ Function13256: ; 13256 ld a, BANK(Moves) call GetFarByte hlcoord 16, 12 - cp $2 - jr c, .asm_132a7 + cp 2 + jr c, .no_power ld [wd265], a ld de, wd265 lb bc, 1, 3 call PrintNum - jr .asm_132ad + jr .description -.asm_132a7 +.no_power ld de, String_132cf call PlaceString -.asm_132ad +.description hlcoord 1, 14 predef PrintMoveDesc ld a, $1 @@ -14367,24 +14369,24 @@ Function132da: ; 132da ld d, 0 ld hl, PartyCount add hl, de -.asm_132e7 +.loop ld a, [hl] and a - jr z, .asm_132f3 + jr z, .prev cp EGG - jr z, .asm_132f3 + jr z, .prev cp NUM_POKEMON + 1 - jr c, .asm_132f8 + jr c, .legal -.asm_132f3 +.prev dec hl dec c - jr nz, .asm_132e7 + jr nz, .loop ret -.asm_132f8 +.legal hlcoord 16, 0 - ld [hl], $71 + ld [hl], "◀" ret ; 132fe @@ -14399,22 +14401,22 @@ Function132fe: ; 132fe ld d, 0 ld hl, PartySpecies add hl, de -.asm_1330f +.loop ld a, [hl] - cp $ff + cp -1 ret z and a - jr z, .asm_1331e + jr z, .next cp EGG - jr z, .asm_1331e + jr z, .next cp NUM_POKEMON + 1 - jr c, .asm_13321 + jr c, .legal -.asm_1331e +.next inc hl - jr .asm_1330f + jr .loop -.asm_13321 +.legal hlcoord 18, 0 ld [hl], "▶" ret @@ -19205,62 +19207,63 @@ Function16dac: ; 16dac ret ; 16dc7 -Function16dc7: ; 16dc7 - ld hl, UnknownText_0x16e04 +PhotoStudio: ; 16dc7 + ld hl, .Text_AskWhichMon call PrintText callba SelectMonFromParty - jr c, .asm_16df8 + jr c, .cancel ld a, [CurPartySpecies] cp EGG - jr z, .asm_16dfd - ld hl, UnknownText_0x16e09 + jr z, .egg + + ld hl, .Text_HoldStill call PrintText call DisableSpriteUpdates callba Function8461a call Function2b74 ld a, [$ffac] and a - jr nz, .asm_16df8 - ld hl, UnknownText_0x16e0e - jr .asm_16e00 + jr nz, .cancel + ld hl, .Text_Presto + jr .print_text -.asm_16df8 - ld hl, UnknownText_0x16e13 - jr .asm_16e00 +.cancel + ld hl, .Text_NoPicture + jr .print_text -.asm_16dfd - ld hl, UnknownText_0x16e18 +.egg + ld hl, .Text_Egg -.asm_16e00 +.print_text call PrintText ret ; 16e04 -UnknownText_0x16e04: ; 0x16e04 +.Text_AskWhichMon: ; 0x16e04 ; Which #MON should I photo- graph? text_jump UnknownText_0x1be024 db "@" ; 0x16e09 -UnknownText_0x16e09: ; 0x16e09 +.Text_HoldStill: ; 0x16e09 ; All righty. Hold still for a bit. text_jump UnknownText_0x1be047 db "@" ; 0x16e0e -UnknownText_0x16e0e: ; 0x16e0e +.Text_Presto: ; 0x16e0e ; Presto! All done. Come again, OK? text_jump UnknownText_0x1be06a db "@" ; 0x16e13 -UnknownText_0x16e13: ; 0x16e13 +.Text_NoPicture: ; 0x16e13 ; Oh, no picture? Come again, OK? text_jump UnknownText_0x1c0000 db "@" ; 0x16e18 -UnknownText_0x16e18: ; 0x16e18 +.Text_Egg: ; 0x16e18 ; An EGG? My talent is worth more… text_jump UnknownText_0x1c0021 db "@" @@ -23615,11 +23618,11 @@ OakPCText4: ; 0x2674c db "@" -Function26751: ; 26751 (9:6751) - ld a, $2 - ld [wdc0f], a - ld a, $10 - ld [wdc12], a +InitDecorations: ; 26751 (9:6751) + ld a, DECO_FEATHERY_BED + ld [Bed], a + ld a, DECO_TOWN_MAP + ld [Poster], a ret _KrisDecorationMenu: ; 0x2675c @@ -26001,9 +26004,9 @@ Function28595: ; 28595 ld de, wc9f4 ld a, $20 call Function28682 - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank - ld hl, s0_a600 + ld hl, sPartyScratch1 ld b, PARTY_LENGTH .loop2 push bc @@ -26014,7 +26017,7 @@ Function28595: ; 28595 pop bc dec b jr nz, .loop2 - ld hl, s0_a600 + ld hl, sPartyScratch1 ld b, PARTY_LENGTH .loop3 push bc @@ -26026,7 +26029,7 @@ Function28595: ; 28595 dec b jr nz, .loop3 ld b, PARTY_LENGTH - ld de, s0_a600 + ld de, sPartyScratch1 ld hl, wc9f9 .loop4 push bc @@ -26911,11 +26914,11 @@ Function28b87: ; 28b87 jp Function28ea3 .asm_28c7b - ld hl, s0_a600 + ld hl, sPartyScratch1 ld a, [DefaultFlypoint] ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank ld d, h ld e, l @@ -26935,7 +26938,7 @@ Function28b87: ; 28b87 jr .asm_28c96 .asm_28ca6 - ld hl, s0_a600 + ld hl, sPartyScratch1 ld a, [PartyCount] dec a ld bc, (SCRATCHMON_STRUCT_LENGTH) @@ -27128,7 +27131,7 @@ Function28b87: ; 28b87 .asm_28e63 callba Function14a58 callba MobileFn_1060af - callba Function106187 + callba BackupMobileEventIndex ld c, 40 call DelayFrames hlcoord 0, 12 @@ -27306,10 +27309,10 @@ Function28fa1: ; 28fa1 ld [hl], e inc hl ld [hl], d - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a ld hl, VramState ld a, [hl] push af @@ -27332,7 +27335,7 @@ Function28fa1: ; 28fa1 pop af ld [VramState], a pop af - ld [$ffde], a + ld [hMapAnims], a ret ; 28fdb @@ -32087,7 +32090,7 @@ ShowLinkBattleParticipants: ; 2ee18 FindFirstAliveMon: ; 2ee2f xor a - ld [$ffde], a + ld [hMapAnims], a call DelayFrame ld b, 6 ld hl, PartyMon1HP @@ -32116,7 +32119,7 @@ FindFirstAliveMon: ; 2ee2f ld [hBGMapMode], a ld [hWY], a ld [rWY], a - ld [$ffde], a + ld [hMapAnims], a ret ; 2ee6c @@ -34130,7 +34133,7 @@ Function4456e: ; 4456e ld e, l ld a, [CurPartyMon] ld bc, (SCRATCHMON_STRUCT_LENGTH) - ld hl, s0_a600 + ld hl, sPartyScratch1 call AddNTimes push hl ld a, BANK(s0_a834) @@ -34209,7 +34212,7 @@ Function44607: ; 44607 push hl ld a, [CurPartyMon] ld bc, (SCRATCHMON_STRUCT_LENGTH) - ld hl, s0_a600 + ld hl, sPartyScratch1 call AddNTimes ld d, h ld e, l @@ -34253,10 +34256,10 @@ Function44654:: ; 44654 callba ItemIsMail ld a, $3 jr nc, .asm_446c6 - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank ld a, [CurPartyMon] - ld hl, s0_a600 + ld hl, sPartyScratch1 ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes ld d, h @@ -34318,14 +34321,14 @@ GivePokeItem:: ; 446cc pop af push bc push af - ld hl, s0_a600 + ld hl, sPartyScratch1 ld bc, $2f call AddNTimes ld d, h ld e, l ld hl, wd002 ld bc, $21 - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank call CopyBytes pop af @@ -34355,11 +34358,11 @@ GivePokeItem:: ; 446cc ; 44725 -Function44725: ; 44725 - ld a, BANK(s0_a600) +BackupScratchmons: ; 44725 + ld a, BANK(sPartyScratch1) call GetSRAMBank - ld hl, s0_a600 - ld de, s0_a71a + ld hl, sPartyScratch1 + ld de, sPartyScratch2 ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) call CopyBytes ld hl, s0_a834 @@ -34369,11 +34372,11 @@ Function44725: ; 44725 jp CloseSRAM ; 44745 -Function44745: ; 44745 (11:4745) - ld a, BANK(s0_a600) +RestoreScratchmons: ; 44745 (11:4745) + ld a, BANK(sPartyScratch1) call GetSRAMBank - ld hl, s0_a71a - ld de, s0_a600 + ld hl, sPartyScratch2 + ld de, sPartyScratch1 ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) call CopyBytes ld hl, s0_aa0b @@ -34382,11 +34385,11 @@ Function44745: ; 44745 (11:4745) call CopyBytes jp CloseSRAM -Function44765: ; 44765 (11:4765) - ld a, BANK(s0_a600) +DeleteScratchmons: ; 44765 (11:4765) + ld a, BANK(sPartyScratch1) call GetSRAMBank xor a - ld hl, s0_a600 + ld hl, sPartyScratch1 ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) call ByteFill xor a @@ -34468,16 +34471,16 @@ InitMail: ; 0x447b9 Function447da: ; 0x447da dec a - ld hl, s0_a835 + $21 - ld bc, $2f + ld hl, s0_a835 + (MON_HP) - 1 + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld a, BANK(s0_a834) call GetSRAMBank ld de, StringBuffer2 push de - ld bc, $a + ld bc, NAME_LENGTH - 1 call CopyBytes - ld a, $50 + ld a, "@" ld [de], a call CloseSRAM pop de @@ -38093,7 +38096,7 @@ Function49e91: ; 49e91 Function49ed0: ; 49ed0 xor a - ld [$ffde], a + ld [hMapAnims], a call ClearTileMap call LoadFontsExtra call LoadStandardFont @@ -40119,7 +40122,7 @@ Function4ad56: ; 4ad56 ; 4ad60 Function4ad60: ; 4ad60 - callba Function12fba + callba ManagePokemonMoves ret ; 4ad67 @@ -40458,10 +40461,10 @@ Function4cf45: ; 4cf45 (13:4f45) push af xor a ld [hBGMapMode], a ; $ff00+$d4 - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a .WaitLY ld a, [rLY] ; $ff00+$44 cp $60 @@ -40483,7 +40486,7 @@ Function4cf45: ; 4cf45 (13:4f45) ei pop af - ld [$ffde], a + ld [hMapAnims], a pop af ld [hBGMapMode], a ; $ff00+$d4 ret @@ -40495,7 +40498,7 @@ Function4cf80: ; 4cf80 (13:4f80) ld h, a ld l, 0 ld a, SCREEN_HEIGHT - ld [$ffd3], a + ld [hTilesPerCycle], a ld b, 1 << 1 ld c, rSTAT % $100 @@ -40514,9 +40517,9 @@ endr ld de, $20 - SCREEN_WIDTH add hl, de - ld a, [$ffd3] + ld a, [hTilesPerCycle] dec a - ld [$ffd3], a + ld [hTilesPerCycle], a jr nz, .loop ld a, [hSPBuffer] ; $ff00+$d9 @@ -40557,38 +40560,38 @@ Function4d15b:: ; 4d15b ld hl, wc608 ld a, [wd196] and a - jr z, .asm_4d168 + jr z, .skip ld bc, $30 add hl, bc -.asm_4d168 +.skip ld a, [wd197] and a - jr z, .asm_4d170 + jr z, .next_dw rept 2 inc hl endr -.asm_4d170 +.next_dw decoord 0, 0 ld b, SCREEN_HEIGHT -.asm_4d175 +.loop ld c, SCREEN_WIDTH -.asm_4d177 +.loop2 ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_4d177 + jr nz, .loop2 ld a, l - add $4 + add 4 ld l, a - jr nc, .asm_4d184 + jr nc, .carry inc h -.asm_4d184 +.carry dec b - jr nz, .asm_4d175 + jr nz, .loop ret ; 4d188 @@ -40600,15 +40603,15 @@ Function4d188: ; 4d188 cp $0 jp z, WaitBGMap -; What follows is a modified version of Function3246. +; What follows is a modified version of Function3246 (LoadEDTile). ld a, [hBGMapMode] push af xor a ld [hBGMapMode], a - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a .wait ld a, [rLY] cp $8f @@ -40630,7 +40633,7 @@ Function4d188: ; 4d188 ei pop af - ld [$ffde], a + ld [hMapAnims], a pop af ld [hBGMapMode], a ret @@ -40643,7 +40646,7 @@ Function4d1cb: ; 4d1cb ld h, a ld l, 0 ld a, SCREEN_HEIGHT - ld [$ffd3], a + ld [hTilesPerCycle], a ld b, 1 << 1 ; not in v/hblank ld c, rSTAT % $100 @@ -40662,9 +40665,9 @@ endr ld de, $20 - SCREEN_WIDTH add hl, de - ld a, [$ffd3] + ld a, [hTilesPerCycle] dec a - ld [$ffd3], a + ld [hTilesPerCycle], a jr nz, .loop ld a, [hSPBuffer] @@ -41900,10 +41903,10 @@ Function4dc8f: ; 4dc8f jr StatsScreenInit_gotaddress StatsScreenInit_gotaddress: ; 4dc94 - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a ; disable overworld tile animations + ld [hMapAnims], a ; disable overworld tile animations ld a, [wc2c6] ; whether sprite is to be mirrorred push af ld a, [wJumptableIndex] @@ -41931,13 +41934,14 @@ StatsScreenInit_gotaddress: ; 4dc94 pop af ld [wc2c6], a pop af - ld [$ffde], a + ld [hMapAnims], a ret ; 0x4dcd2 StatsScreenMain: ; 0x4dcd2 xor a ld [wJumptableIndex], a + ; stupid interns ld [wcf64], a ld a, [wcf64] and $fc @@ -41958,12 +41962,13 @@ StatsScreenMain: ; 0x4dcd2 StatsScreenBattle: ; 4dcf7 xor a ld [wJumptableIndex], a + ; stupid interns ld [wcf64], a ld a, [wcf64] and $fc or $1 ld [wcf64], a -.asm_4dd08 +.loop callba Function100dd2 ld a, [wJumptableIndex] and $7f @@ -41971,22 +41976,22 @@ StatsScreenBattle: ; 4dcf7 rst JumpTable call Function4dd3a callba Function100dfd - jr c, .asm_4dd29 + jr c, .exit ld a, [wJumptableIndex] bit 7, a - jr z, .asm_4dd08 + jr z, .loop -.asm_4dd29 +.exit ret ; 4dd2a StatsScreenPointerTable: ; 4dd2a - dw Function4dd72 ; regular pokémon + dw MonStatsInit ; regular pokémon dw EggStatsInit ; egg - dw Function4dde6 + dw StatsScreenWaitCry dw Function4ddac dw Function4ddc6 - dw Function4dde6 + dw StatsScreenWaitCry dw Function4ddd6 dw Function4dd6c ; 4dd3a @@ -42023,7 +42028,7 @@ Function4dd6c: ; 4dd6c (13:5d6c) set 7, [hl] ret -Function4dd72: ; 4dd72 (13:5d72) +MonStatsInit: ; 4dd72 (13:5d72) ld hl, wcf64 res 6, [hl] call WhiteBGMap @@ -42084,11 +42089,12 @@ Function4ddd6: ; 4ddd6 (13:5dd6) ld h, $0 call Function4dd62 ret + .asm_4dde1 and $f3 jp Function4de54 -Function4dde6: ; 4dde6 (13:5de6) +StatsScreenWaitCry: ; 4dde6 (13:5de6) call IsSFXPlaying ret nc ld a, [wJumptableIndex] @@ -42098,14 +42104,14 @@ Function4dde6: ; 4dde6 (13:5de6) Function4ddf2: ; 4ddf2 (13:5df2) ld a, [MonType] - cp $3 + cp BREEDMON jr nz, .asm_4de10 ld a, [wd018] ld [CurSpecies], a call GetBaseData ld hl, wd018 ld de, TempMon - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes jr .asm_4de2a .asm_4de10 @@ -42114,7 +42120,7 @@ Function4ddf2: ; 4ddf2 (13:5df2) cp EGG jr z, .asm_4de2a ld a, [MonType] - cp $2 + cp BOXMON jr c, .asm_4de2a callba Function50890 .asm_4de2a @@ -42124,8 +42130,8 @@ Function4ddf2: ; 4ddf2 (13:5df2) Function4de2c: ; 4de2c (13:5e2c) call GetJoypad ld a, [MonType] - cp $3 - jr nz, .asm_4de4e + cp BREEDMON + jr nz, .notbreedmon push hl push de push bc @@ -42135,15 +42141,17 @@ Function4de2c: ; 4de2c (13:5e2c) pop hl ld a, [wcf73] and $c0 - jr nz, .asm_4de52 + jr nz, .set_carry ld a, [wcf73] - jr .asm_4de50 -.asm_4de4e + jr .clear_flags + +.notbreedmon ld a, [hJoyPressed] ; $ff00+$a7 -.asm_4de50 +.clear_flags and a ret -.asm_4de52 + +.set_carry scf ret @@ -42168,7 +42176,7 @@ Function4de54: ; 4de54 (13:5e54) jr .asm_4dece .asm_4de77 ld a, [MonType] - cp $2 + cp BOXMON jr nc, .asm_4dece and a ld a, [PartyCount] @@ -46233,7 +46241,7 @@ ENDM growth_rate 5, 4, 0, 0, 0 ; Slow ; 50f12 -Function50f12: +_SwitchPartyMons: ld a, [wd0e3] dec a ld [wd1ec], a @@ -46242,16 +46250,16 @@ Function50f12: dec a ld [Buffer2], a ; wd1eb (aliases: MovementType) cp b - jr z, .asm_50f33 - call Function50f62 + jr z, .skip + call .SwapPartymonViaSRAM ld a, [wd1ec] - call Function50f34 + call .ClearSprite ld a, [Buffer2] ; wd1eb (aliases: MovementType) - call Function50f34 -.asm_50f33 + call .ClearSprite +.skip ret -Function50f34: ; 50f34 (14:4f34) +.ClearSprite: ; 50f34 (14:4f34) push af hlcoord 0, 1 ld bc, 2 * SCREEN_WIDTH @@ -46265,16 +46273,16 @@ Function50f34: ; 50f34 (14:4f34) call AddNTimes ld de, $4 ld c, $4 -.asm_50f55 +.gfx_loop ld [hl], $a0 add hl, de dec c - jr nz, .asm_50f55 + jr nz, .gfx_loop ld de, SFX_SWITCH_POKEMON call WaitPlaySFX ret -Function50f62: ; 50f62 (14:4f62) +.SwapPartymonViaSRAM: ; 50f62 (14:4f62) push hl push de push bc @@ -46285,7 +46293,7 @@ Function50f62: ; 50f62 (14:4f62) add hl, bc ld d, h ld e, l - ld a, [wd1ec] + ld a, [Buffer3] ld l, a ld h, $0 add hl, bc @@ -46297,73 +46305,73 @@ Function50f62: ; 50f62 (14:4f62) ld [de], a ld a, [Buffer2] ; wd1eb (aliases: MovementType) ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes push hl - ld de, DefaultFlypoint - ld bc, $30 + ld de, MiscBuffer2 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes - ld a, [wd1ec] + ld a, [Buffer3] ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes pop de push hl - ld bc, $30 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes pop de - ld hl, DefaultFlypoint - ld bc, $30 + ld hl, MiscBuffer2 + ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld a, [Buffer2] ; wd1eb (aliases: MovementType) ld hl, PartyMonOT call SkipNames push hl - call Function51036 - ld a, [wd1ec] + call .CopyNameToMiscBuffer2 + ld a, [Buffer3] ld hl, PartyMonOT call SkipNames pop de push hl - call Function51039 + call .CopyName pop de - ld hl, DefaultFlypoint - call Function51039 + ld hl, MiscBuffer2 + call .CopyName ld hl, PartyMonNicknames ld a, [Buffer2] ; wd1eb (aliases: MovementType) call SkipNames push hl - call Function51036 + call .CopyNameToMiscBuffer2 ld hl, PartyMonNicknames - ld a, [wd1ec] + ld a, [Buffer3] call SkipNames pop de push hl - call Function51039 + call .CopyName pop de - ld hl, DefaultFlypoint - call Function51039 - ld hl, s0_a600 + ld hl, MiscBuffer2 + call .CopyName + ld hl, sPartyScratch1 ld a, [Buffer2] ; wd1eb (aliases: MovementType) - ld bc, $2f + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes push hl - ld de, DefaultFlypoint - ld bc, $2f - ld a, BANK(s0_a600) + ld de, MiscBuffer2 + ld bc, SCRATCHMON_STRUCT_LENGTH + ld a, BANK(sPartyScratch1) call GetSRAMBank call CopyBytes - ld hl, s0_a600 - ld a, [wd1ec] - ld bc, $2f + ld hl, sPartyScratch1 + ld a, [Buffer3] + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes pop de push hl - ld bc, $2f + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop de - ld hl, DefaultFlypoint - ld bc, $2f + ld hl, MiscBuffer2 + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes call CloseSRAM pop bc @@ -46371,11 +46379,11 @@ Function50f62: ; 50f62 (14:4f62) pop hl ret -Function51036: ; 51036 (14:5036) - ld de, DefaultFlypoint +.CopyNameToMiscBuffer2: ; 51036 (14:5036) + ld de, MiscBuffer2 -Function51039: ; 51039 (14:5039) - ld bc, $b +.CopyName: ; 51039 (14:5039) + ld bc, NAME_LENGTH call CopyBytes ret @@ -49306,7 +49314,7 @@ TilesetColorTest: ld [wcf64], a ld [wcf65], a ld [wcf66], a - ld [$ffde], a + ld [hMapAnims], a call ClearSprites call Function2173 call Function3200 @@ -49868,24 +49876,26 @@ Function84143: ; 84143 (21:4143) ret nz ld a, [wca88] cp $ff - jr nz, .asm_84156 + jr nz, .printer_connected ld a, [wca89] cp $ff - jr z, .asm_84172 -.asm_84156 + jr z, .printer_error + +.printer_connected ld a, [wca88] cp $81 - jr nz, .asm_84172 + jr nz, .printer_error ld a, [wca89] cp $0 - jr nz, .asm_84172 + jr nz, .printer_error ld hl, wc2d4 set 1, [hl] ld a, $5 ld [wca8a], a call Function84059 ret -.asm_84172 + +.printer_error ld a, $ff ld [wca88], a ld [wca89], a @@ -50763,34 +50773,35 @@ Function84753: ; 84753 Function84757: ; 84757 ld a, [wca88] cp -1 - jr nz, .c_directly_below_e5 + jr nz, .printer_connected ld a, [wca89] cp -1 - jr z, .asm_8477f + jr z, .error_2 -.c_directly_below_e5 +.printer_connected ld a, [wca89] - and $e0 - ret z + and %11100000 + ret z ; no error + bit 7, a - jr nz, .asm_8477b + jr nz, .error_1 bit 6, a - jr nz, .asm_84777 - ld a, $6 - jr .asm_84781 + jr nz, .error_4 + ld a, 6 ; error 3 + jr .load_text_index -.asm_84777 - ld a, $7 - jr .asm_84781 +.error_4 + ld a, 7 ; error 4 + jr .load_text_index -.asm_8477b - ld a, $4 - jr .asm_84781 +.error_1 + ld a, 4 ; error 1 + jr .load_text_index -.asm_8477f - ld a, $5 +.error_2 + ld a, 5 ; error 2 -.asm_84781 +.load_text_index ld [wcbf8], a ret ; 84785 @@ -50808,7 +50819,7 @@ Function84785: ; 84785 pop af ld e, a ld d, 0 - ld hl, Unknown_84807 + ld hl, PrinterStatusStringPointers rept 2 add hl, de endr @@ -50819,7 +50830,7 @@ endr ld a, BANK(GBPrinterStrings) call FarString hlcoord 2, 15 - ld de, String_847f5 + ld de, String_PressBToCancel call PlaceString ld a, $1 ld [hBGMapMode], a @@ -50841,7 +50852,7 @@ Function847bd: ; 847bd pop af ld e, a ld d, 0 - ld hl, Unknown_84807 + ld hl, PrinterStatusStringPointers rept 2 add hl, de endr @@ -50852,7 +50863,7 @@ endr ld a, BANK(GBPrinterStrings) call FarString hlcoord 4, 15 - ld de, String_847f5 + ld de, String_PressBToCancel call PlaceString ld a, $1 ld [hBGMapMode], a @@ -50861,19 +50872,19 @@ endr ret ; 847f5 -String_847f5: +String_PressBToCancel: db "Press B to Cancel@" ; 84807 -Unknown_84807: ; 84807 - dw String_1dc275 - dw String_1dc276 - dw String_1dc289 - dw String_1dc29c - dw String_1dc2ad - dw String_1dc2e2 - dw String_1dc317 - dw String_1dc34c +PrinterStatusStringPointers: ; 84807 + dw String_1dc275 ; @ + dw String_1dc276 ; CHECKING LINK + dw String_1dc289 ; TRANSMITTING + dw String_1dc29c ; PRINTING + dw String_1dc2ad ; error 1 + dw String_1dc2e2 ; error 2 + dw String_1dc317 ; error 3 + dw String_1dc34c ; error 4 ; 84817 Function84817: ; 84817 (21:4817) @@ -51219,7 +51230,7 @@ RedCredits:: ; 86455 callba FadeBlackBGMap xor a ld [VramState], a - ld [$ffde], a + ld [hMapAnims], a callba Function4e8c2 ld c, $8 call DelayFrames @@ -51242,7 +51253,7 @@ Function8648e: ; 8648e callba FadeBlackBGMap xor a ld [VramState], a - ld [$ffde], a + ld [hMapAnims], a callba Function4e881 ld c, 100 jp DelayFrames @@ -63019,7 +63030,7 @@ INCLUDE "engine/radio.asm" ReadPartyMonMail: ; b9229 ld a, [CurPartyMon] - ld hl, s0_a600 + ld hl, sPartyScratch1 ld bc, (SCRATCHMON_STRUCT_LENGTH) call AddNTimes ld d, h @@ -63033,7 +63044,7 @@ ReadAnyMail: ; b9237 call LoadFontsExtra pop de push de - ld a, BANK(s0_a600) + ld a, BANK(sPartyScratch1) call GetSRAMBank callba Function1de5c8 call CloseSRAM @@ -67675,7 +67686,7 @@ Functione2391: ; e2391 (38:6391) ld a, $1 ld [hInMenu], a xor a - ld [$ffde], a + ld [hMapAnims], a call Functione2963 xor a ld [wcb2e], a @@ -67937,7 +67948,7 @@ Functione2583: ; e2583 (38:6583) ld a, $1 ld [hInMenu], a xor a - ld [$ffde], a + ld [hMapAnims], a call Functione2963 ld a, $f ld [wcb2e], a @@ -68184,7 +68195,7 @@ Functione2759: ; e2759 ld a, $1 ld [hInMenu], a xor a - ld [$ffde], a + ld [hMapAnims], a call Functione2963 ld a, [wCurBox] and $f @@ -71333,7 +71344,7 @@ Functione4901: ; e4901 ld a, $1 ld [hInMenu], a xor a - ld [$ffde], a + ld [hMapAnims], a ld [wJumptableIndex], a ret ; e490f @@ -74003,10 +74014,10 @@ PlaySlowCry: ; fb841 ; fb877 Functionfb877: ; fb877 - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a call LowVolume call WhiteBGMap call ClearTileMap @@ -74034,7 +74045,7 @@ Functionfb877: ; fb877 ld [hSCX], a call Functionfb8c8 pop af - ld [$ffde], a + ld [hMapAnims], a ret ; fb8c8 @@ -75604,11 +75615,11 @@ Function10414e: ; 10414e Function104177: ; 104177 ld a, [hBGMapMode] push af - ld a, [$ffde] + ld a, [hMapAnims] push af xor a ld [hBGMapMode], a - ld [$ffde], a + ld [hMapAnims], a ld a, [rSVBK] push af ld a, 6 @@ -75621,7 +75632,7 @@ Function104177: ; 104177 pop af ld [rSVBK], a pop af - ld [$ffde], a + ld [hMapAnims], a pop af ld [hBGMapMode], a ret @@ -76300,7 +76311,7 @@ LoadGraphics: ; 1047cf call LoadTilesetHeader call Function2821 xor a - ld [$ffde], a + ld [hMapAnims], a xor a ld [hTileAnimFrame], a ; $ff00+$df callba RefreshSprites @@ -76494,9 +76505,9 @@ DoMysteryGift: ; 1048ba (41:48ba) cp $4 jr z, .asm_104963 call Function104a71 - callba Function10619d + callba RestoreMobileEventIndex callba MobileFn_1060a9 - callba Function106187 + callba BackupMobileEventIndex .asm_104963 ld a, [wc90f] and a @@ -76675,12 +76686,12 @@ Function104a95: ; 104a95 (41:4a95) .asm_104a9f call Function104d96 call Function104ddd - ld a, [$ffbc] + ld a, [hPrintNum10] cp $10 jp z, Function104bd0 cp $6c jr nz, .asm_104a9f - ld a, [$ffbb] + ld a, [hPrintNum9] cp $2 jr z, Function104b22 ld hl, $ffb3 @@ -76727,7 +76738,7 @@ Function104a95: ; 104a95 (41:4a95) bit 1, a jr z, .asm_104ad5 ld a, $10 - ld [$ffbc], a + ld [hPrintNum10], a jp Function104bd0 Function104b04: ; 104b04 (41:4b04) @@ -76764,7 +76775,7 @@ Function104b40: ; 104b40 (41:4b40) Function104b49: ; 104b49 (41:4b49) call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz ld a, [$ffb3] @@ -76779,7 +76790,7 @@ Function104b49: ; 104b49 (41:4b49) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz call Function104d43 @@ -76790,7 +76801,7 @@ Function104b49: ; 104b49 (41:4b49) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret @@ -76802,7 +76813,7 @@ Function104b88: ; 104b88 (41:4b88) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz call Function104d43 @@ -76812,7 +76823,7 @@ Function104b88: ; 104b88 (41:4b88) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz ld a, [$ffb3] @@ -76826,13 +76837,13 @@ Function104b88: ; 104b88 (41:4b88) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104bd0: ; 104bd0 (41:4bd0) nop - ld a, [$ffbc] + ld a, [hPrintNum10] cp $10 jr z, .asm_104c18 cp $6c @@ -76851,7 +76862,7 @@ Function104bd0: ; 104bd0 (41:4bd0) call Function1050fb ld a, $26 ld [wca02], a - ld a, [$ffbb] + ld a, [hPrintNum9] cp $2 jr z, .asm_104c10 call Function104d43 @@ -76862,7 +76873,7 @@ Function104bd0: ; 104bd0 (41:4bd0) jr nz, Function104bd0 jp Function104b22 .asm_104c18 - ld a, [$ffbc] + ld a, [hPrintNum10] push af call Function104da0 xor a @@ -76882,12 +76893,12 @@ Function104c2d: ; 104c2d (41:4c2d) .asm_104c37 call Function104d96 call Function104ddd - ld a, [$ffbc] + ld a, [hPrintNum10] cp $10 jp z, Function104d1c cp $6c jr nz, .asm_104c37 - ld a, [$ffbb] + ld a, [hPrintNum9] cp $2 jr z, .asm_104c6c call Function104c8a @@ -76918,7 +76929,7 @@ Function104c8a: ; 104c8a (41:4c8a) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz ld a, [$ffb3] @@ -76933,7 +76944,7 @@ Function104c8a: ; 104c8a (41:4c8a) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz call Function104d43 @@ -76944,7 +76955,7 @@ Function104c8a: ; 104c8a (41:4c8a) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret @@ -76956,7 +76967,7 @@ Function104cd2: ; 104cd2 (41:4cd2) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz call Function104d43 @@ -76966,7 +76977,7 @@ Function104cd2: ; 104cd2 (41:4cd2) call Function104d56 ret nz call Function105033 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret nz ld a, [$ffb3] @@ -76981,13 +76992,13 @@ Function104cd2: ; 104cd2 (41:4cd2) call Function104d4e ret nz call Function10502e - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d1c: ; 104d1c (41:4d1c) nop - ld a, [$ffbc] + ld a, [hPrintNum10] push af call Function104da0 xor a @@ -77002,33 +77013,33 @@ Function104d1c: ; 104d1c (41:4d1c) Function104d32: ; 104d32 (41:4d32) ld a, $80 - ld [$ffbc], a + ld [hPrintNum10], a and a ret Function104d38: ; 104d38 (41:4d38) call Function104d96 call Function104e46 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d43: ; 104d43 (41:4d43) call Function104d96 call Function104dfe - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d4e: ; 104d4e (41:4d4e) call Function104e93 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret Function104d56: ; 104d56 (41:4d56) call Function104f57 - ld a, [$ffbc] + ld a, [hPrintNum10] cp $6c ret @@ -77075,7 +77086,7 @@ Function104d96: ; 104d96 (41:4d96) ld a, $c0 call Function104e8c ld a, $1 - ld [$ffbb], a + ld [hPrintNum9], a ret Function104da0: ; 104da0 (41:4da0) @@ -77135,7 +77146,7 @@ Function104ddd: ; 104ddd (41:4ddd) ld d, $0 ld e, d ld a, $1 - ld [$ffbb], a + ld [hPrintNum9], a .asm_104de4 call Function105038 ld b, $2 @@ -77144,7 +77155,7 @@ Function104ddd: ; 104ddd (41:4ddd) bit 1, a jr z, .asm_104df6 ld a, $10 - ld [$ffbc], a + ld [hPrintNum10], a ret .asm_104df6 bit 0, a @@ -77167,7 +77178,7 @@ Function104dfe: ; 104dfe (41:4dfe) call Function104da9 jp z, Function104f42 ld a, $6c - ld [$ffbc], a + ld [hPrintNum10], a ld d, $3d call Function104dd1 ld d, $5 @@ -77193,7 +77204,7 @@ asm_104e3a: ; 104e3a (41:4e3a) Function104e46: ; 104e46 (41:4e46) ld a, $2 - ld [$ffbb], a + ld [hPrintNum9], a ld c, $56 ld d, $0 ld e, d @@ -77220,13 +77231,13 @@ Function104e46: ; 104e46 (41:4e46) ld d, $3d call Function104dd1 ld a, $6c - ld [$ffbc], a + ld [hPrintNum10], a ret Function104e8c: ; 104e8c (41:4e8c) ld [rRP], a ; $ff00+$56 ld a, $ff - ld [$ffbc], a + ld [hPrintNum10], a ret Function104e93: ; 104e93 (41:4e93) @@ -77256,7 +77267,7 @@ Function104e93: ; 104e93 (41:4e93) ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) ld b, $2 call Function104ed6 - ld hl, $ffbc + ld hl, hPrintNum10 ld b, $1 call Function104faf ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) @@ -77334,21 +77345,21 @@ Function104ed6: ; 104ed6 (41:4ed6) ret Function104f42: ; 104f42 (41:4f42) - ld a, [$ffbc] + ld a, [hPrintNum10] or $2 - ld [$ffbc], a + ld [hPrintNum10], a ret Function104f49: ; 104f49 (41:4f49) - ld a, [$ffbc] + ld a, [hPrintNum10] or $1 - ld [$ffbc], a + ld [hPrintNum10], a ret Function104f50: ; 104f50 (41:4f50) - ld a, [$ffbc] + ld a, [hPrintNum10] or $80 - ld [$ffbc], a + ld [hPrintNum10], a ret Function104f57: ; 104f57 (41:4f57) @@ -77392,7 +77403,7 @@ Function104f57: ; 104f57 (41:4f57) push de ld d, $3d call Function104dd1 - ld hl, $ffbc + ld hl, hPrintNum10 ld b, $1 call Function104ed6 pop de @@ -78926,7 +78937,7 @@ MobileFn_106155: mobile ; 106155 Function106162: ; 106162 push de call Function10616e - ld hl, $a081 + ld hl, $a081 ; s5_a081 ld [hl], d inc hl ld [hl], e @@ -78936,7 +78947,7 @@ Function106162: ; 106162 Function10616e: ; 10616e push bc - ld hl, $a001 + ld hl, $a001 ; s5_a001 ld bc, $80 xor a ld de, 0 @@ -78958,36 +78969,36 @@ Function10616e: ; 10616e ; 106187 -Function106187: ; 106187 - ld a, BANK(s1_be3c) +BackupMobileEventIndex: ; 106187 + ld a, BANK(sMobileEventIndex) call GetSRAMBank - ld a, [s1_be3c] + ld a, [sMobileEventIndex] push af - ld a, BANK(s1_be44) + ld a, BANK(sMobileEventIndexBackup) call GetSRAMBank pop af - ld [s1_be44], a + ld [sMobileEventIndexBackup], a call CloseSRAM ret ; 10619d -Function10619d: ; 10619d (41:619d) - ld a, BANK(s1_be44) +RestoreMobileEventIndex: ; 10619d (41:619d) + ld a, BANK(sMobileEventIndexBackup) call GetSRAMBank - ld a, [s1_be44] + ld a, [sMobileEventIndexBackup] push af - ld a, BANK(s1_be3c) + ld a, BANK(sMobileEventIndex) call GetSRAMBank pop af - ld [s1_be3c], a + ld [sMobileEventIndex], a call CloseSRAM ret ; 1061b3 (41:61b3) Function1061b3: ; 1061b3 call Function10616e - ld hl, $a081 + ld hl, $a081 ; s5_a081 ld a, d cp [hl] ret nz @@ -78997,16 +79008,16 @@ Function1061b3: ; 1061b3 ret ; 1061c0 -Function1061c0: ; 1061c0 (41:61c0) - ld a, BANK(s1_be3c) +DeleteMobileEventIndex: ; 1061c0 (41:61c0) + ld a, BANK(sMobileEventIndex) call GetSRAMBank xor a - ld [s1_be3c], a + ld [sMobileEventIndex], a call CloseSRAM ret ; 1061cd (41:61cd) -Function1061cd: ; 1061cd +Function1061cd: ; unreferenced ld hl, $a001 ld bc, $82 xor a @@ -79024,113 +79035,122 @@ Function1061cd: ; 1061cd ; 1061ef -Function1061ef:: ; 1061ef +_MobilePrintNum:: ; 1061ef +; Supports signed 31-bit integers (up to 10 digits) +; b: Bits 0-4 = # bytes +; Bit 7 = set if negative +; c: Number of digits +; de: highest byte of number to convert +; hl: where to print the converted string push bc xor a - ld [hProduct], a - ld [hMultiplicand], a - ld [$ffb5], a + ld [hPrintNum1], a + ld [hPrintNum2], a + ld [hPrintNum3], a ld a, b and $f cp $1 - jr z, .asm_106212 + jr z, .one_byte cp $2 - jr z, .asm_10620e + jr z, .two_bytes cp $3 - jr z, .asm_10620a + jr z, .three_bytes +; four bytes ld a, [de] - ld [hProduct], a + ld [hPrintNum1], a inc de -.asm_10620a +.three_bytes ld a, [de] - ld [hMultiplicand], a + ld [hPrintNum2], a inc de -.asm_10620e +.two_bytes ld a, [de] - ld [$ffb5], a + ld [hPrintNum3], a inc de -.asm_106212 +.one_byte ld a, [de] - ld [$ffb6], a + ld [hPrintNum4], a inc de + push de xor a - ld [$ffbb], a + ld [hPrintNum9], a ld a, b - ld [$ffbc], a + ld [hPrintNum10], a ld a, c cp 2 - jr z, .asm_10626a + jr z, .two_digits ld de, ._2 cp 3 - jr z, .asm_106256 + jr z, .three_to_nine_digits ld de, ._3 cp 4 - jr z, .asm_106256 + jr z, .three_to_nine_digits ld de, ._4 cp 5 - jr z, .asm_106256 + jr z, .three_to_nine_digits ld de, ._5 cp 6 - jr z, .asm_106256 + jr z, .three_to_nine_digits ld de, ._6 cp 7 - jr z, .asm_106256 + jr z, .three_to_nine_digits ld de, ._7 cp 8 - jr z, .asm_106256 + jr z, .three_to_nine_digits ld de, ._8 cp 9 - jr z, .asm_106256 + jr z, .three_to_nine_digits ld de, ._9 -.asm_106256 +.three_to_nine_digits rept 3 inc de endr rept 2 dec a endr -.asm_10625b + +.digit_loop push af - call Function1062b2 - call Function1062ff + call .Function1062b2 + call .Function1062ff rept 4 inc de endr pop af dec a - jr nz, .asm_10625b + jr nz, .digit_loop -.asm_10626a +.two_digits ld c, 0 - ld a, [$ffb6] -.asm_10626e + ld a, [hPrintNum4] +.mod_ten_loop cp 10 - jr c, .asm_106277 + jr c, .simple_divide_done sub 10 inc c - jr .asm_10626e + jr .mod_ten_loop -.asm_106277 +.simple_divide_done ld b, a - ld a, [$ffbb] + ld a, [hPrintNum9] or c - ld [$ffbb], a - jr nz, .asm_106284 - call Function1062f7 - jr .asm_106288 + ld [hPrintNum9], a + jr nz, .create_digit + call .LoadMinusTenIfNegative + jr .done -.asm_106284 +.create_digit ld a, "0" add c ld [hl], a -.asm_106288 - call Function1062ff +.done + call .Function1062ff ld a, "0" add b ld [hli], a @@ -79149,73 +79169,73 @@ endr ._2 dd 100 ; 1062b2 -Function1062b2: ; 1062b2 +.Function1062b2: ; 1062b2 ld c, $0 .asm_1062b4 ld a, [de] dec de ld b, a - ld a, [$ffb6] + ld a, [hPrintNum4] sub b - ld [$ffba], a + ld [hPrintNum8], a ld a, [de] dec de ld b, a - ld a, [$ffb5] + ld a, [hPrintNum3] sbc b - ld [$ffb9], a + ld [hPrintNum7], a ld a, [de] dec de ld b, a - ld a, [hMultiplicand] + ld a, [hPrintNum2] sbc b - ld [hMathBuffer], a + ld [hPrintNum6], a ld a, [de] rept 3 inc de endr ld b, a - ld a, [hProduct] + ld a, [hPrintNum1] sbc b - ld [hMultiplier], a + ld [hPrintNum5], a jr c, .asm_1062eb - ld a, [hMultiplier] - ld [hProduct], a - ld a, [hMathBuffer] - ld [hMultiplicand], a - ld a, [$ffb9] - ld [$ffb5], a - ld a, [$ffba] - ld [$ffb6], a + ld a, [hPrintNum5] + ld [hPrintNum1], a + ld a, [hPrintNum6] + ld [hPrintNum2], a + ld a, [hPrintNum7] + ld [hPrintNum3], a + ld a, [hPrintNum8] + ld [hPrintNum4], a inc c jr .asm_1062b4 .asm_1062eb - ld a, [$ffbb] + ld a, [hPrintNum9] or c - jr z, Function1062f7 - ld a, $f6 + jr z, .LoadMinusTenIfNegative + ld a, -10 add c ld [hl], a - ld [$ffbb], a + ld [hPrintNum9], a ret -Function1062f7: - ld a, [$ffbc] +.LoadMinusTenIfNegative: + ld a, [hPrintNum10] bit 7, a ret z - ld [hl], $f6 + ld [hl], -10 ret ; 1062ff -Function1062ff: ; 1062ff - ld a, [$ffbc] +.Function1062ff: ; 1062ff + ld a, [hPrintNum10] bit 7, a jr nz, .asm_10630d bit 6, a jr z, .asm_10630d - ld a, [$ffbb] + ld a, [hPrintNum9] and a ret z diff --git a/maps/CianwoodCityPhotoStudio.asm b/maps/CianwoodCityPhotoStudio.asm index 2717d7e5b..33644d8fe 100644 --- a/maps/CianwoodCityPhotoStudio.asm +++ b/maps/CianwoodCityPhotoStudio.asm @@ -13,7 +13,7 @@ FishingGuruScript_0x9e0e0: iffalse UnknownScript_0x9e0f3 writetext UnknownText_0x9e142 closetext - special Function16dc7 + special PhotoStudio closetext loadmovesprites end diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 5afe9e3a9..3e1635959 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -63,7 +63,7 @@ Function100063: ; 100063 ld a, [rIE] ld [BGMapBuffer], a xor a - ld [$ffde], a + ld [hMapAnims], a ld [hLCDStatCustom], a ret ; 100082 @@ -80,7 +80,7 @@ Function100082: ; 100082 ld a, 1 << VBLANK + 1 << LCD_STAT + 1 << TIMER + 1 << SERIAL ld [rIE], a xor a - ld [$ffde], a + ld [hMapAnims], a ld [hLCDStatCustom], a ld a, $1 ld [$ffc9], a @@ -5403,7 +5403,7 @@ Function102423: ; 102423 ret nc callba Function14a58 callba MobileFn_1060af - callba Function106187 + callba BackupMobileEventIndex ld hl, wcd4b set 1, [hl] ld a, $0 diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 613c21bc3..847422b7c 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -67,10 +67,10 @@ Function10805b: ; 10805b ld [hl], e inc hl ld [hl], d - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a ld hl, VramState ld a, [hl] push af @@ -88,7 +88,7 @@ Function10805b: ; 10805b pop af ld [VramState], a pop af - ld [$ffde], a + ld [hMapAnims], a ret ; 108089 @@ -97,10 +97,10 @@ Function108089: ; 108089 ld [hl], e inc hl ld [hl], d - ld a, [$ffde] + ld a, [hMapAnims] push af xor a - ld [$ffde], a + ld [hMapAnims], a ld hl, VramState ld a, [hl] push af @@ -118,7 +118,7 @@ Function108089: ; 108089 pop af ld [VramState], a pop af - ld [$ffde], a + ld [hMapAnims], a ret ; 1080b7 diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 37d0223a2..494f848a6 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -5862,7 +5862,7 @@ Function11ac51: ; 11ac51 ld a, $1 ld [hInMenu], a xor a - ld [$ffde], a + ld [hMapAnims], a ld [wcd49], a ld [wcd4a], a ld [wcd4c], a @@ -7919,7 +7919,7 @@ Function11b98f: ; 11b98f call CopyBytes ld a, "@" ld [de], a - ld hl, s0_a600 + ld hl, sPartyScratch1 ld bc, PARTYMON_STRUCT_LENGTH - 1 ld a, [wcd2a] .loop5 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 6a0de4e47..b9b0553ce 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -993,7 +993,7 @@ endr dw Function170881 ; 0x08 dw Function17089a ; 0x09 dw Function1708b1 ; 0x0a - dw Function1708b9 ; 0x0b + dw CheckMobileEventIndex ; 0x0b dw Function1708c8 ; 0x0c dw Function1708f0 ; 0x0d dw Function17093c ; 0x0e @@ -1302,10 +1302,10 @@ Function1708b1: ; 1708b1 (5c:48b1) call MaxVolume ret -Function1708b9: ; 1708b9 (5c:48b9) something to do with GS Ball - ld a, BANK(s1_be3c) +CheckMobileEventIndex: ; 1708b9 (5c:48b9) something to do with GS Ball + ld a, BANK(sMobileEventIndex) call GetSRAMBank - ld a, [s1_be3c] + ld a, [sMobileEventIndex] ld [ScriptVar], a call CloseSRAM ret diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index a58c6eb0d..49f7353b7 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -3123,7 +3123,7 @@ Function17e3c3: ; 17e3c3 ld a, $1 ld [rSVBK], a callba MobileFn_106155 - callba Function106187 + callba BackupMobileEventIndex pop af ld [rSVBK], a ret @@ -3855,7 +3855,7 @@ endr ld b, a ld a, [wcd57] ld c, a - call Function31a4 + call MobilePrintNum ld a, l ld [wcd52], a ld a, h @@ -4246,7 +4246,7 @@ Function17f2cb: ; 17f2cb ld b, $1 ld a, [wcd54] ld c, a - call Function31a4 + call MobilePrintNum ld a, l ld [wcd52], a ld a, h @@ -4562,7 +4562,7 @@ endr ld b, a ld a, [wcd58] ld c, a - call Function31a4 + call MobilePrintNum ld a, l ld [wcd52], a ld a, h diff --git a/sram.asm b/sram.asm index 8046fd1db..9656636af 100644 --- a/sram.asm +++ b/sram.asm @@ -9,8 +9,8 @@ sScratch:: SECTION "SRAM Bank 0", SRAM [$a600], BANK [0] -s0_a600:: ds 6 * (SCRATCHMON_STRUCT_LENGTH) -s0_a71a:: ds 6 * (SCRATCHMON_STRUCT_LENGTH) +sPartyScratch1:: ds 6 * (SCRATCHMON_STRUCT_LENGTH) +sPartyScratch2:: ds 6 * (SCRATCHMON_STRUCT_LENGTH) s0_a834:: ds 1 s0_a835:: ds 10 * (SCRATCHMON_STRUCT_LENGTH) s0_aa0b:: ds 1 @@ -87,18 +87,18 @@ sLinkBattleStats:: ; b260 sLinkBattleWins:: ds 2 sLinkBattleLosses:: ds 2 sLinkBattleDraws:: ds 2 - ds $5a + ds 90 sLinkBattleStatsEnd:: sHallOfFame:: ; b2c0 ds HOF_LENGTH * NUM_HOF_TEAMS sHallOfFameEnd:: -s1_be3c:: ds 1 +sMobileEventIndex:: ds 1 sCrystalData:: ds wCrystalDataEnd - wCrystalData -s1_be44:: ds 1 +sMobileEventIndexBackup:: ds 1 s1_be45:: ds 1 ; data of the BattleTower must be in SRAM because you can save and leave between battles diff --git a/wram.asm b/wram.asm index fe79c8095..729bf60f9 100644 --- a/wram.asm +++ b/wram.asm @@ -972,14 +972,23 @@ wca84:: ds 1 wca85:: ds 1 wca86:: ds 1 wca87:: ds 1 + +; Gameboy Printer wca88:: ds 1 -wca89:: ds 1 +wca89:: +; bit 7: set if error 1 +; bit 6: set if error 4 +; bit 5: set if error 3 + ds 1 + wca8a:: ds 1 wca8b:: ds 1 wca8c:: ds 1 wca8d:: ds 1 wca8e:: ds 1 wca8f:: ds 1 + +; tilemap backup? wca90:: ds 16 wcaa0:: ds 3 wcaa3:: ds 2 @@ -1014,6 +1023,7 @@ wcb84:: ds 100 wcbe8:: ds 1 wcbe9:: ds 1 wcbea:: ds 14 + wcbf8:: ds 2 wcbfa:: ds 1 wcbfb:: ds 79 @@ -1183,6 +1193,7 @@ MonType:: ; cf5f ds 1 CurSpecies:: ; cf60 +CurMove:: ds 1 wNamedObjectTypeBuffer:: ds 1 @@ -1510,6 +1521,7 @@ wd0df:: ds 1 wd0e0:: ds 1 wd0e1:: ds 1 wd0e2:: ds 1 +wMoveSwapBuffer:: wd0e3:: ds 1 wd0e4:: ds 4 wQueuedScriptBank:: ds 1 -- cgit v1.2.3 From 1205fe5100c09624350b5e6822b4c063586afcaf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 5 Nov 2015 15:08:00 -0500 Subject: PLAYEREVENT_ --- constants/map_setup_constants.asm | 4 ++-- constants/script_constants.asm | 14 +++++++++++++ engine/events.asm | 40 ++++++++++++++++++------------------ engine/scripting.asm | 2 +- home.asm | 2 +- home/map.asm | 18 ++++++++-------- main.asm | 14 ++++++------- maps/Colosseum.asm | 2 +- maps/GoldenrodMagnetTrainStation.asm | 2 +- maps/SaffronTrainStation.asm | 2 +- maps/TimeCapsule.asm | 2 +- maps/TradeCenter.asm | 2 +- misc/mobile_40.asm | 2 +- 13 files changed, 61 insertions(+), 45 deletions(-) diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm index e3088496f..89d99ba90 100644 --- a/constants/map_setup_constants.asm +++ b/constants/map_setup_constants.asm @@ -1,5 +1,4 @@ -const_value SET $f0 - const MAPSETUP_00 +const_value SET $f1 const MAPSETUP_WARP const MAPSETUP_02 const MAPSETUP_RELOADMAP @@ -11,6 +10,7 @@ const_value SET $f0 const MAPSETUP_09 const MAPSETUP_10 const MAPSETUP_BADWARP + const MAPSETUP_12 ; Command descriptions from Condensation water's scripting compendium. const_def const_def diff --git a/constants/script_constants.asm b/constants/script_constants.asm index 191a9c024..5cda66d02 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -35,3 +35,17 @@ NUM_VARS EQU const_value RETVAR_STRBUF2 EQU (0 << 6) RETVAR_ADDR_DE EQU (1 << 6) RETVAR_EXECUTE EQU (2 << 6) + +const_value SET -1 + const PLAYEREVENT_MAPSCRIPT + const PLAYEREVENT_NONE + const PLAYEREVENT_SEENBYTRAINER + const PLAYEREVENT_TALKTOTRAINER + const PLAYEREVENT_ITEMBALL + const PLAYEREVENT_4 + const PLAYEREVENT_WARP + const PLAYEREVENT_FALL + const PLAYEREVENT_7 + const PLAYEREVENT_HATCH + const PLAYEREVENT_9 +NUM_PLAYER_EVENTS EQU const_value diff --git a/engine/events.asm b/engine/events.asm index 20e2bc0dd..04511f776 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -322,9 +322,9 @@ PlayerEvents: ; 9681f ld [ScriptRunning], a call DoPlayerEvent ld a, [ScriptRunning] - cp 4 + cp PLAYEREVENT_4 jr z, .ok2 - cp 9 + cp PLAYEREVENT_9 jr z, .ok2 xor a @@ -1050,14 +1050,14 @@ DoPlayerEvent: ; 96beb ld a, [ScriptRunning] and a ret z - cp -1 ; run script + cp PLAYEREVENT_MAPSCRIPT ; run script ret z - cp 10 + cp NUM_PLAYER_EVENTS ret nc ld c, a ld b, 0 - ld hl, ScriptPointers96c0c + ld hl, PlayerEventScriptPointers rept 3 add hl,bc endr @@ -1070,18 +1070,18 @@ endr ret ; 96c0c -ScriptPointers96c0c: ; 96c0c - dba Invalid_0x96c2d - dba SeenByTrainerScript - dba TalkToTrainerScript - dba FindItemInBallScript - dba UnknownScript_0x96c4d - dba WarpToNewMapScript - dba FallIntoMapScript - dba UnknownScript_0x124c8 - dba HatchEggScript - dba UnknownScript_0x96c4f - dba Invalid_0x96c2d +PlayerEventScriptPointers: ; 96c0c + dba Invalid_0x96c2d ; 0 + dba SeenByTrainerScript ; 1 + dba TalkToTrainerScript ; 2 + dba FindItemInBallScript ; 3 + dba UnknownScript_0x96c4d ; 4 + dba WarpToNewMapScript ; 5 + dba FallIntoMapScript ; 6 + dba UnknownScript_0x124c8 ; 7 + dba HatchEggScript ; 8 + dba UnknownScript_0x96c4f ; 9 + dba Invalid_0x96c2d ; 10 ; 96c2d Invalid_0x96c2d: ; 96c2d @@ -1122,11 +1122,11 @@ LandAfterPitfallScript: ; 96c4a end ; 96c4d -UnknownScript_0x96c4d: ; 96c4d - reloadandreturn $f7 +UnknownScript_0x96c4d: ; 4 + reloadandreturn MAPSETUP_07 ; 96c4f -UnknownScript_0x96c4f: ; 96c4f +UnknownScript_0x96c4f: ; 9 deactivatefacing $3 callasm SetBit4_ScriptFlags3 end diff --git a/engine/scripting.asm b/engine/scripting.asm index 115ed77f8..360360f79 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1664,7 +1664,7 @@ endr ret ; 0x974f3 -Function974f3:: ; 0x974f3 +CallCallback:: ; 0x974f3 ld a, [ScriptBank] or $80 ld [ScriptBank], a diff --git a/home.asm b/home.asm index 7bda59055..9def17d17 100644 --- a/home.asm +++ b/home.asm @@ -1242,7 +1242,7 @@ Function3574:: ; 3574 ld e, l call Function35de jr nc, .asm_3597 - call Function2631 + call CallMapScript callba EnableScriptMode scf ret diff --git a/home/map.asm b/home/map.asm index cb83a689d..e33e3bab9 100644 --- a/home/map.asm +++ b/home/map.asm @@ -208,7 +208,7 @@ endr ; 222a Function222a:: ; 222a - ld a, $fa + ld a, MAPSETUP_10 ld [hMapEntryMethod], a callba RunMapSetupScript xor a @@ -967,14 +967,15 @@ CallScript:: ; 261f ld a, h ld [ScriptPos + 1], a - ld a, $ff + ld a, PLAYEREVENT_MAPSCRIPT ld [ScriptRunning], a scf ret ; 2631 -Function2631:: ; 2631 +CallMapScript:: ; 2631 +; Call a script at hl in the current bank if there isn't already a script running ld a, [ScriptRunning] and a ret nz @@ -988,7 +989,7 @@ RunMapCallback:: ; 263b ld a, [hROMBank] push af call SwitchToMapScriptHeaderBank - call Function2653 + call .FindCallback jr nc, .done call GetMapScriptHeaderBank @@ -1003,7 +1004,7 @@ RunMapCallback:: ; 263b ret ; 2653 -Function2653:: ; 2653 +.FindCallback: ; 2653 ld a, [wCurrMapCallbackCount] ld c, a and a @@ -1018,14 +1019,14 @@ Function2653:: ; 2653 .loop ld a, [hl] cp b - jr z, .done + jr z, .found add hl, de dec c jr nz, .loop xor a ret -.done +.found inc hl ld a, [hli] ld h, [hl] @@ -1035,7 +1036,8 @@ Function2653:: ; 2653 ; 2674 ExecuteCallbackScript:: ; 2674 - callba Function974f3 +; Do map callback de and return to script bank b. + callba CallCallback ld a, [ScriptMode] push af ld hl, ScriptFlags diff --git a/main.asm b/main.asm index 02bf1fb29..e9723661a 100644 --- a/main.asm +++ b/main.asm @@ -141,7 +141,7 @@ NewGame: ; 5b6b ld a, SPAWN_HOME ld [wd001], a - ld a, $f1 + ld a, MAPSETUP_WARP ld [hMapEntryMethod], a jp FinishContinueFunction ; 5b8f @@ -451,7 +451,7 @@ Continue: ; 5d65 ld a, [wSpawnAfterChampion] cp SPAWN_LANCE jr z, .SpawnAfterE4 - ld a, $f2 + ld a, MAPSETUP_02 ld [hMapEntryMethod], a jp FinishContinueFunction @@ -473,7 +473,7 @@ SpawnAfterRed: ; 5de2 PostCreditsSpawn: ; 5de7 xor a ld [wSpawnAfterChampion], a - ld a, $f1 + ld a, MAPSETUP_WARP ld [hMapEntryMethod], a ret ; 5df0 @@ -5248,7 +5248,7 @@ FlyFunction: ; ca3b special WarpToSpawnPoint callasm DelayLoadingNewSprites writecode VAR_MOVEMENT, $0 - newloadmap -4 + newloadmap MAPSETUP_12 callasm Function8cb33 special WaitSFX callasm Functioncacb @@ -5516,7 +5516,7 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c farscall UnknownScript_0x122c1 special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap -11 + newloadmap MAPSETUP_05 playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcc5d end @@ -5614,7 +5614,7 @@ Script_UsedTeleport: ; 0xccbb farscall UnknownScript_0x122c1 special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap -12 + newloadmap MAPSETUP_04 playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcce3 end @@ -12257,7 +12257,7 @@ UnknownScript_0x124ce: ; 0x124ce callasm Function12527 farscall UnknownScript_0x122c1 special WarpToSpawnPoint - newloadmap $f1 + newloadmap MAPSETUP_WARP resetfuncs .script_64f2 diff --git a/maps/Colosseum.asm b/maps/Colosseum.asm index 52feffa09..7b9c5272a 100644 --- a/maps/Colosseum.asm +++ b/maps/Colosseum.asm @@ -49,7 +49,7 @@ ColosseumScript_Initialize: MapColosseumSignpost1Script: special Special_Colosseum - newloadmap $f8 + newloadmap MAPSETUP_08 end ChrisScript_0x193499: diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm index cdf7a8c1d..a20649ae1 100644 --- a/maps/GoldenrodMagnetTrainStation.asm +++ b/maps/GoldenrodMagnetTrainStation.asm @@ -35,7 +35,7 @@ OfficerScript_0x550ec: writebyte $0 special Special_MagnetTrain warpcheck - newloadmap $f9 + newloadmap MAPSETUP_09 applymovement PLAYER, .MovementBoardTheTrain wait $14 end diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm index 70b7834b4..455618116 100644 --- a/maps/SaffronTrainStation.asm +++ b/maps/SaffronTrainStation.asm @@ -35,7 +35,7 @@ OfficerScript_0x18a81e: writebyte $1 special Special_MagnetTrain warpcheck - newloadmap $f9 + newloadmap MAPSETUP_09 applymovement PLAYER, .MovementBoardTheTrain wait $14 end diff --git a/maps/TimeCapsule.asm b/maps/TimeCapsule.asm index 32d52bb77..59f9c36b4 100644 --- a/maps/TimeCapsule.asm +++ b/maps/TimeCapsule.asm @@ -39,7 +39,7 @@ TimeCapsule_Initialize: MapTimeCapsuleSignpost1Script: special Special_TimeCapsule - newloadmap $f8 + newloadmap MAPSETUP_08 end ChrisScript_0x19351a: diff --git a/maps/TradeCenter.asm b/maps/TradeCenter.asm index 3fad7fb24..a53f6a319 100644 --- a/maps/TradeCenter.asm +++ b/maps/TradeCenter.asm @@ -39,7 +39,7 @@ TradeCenter_Initialize: MapTradeCenterSignpost1Script: special Special_TradeCenter - newloadmap $f8 + newloadmap MAPSETUP_08 end ChrisScript_0x19340b: diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 3e1635959..25a769b85 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -406,7 +406,7 @@ Function1002c9: ; 1002c9 ; 1002dc Function1002dc: ; 1002dc - ld a, $f8 + ld a, MAPSETUP_08 ld [hMapEntryMethod], a callba RunMapSetupScript xor a -- cgit v1.2.3 From 5eed48f05d3634146deb2442cd8f62bbad0ae352 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 5 Nov 2015 19:13:09 -0500 Subject: Some battle labels --- battle/ai/items.asm | 10 +++--- battle/ai/scoring.asm | 4 +-- battle/core.asm | 77 +++++++++++++++++++++++----------------------- battle/effect_commands.asm | 12 ++++---- home/map.asm | 4 +-- main.asm | 2 +- wram.asm | 8 ++--- 7 files changed, 59 insertions(+), 58 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index d9798170d..7be68b9de 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -163,9 +163,9 @@ AI_TryItem: ; 38105 and a ret nz - ld a, [wc650] + ld a, [wEnemyTrainerItem1] ld b, a - ld a, [wc651] + ld a, [wEnemyTrainerItem2] or b ret z @@ -180,7 +180,7 @@ AI_TryItem: ; 38105 ld b, h ld c, l ld hl, AI_Items - ld de, wc650 + ld de, wEnemyTrainerItem1 .loop ld a, [hl] and a @@ -233,7 +233,7 @@ endr xor a ld [EnemyFuryCutterCount], a ld [EnemyProtectCount], a - ld [wc72c], a + ld [wEnemyRageCounter], a ld hl, EnemySubStatus4 res SUBSTATUS_RAGE, [hl] @@ -706,7 +706,7 @@ AI_Switch: ; 3846c res SUBSTATUS_RAGE, [hl] xor a ld [hBattleTurn], a - callab Function3dc5b + callab PursuitSwitch push af ld a, [CurOTMon] ld hl, OTPartyMon1Status diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 4737d231c..07f44493d 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -1343,11 +1343,11 @@ AI_Smart_Rage: ; 38b7f ; Encourage this move based on Rage's counter. .asm_38b8c - ld a, [wc72c] + ld a, [wEnemyRageCounter] cp $2 ret c dec [hl] - ld a, [wc72c] + ld a, [wEnemyRageCounter] cp $3 ret c dec [hl] diff --git a/battle/core.asm b/battle/core.asm index 4340dfac6..2497a97cf 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -458,44 +458,45 @@ Function3c300: ; 3c300 Function3c314: ; 3c314 ld a, [wLinkMode] and a - jr z, .asm_3c35b + jr z, .skip_ai ld a, [wBattleAction] cp $e - jr z, .asm_3c35b + jr z, .skip_ai cp $d - jr z, .asm_3c35b + jr z, .skip_ai sub NUM_MOVES - jr c, .asm_3c35b + jr c, .skip_ai ld a, [wd0ec] cp $2 - jr nz, .asm_3c34c + jr nz, .switch ld a, [$ffcb] cp $2 jr z, .asm_3c341 + call BattleRandom cp 1 + (50 percent) - jp c, .asm_3c3f1 + jp c, .done jp Function3c3f3 .asm_3c341 call BattleRandom cp 1 + (50 percent) jp c, Function3c3f3 - jp .asm_3c3f1 + jp .done -.asm_3c34c +.switch callab AI_Switch call SetEnemyTurn call SpikesDamage jp Function3c3f3 -.asm_3c35b +.skip_ai ld a, [wd0ec] and a - jp nz, .asm_3c3f1 + jp nz, .done call CompareMovePriority jr z, .asm_3c36d - jp c, .asm_3c3f1 + jp c, .done jp Function3c3f3 .asm_3c36d @@ -513,7 +514,7 @@ Function3c314: ; 3c314 call BattleRandom cp e jr nc, .asm_3c3c5 - jp .asm_3c3f1 + jp .done .asm_3c391 ld a, b @@ -533,13 +534,13 @@ Function3c314: ; 3c314 jp c, Function3c3f3 call BattleRandom cp e - jp c, .asm_3c3f1 + jp c, .done jr .asm_3c3c5 .asm_3c3b5 call BattleRandom cp e - jp c, .asm_3c3f1 + jp c, .done call BattleRandom cp c jp c, Function3c3f3 @@ -551,7 +552,7 @@ Function3c314: ; 3c314 ld c, $2 call StringCmp jr z, .asm_3c3d8 - jp nc, .asm_3c3f1 + jp nc, .done jp Function3c3f3 .asm_3c3d8 @@ -560,14 +561,14 @@ Function3c314: ; 3c314 jr z, .asm_3c3e9 call BattleRandom cp 1 + (50 percent) - jp c, .asm_3c3f1 + jp c, .done jp Function3c3f3 .asm_3c3e9 call BattleRandom cp 1 + (50 percent) jp c, Function3c3f3 -.asm_3c3f1 +.done scf ret ; 3c3f3 @@ -678,7 +679,7 @@ Function3c434: ; 3c434 ld hl, PlayerSubStatus4 res SUBSTATUS_RAGE, [hl] xor a - ld [wc72b], a + ld [wPlayerRageCounter], a .asm_3c4a4 ld a, [wPlayerMoveStruct + MOVE_EFFECT] @@ -698,7 +699,7 @@ Function3c434: ; 3c434 xor a ld [PlayerFuryCutterCount], a ld [PlayerProtectCount], a - ld [wc72b], a + ld [wPlayerRageCounter], a ld hl, PlayerSubStatus4 res SUBSTATUS_RAGE, [hl] @@ -711,7 +712,7 @@ Function3c434: ; 3c434 xor a ld [PlayerFuryCutterCount], a ld [PlayerProtectCount], a - ld [wc72b], a + ld [wPlayerRageCounter], a ld hl, PlayerSubStatus4 res SUBSTATUS_RAGE, [hl] xor a @@ -3798,7 +3799,7 @@ endr ld [EnemyDisableCount], a ld [EnemyFuryCutterCount], a ld [EnemyProtectCount], a - ld [wc72c], a + ld [wEnemyRageCounter], a ld [EnemyDisabledMove], a ld [wc6fa], a ld [wc730], a @@ -4301,7 +4302,7 @@ endr ld [PlayerDisableCount], a ld [PlayerFuryCutterCount], a ld [PlayerProtectCount], a - ld [wc72b], a + ld [wPlayerRageCounter], a ld [DisabledMove], a ld [wc6fe], a ld [wc731], a @@ -4361,14 +4362,14 @@ SpikesDamage: ; 3dc23 jp [hl] ; 3dc5b -Function3dc5b: ; 3dc5b +PursuitSwitch: ; 3dc5b ld a, BATTLE_VARS_MOVE call GetBattleVar ld b, a call GetMoveEffect ld a, b cp EFFECT_PURSUIT - jr nz, .asm_3dce4 + jr nz, .done ld a, [CurBattleMon] push af @@ -4376,11 +4377,11 @@ Function3dc5b: ; 3dc5b ld hl, DoPlayerTurn ld a, [hBattleTurn] and a - jr z, .asm_3dc7e + jr z, .do_turn ld hl, DoEnemyTurn ld a, [LastPlayerMon] ld [CurBattleMon], a -.asm_3dc7e +.do_turn ld a, BANK(DoPlayerTurn) rst FarCall @@ -4394,14 +4395,14 @@ Function3dc5b: ; 3dc5b ld a, [hBattleTurn] and a - jr z, .asm_3dcc0 + jr z, .check_enemy_fainted ld a, [LastPlayerMon] call UpdateBattleMon ld hl, BattleMonHP ld a, [hli] or [hl] - jr nz, .asm_3dce4 + jr nz, .done ld a, $f0 ld [CryTracks], a @@ -4414,13 +4415,13 @@ Function3dc5b: ; 3dc5b predef FlagPredef call PlayerMonFaintedAnimation ld hl, BattleText_PkmnFainted - jr .asm_3dcdf + jr .done_fainted -.asm_3dcc0 +.check_enemy_fainted ld hl, EnemyMonHP ld a, [hli] or [hl] - jr nz, .asm_3dce4 + jr nz, .done ld de, SFX_KINESIS call PlaySFX @@ -4431,12 +4432,12 @@ Function3dc5b: ; 3dc5b call EnemyMonFaintedAnimation ld hl, BattleText_EnemyPkmnFainted -.asm_3dcdf +.done_fainted call StdBattleTextBox scf ret -.asm_3dce4 +.done and a ret ; 3dce6 @@ -5510,7 +5511,7 @@ BattleMonEntrance: ; 3e40b res SUBSTATUS_RAGE, [hl] call SetEnemyTurn - call Function3dc5b + call PursuitSwitch jr c, .ok call Function3dce6 .ok @@ -6187,7 +6188,7 @@ Function3e7c1: ; 3e7c1 ld hl, EnemySubStatus4 res SUBSTATUS_RAGE, [hl] xor a - ld [wc72c], a + ld [wEnemyRageCounter], a .asm_3e8af ld a, [wEnemyMoveStruct + MOVE_EFFECT] @@ -6208,7 +6209,7 @@ ResetVarsForSubstatusRage: ; 3e8c1 xor a ld [EnemyFuryCutterCount], a ld [EnemyProtectCount], a - ld [wc72c], a + ld [wEnemyRageCounter], a ld hl, EnemySubStatus4 res SUBSTATUS_RAGE, [hl] ret @@ -8483,10 +8484,10 @@ Function3f4dd: ; 3f4dd ld [hBGMapMode], a call EmptyBattleTextBox hlcoord 9, 7 - ld bc, 5 << 8 + 11 + lb bc, 5, 11 call ClearBox hlcoord 1, 0 - ld bc, 4 << 8 + 10 + lb bc, 4, 10 call ClearBox call ClearSprites ld a, [wBattleMode] diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index b36d514f7..4d2062d4b 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -3295,12 +3295,12 @@ BattleCommand12: ; 35250 bit SUBSTATUS_RAGE, a ret z - ld de, wc72c + ld de, wEnemyRageCounter ld a, [hBattleTurn] and a - jr z, .asm_3526b - ld de, wc72b -.asm_3526b + jr z, .player + ld de, wPlayerRageCounter +.player ld a, [de] inc a ret z @@ -3324,9 +3324,9 @@ BattleCommanda2: ; 3527b ld c, a ld a, [hBattleTurn] and a - ld a, [wc72b] + ld a, [wPlayerRageCounter] jr z, .asm_35290 - ld a, [wc72c] + ld a, [wEnemyRageCounter] .asm_35290 and a jr z, .asm_3529a diff --git a/home/map.asm b/home/map.asm index e33e3bab9..c226af1ed 100644 --- a/home/map.asm +++ b/home/map.asm @@ -1398,7 +1398,7 @@ Function2821:: ; 2821 call FarDecompress ld hl, w6_d000 ld de, VTiles2 - ld bc, $0600 + ld bc, $60 tiles call CopyBytes ld a, [rVBK] push af @@ -1406,7 +1406,7 @@ Function2821:: ; 2821 ld [rVBK], a ld hl, w6_d600 ld de, VTiles2 - ld bc, $0600 + ld bc, $60 tiles call CopyBytes pop af ld [rVBK], a diff --git a/main.asm b/main.asm index e9723661a..cef50ffb9 100644 --- a/main.asm +++ b/main.asm @@ -32413,7 +32413,7 @@ Function3957b: ; 3957b ld hl, TrainerClassAttributes ld bc, NUM_TRAINER_ATTRIBUTES call AddNTimes - ld de, wc650 + ld de, wEnemyTrainerItem1 ld a, [hli] ld [de], a inc de diff --git a/wram.asm b/wram.asm index 729bf60f9..85722942b 100644 --- a/wram.asm +++ b/wram.asm @@ -455,8 +455,8 @@ wc64c:: wc64d:: ds 1 wc64e:: ds 2 -wc650:: ds 1 -wc651:: ds 1 +wEnemyTrainerItem1:: ds 1 +wEnemyTrainerItem2:: ds 1 wc652:: ds 4 wc656:: OTName:: ds NAME_LENGTH ; c656 @@ -818,8 +818,8 @@ wc720:: ds 4 ; copy from/to EnemyMonBaseStats, length=7 wc724:: ds 3 wc727:: ds 2 wc729:: ds 2 -wc72b:: ds 1 -wc72c:: ds 1 +wPlayerRageCounter:: ds 1 +wEnemyRageCounter:: ds 1 wc72d:: ds 1 ; if 0 then PrintButItFailed wc72e:: ds 1 wc72f:: ds 1 -- cgit v1.2.3 From f0830f084f74a9187dd71b64ad77db400d541f2d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 6 Nov 2015 09:04:27 -0500 Subject: BATTLEACTION constants --- battle/ai/items.asm | 3 + battle/core.asm | 362 ++++++++++++++++++++--------------------- constants/battle_constants.asm | 24 +++ home/init.asm | 2 +- home/serial.asm | 16 +- hram.asm | 2 + main.asm | 24 +-- misc/mobile_40.asm | 4 +- 8 files changed, 233 insertions(+), 204 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 7be68b9de..37c8ea4b7 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -707,6 +707,7 @@ AI_Switch: ; 3846c xor a ld [hBattleTurn], a callab PursuitSwitch + push af ld a, [CurOTMon] ld hl, OTPartyMon1Status @@ -718,9 +719,11 @@ AI_Switch: ; 3846c ld bc, $0004 call CopyBytes pop af + jr c, .skiptext ld hl, TextJump_EnemyWithdrew call PrintText + .skiptext ld a, $1 ld [wd264], a diff --git a/battle/core.asm b/battle/core.asm index 2497a97cf..630e667d8 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -12,31 +12,31 @@ Function3c000: ; 3c000 inc a ld [wd264], a ld hl, OTPartyMon1HP - ld bc, OTPartyMon2 - (OTPartyMon1 + 1) - ld d, NUM_MOVES - 1 -.asm_3c019 + ld bc, PARTYMON_STRUCT_LENGTH - 1 + ld d, BATTLEACTION_SWITCH1 - 1 +.loop inc d ld a, [hli] or [hl] - jr nz, .asm_3c021 + jr nz, .alive add hl, bc - jr .asm_3c019 + jr .loop -.asm_3c021 +.alive ld a, d ld [wBattleAction], a ld a, [wLinkMode] and a - jr z, .asm_3c031 + jr z, .not_linked - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 - jr z, .asm_3c04c + jr z, .player_2 -.asm_3c031 +.not_linked ld a, [wBattleMode] dec a - jr z, .asm_3c047 + jr z, .wild xor a ld [wc718], a call NewEnemyMonStatus @@ -44,11 +44,11 @@ Function3c000: ; 3c000 call BreakAttraction call Function3d4e1 -.asm_3c047 +.wild ld c, 40 call DelayFrames -.asm_3c04c +.player_2 call LoadTileMapToTempTileMap call CheckPlayerPartyForFitPkmn ld a, d @@ -57,19 +57,19 @@ Function3c000: ; 3c000 call Call_LoadTempTileMapToTileMap ld a, [BattleType] cp BATTLETYPE_DEBUG - jp z, .asm_3c0e2 + jp z, .tutorial_debug cp BATTLETYPE_TUTORIAL - jp z, .asm_3c0e2 + jp z, .tutorial_debug xor a ld [CurPartyMon], a -.asm_3c06b +.loop2 call CheckIfPartyHasPkmnToBattleWith - jr nz, .asm_3c076 + jr nz, .alive2 ld hl, CurPartyMon inc [hl] - jr .asm_3c06b + jr .loop2 -.asm_3c076 +.alive2 ld a, [CurBattleMon] ld [LastPlayerMon], a ld a, [CurPartyMon] @@ -99,10 +99,10 @@ Function3c000: ; 3c000 call SpikesDamage ld a, [wLinkMode] and a - jr z, .asm_3c0df - ld a, [$ffcb] + jr z, .not_linked_2 + ld a, [hLinkPlayerNumber] cp $2 - jr nz, .asm_3c0df + jr nz, .not_linked_2 xor a ld [wc718], a call NewEnemyMonStatus @@ -112,10 +112,10 @@ Function3c000: ; 3c000 call SetEnemyTurn call SpikesDamage -.asm_3c0df +.not_linked_2 jp Function3c12f -.asm_3c0e2 +.tutorial_debug jp BattleMenu ; 3c0e5 @@ -209,7 +209,7 @@ Function3c12f: ; 3c12f call Function3c300 jr c, .quit - call Function3c314 + call DetermineMoveOrder jr c, .asm_3c19e call Function3c5fe jr .asm_3c1a1 @@ -262,7 +262,7 @@ Function3c1c0: ; 3c1c0 Function3c1d6: ; 3c1d6 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .CheckEnemyFirst call CheckFaint_PlayerThenEnemy @@ -361,7 +361,7 @@ CheckFaint_EnemyThenPlayer: ; 3c25c ; 3c27c Function3c27c: ; 3c27c - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .reverse @@ -440,66 +440,66 @@ Function3c27c: ; 3c27c Function3c300: ; 3c300 ld a, [wLinkMode] and a - jr z, .asm_3c30d + jr z, .not_linked ld a, [wBattleAction] - cp $f - jr z, .asm_3c30f + cp BATTLEACTION_FORFEIT + jr z, .forfeit -.asm_3c30d +.not_linked and a ret -.asm_3c30f +.forfeit call WildFled_EnemyFled_LinkBattleCanceled scf ret ; 3c314 -Function3c314: ; 3c314 +DetermineMoveOrder: ; 3c314 ld a, [wLinkMode] and a - jr z, .skip_ai + jr z, .use_move ld a, [wBattleAction] - cp $e - jr z, .skip_ai - cp $d - jr z, .skip_ai - sub NUM_MOVES - jr c, .skip_ai + cp BATTLEACTION_E + jr z, .use_move + cp BATTLEACTION_D + jr z, .use_move + sub BATTLEACTION_SWITCH1 + jr c, .use_move ld a, [wd0ec] cp $2 jr nz, .switch - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 - jr z, .asm_3c341 + jr z, .player_2 call BattleRandom cp 1 + (50 percent) - jp c, .done - jp Function3c3f3 + jp c, .player_first + jp .enemy_first -.asm_3c341 +.player_2 call BattleRandom cp 1 + (50 percent) - jp c, Function3c3f3 - jp .done + jp c, .enemy_first + jp .player_first .switch callab AI_Switch call SetEnemyTurn call SpikesDamage - jp Function3c3f3 + jp .enemy_first -.skip_ai +.use_move ld a, [wd0ec] and a - jp nz, .done + jp nz, .player_first call CompareMovePriority - jr z, .asm_3c36d - jp c, .done - jp Function3c3f3 + jr z, .equal_priority + jp c, .player_first ; player goes first + jp .enemy_first -.asm_3c36d +.equal_priority call SetPlayerTurn callab GetUserItem push bc @@ -507,73 +507,73 @@ Function3c314: ; 3c314 pop de ld a, d cp HELD_QUICK_CLAW - jr nz, .asm_3c391 + jr nz, .player_no_quick_claw ld a, b cp HELD_QUICK_CLAW - jr z, .asm_3c39f + jr z, .both_have_quick_claw call BattleRandom cp e - jr nc, .asm_3c3c5 - jp .done + jr nc, .speed_check + jp .player_first -.asm_3c391 +.player_no_quick_claw ld a, b cp HELD_QUICK_CLAW - jr nz, .asm_3c3c5 + jr nz, .speed_check call BattleRandom cp c - jr nc, .asm_3c3c5 - jp Function3c3f3 + jr nc, .speed_check + jp .enemy_first -.asm_3c39f - ld a, [$ffcb] +.both_have_quick_claw + ld a, [hLinkPlayerNumber] cp $2 - jr z, .asm_3c3b5 + jr z, .player_2b call BattleRandom cp c - jp c, Function3c3f3 + jp c, .enemy_first call BattleRandom cp e - jp c, .done - jr .asm_3c3c5 + jp c, .player_first + jr .speed_check -.asm_3c3b5 +.player_2b call BattleRandom cp e - jp c, .done + jp c, .player_first call BattleRandom cp c - jp c, Function3c3f3 - jr .asm_3c3c5 + jp c, .enemy_first + jr .speed_check -.asm_3c3c5 +.speed_check ld de, BattleMonSpeed ld hl, EnemyMonSpeed - ld c, $2 + ld c, 2 call StringCmp - jr z, .asm_3c3d8 - jp nc, .done - jp Function3c3f3 + jr z, .speed_tie + jp nc, .player_first + jp .enemy_first -.asm_3c3d8 - ld a, [$ffcb] +.speed_tie + ld a, [hLinkPlayerNumber] cp $2 - jr z, .asm_3c3e9 + jr z, .player_2c call BattleRandom cp 1 + (50 percent) - jp c, .done - jp Function3c3f3 + jp c, .player_first + jp .enemy_first -.asm_3c3e9 +.player_2c call BattleRandom cp 1 + (50 percent) - jp c, Function3c3f3 -.done + jp c, .enemy_first +.player_first scf ret ; 3c3f3 -Function3c3f3: ; 3c3f3 +.enemy_first: ; 3c3f3 and a ret ; 3c3f5 @@ -720,7 +720,7 @@ Function3c434: ; 3c434 ; 3c4df Function3c4df: ; 3c4df - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3c4ea call .asm_3c4ed @@ -1218,7 +1218,7 @@ ResidualDamage: ; 3c716 ; 3c801 Function3c801: ; 3c801 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3c813 call SetPlayerTurn @@ -1286,7 +1286,7 @@ Function3c801: ; 3c801 ; 3c874 Function3c874: ; 3c874 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3c886 call SetPlayerTurn @@ -1353,7 +1353,7 @@ SwitchTurnCore: ; 3c8e4 ; 3c8eb Function3c8eb: ; 3c8eb - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3c8fd call SetPlayerTurn @@ -1400,7 +1400,7 @@ Function3c8eb: ; 3c8eb ; 3c93c Function3c93c: ; 3c93c - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3c94e call SetPlayerTurn @@ -1538,7 +1538,7 @@ Function3c93c: ; 3c93c ; 3ca26 Function3ca26: ; 3ca26 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3ca38 call SetPlayerTurn @@ -1596,7 +1596,7 @@ Function3ca26: ; 3ca26 ; 3ca8f HanleDefrost: ; 3ca8f - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3ca9a call .asm_3ca9d @@ -1654,7 +1654,7 @@ HanleDefrost: ; 3ca8f ; 3cafb HandleSafeguard: ; 3cafb - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3cb06 call .asm_3cb09 @@ -1692,7 +1692,7 @@ HandleSafeguard: ; 3cafb HandleScreens: ; 3cb36 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp 1 jr z, .Both call .CheckPlayer @@ -1777,7 +1777,7 @@ HandleWeather: ; 3cb9e cp WEATHER_SANDSTORM ret nz - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp 1 jr z, .enemy_first @@ -2168,7 +2168,7 @@ HandleEnemyMonFaint: ; 3cd55 ; 3cdca Function3cdca: ; 3cdca - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_3cde6 call ClearSprites @@ -2408,16 +2408,16 @@ Function3cf4a: ; 3cf4a callba Function2c012 ld a, [wLinkMode] and a - jr z, .asm_3cf6d + jr z, .not_linked call Function3e8e4 ld a, [wBattleAction] - cp $f + cp BATTLEACTION_FORFEIT ret z call Call_LoadTempTileMapToTileMap -.asm_3cf6d +.not_linked ld hl, BattleMonHP ld a, [hli] or [hl] @@ -3355,32 +3355,32 @@ Function3d533: ; 3d533 ; returns carry if: ??? ld a, [wLinkMode] and a - jr z, .asm_3d541 + jr z, .not_linked ld a, [wBattleAction] - sub NUM_MOVES + sub BATTLEACTION_SWITCH1 ld b, a - jr .asm_3d555 + jr .return_carry -.asm_3d541 +.not_linked ld a, [wc718] and a - jr z, .asm_3d54b + jr z, .check_wd264 dec a ld b, a - jr .asm_3d555 + jr .return_carry -.asm_3d54b +.check_wd264 ld a, [wd264] and a ld b, $0 - jr nz, .asm_3d555 + jr nz, .return_carry and a ret -.asm_3d555 +.return_carry scf ret ; 3d557 @@ -3876,33 +3876,33 @@ TryToRunAwayFromBattle: ; 3d8b3 ; Run away from battle, with or without item ld a, [BattleType] cp BATTLETYPE_DEBUG - jp z, .asm_3d9a2 + jp z, .can_escape cp BATTLETYPE_CONTEST - jp z, .asm_3d9a2 + jp z, .can_escape cp BATTLETYPE_TRAP - jp z, .asm_3d98d + jp z, .cant_escape cp BATTLETYPE_CELEBI - jp z, .asm_3d98d + jp z, .cant_escape cp BATTLETYPE_SHINY - jp z, .asm_3d98d + jp z, .cant_escape cp BATTLETYPE_SUICUNE - jp z, .asm_3d98d + jp z, .cant_escape ld a, [wLinkMode] and a - jp nz, .asm_3d9a2 + jp nz, .can_escape ld a, [wBattleMode] dec a - jp nz, .asm_3d992 + jp nz, .cant_run_from_trainer ld a, [EnemySubStatus5] bit SUBSTATUS_CANT_RUN, a - jp nz, .asm_3d98d + jp nz, .cant_escape ld a, [wc730] and a - jp nz, .asm_3d98d + jp nz, .cant_escape push hl push de @@ -3914,15 +3914,15 @@ TryToRunAwayFromBattle: ; 3d8b3 cp HELD_ESCAPE pop de pop hl - jr nz, .asm_3d916 + jr nz, .no_flee_item call SetPlayerTurn call GetItemName ld hl, BattleText_UserFledUsingAStringBuffer1 call StdBattleTextBox - jp .asm_3d9a2 + jp .can_escape -.asm_3d916 +.no_flee_item ld a, [wd267] inc a ld [wd267], a @@ -3940,7 +3940,7 @@ TryToRunAwayFromBattle: ; 3d8b3 ld hl, hStringCmpString1 ld c, $2 call StringCmp - jr nc, .asm_3d9a2 + jr nc, .can_escape xor a ld [hMultiplicand], a @@ -3951,52 +3951,52 @@ TryToRunAwayFromBattle: ; 3d8b3 ld [hDividend + 0], a ld a, [hProduct + 3] ld [hDividend + 1], a - ld a, [$ffb1] + ld a, [hStringCmpString1 + 0] ld b, a - ld a, [$ffb2] + ld a, [hStringCmpString1 + 1] srl b rr a srl b rr a and a - jr z, .asm_3d9a2 + jr z, .can_escape ld [hDivisor], a ld b, $2 call Divide ld a, [hQuotient + 1] and a - jr nz, .asm_3d9a2 + jr nz, .can_escape ld a, [wd267] ld c, a -.asm_3d96c +.loop dec c - jr z, .asm_3d97a + jr z, .cant_escape_2 ld b, $1e ld a, [hQuotient + 2] add b - ld [$ffb6], a - jr c, .asm_3d9a2 - jr .asm_3d96c + ld [hQuotient + 2], a + jr c, .can_escape + jr .loop -.asm_3d97a +.cant_escape_2 call BattleRandom ld b, a - ld a, [$ffb6] + ld a, [hQuotient + 2] cp b - jr nc, .asm_3d9a2 + jr nc, .can_escape ld a, $1 ld [wd0ec], a ld hl, BattleText_CantEscape2 - jr .asm_3d995 + jr .print_inescapable_text -.asm_3d98d +.cant_escape ld hl, BattleText_CantEscape - jr .asm_3d995 + jr .print_inescapable_text -.asm_3d992 +.cant_run_from_trainer ld hl, BattleText_TheresNoEscapeFromTrainerBattle -.asm_3d995 +.print_inescapable_text call StdBattleTextBox ld a, $1 ld [wd266], a @@ -4004,11 +4004,11 @@ TryToRunAwayFromBattle: ; 3d8b3 and a ret -.asm_3d9a2 +.can_escape ld a, [wLinkMode] and a - ld a, $2 - jr z, .asm_3d9cf + ld a, DRAW + jr z, .fled call LoadTileMapToTempTileMap xor a ld [wd0ec], a @@ -4023,11 +4023,11 @@ TryToRunAwayFromBattle: ; 3d8b3 ; Got away safely ld a, [wBattleAction] - cp $f - ld a, $2 - jr z, .asm_3d9cf + cp BATTLEACTION_FORFEIT + ld a, DRAW + jr z, .fled dec a -.asm_3d9cf +.fled ld b, a ld a, [wBattleResult] and $c0 @@ -4066,18 +4066,18 @@ Function3da0d: ; 3da0d ld a, MON_SPECIES call GetPartyParamLocation ld de, BattleMonSpecies - ld bc, 1 + 1 + NUM_MOVES ; species, item, moves ; BattleMonDVs - BattleMonSpecies + ld bc, MON_ID call CopyBytes - ld bc, PartyMon1DVs - (PartyMon1Species + 1 + 1 + NUM_MOVES) + ld bc, (MON_DVS) - (MON_ID) add hl, bc ld de, BattleMonDVs - ld bc, 2 + NUM_MOVES + 1 ; DVs, PP, happiness ; BattleMonLevel - BattleMonDVs + ld bc, (MON_PKRUS) - (MON_DVS) call CopyBytes rept 3 inc hl endr ld de, BattleMonLevel - ld bc, 1 + 1 + 1 + 2 + 2 * 6 ; level, status, unused, stats + ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_LEVEL) call CopyBytes ld a, [BattleMonSpecies] ld [TempBattleMonSpecies], a @@ -4158,18 +4158,18 @@ Function3dabd: ; 3dabd ld hl, OTPartyMon1Species call GetPartyLocation ld de, EnemyMonSpecies - ld bc, 1 + 1 + NUM_MOVES + ld bc, MON_ID call CopyBytes - ld bc, OTPartyMon1DVs - (OTPartyMon1Species + 1 + 1 + NUM_MOVES) + ld bc, (MON_DVS) - (MON_ID) add hl, bc ld de, EnemyMonDVs - ld bc, 2 + NUM_MOVES + 1 + ld bc, (MON_PKRUS) - (MON_DVS) call CopyBytes rept 3 inc hl endr ld de, EnemyMonLevel - ld bc, 1 + 1 + 1 + 2 + 2 * 6 + ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_LEVEL) call CopyBytes ld a, [EnemyMonSpecies] ld [CurSpecies], a @@ -4182,7 +4182,7 @@ endr call CopyBytes ld hl, EnemyMonAttack ld de, EnemyStats - ld bc, 2 * 5 + ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_ATK) call CopyBytes call Function3ec30 ld hl, BaseType1 @@ -4456,9 +4456,9 @@ Function3dce6: ; 3dce6 ; 3dcf9 Function3dcf9: ; 3dcf9 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3dd17 + jr z, .player_1 call SetPlayerTurn call Function3dd2f call Function3dde9 @@ -4468,7 +4468,7 @@ Function3dcf9: ; 3dcf9 call Function3dde9 jp Function3de51 -.asm_3dd17 +.player_1 call SetEnemyTurn call Function3dd2f call Function3dde9 @@ -4699,13 +4699,13 @@ Function3de51: ; 3de51 ; 3de97 Function3de97: ; 3de97 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3dea3 + jr z, .player_1 call Function3dea9 jp Function3deb1 -.asm_3dea3 +.player_1 call Function3deb1 jp Function3dea9 ; 3dea9 @@ -5461,41 +5461,41 @@ Function3e3ad: ; 3e3ad and a jr nz, .asm_3e3cf -.asm_3e3ca +.switch call BattleMonEntrance and a ret .asm_3e3cf ld a, [wBattleAction] - cp $e - jp z, .asm_3e3ca - cp $d - jp z, .asm_3e3ca - cp NUM_MOVES - jp c, .asm_3e3ca - cp $f - jr nz, .asm_3e3e9 + cp BATTLEACTION_E + jp z, .switch + cp BATTLEACTION_D + jp z, .switch + cp BATTLEACTION_SWITCH1 + jp c, .switch + cp BATTLEACTION_FORFEIT + jr nz, .dont_run call WildFled_EnemyFled_LinkBattleCanceled ret -.asm_3e3e9 - ld a, [$ffcb] +.dont_run + ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3e3f7 + jr z, .player_1 call BattleMonEntrance - call Function3e3ff + call EnemyMonEntrance and a ret -.asm_3e3f7 - call Function3e3ff +.player_1 + call EnemyMonEntrance call BattleMonEntrance and a ret ; 3e3ff -Function3e3ff: ; 3e3ff +EnemyMonEntrance: ; 3e3ff callab AI_Switch call SetEnemyTurn jp SpikesDamage @@ -6070,11 +6070,11 @@ Function3e7c1: ; 3e7c1 call z, Function3e8e4 call Call_LoadTempTileMapToTileMap ld a, [wBattleAction] - cp $e + cp BATTLEACTION_E jp z, .asm_3e8bd - cp $d + cp BATTLEACTION_D jp z, .asm_3e82c - cp NUM_MOVES + cp BATTLEACTION_SWITCH1 jp nc, ResetVarsForSubstatusRage ld [CurEnemyMoveNum], a ld c, a diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index 6ee0995cd..62531c7be 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -344,3 +344,27 @@ SUBSTATUS_CURLED EQU 0 const ENEMY_COUNTER_MOVE const PLAYER_LAST_MOVE const ENEMY_LAST_MOVE + +; wBattleAction + const_def + const BATTLEACTION_MOVE1 + const BATTLEACTION_MOVE2 + const BATTLEACTION_MOVE3 + const BATTLEACTION_MOVE4 + const BATTLEACTION_SWITCH1 + const BATTLEACTION_SWITCH2 + const BATTLEACTION_SWITCH3 + const BATTLEACTION_SWITCH4 + const BATTLEACTION_SWITCH5 + const BATTLEACTION_SWITCH6 + const BATTLEACTION_A + const BATTLEACTION_B + const BATTLEACTION_C + const BATTLEACTION_D + const BATTLEACTION_E + const BATTLEACTION_FORFEIT + + const_def + const WIN + const LOSE + const DRAW diff --git a/home/init.asm b/home/init.asm index f78149dd6..ee3e8e4c1 100644 --- a/home/init.asm +++ b/home/init.asm @@ -137,7 +137,7 @@ Init:: ; 17d ld [rLCDC], a ld a, -1 - ld [$ffcb], a + ld [hLinkPlayerNumber], a callba Function9890 diff --git a/home/serial.asm b/home/serial.asm index 1ebf00389..8b9656262 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -14,7 +14,7 @@ Serial:: ; 6ef bit 0, a jr nz, .asm_721 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] inc a ; is it equal to -1? jr z, .asm_726 @@ -24,7 +24,7 @@ Serial:: ; 6ef ld a, [hSerialSend] ld [rSB], a - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 jr z, .asm_752 @@ -51,7 +51,7 @@ Serial:: ; 6ef .asm_730 ld [hSerialReceive], a - ld [$ffcb], a + ld [hLinkPlayerNumber], a cp $2 jr z, .asm_74f @@ -128,7 +128,7 @@ Function75f:: ; 75f Function78a:: ; 78a xor a ld [$ffca], a - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 jr nz, .asm_79b ld a, $1 @@ -140,7 +140,7 @@ Function78a:: ; 78a ld a, [$ffca] and a jr nz, .asm_7e5 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr nz, .asm_7c0 call Function82b @@ -172,7 +172,7 @@ Function78a:: ; 78a dec a ld [wcf5d + 1], a jr nz, .asm_79b - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_7e5 ld a, $ff @@ -349,7 +349,7 @@ Function8c1:: ; 8c1 ld a, [wcf56] add b ld [hSerialSend], a - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 jr nz, .asm_8ee ld a, $1 @@ -380,7 +380,7 @@ Function8f3:: ; 8f3 Function908:: ; 908 xor a ld [hSerialSend], a - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 ret nz ld a, $1 diff --git a/hram.asm b/hram.asm index c7532c123..452071c70 100644 --- a/hram.asm +++ b/hram.asm @@ -70,6 +70,8 @@ hMoneyTemp EQU $ffc3 hLCDStatCustom EQU $ffc6 +hLinkPlayerNumber EQU $ffcb + hSerialSend EQU $ffcd hSerialReceive EQU $ffce diff --git a/main.asm b/main.asm index cef50ffb9..8ef76f748 100644 --- a/main.asm +++ b/main.asm @@ -25212,7 +25212,7 @@ Function2805d: ; 2805d xor a ld [wcf56], a call Function87d - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 jr nz, .asm_28091 ld c, $3 @@ -25338,7 +25338,7 @@ Function2805d: ; 2805d ld [wd103], a ld de, MUSIC_NONE call PlayMusic - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 ld c, 66 call z, DelayFrames @@ -25355,7 +25355,7 @@ Function28177: ; 28177 ld a, [ScriptVar] and a jp z, Function283b2 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 jr nz, .asm_281ae ld c, $3 @@ -25580,7 +25580,7 @@ Function28177: ; 28177 ld [wd103], a ld de, MUSIC_NONE call PlayMusic - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 ld c, 66 call z, DelayFrames @@ -26319,7 +26319,7 @@ Function2879e: ; 2879e ; 287ab Function287ab: ; 287ab - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 ret z ld hl, EnemyMonSpecies @@ -27061,7 +27061,7 @@ Function28b87: ; 28b87 call LoadFontsBattleExtra ld b, $8 call GetSGBLayout - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 jr z, .asm_28de4 predef Function28f24 @@ -28855,7 +28855,7 @@ Special_AbortLink: ; 29c92 ld c, $3 call DelayFrames ld a, -1 - ld [$ffcb], a + ld [hLinkPlayerNumber], a xor a ld [rSB], a ld [hSerialReceive], a @@ -28881,7 +28881,7 @@ Special_AbortLink: ; 29c92 ld c, $3 call DelayFrames ld a, -1 - ld [$ffcb], a + ld [hLinkPlayerNumber], a ld a, [rIF] push af xor a @@ -28950,13 +28950,13 @@ Special_WaitForLinkedFriend: ; 29d11 ld a, $ff ld [wcf5b], a .asm_29d39 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $2 jr z, .asm_29d79 cp $1 jr z, .asm_29d79 ld a, -1 - ld [$ffcb], a + ld [hLinkPlayerNumber], a ld a, $2 ld [rSB], a xor a @@ -29232,7 +29232,7 @@ Function29f04: ; 29f04 ld c, $3 call DelayFrames ld a, -1 - ld [$ffcb], a + ld [hLinkPlayerNumber], a ld a, $2 ld [rSB], a xor a @@ -29271,7 +29271,7 @@ Function29f17: ; 29f17 ; 29f47 Special_CableClubCheckWhichChris: ; 29f47 - ld a, [$ffcb] + ld a, [hLinkPlayerNumber] cp $1 ld a, $1 jr z, .yes diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 25a769b85..7ffe48b9e 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -4005,7 +4005,7 @@ Function1019ee: ; 1019ee ld a, $1 .asm_101a1e - ld [$ffcb], a + ld [hLinkPlayerNumber], a ret ; 101a21 @@ -4024,7 +4024,7 @@ Function101a21: ; 101a21 xor a ld [wc2d7], a ld a, $ff - ld [$ffcb], a + ld [hLinkPlayerNumber], a pop af ld [Options], a ret -- cgit v1.2.3 From 46e66077a5a4d8d716ac3437e291c958df7809b4 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 6 Nov 2015 14:45:10 -0500 Subject: BattleCommand labels copied from macros --- battle/ai/scoring.asm | 10 +- battle/core.asm | 30 +-- battle/effect_command_pointers.asm | 327 ++++++++++++------------- battle/effect_commands.asm | 476 ++++++++++++++++++------------------- battle/effects/curse.asm | 12 +- battle/effects/endure.asm | 2 +- battle/effects/foresight.asm | 2 +- battle/effects/metronome.asm | 2 +- battle/effects/mirror_move.asm | 4 +- battle/effects/nightmare.asm | 2 +- battle/effects/perish_song.asm | 2 +- battle/effects/protect.asm | 2 +- battle/effects/rollout.asm | 4 +- battle/effects/sandstorm.asm | 2 +- battle/effects/spikes.asm | 2 +- battle/effects/thief.asm | 2 +- battle/hidden_power.asm | 2 +- engine/predef.asm | 2 +- home/flag.asm | 2 +- items/item_effects.asm | 194 +++++++-------- main.asm | 4 +- wram.asm | 6 +- 22 files changed, 549 insertions(+), 542 deletions(-) diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 07f44493d..1b2da2f42 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -1783,8 +1783,8 @@ AI_Smart_PriorityHit: ; 38d5a ld [hBattleTurn], a push hl callab EnemyAttackDamage - callab BattleCommand_DamageCalcWithStats - callab BattleCommand_CalcDamageTypeMultiplier + callab BattleCommand_DamageCalc + callab BattleCommand_Stab pop hl ld a, [CurDamage + 1] ld c, a @@ -3375,13 +3375,13 @@ AIDamageCalc: ; 393e7 ld hl, .ConstantDamageEffects call IsInArray jr nc, .asm_39400 - callab BattleCommand3f + callab BattleCommand_ConstantDamage ret .asm_39400 callab EnemyAttackDamage - callab BattleCommand_DamageCalcWithStats - callab BattleCommand_CalcDamageTypeMultiplier + callab BattleCommand_DamageCalc + callab BattleCommand_Stab ret .ConstantDamageEffects diff --git a/battle/core.asm b/battle/core.asm index 630e667d8..02ee90932 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -417,14 +417,14 @@ Function3c27c: ; 3c27c ld [hl], a ld [AttackMissed], a ld [EffectFailed], a - callba BattleCommand77 + callba BattleCommand_AttackUp2 pop af pop hl ld [hl], a call GetItemName ld hl, BattleText_UsersStringBuffer1Activated call StdBattleTextBox - callab BattleCommand8c + callab BattleCommand_StatMessageUser pop af bit SUBSTATUS_CONFUSED, a ret nz @@ -4238,7 +4238,7 @@ Function3db5f: ; 3db5f call WaitBGMap xor a ld [hBGMapMode], a - call Function3f43d + call GetMonBackpic xor a ld [$ffad], a ld [wd0d2], a @@ -4748,7 +4748,7 @@ endr ld a, [hli] ld h, [hl] ld l, a - ld a, BANK(BattleCommand70) + ld a, BANK(BattleCommand_AttackUp) rst FarCall pop bc pop de @@ -4761,7 +4761,7 @@ endr call GetItemName ld hl, BattleText_UsersStringBuffer1Activated call StdBattleTextBox - callab BattleCommand8c + callab BattleCommand_StatMessageUser ret .asm_3def9 @@ -4771,13 +4771,13 @@ endr ; 3defc .data_3defc - dbw HELD_ATTACK_UP, BattleCommand70 - dbw HELD_DEFENSE_UP, BattleCommand71 - dbw HELD_SPEED_UP, BattleCommand72 - dbw HELD_SP_ATTACK_UP, BattleCommand73 - dbw HELD_SP_DEFENSE_UP, BattleCommand74 - dbw HELD_ACCURACY_UP, BattleCommand75 - dbw HELD_EVASION_UP, BattleCommand76 + dbw HELD_ATTACK_UP, BattleCommand_AttackUp + dbw HELD_DEFENSE_UP, BattleCommand_DefenseUp + dbw HELD_SPEED_UP, BattleCommand_SpeedUp + dbw HELD_SP_ATTACK_UP, BattleCommand_SpecialAttackUp + dbw HELD_SP_DEFENSE_UP, BattleCommand_SpecialDefenseUp + dbw HELD_ACCURACY_UP, BattleCommand_AccuracyUp + dbw HELD_EVASION_UP, BattleCommand_EvasionUp db $ff ; 3df12 @@ -5251,7 +5251,7 @@ BattleMenu_Pack: ; 3e1c7 call ClearPalettes call DelayFrame call Function3ed9f - call Function3f43d + call GetMonBackpic call Function3f47c call ExitMenu call WaitBGMap @@ -5284,7 +5284,7 @@ Function3e234: ; 3e234 ld a, [BattleType] cp BATTLETYPE_TUTORIAL jr z, .asm_3e25d - call Function3f43d + call GetMonBackpic .asm_3e25d call Function3f47c @@ -8356,7 +8356,7 @@ Function3f41c: ; 3f41c ret ; 3f43d -Function3f43d: ; 3f43d +GetMonBackpic: ; 3f43d ld a, [PlayerSubStatus4] bit SUBSTATUS_SUBSTITUTE, a ld hl, BattleAnimCmd_DD diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm index a337d458b..735a1792c 100644 --- a/battle/effect_command_pointers.asm +++ b/battle/effect_command_pointers.asm @@ -1,180 +1,183 @@ + + + dw 0 ; padding BattleCommandPointers: ; 3fd28 - dw BattleCommand01 ; 34084 - dw BattleCommand02 ; 343db - dw BattleCommand03 ; 34541 - dw BattleCommand04 ; 34555 - dw BattleCommand05 ; 34631 - dw BattleCommand06 ; 352dc - dw BattleCommand_CalcDamageTypeMultiplier ; 346d2 - 07 - dw BattleCommand08 ; 34cfd - dw BattleCommand09 ; 34d32 + dw BattleCommand_CheckTurn ; 34084 + dw BattleCommand_CheckObedience ; 343db + dw BattleCommand_UsedMoveText ; 34541 + dw BattleCommand_DoTurn ; 34555 + dw BattleCommand_Critical ; 34631 + dw BattleCommand_DamageStats ; 352dc + dw BattleCommand_Stab ; 346d2 - 07 + dw BattleCommand_DamageVariation ; 34cfd + dw BattleCommand_CheckHit ; 34d32 dw BattleCommand0a ; 34eee dw BattleCommand0b ; 34f60 dw BattleCommand0c ; 35004 - dw BattleCommand0d ; 35023 - dw BattleCommand0e ; 3505e - dw BattleCommand0f ; 35175 - dw BattleCommand10 ; 351ad - dw BattleCommand11 ; 351c0 - dw BattleCommand12 ; 35250 - dw BattleCommand13 ; 35eee - dw BattleCommand14 ; 35e5c - dw BattleCommand15 ; 35fff - dw BattleCommand16 ; 36008 - dw BattleCommand17 ; 3608c - dw BattleCommand18 ; 36102 - dw BattleCommand19 ; 36165 - dw BattleCommand1a ; 37380 - dw BattleCommand1b ; 373c9 - dw BattleCommand1c ; 361e4 - dw BattleCommand1d ; 362e3 - dw BattleCommand1e ; 3705c - dw BattleCommand1f ; 3707f - dw BattleCommand20 ; 3710e - dw BattleCommand21 ; 36671 - dw BattleCommand22 ; 366e5 - dw BattleCommand23 ; 3680f - dw BattleCommand24 ; 369b6 - dw BattleCommand25 ; 36aa0 - dw BattleCommand26 ; 36af3 - dw BattleCommand27 ; 36cb2 - dw BattleCommand28 ; 36c7e - dw BattleCommand29 ; 36c98 - dw BattleCommand2a ; 36d3b - dw BattleCommand2b ; 36d1d - dw BattleCommand2c ; 3713e - dw BattleCommand2d ; 371cd - dw BattleCommand2e ; 372fc - dw BattleCommand2f ; 35f2c - dw BattleCommand30 ; 36dc7 - dw BattleCommand31 ; 36e7c - dw BattleCommand32 ; 36f0b - dw BattleCommand33 ; 36f46 - dw BattleCommand34 ; 37418 - dw BattleCommand35 ; 36f9d - dw BattleCommand36 ; 36fe1 - dw BattleCommand37 ; 36fed - dw BattleCommand38 ; 37e85 - dw BattleCommand39 ; 36b4d - dw BattleCommand3a ; 36b3a - dw BattleCommand3b ; 36c2d + dw BattleCommand_ResultText ; 35023 + dw BattleCommand_CheckFaint ; 3505e + dw BattleCommand_CriticalText ; 35175 + dw BattleCommand_SuperEffectiveText ; 351ad + dw BattleCommand_CheckDestinyBond ; 351c0 + dw BattleCommand_BuildOpponentRage ; 35250 + dw BattleCommand_PoisonTarget ; 35eee + dw BattleCommand_SleepTarget ; 35e5c + dw BattleCommand_DrainTarget ; 35fff + dw BattleCommand_EatDream ; 36008 + dw BattleCommand_BurnTarget ; 3608c + dw BattleCommand_FreezeTarget ; 36102 + dw BattleCommand_ParalyzeTarget ; 36165 + dw BattleCommand_SelfDestruct ; 37380 + dw BattleCommand_MirrorMove ; 373c9 + dw BattleCommand_StatUp ; 361e4 + dw BattleCommand_StatDown ; 362e3 + dw BattleCommand_PayDay ; 3705c + dw BattleCommand_Conversion ; 3707f + dw BattleCommand_ResetStats ; 3710e + dw BattleCommand_StoreEnergy ; 36671 + dw BattleCommand_UnleashEnergy ; 366e5 + dw BattleCommand_ForceSwitch ; 3680f + dw BattleCommand_EndLoop ; 369b6 + dw BattleCommand_FlinchTarget ; 36aa0 + dw BattleCommand_OHKO ; 36af3 + dw BattleCommand_Recoil ; 36cb2 + dw BattleCommand_Mist ; 36c7e + dw BattleCommand_FocusEnergy ; 36c98 + dw BattleCommand_Confuse ; 36d3b + dw BattleCommand_ConfuseTarget ; 36d1d + dw BattleCommand_Heal ; 3713e + dw BattleCommand_Transform ; 371cd + dw BattleCommand_Screen ; 372fc + dw BattleCommand_Poison ; 35f2c + dw BattleCommand_Paralyze ; 36dc7 + dw BattleCommand_Substitute ; 36e7c + dw BattleCommand_RechargeNextTurn ; 36f0b + dw BattleCommand_Mimic ; 36f46 + dw BattleCommand_Metronome ; 37418 + dw BattleCommand_LeechSeed ; 36f9d + dw BattleCommand_Splash ; 36fe1 + dw BattleCommand_Disable ; 36fed + dw BattleCommand_ClearText ; 37e85 + dw BattleCommand_Charge ; 36b4d + dw BattleCommand_CheckCharge ; 36b3a + dw BattleCommand_TrapTarget ; 36c2d dw BattleCommand3c ; 36c2c - dw BattleCommand3d ; 36751 - dw BattleCommand3e ; 3671a - dw BattleCommand3f ; 35726 - dw BattleCommand40 ; 35813 - dw BattleCommand41 ; 35864 - dw BattleCommand42 ; 35926 - dw BattleCommand43 ; 359d0 - dw BattleCommand44 ; 359e6 - dw BattleCommand45 ; 35a53 - dw BattleCommand46 ; 35a74 - dw BattleCommand47 ; 35b16 - dw BattleCommand48 ; 35b33 - dw BattleCommand49 ; 35bff - dw BattleCommand4a ; 35c0f - dw BattleCommand4b ; 35c94 - dw BattleCommand4c ; 35cc9 - dw BattleCommand4d ; 36ac9 - dw BattleCommand4e ; 346b2 - dw BattleCommand4f ; 346cd - dw BattleCommand50 ; 37492 - dw BattleCommand51 ; 37517 - dw BattleCommand52 ; 37536 - dw BattleCommand53 ; 37563 - dw BattleCommand54 ; 37588 - dw BattleCommand55 ; 37618 - dw BattleCommand56 ; 37683 - dw BattleCommand57 ; 376a0 - dw BattleCommand58 ; 376c2 - dw BattleCommand59 ; 376f8 - dw BattleCommand5a ; 3766f - dw BattleCommand5b ; 37718 - dw BattleCommand5c ; 37734 + dw BattleCommand_Rampage ; 36751 + dw BattleCommand_CheckRampage ; 3671a + dw BattleCommand_ConstantDamage ; 35726 + dw BattleCommand_Counter ; 35813 + dw BattleCommand_Encore ; 35864 + dw BattleCommand_PainSplit ; 35926 + dw BattleCommand_Snore ; 359d0 + dw BattleCommand_Conversion2 ; 359e6 + dw BattleCommand_LockOn ; 35a53 + dw BattleCommand_Sketch ; 35a74 + dw BattleCommand_DefrostOpponent ; 35b16 + dw BattleCommand_SleepTalk ; 35b33 + dw BattleCommand_DestinyBond ; 35bff + dw BattleCommand_Spite ; 35c0f + dw BattleCommand_FalseSwipe ; 35c94 + dw BattleCommand_HealBell ; 35cc9 + dw BattleCommand_KingsRock ; 36ac9 + dw BattleCommand_TripleKick ; 346b2 + dw BattleCommand_KickCounter ; 346cd + dw BattleCommand_Thief ; 37492 + dw BattleCommand_ArenaTrap ; 37517 + dw BattleCommand_Nightmare ; 37536 + dw BattleCommand_Defrost ; 37563 + dw BattleCommand_Curse ; 37588 + dw BattleCommand_Protect ; 37618 + dw BattleCommand_Spikes ; 37683 + dw BattleCommand_Foresight ; 376a0 + dw BattleCommand_PerishSong ; 376c2 + dw BattleCommand_StartSandstorm ; 376f8 + dw BattleCommand_Endure ; 3766f + dw BattleCommand_CheckCurl ; 37718 + dw BattleCommand_RolloutPower ; 37734 dw BattleCommand5d ; 37791 - dw BattleCommand5e ; 37792 - dw BattleCommand5f ; 377ce - dw BattleCommand60 ; 3784b - dw BattleCommand61 ; 37874 - dw BattleCommand_DamageCalcWithStats ; 35612 - 62 - dw BattleCommand63 ; 3790e - dw BattleCommand64 ; 37939 - dw BattleCommand65 ; 37972 - dw BattleCommand66 ; 37991 - dw BattleCommand67 ; 379c9 - dw BattleCommand68 ; 37b1d - dw BattleCommand69 ; 37b39 - dw BattleCommand6a ; 37b74 - dw BattleCommand6b ; 37b78 - dw BattleCommand6c ; 37b7c - dw BattleCommand6d ; 37be8 - dw BattleCommand6e ; 37bf4 - dw BattleCommand6f ; 37c07 - dw BattleCommand70 ; 361ac - dw BattleCommand71 ; 361b0 - dw BattleCommand72 ; 361b4 - dw BattleCommand73 ; 361b8 - dw BattleCommand74 ; 361bc - dw BattleCommand75 ; 361c0 - dw BattleCommand76 ; 361c4 - dw BattleCommand77 ; 361c8 - dw BattleCommand78 ; 361cc - dw BattleCommand79 ; 361d0 - dw BattleCommand7a ; 361d4 - dw BattleCommand7b ; 361d8 - dw BattleCommand7c ; 361dc - dw BattleCommand7d ; 361e0 - dw BattleCommand7e ; 362ad - dw BattleCommand7f ; 362b1 - dw BattleCommand80 ; 362b5 - dw BattleCommand81 ; 362b9 - dw BattleCommand82 ; 362bd - dw BattleCommand83 ; 362c1 - dw BattleCommand84 ; 362c5 - dw BattleCommand85 ; 362c9 - dw BattleCommand86 ; 362cd - dw BattleCommand87 ; 362d1 - dw BattleCommand88 ; 362d5 - dw BattleCommand89 ; 362d9 - dw BattleCommand8a ; 362dd - dw BattleCommand8b ; 362e1 - dw BattleCommand8c ; 363b8 - dw BattleCommand8d ; 363e9 - dw BattleCommand8e ; 3644c - dw BattleCommand8f ; 3646a - dw BattleCommand90 ; 34ecc + dw BattleCommand_FuryCutter ; 37792 + dw BattleCommand_Attract ; 377ce + dw BattleCommand_HappinessPower ; 3784b + dw BattleCommand_Present ; 37874 + dw BattleCommand_DamageCalc ; 35612 - 62 + dw BattleCommand_FrustrationPower ; 3790e + dw BattleCommand_Safeguard ; 37939 + dw BattleCommand_CheckSafeguard ; 37972 + dw BattleCommand_GetMagnitude ; 37991 + dw BattleCommand_BatonPass ; 379c9 + dw BattleCommand_Pursuit ; 37b1d + dw BattleCommand_ClearHazards ; 37b39 + dw BattleCommand_HealMorn ; 37b74 + dw BattleCommand_HealDay ; 37b78 + dw BattleCommand_HealNite ; 37b7c + dw BattleCommand_HiddenPower ; 37be8 + dw BattleCommand_StartRain ; 37bf4 + dw BattleCommand_StartSun ; 37c07 + dw BattleCommand_AttackUp ; 361ac + dw BattleCommand_DefenseUp ; 361b0 + dw BattleCommand_SpeedUp ; 361b4 + dw BattleCommand_SpecialAttackUp ; 361b8 + dw BattleCommand_SpecialDefenseUp ; 361bc + dw BattleCommand_AccuracyUp ; 361c0 + dw BattleCommand_EvasionUp ; 361c4 + dw BattleCommand_AttackUp2 ; 361c8 + dw BattleCommand_DefenseUp2 ; 361cc + dw BattleCommand_SpeedUp2 ; 361d0 + dw BattleCommand_SpecialAttackUp2 ; 361d4 + dw BattleCommand_SpecialDefenseUp2 ; 361d8 + dw BattleCommand_AccuracyUp2 ; 361dc + dw BattleCommand_EvasionUp2 ; 361e0 + dw BattleCommand_AttackDown ; 362ad + dw BattleCommand_DefenseDown ; 362b1 + dw BattleCommand_SpeedDown ; 362b5 + dw BattleCommand_SpecialAttackDown ; 362b9 + dw BattleCommand_SpecialDefenseDown ; 362bd + dw BattleCommand_AccuracyDown ; 362c1 + dw BattleCommand_EvasionDown ; 362c5 + dw BattleCommand_AttackDown2 ; 362c9 + dw BattleCommand_DefenseDown2 ; 362cd + dw BattleCommand_SpeedDown2 ; 362d1 + dw BattleCommand_SpecialAttackDown2 ; 362d5 + dw BattleCommand_SpecialDefenseDown2 ; 362d9 + dw BattleCommand_AccuracyDown2 ; 362dd + dw BattleCommand_EvasionDown2 ; 362e1 + dw BattleCommand_StatMessageUser ; 363b8 + dw BattleCommand_StatMessageTarget ; 363e9 + dw BattleCommand_StatUpFailText ; 3644c + dw BattleCommand_StatDownFailText ; 3646a + dw BattleCommand_EffectChance ; 34ecc dw BattleCommand91 ; 34fdb dw BattleCommand92 ; 34fd1 dw BattleCommand_SwitchTurn ; 34ffd - 93 - dw BattleCommand94 ; 36a82 - dw BattleCommand95 ; 37c1a - dw BattleCommand96 ; 37c55 - dw BattleCommand97 ; 36f1d - dw BattleCommand98 ; 36f25 - dw BattleCommand99 ; 36f2f - dw BattleCommand9a ; 37c95 - dw BattleCommand9b ; 37d0d - dw BattleCommand9c ; 37d34 - dw BattleCommand9d ; 37ce6 - dw BattleCommand9e ; 37d02 - dw BattleCommand9f ; 37d94 - dw BattleCommanda0 ; 36778 - dw BattleCommanda1 ; 35461 - dw BattleCommanda2 ; 3527b + dw BattleCommand_FakeOut ; 36a82 + dw BattleCommand_BellyDrum ; 37c1a + dw BattleCommand_PsychUp ; 37c55 + dw BattleCommand_Rage ; 36f1d + dw BattleCommand_DoubleFlyingDamage ; 36f25 + dw BattleCommand_DoubleUndergroundDamage ; 36f2f + dw BattleCommand_MirrorCoat ; 37c95 + dw BattleCommand_CheckFutureSight ; 37d0d + dw BattleCommand_FutureSight ; 37d34 + dw BattleCommand_DoubleMinimizeDamage ; 37ce6 + dw BattleCommand_SkipSunCharge ; 37d02 + dw BattleCommand_ThunderAccuracy ; 37d94 + dw BattleCommand_Teleport ; 36778 + dw BattleCommand_BeatUp ; 35461 + dw BattleCommand_RageDamage ; 3527b dw BattleCommanda3 ; 34833 - dw BattleCommanda4 ; 36500 + dw BattleCommand_AllStatsUp ; 36500 dw BattleCommanda5 ; 35165 dw BattleCommanda6 ; 365af dw BattleCommanda7 ; 365c3 dw BattleCommanda8 ; 355b5 - dw BattleCommand_IfAttackMissedResetDamage ; 355d5 - a9 - dw BattleCommandaa ; 37e80 - dw BattleCommandab ; 34f57 - dw BattleCommandac ; 3658f - dw BattleCommandad ; 351a5 - dw BattleCommandae ; 35197 - dw BattleCommandaf ; 365a7 + dw BattleCommand_ClearMissDamage ; 355d5 - a9 + dw BattleCommand_MoveDelay ; 37e80 + dw BattleCommand_HitTarget ; 34f57 + dw BattleCommand_TriStatusChance ; 3658f + dw BattleCommand_SuperEffectiveLoopText ; 351a5 + dw BattleCommand_StartLoop ; 35197 + dw BattleCommand_Curl ; 365a7 ; 3fe86 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 4d2062d4b..610cdb1fd 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -17,9 +17,9 @@ DoEnemyTurn: ; 3400a jr z, DoTurn ld a, [wBattleAction] - cp $e + cp BATTLEACTION_E jr z, DoTurn - cp NUM_MOVES + cp BATTLEACTION_SWITCH1 ret nc ; fallthrough @@ -119,7 +119,7 @@ endr CheckTurn: -BattleCommand01: ; 34084 +BattleCommand_CheckTurn: ; 34084 ; checkturn ; Repurposed as hardcoded turn handling. Useless as a command. @@ -539,7 +539,7 @@ CheckEnemyTurn: ; 3421f ld hl, HurtItselfText call StdBattleTextBox call Function355dd - call BattleCommand_DamageCalcWithStats + call BattleCommand_DamageCalc call BattleCommand0a xor a ld [wcfca], a @@ -652,7 +652,7 @@ HitConfusion: ; 343a5 ld [CriticalHit], a call Function355dd - call BattleCommand_DamageCalcWithStats + call BattleCommand_DamageCalc call BattleCommand0a xor a @@ -675,7 +675,7 @@ HitConfusion: ; 343a5 ; 343db -BattleCommand02: ; 343db +BattleCommand_CheckObedience: ; 343db ; checkobedience ; Enemy can't disobey @@ -1006,7 +1006,7 @@ IgnoreSleepOnly: ; 3451f ; 34541 -BattleCommand03: ; 34541 +BattleCommand_UsedMoveText: ; 34541 ; usedmovetext callba DisplayUsedMoveText ret @@ -1026,7 +1026,7 @@ Function34548: ; 34548 ; 34555 -BattleCommand04: ; 34555 +BattleCommand_DoTurn: ; 34555 call Function34548 ret nz @@ -1098,10 +1098,10 @@ endr ld a, [hBattleTurn] and a ld a, [CurMoveNum] - jr z, .asm_345b8 + jr z, .okay ld a, [CurEnemyMoveNum] -.asm_345b8 +.okay ld c, a ld b, 0 add hl, bc @@ -1120,20 +1120,20 @@ endr add hl, bc ld a, [hl] cp MIMIC - jr z, .asm_345dc - ld hl, wc735 + jr z, .mimic + ld hl, wCaughtMonMoves add hl, bc ld a, [hl] cp MIMIC ret z -.asm_345dc - ld hl, wc739 +.mimic + ld hl, wCaughtMonPP call .asm_345ad ret .asm_345e3 - call BattleCommandaa + call BattleCommand_MoveDelay ; get move effect ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar @@ -1197,7 +1197,7 @@ Function3460b: ; 3460b ; 34631 -BattleCommand05: ; 34631 +BattleCommand_Critical: ; 34631 ; critical ; Determine whether this attack's hit will be critical. @@ -1297,7 +1297,7 @@ endr ; 346b2 -BattleCommand4e: ; 346b2 +BattleCommand_TripleKick: ; 346b2 ; triplekick ld a, [wc689] @@ -1327,7 +1327,7 @@ BattleCommand4e: ; 346b2 ; 346cd -BattleCommand4f: ; 346cd +BattleCommand_KickCounter: ; 346cd ; kickcounter ld hl, wc689 @@ -1336,7 +1336,7 @@ BattleCommand4f: ; 346cd ; 346d2 -BattleCommand_CalcDamageTypeMultiplier: ; 346d2 +BattleCommand_Stab: ; 346d2 ; STAB = Same Type Attack Bonus ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar @@ -2285,7 +2285,7 @@ INCLUDE "battle/type_matchup.asm" ; 34cfd -BattleCommand08: ; 34cfd +BattleCommand_DamageVariation: ; 34cfd ; damagevariation ; Modify the damage spread between 85% and 100%. @@ -2340,7 +2340,7 @@ BattleCommand08: ; 34cfd ; 34d32 -BattleCommand09: ; 34d32 +BattleCommand_CheckHit: ; 34d32 ; checkhit call .DreamEater @@ -2662,7 +2662,7 @@ BattleCommand09: ; 34d32 ; 34ecc -BattleCommand90: ; 34ecc +BattleCommand_EffectChance: ; 34ecc ; effectchance xor a @@ -2738,7 +2738,7 @@ BattleCommand0a: ; 34eee .asm_34f36 call BattleCommanda7 - jp BattleCommandaa + jp BattleCommand_MoveDelay .Rampage ld a, BATTLE_VARS_MOVE_EFFECT @@ -2761,7 +2761,7 @@ BattleCommand0a: ; 34eee ; 34f57 -BattleCommandab: ; 34f57 +BattleCommand_HitTarget: ; 34f57 ; hittarget call BattleCommand0a call BattleCommand0b @@ -2772,7 +2772,7 @@ BattleCommandab: ; 34f57 BattleCommand0b: ; 34f60 ld a, [AttackMissed] and a - jp nz, BattleCommandaa + jp nz, BattleCommand_MoveDelay ld a, [hBattleTurn] and a @@ -2840,7 +2840,7 @@ BattleCommand0b: ; 34f60 BattleCommand92: ; 34fd1 ld a, [AttackMissed] and a - jp nz, BattleCommandaa + jp nz, BattleCommand_MoveDelay xor a jr BattleCommand91_92 @@ -2850,7 +2850,7 @@ BattleCommand92: ; 34fd1 BattleCommand91: ; 34fdb ld a, [AttackMissed] and a - jp nz, BattleCommandaa + jp nz, BattleCommand_MoveDelay ld a, [hBattleTurn] and a @@ -2905,7 +2905,7 @@ BattleCommand0c: ; 35004 ; 35023 -BattleCommand0d: ; 35023 +BattleCommand_ResultText: ; 35023 ; resulttext ld a, [AttackMissed] and a @@ -2946,14 +2946,14 @@ BattleCommand0d: ; 35023 ; 3505e -BattleCommand0e: ; 3505e +BattleCommand_CheckFaint: ; 3505e ; checkfaint ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVar bit SUBSTATUS_ENDURE, a jr z, .asm_35072 - call BattleCommand4b + call BattleCommand_FalseSwipe ld b, $0 jr nc, .asm_3508b ld b, $1 @@ -2968,7 +2968,7 @@ BattleCommand0e: ; 3505e call BattleRandom cp c jr nc, .asm_3508b - call BattleCommand4b + call BattleCommand_FalseSwipe ld b, $0 jr nc, .asm_3508b ld b, $2 @@ -3117,7 +3117,7 @@ BattleCommanda5: ; 35165 ; 35175 -BattleCommand0f: ; 35175 +BattleCommand_CriticalText: ; 35175 ; criticaltext ; Prints the message for critical hits or one-hit KOs. @@ -3150,7 +3150,7 @@ BattleCommand0f: ; 35175 ; 35197 -BattleCommandae: ; 35197 +BattleCommand_StartLoop: ; 35197 ; startloop ld hl, PlayerRolloutCount @@ -3165,7 +3165,7 @@ BattleCommandae: ; 35197 ; 351a5 -BattleCommandad: ; 351a5 +BattleCommand_SuperEffectiveLoopText: ; 351a5 ; supereffectivelooptext ld a, BATTLE_VARS_SUBSTATUS3 @@ -3177,7 +3177,7 @@ BattleCommandad: ; 351a5 ; 351ad -BattleCommand10: ; 351ad +BattleCommand_SuperEffectiveText: ; 351ad ; supereffectivetext ld a, [TypeModifier] @@ -3192,7 +3192,7 @@ BattleCommand10: ; 351ad ; 351c0 -BattleCommand11: ; 351c0 +BattleCommand_CheckDestinyBond: ; 351c0 ; checkdestinybond ; Faint the user if it fainted an opponent using Destiny Bond. @@ -3281,7 +3281,7 @@ BattleCommand11: ; 351c0 ; 35250 -BattleCommand12: ; 35250 +BattleCommand_BuildOpponentRage: ; 35250 ; buildopponentrage jp .start @@ -3313,7 +3313,7 @@ BattleCommand12: ; 35250 ; 3527b -BattleCommanda2: ; 3527b +BattleCommand_RageDamage: ; 3527b ; ragedamage ld a, [CurDamage] @@ -3395,7 +3395,7 @@ DittoMetalPowder: ; 352b1 ; 352dc -BattleCommand06: ; 352dc +BattleCommand_DamageStats: ; 352dc ; damagestats ld a, [hBattleTurn] @@ -3744,7 +3744,7 @@ EnemyAttackDamage: ; 353f6 ; 35461 -BattleCommanda1: ; 35461 +BattleCommand_BeatUp: ; 35461 ; beatup call ResetDamage @@ -3956,7 +3956,7 @@ Function355bd: ; 355bd ret -BattleCommand_IfAttackMissedResetDamage: ; 355d5 +BattleCommand_ClearMissDamage: ; 355d5 ; clearmissdamage ld a, [AttackMissed] and a @@ -4004,7 +4004,7 @@ endr ; 35612 -BattleCommand_DamageCalcWithStats: ; 35612 +BattleCommand_DamageCalc: ; 35612 ; damagecalc ; Return a damage value for move power d, player level e, enemy defense c and player attack b. @@ -4262,7 +4262,7 @@ TypeBoostItems: ; 35703 ; 35726 -BattleCommand3f: ; 35726 +BattleCommand_ConstantDamage: ; 35726 ; constantdamage ld hl, BattleMonLevel @@ -4412,7 +4412,7 @@ BattleCommand3f: ; 35726 call EnemyAttackDamage .notEnemysTurn - call BattleCommand_DamageCalcWithStats + call BattleCommand_DamageCalc pop hl ld [hl], 1 ret @@ -4428,7 +4428,7 @@ BattleCommand3f: ; 35726 ; 35813 -BattleCommand40: ; 35813 +BattleCommand_Counter: ; 35813 ; counter ld a, 1 @@ -4489,7 +4489,7 @@ BattleCommand40: ; 35813 ; 35864 -BattleCommand41: ; 35864 +BattleCommand_Encore: ; 35864 ; encore ld hl, EnemyMonMoves @@ -4613,7 +4613,7 @@ endr ; 35926 -BattleCommand42: ; 35926 +BattleCommand_PainSplit: ; 35926 ; painsplit ld a, [AttackMissed] @@ -4715,7 +4715,7 @@ Function359cd: ; 359cd ; 359d0 -BattleCommand43: ; 359d0 +BattleCommand_Snore: ; 359d0 ; snore ld a, BATTLE_VARS_STATUS call GetBattleVar @@ -4729,7 +4729,7 @@ BattleCommand43: ; 359d0 ; 359e6 -BattleCommand44: ; 359e6 +BattleCommand_Conversion2: ; 359e6 ; conversion2 ld a, [AttackMissed] @@ -4796,7 +4796,7 @@ BattleCommand44: ; 359e6 ; 35a53 -BattleCommand45: ; 35a53 +BattleCommand_LockOn: ; 35a53 ; lockon call CheckSubstituteOpp @@ -4820,7 +4820,7 @@ BattleCommand45: ; 35a53 ; 35a74 -BattleCommand46: ; 35a74 +BattleCommand_Sketch: ; 35a74 ; sketch call Function372d8 @@ -4927,7 +4927,7 @@ BattleCommand46: ; 35a74 ; 35b16 -BattleCommand47: ; 35b16 +BattleCommand_DefrostOpponent: ; 35b16 ; defrostopponent ; Thaw the opponent if frozen, and ; raise the user's Attack one stage. @@ -4946,7 +4946,7 @@ BattleCommand47: ; 35b16 ld a, EFFECT_ATTACK_UP ld [hl], a - call BattleCommand1c + call BattleCommand_StatUp pop af pop hl @@ -4955,7 +4955,7 @@ BattleCommand47: ; 35b16 ; 35b33 -BattleCommand48: ; 35b33 +BattleCommand_SleepTalk: ; 35b33 ; sleeptalk call Function372d8 @@ -5100,7 +5100,7 @@ BattleCommand48: ; 35b33 ; 35bff -BattleCommand49: ; 35bff +BattleCommand_DestinyBond: ; 35bff ; destinybond ld a, BATTLE_VARS_SUBSTATUS5 @@ -5112,7 +5112,7 @@ BattleCommand49: ; 35bff ; 35c0f -BattleCommand4a: ; 35c0f +BattleCommand_Spite: ; 35c0f ; spite ld a, [AttackMissed] @@ -5200,7 +5200,7 @@ endr ; 35c94 -BattleCommand4b: ; 35c94 +BattleCommand_FalseSwipe: ; 35c94 ; falseswipe ld hl, EnemyMonHP @@ -5244,7 +5244,7 @@ BattleCommand4b: ; 35c94 ; 35cc9 -BattleCommand4c: ; 35cc9 +BattleCommand_HealBell: ; 35cc9 ; healbell ld a, BATTLE_VARS_SUBSTATUS1 @@ -5505,7 +5505,7 @@ UpdateMoveData: ; 35e40 ; 35e5c -BattleCommand14: ; 35e5c +BattleCommand_SleepTarget: ; 35e5c ; sleeptarget call GetOpponentItem @@ -5608,7 +5608,7 @@ Function35ece: ; 35ece ; 35eee -BattleCommand13: ; 35eee +BattleCommand_PoisonTarget: ; 35eee ; poisontarget call CheckSubstituteOpp @@ -5644,7 +5644,7 @@ BattleCommand13: ; 35eee ; 35f2c -BattleCommand2f: ; 35f2c +BattleCommand_Poison: ; 35f2c ; poison ld hl, DoesntAffectText @@ -5782,7 +5782,7 @@ Function35ff5: ; 35ff5 ; 35fff -BattleCommand15: ; 35fff +BattleCommand_DrainTarget: ; 35fff ; draintarget call Function36011 ld hl, SuckedHealthText @@ -5790,7 +5790,7 @@ BattleCommand15: ; 35fff ; 36008 -BattleCommand16: ; 36008 +BattleCommand_EatDream: ; 36008 ; eatdream call Function36011 ld hl, DreamEatenText @@ -5880,7 +5880,7 @@ Function36011: ; 36011 ; 3608c -BattleCommand17: ; 3608c +BattleCommand_BurnTarget: ; 3608c ; burntarget xor a @@ -5950,7 +5950,7 @@ Defrost: ; 360dd ; 36102 -BattleCommand18: ; 36102 +BattleCommand_FreezeTarget: ; 36102 ; freezetarget xor a @@ -6004,7 +6004,7 @@ BattleCommand18: ; 36102 ; 36165 -BattleCommand19: ; 36165 +BattleCommand_ParalyzeTarget: ; 36165 ; paralyzetarget xor a @@ -6042,63 +6042,63 @@ BattleCommand19: ; 36165 ; 361ac -BattleCommand70: ; 361ac +BattleCommand_AttackUp: ; 361ac ; attackup ld b, $0 - jr BattleCommand1c -BattleCommand71: ; 361b0 + jr BattleCommand_StatUp +BattleCommand_DefenseUp: ; 361b0 ; defenseup ld b, $1 - jr BattleCommand1c -BattleCommand72: ; 361b4 + jr BattleCommand_StatUp +BattleCommand_SpeedUp: ; 361b4 ; speedup ld b, $2 - jr BattleCommand1c -BattleCommand73: ; 361b8 + jr BattleCommand_StatUp +BattleCommand_SpecialAttackUp: ; 361b8 ; specialattackup ld b, $3 - jr BattleCommand1c -BattleCommand74: ; 361bc + jr BattleCommand_StatUp +BattleCommand_SpecialDefenseUp: ; 361bc ; specialdefenseup ld b, $4 - jr BattleCommand1c -BattleCommand75: ; 361c0 + jr BattleCommand_StatUp +BattleCommand_AccuracyUp: ; 361c0 ; accuracyup ld b, $5 - jr BattleCommand1c -BattleCommand76: ; 361c4 + jr BattleCommand_StatUp +BattleCommand_EvasionUp: ; 361c4 ; evasionup ld b, $6 - jr BattleCommand1c -BattleCommand77: ; 361c8 + jr BattleCommand_StatUp +BattleCommand_AttackUp2: ; 361c8 ; attackup2 ld b, $10 - jr BattleCommand1c -BattleCommand78: ; 361cc + jr BattleCommand_StatUp +BattleCommand_DefenseUp2: ; 361cc ; defenseup2 ld b, $11 - jr BattleCommand1c -BattleCommand79: ; 361d0 + jr BattleCommand_StatUp +BattleCommand_SpeedUp2: ; 361d0 ; speedup2 ld b, $12 - jr BattleCommand1c -BattleCommand7a: ; 361d4 + jr BattleCommand_StatUp +BattleCommand_SpecialAttackUp2: ; 361d4 ; specialattackup2 ld b, $13 - jr BattleCommand1c -BattleCommand7b: ; 361d8 + jr BattleCommand_StatUp +BattleCommand_SpecialDefenseUp2: ; 361d8 ; specialdefenseup2 ld b, $14 - jr BattleCommand1c -BattleCommand7c: ; 361dc + jr BattleCommand_StatUp +BattleCommand_AccuracyUp2: ; 361dc ; accuracyup2 ld b, $15 - jr BattleCommand1c -BattleCommand7d: ; 361e0 + jr BattleCommand_StatUp +BattleCommand_EvasionUp2: ; 361e0 ; evasionup2 ld b, $16 - jr BattleCommand1c -BattleCommand1c: ; 361e4 + jr BattleCommand_StatUp +BattleCommand_StatUp: ; 361e4 ; statup call CheckIfStatCanBeRaised ld a, [FailedMessage] @@ -6232,67 +6232,67 @@ Function36281: ; 36281 ld [$ffd4], a call CallBattleCore call WaitBGMap - jp BattleCommandaa + jp BattleCommand_MoveDelay ; 362ad -BattleCommand7e: ; 362ad +BattleCommand_AttackDown: ; 362ad ; attackdown ld a, ATTACK - jr BattleCommand1d -BattleCommand7f: ; 362b1 + jr BattleCommand_StatDown +BattleCommand_DefenseDown: ; 362b1 ; defensedown ld a, DEFENSE - jr BattleCommand1d -BattleCommand80: ; 362b5 + jr BattleCommand_StatDown +BattleCommand_SpeedDown: ; 362b5 ; speeddown ld a, SPEED - jr BattleCommand1d -BattleCommand81: ; 362b9 + jr BattleCommand_StatDown +BattleCommand_SpecialAttackDown: ; 362b9 ; specialattackdown ld a, SP_ATTACK - jr BattleCommand1d -BattleCommand82: ; 362bd + jr BattleCommand_StatDown +BattleCommand_SpecialDefenseDown: ; 362bd ; specialdefensedown ld a, SP_DEFENSE - jr BattleCommand1d -BattleCommand83: ; 362c1 + jr BattleCommand_StatDown +BattleCommand_AccuracyDown: ; 362c1 ; accuracydown ld a, ACCURACY - jr BattleCommand1d -BattleCommand84: ; 362c5 + jr BattleCommand_StatDown +BattleCommand_EvasionDown: ; 362c5 ; evasiondown ld a, EVASION - jr BattleCommand1d -BattleCommand85: ; 362c9 + jr BattleCommand_StatDown +BattleCommand_AttackDown2: ; 362c9 ; attackdown2 ld a, $10 | ATTACK - jr BattleCommand1d -BattleCommand86: ; 362cd + jr BattleCommand_StatDown +BattleCommand_DefenseDown2: ; 362cd ; defensedown2 ld a, $10 | DEFENSE - jr BattleCommand1d -BattleCommand87: ; 362d1 + jr BattleCommand_StatDown +BattleCommand_SpeedDown2: ; 362d1 ; speeddown2 ld a, $10 | SPEED - jr BattleCommand1d -BattleCommand88: ; 362d5 + jr BattleCommand_StatDown +BattleCommand_SpecialAttackDown2: ; 362d5 ; specialattackdown2 ld a, $10 | SP_ATTACK - jr BattleCommand1d -BattleCommand89: ; 362d9 + jr BattleCommand_StatDown +BattleCommand_SpecialDefenseDown2: ; 362d9 ; specialdefensedown2 ld a, $10 | SP_DEFENSE - jr BattleCommand1d -BattleCommand8a: ; 362dd + jr BattleCommand_StatDown +BattleCommand_AccuracyDown2: ; 362dd ; accuracydown2 ld a, $10 | ACCURACY - jr BattleCommand1d -BattleCommand8b: ; 362e1 + jr BattleCommand_StatDown +BattleCommand_EvasionDown2: ; 362e1 ; evasiondown2 ld a, $10 | EVASION -BattleCommand1d: ; 362e3 +BattleCommand_StatDown: ; 362e3 ; statdown ld [LoweredStat], a @@ -6443,7 +6443,7 @@ Function36391: ; 36391 ; 363b8 -BattleCommand8c: ; 363b8 +BattleCommand_StatMessageUser: ; 363b8 ld a, [FailedMessage] and a ret nz @@ -6477,7 +6477,7 @@ BattleCommand8c: ; 363b8 ; 363e9 -BattleCommand8d: ; 363e9 +BattleCommand_StatMessageTarget: ; 363e9 ld a, [FailedMessage] and a ret nz @@ -6555,13 +6555,13 @@ Function3641a: ; 3641a ; 3644c -BattleCommand8e: ; 3644c +BattleCommand_StatUpFailText: ; 3644c ; statupfailtext ld a, [FailedMessage] and a ret z push af - call BattleCommandaa + call BattleCommand_MoveDelay pop af dec a jp z, TryPrintButItFailed @@ -6575,13 +6575,13 @@ BattleCommand8e: ; 3644c ; 3646a -BattleCommand8f: ; 3646a +BattleCommand_StatDownFailText: ; 3646a ; statdownfailtext ld a, [FailedMessage] and a ret z push af - call BattleCommandaa + call BattleCommand_MoveDelay pop af dec a jp z, TryPrintButItFailed @@ -6647,33 +6647,33 @@ StatLevelMulipliers: ; 364f2 ; 36500 -BattleCommanda4: ; 36500 +BattleCommand_AllStatsUp: ; 36500 ; allstatsup ; Attack call ResetMiss - call BattleCommand70 - call BattleCommand8c + call BattleCommand_AttackUp + call BattleCommand_StatMessageUser ; Defense call ResetMiss - call BattleCommand71 - call BattleCommand8c + call BattleCommand_DefenseUp + call BattleCommand_StatMessageUser ; Speed call ResetMiss - call BattleCommand72 - call BattleCommand8c + call BattleCommand_SpeedUp + call BattleCommand_StatMessageUser ; Special Attack call ResetMiss - call BattleCommand73 - call BattleCommand8c + call BattleCommand_SpecialAttackUp + call BattleCommand_StatMessageUser ; Special Defense call ResetMiss - call BattleCommand74 - jp BattleCommand8c + call BattleCommand_SpecialDefenseUp + jp BattleCommand_StatMessageUser ; 3652d @@ -6757,10 +6757,10 @@ Function36532: ; 36532 ; 3658f -BattleCommandac: ; 3658f +BattleCommand_TriStatusChance: ; 3658f ; tristatuschance - call BattleCommand90 + call BattleCommand_EffectChance ; 1/3 chance of each status .loop @@ -6774,13 +6774,13 @@ BattleCommandac: ; 3658f rst JumpTable ret .ptrs - dw BattleCommand19 ; paralyze - dw BattleCommand18 ; freeze - dw BattleCommand17 ; burn + dw BattleCommand_ParalyzeTarget ; paralyze + dw BattleCommand_FreezeTarget ; freeze + dw BattleCommand_BurnTarget ; burn ; 365a7 -BattleCommandaf: ; 365a7 +BattleCommand_Curl: ; 365a7 ; curl ld a, BATTLE_VARS_SUBSTATUS2 call GetBattleVarAddr @@ -6790,7 +6790,7 @@ BattleCommandaf: ; 365a7 BattleCommanda6: ; 365af - ld hl, Function3f43d + ld hl, GetMonBackpic ld a, [hBattleTurn] and a jr z, .asm_365ba ; 365b5 $3 @@ -6932,7 +6932,7 @@ endr ; 36671 -BattleCommand21: ; 36671 +BattleCommand_StoreEnergy: ; 36671 ; storeenergy ld a, BATTLE_VARS_SUBSTATUS3 @@ -7005,7 +7005,7 @@ BattleCommand21: ; 36671 ; 366e5 -BattleCommand22: ; 366e5 +BattleCommand_UnleashEnergy: ; 366e5 ; unleashenergy ld de, PlayerDamageTaken @@ -7038,7 +7038,7 @@ endr ; 3671a -BattleCommand3e: ; 3671a +BattleCommand_CheckRampage: ; 3671a ; checkrampage ld de, PlayerRolloutCount @@ -7076,7 +7076,7 @@ endr ; 36751 -BattleCommand3d: ; 36751 +BattleCommand_Rampage: ; 36751 ; rampage ; No rampage during Sleep Talk. @@ -7104,7 +7104,7 @@ BattleCommand3d: ; 36751 ; 36778 -BattleCommanda0: ; 36778 +BattleCommand_Teleport: ; 36778 ; teleport ld a, [BattleType] @@ -7196,7 +7196,7 @@ Function36804: ; 36804 ; 3680f -BattleCommand23: ; 3680f +BattleCommand_ForceSwitch: ; 3680f ; forceswitch ld a, [BattleType] @@ -7391,7 +7391,7 @@ BattleCommand23: ; 3680f .asm_36969 call BattleCommand0a - call BattleCommandaa + call BattleCommand_MoveDelay call BattleCommand0c jp PrintButItFailed @@ -7445,7 +7445,7 @@ Function36994: ; 36994 ; 369b6 -BattleCommand24: ; 369b6 +BattleCommand_EndLoop: ; 369b6 ; endloop ; Loop back to the command before 'critical'. @@ -7578,7 +7578,7 @@ BattleCommand24: ; 369b6 ; 36a82 -BattleCommand94: ; 36a82 +BattleCommand_FakeOut: ; 36a82 ld a, [AttackMissed] and a ret nz @@ -7601,7 +7601,7 @@ BattleCommand94: ; 36a82 ; 36aa0 -BattleCommand25: ; 36aa0 +BattleCommand_FlinchTarget: ; 36aa0 call CheckSubstituteOpp ret nz @@ -7640,7 +7640,7 @@ Function36abf: ; 36abf ; 36ac9 -BattleCommand4d: ; 36ac9 +BattleCommand_KingsRock: ; 36ac9 ; kingsrock ld a, [AttackMissed] @@ -7670,7 +7670,7 @@ BattleCommand4d: ; 36ac9 ; 36af3 -BattleCommand26: ; 36af3 +BattleCommand_OHKO: ; 36af3 ; ohko call ResetDamage @@ -7700,7 +7700,7 @@ BattleCommand26: ; 36af3 ld a, $ff .asm_36b1e ld [bc], a - call BattleCommand09 + call BattleCommand_CheckHit ld hl, CurDamage ld a, $ff ld [hli], a @@ -7717,7 +7717,7 @@ BattleCommand26: ; 36af3 ; 36b3a -BattleCommand3a: ; 36b3a +BattleCommand_CheckCharge: ; 36b3a ; checkcharge ld a, BATTLE_VARS_SUBSTATUS3 @@ -7732,16 +7732,16 @@ BattleCommand3a: ; 36b3a ; 36b4d -BattleCommand39: ; 36b4d +BattleCommand_Charge: ; 36b4d ; charge - call BattleCommand38 + call BattleCommand_ClearText ld a, BATTLE_VARS_STATUS call GetBattleVar and SLP jr z, .asm_36b65 - call BattleCommandaa + call BattleCommand_MoveDelay call BattleCommand0c call PrintButItFailed jp EndMoveEffect @@ -7881,7 +7881,7 @@ BattleCommand3c: ; 36c2c ; 36c2d -BattleCommand3b: ; 36c2d +BattleCommand_TrapTarget: ; 36c2d ; traptarget ld a, [AttackMissed] @@ -7939,7 +7939,7 @@ endr ; 36c7e -BattleCommand28: ; 36c7e +BattleCommand_Mist: ; 36c7e ; mist ld a, BATTLE_VARS_SUBSTATUS4 @@ -7956,7 +7956,7 @@ BattleCommand28: ; 36c7e ; 36c98 -BattleCommand29: ; 36c98 +BattleCommand_FocusEnergy: ; 36c98 ; focusenergy ld a, BATTLE_VARS_SUBSTATUS4 @@ -7973,7 +7973,7 @@ BattleCommand29: ; 36c98 ; 36cb2 -BattleCommand27: ; 36cb2 +BattleCommand_Recoil: ; 36cb2 ; recoil ld hl, BattleMonMaxHP @@ -8039,7 +8039,7 @@ endr ; 36d1d -BattleCommand2b: ; 36d1d +BattleCommand_ConfuseTarget: ; 36d1d ; confusetarget call GetOpponentItem @@ -8060,7 +8060,7 @@ BattleCommand2b: ; 36d1d jr Function36d70 -BattleCommand2a: ; 36d3b +BattleCommand_Confuse: ; 36d3b ; confuse call GetOpponentItem @@ -8151,7 +8151,7 @@ Function36db6: ; 36db6 ; 36dc7 -BattleCommand30: ; 36dc7 +BattleCommand_Paralyze: ; 36dc7 ; paralyze ld a, BATTLE_VARS_STATUS_OPP @@ -8267,10 +8267,10 @@ Function36e5b: ; 36e5b ; 36e7c -BattleCommand31: ; 36e7c +BattleCommand_Substitute: ; 36e7c ; substitute - call BattleCommandaa + call BattleCommand_MoveDelay ld hl, BattleMonMaxHP ld de, PlayerSubstituteHP ld a, [hBattleTurn] @@ -8358,7 +8358,7 @@ endr jp StdBattleTextBox ; 36f0b -BattleCommand32: ; 36f0b +BattleCommand_RechargeNextTurn: ; 36f0b ; rechargenextturn ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr @@ -8377,7 +8377,7 @@ EndRechargeOpp: ; 36f13 ; 36f1d -BattleCommand97: ; 36f1d +BattleCommand_Rage: ; 36f1d ; rage ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr @@ -8386,7 +8386,7 @@ BattleCommand97: ; 36f1d ; 36f25 -BattleCommand98: ; 36f25 +BattleCommand_DoubleFlyingDamage: ; 36f25 ; doubleflyingdamage ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar @@ -8396,7 +8396,7 @@ BattleCommand98: ; 36f25 ; 36f2f -BattleCommand99: ; 36f2f +BattleCommand_DoubleUndergroundDamage: ; 36f2f ; doubleundergrounddamage ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar @@ -8422,11 +8422,11 @@ DoubleDamage: ; 36f37 ; 36f46 -BattleCommand33: ; 36f46 +BattleCommand_Mimic: ; 36f46 ; mimic call Function372d8 - call BattleCommandaa + call BattleCommand_MoveDelay ld a, [AttackMissed] and a jr nz, .asm_36f9a @@ -8474,7 +8474,7 @@ BattleCommand33: ; 36f46 ; 36f9d -BattleCommand35: ; 36f9d +BattleCommand_LeechSeed: ; 36f9d ; leechseed ld a, [AttackMissed] and a @@ -8517,14 +8517,14 @@ BattleCommand35: ; 36f9d ; 36fe1 -BattleCommand36: ; 36fe1 +BattleCommand_Splash: ; 36fe1 call AnimateCurrentMove callba MobileFn_1060e5 jp PrintNothingHappened ; 36fed -BattleCommand37: ; 36fed +BattleCommand_Disable: ; 36fed ; disable ld a, [AttackMissed] @@ -8598,7 +8598,7 @@ BattleCommand37: ; 36fed ; 3705c -BattleCommand1e: ; 3705c +BattleCommand_PayDay: ; 3705c ; payday xor a @@ -8627,7 +8627,7 @@ BattleCommand1e: ; 3705c ; 3707f -BattleCommand1f: ; 3707f +BattleCommand_Conversion: ; 3707f ; conversion ld hl, BattleMonMoves @@ -8724,7 +8724,7 @@ BattleCommand1f: ; 3707f ; 3710e -BattleCommand20: ; 3710e +BattleCommand_ResetStats: ; 3710e ; resetstats ld a, 7 ; neutral @@ -8759,7 +8759,7 @@ BattleCommand20: ; 3710e ; 3713e -BattleCommand2c: ; 3713e +BattleCommand_Heal: ; 3713e ; heal ld de, BattleMonHP @@ -8788,7 +8788,7 @@ BattleCommand2c: ; 3713e push hl push de push af - call BattleCommandaa + call BattleCommand_MoveDelay ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVarAddr res SUBSTATUS_TOXIC, [hl] @@ -8839,7 +8839,7 @@ BattleCommand2c: ; 3713e ; 371cd -BattleCommand2d: ; 371cd +BattleCommand_Transform: ; 371cd ; transform call Function372d8 @@ -8961,7 +8961,7 @@ endr call Function37e36 jr .asm_372ae .asm_372a8 - call BattleCommandaa + call BattleCommand_MoveDelay call BattleCommanda6 .asm_372ae xor a @@ -9032,7 +9032,7 @@ ResetActorDisable: ; 372e7 ; 372fc -BattleCommand2e: ; 372fc +BattleCommand_Screen: ; 372fc ; screen ld hl, PlayerScreens @@ -9151,7 +9151,7 @@ CheckSubstituteOpp: ; 37378 ; 37380 -BattleCommand1a: ; 37380 +BattleCommand_SelfDestruct: ; 37380 callba MobileFn_10610d ld a, $4 ld [wcfca], a @@ -9233,7 +9233,7 @@ ResetTurn: ; 3747b INCLUDE "battle/effects/thief.asm" -BattleCommand51: ; 37517 +BattleCommand_ArenaTrap: ; 37517 ; arenatrap ; Doesn't work on an absent opponent. @@ -9264,7 +9264,7 @@ BattleCommand51: ; 37517 INCLUDE "battle/effects/nightmare.asm" -BattleCommand53: ; 37563 +BattleCommand_Defrost: ; 37563 ; defrost ; Thaw the user. @@ -9320,7 +9320,7 @@ BattleCommand5d: ; 37791 ; 37792 -BattleCommand5e: ; 37792 +BattleCommand_FuryCutter: ; 37792 ; furycutter ld hl, PlayerFuryCutterCount @@ -9381,7 +9381,7 @@ ResetFuryCutterCount: ; 377be ; 377ce -BattleCommand5f: ; 377ce +BattleCommand_Attract: ; 377ce ; attract ld a, [AttackMissed] and a @@ -9462,7 +9462,7 @@ Function377f5: ; 377f5 ; 3784b -BattleCommand60: ; 3784b +BattleCommand_HappinessPower: ; 3784b ; happinesspower push bc ld hl, BattleMonHappiness @@ -9490,7 +9490,7 @@ BattleCommand60: ; 3784b ; 37874 -BattleCommand61: ; 37874 +BattleCommand_Present: ; 37874 ; present ld a, [wLinkMode] @@ -9500,7 +9500,7 @@ BattleCommand61: ; 37874 push de .asm_3787d - call BattleCommand_CalcDamageTypeMultiplier + call BattleCommand_Stab ld a, [wLinkMode] cp $3 @@ -9585,7 +9585,7 @@ BattleCommand61: ; 37874 ; 3790e -BattleCommand63: ; 3790e +BattleCommand_FrustrationPower: ; 3790e ; frustrationpower push bc @@ -9615,7 +9615,7 @@ BattleCommand63: ; 3790e ; 37939 -BattleCommand64: ; 37939 +BattleCommand_Safeguard: ; 37939 ; safeguard ld hl, PlayerScreens @@ -9655,7 +9655,7 @@ Function37962: ; 37962 ; 37972 -BattleCommand65: ; 37972 +BattleCommand_CheckSafeguard: ; 37972 ; checksafeguard ld hl, EnemyScreens ld a, [hBattleTurn] @@ -9667,14 +9667,14 @@ BattleCommand65: ; 37972 ret z ld a, 1 ld [AttackMissed], a - call BattleCommandaa + call BattleCommand_MoveDelay ld hl, SafeguardProtectText call StdBattleTextBox jp EndMoveEffect ; 37991 -BattleCommand66: ; 37991 +BattleCommand_GetMagnitude: ; 37991 ; getmagnitude push bc @@ -9695,7 +9695,7 @@ endr inc hl ld a, [hl] ld [wd265], a - call BattleCommandaa + call BattleCommand_MoveDelay ld hl, MagnitudeText call StdBattleTextBox pop de @@ -9714,7 +9714,7 @@ endr ; 379c9 -BattleCommand67: ; 379c9 +BattleCommand_BatonPass: ; 379c9 ; batonpass ld a, [hBattleTurn] @@ -9828,19 +9828,19 @@ BatonPass_LinkEnemySwitch: ; 37a82 call CallBattleCore ld a, [OTPartyCount] - add NUM_MOVES + add BATTLEACTION_SWITCH1 ld b, a ld a, [wBattleAction] - cp NUM_MOVES - jr c, .asm_37aa0 + cp BATTLEACTION_SWITCH1 + jr c, .baton_pass cp b - jr c, .asm_37aa8 + jr c, .switch -.asm_37aa0 +.baton_pass ld a, [CurOTMon] - add NUM_MOVES + add BATTLEACTION_SWITCH1 ld [wBattleAction], a -.asm_37aa8 +.switch jp WriteBackup ; 37aab @@ -9950,7 +9950,7 @@ CheckAnyOtherAliveMons: ; 37b01 ; 37b1d -BattleCommand68: ; 37b1d +BattleCommand_Pursuit: ; 37b1d ; pursuit ; Double damage if the opponent is switching. @@ -9977,7 +9977,7 @@ BattleCommand68: ; 37b1d ; 37b39 -BattleCommand69: ; 37b39 +BattleCommand_ClearHazards: ; 37b39 ; clearhazards ld a, BATTLE_VARS_SUBSTATUS4 @@ -10016,25 +10016,25 @@ BattleCommand69: ; 37b39 ; 37b74 -BattleCommand6a: ; 37b74 +BattleCommand_HealMorn: ; 37b74 ; healmorn ld b, MORN - jr BattleCommand6a6c + jr BattleCommand_HealMorn6c ; 37b78 -BattleCommand6b: ; 37b78 +BattleCommand_HealDay: ; 37b78 ; healday ld b, DAY - jr BattleCommand6a6c + jr BattleCommand_HealMorn6c ; 37b7c -BattleCommand6c: ; 37b7c +BattleCommand_HealNite: ; 37b7c ; healnite ld b, NITE ; fallthrough ; 37b7e -BattleCommand6a6c: ; 37b7e +BattleCommand_HealMorn6c: ; 37b7e ; Time- and weather-sensitive heal. ld hl, BattleMonMaxHP @@ -10120,7 +10120,7 @@ endr ; 37be8 -BattleCommand6d: ; 37be8 +BattleCommand_HiddenPower: ; 37be8 ; hiddenpower ld a, [AttackMissed] @@ -10131,7 +10131,7 @@ BattleCommand6d: ; 37be8 ; 37bf4 -BattleCommand6e: ; 37bf4 +BattleCommand_StartRain: ; 37bf4 ; startrain ld a, WEATHER_RAIN ld [Weather], a @@ -10143,7 +10143,7 @@ BattleCommand6e: ; 37bf4 ; 37c07 -BattleCommand6f: ; 37c07 +BattleCommand_StartSun: ; 37c07 ; startsun ld a, WEATHER_SUN ld [Weather], a @@ -10155,9 +10155,9 @@ BattleCommand6f: ; 37c07 ; 37c1a -BattleCommand95: ; 37c1a +BattleCommand_BellyDrum: ; 37c1a ; bellydrum - call BattleCommand77 + call BattleCommand_AttackUp2 ld a, [AttackMissed] and a jr nz, .asm_37c4f @@ -10176,7 +10176,7 @@ BattleCommand95: ; 37c1a .asm_37c41 push af - call BattleCommand77 + call BattleCommand_AttackUp2 pop af dec a jr nz, .asm_37c41 @@ -10189,7 +10189,7 @@ BattleCommand95: ; 37c1a ; 37c55 -BattleCommand96: ; 37c55 +BattleCommand_PsychUp: ; 37c55 ; psychup ld hl, EnemyStatLevels @@ -10236,7 +10236,7 @@ BattleCommand96: ; 37c55 ; 37c95 -BattleCommand9a: ; 37c95 +BattleCommand_MirrorCoat: ; 37c95 ; mirrorcoat ld a, 1 @@ -10298,7 +10298,7 @@ BattleCommand9a: ; 37c95 ; 37ce6 -BattleCommand9d: ; 37ce6 +BattleCommand_DoubleMinimizeDamage: ; 37ce6 ; doubleminimizedamage ld hl, wc6fa @@ -10322,7 +10322,7 @@ BattleCommand9d: ; 37ce6 ; 37d02 -BattleCommand9e: ; 37d02 +BattleCommand_SkipSunCharge: ; 37d02 ; skipsuncharge ld a, [Weather] cp WEATHER_SUN @@ -10332,7 +10332,7 @@ BattleCommand9e: ; 37d02 ; 37d0d -BattleCommand9b: ; 37d0d +BattleCommand_CheckFutureSight: ; 37d0d ; checkfuturesight ld hl, wc71d @@ -10360,7 +10360,7 @@ BattleCommand9b: ; 37d0d jp SkipToBattleCommand ; 37d34 -BattleCommand9c: ; 37d34 +BattleCommand_FutureSight: ; 37d34 ; futuresight call Function34548 @@ -10387,7 +10387,7 @@ BattleCommand9c: ; 37d34 ld a, $4 ld [hl], a call BattleCommand0a - call BattleCommandaa + call BattleCommand_MoveDelay ld hl, ForesawAttackText call StdBattleTextBox call BattleCommand0c @@ -10416,7 +10416,7 @@ BattleCommand9c: ; 37d34 ; 37d94 -BattleCommand9f: ; 37d94 +BattleCommand_ThunderAccuracy: ; 37d94 ; thunderaccuracy ld a, BATTLE_VARS_MOVE_TYPE @@ -10617,12 +10617,12 @@ CallBattleCore: ; 37e73 AnimateFailedMove: ; 37e77 call BattleCommand0a - call BattleCommandaa + call BattleCommand_MoveDelay jp BattleCommand0c ; 37e80 -BattleCommandaa: ; 37e80 +BattleCommand_MoveDelay: ; 37e80 ; movedelay ; Wait 40 frames. ld c, 40 @@ -10630,7 +10630,7 @@ BattleCommandaa: ; 37e80 ; 37e85 -BattleCommand38: ; 37e85 +BattleCommand_ClearText: ; 37e85 ; cleartext ; Used in multi-hit moves. diff --git a/battle/effects/curse.asm b/battle/effects/curse.asm index 06706aba1..2c9ce4365 100644 --- a/battle/effects/curse.asm +++ b/battle/effects/curse.asm @@ -1,4 +1,4 @@ -BattleCommand54: ; 37588 +BattleCommand_Curse: ; 37588 ; curse ld de, BattleMonType1 @@ -45,14 +45,14 @@ BattleCommand54: ; 37588 ld a, $2 call Function36532 call BattleCommand_SwitchTurn - call BattleCommand8d + call BattleCommand_StatMessageTarget call ResetMiss call BattleCommand_SwitchTurn - call BattleCommand70 - call BattleCommand8c + call BattleCommand_AttackUp + call BattleCommand_StatMessageUser call ResetMiss - call BattleCommand71 - jp BattleCommand8c + call BattleCommand_DefenseUp + jp BattleCommand_StatMessageUser .ghost diff --git a/battle/effects/endure.asm b/battle/effects/endure.asm index 026fde417..ed4329ff5 100644 --- a/battle/effects/endure.asm +++ b/battle/effects/endure.asm @@ -1,4 +1,4 @@ -BattleCommand5a: ; 3766f +BattleCommand_Endure: ; 3766f ; endure ; Endure shares code with Protect. See protect.asm. diff --git a/battle/effects/foresight.asm b/battle/effects/foresight.asm index 775fbd78d..a8834fd9c 100644 --- a/battle/effects/foresight.asm +++ b/battle/effects/foresight.asm @@ -1,4 +1,4 @@ -BattleCommand57: ; 376a0 +BattleCommand_Foresight: ; 376a0 ; foresight ld a, [AttackMissed] diff --git a/battle/effects/metronome.asm b/battle/effects/metronome.asm index 6815377d0..ba20de47d 100644 --- a/battle/effects/metronome.asm +++ b/battle/effects/metronome.asm @@ -1,4 +1,4 @@ -BattleCommand34: ; 37418 +BattleCommand_Metronome: ; 37418 ; metronome call Function372d8 diff --git a/battle/effects/mirror_move.asm b/battle/effects/mirror_move.asm index 32a1998bb..146c6df03 100644 --- a/battle/effects/mirror_move.asm +++ b/battle/effects/mirror_move.asm @@ -1,4 +1,4 @@ -BattleCommand1b: ; 373c9 +BattleCommand_MirrorMove: ; 373c9 ; mirrormove call Function372d8 @@ -47,6 +47,6 @@ BattleCommand1b: ; 373c9 ld [wc689], a .done - call BattleCommandaa + call BattleCommand_MoveDelay jp ResetTurn ; 37418 diff --git a/battle/effects/nightmare.asm b/battle/effects/nightmare.asm index da39affc1..788e3de41 100644 --- a/battle/effects/nightmare.asm +++ b/battle/effects/nightmare.asm @@ -1,4 +1,4 @@ -BattleCommand52: ; 37536 +BattleCommand_Nightmare: ; 37536 ; nightmare ; Can't hit an absent opponent. diff --git a/battle/effects/perish_song.asm b/battle/effects/perish_song.asm index 95391f3bd..ac491ef6b 100644 --- a/battle/effects/perish_song.asm +++ b/battle/effects/perish_song.asm @@ -1,4 +1,4 @@ -BattleCommand58: ; 376c2 +BattleCommand_PerishSong: ; 376c2 ; perishsong diff --git a/battle/effects/protect.asm b/battle/effects/protect.asm index eaf011ffe..ada796001 100644 --- a/battle/effects/protect.asm +++ b/battle/effects/protect.asm @@ -1,4 +1,4 @@ -BattleCommand55: ; 37618 +BattleCommand_Protect: ; 37618 ; protect call ProtectChance ret c diff --git a/battle/effects/rollout.asm b/battle/effects/rollout.asm index 3826734b4..fe4c9189b 100644 --- a/battle/effects/rollout.asm +++ b/battle/effects/rollout.asm @@ -1,7 +1,7 @@ MAX_ROLLOUT_COUNT EQU 5 -BattleCommand5b: ; 37718 +BattleCommand_CheckCurl: ; 37718 ; checkcurl ld de, PlayerRolloutCount @@ -25,7 +25,7 @@ BattleCommand5b: ; 37718 ; 37734 -BattleCommand5c: ; 37734 +BattleCommand_RolloutPower: ; 37734 ; rolloutpower ld a, BATTLE_VARS_STATUS diff --git a/battle/effects/sandstorm.asm b/battle/effects/sandstorm.asm index a33db7f8c..27b8e8e2c 100644 --- a/battle/effects/sandstorm.asm +++ b/battle/effects/sandstorm.asm @@ -1,4 +1,4 @@ -BattleCommand59: ; 376f8 +BattleCommand_StartSandstorm: ; 376f8 ; startsandstorm ld a, [Weather] diff --git a/battle/effects/spikes.asm b/battle/effects/spikes.asm index 68894b1c1..16a2c035d 100644 --- a/battle/effects/spikes.asm +++ b/battle/effects/spikes.asm @@ -1,4 +1,4 @@ -BattleCommand56: ; 37683 +BattleCommand_Spikes: ; 37683 ; spikes ld hl, EnemyScreens diff --git a/battle/effects/thief.asm b/battle/effects/thief.asm index 730fcd66c..f344edef9 100644 --- a/battle/effects/thief.asm +++ b/battle/effects/thief.asm @@ -1,4 +1,4 @@ -BattleCommand50: ; 37492 +BattleCommand_Thief: ; 37492 ; thief ld a, [hBattleTurn] diff --git a/battle/hidden_power.asm b/battle/hidden_power.asm index 7eb720401..68b0e80f8 100644 --- a/battle/hidden_power.asm +++ b/battle/hidden_power.asm @@ -106,7 +106,7 @@ endr ; based on the new type, but keep base power. ld a, d push af - callba BattleCommand06 ; damagestats + callba BattleCommand_DamageStats ; damagestats pop af ld d, a ret diff --git a/engine/predef.asm b/engine/predef.asm index e0b6e787b..e370fdda6 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -54,7 +54,7 @@ PredefPointers:: ; 856b add_predef UpdateEnemyHUD add_predef StartBattle add_predef FillInExpBar - add_predef Function3f43d ; $18 + add_predef GetMonBackpic ; $18 add_predef Function3f47c add_predef LearnLevelMoves add_predef FillMoves diff --git a/home/flag.asm b/home/flag.asm index b4dff4531..099f4bf00 100644 --- a/home/flag.asm +++ b/home/flag.asm @@ -102,7 +102,7 @@ FlagAction:: ; 0x2e76 ; 0x2ead -Function2ead:: ; 2ead +CheckReceivedDex:: ; 2ead ld de, ENGINE_POKEDEX ld b, CHECK_FLAG callba EngineFlagAction diff --git a/items/item_effects.asm b/items/item_effects.asm index c1d891326..8f1717947 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -210,11 +210,11 @@ LoveBall: ParkBall: ; e8a2 ld a, [wBattleMode] dec a - jp nz, Functionf7a0 + jp nz, UseBallInTrainerBattle ld a, [PartyCount] cp PARTY_LENGTH - jr nz, .asm_e8c0 + jr nz, .room_in_party ld a, BANK(sBoxCount) call GetSRAMBank @@ -223,9 +223,9 @@ ParkBall: ; e8a2 call CloseSRAM jp z, Ball_BoxIsFullMessage -.asm_e8c0 +.room_in_party xor a - ld [wc64e], a + ld [wCaughtMon], a ld a, [CurItem] cp PARK_BALL call nz, Functionedfa @@ -239,38 +239,38 @@ ParkBall: ; e8a2 ld b, a ld a, [BattleType] cp BATTLETYPE_TUTORIAL - jp z, .asm_e99c + jp z, .catch_without_fail ld a, [CurItem] cp MASTER_BALL - jp z, .asm_e99c + jp z, .catch_without_fail ld a, [CurItem] ld c, a ld hl, BallMultiplierFunctionTable -.asm_e8f2 +.get_multiplier_loop ld a, [hli] cp $ff - jr z, .asm_e906 + jr z, .skip_or_return_from_ball_fn cp c - jr z, .asm_e8fe + jr z, .call_ball_function rept 2 inc hl endr - jr .asm_e8f2 + jr .get_multiplier_loop -.asm_e8fe +.call_ball_function ld a, [hli] ld h, [hl] ld l, a - ld de, .asm_e906 + ld de, .skip_or_return_from_ball_fn push de jp [hl] -.asm_e906 +.skip_or_return_from_ball_fn ld a, [CurItem] cp LEVEL_BALL ld a, b - jp z, .asm_e98e + jp z, .skip_hp_calc ld a, b ld [hMultiplicand + 2], a @@ -295,7 +295,7 @@ endr ld e, l ld a, d and a - jr z, .asm_e940 + jr z, .okay_1 srl d rr e @@ -308,9 +308,9 @@ endr ld a, c and a - jr nz, .asm_e940 + jr nz, .okay_1 ld c, $1 -.asm_e940 +.okay_1 ld b, e push bc @@ -350,9 +350,9 @@ endr .addstatus ld a, b add c - jr nc, .asm_e977 + jr nc, .max_1 ld a, $ff -.asm_e977 +.max_1 ld d, a push de @@ -375,11 +375,11 @@ endr pop de ld a, d - jr nz, .asm_e98e + jr nz, .skip_hp_calc add c - jr nc, .asm_e98e + jr nc, .skip_hp_calc ld a, $ff -.asm_e98e +.skip_hp_calc ld b, a ld [Buffer1], a @@ -387,22 +387,22 @@ endr cp b ld a, 0 - jr z, .asm_e99c - jr nc, .asm_e99f + jr z, .catch_without_fail + jr nc, .fail_to_catch -.asm_e99c +.catch_without_fail ld a, [EnemyMonSpecies] -.asm_e99f - ld [wc64e], a +.fail_to_catch + ld [wCaughtMon], a ld c, 20 call DelayFrames ld a, [CurItem] cp POKE_BALL + 1 ; Assumes Master/Ultra/Great come before - jr c, .asm_e9b0 + jr c, .not_kurt_ball ld a, POKE_BALL -.asm_e9b0 +.not_kurt_ball ld [wc689], a ld de, ANIM_THROW_POKE_BALL @@ -416,23 +416,23 @@ endr ld [wcfca], a predef PlayBattleAnim - ld a, [wc64e] + ld a, [wCaughtMon] and a - jr nz, .asm_e9f5 + jr nz, .caught ld a, [Buffer2] cp $1 ld hl, UnknownText_0xedb5 - jp z, .asm_ebdc + jp z, .shake_and_break_free cp $2 ld hl, UnknownText_0xedba - jp z, .asm_ebdc + jp z, .shake_and_break_free cp $3 ld hl, UnknownText_0xedbf - jp z, .asm_ebdc + jp z, .shake_and_break_free cp $4 ld hl, UnknownText_0xedc4 - jp z, .asm_ebdc -.asm_e9f5 + jp z, .shake_and_break_free +.caught ld hl, EnemyMonStatus ld a, [hli] @@ -492,29 +492,29 @@ endr ld hl, EnemySubStatus5 bit SUBSTATUS_TRANSFORMED, [hl] - jr nz, .asm_ea67 - ld hl, wc735 + jr nz, .Transformed + ld hl, wCaughtMonMoves ld de, EnemyMonMoves ld bc, NUM_MOVES call CopyBytes - ld hl, wc739 + ld hl, wCaughtMonPP ld de, EnemyMonPP ld bc, NUM_MOVES call CopyBytes -.asm_ea67 +.Transformed ld a, [EnemyMonSpecies] - ld [wc64e], a + ld [wCaughtMon], a ld [CurPartySpecies], a ld [wd265], a ld a, [BattleType] cp BATTLETYPE_TUTORIAL - jp z, .asm_ebd9 + jp z, .FinishTutorial callba MobileFn_10607f - ld hl, UnknownText_0xedc9 + ld hl, Text_GotchaMonWasCaught call PrintText call ClearSprites @@ -530,10 +530,10 @@ endr call SetSeenAndCaughtMon pop af and a - jr nz, .asm_eab7 + jr nz, .skip_pokedex - call Function2ead - jr z, .asm_eab7 + call CheckReceivedDex + jr z, .skip_pokedex ld hl, UnknownText_0xedf0 call PrintText @@ -544,19 +544,19 @@ endr ld [wd265], a predef Functionfb877 -.asm_eab7 +.skip_pokedex ld a, [BattleType] cp BATTLETYPE_CONTEST - jp z, .asm_ebd1 + jp z, .catch_bug_contest_mon cp BATTLETYPE_CELEBI - jr nz, .asm_eac8 + jr nz, .not_celebi ld hl, wBattleResult set 6, [hl] -.asm_eac8 +.not_celebi ld a, [PartyCount] cp PARTY_LENGTH - jr z, .asm_eb3c + jr z, .SendToPC xor a ; PARTYMON ld [MonType], a @@ -568,7 +568,7 @@ endr ld a, [CurItem] cp FRIEND_BALL - jr nz, .asm_eaf8 + jr nz, .SkipPartyMonFriendBall ld a, [PartyCount] dec a @@ -578,7 +578,7 @@ endr ld a, FRIEND_BALL_HAPPINESS ld [hl], a -.asm_eaf8 +.SkipPartyMonFriendBall ld hl, UnknownText_0xedf5 call PrintText @@ -588,7 +588,7 @@ endr call GetPokemonName call YesNoBox - jp c, .asm_ebe2 + jp c, .return_from_capture ld a, [PartyCount] dec a @@ -613,9 +613,9 @@ endr ld de, StringBuffer1 call InitName - jp .asm_ebe2 + jp .return_from_capture -.asm_eb3c +.SendToPC call ClearSprites predef SentPkmnIntoBox @@ -627,17 +627,17 @@ endr ld a, [sBoxCount] cp MONS_PER_BOX - jr nz, .asm_eb5b + jr nz, .BoxNotFullYet ld hl, wBattleResult set 7, [hl] -.asm_eb5b +.BoxNotFullYet ld a, [CurItem] cp FRIEND_BALL - jr nz, .asm_eb67 + jr nz, .SkipBoxMonFriendBall ; Bug: overwrites the happiness of the first mon in the box! ld a, FRIEND_BALL_HAPPINESS ld [sBoxMon1Happiness], a -.asm_eb67 +.SkipBoxMonFriendBall call CloseSRAM ld hl, UnknownText_0xedf5 @@ -648,7 +648,7 @@ endr call GetPokemonName call YesNoBox - jr c, .asm_ebaf + jr c, .SkipBoxMonNickname xor a ld [CurPartyMon], a @@ -672,7 +672,7 @@ endr call CloseSRAM -.asm_ebaf +.SkipBoxMonNickname ld a, BANK(sBoxMonNicknames) call GetSRAMBank @@ -688,20 +688,20 @@ endr call FadeToWhite call LoadStandardFont - jr .asm_ebe2 + jr .return_from_capture -.asm_ebd1 +.catch_bug_contest_mon callba BugContest_SetCaughtContestMon - jr .asm_ebe2 + jr .return_from_capture -.asm_ebd9 - ld hl, UnknownText_0xedc9 +.FinishTutorial + ld hl, Text_GotchaMonWasCaught -.asm_ebdc +.shake_and_break_free call PrintText call ClearSprites -.asm_ebe2 +.return_from_capture ld a, [BattleType] cp BATTLETYPE_TUTORIAL ret z @@ -710,7 +710,7 @@ endr cp BATTLETYPE_CONTEST jr z, .used_park_ball - ld a, [wc64e] + ld a, [wCaughtMon] and a jr z, .toss @@ -733,16 +733,16 @@ endr BallMultiplierFunctionTable: ; table of routines that increase or decrease the catch rate based on ; which ball is used in a certain situation. - dbw ULTRA_BALL, UltraBallMultiplier - dbw GREAT_BALL, GreatBallMultiplier - dbw 8, SafariBallMultiplier ; Safari Ball, leftover from RBY - dbw HEAVY_BALL, HeavyBallMultiplier - dbw LEVEL_BALL, LevelBallMultiplier - dbw LURE_BALL, LureBallMultiplier - dbw FAST_BALL, FastBallMultiplier - dbw MOON_BALL, MoonBallMultiplier - dbw LOVE_BALL, LoveBallMultiplier - dbw PARK_BALL, ParkBallMultiplier + dbw ULTRA_BALL, UltraBallMultiplier + dbw GREAT_BALL, GreatBallMultiplier + dbw SAFARI_BALL, SafariBallMultiplier ; Safari Ball, leftover from RBY + dbw HEAVY_BALL, HeavyBallMultiplier + dbw LEVEL_BALL, LevelBallMultiplier + dbw LURE_BALL, LureBallMultiplier + dbw FAST_BALL, FastBallMultiplier + dbw MOON_BALL, MoonBallMultiplier + dbw LOVE_BALL, LoveBallMultiplier + dbw PARK_BALL, ParkBallMultiplier db $ff UltraBallMultiplier: @@ -1128,7 +1128,7 @@ UnknownText_0xedc4: ; 0xedc4 db "@" ; 0xedc9 -UnknownText_0xedc9: ; 0xedc9 +Text_GotchaMonWasCaught: ; 0xedc9 ; Gotcha! @ was caught!@ @ text_jump UnknownText_0x1c5b17 start_asm @@ -1213,7 +1213,7 @@ SunStone: ; ee0f and a jr z, .asm_ee35 - jp Functionf795 + jp UseDisposableItem .asm_ee35 call WontHaveAnyEffectMessage @@ -1270,7 +1270,7 @@ Calcium: ; ee3d ld c, HAPPINESS_USEDITEM callba ChangeHappiness - jp Functionf795 + jp UseDisposableItem Functionee83: ; ee83 @@ -1450,7 +1450,7 @@ RareCandy: ; ef14 ld [wd1e9], a callba Function421d8 - jp Functionf795 + jp UseDisposableItem ; efad @@ -1520,7 +1520,7 @@ Functionefda: ; efda (3:6fda) call Functionf030 call Play_SFX_FULL_HEAL call Functionf279 - call Functionf795 + call UseDisposableItem ld a, $0 ret @@ -1695,7 +1695,7 @@ Functionf0d6: ; f0d6 ld a, $f7 ld [PartyMenuActionText], a call Functionf279 - call Functionf795 + call UseDisposableItem ld a, 0 ret ; f128 @@ -1735,7 +1735,7 @@ Functionf144: ; f144 ld a, $f5 ld [PartyMenuActionText], a call Functionf279 - call Functionf795 + call UseDisposableItem ld a, 0 ret ; f16a @@ -1827,7 +1827,7 @@ Functionf1a9: ; f1a9 (3:71a9) ld a, $f5 ld [PartyMenuActionText], a call Functionf279 - call Functionf795 + call UseDisposableItem ld a, 0 ret @@ -2234,7 +2234,7 @@ EscapeRope: ; f44f ld a, [wd0ec] cp 1 - call z, Functionf795 + call z, UseDisposableItem ret ; f462 @@ -2344,8 +2344,8 @@ endr callba CheckIfStatCanBeRaised call WaitSFX - callba BattleCommand8c - callba BattleCommand8e + callba BattleCommand_StatMessageUser + callba BattleCommand_StatUpFailText ld a, [CurBattleMon] ld [CurPartyMon], a @@ -2599,7 +2599,7 @@ Mysteryberry: ; f5bf Functionf64c: ; f64c call ClearPalettes - jp Functionf795 + jp UseDisposableItem ; f652 Functionf652: ; f652 @@ -2805,7 +2805,7 @@ SacredAsh: ; f753 ld a, [wd0ec] cp $1 ret nz - call Functionf795 + call UseDisposableItem ret ; f763 @@ -2825,7 +2825,7 @@ Function_0xf769: ; f769 ld hl, UnknownText_0xf778 call PrintText - jp Functionf795 + jp UseDisposableItem ; f778 UnknownText_0xf778: ; 0xf778 @@ -2944,14 +2944,14 @@ Functionf789: ; f789 ; fallthrough ; f795 -Functionf795: ; f795 +UseDisposableItem: ; f795 ld hl, NumItems ld a, 1 ld [wItemQuantityChangeBuffer], a jp TossItem ; f7a0 -Functionf7a0: ; f7a0 +UseBallInTrainerBattle: ; f7a0 call Functionedfa ld de, ANIM_THROW_POKE_BALL ld a, e @@ -2967,7 +2967,7 @@ Functionf7a0: ; f7a0 call PrintText ld hl, DontBeAThiefText call PrintText - jr Functionf795 + jr UseDisposableItem ; f7ca WontHaveAnyEffect_NotUsedMessage: ; f7ca diff --git a/main.asm b/main.asm index 8ef76f748..1846a38b6 100644 --- a/main.asm +++ b/main.asm @@ -16375,7 +16375,7 @@ PokemonCenterPC: ; 1559a ; 1563e Function1563e: ; 1563e - call Function2ead + call CheckReceivedDex jr nz, .asm_15646 ld a, $0 ret @@ -25054,7 +25054,7 @@ Function2715c: ; 2715c ld a, [BattleType] cp BATTLETYPE_TUTORIAL jr z, .gettutorialbackpic - callba Function3f43d + callba GetMonBackpic jr .continue .gettutorialbackpic diff --git a/wram.asm b/wram.asm index 85722942b..61c699383 100644 --- a/wram.asm +++ b/wram.asm @@ -454,7 +454,9 @@ wc64c:: ds 1 wc64d:: ds 1 -wc64e:: ds 2 +wCaughtMon:: +wc64e:: ds 1 + ds 1 wEnemyTrainerItem1:: ds 1 wEnemyTrainerItem2:: ds 1 wc652:: ds 4 @@ -831,8 +833,10 @@ wc734:: BattleEnded:: ; c734 ds 1 +wCaughtMonMoves:: wc735:: ds 1 wc736:: ds 3 +wCaughtMonPP:: wc739:: ds 4 wc73d:: ds 1 wc73e:: ds 1 -- cgit v1.2.3 From ae2970d73bf97e1a99037b25214354330a727f0a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 6 Nov 2015 16:42:38 -0500 Subject: Sprite movement function labels --- battle/core.asm | 126 +++++++------- battle/effect_command_pointers.asm | 12 +- battle/effect_commands.asm | 118 ++++++------- battle/effects/metronome.asm | 2 +- battle/effects/mirror_move.asm | 2 +- battle/moves/move_effects.asm | 198 ++++++++++----------- constants/map_constants.asm | 2 - constants/sprite_constants.asm | 62 +++---- engine/color.asm | 4 +- engine/map_objects.asm | 249 ++++++++++++++------------- engine/predef.asm | 2 +- home/map_objects.asm | 22 +-- macros/move_effect.asm | 8 +- main.asm | 10 +- maps/AzaleaGym.asm | 4 +- maps/AzaleaPokeCenter1F.asm | 2 +- maps/AzaleaTown.asm | 12 +- maps/BattleTower1F.asm | 2 +- maps/BattleTowerOutside.asm | 4 +- maps/BlackthornDodrioTradeHouse.asm | 2 +- maps/BlackthornDragonSpeechHouse.asm | 4 +- maps/BlackthornGym2F.asm | 12 +- maps/BlackthornPokeCenter1F.asm | 2 +- maps/BluesHouse.asm | 2 +- maps/BurnedTower1F.asm | 8 +- maps/BurnedTowerB1F.asm | 10 +- maps/CeladonCity.asm | 4 +- maps/CeladonDeptStore1F.asm | 2 +- maps/CeladonDeptStore3F.asm | 2 +- maps/CeladonDeptStore5F.asm | 4 +- maps/CeladonDeptStore6F.asm | 2 +- maps/CeladonMansion1F.asm | 8 +- maps/CeladonMansion3F.asm | 2 +- maps/CeruleanCity.asm | 8 +- maps/CeruleanPokeCenter1F.asm | 2 +- maps/CeruleanPoliceStation.asm | 2 +- maps/CeruleanTradeSpeechHouse.asm | 6 +- maps/CharcoalKiln.asm | 6 +- maps/CherrygroveCity.asm | 2 +- maps/CianwoodCity.asm | 16 +- maps/CianwoodGym.asm | 8 +- maps/CinnabarIsland.asm | 2 +- maps/CopycatsHouse1F.asm | 2 +- maps/CopycatsHouse2F.asm | 2 +- maps/DanceTheatre.asm | 12 +- maps/DarkCaveBlackthornEntrance.asm | 6 +- maps/DarkCaveVioletEntrance.asm | 16 +- maps/DragonsDenB1F.asm | 8 +- maps/EarlsPokemonAcademy.asm | 2 +- maps/EcruteakCity.asm | 8 +- maps/EcruteakHouse.asm | 4 +- maps/EcruteakItemfinderHouse.asm | 2 +- maps/EcruteakLugiaSpeechHouse.asm | 2 +- maps/EcruteakPokeCenter1F.asm | 4 +- maps/ElmsLab.asm | 8 +- maps/FastShipB1F.asm | 6 +- maps/FastShipCabins_NNW_NNE_NE.asm | 6 +- maps/FastShipCabins_SE_SSE_CaptainsCabin.asm | 6 +- maps/FastShipCabins_SW_SSW_NW.asm | 8 +- maps/FightingDojo.asm | 2 +- maps/FuchsiaCity.asm | 8 +- maps/FuchsiaGym.asm | 10 +- maps/GoldenrodBillsHouse.asm | 2 +- maps/GoldenrodCity.asm | 8 +- maps/GoldenrodDeptStore1F.asm | 2 +- maps/GoldenrodDeptStore2F.asm | 2 +- maps/GoldenrodDeptStore3F.asm | 2 +- maps/GoldenrodDeptStore5F.asm | 6 +- maps/GoldenrodDeptStoreB1F.asm | 12 +- maps/GoldenrodDeptStoreRoof.asm | 4 +- maps/GoldenrodFlowerShop.asm | 2 +- maps/GoldenrodGameCorner.asm | 4 +- maps/GoldenrodMagnetTrainStation.asm | 2 +- maps/IcePath1F.asm | 6 +- maps/IcePathB1F.asm | 10 +- maps/IcePathB2FBlackthornSide.asm | 2 +- maps/IcePathB2FMahoganySide.asm | 12 +- maps/IcePathB3F.asm | 4 +- maps/IlexForest.asm | 10 +- maps/IndigoPlateauPokeCenter1F.asm | 4 +- maps/KrissHouse2F.asm | 8 +- maps/KurtsHouse.asm | 4 +- maps/LakeofRage.asm | 6 +- maps/LakeofRageHiddenPowerHouse.asm | 2 +- maps/LakeofRageMagikarpHouse.asm | 2 +- maps/LavRadioTower1F.asm | 2 +- maps/LavenderMart.asm | 2 +- maps/MahoganyGym.asm | 2 +- maps/MahoganyMart1F.asm | 2 +- maps/MahoganyPokeCenter1F.asm | 2 +- maps/ManiasHouse.asm | 2 +- maps/MountMoonSquare.asm | 2 +- maps/MountMortar1FInside.asm | 18 +- maps/MountMortar1FOutside.asm | 4 +- maps/MountMortar2FInside.asm | 14 +- maps/MountMortarB1F.asm | 12 +- maps/MrFujisHouse.asm | 8 +- maps/NationalPark.asm | 16 +- maps/NationalParkBugContest.asm | 18 +- maps/NewBarkTown.asm | 2 +- maps/OaksLab.asm | 2 +- maps/OlivineCity.asm | 4 +- maps/OlivineHouseBeta.asm | 2 +- maps/OlivineLighthouse3F.asm | 2 +- maps/OlivineLighthouse5F.asm | 8 +- maps/OlivineLighthouse6F.asm | 2 +- maps/OlivinePunishmentSpeechHouse.asm | 2 +- maps/OlivineVoltorbHouse.asm | 2 +- maps/PalletTown.asm | 2 +- maps/PewterCity.asm | 8 +- maps/PewterMart.asm | 2 +- maps/PewterNidoranSpeechHouse.asm | 2 +- maps/PewterPokeCenter1F.asm | 2 +- maps/PokemonFanClub.asm | 2 +- maps/PowerPlant.asm | 2 +- maps/RadioTower2F.asm | 2 +- maps/RadioTower3F.asm | 4 +- maps/RadioTower4F.asm | 6 +- maps/RadioTower5F.asm | 4 +- maps/RockTunnel1F.asm | 4 +- maps/RockTunnelB1F.asm | 6 +- maps/Route1.asm | 4 +- maps/Route10PokeCenter1F.asm | 2 +- maps/Route10South.asm | 2 +- maps/Route11.asm | 6 +- maps/Route12.asm | 6 +- maps/Route14.asm | 4 +- maps/Route15.asm | 4 +- maps/Route17.asm | 4 +- maps/Route18.asm | 2 +- maps/Route19.asm | 4 +- maps/Route2.asm | 12 +- maps/Route20.asm | 6 +- maps/Route21.asm | 2 +- maps/Route24.asm | 2 +- maps/Route25.asm | 2 +- maps/Route26.asm | 6 +- maps/Route26DayofWeekSiblingsHouse.asm | 2 +- maps/Route27.asm | 8 +- maps/Route28FamousSpeechHouse.asm | 2 +- maps/Route29.asm | 8 +- maps/Route3.asm | 4 +- maps/Route30.asm | 6 +- maps/Route31.asm | 10 +- maps/Route31VioletGate.asm | 2 +- maps/Route32.asm | 6 +- maps/Route33.asm | 6 +- maps/Route34.asm | 8 +- maps/Route34IlexForestGate.asm | 2 +- maps/Route35.asm | 12 +- maps/Route35Goldenrodgate.asm | 2 +- maps/Route35NationalParkgate.asm | 2 +- maps/Route36.asm | 8 +- maps/Route36RuinsofAlphgate.asm | 2 +- maps/Route37.asm | 10 +- maps/Route38.asm | 10 +- maps/Route39.asm | 12 +- maps/Route39Barn.asm | 2 +- maps/Route4.asm | 2 +- maps/Route40.asm | 14 +- maps/Route40BattleTowerGate.asm | 2 +- maps/Route41.asm | 14 +- maps/Route42.asm | 14 +- maps/Route43.asm | 8 +- maps/Route44.asm | 12 +- maps/Route45.asm | 16 +- maps/Route46.asm | 6 +- maps/Route5CleanseTagSpeechHouse.asm | 2 +- maps/Route5UndergroundEntrance.asm | 2 +- maps/Route8.asm | 4 +- maps/Route9.asm | 4 +- maps/RuinsofAlphAerodactylItemRoom.asm | 8 +- maps/RuinsofAlphHoOhItemRoom.asm | 8 +- maps/RuinsofAlphInnerChamber.asm | 4 +- maps/RuinsofAlphKabutoItemRoom.asm | 8 +- maps/RuinsofAlphOmanyteItemRoom.asm | 8 +- maps/RuinsofAlphOutside.asm | 4 +- maps/RuinsofAlphResearchCenter.asm | 2 +- maps/SaffronCity.asm | 4 +- maps/SaffronGym.asm | 8 +- maps/SaffronMart.asm | 2 +- maps/SaffronPokeCenter1F.asm | 4 +- maps/SaffronTrainStation.asm | 2 +- maps/SilverCaveItemRooms.asm | 4 +- maps/SilverCaveRoom1.asm | 8 +- maps/SilverCaveRoom2.asm | 6 +- maps/SlowpokeWellB1F.asm | 8 +- maps/SlowpokeWellB2F.asm | 4 +- maps/SproutTower1F.asm | 4 +- maps/SproutTower2F.asm | 4 +- maps/SproutTower3F.asm | 4 +- maps/TeamRocketBaseB1F.asm | 6 +- maps/TeamRocketBaseB2F.asm | 16 +- maps/TeamRocketBaseB3F.asm | 14 +- maps/TinTower1F.asm | 14 +- maps/TinTower3F.asm | 2 +- maps/TinTower4F.asm | 6 +- maps/TinTower5F.asm | 2 +- maps/TinTower6F.asm | 2 +- maps/TinTower7F.asm | 2 +- maps/TinTower8F.asm | 6 +- maps/TinTower9F.asm | 2 +- maps/TinTowerRoof.asm | 2 +- maps/TohjoFalls.asm | 2 +- maps/UndergroundPathSwitchRoomEntrances.asm | 4 +- maps/UndergroundWarehouse.asm | 8 +- maps/UnionCave1F.asm | 12 +- maps/UnionCaveB1F.asm | 8 +- maps/UnionCaveB2F.asm | 8 +- maps/VermilionCity.asm | 8 +- maps/VermilionMagnetTrainSpeechHouse.asm | 2 +- maps/VermilionPokeCenter1F.asm | 2 +- maps/VictoryRoad.asm | 10 +- maps/VioletCity.asm | 14 +- maps/VioletMart.asm | 2 +- maps/VioletOnixTradeHouse.asm | 2 +- maps/VioletPokeCenter1F.asm | 2 +- maps/ViridianCity.asm | 4 +- maps/ViridianNicknameSpeechHouse.asm | 4 +- maps/WarehouseEntrance.asm | 4 +- maps/WhirlIslandB1F.asm | 12 +- maps/WhirlIslandB2F.asm | 6 +- maps/WhirlIslandLugiaChamber.asm | 2 +- maps/WhirlIslandNE.asm | 2 +- maps/WhirlIslandSW.asm | 2 +- maps/WiseTriosRoom.asm | 2 +- 226 files changed, 981 insertions(+), 982 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index 02ee90932..18cb3c2fd 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -87,7 +87,7 @@ Function3c000: ; 3c000 call Function3d490 call LoadTileMapToTempTileMap call Function3d57a - call Function3da0d + call InitBattleMon call ResetPlayerStatLevels call SendOutPkmnText call NewBattleMonStatus @@ -2917,7 +2917,7 @@ Function3d227: ; 3d227 ld a, [CurPartyMon] ld [CurBattleMon], a call Function3d581 - call Function3da0d + call InitBattleMon call ResetPlayerStatLevels call ClearPalettes call DelayFrame @@ -2945,7 +2945,7 @@ Function3d2b3: ; 3d2b3 ld a, [CurPartyMon] ld [CurBattleMon], a call Function3d581 - call Function3da0d + call InitBattleMon call ResetPlayerStatLevels call SendOutPkmnText call NewBattleMonStatus @@ -3745,7 +3745,7 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 ld a, OTPARTYMON ld [MonType], a predef CopyPkmnToTempMon - call Function3f47c + call GetMonFrontpic xor a ld [wcfca], a @@ -3754,7 +3754,7 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim - call Function3da79 + call BattleCheckEnemyShininess jr nc, .asm_3d800 ld a, 1 ; shiny anim ld [wc689], a @@ -4062,7 +4062,7 @@ TryToRunAwayFromBattle: ; 3d8b3 ; 3da0d -Function3da0d: ; 3da0d +InitBattleMon: ; 3da0d ld a, MON_SPECIES call GetPartyParamLocation ld de, BattleMonSpecies @@ -4096,28 +4096,28 @@ endr call CopyBytes ld hl, BattleMonAttack ld de, PlayerStats - ld bc, 2 * 5 + ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_ATK) call CopyBytes call Function3ec2c call BadgeStatBoosts ret ; 3da74 -Function3da74: ; 3da74 - call Function3da85 - jr Function3da7c +BattleCheckPlayerShininess: ; 3da74 + call GetPartyMonDVs + jr BattleCheckShininess -Function3da79: ; 3da79 - call Function3da97 +BattleCheckEnemyShininess: ; 3da79 + call GetEnemyMonDVs -Function3da7c: ; 3da7c +BattleCheckShininess: ; 3da7c ld b, h ld c, l callab CheckShininess ret ; 3da85 -Function3da85: ; 3da85 +GetPartyMonDVs: ; 3da85 ld hl, BattleMonDVs ld a, [PlayerSubStatus5] bit SUBSTATUS_TRANSFORMED, a @@ -4127,7 +4127,7 @@ Function3da85: ; 3da85 jp GetPartyLocation ; 3da97 -Function3da97: ; 3da97 +GetEnemyMonDVs: ; 3da97 ld hl, EnemyMonDVs ld a, [EnemySubStatus5] bit SUBSTATUS_TRANSFORMED, a @@ -4214,7 +4214,7 @@ Function3db32: ; 3db32 ld a, [CurPartyMon] ld [CurBattleMon], a call Function3d581 - call Function3da0d + call InitBattleMon call ResetPlayerStatLevels call NewBattleMonStatus call BreakAttraction @@ -4258,7 +4258,7 @@ Function3db5f: ; 3db5f ld [wc689], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim - call Function3da74 + call BattleCheckPlayerShininess jr nc, .asm_3dbbc ld a, $1 ld [wc689], a @@ -5252,7 +5252,7 @@ BattleMenu_Pack: ; 3e1c7 call DelayFrame call Function3ed9f call GetMonBackpic - call Function3f47c + call GetMonFrontpic call ExitMenu call WaitBGMap call Function3ee27 @@ -5287,7 +5287,7 @@ Function3e234: ; 3e234 call GetMonBackpic .asm_3e25d - call Function3f47c + call GetMonFrontpic ld a, $1 ld [MenuSelection2], a call ExitMenu @@ -5523,7 +5523,7 @@ BattleMonEntrance: ; 3e40b ld a, [CurBattleMon] ld [CurPartyMon], a call Function3d581 - call Function3da0d + call InitBattleMon call ResetPlayerStatLevels call SendOutPkmnText call NewBattleMonStatus @@ -5549,7 +5549,7 @@ PassedBattleMonEntrance: ; 3e459 ld a, [CurPartyMon] ld [CurBattleMon], a call Function3d581 - call Function3da0d + call InitBattleMon xor a ld [wd265], a call ApplyStatLevelMultiplierOnAllStats @@ -8392,7 +8392,7 @@ Function3f46f: ; 3f46f ret ; 3f47c -Function3f47c: ; 3f47c +GetMonFrontpic: ; 3f47c ld a, [EnemySubStatus4] bit SUBSTATUS_SUBSTITUTE, a ld hl, BattleAnimCmd_DD @@ -8470,8 +8470,8 @@ Function3f4dd: ; 3f4dd callba FindFirstAliveMon call DisableSpriteUpdates callba ClearBattleRAM - call Function3f55e - call Function3f568 + call InitEnemy + call BackUpVBGMap2 ld b, $0 call GetSGBLayout ld hl, rLCDC @@ -8510,20 +8510,20 @@ LoadTrainerOrWildMonPic: ; 3f54e ret ; 3f55e -Function3f55e: ; 3f55e +InitEnemy: ; 3f55e ld a, [OtherTrainerClass] and a - jp nz, Function3f594 ; trainer - jp Function3f607 ; wild + jp nz, InitEnemyTrainer ; trainer + jp InitEnemyWildmon ; wild ; 3f568 -Function3f568: ; 3f568 +BackUpVBGMap2: ; 3f568 ld a, [rSVBK] push af - ld a, $6 + ld a, $6 ; BANK(w6_d000) ld [rSVBK], a ld hl, w6_d000 - ld bc, $400 + ld bc, $40 tiles ; VBGMap3 - VBGMap2 ld a, $2 call ByteFill ld a, [rVBK] @@ -8531,8 +8531,8 @@ Function3f568: ; 3f568 ld a, $1 ld [rVBK], a ld de, w6_d000 - ld hl, VBGMap0 - ld bc, $0f40 + ld hl, VBGMap0 ; VBGMap2 + lb bc, BANK(BackUpVBGMap2), $40 call Request2bpp pop af ld [rVBK], a @@ -8541,7 +8541,7 @@ Function3f568: ; 3f568 ret ; 3f594 -Function3f594: ; 3f594 +InitEnemyTrainer: ; 3f594 ld [TrainerClass], a callba MobileFn_10606a xor a @@ -8596,7 +8596,7 @@ Function3f594: ; 3f594 ret ; 3f607 -Function3f607: ; 3f607 +InitEnemyWildmon: ; 3f607 ld a, $1 ld [wBattleMode], a callba MobileFn_10605d @@ -9360,8 +9360,8 @@ Function3fb54: ; 3fb54 Function3fb6c: ; 3fb6c call Function3fbf8 hlcoord 0, 12 - ld b, $4 - ld c, $12 + ld b, 4 + ld c, 18 call TextBox callba MobileTextBorder hlcoord 1, 5 @@ -9385,7 +9385,7 @@ Function3fb6c: ; 3fb6c ld a, $31 ld [$ffad], a hlcoord 2, 6 - ld bc, $0606 + lb bc, 6, 6 predef FillBox xor a ld [hWY], a @@ -9421,13 +9421,13 @@ Function3fbd6: ; 3fbd6 ; 3fbf8 Function3fbf8: ; 3fbf8 - call GetBattleBackpic - call Function3fc30 + call GetTrainerBackpic + call CopyBackpic ret ; 3fbff -GetBattleBackpic: ; 3fbff +GetTrainerBackpic: ; 3fbff ; Load the player character's backpic (6x6) into VRAM starting from $9310. ; Special exception for Dude. @@ -9462,7 +9462,7 @@ GetBattleBackpic: ; 3fbff ; 3fc30 -Function3fc30: ; 3fc30 +CopyBackpic: ; 3fc30 ld a, [rSVBK] push af ld a, $6 @@ -9479,7 +9479,7 @@ Function3fc30: ; 3fc30 ld a, $31 ld [$ffad], a hlcoord 2, 6 - ld bc, $0606 + lb bc, 6, 6 predef FillBox ret ; 3fc5b @@ -9490,10 +9490,10 @@ Function3fc5b: ; 3fc5b ld [hMapObjectIndexBuffer], a ld b, $6 ld e, $a8 -.asm_3fc65 +.outer_loop ld c, $3 ld d, $40 -.asm_3fc69 +.inner_loop ld [hl], d inc hl ld [hl], e @@ -9508,7 +9508,7 @@ Function3fc5b: ; 3fc5b add $8 ld d, a dec c - jr nz, .asm_3fc69 + jr nz, .inner_loop ld a, [hMapObjectIndexBuffer] add $3 ld [hMapObjectIndexBuffer], a @@ -9516,7 +9516,7 @@ Function3fc5b: ; 3fc5b add $8 ld e, a dec b - jr nz, .asm_3fc65 + jr nz, .outer_loop ret ; 3fc8b @@ -9524,7 +9524,7 @@ Function3fc5b: ; 3fc5b BattleStartMessage: ; 3fc8b ld a, [wBattleMode] dec a - jr z, .asm_3fcaa + jr z, .wild ld de, SFX_SHINE call PlaySFX @@ -9536,11 +9536,11 @@ BattleStartMessage: ; 3fc8b callba Battle_GetTrainerName ld hl, WantsToBattleText - jr .asm_3fd0e + jr .PlaceBattleStartText -.asm_3fcaa - call Function3da79 - jr nc, .asm_3fcc2 +.wild + call BattleCheckEnemyShininess + jr nc, .not_shiny xor a ld [wcfca], a @@ -9551,45 +9551,45 @@ BattleStartMessage: ; 3fc8b ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim -.asm_3fcc2 +.not_shiny callba CheckSleepingTreeMon - jr c, .asm_3fceb + jr c, .skip_cry callba CheckBattleScene - jr c, .asm_3fce0 + jr c, .do_cry hlcoord 12, 0 ld d, $0 ld e, $1 predef Functiond008e - jr .asm_3fceb + jr .skip_cry -.asm_3fce0 +.do_cry ld a, $0f ld [CryTracks], a ld a, [TempEnemyMonSpecies] call PlayStereoCry -.asm_3fceb +.skip_cry ld a, [BattleType] cp BATTLETYPE_FISH - jr nz, .asm_3fcfd + jr nz, .NotFishing callba MobileFn_106086 ld hl, HookedPokemonAttackedText - jr .asm_3fd0e + jr .PlaceBattleStartText -.asm_3fcfd +.NotFishing ld hl, PokemonFellFromTreeText cp BATTLETYPE_TREE - jr z, .asm_3fd0e + jr z, .PlaceBattleStartText ld hl, WildCelebiAppearedText cp BATTLETYPE_CELEBI - jr z, .asm_3fd0e + jr z, .PlaceBattleStartText ld hl, WildPokemonAppearedText -.asm_3fd0e +.PlaceBattleStartText push hl callba Function2c000 pop hl diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm index 735a1792c..530578439 100644 --- a/battle/effect_command_pointers.asm +++ b/battle/effect_command_pointers.asm @@ -1,7 +1,3 @@ - - - - dw 0 ; padding BattleCommandPointers: ; 3fd28 @@ -14,9 +10,9 @@ BattleCommandPointers: ; 3fd28 dw BattleCommand_Stab ; 346d2 - 07 dw BattleCommand_DamageVariation ; 34cfd dw BattleCommand_CheckHit ; 34d32 - dw BattleCommand0a ; 34eee + dw BattleCommand_LowerSub ; 34eee dw BattleCommand0b ; 34f60 - dw BattleCommand0c ; 35004 + dw BattleCommand_RaiseSub ; 35004 dw BattleCommand_ResultText ; 35023 dw BattleCommand_CheckFaint ; 3505e dw BattleCommand_CriticalText ; 35175 @@ -149,8 +145,8 @@ BattleCommandPointers: ; 3fd28 dw BattleCommand_StatUpFailText ; 3644c dw BattleCommand_StatDownFailText ; 3646a dw BattleCommand_EffectChance ; 34ecc - dw BattleCommand91 ; 34fdb - dw BattleCommand92 ; 34fd1 + dw BattleCommand_StatDownAnim ; 34fdb + dw BattleCommand_StatUpAnim ; 34fd1 dw BattleCommand_SwitchTurn ; 34ffd - 93 dw BattleCommand_FakeOut ; 36a82 dw BattleCommand_BellyDrum ; 37c1a diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 610cdb1fd..b782ee62c 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -540,7 +540,7 @@ CheckEnemyTurn: ; 3421f call StdBattleTextBox call Function355dd call BattleCommand_DamageCalc - call BattleCommand0a + call BattleCommand_LowerSub xor a ld [wcfca], a @@ -553,7 +553,7 @@ CheckEnemyTurn: ; 3421f ld c, $1 call Function35d1c - call BattleCommand0c + call BattleCommand_RaiseSub call CantMove jp Function34385 @@ -653,7 +653,7 @@ HitConfusion: ; 343a5 call Function355dd call BattleCommand_DamageCalc - call BattleCommand0a + call BattleCommand_LowerSub xor a ld [wcfca], a @@ -671,7 +671,7 @@ HitConfusion: ; 343a5 ld [$ffd4], a ld c, $1 call Function35d7e - jp BattleCommand0c + jp BattleCommand_RaiseSub ; 343db @@ -2691,7 +2691,7 @@ BattleCommand_EffectChance: ; 34ecc ; 34eee -BattleCommand0a: ; 34eee +BattleCommand_LowerSub: ; 34eee ; lowersub ld a, BATTLE_VARS_SUBSTATUS4 @@ -2702,29 +2702,29 @@ BattleCommand0a: ; 34eee ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar bit SUBSTATUS_CHARGED, a - jr nz, .asm_34f18 + jr nz, .already_charged ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_RAZOR_WIND - jr z, .asm_34f21 + jr z, .charge_turn cp EFFECT_SKY_ATTACK - jr z, .asm_34f21 + jr z, .charge_turn cp EFFECT_SKULL_BASH - jr z, .asm_34f21 + jr z, .charge_turn cp EFFECT_SOLARBEAM - jr z, .asm_34f21 + jr z, .charge_turn cp EFFECT_FLY - jr z, .asm_34f21 + jr z, .charge_turn -.asm_34f18 +.already_charged call .Rampage - jr z, .asm_34f21 + jr z, .charge_turn call Function34548 ret nz -.asm_34f21 +.charge_turn call Function37ed5 jr c, .asm_34f36 @@ -2744,15 +2744,15 @@ BattleCommand0a: ; 34eee ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_ROLLOUT - jr z, .asm_34f4d + jr z, .rollout_rampage cp EFFECT_RAMPAGE - jr z, .asm_34f4d + jr z, .rollout_rampage ld a, 1 and a ret -.asm_34f4d +.rollout_rampage ld a, [wc73e] and a ld a, 0 @@ -2763,9 +2763,9 @@ BattleCommand0a: ; 34eee BattleCommand_HitTarget: ; 34f57 ; hittarget - call BattleCommand0a + call BattleCommand_LowerSub call BattleCommand0b - jp BattleCommand0c + jp BattleCommand_RaiseSub ; 34f60 @@ -2787,19 +2787,19 @@ BattleCommand0b: ; 34f60 ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_MULTI_HIT - jr z, .asm_34fb0 + jr z, .multihit_conversion_doublehit_twineedle cp EFFECT_CONVERSION - jr z, .asm_34fb0 + jr z, .multihit_conversion_doublehit_twineedle cp EFFECT_DOUBLE_HIT - jr z, .asm_34fb0 + jr z, .multihit_conversion_doublehit_twineedle cp EFFECT_TWINEEDLE - jr z, .asm_34fb0 + jr z, .multihit_conversion_doublehit_twineedle cp EFFECT_TRIPLE_KICK - jr z, .asm_34f96 + jr z, .triplekick xor a ld [wc689], a -.asm_34f96 +.triplekick ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar @@ -2810,14 +2810,14 @@ BattleCommand0b: ; 34f60 ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp FLY - jr z, .asm_34fad + jr z, .fly_dig cp DIG ret nz -.asm_34fad +.fly_dig ; clear sprite jp Function37ec7 -.asm_34fb0 +.multihit_conversion_doublehit_twineedle ld a, [wc689] and 1 xor 1 @@ -2837,17 +2837,17 @@ BattleCommand0b: ; 34f60 ; 34fd1 -BattleCommand92: ; 34fd1 +BattleCommand_StatUpAnim: ; 34fd1 ld a, [AttackMissed] and a jp nz, BattleCommand_MoveDelay xor a - jr BattleCommand91_92 + jr BattleCommand_StatUpDownAnim ; 34fdb -BattleCommand91: ; 34fdb +BattleCommand_StatDownAnim: ; 34fdb ld a, [AttackMissed] and a jp nz, BattleCommand_MoveDelay @@ -2855,14 +2855,14 @@ BattleCommand91: ; 34fdb ld a, [hBattleTurn] and a ld a, 2 - jr z, BattleCommand91_92 + jr z, BattleCommand_StatUpDownAnim ld a, 5 ; fallthrough ; 34feb -BattleCommand91_92: ; 34feb +BattleCommand_StatUpDownAnim: ; 34feb ld [wcfca], a xor a ld [wc689], a @@ -2884,7 +2884,7 @@ BattleCommand_SwitchTurn: ; 34ffd ; 35004 -BattleCommand0c: ; 35004 +BattleCommand_RaiseSub: ; 35004 ; raisesub ld a, BATTLE_VARS_SUBSTATUS4 @@ -2933,7 +2933,7 @@ BattleCommand_ResultText: ; 35023 jp EndMoveEffect .asm_35049 - call BattleCommand0c + call BattleCommand_RaiseSub jp EndMoveEffect .asm_3504f @@ -3274,7 +3274,7 @@ BattleCommand_CheckDestinyBond: ; 351c0 jr nz, .asm_3524d .asm_3524a - call BattleCommand0c + call BattleCommand_RaiseSub .asm_3524d jp EndMoveEffect @@ -5011,7 +5011,7 @@ BattleCommand_SleepTalk: ; 35b33 jr nz, .asm_35b9a ld a, [wc689] push af - call BattleCommand0a + call BattleCommand_LowerSub pop af ld [wc689], a .asm_35b9a @@ -6793,9 +6793,9 @@ BattleCommanda6: ; 365af ld hl, GetMonBackpic ld a, [hBattleTurn] and a - jr z, .asm_365ba ; 365b5 $3 - ld hl, Function3f47c -.asm_365ba + jr z, .PlayerTurn ; 365b5 $3 + ld hl, GetMonFrontpic +.PlayerTurn xor a ld [$ffd4], a call CallBattleCore @@ -6807,9 +6807,9 @@ BattleCommanda7: ; 365c3 ld hl, Function3f447 ld a, [hBattleTurn] and a - jr z, .asm_365ce ; 365c9 $3 + jr z, .PlayerTurn ; 365c9 $3 ld hl, Function3f486 -.asm_365ce +.PlayerTurn xor a ld [$ffd4], a call CallBattleCore @@ -7176,7 +7176,7 @@ BattleCommand_Teleport: ; 36778 ld [wd232], a ld [wc689], a call Function36804 - call BattleCommand0a + call BattleCommand_LowerSub call Function37e36 ld c, 20 call DelayFrames @@ -7390,9 +7390,9 @@ BattleCommand_ForceSwitch: ; 3680f jp CallBattleCore .asm_36969 - call BattleCommand0a + call BattleCommand_LowerSub call BattleCommand_MoveDelay - call BattleCommand0c + call BattleCommand_RaiseSub jp PrintButItFailed .asm_36975 @@ -7742,7 +7742,7 @@ BattleCommand_Charge: ; 36b4d jr z, .asm_36b65 call BattleCommand_MoveDelay - call BattleCommand0c + call BattleCommand_RaiseSub call PrintButItFailed jp EndMoveEffect @@ -7756,7 +7756,7 @@ BattleCommand_Charge: ; 36b4d and a call nz, StdBattleTextBox - call BattleCommand0a + call BattleCommand_LowerSub xor a ld [wcfca], a inc a @@ -7768,7 +7768,7 @@ BattleCommand_Charge: ; 36b4d jr z, .asm_36b96 cp DIG jr z, .asm_36b96 - call BattleCommand0c + call BattleCommand_RaiseSub jr .asm_36b99 .asm_36b96 call Function37ec0 @@ -8346,13 +8346,13 @@ endr .asm_36ef4 call Function34548 - call nz, BattleCommand0c + call nz, BattleCommand_RaiseSub ld hl, HasSubstituteText jr .asm_36f08 .asm_36eff call Function34548 - call nz, BattleCommand0c + call nz, BattleCommand_RaiseSub ld hl, TooWeakSubText .asm_36f08 jp StdBattleTextBox @@ -9166,7 +9166,7 @@ BattleCommand_SelfDestruct: ; 37380 ld [hl], a ld a, $1 ld [wc689], a - call BattleCommand0a + call BattleCommand_LowerSub call Function37e36 ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr @@ -10386,11 +10386,11 @@ BattleCommand_FutureSight: ; 37d34 jr nz, .asm_37d87 ; 37d58 $2d ld a, $4 ld [hl], a - call BattleCommand0a + call BattleCommand_LowerSub call BattleCommand_MoveDelay ld hl, ForesawAttackText call StdBattleTextBox - call BattleCommand0c + call BattleCommand_RaiseSub ld de, wc727 ld a, [hBattleTurn] and a @@ -10497,11 +10497,11 @@ Function37de9: ; 37de9 push bc ld a, [wc689] push af - call BattleCommand0a + call BattleCommand_LowerSub pop af ld [wc689], a call Function37e19 - call BattleCommand0c + call BattleCommand_RaiseSub pop bc pop de pop hl @@ -10515,11 +10515,11 @@ AnimateCurrentMove: ; 37e01 push bc ld a, [wc689] push af - call BattleCommand0a + call BattleCommand_LowerSub pop af ld [wc689], a call Function37e36 - call BattleCommand0c + call BattleCommand_RaiseSub pop bc pop de pop hl @@ -10616,9 +10616,9 @@ CallBattleCore: ; 37e73 AnimateFailedMove: ; 37e77 - call BattleCommand0a + call BattleCommand_LowerSub call BattleCommand_MoveDelay - jp BattleCommand0c + jp BattleCommand_RaiseSub ; 37e80 diff --git a/battle/effects/metronome.asm b/battle/effects/metronome.asm index ba20de47d..016d67089 100644 --- a/battle/effects/metronome.asm +++ b/battle/effects/metronome.asm @@ -7,7 +7,7 @@ BattleCommand_Metronome: ; 37418 ld a, [wc689] push af - call BattleCommand0a + call BattleCommand_LowerSub pop af ld [wc689], a diff --git a/battle/effects/mirror_move.asm b/battle/effects/mirror_move.asm index 146c6df03..1b39b1ad3 100644 --- a/battle/effects/mirror_move.asm +++ b/battle/effects/mirror_move.asm @@ -42,7 +42,7 @@ BattleCommand_MirrorMove: ; 373c9 ld a, [wc689] push af - call BattleCommand0a + call BattleCommand_LowerSub pop af ld [wc689], a diff --git a/battle/moves/move_effects.asm b/battle/moves/move_effects.asm index 29fd27983..b5aadf1a1 100644 --- a/battle/moves/move_effects.asm +++ b/battle/moves/move_effects.asm @@ -252,9 +252,9 @@ AttackUp: usedmovetext doturn attackup - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -266,9 +266,9 @@ DefenseUp: usedmovetext doturn defenseup - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -278,9 +278,9 @@ SpeedUp: usedmovetext doturn speedup - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -291,9 +291,9 @@ SpecialAttackUp: usedmovetext doturn specialattackup - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -303,9 +303,9 @@ SpecialDefenseUp: usedmovetext doturn specialdefenseup - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -315,9 +315,9 @@ AccuracyUp: usedmovetext doturn accuracyup - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -328,11 +328,11 @@ EvasionUp: checkobedience usedmovetext doturn - effect0x0a + lowersub evasionup - effect0x92 + statupanim effect0xa7 - effect0x0c + raisesub statmessageuser statupfailtext endmove @@ -343,9 +343,9 @@ AttackUp2: usedmovetext doturn attackup2 - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -357,9 +357,9 @@ DefenseUp2: usedmovetext doturn defenseup2 - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -370,9 +370,9 @@ SpeedUp2: usedmovetext doturn speedup2 - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -382,9 +382,9 @@ SpecialAttackUp2: usedmovetext doturn specialattackup2 - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -395,9 +395,9 @@ SpecialDefenseUp2: usedmovetext doturn specialdefenseup2 - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -407,9 +407,9 @@ AccuracyUp2: usedmovetext doturn accuracyup2 - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -419,9 +419,9 @@ EvasionUp2: usedmovetext doturn evasionup2 - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove @@ -433,9 +433,9 @@ AttackDown: doturn checkhit attackdown - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -448,9 +448,9 @@ DefenseDown: doturn checkhit defensedown - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -462,9 +462,9 @@ SpeedDown: doturn checkhit speeddown - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -475,9 +475,9 @@ SpecialAttackDown: doturn checkhit specialattackdown - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -488,9 +488,9 @@ SpecialDefenseDown: doturn checkhit specialdefensedown - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -505,9 +505,9 @@ AccuracyDown: doturn checkhit accuracydown - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -519,9 +519,9 @@ EvasionDown: doturn checkhit evasiondown - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -533,9 +533,9 @@ AttackDown2: doturn checkhit attackdown2 - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -547,9 +547,9 @@ DefenseDown2: doturn checkhit defensedown2 - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -562,9 +562,9 @@ SpeedDown2: doturn checkhit speeddown2 - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -575,9 +575,9 @@ SpecialAttackDown2: doturn checkhit specialattackdown2 - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -588,9 +588,9 @@ SpecialDefenseDown2: doturn checkhit specialdefensedown2 - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -601,9 +601,9 @@ AccuracyDown2: doturn checkhit accuracydown2 - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -614,9 +614,9 @@ EvasionDown2: doturn checkhit evasiondown2 - effect0x0a - effect0x91 - effect0x0c + lowersub + statdownanim + raisesub statmessagetarget statdownfailtext endmove @@ -958,7 +958,7 @@ MultiHit: usedmovetext doturn startloop - effect0x0a + lowersub checkhit critical damagestats @@ -975,7 +975,7 @@ MultiHit: checkdestinybond buildopponentrage endloop - effect0x0c + raisesub kingsrock endmove @@ -985,7 +985,7 @@ PoisonMultiHit: usedmovetext doturn startloop - effect0x0a + lowersub checkhit effectchance critical @@ -1003,7 +1003,7 @@ PoisonMultiHit: checkdestinybond buildopponentrage endloop - effect0x0c + raisesub kingsrock poisontarget endmove @@ -1351,7 +1351,7 @@ Dig: damagevariation checkhit effect0x0b - effect0x0c + raisesub resulttext checkfaint criticaltext @@ -1562,7 +1562,7 @@ TripleKick: usedmovetext doturn startloop - effect0x0a + lowersub checkhit critical damagestats @@ -1581,7 +1581,7 @@ TripleKick: buildopponentrage kickcounter endloop - effect0x0c + raisesub kingsrock endmove @@ -1725,9 +1725,9 @@ Swagger: switchturn attackup2 switchturn - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub resulttext switchturn statmessageuser @@ -2204,7 +2204,7 @@ BeatUp: movedelay doturn startloop - effect0x0a + lowersub checkhit critical beatup @@ -2221,7 +2221,7 @@ BeatUp: buildopponentrage endloop effect0xa8 - effect0x0c + raisesub kingsrock endmove @@ -2231,9 +2231,9 @@ DefenseCurl: doturn defenseup curl - effect0x0a - effect0x92 - effect0x0c + lowersub + statupanim + raisesub statmessageuser statupfailtext endmove diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 799410e17..09b8fa2fc 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -570,8 +570,6 @@ OBJECT_LENGTH EQU const_value MAPOBJECT_SCREEN_HEIGHT EQU 11 MAPOBJECT_SCREEN_WIDTH EQU 12 -OBJECT_STRUCT_3_DATA_WIDTH EQU 6 -OBJECT_STRUCT_3_DATA_HEIGHT EQU 37 OW_DOWN EQU DOWN << 2 OW_UP EQU UP << 2 diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 6f1d5d1d5..209fbf59c 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -194,17 +194,17 @@ NUM_SPRITEHEADER_FIELDS EQU const_value ; sprite movement data table indices const_def const SPRITEMOVEDATA_00 - const SPRITEMOVEDATA_01 - const SPRITEMOVEDATA_02 - const SPRITEMOVEDATA_03 + const SPRITEMOVEDATA_ITEM_TREE + const SPRITEMOVEDATA_WANDER + const SPRITEMOVEDATA_SPINRANDOM_SLOW const SPRITEMOVEDATA_WALK_UP_DOWN const SPRITEMOVEDATA_WALK_LEFT_RIGHT const SPRITEMOVEDATA_STANDING_DOWN const SPRITEMOVEDATA_STANDING_UP const SPRITEMOVEDATA_STANDING_LEFT const SPRITEMOVEDATA_STANDING_RIGHT - const SPRITEMOVEDATA_0A - const SPRITEMOVEDATA_0B + const SPRITEMOVEDATA_SPINRANDOM_FAST + const SPRITEMOVEDATA_PLAYER const SPRITEMOVEDATA_0C const SPRITEMOVEDATA_0D const SPRITEMOVEDATA_0E @@ -212,36 +212,38 @@ NUM_SPRITEHEADER_FIELDS EQU const_value const SPRITEMOVEDATA_10 const SPRITEMOVEDATA_11 const SPRITEMOVEDATA_12 - const SPRITEMOVEDATA_13 - const SPRITEMOVEDATA_14 - const SPRITEMOVEDATA_15 - const SPRITEMOVEDATA_16 - const SPRITEMOVEDATA_17 - const SPRITEMOVEDATA_18 - const SPRITEMOVEDATA_19 + const SPRITEMOVEDATA_FOLLOWING + const SPRITEMOVEDATA_SCRIPTED + const SPRITEMOVEDATA_SNORLAX + const SPRITEMOVEDATA_POKEMON + const SPRITEMOVEDATA_SUDOWOODO + const SPRITEMOVEDATA_SMASHABLE_ROCK + const SPRITEMOVEDATA_STRENGTH_BOULDER const SPRITEMOVEDATA_1A const SPRITEMOVEDATA_1B const SPRITEMOVEDATA_1C const SPRITEMOVEDATA_1D - const SPRITEMOVEDATA_1E - const SPRITEMOVEDATA_1F + const SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE + const SPRITEMOVEDATA_SPINCLOCKWISE const SPRITEMOVEDATA_20 - const SPRITEMOVEDATA_21 + const SPRITEMOVEDATA_BIGDOLL const SPRITEMOVEDATA_22 const SPRITEMOVEDATA_23 - const SPRITEMOVEDATA_24 + const SPRITEMOVEDATA_LAPRAS const SPRITEMOVEDATA_25 +NUM_SPRITEMOVEDATA EQU const_value +- 1 +SPRITEMOVEDATA_FIELDS EQU 6 ; sprite movement functions const_def const SPRITEMOVEFN_00 - const SPRITEMOVEFN_01 - const SPRITEMOVEFN_02 - const SPRITEMOVEFN_03 - const SPRITEMOVEFN_04 - const SPRITEMOVEFN_05 - const SPRITEMOVEFN_06 - const SPRITEMOVEFN_07 + const SPRITEMOVEFN_RANDOM_WALK_Y + const SPRITEMOVEFN_RANDOM_WALK_X + const SPRITEMOVEFN_RANDOM_WALK_XY + const SPRITEMOVEFN_SLOW_RANDOM_SPIN + const SPRITEMOVEFN_FAST_RANDOM_SPIN + const SPRITEMOVEFN_STANDING + const SPRITEMOVEFN_OBEY_DPAD const SPRITEMOVEFN_08 const SPRITEMOVEFN_09 const SPRITEMOVEFN_0A @@ -249,17 +251,17 @@ NUM_SPRITEHEADER_FIELDS EQU const_value const SPRITEMOVEFN_0C const SPRITEMOVEFN_0D const SPRITEMOVEFN_0E - const SPRITEMOVEFN_0F - const SPRITEMOVEFN_10 - const SPRITEMOVEFN_11 + const SPRITEMOVEFN_FOLLOW + const SPRITEMOVEFN_SCRIPTED + const SPRITEMOVEFN_STRENGTH const SPRITEMOVEFN_12 const SPRITEMOVEFN_13 const SPRITEMOVEFN_14 - const SPRITEMOVEFN_15 - const SPRITEMOVEFN_16 + const SPRITEMOVEFN_BIG_SNORLAX + const SPRITEMOVEFN_BOUNCE const SPRITEMOVEFN_17 - const SPRITEMOVEFN_18 - const SPRITEMOVEFN_19 + const SPRITEMOVEFN_SPIN_CLOCKWISE + const SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE const SPRITEMOVEFN_1A const SPRITEMOVEFN_1B diff --git a/engine/color.asm b/engine/color.asm index 9fde4d77d..69582a87a 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -768,7 +768,7 @@ Function971a: ; 971a Function9729: ; 9729 push de - callba Function3da85 + callba GetPartyMonDVs ld c, l ld b, h ld a, [TempBattleMonSpecies] @@ -779,7 +779,7 @@ Function9729: ; 9729 Function973a: ; 973a push de - callba Function3da97 + callba GetEnemyMonDVs ld c, l ld b, h ld a, [TempEnemyMonSpecies] diff --git a/engine/map_objects.asm b/engine/map_objects.asm index a5d792204..8c8fcb3c5 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -1,20 +1,20 @@ INCLUDE "engine/facings.asm" -ObjectStruct3_Data:: ; 4273 +SpriteMovementData:: ; 4273 ; function, facing, ?, ?, ?, ? db SPRITEMOVEFN_00, DOWN, $01, $02, $00, $00 ; 00 - db SPRITEMOVEFN_06, DOWN, $01, $0c, $00, $00 ; 01 - db SPRITEMOVEFN_03, DOWN, $01, $00, $00, $00 ; 02 - db SPRITEMOVEFN_04, DOWN, $01, $00, $00, $00 ; 03 - db SPRITEMOVEFN_01, DOWN, $01, $00, $00, $00 ; 04 - db SPRITEMOVEFN_02, DOWN, $01, $00, $00, $00 ; 05 - db SPRITEMOVEFN_06, DOWN, $01, $00, $00, $00 ; 06 - db SPRITEMOVEFN_06, UP, $01, $00, $00, $00 ; 07 - db SPRITEMOVEFN_06, LEFT, $01, $00, $00, $00 ; 08 - db SPRITEMOVEFN_06, RIGHT, $01, $00, $00, $00 ; 09 - db SPRITEMOVEFN_05, DOWN, $01, $00, $00, $00 ; 0a - db SPRITEMOVEFN_07, DOWN, $01, $02, $00, $00 ; 0b + db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 01 + db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $00 ; 02 + db SPRITEMOVEFN_SLOW_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 03 + db SPRITEMOVEFN_RANDOM_WALK_Y, DOWN, $01, $00, $00, $00 ; 04 + db SPRITEMOVEFN_RANDOM_WALK_X, DOWN, $01, $00, $00, $00 ; 05 + db SPRITEMOVEFN_STANDING, DOWN, $01, $00, $00, $00 ; 06 + db SPRITEMOVEFN_STANDING, UP, $01, $00, $00, $00 ; 07 + db SPRITEMOVEFN_STANDING, LEFT, $01, $00, $00, $00 ; 08 + db SPRITEMOVEFN_STANDING, RIGHT, $01, $00, $00, $00 ; 09 + db SPRITEMOVEFN_FAST_RANDOM_SPIN, DOWN, $01, $00, $00, $00 ; 0a + db SPRITEMOVEFN_OBEY_DPAD, DOWN, $01, $02, $00, $00 ; 0b db SPRITEMOVEFN_08, DOWN, $01, $00, $00, $00 ; 0c db SPRITEMOVEFN_09, DOWN, $01, $00, $00, $00 ; 0d db SPRITEMOVEFN_0A, DOWN, $01, $00, $00, $00 ; 0e @@ -22,24 +22,24 @@ ObjectStruct3_Data:: ; 4273 db SPRITEMOVEFN_0C, DOWN, $01, $00, $00, $00 ; 10 db SPRITEMOVEFN_0D, DOWN, $01, $00, $00, $00 ; 11 db SPRITEMOVEFN_0E, DOWN, $01, $00, $00, $00 ; 12 - db SPRITEMOVEFN_0F, DOWN, $01, $02, $00, $00 ; 13 - db SPRITEMOVEFN_10, DOWN, $01, $02, $00, $00 ; 14 - db SPRITEMOVEFN_15, DOWN, $09, $2e, $01, $c0 ; 15 - db SPRITEMOVEFN_16, DOWN, $0a, $2e, $00, $00 ; 16 - db SPRITEMOVEFN_06, DOWN, $01, $0c, $00, $00 ; 17 - db SPRITEMOVEFN_06, DOWN, $01, $2e, $10, $00 ; 18 - db SPRITEMOVEFN_11, DOWN, $01, $2e, $00, $40 ; 19 + db SPRITEMOVEFN_FOLLOW, DOWN, $01, $02, $00, $00 ; 13 + db SPRITEMOVEFN_SCRIPTED, DOWN, $01, $02, $00, $00 ; 14 + db SPRITEMOVEFN_BIG_SNORLAX, DOWN, $09, $2e, $01, $c0 ; 15 + db SPRITEMOVEFN_BOUNCE, DOWN, $0a, $2e, $00, $00 ; 16 + db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 17 + db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18 + db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19 db SPRITEMOVEFN_12, DOWN, $01, $02, $00, $00 ; 1a db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d - db SPRITEMOVEFN_19, LEFT, $01, $00, $00, $00 ; 1e - db SPRITEMOVEFN_18, RIGHT, $01, $00, $00, $00 ; 1f - db SPRITEMOVEFN_11, DOWN, $0c, $2e, $01, $c0 ; 20 - db SPRITEMOVEFN_11, DOWN, $0d, $2e, $01, $c0 ; 21 + db SPRITEMOVEFN_SPIN_COUNTERCLOCKWISE, LEFT, $01, $00, $00, $00 ; 1e + db SPRITEMOVEFN_SPIN_CLOCKWISE, RIGHT, $01, $00, $00, $00 ; 1f + db SPRITEMOVEFN_STRENGTH, DOWN, $0c, $2e, $01, $c0 ; 20 + db SPRITEMOVEFN_STRENGTH, DOWN, $0d, $2e, $01, $c0 ; 21 db SPRITEMOVEFN_1A, DOWN, $0e, $8e, $01, $00 ; 22 db SPRITEMOVEFN_1B, DOWN, $0f, $8e, $02, $00 ; 23 - db SPRITEMOVEFN_03, DOWN, $01, $00, $00, $20 ; 24 + db SPRITEMOVEFN_RANDOM_WALK_XY, DOWN, $01, $00, $00, $20 ; 24 db SPRITEMOVEFN_00, DOWN, $01, $00, $00, $00 ; 25 ; 4357 @@ -937,7 +937,7 @@ Function47bc: ; 47bc Function47dd: ; 47dd call ClearObjectStructField28 - call Function1a2f + call GetSpriteMovementFunction ld a, [hl] ld hl, .Pointers rst JumpTable @@ -945,63 +945,63 @@ Function47dd: ; 47dd ; 47e9 .Pointers ; 47e9 - dw Function4821 ; 00 - dw Function4822 ; 01 - dw Function482c ; 02 - dw Function4838 ; 03 - dw Function4842 ; 04 - dw Function4851 ; 05 - dw Function4869 ; 06 - dw Function487c ; 07 - dw Function4882 ; 08 - dw Function4888 ; 09 - dw Function488e ; 0a - dw Function4891 ; 0b - dw Function4894 ; 0c - dw Function4897 ; 0d - dw Function489d ; 0e - dw Function48a0 ; 0f - dw Function48a6 ; 10 - dw Function48ac ; 11 - dw Function48ff ; 12 - dw Function49e5 ; 13 - dw Function4a21 ; 14 - dw Function4958 ; 15 - dw Function496e ; 16 - dw Function4abc ; 17 - dw Function498d ; 18 - dw Function4984 ; 19 - dw Function4a46 ; 1a - dw Function4a89 ; 1b + dw .Null_00 ; 00 + dw .RandomWalkY ; 01 + dw .RandomWalkX ; 02 + dw .RandomWalkXY ; 03 + dw .RandomSpin1 ; 04 + dw .RandomSpin2 ; 05 + dw .Standing ; 06 + dw .ObeyDPad ; 07 + dw .Movement08 ; 08 + dw .Movement09 ; 09 + dw .Movement0a ; 0a + dw .Movement0b ; 0b + dw .Movement0c ; 0c + dw .Movement0d ; 0d + dw .Movement0e ; 0e + dw .Follow ; 0f + dw .Script ; 10 + dw .Strength ; 11 + dw .Movement12 ; 12 + dw .Movement13 ; 13 + dw .Movement14 ; 14 + dw .MovementBigStanding ; 15 + dw .MovementBouncing ; 16 + dw .Movement17 ; 17 + dw .MovementSpinClockwise ; 18 + dw .MovementSpinCounterclockwise ; 19 + dw .Movement1a ; 1a + dw .Movement1b ; 1b ; 4821 -Function4821: ; 4821 +.Null_00: ; 4821 ret ; 4822 -Function4822: ; 4822 +.RandomWalkY: ; 4822 call Random ld a, [hRandomAdd] and %00000001 - jp Function4af0 + jp .RandomWalkContinue ; 482c -Function482c: ; 482c +.RandomWalkX: ; 482c call Random ld a, [hRandomAdd] and %00000001 or %00000010 - jp Function4af0 + jp .RandomWalkContinue ; 4838 -Function4838: ; 4838 +.RandomWalkXY: ; 4838 call Random ld a, [hRandomAdd] and %00000011 - jp Function4af0 + jp .RandomWalkContinue ; 4842 -Function4842: ; 4842 +.RandomSpin1: ; 4842 call Random ld a, [hRandomAdd] and %00001100 @@ -1011,7 +1011,7 @@ Function4842: ; 4842 jp Function4b1d ; 4851 -Function4851: ; 4851 +.RandomSpin2: ; 4851 ld hl, OBJECT_FACING add hl, bc ld a, [hl] @@ -1029,7 +1029,7 @@ Function4851: ; 4851 jp Function4b26 ; 4869 -Function4869: ; standing? +.Standing: ; 4869 call Function462a call Function467b ld hl, OBJECT_11 @@ -1041,69 +1041,71 @@ Function4869: ; standing? ret ; 487c -Function487c: ; 487c +.ObeyDPad: ; 487c ld hl, Function5000 jp Function5041 ; 4882 -Function4882: ; 4882 +.Movement08: ; 4882 ld hl, Function5015 jp Function5041 ; 4888 -Function4888: ; 4888 +.Movement09: ; 4888 ld hl, Function5026 jp Function5041 ; 488e -Function488e: ; 488e +.Movement0a: ; 488e jp Function5037 ; 4891 -Function4891: ; 4891 +.Movement0b: ; 4891 jp Function5037 ; 4894 -Function4894: ; 4894 +.Movement0c: ; 4894 jp Function5037 ; 4897 -Function4897: ; 4897 +.Movement0d: ; 4897 ld hl, Function5000 jp Function5041 ; 489d -Function489d: ; 489d +.Movement0e: ; 489d jp Function5037 ; 48a0 -Function48a0: ; 48a0 +.Follow: ; 48a0 ld hl, Function54e6 jp Function5041 ; 48a6 -Function48a6: ; 48a6 - ld hl, Function500e ; scripted +.Script: ; 48a6 + ld hl, Function500e jp Function5041 ; 48ac -Function48ac: ; 48ac +.Strength: ; 48ac call JumptoObjectStructField27 - dw Function48b3 - dw Function48f8 + dw .Strength_Start + dw .Strength_Stop ; 48b3 -Function48b3: ; 48b3 +.Strength_Start: ; 48b3 ld hl, OBJECT_STANDING_TILE add hl, bc ld a, [hl] call CheckPitTile jr z, .on_pit + ld hl, OBJECT_FLAGS2 add hl, bc bit 2, [hl] res 2, [hl] jr z, .ok + ld hl, OBJECT_32 add hl, bc ld a, [hl] @@ -1112,6 +1114,7 @@ Function48b3: ; 48b3 call Function4690 call Function6ec1 jr c, .ok2 + ld de, SFX_STRENGTH call PlaySFX call Function5538 @@ -1135,14 +1138,14 @@ Function48b3: ; 48b3 ; fallthrough ; 48f8 -Function48f8: ; 48f8 +.Strength_Stop: ; 48f8 ld hl, OBJECT_DIRECTION_WALKING add hl, bc ld [hl], STANDING ret ; 48ff -Function48ff: ; 48ff +.Movement12: ; 48ff ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] @@ -1206,7 +1209,7 @@ Function48ff: ; 48ff ret ; 4958 -Function4958: ; 4958 +.MovementBigStanding: ; 4958 call Function467b ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -1220,7 +1223,7 @@ Function4958: ; 4958 ret ; 496e -Function496e: ; 496e +.MovementBouncing: ; 496e call Function467b ld hl, OBJECT_DIRECTION_WALKING add hl, bc @@ -1234,27 +1237,27 @@ Function496e: ; 496e ret ; 4984 -Function4984: ; 4984 +.MovementSpinCounterclockwise: ; 4984 call JumptoObjectStructField27 - dw Function4996 - dw Function499c - dw Function49b8 + dw .MovementSpinInit + dw .MovementSpinRepeat + dw .MovementSpinTurnLeft ; 498d -Function498d: ; 498d +.MovementSpinClockwise: ; 498d call JumptoObjectStructField27 - dw Function4996 - dw Function499c - dw Function49c4 + dw .MovementSpinInit + dw .MovementSpinRepeat + dw .MovementSpinTurnRight ; 4996 -Function4996: ; 4996 +.MovementSpinInit: ; 4996 call Function467b call IncrementObjectStructField27 ; fallthrough ; 499c -Function499c: ; 499c +.MovementSpinRepeat: ; 499c ld hl, OBJECT_11 add hl, bc ld [hl], 1 @@ -1272,27 +1275,27 @@ Function499c: ; 499c ret ; 49b8 -Function49b8: ; 49b8 - ld de, .DirectionData_49c0 - call Function49d0 - jr Function4984 +.MovementSpinTurnLeft: ; 49b8 + ld de, .DirectionData_Counterclockwise + call .MovementSpinNextFacing + jr .MovementSpinCounterclockwise ; 49c0 -.DirectionData_49c0 ; 49c0 +.DirectionData_Counterclockwise ; 49c0 db RIGHT << 2, LEFT << 2, DOWN << 2, UP << 2 ; 49c4 -Function49c4: ; 49c4 - ld de, .DirectionData_49cc - call Function49d0 - jr Function498d +.MovementSpinTurnRight: ; 49c4 + ld de, .DirectionData_Clockwise + call .MovementSpinNextFacing + jr .MovementSpinClockwise ; 49cc -.DirectionData_49cc ; 49cc +.DirectionData_Clockwise ; 49cc db LEFT << 2, RIGHT << 2, UP << 2, DOWN << 2 ; 49d0 -Function49d0: ; 49d0 +.MovementSpinNextFacing: ; 49d0 ld hl, OBJECT_FACING add hl, bc ld a, [hl] @@ -1310,8 +1313,8 @@ Function49d0: ; 49d0 ret ; 49e5 -Function49e5: ; 49e5 - call Function4aa8 +.Movement13: ; 49e5 + call ._Movement13_14_1a_1b ld hl, OBJECT_11 add hl, bc ld [hl], $7 @@ -1330,12 +1333,12 @@ Function49e5: ; 49e5 and 3 ld d, $e cp DOWN - jr z, .ok + jr z, .ok_13 cp UP - jr z, .ok + jr z, .ok_13 ld d, $c -.ok +.ok_13 ld hl, OBJECT_SPRITE_Y_OFFSET add hl, bc ld [hl], d @@ -1348,9 +1351,9 @@ Function49e5: ; 49e5 ret ; 4a21 -Function4a21: ; 4a21 +.Movement14: ; 4a21 call Function467b - call Function4aa8 + call ._Movement13_14_1a_1b ld hl, OBJECT_11 add hl, bc ld [hl], 8 @@ -1369,9 +1372,9 @@ Function4a21: ; 4a21 ret ; 4a46 -Function4a46: ; 4a46 +.Movement1a: ; 4a46 call Function467b - call Function4aa8 + call ._Movement13_14_1a_1b ld hl, OBJECT_11 add hl, bc ld [hl], $e @@ -1416,9 +1419,9 @@ endr db -6, 2 ; 4a89 -Function4a89: ; 4a89 +.Movement1b: ; 4a89 call Function467b - call Function4aa8 + call ._Movement13_14_1a_1b ld hl, OBJECT_11 add hl, bc ld [hl], $f @@ -1435,7 +1438,7 @@ Function4a89: ; 4a89 ret ; 4aa8 -Function4aa8: ; 4aa8 +._Movement13_14_1a_1b: ; 4aa8 ld hl, OBJECT_32 add hl, bc ld a, [hl] @@ -1452,7 +1455,7 @@ Function4aa8: ; 4aa8 ret ; 4abc -Function4abc: ; 4abc +.Movement17: ; 4abc call Function467b ld hl, OBJECT_11 add hl, bc @@ -1460,7 +1463,7 @@ Function4abc: ; 4abc ld hl, OBJECT_32 add hl, bc ld a, [hl] - call Function4ade + call ._Movement17 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], e @@ -1473,7 +1476,7 @@ Function4abc: ; 4abc ret ; 4ade -Function4ade: ; 4ade +._Movement17: ; 4ade ld d, a and %00111111 ld e, a @@ -1491,7 +1494,7 @@ Function4ade: ; 4ade jr .loop ; 4af0 -Function4af0: ; 4af0 +.RandomWalkContinue: ; 4af0 call Function4690 call Function6ec1 jr c, Function4b17 @@ -1502,13 +1505,13 @@ Function4af0: ; 4af0 ld hl, wd4cf ld a, [hMapObjectIndexBuffer] cp [hl] - jr z, .ok + jr z, .load_6 ld hl, OBJECT_09 add hl, bc - ld [hl], $7 + ld [hl], 7 ret -.ok +.load_6 ld hl, OBJECT_09 add hl, bc ld [hl], 6 @@ -3163,7 +3166,7 @@ SetFollowerIfVisible: ; 582c ret c ld hl, OBJECT_MOVEMENTTYPE add hl, bc - ld [hl], SPRITEMOVEDATA_13 + ld [hl], SPRITEMOVEDATA_FOLLOWING ld hl, OBJECT_09 add hl, bc ld [hl], 0 diff --git a/engine/predef.asm b/engine/predef.asm index e370fdda6..44be28628 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -55,7 +55,7 @@ PredefPointers:: ; 856b add_predef StartBattle add_predef FillInExpBar add_predef GetMonBackpic ; $18 - add_predef Function3f47c + add_predef GetMonFrontpic add_predef LearnLevelMoves add_predef FillMoves add_predef Function421e6 diff --git a/home/map_objects.asm b/home/map_objects.asm index 66fd3f753..d52530af1 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -441,7 +441,7 @@ Function19e9:: ; 19e9 ret c ld hl, OBJECT_MOVEMENTTYPE add hl, bc - ld [hl], SPRITEMOVEDATA_14 + ld [hl], SPRITEMOVEDATA_SCRIPTED ld hl, OBJECT_09 add hl, bc ld [hl], 0 @@ -485,19 +485,19 @@ FindFirstEmptyObjectStruct:: ; 1a13 -Function1a2f:: ; 1a2f +GetSpriteMovementFunction:: ; 1a2f ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld a, [hl] - cp OBJECT_STRUCT_3_DATA_HEIGHT + cp NUM_SPRITEMOVEDATA jr c, .ok xor a .ok - ld hl, ObjectStruct3_Data + ld hl, SpriteMovementData ld e, a ld d, 0 -rept OBJECT_STRUCT_3_DATA_WIDTH +rept SPRITEMOVEDATA_FIELDS add hl,de endr ld a, [hl] @@ -509,11 +509,11 @@ Function1a47:: ; 1a47 push de ld e, a ld d, 0 - ld hl, ObjectStruct3_Data + 1 -rept OBJECT_STRUCT_3_DATA_WIDTH + ld hl, SpriteMovementData + 1 ; init facing +rept SPRITEMOVEDATA_FIELDS add hl,de endr - ld a, BANK(ObjectStruct3_Data) + ld a, BANK(SpriteMovementData) call GetFarByte rept 2 add a @@ -529,7 +529,7 @@ Function1a61:: ; 1a61 ld l, a ld a, [hROMBank] push af - ld a, BANK(ObjectStruct3_Data) + ld a, BANK(SpriteMovementData) rst Bankswitch ld a, l push bc @@ -550,8 +550,8 @@ Function1a71:: ; 1a71 push de ld e, a ld d, 0 - ld hl, ObjectStruct3_Data + 1 ; facing? -rept OBJECT_STRUCT_3_DATA_WIDTH + ld hl, SpriteMovementData + 1 ; init facing +rept SPRITEMOVEDATA_FIELDS add hl, de endr ld b, h diff --git a/macros/move_effect.asm b/macros/move_effect.asm index 6cca15b2d..7d0eda319 100644 --- a/macros/move_effect.asm +++ b/macros/move_effect.asm @@ -14,9 +14,9 @@ endm command stab command damagevariation command checkhit - command effect0x0a + command lowersub command effect0x0b - command effect0x0c + command raisesub command resulttext command checkfaint command criticaltext @@ -149,8 +149,8 @@ endm command statupfailtext command statdownfailtext command effectchance - command effect0x91 - command effect0x92 + command statdownanim + command statupanim command switchturn command fakeout command bellydrum diff --git a/main.asm b/main.asm index 1846a38b6..36a236a1b 100644 --- a/main.asm +++ b/main.asm @@ -2603,7 +2603,7 @@ Function7113: ; unreferenced ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld a, [hl] - cp SPRITEMOVEDATA_15 + cp SPRITEMOVEDATA_SNORLAX jr nz, .asm_7136 call Function7171 jr c, .asm_716f @@ -3236,7 +3236,7 @@ PlayerObjectTemplate: ; 8071 ; A dummy map object used to initialize the player object. ; Shorter than the actual amount copied by two bytes. ; Said bytes seem to be unused. - person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_0B, 15, 15, -1, -1, 0, 0, 0, 0, -1 + person_event SPRITE_CHRIS, -4, -4, SPRITEMOVEDATA_PLAYER, 15, 15, -1, -1, 0, 0, 0, 0, -1 ; 807e CopyDECoordsToMapObject:: ; 807e @@ -25058,10 +25058,10 @@ Function2715c: ; 2715c jr .continue .gettutorialbackpic - callba GetBattleBackpic + callba GetTrainerBackpic .continue - callba Function3f47c + callba GetMonFrontpic callba Function3ed9f call ClearSGB call WriteBackup @@ -74055,7 +74055,7 @@ Functionfb8c8: ; fb8c8 call LoadStandardFont callba Function40ab2 call Function3200 - callba Function3da97 + callba GetEnemyMonDVs ld a, [hli] ld [TempMonDVs], a ld a, [hl] diff --git a/maps/AzaleaGym.asm b/maps/AzaleaGym.asm index 32796ee5d..3efc3a376 100644 --- a/maps/AzaleaGym.asm +++ b/maps/AzaleaGym.asm @@ -371,8 +371,8 @@ AzaleaGym_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugsyScript, -1 - person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherbenny, -1 + person_event SPRITE_BUGSY, 7, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugsyScript, -1 + person_event SPRITE_BUG_CATCHER, 3, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherbenny, -1 person_event SPRITE_BUG_CATCHER, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherAl, -1 person_event SPRITE_BUG_CATCHER, 2, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherJosh, -1 person_event SPRITE_TWIN, 10, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAmyandmay1, -1 diff --git a/maps/AzaleaPokeCenter1F.asm b/maps/AzaleaPokeCenter1F.asm index 9ef009d48..821becf39 100644 --- a/maps/AzaleaPokeCenter1F.asm +++ b/maps/AzaleaPokeCenter1F.asm @@ -93,4 +93,4 @@ AzaleaPokeCenter1F_MapEventHeader: person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18db28, -1 person_event SPRITE_GENTLEMAN, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, GentlemanScript_0x18db2b, -1 person_event SPRITE_FISHING_GURU, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x18db2e, -1 - person_event SPRITE_POKEFAN_F, 4, 1, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 0, PokefanFScript_0x18db31, -1 + person_event SPRITE_POKEFAN_F, 4, 1, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, PokefanFScript_0x18db31, -1 diff --git a/maps/AzaleaTown.asm b/maps/AzaleaTown.asm index e31eb8da4..493437e7f 100644 --- a/maps/AzaleaTown.asm +++ b/maps/AzaleaTown.asm @@ -482,14 +482,14 @@ AzaleaTown_MapEventHeader: .PersonEvents: db 12 person_event SPRITE_AZALEA_ROCKET, 9, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ab, EVENT_AZALEA_TOWN_SLOWPOKETAIL_ROCKET - person_event SPRITE_GRAMPS, 9, 21, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 0, GrampsScript_0x1980b1, -1 + person_event SPRITE_GRAMPS, 9, 21, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, GrampsScript_0x1980b1, -1 person_event SPRITE_TEACHER, 13, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x1980c5, -1 person_event SPRITE_YOUNGSTER, 9, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1980c8, -1 - person_event SPRITE_SLOWPOKE, 17, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES - person_event SPRITE_SLOWPOKE, 9, 18, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES - person_event SPRITE_SLOWPOKE, 9, 29, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES - person_event SPRITE_SLOWPOKE, 15, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES - person_event SPRITE_FRUIT_TREE, 2, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, WhiteApricornTree, -1 + person_event SPRITE_SLOWPOKE, 17, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES + person_event SPRITE_SLOWPOKE, 9, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES + person_event SPRITE_SLOWPOKE, 9, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES + person_event SPRITE_SLOWPOKE, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, SlowpokeScript_0x1980cb, EVENT_AZALEA_TOWN_SLOWPOKES + person_event SPRITE_FRUIT_TREE, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, WhiteApricornTree, -1 person_event SPRITE_AZALEA_ROCKET, 10, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_AZALEA_TOWN person_event SPRITE_AZALEA_ROCKET, 16, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, AzaleaRocketScript_0x1980ae, EVENT_SLOWPOKE_WELL_ROCKETS person_event SPRITE_KURT_OUTSIDE, 5, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, KurtOutsideScript_0x19810c, EVENT_AZALEA_TOWN_KURT diff --git a/maps/BattleTower1F.asm b/maps/BattleTower1F.asm index d41f9acc3..a6788486e 100644 --- a/maps/BattleTower1F.asm +++ b/maps/BattleTower1F.asm @@ -811,5 +811,5 @@ BattleTower1F_MapEventHeader: person_event SPRITE_RECEPTIONIST, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x9e3e2, -1 person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x9e55d, -1 person_event SPRITE_COOLTRAINER_F, 9, 4, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x9e568, -1 - person_event SPRITE_BUG_CATCHER, 3, 1, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x9e56b, -1 + person_event SPRITE_BUG_CATCHER, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x9e56b, -1 person_event SPRITE_GRANNY, 3, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, GrannyScript_0x9e56e, -1 diff --git a/maps/BattleTowerOutside.asm b/maps/BattleTowerOutside.asm index e2f82f492..6e58f3400 100644 --- a/maps/BattleTowerOutside.asm +++ b/maps/BattleTowerOutside.asm @@ -143,6 +143,6 @@ BattleTowerOutside_MapEventHeader: .PersonEvents: db 4 person_event SPRITE_STANDING_YOUNGSTER, 12, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x9f85f, -1 - person_event SPRITE_BUENA, 11, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BuenaScript_0x9f862, -1 + person_event SPRITE_BUENA, 11, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BuenaScript_0x9f862, -1 person_event SPRITE_SAILOR, 18, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SailorScript_0x9f865, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR - person_event SPRITE_LASS, 24, 12, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, -1 + person_event SPRITE_LASS, 24, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ObjectEvent, -1 diff --git a/maps/BlackthornDodrioTradeHouse.asm b/maps/BlackthornDodrioTradeHouse.asm index 71bdd2937..e0d2557d9 100644 --- a/maps/BlackthornDodrioTradeHouse.asm +++ b/maps/BlackthornDodrioTradeHouse.asm @@ -35,4 +35,4 @@ BlackthornDodrioTradeHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_LASS, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Emy, -1 + person_event SPRITE_LASS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Emy, -1 diff --git a/maps/BlackthornDragonSpeechHouse.asm b/maps/BlackthornDragonSpeechHouse.asm index afa9f8b36..0686184de 100644 --- a/maps/BlackthornDragonSpeechHouse.asm +++ b/maps/BlackthornDragonSpeechHouse.asm @@ -58,5 +58,5 @@ BlackthornDragonSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x195949, -1 - person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, EkansScript_0x19594c, -1 + person_event SPRITE_GRANNY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x195949, -1 + person_event SPRITE_EKANS, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, EkansScript_0x19594c, -1 diff --git a/maps/BlackthornGym2F.asm b/maps/BlackthornGym2F.asm index 77624204f..b24b0c662 100644 --- a/maps/BlackthornGym2F.asm +++ b/maps/BlackthornGym2F.asm @@ -147,9 +147,9 @@ BlackthornGym2F_MapEventHeader: db 8 person_event SPRITE_COOLTRAINER_M, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermCody, -1 person_event SPRITE_COOLTRAINER_F, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfFran, -1 - person_event SPRITE_BOULDER, 2, 8, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1 - person_event SPRITE_BOULDER, 3, 2, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2 - person_event SPRITE_BOULDER, 16, 6, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3 - person_event SPRITE_BOULDER, 3, 3, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 - person_event SPRITE_BOULDER, 1, 6, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 - person_event SPRITE_BOULDER, 14, 8, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 + person_event SPRITE_BOULDER, 2, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_1 + person_event SPRITE_BOULDER, 3, 2, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_2 + person_event SPRITE_BOULDER, 16, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, EVENT_BOULDER_IN_BLACKTHORN_GYM_3 + person_event SPRITE_BOULDER, 3, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 + person_event SPRITE_BOULDER, 1, 6, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 + person_event SPRITE_BOULDER, 14, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BlackthornGymBoulder, -1 diff --git a/maps/BlackthornPokeCenter1F.asm b/maps/BlackthornPokeCenter1F.asm index a5d6017f2..6d1656043 100644 --- a/maps/BlackthornPokeCenter1F.asm +++ b/maps/BlackthornPokeCenter1F.asm @@ -63,5 +63,5 @@ BlackthornPokeCenter1F_MapEventHeader: db 4 person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x195b79, -1 person_event SPRITE_GENTLEMAN, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x195b7c, -1 - person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x195b7f, -1 + person_event SPRITE_TWIN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x195b7f, -1 person_event SPRITE_COOLTRAINER_M, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x195b82, -1 diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm index bf458b5b6..de5bc1ca6 100644 --- a/maps/BluesHouse.asm +++ b/maps/BluesHouse.asm @@ -158,4 +158,4 @@ BluesHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, DaisyScript_0x19b0d0, -1 + person_event SPRITE_DAISY, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, DaisyScript_0x19b0d0, -1 diff --git a/maps/BurnedTower1F.asm b/maps/BurnedTower1F.asm index 6c1136b33..b318e2e39 100644 --- a/maps/BurnedTower1F.asm +++ b/maps/BurnedTower1F.asm @@ -309,8 +309,8 @@ BurnedTower1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_ROCK, 4, 15, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, BurnedTower1FRock, -1 - person_event SPRITE_SUPER_NERD, 12, 12, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE + person_event SPRITE_ROCK, 4, 15, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, BurnedTower1FRock, -1 + person_event SPRITE_SUPER_NERD, 12, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x185cbc, EVENT_BURNED_TOWER_1F_EUSINE person_event SPRITE_SILVER, 9, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 3, ObjectEvent, EVENT_RIVAL_BURNED_TOWER - person_event SPRITE_MORTY, 14, 14, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY - person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP + person_event SPRITE_MORTY, 14, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MortyScript_0x185cbf, EVENT_BURNED_TOWER_MORTY + person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ccb, EVENT_BURNED_TOWER_1F_HP_UP diff --git a/maps/BurnedTowerB1F.asm b/maps/BurnedTowerB1F.asm index c3c0e387b..d90ca49b3 100644 --- a/maps/BurnedTowerB1F.asm +++ b/maps/BurnedTowerB1F.asm @@ -251,12 +251,12 @@ BurnedTowerB1F_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_BOULDER, 8, 17, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, BurnedTowerB1FBoulder, -1 - person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 - person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 - person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 + person_event SPRITE_BOULDER, 8, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, BurnedTowerB1FBoulder, -1 + person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 + person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 + person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_1 person_event SPRITE_RAIKOU, 3, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 person_event SPRITE_ENTEI, 3, 12, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 person_event SPRITE_SUICUNE, 4, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_SILVER, 0, 0, ObjectEvent, EVENT_BURNED_TOWER_B1F_BEASTS_2 - person_event SPRITE_POKE_BALL, 4, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE + person_event SPRITE_POKE_BALL, 4, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x186231, EVENT_BURNED_TOWER_B1F_TM_ENDURE person_event SPRITE_SUPER_NERD, 12, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x186212, EVENT_EUSINE_IN_BURNED_TOWER diff --git a/maps/CeladonCity.asm b/maps/CeladonCity.asm index 3da01c1bc..798b6ca2a 100644 --- a/maps/CeladonCity.asm +++ b/maps/CeladonCity.asm @@ -258,11 +258,11 @@ CeladonCity_MapEventHeader: .PersonEvents: db 9 person_event SPRITE_FISHER, 11, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a9f43, -1 - person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonCityPoliwrath, -1 + person_event SPRITE_POLIWAG, 11, 27, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonCityPoliwrath, -1 person_event SPRITE_TEACHER, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x1a9f50, -1 person_event SPRITE_GRAMPS, 16, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x1a9f53, -1 person_event SPRITE_GRAMPS, 31, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrampsScript_0x1a9f56, -1 person_event SPRITE_YOUNGSTER, 13, 18, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x1a9f59, -1 person_event SPRITE_YOUNGSTER, 33, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9f5c, -1 - person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a9f5f, -1 + person_event SPRITE_TEACHER, 14, 6, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a9f5f, -1 person_event SPRITE_LASS, 22, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, LassScript_0x1a9f62, -1 diff --git a/maps/CeladonDeptStore1F.asm b/maps/CeladonDeptStore1F.asm index 24149a093..e87450176 100644 --- a/maps/CeladonDeptStore1F.asm +++ b/maps/CeladonDeptStore1F.asm @@ -90,5 +90,5 @@ CeladonDeptStore1F_MapEventHeader: .PersonEvents: db 3 person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x709e0, -1 - person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x709e3, -1 + person_event SPRITE_GENTLEMAN, 4, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x709e3, -1 person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x709e6, -1 diff --git a/maps/CeladonDeptStore3F.asm b/maps/CeladonDeptStore3F.asm index c98f2868c..f28dd9171 100644 --- a/maps/CeladonDeptStore3F.asm +++ b/maps/CeladonDeptStore3F.asm @@ -111,4 +111,4 @@ CeladonDeptStore3F_MapEventHeader: person_event SPRITE_YOUNGSTER, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x70d31, -1 person_event SPRITE_GAMEBOY_KID, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GameboyKidScript_0x70d34, -1 person_event SPRITE_GAMEBOY_KID, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GameboyKidScript_0x70d3f, -1 - person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x70d4a, -1 + person_event SPRITE_SUPER_NERD, 4, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x70d4a, -1 diff --git a/maps/CeladonDeptStore5F.asm b/maps/CeladonDeptStore5F.asm index 8ac74edff..e7abd43e1 100644 --- a/maps/CeladonDeptStore5F.asm +++ b/maps/CeladonDeptStore5F.asm @@ -86,6 +86,6 @@ CeladonDeptStore5F_MapEventHeader: db 5 person_event SPRITE_CLERK, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x71004, -1 person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ClerkScript_0x7100c, -1 - person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x71014, -1 - person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x71017, -1 + person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x71014, -1 + person_event SPRITE_SAILOR, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x71017, -1 person_event SPRITE_TEACHER, 7, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x7101a, -1 diff --git a/maps/CeladonDeptStore6F.asm b/maps/CeladonDeptStore6F.asm index e73f1bfdb..2ab328324 100644 --- a/maps/CeladonDeptStore6F.asm +++ b/maps/CeladonDeptStore6F.asm @@ -169,4 +169,4 @@ CeladonDeptStore6F_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_SUPER_NERD, 2, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7117a, -1 - person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_02, 1, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x7117d, -1 + person_event SPRITE_YOUNGSTER, 5, 12, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x7117d, -1 diff --git a/maps/CeladonMansion1F.asm b/maps/CeladonMansion1F.asm index 793c071ef..c900741f1 100644 --- a/maps/CeladonMansion1F.asm +++ b/maps/CeladonMansion1F.asm @@ -91,7 +91,7 @@ CeladonMansion1F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CeladonMansionManager, -1 - person_event SPRITE_GROWLITHE, 6, 2, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FMeowth, -1 - person_event SPRITE_CLEFAIRY, 4, 3, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FClefairy, -1 - person_event SPRITE_GROWLITHE, 4, 4, SPRITEMOVEDATA_16, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonMansion1FNidoranF, -1 + person_event SPRITE_GRANNY, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CeladonMansionManager, -1 + person_event SPRITE_GROWLITHE, 6, 2, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FMeowth, -1 + person_event SPRITE_CLEFAIRY, 4, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, CeladonMansion1FClefairy, -1 + person_event SPRITE_GROWLITHE, 4, 4, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CeladonMansion1FNidoranF, -1 diff --git a/maps/CeladonMansion3F.asm b/maps/CeladonMansion3F.asm index 341779351..f8dbc5a49 100644 --- a/maps/CeladonMansion3F.asm +++ b/maps/CeladonMansion3F.asm @@ -206,7 +206,7 @@ CeladonMansion3F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x71670, -1 + person_event SPRITE_COOLTRAINER_M, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x71670, -1 person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x71696, -1 person_event SPRITE_SUPER_NERD, 7, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x716bc, -1 person_event SPRITE_FISHER, 4, 0, SPRITEMOVEDATA_STANDING_UP, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x716bf, -1 diff --git a/maps/CeruleanCity.asm b/maps/CeruleanCity.asm index 2f45c8f2c..09b27c93e 100644 --- a/maps/CeruleanCity.asm +++ b/maps/CeruleanCity.asm @@ -299,9 +299,9 @@ CeruleanCity_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x184009, -1 - person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x18401d, -1 - person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, CeruleanCitySlowbro, -1 + person_event SPRITE_COOLTRAINER_M, 23, 15, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x184009, -1 + person_event SPRITE_SUPER_NERD, 15, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x18401d, -1 + person_event SPRITE_SLOWPOKE, 24, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, CeruleanCitySlowbro, -1 person_event SPRITE_COOLTRAINER_F, 24, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18402a, -1 person_event SPRITE_FISHER, 26, 30, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x18404a, -1 - person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_03, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x184064, -1 + person_event SPRITE_YOUNGSTER, 12, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x184064, -1 diff --git a/maps/CeruleanPokeCenter1F.asm b/maps/CeruleanPokeCenter1F.asm index ef0248bd3..5c72966a0 100644 --- a/maps/CeruleanPokeCenter1F.asm +++ b/maps/CeruleanPokeCenter1F.asm @@ -77,4 +77,4 @@ CeruleanPokeCenter1F_MapEventHeader: db 3 person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18820f, -1 person_event SPRITE_SUPER_NERD, 4, 8, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SuperNerdScript_0x188212, -1 - person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x18821e, -1 + person_event SPRITE_GYM_GUY, 5, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x18821e, -1 diff --git a/maps/CeruleanPoliceStation.asm b/maps/CeruleanPoliceStation.asm index dd497e881..c4fe89f31 100644 --- a/maps/CeruleanPoliceStation.asm +++ b/maps/CeruleanPoliceStation.asm @@ -57,4 +57,4 @@ CeruleanPoliceStation_MapEventHeader: db 3 person_event SPRITE_FISHING_GURU, 1, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FishingGuruScript_0x18804a, -1 person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x18804d, -1 - person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, DiglettScript_0x188050, -1 + person_event SPRITE_DIGLETT, 5, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, DiglettScript_0x188050, -1 diff --git a/maps/CeruleanTradeSpeechHouse.asm b/maps/CeruleanTradeSpeechHouse.asm index 352573506..85c166b1c 100644 --- a/maps/CeruleanTradeSpeechHouse.asm +++ b/maps/CeruleanTradeSpeechHouse.asm @@ -65,6 +65,6 @@ CeruleanTradeSpeechHouse_MapEventHeader: .PersonEvents: db 4 person_event SPRITE_GRANNY, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrannyScript_0x188133, -1 - person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_02, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x188136, -1 - person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, RhydonScript_0x188139, -1 - person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ZubatScript_0x188143, -1 + person_event SPRITE_GRAMPS, 2, 1, SPRITEMOVEDATA_WANDER, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x188136, -1 + person_event SPRITE_RHYDON, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, RhydonScript_0x188139, -1 + person_event SPRITE_ZUBAT, 6, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ZubatScript_0x188143, -1 diff --git a/maps/CharcoalKiln.asm b/maps/CharcoalKiln.asm index 62dc02425..0f2fc3a43 100644 --- a/maps/CharcoalKiln.asm +++ b/maps/CharcoalKiln.asm @@ -163,6 +163,6 @@ CharcoalKiln_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS - person_event SPRITE_YOUNGSTER, 3, 5, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE - person_event SPRITE_MOLTRES, 6, 5, SPRITEMOVEDATA_16, 2, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D + person_event SPRITE_BLACK_BELT, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CharcoalKilnBoss, EVENT_CHARCOAL_KILN_BOSS + person_event SPRITE_YOUNGSTER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, CharcoalKilnApprentice, EVENT_CHARCOAL_KILN_APPRENTICE + person_event SPRITE_MOLTRES, 6, 5, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CharcoalKilnFarfetchd, EVENT_CHARCOAL_KILN_FARFETCH_D diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index f41cf424b..af98e3735 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -571,7 +571,7 @@ CherrygroveCity_MapEventHeader: .PersonEvents: db 5 person_event SPRITE_GRAMPS, 6, 32, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CherrygroveCityGuideGent, EVENT_GUIDE_GENT_IN_HIS_HOUSE - person_event SPRITE_SILVER, 6, 39, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY + person_event SPRITE_SILVER, 6, 39, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_CHERRYGROVE_CITY person_event SPRITE_TEACHER, 12, 27, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x19c146, -1 person_event SPRITE_YOUNGSTER, 7, 23, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19c15a, -1 person_event SPRITE_FISHER, 12, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, MysticWaterGuy, -1 diff --git a/maps/CianwoodCity.asm b/maps/CianwoodCity.asm index 6db6dc7e8..f2ce88737 100644 --- a/maps/CianwoodCity.asm +++ b/maps/CianwoodCity.asm @@ -401,15 +401,15 @@ CianwoodCity_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_STANDING_YOUNGSTER, 37, 21, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, StandingYoungsterScript_0x1a00b3, -1 + person_event SPRITE_STANDING_YOUNGSTER, 37, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, StandingYoungsterScript_0x1a00b3, -1 person_event SPRITE_POKEFAN_M, 33, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x1a00b6, -1 person_event SPRITE_LASS, 42, 14, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, LassScript_0x1a00b9, -1 - person_event SPRITE_ROCK, 16, 8, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 17, 9, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 25, 4, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 29, 5, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 27, 10, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 - person_event SPRITE_ROCK, 19, 4, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 16, 8, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 17, 9, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 25, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 29, 5, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 27, 10, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 + person_event SPRITE_ROCK, 19, 4, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, CianwoodCityRock, -1 person_event SPRITE_POKEFAN_F, 46, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanFScript_0x1a0084, -1 person_event SPRITE_SUPER_NERD, 21, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_CIANWOOD_CITY_EUSINE - person_event SPRITE_SUICUNE, 14, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY + person_event SPRITE_SUICUNE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_AT_CIANWOOD_CITY diff --git a/maps/CianwoodGym.asm b/maps/CianwoodGym.asm index cacd4090d..f1cde441e 100644 --- a/maps/CianwoodGym.asm +++ b/maps/CianwoodGym.asm @@ -318,7 +318,7 @@ CianwoodGym_MapEventHeader: person_event SPRITE_BLACK_BELT, 12, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltLao, -1 person_event SPRITE_BLACK_BELT, 9, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltNob, -1 person_event SPRITE_BLACK_BELT, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerBlackbeltLung, -1 - person_event SPRITE_BOULDER, 1, 5, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 - person_event SPRITE_BOULDER, 7, 3, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 - person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 - person_event SPRITE_BOULDER, 7, 5, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 + person_event SPRITE_BOULDER, 1, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 + person_event SPRITE_BOULDER, 7, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 + person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 + person_event SPRITE_BOULDER, 7, 5, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, CianwoodGymBoulder, -1 diff --git a/maps/CinnabarIsland.asm b/maps/CinnabarIsland.asm index d21edb95d..fa39a5ba5 100644 --- a/maps/CinnabarIsland.asm +++ b/maps/CinnabarIsland.asm @@ -146,4 +146,4 @@ CinnabarIsland_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_BLUE, 6, 9, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR + person_event SPRITE_BLUE, 6, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CinnabarIslandBlue, EVENT_BLUE_IN_CINNABAR diff --git a/maps/CopycatsHouse1F.asm b/maps/CopycatsHouse1F.asm index 80f355d58..1e4cce6d3 100644 --- a/maps/CopycatsHouse1F.asm +++ b/maps/CopycatsHouse1F.asm @@ -87,4 +87,4 @@ CopycatsHouse1F_MapEventHeader: db 3 person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x18ad13, -1 person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, PokefanFScript_0x18ad16, -1 - person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ClefairyScript_0x18ad2a, -1 + person_event SPRITE_CLEFAIRY, 6, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ClefairyScript_0x18ad2a, -1 diff --git a/maps/CopycatsHouse2F.asm b/maps/CopycatsHouse2F.asm index b078c8ec6..255b606e4 100644 --- a/maps/CopycatsHouse2F.asm +++ b/maps/CopycatsHouse2F.asm @@ -374,7 +374,7 @@ CopycatsHouse2F_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_COPYCAT, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Copycat, EVENT_COPYCAT_1 - person_event SPRITE_MOLTRES, 4, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CopycatsDodrio, -1 + person_event SPRITE_MOLTRES, 4, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CopycatsDodrio, -1 person_event SPRITE_FAIRY, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CopycatsHouse2FDoll, EVENT_COPYCATS_HOUSE_2F_DOLL person_event SPRITE_MONSTER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CopycatsHouse2FDoll, -1 person_event SPRITE_BIRD, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CopycatsHouse2FDoll, -1 diff --git a/maps/DanceTheatre.asm b/maps/DanceTheatre.asm index 1d094c98d..bf852a2e5 100644 --- a/maps/DanceTheatre.asm +++ b/maps/DanceTheatre.asm @@ -345,12 +345,12 @@ DanceTheatre_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_KIMONO_GIRL, 2, 0, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlNaoko2, -1 - person_event SPRITE_KIMONO_GIRL, 1, 2, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlSayo, -1 - person_event SPRITE_KIMONO_GIRL, 2, 6, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerKimono_girlZuki, -1 - person_event SPRITE_KIMONO_GIRL, 1, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlKuni, -1 - person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlMiki, -1 + person_event SPRITE_KIMONO_GIRL, 2, 0, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlNaoko2, -1 + person_event SPRITE_KIMONO_GIRL, 1, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlSayo, -1 + person_event SPRITE_KIMONO_GIRL, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerKimono_girlZuki, -1 + person_event SPRITE_KIMONO_GIRL, 1, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerKimono_girlKuni, -1 + person_event SPRITE_KIMONO_GIRL, 2, 11, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerKimono_girlMiki, -1 person_event SPRITE_GENTLEMAN, 10, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x994c6, -1 - person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RhydonScript_0x9951b, -1 + person_event SPRITE_RHYDON, 8, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RhydonScript_0x9951b, -1 person_event SPRITE_COOLTRAINER_M, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x99525, -1 person_event SPRITE_GRANNY, 6, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x99528, -1 diff --git a/maps/DarkCaveBlackthornEntrance.asm b/maps/DarkCaveBlackthornEntrance.asm index ecfcb0862..5f06e6b88 100644 --- a/maps/DarkCaveBlackthornEntrance.asm +++ b/maps/DarkCaveBlackthornEntrance.asm @@ -73,6 +73,6 @@ DarkCaveBlackthornEntrance_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x18c720, -1 - person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE - person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE + person_event SPRITE_PHARMACIST, 3, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x18c720, -1 + person_event SPRITE_POKE_BALL, 24, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73b, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE + person_event SPRITE_POKE_BALL, 22, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c73d, EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE diff --git a/maps/DarkCaveVioletEntrance.asm b/maps/DarkCaveVioletEntrance.asm index 2ffb84f35..71c1be49a 100644 --- a/maps/DarkCaveVioletEntrance.asm +++ b/maps/DarkCaveVioletEntrance.asm @@ -43,11 +43,11 @@ DarkCaveVioletEntrance_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_POKE_BALL, 8, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION - person_event SPRITE_ROCK, 14, 16, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 - person_event SPRITE_ROCK, 6, 27, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 - person_event SPRITE_ROCK, 14, 7, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 - person_event SPRITE_ROCK, 31, 36, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 - person_event SPRITE_POKE_BALL, 22, 36, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL - person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION - person_event SPRITE_POKE_BALL, 28, 30, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT + person_event SPRITE_POKE_BALL, 8, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c68e, EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION + person_event SPRITE_ROCK, 14, 16, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 + person_event SPRITE_ROCK, 6, 27, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 + person_event SPRITE_ROCK, 14, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 + person_event SPRITE_ROCK, 31, 36, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, DarkCaveVioletEntranceRock, -1 + person_event SPRITE_POKE_BALL, 22, 36, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c690, EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL + person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c692, EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION + person_event SPRITE_POKE_BALL, 28, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c694, EVENT_DARK_CAVE_VIOLET_ENTRANCE_DIRE_HIT diff --git a/maps/DragonsDenB1F.asm b/maps/DragonsDenB1F.asm index b8a11e636..62a506089 100644 --- a/maps/DragonsDenB1F.asm +++ b/maps/DragonsDenB1F.asm @@ -419,12 +419,12 @@ DragonsDenB1F_MapEventHeader: .PersonEvents: db 9 - person_event SPRITE_POKE_BALL, 16, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG + person_event SPRITE_POKE_BALL, 16, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokeBallScript_0x18c95a, EVENT_DRAGONS_DEN_B1F_DRAGON_FANG person_event SPRITE_CLAIR, 30, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_DRAGONS_DEN_CLAIR - person_event SPRITE_SILVER, 23, 20, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN + person_event SPRITE_SILVER, 23, 20, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, SilverScript_0x18c97e, EVENT_RIVAL_DRAGONS_DEN person_event SPRITE_COOLTRAINER_M, 8, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainermDarin, -1 person_event SPRITE_COOLTRAINER_F, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfCara, -1 person_event SPRITE_TWIN, 17, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia1, -1 person_event SPRITE_TWIN, 18, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsLeaandpia2, -1 - person_event SPRITE_POKE_BALL, 4, 30, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM - person_event SPRITE_POKE_BALL, 20, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER + person_event SPRITE_POKE_BALL, 4, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a1, EVENT_DRAGONS_DEN_B1F_CALCIUM + person_event SPRITE_POKE_BALL, 20, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c9a3, EVENT_DRAGONS_DEN_B1F_MAX_ELIXER diff --git a/maps/EarlsPokemonAcademy.asm b/maps/EarlsPokemonAcademy.asm index 4b1c8c37f..8a00ae5be 100644 --- a/maps/EarlsPokemonAcademy.asm +++ b/maps/EarlsPokemonAcademy.asm @@ -430,4 +430,4 @@ EarlsPokemonAcademy_MapEventHeader: person_event SPRITE_GAMEBOY_KID, 11, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x68a86, -1 person_event SPRITE_GAMEBOY_KID, 11, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GameboyKidScript_0x68a91, -1 person_event SPRITE_YOUNGSTER, 7, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x68a9c, -1 - person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, AcademyNotebook, -1 + person_event SPRITE_POKEDEX, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, AcademyNotebook, -1 diff --git a/maps/EcruteakCity.asm b/maps/EcruteakCity.asm index 31a8bf811..4c8408dcc 100644 --- a/maps/EcruteakCity.asm +++ b/maps/EcruteakCity.asm @@ -290,10 +290,10 @@ EcruteakCity_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a4009, -1 - person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a400c, -1 + person_event SPRITE_GRAMPS, 15, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a4009, -1 + person_event SPRITE_GRAMPS, 21, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1a400c, -1 person_event SPRITE_LASS, 29, 21, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1a4012, -1 person_event SPRITE_LASS, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a4015, -1 person_event SPRITE_FISHER, 22, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a4029, -1 - person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a403d, -1 - person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS + person_event SPRITE_YOUNGSTER, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a403d, -1 + person_event SPRITE_GRAMPS, 7, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GrampsScript_0x1a400f, EVENT_ECRUTEAK_CITY_GRAMPS diff --git a/maps/EcruteakHouse.asm b/maps/EcruteakHouse.asm index f04446014..724cf79a9 100644 --- a/maps/EcruteakHouse.asm +++ b/maps/EcruteakHouse.asm @@ -300,5 +300,5 @@ EcruteakHouse_MapEventHeader: db 4 person_event SPRITE_SAGE, 6, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_1 person_event SPRITE_SAGE, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x98062, EVENT_RANG_CLEAR_BELL_2 - person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE - person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE + person_event SPRITE_SAGE, 9, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SageScript_0x980b0, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE + person_event SPRITE_GRAMPS, 11, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GrampsScript_0x980c4, EVENT_ECRUTEAK_HOUSE_WANDERING_SAGE diff --git a/maps/EcruteakItemfinderHouse.asm b/maps/EcruteakItemfinderHouse.asm index dd5ec85de..1be31c113 100644 --- a/maps/EcruteakItemfinderHouse.asm +++ b/maps/EcruteakItemfinderHouse.asm @@ -177,4 +177,4 @@ EcruteakItemfinderHouse_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_COOLTRAINER_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x9a5fb, -1 - person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x9a620, -1 + person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x9a620, -1 diff --git a/maps/EcruteakLugiaSpeechHouse.asm b/maps/EcruteakLugiaSpeechHouse.asm index bf0aa5d5e..15454ce94 100644 --- a/maps/EcruteakLugiaSpeechHouse.asm +++ b/maps/EcruteakLugiaSpeechHouse.asm @@ -58,5 +58,5 @@ EcruteakLugiaSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x99334, -1 + person_event SPRITE_GRAMPS, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x99334, -1 person_event SPRITE_YOUNGSTER, 4, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x99337, -1 diff --git a/maps/EcruteakPokeCenter1F.asm b/maps/EcruteakPokeCenter1F.asm index 0cde69101..16fde129e 100644 --- a/maps/EcruteakPokeCenter1F.asm +++ b/maps/EcruteakPokeCenter1F.asm @@ -220,7 +220,7 @@ EcruteakPokeCenter1F_MapEventHeader: .PersonEvents: db 5 person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x98eb0, -1 - person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x98eb3, -1 - person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x98ebf, -1 + person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x98eb3, -1 + person_event SPRITE_COOLTRAINER_F, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x98ebf, -1 person_event SPRITE_GYM_GUY, 1, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x98ec2, -1 person_event SPRITE_BILL, 7, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ECRUTEAK_POKE_CENTER_BILL diff --git a/maps/ElmsLab.asm b/maps/ElmsLab.asm index 27f9e3280..33e954102 100644 --- a/maps/ElmsLab.asm +++ b/maps/ElmsLab.asm @@ -1409,8 +1409,8 @@ ElmsLab_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_ELM, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ProfElmScript, -1 - person_event SPRITE_SCIENTIST, 9, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB - person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB - person_event SPRITE_POKE_BALL, 3, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB - person_event SPRITE_POKE_BALL, 3, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB + person_event SPRITE_SCIENTIST, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ElmsAideScript, EVENT_ELMS_AIDE_IN_LAB + person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, CyndaquilPokeBallScript, EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB + person_event SPRITE_POKE_BALL, 3, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, TotodilePokeBallScript, EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB + person_event SPRITE_POKE_BALL, 3, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, ChikoritaPokeBallScript, EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB person_event SPRITE_OFFICER, 3, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CopScript, EVENT_COP_IN_ELMS_LAB diff --git a/maps/FastShipB1F.asm b/maps/FastShipB1F.asm index ddb2586a0..145f890d4 100644 --- a/maps/FastShipB1F.asm +++ b/maps/FastShipB1F.asm @@ -463,8 +463,8 @@ FastShipB1F_MapEventHeader: person_event SPRITE_SUPER_NERD, 9, 26, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerJugglerFritz, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP person_event SPRITE_SAILOR, 4, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSailorGarrett, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND person_event SPRITE_FISHER, 8, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherJonah, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_BLACK_BELT, 11, 15, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_BLACK_BELT, 11, 15, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBlackbeltWai, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND person_event SPRITE_SAILOR, 4, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSailorKenneth, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND person_event SPRITE_TEACHER, 11, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherShirley, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_YOUNGSTER, 9, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyNate, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyRicky, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/FastShipCabins_NNW_NNE_NE.asm b/maps/FastShipCabins_NNW_NNE_NE.asm index cb9643a7e..f0c972aba 100644 --- a/maps/FastShipCabins_NNW_NNE_NE.asm +++ b/maps/FastShipCabins_NNW_NNE_NE.asm @@ -278,10 +278,10 @@ FastShipCabins_NNW_NNE_NE_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_COOLTRAINER_M, 3, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_COOLTRAINER_M, 3, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermSean, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND person_event SPRITE_COOLTRAINER_F, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfCarol, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND person_event SPRITE_SUPER_NERD, 5, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacEthan, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND person_event SPRITE_POKEFAN_M, 17, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerNoland, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_SAILOR, 26, 4, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR - person_event SPRITE_GENTLEMAN, 30, 7, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_SAILOR, 26, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x755f1, EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR + person_event SPRITE_GENTLEMAN, 30, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerGentlemanEdward, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND person_event SPRITE_PHARMACIST, 30, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerBurglarCorey, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm index bd050cb96..3c823caaf 100644 --- a/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm +++ b/maps/FastShipCabins_SE_SSE_CaptainsCabin.asm @@ -473,12 +473,12 @@ FastShipCabins_SE_SSE_CaptainsCabin_MapEventHeader: db 11 person_event SPRITE_CAPTAIN, 25, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CaptainScript_0x75ea7, -1 person_event SPRITE_GENTLEMAN, 17, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x75f1f, EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN - person_event SPRITE_TWIN, 17, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1 - person_event SPRITE_TWIN, 25, 2, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2 + person_event SPRITE_TWIN, 17, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75f6d, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1 + person_event SPRITE_TWIN, 25, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x75ebb, EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2 person_event SPRITE_POKEFAN_M, 6, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerPokefanmColin, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP person_event SPRITE_TWIN, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg1, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsMegandpeg2, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP person_event SPRITE_SUPER_NERD, 5, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerPsychicRodney, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmJeremy, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND person_event SPRITE_POKEFAN_F, 5, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerPokefanfGeorgia, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_SUPER_NERD, 15, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_SUPER_NERD, 15, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdShawn, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND diff --git a/maps/FastShipCabins_SW_SSW_NW.asm b/maps/FastShipCabins_SW_SSW_NW.asm index 9fdcdbb43..7a0b5d3a6 100644 --- a/maps/FastShipCabins_SW_SSW_NW.asm +++ b/maps/FastShipCabins_SW_SSW_NW.asm @@ -239,7 +239,7 @@ FastShipCabins_SW_SSW_NW_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_FISHER, 15, 1, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP - person_event SPRITE_BUG_CATCHER, 15, 6, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND - person_event SPRITE_BUENA, 26, 1, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND - person_event SPRITE_ROCKER, 28, 3, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_FISHER, 15, 1, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherLyle, EVENT_FAST_SHIP_PASSENGERS_FIRST_TRIP + person_event SPRITE_BUG_CATCHER, 15, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBug_catcherKen, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + person_event SPRITE_BUENA, 26, 1, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBeautyCassie, EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + person_event SPRITE_ROCKER, 28, 3, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerGuitaristClyde, EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/FightingDojo.asm b/maps/FightingDojo.asm index 595de0dca..e8c91b9d9 100644 --- a/maps/FightingDojo.asm +++ b/maps/FightingDojo.asm @@ -58,4 +58,4 @@ FightingDojo_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_BLACK_BELT, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x189b61, -1 - person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND + person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x189b6a, EVENT_PICKED_UP_FOCUS_BAND diff --git a/maps/FuchsiaCity.asm b/maps/FuchsiaCity.asm index 297cd63b8..a2fdd770a 100644 --- a/maps/FuchsiaCity.asm +++ b/maps/FuchsiaCity.asm @@ -154,7 +154,7 @@ FuchsiaCity_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_YOUNGSTER, 18, 23, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x194b22, -1 - person_event SPRITE_POKEFAN_M, 8, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x194b25, -1 - person_event SPRITE_TEACHER, 14, 16, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x194b28, -1 - person_event SPRITE_FRUIT_TREE, 1, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194b43, -1 + person_event SPRITE_YOUNGSTER, 18, 23, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x194b22, -1 + person_event SPRITE_POKEFAN_M, 8, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x194b25, -1 + person_event SPRITE_TEACHER, 14, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x194b28, -1 + person_event SPRITE_FRUIT_TREE, 1, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194b43, -1 diff --git a/maps/FuchsiaGym.asm b/maps/FuchsiaGym.asm index 211c470a0..e28079fec 100644 --- a/maps/FuchsiaGym.asm +++ b/maps/FuchsiaGym.asm @@ -391,9 +391,9 @@ FuchsiaGym_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_JANINE, 10, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, JanineScript_0x195db9, -1 - person_event SPRITE_FUCHSIA_GYM_1, 7, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym1Script_0x195e1b, -1 - person_event SPRITE_FUCHSIA_GYM_2, 11, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym2Script_0x195e55, -1 - person_event SPRITE_FUCHSIA_GYM_3, 4, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym3Script_0x195e8f, -1 - person_event SPRITE_FUCHSIA_GYM_4, 2, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym4Script_0x195ec9, -1 + person_event SPRITE_JANINE, 10, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, JanineScript_0x195db9, -1 + person_event SPRITE_FUCHSIA_GYM_1, 7, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym1Script_0x195e1b, -1 + person_event SPRITE_FUCHSIA_GYM_2, 11, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym2Script_0x195e55, -1 + person_event SPRITE_FUCHSIA_GYM_3, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym3Script_0x195e8f, -1 + person_event SPRITE_FUCHSIA_GYM_4, 2, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuschiaGym4Script_0x195ec9, -1 person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FuchsiaGymGuyScript, -1 diff --git a/maps/GoldenrodBillsHouse.asm b/maps/GoldenrodBillsHouse.asm index 479498103..03647f81d 100644 --- a/maps/GoldenrodBillsHouse.asm +++ b/maps/GoldenrodBillsHouse.asm @@ -259,4 +259,4 @@ GoldenrodBillsHouse_MapEventHeader: db 3 person_event SPRITE_BILL, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BillsHouseBill, EVENT_MET_BILL person_event SPRITE_POKEFAN_F, 3, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BillsMom, -1 - person_event SPRITE_TWIN, 4, 5, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BillsSister, -1 + person_event SPRITE_TWIN, 4, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BillsSister, -1 diff --git a/maps/GoldenrodCity.asm b/maps/GoldenrodCity.asm index 08c965080..83f6fa797 100644 --- a/maps/GoldenrodCity.asm +++ b/maps/GoldenrodCity.asm @@ -582,10 +582,10 @@ GoldenrodCity_MapEventHeader: .PersonEvents: db 15 person_event SPRITE_POKEFAN_M, 18, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1989e3, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_YOUNGSTER, 17, 30, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1989e6, EVENT_GOLDENROD_CITY_CIVILIANS person_event SPRITE_COOLTRAINER_F, 16, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x1989e9, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS - person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_COOLTRAINER_F, 26, 20, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, CooltrainerFScript_0x1989fd, EVENT_GOLDENROD_CITY_CIVILIANS + person_event SPRITE_YOUNGSTER, 17, 19, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x198a11, EVENT_GOLDENROD_CITY_CIVILIANS person_event SPRITE_LASS, 10, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x198a14, EVENT_GOLDENROD_CITY_CIVILIANS person_event SPRITE_GRAMPS, 27, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x198a17, EVENT_GOLDENROD_CITY_CIVILIANS person_event SPRITE_ROCKET, 16, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a1a, EVENT_GOLDENROD_CITY_ROCKET_SCOUT @@ -595,4 +595,4 @@ GoldenrodCity_MapEventHeader: person_event SPRITE_ROCKET, 20, 29, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a32, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET, 7, 29, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a35, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET, 10, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x198a38, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR + person_event SPRITE_POKEFAN_M, 22, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MoveTutor, EVENT_GOLDENROD_CITY_MOVE_TUTOR diff --git a/maps/GoldenrodDeptStore1F.asm b/maps/GoldenrodDeptStore1F.asm index b131b2bcc..ef42c651b 100644 --- a/maps/GoldenrodDeptStore1F.asm +++ b/maps/GoldenrodDeptStore1F.asm @@ -96,4 +96,4 @@ GoldenrodDeptStore1F_MapEventHeader: person_event SPRITE_RECEPTIONIST, 1, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ReceptionistScript_0x55981, -1 person_event SPRITE_POKEFAN_F, 4, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x55987, -1 person_event SPRITE_BUG_CATCHER, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x5598a, -1 - person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x55984, -1 + person_event SPRITE_GENTLEMAN, 5, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GentlemanScript_0x55984, -1 diff --git a/maps/GoldenrodDeptStore2F.asm b/maps/GoldenrodDeptStore2F.asm index 03d53c0f0..6f59e8523 100644 --- a/maps/GoldenrodDeptStore2F.asm +++ b/maps/GoldenrodDeptStore2F.asm @@ -117,4 +117,4 @@ GoldenrodDeptStore2F_MapEventHeader: person_event SPRITE_CLERK, 6, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55b65, -1 person_event SPRITE_YOUNGSTER, 6, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, YoungsterScript_0x55b6d, -1 person_event SPRITE_COOLTRAINER_F, 2, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x55b70, -1 - person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x55b73, -1 + person_event SPRITE_GENTLEMAN, 6, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x55b73, -1 diff --git a/maps/GoldenrodDeptStore3F.asm b/maps/GoldenrodDeptStore3F.asm index ca87e0a03..522798fa1 100644 --- a/maps/GoldenrodDeptStore3F.asm +++ b/maps/GoldenrodDeptStore3F.asm @@ -72,5 +72,5 @@ GoldenrodDeptStore3F_MapEventHeader: .PersonEvents: db 3 person_event SPRITE_CLERK, 1, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x55db8, -1 - person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_0A, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x55dc0, -1 + person_event SPRITE_SUPER_NERD, 5, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x55dc0, -1 person_event SPRITE_ROCKER, 5, 2, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, RockerScript_0x55dc3, -1 diff --git a/maps/GoldenrodDeptStore5F.asm b/maps/GoldenrodDeptStore5F.asm index bc7078ede..4bfa0e907 100644 --- a/maps/GoldenrodDeptStore5F.asm +++ b/maps/GoldenrodDeptStore5F.asm @@ -233,8 +233,8 @@ GoldenrodDeptStore5F_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_CLERK, 5, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5609c, -1 - person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, LassScript_0x56130, -1 - person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x56133, -1 - person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, PokefanMScript_0x5613a, -1 + person_event SPRITE_LASS, 6, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, LassScript_0x56130, -1 + person_event SPRITE_COOLTRAINER_M, 3, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x56133, -1 + person_event SPRITE_POKEFAN_M, 5, 13, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, PokefanMScript_0x5613a, -1 person_event SPRITE_TWIN, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56118, -1 person_event SPRITE_RECEPTIONIST, 5, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ReceptionistScript_0x560ce, EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY diff --git a/maps/GoldenrodDeptStoreB1F.asm b/maps/GoldenrodDeptStoreB1F.asm index 69c4141d1..e17bb5368 100644 --- a/maps/GoldenrodDeptStoreB1F.asm +++ b/maps/GoldenrodDeptStoreB1F.asm @@ -121,11 +121,11 @@ GoldenrodDeptStoreB1F_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER - person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN - person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL - person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL + person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c3, EVENT_GOLDENROD_DEPT_STORE_B1F_ETHER + person_event SPRITE_POKE_BALL, 2, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c5, EVENT_GOLDENROD_DEPT_STORE_B1F_AMULET_COIN + person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c7, EVENT_GOLDENROD_DEPT_STORE_B1F_BURN_HEAL + person_event SPRITE_POKE_BALL, 15, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d7c9, EVENT_GOLDENROD_DEPT_STORE_B1F_ULTRA_BALL person_event SPRITE_BLACK_BELT, 10, 9, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BlackBeltScript_0x7d7b0, -1 - person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BlackBeltScript_0x7d7b3, -1 + person_event SPRITE_BLACK_BELT, 8, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BlackBeltScript_0x7d7b3, -1 person_event SPRITE_BLACK_BELT, 13, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BlackBeltScript_0x7d7b6, -1 - person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MachopScript_0x7d7b9, -1 + person_event SPRITE_MACHOP, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MachopScript_0x7d7b9, -1 diff --git a/maps/GoldenrodDeptStoreRoof.asm b/maps/GoldenrodDeptStoreRoof.asm index 3a20e8b3d..234a3adfc 100644 --- a/maps/GoldenrodDeptStoreRoof.asm +++ b/maps/GoldenrodDeptStoreRoof.asm @@ -228,8 +228,8 @@ GoldenrodDeptStoreRoof_MapEventHeader: person_event SPRITE_CLERK, 4, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x5673f, EVENT_GOLDENROD_SALE_OFF person_event SPRITE_POKEFAN_F, 3, 10, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x56746, -1 person_event SPRITE_FISHER, 1, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x56749, -1 - person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON + person_event SPRITE_TWIN, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x56754, EVENT_GOLDENROD_SALE_ON person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x56757, EVENT_GOLDENROD_SALE_ON person_event SPRITE_POKEFAN_M, 0, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, PokefanMScript_0x5676a, EVENT_GOLDENROD_SALE_OFF - person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF + person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5676d, EVENT_GOLDENROD_SALE_OFF person_event SPRITE_BUG_CATCHER, 6, 1, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x56770, EVENT_GOLDENROD_SALE_OFF diff --git a/maps/GoldenrodFlowerShop.asm b/maps/GoldenrodFlowerShop.asm index 29106e91e..51f574688 100644 --- a/maps/GoldenrodFlowerShop.asm +++ b/maps/GoldenrodFlowerShop.asm @@ -173,4 +173,4 @@ GoldenrodFlowerShop_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_TEACHER, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FlowerShopTeacherScript, -1 - person_event SPRITE_LASS, 6, 5, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP + person_event SPRITE_LASS, 6, 5, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FlowerShopFloriaScript, EVENT_FLORIA_AT_FLOWER_SHOP diff --git a/maps/GoldenrodGameCorner.asm b/maps/GoldenrodGameCorner.asm index ad2b04cc2..fc635d694 100644 --- a/maps/GoldenrodGameCorner.asm +++ b/maps/GoldenrodGameCorner.asm @@ -487,7 +487,7 @@ GoldenrodGameCorner_MapEventHeader: person_event SPRITE_POKEFAN_M, 10, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56dfc, -1 person_event SPRITE_COOLTRAINER_M, 8, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerMScript_0x56e07, -1 person_event SPRITE_POKEFAN_F, 6, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x56e12, -1 - person_event SPRITE_COOLTRAINER_F, 3, 10, SPRITEMOVEDATA_02, 1, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x56e1d, -1 + person_event SPRITE_COOLTRAINER_F, 3, 10, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x56e1d, -1 person_event SPRITE_GENTLEMAN, 10, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GentlemanScript_0x56e20, -1 - person_event SPRITE_POKEFAN_M, 9, 2, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56e2b, -1 + person_event SPRITE_POKEFAN_M, 9, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x56e2b, -1 person_event SPRITE_POKEFAN_M, 10, 17, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x56c1a, EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm index a20649ae1..b92de272c 100644 --- a/maps/GoldenrodMagnetTrainStation.asm +++ b/maps/GoldenrodMagnetTrainStation.asm @@ -183,4 +183,4 @@ GoldenrodMagnetTrainStation_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x550ec, -1 - person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN + person_event SPRITE_GENTLEMAN, 14, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, GentlemanScript_0x55143, EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN diff --git a/maps/IcePath1F.asm b/maps/IcePath1F.asm index cf45742c0..ca6777565 100644 --- a/maps/IcePath1F.asm +++ b/maps/IcePath1F.asm @@ -33,6 +33,6 @@ IcePath1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 7, 31, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL - person_event SPRITE_POKE_BALL, 23, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP - person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN + person_event SPRITE_POKE_BALL, 7, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e472, EVENT_GOT_HM07_WATERFALL + person_event SPRITE_POKE_BALL, 23, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e474, EVENT_ICE_PATH_1F_PP_UP + person_event SPRITE_POKE_BALL, 9, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e476, EVENT_ICE_PATH_1F_PROTEIN diff --git a/maps/IcePathB1F.asm b/maps/IcePathB1F.asm index 09965dd42..4374f4c64 100644 --- a/maps/IcePathB1F.asm +++ b/maps/IcePathB1F.asm @@ -107,8 +107,8 @@ IcePathB1F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_BOULDER, 7, 11, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1 - person_event SPRITE_BOULDER, 8, 7, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2 - person_event SPRITE_BOULDER, 9, 8, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3 - person_event SPRITE_BOULDER, 7, 17, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4 - person_event SPRITE_POKE_BALL, 35, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON + person_event SPRITE_BOULDER, 7, 11, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_1 + person_event SPRITE_BOULDER, 8, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_2 + person_event SPRITE_BOULDER, 9, 8, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_3 + person_event SPRITE_BOULDER, 7, 17, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, IcePathB1FBoulder, EVENT_BOULDER_IN_ICE_PATH_4 + person_event SPRITE_POKE_BALL, 35, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e50d, EVENT_ICE_PATH_B1F_IRON diff --git a/maps/IcePathB2FBlackthornSide.asm b/maps/IcePathB2FBlackthornSide.asm index a8ec76b70..651538e9e 100644 --- a/maps/IcePathB2FBlackthornSide.asm +++ b/maps/IcePathB2FBlackthornSide.asm @@ -30,4 +30,4 @@ IcePathB2FBlackthornSide_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST + person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e646, EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST diff --git a/maps/IcePathB2FMahoganySide.asm b/maps/IcePathB2FMahoganySide.asm index f4d885ec5..7f8c01649 100644 --- a/maps/IcePathB2FMahoganySide.asm +++ b/maps/IcePathB2FMahoganySide.asm @@ -45,9 +45,9 @@ IcePathB2FMahoganySide_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_BOULDER, 3, 11, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A - person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A - person_event SPRITE_BOULDER, 12, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A - person_event SPRITE_BOULDER, 13, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A - person_event SPRITE_POKE_BALL, 9, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL - person_event SPRITE_POKE_BALL, 2, 0, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION + person_event SPRITE_BOULDER, 3, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_1A + person_event SPRITE_BOULDER, 7, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_2A + person_event SPRITE_BOULDER, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_3A + person_event SPRITE_BOULDER, 13, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, BoulderScript_0x7e5a3, EVENT_BOULDER_IN_ICE_PATH_4A + person_event SPRITE_POKE_BALL, 9, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a6, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_FULL_HEAL + person_event SPRITE_POKE_BALL, 2, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e5a8, EVENT_ICE_PATH_B2F_MAHOGANY_SIDE_MAX_POTION diff --git a/maps/IcePathB3F.asm b/maps/IcePathB3F.asm index 186bad318..636f2ae47 100644 --- a/maps/IcePathB3F.asm +++ b/maps/IcePathB3F.asm @@ -28,5 +28,5 @@ IcePathB3F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKE_BALL, 7, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE - person_event SPRITE_ROCK, 6, 6, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, IcePathB3FRock, -1 + person_event SPRITE_POKE_BALL, 7, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e66f, EVENT_ICE_PATH_B3F_NEVERMELTICE + person_event SPRITE_ROCK, 6, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, IcePathB3FRock, -1 diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index 290127a0d..570500dee 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -950,14 +950,14 @@ IlexForest_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD + person_event SPRITE_BIRD, 31, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BirdScript_0x6eb8f, EVENT_ILEX_FOREST_FARFETCHD person_event SPRITE_YOUNGSTER, 28, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x6eb7b, EVENT_ILEX_FOREST_APPRENTICE person_event SPRITE_BLACK_BELT, 28, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6edae, EVENT_ILEX_FOREST_CHARCOAL_MASTER person_event SPRITE_ROCKER, 14, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x6edde, -1 - person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE + person_event SPRITE_POKE_BALL, 32, 20, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee10, EVENT_ILEX_FOREST_REVIVE person_event SPRITE_KURT, 29, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_ILEX_FOREST_KURT person_event SPRITE_LASS, 24, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x6ee0d, EVENT_ILEX_FOREST_LASS person_event SPRITE_YOUNGSTER, 1, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerBug_catcherWayne, -1 - person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK - person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE - person_event SPRITE_POKE_BALL, 1, 27, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER + person_event SPRITE_POKE_BALL, 17, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee12, EVENT_ILEX_FOREST_X_ATTACK + person_event SPRITE_POKE_BALL, 7, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee14, EVENT_ILEX_FOREST_ANTIDOTE + person_event SPRITE_POKE_BALL, 1, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6ee16, EVENT_ILEX_FOREST_ETHER diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index a294c50ce..5d1a94345 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -321,7 +321,7 @@ IndigoPlateauPokeCenter1F_MapEventHeader: db 6 person_event SPRITE_NURSE, 7, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18012c, -1 person_event SPRITE_CLERK, 7, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18012f, -1 - person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x180136, -1 + person_event SPRITE_COOLTRAINER_M, 11, 11, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, CooltrainerMScript_0x180136, -1 person_event SPRITE_SILVER, 9, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL person_event SPRITE_GRAMPS, 9, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeleportGuyScript, EVENT_TELEPORT_GUY - person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, AbraScript, EVENT_TELEPORT_GUY + person_event SPRITE_JYNX, 9, 0, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, AbraScript, EVENT_TELEPORT_GUY diff --git a/maps/KrissHouse2F.asm b/maps/KrissHouse2F.asm index 7ef69377f..e344f7f4d 100644 --- a/maps/KrissHouse2F.asm +++ b/maps/KrissHouse2F.asm @@ -134,7 +134,7 @@ KrissHouse2F_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_CONSOLE, 2, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE - person_event SPRITE_DOLL_1, 4, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1 - person_event SPRITE_DOLL_2, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2 - person_event SPRITE_BIG_DOLL, 1, 0, SPRITEMOVEDATA_21, 0, 0, -1, -1, 0, 0, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL + person_event SPRITE_CONSOLE, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, GameConsole, EVENT_KRISS_HOUSE_2F_CONSOLE + person_event SPRITE_DOLL_1, 4, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, Doll1, EVENT_KRISS_HOUSE_2F_DOLL_1 + person_event SPRITE_DOLL_2, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, Doll2, EVENT_KRISS_HOUSE_2F_DOLL_2 + person_event SPRITE_BIG_DOLL, 1, 0, SPRITEMOVEDATA_BIGDOLL, 0, 0, -1, -1, 0, 0, 0, BigDoll, EVENT_KRISS_HOUSE_2F_BIG_DOLL diff --git a/maps/KurtsHouse.asm b/maps/KurtsHouse.asm index 10cfd1349..9d8a16753 100644 --- a/maps/KurtsHouse.asm +++ b/maps/KurtsHouse.asm @@ -697,7 +697,7 @@ KurtsHouse_MapEventHeader: .PersonEvents: db 5 person_event SPRITE_KURT, 2, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e178, EVENT_KURTS_HOUSE_KURT_1 - person_event SPRITE_TWIN, 3, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1 - person_event SPRITE_SLOWPOKE, 3, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE + person_event SPRITE_TWIN, 3, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter1, EVENT_KURTS_HOUSE_GRANDDAUGHTER_1 + person_event SPRITE_SLOWPOKE, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, KurtsHouseSlowpoke, EVENT_KURTS_HOUSE_SLOWPOKE person_event SPRITE_KURT, 3, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x18e3bd, EVENT_KURTS_HOUSE_KURT_2 person_event SPRITE_TWIN, 4, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, KurtsGranddaughter2, EVENT_KURTS_HOUSE_GRANDDAUGHTER_2 diff --git a/maps/LakeofRage.asm b/maps/LakeofRage.asm index 2cd260cd0..d2bea4ddd 100644 --- a/maps/LakeofRage.asm +++ b/maps/LakeofRage.asm @@ -517,7 +517,7 @@ LakeofRage_MapEventHeader: person_event SPRITE_FISHER, 26, 24, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerFisherRaymond, EVENT_LAKE_OF_RAGE_CIVILIANS person_event SPRITE_COOLTRAINER_M, 15, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermAaron, EVENT_LAKE_OF_RAGE_CIVILIANS person_event SPRITE_COOLTRAINER_F, 7, 36, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerCooltrainerfLois, EVENT_LAKE_OF_RAGE_CIVILIANS - person_event SPRITE_GYARADOS, 22, 18, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS + person_event SPRITE_GYARADOS, 22, 18, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GyaradosScript_0x70063, EVENT_LAKE_OF_RAGE_RED_GYARADOS person_event SPRITE_SUPER_NERD, 4, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, WesleyScript, EVENT_LAKE_OF_RAGE_WESLEY_OF_WEDNESDAY - person_event SPRITE_POKE_BALL, 10, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER - person_event SPRITE_POKE_BALL, 2, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT + person_event SPRITE_POKE_BALL, 10, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x70148, EVENT_LAKE_OF_RAGE_ELIXER + person_event SPRITE_POKE_BALL, 2, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7014a, EVENT_LAKE_OF_RAGE_TM_DETECT diff --git a/maps/LakeofRageHiddenPowerHouse.asm b/maps/LakeofRageHiddenPowerHouse.asm index 6a3744289..a5d4dd2a0 100644 --- a/maps/LakeofRageHiddenPowerHouse.asm +++ b/maps/LakeofRageHiddenPowerHouse.asm @@ -83,4 +83,4 @@ LakeofRageHiddenPowerHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, HiddenPowerGuy, -1 + person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, HiddenPowerGuy, -1 diff --git a/maps/LakeofRageMagikarpHouse.asm b/maps/LakeofRageMagikarpHouse.asm index e197d90fd..5dcf7e4f8 100644 --- a/maps/LakeofRageMagikarpHouse.asm +++ b/maps/LakeofRageMagikarpHouse.asm @@ -221,4 +221,4 @@ LakeofRageMagikarpHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x19a6ae, -1 + person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, FishingGuruScript_0x19a6ae, -1 diff --git a/maps/LavRadioTower1F.asm b/maps/LavRadioTower1F.asm index 2a9e31a65..47d189725 100644 --- a/maps/LavRadioTower1F.asm +++ b/maps/LavRadioTower1F.asm @@ -235,6 +235,6 @@ LavRadioTower1F_MapEventHeader: db 5 person_event SPRITE_RECEPTIONIST, 6, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x7ee63, -1 person_event SPRITE_OFFICER, 1, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x7ee66, -1 - person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x7ee69, -1 + person_event SPRITE_SUPER_NERD, 3, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x7ee69, -1 person_event SPRITE_GENTLEMAN, 1, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7ee6c, -1 person_event SPRITE_SUPER_NERD, 6, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7eea2, -1 diff --git a/maps/LavenderMart.asm b/maps/LavenderMart.asm index 4271669ad..7cadf2ecc 100644 --- a/maps/LavenderMart.asm +++ b/maps/LavenderMart.asm @@ -61,4 +61,4 @@ LavenderMart_MapEventHeader: db 3 person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x7eb1c, -1 person_event SPRITE_POKEFAN_M, 6, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x7eb23, -1 - person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x7eb26, -1 + person_event SPRITE_ROCKER, 2, 9, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, RockerScript_0x7eb26, -1 diff --git a/maps/MahoganyGym.asm b/maps/MahoganyGym.asm index b1a3d8851..a9b6d05ed 100644 --- a/maps/MahoganyGym.asm +++ b/maps/MahoganyGym.asm @@ -387,5 +387,5 @@ MahoganyGym_MapEventHeader: person_event SPRITE_ROCKER, 17, 0, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderRonald, -1 person_event SPRITE_BUENA, 17, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerSkierClarissa, -1 person_event SPRITE_ROCKER, 9, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderBrad, -1 - person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderDouglas, -1 + person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBoarderDouglas, -1 person_event SPRITE_GYM_GUY, 15, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, MahoganyGymGuyScript, -1 diff --git a/maps/MahoganyMart1F.asm b/maps/MahoganyMart1F.asm index 95ad194dc..82e828473 100644 --- a/maps/MahoganyMart1F.asm +++ b/maps/MahoganyMart1F.asm @@ -237,7 +237,7 @@ MahoganyMart1F_MapEventHeader: .PersonEvents: db 5 person_event SPRITE_PHARMACIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, PharmacistScript_0x6c367, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_BLACK_BELT, 6, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_BLACK_BELT, 6, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x6c37b, EVENT_TEAM_ROCKET_BASE_POPULATION person_event SPRITE_LANCE, 6, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE person_event SPRITE_DRAGON, 6, 3, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE person_event SPRITE_GRANNY, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x6c3ee, EVENT_MAHOGANY_MART_OWNERS diff --git a/maps/MahoganyPokeCenter1F.asm b/maps/MahoganyPokeCenter1F.asm index 0314d2fc2..ce1230329 100644 --- a/maps/MahoganyPokeCenter1F.asm +++ b/maps/MahoganyPokeCenter1F.asm @@ -66,6 +66,6 @@ MahoganyPokeCenter1F_MapEventHeader: .PersonEvents: db 4 person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x19a356, -1 - person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x19a359, -1 + person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x19a359, -1 person_event SPRITE_YOUNGSTER, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19a35c, -1 person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x19a35f, -1 diff --git a/maps/ManiasHouse.asm b/maps/ManiasHouse.asm index f5e42063f..51c33b76c 100644 --- a/maps/ManiasHouse.asm +++ b/maps/ManiasHouse.asm @@ -212,4 +212,4 @@ ManiasHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, ManiaScript, -1 + person_event SPRITE_ROCKER, 4, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, ManiaScript, -1 diff --git a/maps/MountMoonSquare.asm b/maps/MountMoonSquare.asm index 17ebdb9b3..e1d364efd 100644 --- a/maps/MountMoonSquare.asm +++ b/maps/MountMoonSquare.asm @@ -157,4 +157,4 @@ MountMoonSquare_MapEventHeader: db 3 person_event SPRITE_FAIRY, 6, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY person_event SPRITE_FAIRY, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_MT_MOON_SQUARE_CLEFAIRY - person_event SPRITE_ROCK, 7, 7, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK + person_event SPRITE_ROCK, 7, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, MtMoonSquareRock, EVENT_MT_MOON_SQUARE_ROCK diff --git a/maps/MountMortar1FInside.asm b/maps/MountMortar1FInside.asm index 81745abdd..36c30f601 100644 --- a/maps/MountMortar1FInside.asm +++ b/maps/MountMortar1FInside.asm @@ -127,13 +127,13 @@ MountMortar1FInside_MapEventHeader: .PersonEvents: db 10 - person_event SPRITE_BOULDER, 43, 21, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, MountMortar1FBoulder, -1 - person_event SPRITE_POKE_BALL, 38, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE - person_event SPRITE_POKE_BALL, 10, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE - person_event SPRITE_POKE_BALL, 27, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION - person_event SPRITE_POKE_BALL, 20, 22, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION - person_event SPRITE_POKE_BALL, 19, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET + person_event SPRITE_BOULDER, 43, 21, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, MountMortar1FBoulder, -1 + person_event SPRITE_POKE_BALL, 38, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7c, EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE + person_event SPRITE_POKE_BALL, 10, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de7e, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE + person_event SPRITE_POKE_BALL, 27, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de80, EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION + person_event SPRITE_POKE_BALL, 20, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de82, EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_POTION + person_event SPRITE_POKE_BALL, 19, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de84, EVENT_MOUNT_MORTAR_1F_INSIDE_NUGGET person_event SPRITE_SUPER_NERD, 43, 33, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacMiller, -1 - person_event SPRITE_SUPER_NERD, 28, 24, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdMarkus, -1 - person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON - person_event SPRITE_POKE_BALL, 17, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL + person_event SPRITE_SUPER_NERD, 28, 24, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdMarkus, -1 + person_event SPRITE_POKE_BALL, 16, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de86, EVENT_MOUNT_MORTAR_1F_INSIDE_IRON + person_event SPRITE_POKE_BALL, 17, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7de88, EVENT_MOUNT_MORTAR_1F_INSIDE_ULTRA_BALL diff --git a/maps/MountMortar1FOutside.asm b/maps/MountMortar1FOutside.asm index 2a4238f0e..e1fd49999 100644 --- a/maps/MountMortar1FOutside.asm +++ b/maps/MountMortar1FOutside.asm @@ -40,5 +40,5 @@ MountMortar1FOutside_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKE_BALL, 15, 13, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER - person_event SPRITE_POKE_BALL, 18, 31, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE + person_event SPRITE_POKE_BALL, 15, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf6, EVENT_MOUNT_MORTAR_1F_OUTSIDE_ETHER + person_event SPRITE_POKE_BALL, 18, 31, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ddf8, EVENT_MOUNT_MORTAR_1F_OUTSIDE_REVIVE diff --git a/maps/MountMortar2FInside.asm b/maps/MountMortar2FInside.asm index 2b86c064a..1919737bd 100644 --- a/maps/MountMortar2FInside.asm +++ b/maps/MountMortar2FInside.asm @@ -76,10 +76,10 @@ MountMortar2FInside_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_POKE_BALL, 22, 28, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION - person_event SPRITE_POKE_BALL, 33, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY - person_event SPRITE_POKE_BALL, 17, 19, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL - person_event SPRITE_POKE_BALL, 5, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE - person_event SPRITE_POKE_BALL, 11, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER - person_event SPRITE_POKE_BALL, 5, 28, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE - person_event SPRITE_SUPER_NERD, 26, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdHugh, -1 + person_event SPRITE_POKE_BALL, 22, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0de, EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION + person_event SPRITE_POKE_BALL, 33, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e0, EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY + person_event SPRITE_POKE_BALL, 17, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e2, EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL + person_event SPRITE_POKE_BALL, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e4, EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE + person_event SPRITE_POKE_BALL, 11, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e6, EVENT_MOUNT_MORTAR_2F_INSIDE_ELIXER + person_event SPRITE_POKE_BALL, 5, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e0e8, EVENT_MOUNT_MORTAR_2F_INSIDE_ESCAPE_ROPE + person_event SPRITE_SUPER_NERD, 26, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdHugh, -1 diff --git a/maps/MountMortarB1F.asm b/maps/MountMortarB1F.asm index a2363a7f5..ba89f111b 100644 --- a/maps/MountMortarB1F.asm +++ b/maps/MountMortarB1F.asm @@ -144,10 +144,10 @@ MountMortarB1F_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_POKE_BALL, 12, 29, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION - person_event SPRITE_POKE_BALL, 16, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS - person_event SPRITE_BOULDER, 10, 9, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, MountMortarB1FBoulder, -1 + person_event SPRITE_POKE_BALL, 12, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e240, EVENT_MOUNT_MORTAR_B1F_HYPER_POTION + person_event SPRITE_POKE_BALL, 16, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e242, EVENT_MOUNT_MORTAR_B1F_CARBOS + person_event SPRITE_BOULDER, 10, 9, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, MountMortarB1FBoulder, -1 person_event SPRITE_BLACK_BELT, 4, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, BlackBeltScript_0x7e1f6, -1 - person_event SPRITE_POKE_BALL, 24, 34, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE - person_event SPRITE_POKE_BALL, 3, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER - person_event SPRITE_POKE_BALL, 26, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP + person_event SPRITE_POKE_BALL, 24, 34, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e244, EVENT_MOUNT_MORTAR_B1F_FULL_RESTORE + person_event SPRITE_POKE_BALL, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e246, EVENT_MOUNT_MORTAR_B1F_MAX_ETHER + person_event SPRITE_POKE_BALL, 26, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7e248, EVENT_MOUNT_MORTAR_B1F_PP_UP diff --git a/maps/MrFujisHouse.asm b/maps/MrFujisHouse.asm index 9f7733307..dda963a8a 100644 --- a/maps/MrFujisHouse.asm +++ b/maps/MrFujisHouse.asm @@ -92,7 +92,7 @@ MrFujisHouse_MapEventHeader: .PersonEvents: db 5 person_event SPRITE_SUPER_NERD, 1, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x7e8ca, -1 - person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, LassScript_0x7e8cd, -1 - person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, MrFujisPsyduck, -1 - person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MrFujisNidorino, -1 - person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MrFujisPidgey, -1 + person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, LassScript_0x7e8cd, -1 + person_event SPRITE_RHYDON, 4, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, MrFujisPsyduck, -1 + person_event SPRITE_GROWLITHE, 5, 5, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MrFujisNidorino, -1 + person_event SPRITE_MOLTRES, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MrFujisPidgey, -1 diff --git a/maps/NationalPark.asm b/maps/NationalPark.asm index c6bfa3540..b556ef134 100644 --- a/maps/NationalPark.asm +++ b/maps/NationalPark.asm @@ -526,12 +526,12 @@ NationalPark_MapEventHeader: person_event SPRITE_TEACHER, 40, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5c008, -1 person_event SPRITE_YOUNGSTER, 41, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, YoungsterScript_0x5c023, -1 person_event SPRITE_YOUNGSTER, 41, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c026, -1 - person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 0, TeacherScript_0x5c029, -1 - person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, GrowlitheScript_0x5c02c, -1 - person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJack1, -1 - person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanfBeverly1, -1 - person_event SPRITE_POKEFAN_M, 9, 16, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanmWilliam, -1 - person_event SPRITE_LASS, 14, 8, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassKrise, -1 - person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL + person_event SPRITE_TEACHER, 41, 17, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 0, TeacherScript_0x5c029, -1 + person_event SPRITE_GROWLITHE, 40, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, GrowlitheScript_0x5c02c, -1 + person_event SPRITE_YOUNGSTER, 23, 27, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJack1, -1 + person_event SPRITE_POKEFAN_F, 29, 18, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanfBeverly1, -1 + person_event SPRITE_POKEFAN_M, 9, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerPokefanmWilliam, -1 + person_event SPRITE_LASS, 14, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerLassKrise, -1 + person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1cc, EVENT_NATIONAL_PARK_PARLYZ_HEAL person_event SPRITE_GAMEBOY_KID, 6, 26, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GameboyKidScript_0x5c037, -1 - person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG + person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c1ce, EVENT_NATIONAL_PARK_TM_DIG diff --git a/maps/NationalParkBugContest.asm b/maps/NationalParkBugContest.asm index 1fd9e2798..5796a70d0 100644 --- a/maps/NationalParkBugContest.asm +++ b/maps/NationalParkBugContest.asm @@ -230,15 +230,15 @@ NationalParkBugContest_MapEventHeader: .PersonEvents: db 12 - person_event SPRITE_YOUNGSTER, 29, 19, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A - person_event SPRITE_YOUNGSTER, 22, 28, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A + person_event SPRITE_YOUNGSTER, 29, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c8ec, EVENT_BUG_CATCHING_CONTESTANT_1A + person_event SPRITE_YOUNGSTER, 22, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c8f4, EVENT_BUG_CATCHING_CONTESTANT_2A person_event SPRITE_ROCKER, 18, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, RockerScript_0x5c8fc, EVENT_BUG_CATCHING_CONTESTANT_3A person_event SPRITE_POKEFAN_M, 13, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 0, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, PokefanMScript_0x5c904, EVENT_BUG_CATCHING_CONTESTANT_4A - person_event SPRITE_YOUNGSTER, 9, 23, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A - person_event SPRITE_YOUNGSTER, 13, 27, SPRITEMOVEDATA_02, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A + person_event SPRITE_YOUNGSTER, 9, 23, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c90c, EVENT_BUG_CATCHING_CONTESTANT_5A + person_event SPRITE_YOUNGSTER, 13, 27, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c914, EVENT_BUG_CATCHING_CONTESTANT_6A person_event SPRITE_LASS, 23, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x5c91c, EVENT_BUG_CATCHING_CONTESTANT_7A - person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A - person_event SPRITE_YOUNGSTER, 8, 16, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A - person_event SPRITE_YOUNGSTER, 34, 17, SPRITEMOVEDATA_02, 3, 3, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A - person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL - person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG + person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5c924, EVENT_BUG_CATCHING_CONTESTANT_8A + person_event SPRITE_YOUNGSTER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x5c92c, EVENT_BUG_CATCHING_CONTESTANT_9A + person_event SPRITE_YOUNGSTER, 34, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x5c934, EVENT_BUG_CATCHING_CONTESTANT_10A + person_event SPRITE_POKE_BALL, 12, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c945, EVENT_NATIONAL_PARK_PARLYZ_HEAL + person_event SPRITE_POKE_BALL, 43, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5c947, EVENT_NATIONAL_PARK_TM_DIG diff --git a/maps/NewBarkTown.asm b/maps/NewBarkTown.asm index c3477f179..059746efe 100644 --- a/maps/NewBarkTown.asm +++ b/maps/NewBarkTown.asm @@ -305,6 +305,6 @@ NewBarkTown_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_TEACHER, 8, 6, SPRITEMOVEDATA_03, 0, 1, -1, -1, 0, 0, 0, TeacherScript_0x1a806f, -1 + person_event SPRITE_TEACHER, 8, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 1, -1, -1, 0, 0, 0, TeacherScript_0x1a806f, -1 person_event SPRITE_FISHER, 9, 12, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a809b, -1 person_event SPRITE_SILVER, 2, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, SilverScript_0x1a809e, EVENT_RIVAL_NEW_BARK_TOWN diff --git a/maps/OaksLab.asm b/maps/OaksLab.asm index 9861ae8be..8c349ae45 100644 --- a/maps/OaksLab.asm +++ b/maps/OaksLab.asm @@ -286,4 +286,4 @@ OaksLab_MapEventHeader: person_event SPRITE_OAK, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, Oak, -1 person_event SPRITE_SCIENTIST, 8, 1, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b40f, -1 person_event SPRITE_SCIENTIST, 9, 8, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b412, -1 - person_event SPRITE_SCIENTIST, 4, 1, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b415, -1 + person_event SPRITE_SCIENTIST, 4, 1, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x19b415, -1 diff --git a/maps/OlivineCity.asm b/maps/OlivineCity.asm index 966063893..9b431973f 100644 --- a/maps/OlivineCity.asm +++ b/maps/OlivineCity.asm @@ -321,6 +321,6 @@ OlivineCity_MapEventHeader: .PersonEvents: db 4 person_event SPRITE_SAILOR, 27, 26, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, SailorScript_0x1a88a3, -1 - person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x1a88a6, -1 - person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, SailorScript_0x1a88ba, -1 + person_event SPRITE_STANDING_YOUNGSTER, 13, 20, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, StandingYoungsterScript_0x1a88a6, -1 + person_event SPRITE_SAILOR, 21, 17, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SailorScript_0x1a88ba, -1 person_event SPRITE_OLIVINE_RIVAL, 11, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_OLIVINE_CITY diff --git a/maps/OlivineHouseBeta.asm b/maps/OlivineHouseBeta.asm index 301a076ad..9fdf16e59 100644 --- a/maps/OlivineHouseBeta.asm +++ b/maps/OlivineHouseBeta.asm @@ -54,5 +54,5 @@ OlivineHouseBeta_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c58f, -1 + person_event SPRITE_TEACHER, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x9c58f, -1 person_event SPRITE_RHYDON, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, 0, 0, 0, RhydonScript_0x9c592, -1 diff --git a/maps/OlivineLighthouse3F.asm b/maps/OlivineLighthouse3F.asm index 266c38cc7..d94095e8a 100644 --- a/maps/OlivineLighthouse3F.asm +++ b/maps/OlivineLighthouse3F.asm @@ -133,4 +133,4 @@ OlivineLighthouse3F_MapEventHeader: person_event SPRITE_SAILOR, 2, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSailorTerrell, -1 person_event SPRITE_GENTLEMAN, 5, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerGentlemanPreston, -1 person_event SPRITE_YOUNGSTER, 9, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperTheo, -1 - person_event SPRITE_POKE_BALL, 2, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER + person_event SPRITE_POKE_BALL, 2, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5b279, EVENT_OLIVINE_LIGHTHOUSE_3F_ETHER diff --git a/maps/OlivineLighthouse5F.asm b/maps/OlivineLighthouse5F.asm index e27b30593..024e1a739 100644 --- a/maps/OlivineLighthouse5F.asm +++ b/maps/OlivineLighthouse5F.asm @@ -107,8 +107,8 @@ OlivineLighthouse5F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_SAILOR, 11, 8, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorErnest, -1 + person_event SPRITE_SAILOR, 11, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSailorErnest, -1 person_event SPRITE_YOUNGSTER, 3, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerBird_keeperDenis, -1 - person_event SPRITE_POKE_BALL, 12, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY - person_event SPRITE_POKE_BALL, 15, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL - person_event SPRITE_POKE_BALL, 13, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER + person_event SPRITE_POKE_BALL, 12, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609aa, EVENT_OLIVINE_LIGHTHOUSE_5F_RARE_CANDY + person_event SPRITE_POKE_BALL, 15, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ac, EVENT_OLIVINE_LIGHTHOUSE_5F_SUPER_REPEL + person_event SPRITE_POKE_BALL, 13, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x609ae, EVENT_OLIVINE_LIGHTHOUSE_5F_TM_SWAGGER diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm index 3feed5100..f5e2426b0 100644 --- a/maps/OlivineLighthouse6F.asm +++ b/maps/OlivineLighthouse6F.asm @@ -272,4 +272,4 @@ OlivineLighthouse6F_MapEventHeader: db 3 person_event SPRITE_JASMINE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, JasmineScript_0x60b91, EVENT_OLIVINE_LIGHTHOUSE_JASMINE person_event SPRITE_MONSTER, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MonsterScript_0x60c3a, -1 - person_event SPRITE_POKE_BALL, 4, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION + person_event SPRITE_POKE_BALL, 4, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x60c66, EVENT_OLIVINE_LIGHTHOUSE_6F_SUPER_POTION diff --git a/maps/OlivinePunishmentSpeechHouse.asm b/maps/OlivinePunishmentSpeechHouse.asm index 2d9b83298..cfe7a6b96 100644 --- a/maps/OlivinePunishmentSpeechHouse.asm +++ b/maps/OlivinePunishmentSpeechHouse.asm @@ -54,5 +54,5 @@ OlivinePunishmentSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_M, 2, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDad, -1 + person_event SPRITE_POKEFAN_M, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDad, -1 person_event SPRITE_LASS, 5, 5, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, OlivinePunishmentSpeechHouseDaughter, -1 diff --git a/maps/OlivineVoltorbHouse.asm b/maps/OlivineVoltorbHouse.asm index f7a917a04..b812c0181 100644 --- a/maps/OlivineVoltorbHouse.asm +++ b/maps/OlivineVoltorbHouse.asm @@ -35,4 +35,4 @@ OlivineVoltorbHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Tim, -1 + person_event SPRITE_FISHING_GURU, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Tim, -1 diff --git a/maps/PalletTown.asm b/maps/PalletTown.asm index e380fc41b..dbff72a67 100644 --- a/maps/PalletTown.asm +++ b/maps/PalletTown.asm @@ -89,5 +89,5 @@ PalletTown_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, TeacherScript_0x1ac6d5, -1 + person_event SPRITE_TEACHER, 8, 3, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, TeacherScript_0x1ac6d5, -1 person_event SPRITE_FISHER, 14, 12, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1ac6d8, -1 diff --git a/maps/PewterCity.asm b/maps/PewterCity.asm index 9541a9f58..56a1cfcf1 100644 --- a/maps/PewterCity.asm +++ b/maps/PewterCity.asm @@ -174,8 +174,8 @@ PewterCity_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18c009, -1 - person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x18c00c, -1 + person_event SPRITE_COOLTRAINER_F, 11, 19, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18c009, -1 + person_event SPRITE_BUG_CATCHER, 29, 14, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, BugCatcherScript_0x18c00c, -1 person_event SPRITE_GRAMPS, 17, 29, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x18c00f, -1 - person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c03e, -1 - person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c040, -1 + person_event SPRITE_FRUIT_TREE, 3, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c03e, -1 + person_event SPRITE_FRUIT_TREE, 3, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x18c040, -1 diff --git a/maps/PewterMart.asm b/maps/PewterMart.asm index a830fa962..e88de05f6 100644 --- a/maps/PewterMart.asm +++ b/maps/PewterMart.asm @@ -59,4 +59,4 @@ PewterMart_MapEventHeader: db 3 person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x1a2dcb, -1 person_event SPRITE_YOUNGSTER, 2, 9, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, YoungsterScript_0x1a2dd2, -1 - person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a2dd5, -1 + person_event SPRITE_SUPER_NERD, 6, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a2dd5, -1 diff --git a/maps/PewterNidoranSpeechHouse.asm b/maps/PewterNidoranSpeechHouse.asm index a7cbef0fe..9e4b95306 100644 --- a/maps/PewterNidoranSpeechHouse.asm +++ b/maps/PewterNidoranSpeechHouse.asm @@ -42,4 +42,4 @@ PewterNidoranSpeechHouse_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_SUPER_NERD, 5, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1a2807, -1 - person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x1a280a, -1 + person_event SPRITE_GROWLITHE, 5, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x1a280a, -1 diff --git a/maps/PewterPokeCenter1F.asm b/maps/PewterPokeCenter1F.asm index 5284f784d..f6379e60f 100644 --- a/maps/PewterPokeCenter1F.asm +++ b/maps/PewterPokeCenter1F.asm @@ -80,6 +80,6 @@ PewterPokeCenter1F_MapEventHeader: db 5 person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x1a2ee7, -1 person_event SPRITE_TEACHER, 6, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a2eea, -1 - person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x1a2eed, -1 + person_event SPRITE_JIGGLYPUFF, 3, 1, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x1a2eed, -1 person_event SPRITE_BUG_CATCHER, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, BugCatcherScript_0x1a2ef7, -1 person_event SPRITE_POKEFAN_M, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x1a2efa, -1 diff --git a/maps/PokemonFanClub.asm b/maps/PokemonFanClub.asm index c7d1d3844..581b95050 100644 --- a/maps/PokemonFanClub.asm +++ b/maps/PokemonFanClub.asm @@ -312,4 +312,4 @@ PokemonFanClub_MapEventHeader: person_event SPRITE_FISHER, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x191824, -1 person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x19186b, -1 person_event SPRITE_FAIRY, 4, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FairyScript_0x19186e, EVENT_VERMILION_FAN_CLUB_DOLL - person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OddishScript_0x191871, -1 + person_event SPRITE_ODDISH, 3, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OddishScript_0x191871, -1 diff --git a/maps/PowerPlant.asm b/maps/PowerPlant.asm index b60672af9..bbe11d568 100644 --- a/maps/PowerPlant.asm +++ b/maps/PowerPlant.asm @@ -402,7 +402,7 @@ PowerPlant_MapEventHeader: .PersonEvents: db 7 person_event SPRITE_OFFICER, 14, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x188df5, -1 - person_event SPRITE_GYM_GUY, 9, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e15, -1 + person_event SPRITE_GYM_GUY, 9, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e15, -1 person_event SPRITE_GYM_GUY, 11, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e29, -1 person_event SPRITE_OFFICER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x188e3d, -1 person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GymGuyScript_0x188e51, -1 diff --git a/maps/RadioTower2F.asm b/maps/RadioTower2F.asm index 67ee63962..7efe8bf1e 100644 --- a/maps/RadioTower2F.asm +++ b/maps/RadioTower2F.asm @@ -728,6 +728,6 @@ RadioTower2F_MapEventHeader: person_event SPRITE_ROCKET_GIRL, 5, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerGruntF2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_BLACK_BELT, 1, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d71f, EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS person_event SPRITE_BLACK_BELT, 1, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, BlackBeltScript_0x5d722, EVENT_RADIO_TOWER_CIVILIANS_AFTER - person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x5d715, -1 + person_event SPRITE_JIGGLYPUFF, 1, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, JigglypuffScript_0x5d715, -1 person_event SPRITE_BUENA, 5, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Buena, -1 person_event SPRITE_RECEPTIONIST, 7, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, ReceptionistScript_0x5d8ff, EVENT_GOLDENROD_CITY_CIVILIANS diff --git a/maps/RadioTower3F.asm b/maps/RadioTower3F.asm index c7da85658..8e3bdaf26 100644 --- a/maps/RadioTower3F.asm +++ b/maps/RadioTower3F.asm @@ -344,8 +344,8 @@ RadioTower3F_MapEventHeader: .PersonEvents: db 7 person_event SPRITE_SUPER_NERD, 4, 7, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x5e553, EVENT_RADIO_TOWER_CIVILIANS_AFTER - person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GymGuyScript_0x5e556, -1 - person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5e56a, -1 + person_event SPRITE_GYM_GUY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GymGuyScript_0x5e556, -1 + person_event SPRITE_COOLTRAINER_F, 3, 11, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x5e56a, -1 person_event SPRITE_ROCKET, 1, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM7, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET, 2, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM8, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET, 6, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM9, EVENT_RADIO_TOWER_ROCKET_TAKEOVER diff --git a/maps/RadioTower4F.asm b/maps/RadioTower4F.asm index 07349e512..cdfe97692 100644 --- a/maps/RadioTower4F.asm +++ b/maps/RadioTower4F.asm @@ -258,9 +258,9 @@ RadioTower4F_MapEventHeader: .PersonEvents: db 7 person_event SPRITE_FISHER, 4, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x5eb82, EVENT_RADIO_TOWER_CIVILIANS_AFTER - person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5eb85, -1 - person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrowlitheScript_0x5ebb2, -1 - person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_1F, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_TEACHER, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x5eb85, -1 + person_event SPRITE_GROWLITHE, 7, 12, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GrowlitheScript_0x5ebb2, -1 + person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM10, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET, 1, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 2, -1, -1, 0, 2, 2, TrainerExecutivem2, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET_GIRL, 4, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerGruntF4, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_SCIENTIST, 2, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerScientistRich, EVENT_RADIO_TOWER_ROCKET_TAKEOVER diff --git a/maps/RadioTower5F.asm b/maps/RadioTower5F.asm index ad0071ea7..31a94eeb5 100644 --- a/maps/RadioTower5F.asm +++ b/maps/RadioTower5F.asm @@ -439,8 +439,8 @@ RadioTower5F_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_GENTLEMAN, 6, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, Director, -1 + person_event SPRITE_GENTLEMAN, 6, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, Director, -1 person_event SPRITE_ROCKET, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET_GIRL, 2, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerExecutivef1, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKER, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, Ben, EVENT_RADIO_TOWER_CIVILIANS_AFTER - person_event SPRITE_POKE_BALL, 5, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL + person_event SPRITE_POKE_BALL, 5, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x600fe, EVENT_RADIO_TOWER_5F_ULTRA_BALL diff --git a/maps/RockTunnel1F.asm b/maps/RockTunnel1F.asm index 71c3938e9..8843ee243 100644 --- a/maps/RockTunnel1F.asm +++ b/maps/RockTunnel1F.asm @@ -42,5 +42,5 @@ RockTunnel1F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKE_BALL, 18, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER - person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING + person_event SPRITE_POKE_BALL, 18, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b5, EVENT_ROCK_TUNNEL_1F_ELIXER + person_event SPRITE_POKE_BALL, 15, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x743b7, EVENT_ROCK_TUNNEL_1F_TM_STEEL_WING diff --git a/maps/RockTunnelB1F.asm b/maps/RockTunnelB1F.asm index b2f9d1efa..99722d62f 100644 --- a/maps/RockTunnelB1F.asm +++ b/maps/RockTunnelB1F.asm @@ -38,6 +38,6 @@ RockTunnelB1F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON - person_event SPRITE_POKE_BALL, 17, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP - person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE + person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74409, EVENT_ROCK_TUNNEL_B1F_IRON + person_event SPRITE_POKE_BALL, 17, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440b, EVENT_ROCK_TUNNEL_B1F_PP_UP + person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7440d, EVENT_ROCK_TUNNEL_B1F_REVIVE diff --git a/maps/Route1.asm b/maps/Route1.asm index 7416bd196..1708caa9f 100644 --- a/maps/Route1.asm +++ b/maps/Route1.asm @@ -92,5 +92,5 @@ Route1_MapEventHeader: .PersonEvents: db 3 person_event SPRITE_YOUNGSTER, 12, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSchoolboyDanny, -1 - person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfQuinn, -1 - person_event SPRITE_FRUIT_TREE, 7, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac581, -1 + person_event SPRITE_COOLTRAINER_F, 25, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfQuinn, -1 + person_event SPRITE_FRUIT_TREE, 7, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac581, -1 diff --git a/maps/Route10PokeCenter1F.asm b/maps/Route10PokeCenter1F.asm index 4087447d2..cea3cbd7a 100644 --- a/maps/Route10PokeCenter1F.asm +++ b/maps/Route10PokeCenter1F.asm @@ -94,5 +94,5 @@ Route10PokeCenter1F_MapEventHeader: db 4 person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x188bd4, -1 person_event SPRITE_GENTLEMAN, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, GentlemanScript_0x188bd7, -1 - person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x188bda, -1 + person_event SPRITE_GYM_GUY, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GymGuyScript_0x188bda, -1 person_event SPRITE_COOLTRAINER_F, 3, 1, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x188bee, -1 diff --git a/maps/Route10South.asm b/maps/Route10South.asm index 88c71fc00..477d03c20 100644 --- a/maps/Route10South.asm +++ b/maps/Route10South.asm @@ -89,4 +89,4 @@ Route10South_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_POKEFAN_M, 3, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerJim, -1 - person_event SPRITE_POKEFAN_M, 10, 8, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmRobert, -1 + person_event SPRITE_POKEFAN_M, 10, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmRobert, -1 diff --git a/maps/Route11.asm b/maps/Route11.asm index 6c16ef7b1..0ec066825 100644 --- a/maps/Route11.asm +++ b/maps/Route11.asm @@ -156,8 +156,8 @@ Route11_MapEventHeader: .PersonEvents: db 5 - person_event SPRITE_YOUNGSTER, 14, 22, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterOwen, -1 + person_event SPRITE_YOUNGSTER, 14, 22, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterOwen, -1 person_event SPRITE_YOUNGSTER, 4, 20, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterJason, -1 person_event SPRITE_YOUNGSTER, 7, 28, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicHerman, -1 - person_event SPRITE_YOUNGSTER, 6, 8, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFidel, -1 - person_event SPRITE_FRUIT_TREE, 2, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x68055, -1 + person_event SPRITE_YOUNGSTER, 6, 8, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFidel, -1 + person_event SPRITE_FRUIT_TREE, 2, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x68055, -1 diff --git a/maps/Route12.asm b/maps/Route12.asm index 251128b38..f5632d2ca 100644 --- a/maps/Route12.asm +++ b/maps/Route12.asm @@ -178,9 +178,9 @@ Route12_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_FISHER, 13, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherMartin, -1 + person_event SPRITE_FISHER, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherMartin, -1 person_event SPRITE_FISHER, 23, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherStephen, -1 person_event SPRITE_FISHER, 38, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerFisherBarney, -1 person_event SPRITE_FISHER, 7, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherKyle, -1 - person_event SPRITE_POKE_BALL, 43, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM - person_event SPRITE_POKE_BALL, 51, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET + person_event SPRITE_POKE_BALL, 43, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700b, EVENT_ROUTE_12_CALCIUM + person_event SPRITE_POKE_BALL, 51, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a700d, EVENT_ROUTE_12_NUGGET diff --git a/maps/Route14.asm b/maps/Route14.asm index 9c4698b1c..ed68dd97f 100644 --- a/maps/Route14.asm +++ b/maps/Route14.asm @@ -125,6 +125,6 @@ Route14_MapEventHeader: .PersonEvents: db 4 person_event SPRITE_POKEFAN_M, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmCarter, -1 - person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperRoy, -1 - person_event SPRITE_POKEFAN_M, 11, 6, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmTrevor, -1 + person_event SPRITE_YOUNGSTER, 27, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperRoy, -1 + person_event SPRITE_POKEFAN_M, 11, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmTrevor, -1 person_event SPRITE_TEACHER, 5, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 4, TeacherScript_0x1ad47f, -1 diff --git a/maps/Route15.asm b/maps/Route15.asm index 0aeea3666..0dbcfd80e 100644 --- a/maps/Route15.asm +++ b/maps/Route15.asm @@ -215,5 +215,5 @@ Route15_MapEventHeader: person_event SPRITE_YOUNGSTER, 10, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyJohnny, -1 person_event SPRITE_YOUNGSTER, 10, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSchoolboyBilly, -1 person_event SPRITE_TEACHER, 12, 30, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerTeacherColette, -1 - person_event SPRITE_TEACHER, 10, 20, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherHillary, -1 - person_event SPRITE_POKE_BALL, 5, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP + person_event SPRITE_TEACHER, 10, 20, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerTeacherHillary, -1 + person_event SPRITE_POKE_BALL, 5, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1aa5e4, EVENT_ROUTE_15_PP_UP diff --git a/maps/Route17.asm b/maps/Route17.asm index 925748ae6..3c7166198 100644 --- a/maps/Route17.asm +++ b/maps/Route17.asm @@ -150,7 +150,7 @@ Route17_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_BIKER, 17, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerRiley, -1 + person_event SPRITE_BIKER, 17, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerRiley, -1 person_event SPRITE_BIKER, 68, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerBikerJoel, -1 - person_event SPRITE_BIKER, 53, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBikerGlenn, -1 + person_event SPRITE_BIKER, 53, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBikerGlenn, -1 person_event SPRITE_BIKER, 80, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerBikerCharles, -1 diff --git a/maps/Route18.asm b/maps/Route18.asm index f11e06b5d..bbdb33ca0 100644 --- a/maps/Route18.asm +++ b/maps/Route18.asm @@ -91,5 +91,5 @@ Route18_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_YOUNGSTER, 12, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBoris, -1 + person_event SPRITE_YOUNGSTER, 12, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBoris, -1 person_event SPRITE_YOUNGSTER, 6, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperBob, -1 diff --git a/maps/Route19.asm b/maps/Route19.asm index 029ebbede..824d2c2f4 100644 --- a/maps/Route19.asm +++ b/maps/Route19.asm @@ -248,8 +248,8 @@ Route19_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_SWIMMER_GIRL, 23, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 0, TrainerSwimmerfDawn, -1 - person_event SPRITE_SWIMMER_GUY, 28, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermHarold, -1 - person_event SPRITE_SWIMMER_GUY, 17, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermJerome, -1 + person_event SPRITE_SWIMMER_GUY, 28, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermHarold, -1 + person_event SPRITE_SWIMMER_GUY, 17, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermJerome, -1 person_event SPRITE_SWIMMER_GUY, 23, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerSwimmermTucker, -1 person_event SPRITE_FISHER, 5, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 1, FisherScript_0x19ea4d, -1 person_event SPRITE_FISHER, 5, 11, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 1, FisherScript_0x19ea61, -1 diff --git a/maps/Route2.asm b/maps/Route2.asm index c122fd9a1..0731b5820 100644 --- a/maps/Route2.asm +++ b/maps/Route2.asm @@ -163,10 +163,10 @@ Route2_MapEventHeader: .PersonEvents: db 8 person_event SPRITE_BUG_CATCHER, 45, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 5, TrainerBug_catcherRob, -1 - person_event SPRITE_BUG_CATCHER, 4, 6, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherEd, -1 + person_event SPRITE_BUG_CATCHER, 4, 6, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherEd, -1 person_event SPRITE_BUG_CATCHER, 40, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherDoug, -1 - person_event SPRITE_POKE_BALL, 29, 0, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT - person_event SPRITE_POKE_BALL, 23, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION - person_event SPRITE_POKE_BALL, 2, 19, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS - person_event SPRITE_POKE_BALL, 50, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER - person_event SPRITE_FRUIT_TREE, 14, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac306, -1 + person_event SPRITE_POKE_BALL, 29, 0, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac2fe, EVENT_ROUTE_2_DIRE_HIT + person_event SPRITE_POKE_BALL, 23, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac300, EVENT_ROUTE_2_MAX_POTION + person_event SPRITE_POKE_BALL, 2, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac302, EVENT_ROUTE_2_CARBOS + person_event SPRITE_POKE_BALL, 50, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ac304, EVENT_ROUTE_2_ELIXER + person_event SPRITE_FRUIT_TREE, 14, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac306, -1 diff --git a/maps/Route20.asm b/maps/Route20.asm index a0947ab7a..3d821258a 100644 --- a/maps/Route20.asm +++ b/maps/Route20.asm @@ -127,6 +127,6 @@ Route20_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SWIMMER_GIRL, 8, 52, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNicole, -1 - person_event SPRITE_SWIMMER_GIRL, 13, 45, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfLori, -1 - person_event SPRITE_SWIMMER_GUY, 13, 12, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCameron, -1 + person_event SPRITE_SWIMMER_GIRL, 8, 52, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNicole, -1 + person_event SPRITE_SWIMMER_GIRL, 13, 45, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfLori, -1 + person_event SPRITE_SWIMMER_GUY, 13, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCameron, -1 diff --git a/maps/Route21.asm b/maps/Route21.asm index 9c01de42d..852fc28cf 100644 --- a/maps/Route21.asm +++ b/maps/Route21.asm @@ -99,6 +99,6 @@ Route21_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SWIMMER_GIRL, 16, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNikki, -1 + person_event SPRITE_SWIMMER_GIRL, 16, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfNikki, -1 person_event SPRITE_SWIMMER_GUY, 30, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerSwimmermSeth, -1 person_event SPRITE_FISHER, 22, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherArnold, -1 diff --git a/maps/Route24.asm b/maps/Route24.asm index 7db0d2926..2d8efbb8f 100644 --- a/maps/Route24.asm +++ b/maps/Route24.asm @@ -130,4 +130,4 @@ Route24_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_ROCKET, 7, 8, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET + person_event SPRITE_ROCKET, 7, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x1adbfa, EVENT_ROUTE_24_ROCKET diff --git a/maps/Route25.asm b/maps/Route25.asm index d1b181802..8fdad8bda 100644 --- a/maps/Route25.asm +++ b/maps/Route25.asm @@ -449,4 +449,4 @@ Route25_MapEventHeader: person_event SPRITE_LASS, 11, 28, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerLassShannon, -1 person_event SPRITE_SUPER_NERD, 7, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerSupernerdPat, -1 person_event SPRITE_COOLTRAINER_M, 8, 37, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x19efac, -1 - person_event SPRITE_POKE_BALL, 4, 32, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN + person_event SPRITE_POKE_BALL, 4, 32, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19efe3, EVENT_ROUTE_25_PROTEIN diff --git a/maps/Route26.asm b/maps/Route26.asm index 913910eb2..50a54ad75 100644 --- a/maps/Route26.asm +++ b/maps/Route26.asm @@ -423,9 +423,9 @@ Route26_MapEventHeader: db 8 person_event SPRITE_COOLTRAINER_M, 24, 14, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainermJake, -1 person_event SPRITE_COOLTRAINER_M, 38, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermGaven3, -1 - person_event SPRITE_COOLTRAINER_F, 56, 10, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJoyce, -1 + person_event SPRITE_COOLTRAINER_F, 56, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJoyce, -1 person_event SPRITE_COOLTRAINER_F, 8, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainerfBeth1, -1 person_event SPRITE_YOUNGSTER, 79, 13, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicRichard, -1 person_event SPRITE_FISHER, 92, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherScott, -1 - person_event SPRITE_FRUIT_TREE, 54, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a4ec2, -1 - person_event SPRITE_POKE_BALL, 15, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER + person_event SPRITE_FRUIT_TREE, 54, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a4ec2, -1 + person_event SPRITE_POKE_BALL, 15, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a4ec4, EVENT_ROUTE_26_MAX_ELIXER diff --git a/maps/Route26DayofWeekSiblingsHouse.asm b/maps/Route26DayofWeekSiblingsHouse.asm index 936261bbe..294394016 100644 --- a/maps/Route26DayofWeekSiblingsHouse.asm +++ b/maps/Route26DayofWeekSiblingsHouse.asm @@ -84,4 +84,4 @@ Route26DayofWeekSiblingsHouse_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x7b1e4, -1 + person_event SPRITE_POKEDEX, 3, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, PokedexScript_0x7b1e4, -1 diff --git a/maps/Route27.asm b/maps/Route27.asm index b3944a440..98319f426 100644 --- a/maps/Route27.asm +++ b/maps/Route27.asm @@ -482,9 +482,9 @@ Route27_MapEventHeader: person_event SPRITE_COOLTRAINER_M, 7, 48, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermBlake, -1 person_event SPRITE_COOLTRAINER_M, 6, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainermBrian, -1 person_event SPRITE_COOLTRAINER_F, 10, 72, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerCooltrainerfReena, -1 - person_event SPRITE_COOLTRAINER_F, 6, 37, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfMegan, -1 + person_event SPRITE_COOLTRAINER_F, 6, 37, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfMegan, -1 person_event SPRITE_YOUNGSTER, 7, 65, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicGilbert, -1 person_event SPRITE_YOUNGSTER, 13, 58, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperJose2, -1 - person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM - person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY - person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 3, FisherScript_0x1a089c, -1 + person_event SPRITE_POKE_BALL, 12, 60, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a62, EVENT_ROUTE_27_TM_SOLARBEAM + person_event SPRITE_POKE_BALL, 12, 53, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a0a64, EVENT_ROUTE_27_RARE_CANDY + person_event SPRITE_FISHER, 10, 21, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 3, FisherScript_0x1a089c, -1 diff --git a/maps/Route28FamousSpeechHouse.asm b/maps/Route28FamousSpeechHouse.asm index 9a9499602..c2c63ba71 100644 --- a/maps/Route28FamousSpeechHouse.asm +++ b/maps/Route28FamousSpeechHouse.asm @@ -88,4 +88,4 @@ Route28FamousSpeechHouse_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_COOLTRAINER_F, 3, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, Celebrity, -1 - person_event SPRITE_MOLTRES, 5, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CelebritysFearow, -1 + person_event SPRITE_MOLTRES, 5, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CelebritysFearow, -1 diff --git a/maps/Route29.asm b/maps/Route29.asm index ea99094aa..f8a26bffe 100644 --- a/maps/Route29.asm +++ b/maps/Route29.asm @@ -430,11 +430,11 @@ Route29_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_COOLTRAINER_M, 12, 50, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a0ff1, -1 + person_event SPRITE_COOLTRAINER_M, 12, 50, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a0ff1, -1 person_event SPRITE_YOUNGSTER, 16, 27, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a1028, -1 person_event SPRITE_TEACHER, 11, 15, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x1a102b, -1 - person_event SPRITE_FRUIT_TREE, 2, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1089, -1 + person_event SPRITE_FRUIT_TREE, 2, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1089, -1 person_event SPRITE_FISHER, 3, 25, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, FisherScript_0x1a102e, -1 person_event SPRITE_COOLTRAINER_M, 4, 13, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x1a1031, -1 - person_event SPRITE_TEACHER, 12, 29, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY - person_event SPRITE_POKE_BALL, 2, 48, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION + person_event SPRITE_TEACHER, 12, 29, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, TuscanyScript, EVENT_ROUTE_29_TUSCANY_OF_TUESDAY + person_event SPRITE_POKE_BALL, 2, 48, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a108b, EVENT_ROUTE_29_POTION diff --git a/maps/Route3.asm b/maps/Route3.asm index 4d8899970..7e482ceb8 100644 --- a/maps/Route3.asm +++ b/maps/Route3.asm @@ -145,5 +145,5 @@ Route3_MapEventHeader: db 4 person_event SPRITE_FISHER, 12, 26, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherOtis, -1 person_event SPRITE_YOUNGSTER, 7, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterWarren, -1 - person_event SPRITE_YOUNGSTER, 3, 16, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerYoungsterJimmy, -1 - person_event SPRITE_FISHER, 5, 49, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerFirebreatherBurt, -1 + person_event SPRITE_YOUNGSTER, 3, 16, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerYoungsterJimmy, -1 + person_event SPRITE_FISHER, 5, 49, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerFirebreatherBurt, -1 diff --git a/maps/Route30.asm b/maps/Route30.asm index 0e994d1bc..a6c0fc7b3 100644 --- a/maps/Route30.asm +++ b/maps/Route30.asm @@ -423,7 +423,7 @@ Route30_MapEventHeader: person_event SPRITE_YOUNGSTER, 30, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x1a17d2, -1 person_event SPRITE_MONSTER, 24, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE person_event SPRITE_MONSTER, 25, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_ROUTE_30_BATTLE - person_event SPRITE_FRUIT_TREE, 39, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f7, -1 - person_event SPRITE_FRUIT_TREE, 5, 11, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f9, -1 + person_event SPRITE_FRUIT_TREE, 39, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f7, -1 + person_event SPRITE_FRUIT_TREE, 5, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a17f9, -1 person_event SPRITE_COOLTRAINER_F, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, CooltrainerFScript_0x1a17e6, -1 - person_event SPRITE_POKE_BALL, 35, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE + person_event SPRITE_POKE_BALL, 35, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a17f5, EVENT_ROUTE_30_ANTIDOTE diff --git a/maps/Route31.asm b/maps/Route31.asm index f75097b3a..0273a9669 100644 --- a/maps/Route31.asm +++ b/maps/Route31.asm @@ -431,9 +431,9 @@ Route31_MapEventHeader: .PersonEvents: db 7 person_event SPRITE_FISHER, 7, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1a5570, -1 - person_event SPRITE_YOUNGSTER, 5, 9, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a55ed, -1 + person_event SPRITE_YOUNGSTER, 5, 9, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, YoungsterScript_0x1a55ed, -1 person_event SPRITE_BUG_CATCHER, 13, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 5, TrainerBug_catcherWade1, -1 - person_event SPRITE_COOLTRAINER_M, 8, 33, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x1a55f6, -1 - person_event SPRITE_FRUIT_TREE, 7, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a55f9, -1 - person_event SPRITE_POKE_BALL, 5, 29, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION - person_event SPRITE_POKE_BALL, 15, 19, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL + person_event SPRITE_COOLTRAINER_M, 8, 33, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, CooltrainerMScript_0x1a55f6, -1 + person_event SPRITE_FRUIT_TREE, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a55f9, -1 + person_event SPRITE_POKE_BALL, 5, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fb, EVENT_ROUTE_31_POTION + person_event SPRITE_POKE_BALL, 15, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a55fd, EVENT_ROUTE_31_POKE_BALL diff --git a/maps/Route31VioletGate.asm b/maps/Route31VioletGate.asm index 0d05cd14d..0ea2105cf 100644 --- a/maps/Route31VioletGate.asm +++ b/maps/Route31VioletGate.asm @@ -43,4 +43,4 @@ Route31VioletGate_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_OFFICER, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x197634, -1 - person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x197637, -1 + person_event SPRITE_COOLTRAINER_F, 2, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, CooltrainerFScript_0x197637, -1 diff --git a/maps/Route32.asm b/maps/Route32.asm index 85ea0b36a..2387b8153 100644 --- a/maps/Route32.asm +++ b/maps/Route32.asm @@ -950,13 +950,13 @@ Route32_MapEventHeader: person_event SPRITE_FISHER, 56, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerFisherRalph1, -1 person_event SPRITE_FISHER, 48, 6, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherHenry, -1 person_event SPRITE_YOUNGSTER, 22, 12, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterAlbert, -1 - person_event SPRITE_YOUNGSTER, 63, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterGordon, -1 + person_event SPRITE_YOUNGSTER, 63, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterGordon, -1 person_event SPRITE_YOUNGSTER, 45, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperRoland, -1 person_event SPRITE_LASS, 30, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerLiz1, -1 person_event SPRITE_COOLTRAINER_M, 8, 19, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, CooltrainerMScript_0x19046f, -1 person_event SPRITE_YOUNGSTER, 82, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperPeter, -1 person_event SPRITE_FISHER, 70, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904f2, EVENT_SLOWPOKE_WELL_ROCKETS - person_event SPRITE_POKE_BALL, 53, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL + person_event SPRITE_POKE_BALL, 53, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190773, EVENT_ROUTE_32_GREAT_BALL person_event SPRITE_FISHER, 13, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1904ce, -1 person_event SPRITE_LASS, 67, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FriedaScript, EVENT_ROUTE_32_FRIEDA_OF_FRIDAY - person_event SPRITE_POKE_BALL, 30, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL + person_event SPRITE_POKE_BALL, 30, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x190775, EVENT_ROUTE_32_REPEL diff --git a/maps/Route33.asm b/maps/Route33.asm index c1746ce7f..37f445ba3 100644 --- a/maps/Route33.asm +++ b/maps/Route33.asm @@ -206,6 +206,6 @@ Route33_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKEFAN_M, 13, 6, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerAnthony, -1 - person_event SPRITE_LASS, 16, 13, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1ac002, -1 - person_event SPRITE_FRUIT_TREE, 16, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac0ea, -1 + person_event SPRITE_POKEFAN_M, 13, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerAnthony, -1 + person_event SPRITE_LASS, 16, 13, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x1ac002, -1 + person_event SPRITE_FRUIT_TREE, 16, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1ac0ea, -1 diff --git a/maps/Route34.asm b/maps/Route34.asm index 9c29e9459..81e5d7024 100644 --- a/maps/Route34.asm +++ b/maps/Route34.asm @@ -780,11 +780,11 @@ Route34_MapEventHeader: person_event SPRITE_YOUNGSTER, 20, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerYoungsterIan, -1 person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerGina1, -1 person_event SPRITE_OFFICER, 11, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x7824c, -1 - person_event SPRITE_POKEFAN_M, 28, 18, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmBrandon, -1 + person_event SPRITE_POKEFAN_M, 28, 18, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerPokefanmBrandon, -1 person_event SPRITE_GRAMPS, 16, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x7803d, EVENT_DAYCARE_MAN_ON_ROUTE_34 - person_event SPRITE_DAYCARE_MON_1, 18, 14, SPRITEMOVEDATA_16, 2, 2, -1, -1, 0, 0, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1 - person_event SPRITE_DAYCARE_MON_2, 19, 17, SPRITEMOVEDATA_16, 2, 2, -1, -1, 0, 0, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2 + person_event SPRITE_DAYCARE_MON_1, 18, 14, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, 0, 0, DaycareMon1Script_0x78065, EVENT_DAYCARE_MON_1 + person_event SPRITE_DAYCARE_MON_2, 19, 17, SPRITEMOVEDATA_POKEMON, 2, 2, -1, -1, 0, 0, 0, DaycareMon2Script_0x7806b, EVENT_DAYCARE_MON_2 person_event SPRITE_COOLTRAINER_F, 48, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainerfIrene, -1 person_event SPRITE_COOLTRAINER_F, 48, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfJenn, -1 person_event SPRITE_COOLTRAINER_F, 51, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerCooltrainerfKate, -1 - person_event SPRITE_POKE_BALL, 30, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET + person_event SPRITE_POKE_BALL, 30, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7832b, EVENT_ROUTE_34_NUGGET diff --git a/maps/Route34IlexForestGate.asm b/maps/Route34IlexForestGate.asm index 1c4fd0cbb..2144132ae 100644 --- a/maps/Route34IlexForestGate.asm +++ b/maps/Route34IlexForestGate.asm @@ -153,6 +153,6 @@ Route34IlexForestGate_MapEventHeader: .PersonEvents: db 4 person_event SPRITE_TEACHER, 3, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_BEHIND_COUNTER - person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ButterfreeScript_0x62d8a, -1 + person_event SPRITE_BUTTERFREE, 4, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ButterfreeScript_0x62d8a, -1 person_event SPRITE_LASS, 4, 3, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x62d94, EVENT_ROUTE_34_ILEX_FOREST_GATE_LASS person_event SPRITE_TEACHER, 7, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, TeacherScript_0x62d63, EVENT_ROUTE_34_ILEX_FOREST_GATE_TEACHER_IN_WALKWAY diff --git a/maps/Route35.asm b/maps/Route35.asm index 715dbc187..2ec57fe28 100644 --- a/maps/Route35.asm +++ b/maps/Route35.asm @@ -469,14 +469,14 @@ Route35_MapEventHeader: .PersonEvents: db 11 - person_event SPRITE_YOUNGSTER, 19, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperIvan, -1 + person_event SPRITE_YOUNGSTER, 19, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperIvan, -1 person_event SPRITE_YOUNGSTER, 20, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperElliot, -1 person_event SPRITE_LASS, 20, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerBrooke, -1 - person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerKim, -1 + person_event SPRITE_LASS, 26, 10, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerKim, -1 person_event SPRITE_YOUNGSTER, 28, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerBird_keeperBryan, -1 - person_event SPRITE_FISHER, 10, 2, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherWalt, -1 + person_event SPRITE_FISHER, 10, 2, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 2, TrainerFirebreatherWalt, -1 person_event SPRITE_BUG_CATCHER, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerBug_catcherArnie1, -1 - person_event SPRITE_SUPER_NERD, 10, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerJugglerIrwin, -1 + person_event SPRITE_SUPER_NERD, 10, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerJugglerIrwin, -1 person_event SPRITE_OFFICER, 6, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OfficerScript_0x19ca49, -1 - person_event SPRITE_FRUIT_TREE, 25, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19ca7e, -1 - person_event SPRITE_POKE_BALL, 16, 13, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT + person_event SPRITE_FRUIT_TREE, 25, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19ca7e, -1 + person_event SPRITE_POKE_BALL, 16, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19ca7c, EVENT_ROUTE_35_TM_ROLLOUT diff --git a/maps/Route35Goldenrodgate.asm b/maps/Route35Goldenrodgate.asm index 3d5b4c5e9..9c735e599 100644 --- a/maps/Route35Goldenrodgate.asm +++ b/maps/Route35Goldenrodgate.asm @@ -211,4 +211,4 @@ Route35Goldenrodgate_MapEventHeader: db 3 person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x69d37, -1 person_event SPRITE_POKEFAN_F, 4, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, PokefanFScript_0x69dc6, -1 - person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x69dda, -1 + person_event SPRITE_FISHER, 2, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x69dda, -1 diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm index 786f110ba..b1360b194 100644 --- a/maps/Route35NationalParkgate.asm +++ b/maps/Route35NationalParkgate.asm @@ -459,5 +459,5 @@ Route35NationalParkgate_MapEventHeader: .PersonEvents: db 3 person_event SPRITE_OFFICER, 1, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6a204, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY - person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER + person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x6a2d8, EVENT_ROUTE_35_NATIONAL_PARK_GATE_YOUNGSTER person_event SPRITE_OFFICER, 3, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, OfficerScript_0x6a2ca, EVENT_ROUTE_35_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY diff --git a/maps/Route36.asm b/maps/Route36.asm index dc28758bd..8c7dda3b6 100644 --- a/maps/Route36.asm +++ b/maps/Route36.asm @@ -681,10 +681,10 @@ Route36_MapEventHeader: db 9 person_event SPRITE_YOUNGSTER, 13, 20, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicMark, -1 person_event SPRITE_YOUNGSTER, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSchoolboyAlan1, -1 - person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_17, 0, 0, -1, -1, 0, 0, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO + person_event SPRITE_WEIRD_TREE, 9, 35, SPRITEMOVEDATA_SUDOWOODO, 0, 0, -1, -1, 0, 0, 0, WeirdTreeScript_0x19403c, EVENT_ROUTE_36_SUDOWOODO person_event SPRITE_LASS, 8, 51, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, 0, 0, 0, LassScript_0x1940e0, -1 person_event SPRITE_FISHER, 9, 44, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, FisherScript_0x1940b9, -1 - person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194247, -1 - person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY + person_event SPRITE_FRUIT_TREE, 4, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x194247, -1 + person_event SPRITE_YOUNGSTER, 6, 46, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, ArthurScript, EVENT_ROUTE_36_ARTHUR_OF_THURSDAY person_event SPRITE_LASS, 12, 33, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LassScript_0x19408c, EVENT_FLORIA_AT_SUDOWOODO - person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36 + person_event SPRITE_SUICUNE, 6, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_36 diff --git a/maps/Route36RuinsofAlphgate.asm b/maps/Route36RuinsofAlphgate.asm index 07df38992..a528a44d5 100644 --- a/maps/Route36RuinsofAlphgate.asm +++ b/maps/Route36RuinsofAlphgate.asm @@ -50,4 +50,4 @@ Route36RuinsofAlphgate_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_OFFICER, 4, 0, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, OfficerScript_0x6aa1a, -1 - person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_02, 2, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x6aa1d, -1 + person_event SPRITE_GRAMPS, 5, 7, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x6aa1d, -1 diff --git a/maps/Route37.asm b/maps/Route37.asm index fe220cdcd..b0b301355 100644 --- a/maps/Route37.asm +++ b/maps/Route37.asm @@ -251,8 +251,8 @@ Route37_MapEventHeader: db 7 person_event SPRITE_WEIRD_TREE, 12, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne1, -1 person_event SPRITE_WEIRD_TREE, 12, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerTwinsAnnandanne2, -1 - person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicGreg, -1 - person_event SPRITE_FRUIT_TREE, 5, 13, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e09, -1 - person_event SPRITE_BUG_CATCHER, 8, 16, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY - person_event SPRITE_FRUIT_TREE, 5, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0b, -1 - person_event SPRITE_FRUIT_TREE, 7, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0d, -1 + person_event SPRITE_YOUNGSTER, 6, 6, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicGreg, -1 + person_event SPRITE_FRUIT_TREE, 5, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e09, -1 + person_event SPRITE_BUG_CATCHER, 8, 16, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, SunnyScript, EVENT_ROUTE_37_SUNNY_OF_SUNDAY + person_event SPRITE_FRUIT_TREE, 5, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0b, -1 + person_event SPRITE_FRUIT_TREE, 7, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8e0d, -1 diff --git a/maps/Route38.asm b/maps/Route38.asm index 71aba2773..4c8243542 100644 --- a/maps/Route38.asm +++ b/maps/Route38.asm @@ -483,9 +483,9 @@ Route38_MapEventHeader: .PersonEvents: db 7 person_event SPRITE_STANDING_YOUNGSTER, 1, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerSchoolboyChad1, -1 - person_event SPRITE_LASS, 3, 15, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerLassDana1, -1 - person_event SPRITE_STANDING_YOUNGSTER, 15, 12, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBird_keeperToby, -1 + person_event SPRITE_LASS, 3, 15, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerLassDana1, -1 + person_event SPRITE_STANDING_YOUNGSTER, 15, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBird_keeperToby, -1 person_event SPRITE_BUENA, 9, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyValerie, -1 - person_event SPRITE_SAILOR, 5, 24, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSailorHarry, -1 - person_event SPRITE_FRUIT_TREE, 10, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1f33, -1 - person_event SPRITE_BUENA, 8, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyOlivia, -1 + person_event SPRITE_SAILOR, 5, 24, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSailorHarry, -1 + person_event SPRITE_FRUIT_TREE, 10, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a1f33, -1 + person_event SPRITE_BUENA, 8, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerBeautyOlivia, -1 diff --git a/maps/Route39.asm b/maps/Route39.asm index 5553f483b..e399385a8 100644 --- a/maps/Route39.asm +++ b/maps/Route39.asm @@ -356,10 +356,10 @@ Route39_MapEventHeader: person_event SPRITE_SAILOR, 29, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSailorEugene, -1 person_event SPRITE_POKEFAN_M, 22, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanmDerek1, -1 person_event SPRITE_POKEFAN_F, 19, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerPokefanfRuth, -1 - person_event SPRITE_TAUROS, 12, 3, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 - person_event SPRITE_TAUROS, 11, 6, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 - person_event SPRITE_TAUROS, 15, 4, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 - person_event SPRITE_TAUROS, 13, 8, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 - person_event SPRITE_STANDING_YOUNGSTER, 7, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicNorman, -1 - person_event SPRITE_FRUIT_TREE, 3, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a5bf4, -1 + person_event SPRITE_TAUROS, 12, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 + person_event SPRITE_TAUROS, 11, 6, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 + person_event SPRITE_TAUROS, 15, 4, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 + person_event SPRITE_TAUROS, 13, 8, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x1a5af5, -1 + person_event SPRITE_STANDING_YOUNGSTER, 7, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 1, TrainerPsychicNorman, -1 + person_event SPRITE_FRUIT_TREE, 3, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a5bf4, -1 person_event SPRITE_POKEFAN_F, 22, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanFScript_0x1a5bbe, -1 diff --git a/maps/Route39Barn.asm b/maps/Route39Barn.asm index eb44481a0..f87519d65 100644 --- a/maps/Route39Barn.asm +++ b/maps/Route39Barn.asm @@ -202,4 +202,4 @@ Route39Barn_MapEventHeader: db 3 person_event SPRITE_TWIN, 3, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TwinScript_0x9cc76, -1 person_event SPRITE_TWIN, 3, 4, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TwinScript_0x9cc90, -1 - person_event SPRITE_TAUROS, 3, 3, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x9ccaa, -1 + person_event SPRITE_TAUROS, 3, 3, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, TaurosScript_0x9ccaa, -1 diff --git a/maps/Route4.asm b/maps/Route4.asm index 623cc0124..47aa42dcf 100644 --- a/maps/Route4.asm +++ b/maps/Route4.asm @@ -136,4 +136,4 @@ Route4_MapEventHeader: person_event SPRITE_YOUNGSTER, 9, 17, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerBird_keeperHank, -1 person_event SPRITE_LASS, 8, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerPicnickerHope, -1 person_event SPRITE_LASS, 6, 21, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerPicnickerSharon, -1 - person_event SPRITE_POKE_BALL, 3, 26, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP + person_event SPRITE_POKE_BALL, 3, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1ae20f, EVENT_ROUTE_4_HP_UP diff --git a/maps/Route40.asm b/maps/Route40.asm index e96a01422..140eca1a1 100644 --- a/maps/Route40.asm +++ b/maps/Route40.asm @@ -347,12 +347,12 @@ Route40_MapEventHeader: person_event SPRITE_OLIVINE_RIVAL, 15, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerSwimmermSimon, -1 person_event SPRITE_OLIVINE_RIVAL, 30, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerSwimmermRandall, -1 person_event SPRITE_SWIMMER_GIRL, 19, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerSwimmerfElaine, -1 - person_event SPRITE_SWIMMER_GIRL, 25, 10, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfPaula, -1 - person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 - person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 - person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_18, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 + person_event SPRITE_SWIMMER_GIRL, 25, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfPaula, -1 + person_event SPRITE_ROCK, 11, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 + person_event SPRITE_ROCK, 9, 6, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 + person_event SPRITE_ROCK, 8, 7, SPRITEMOVEDATA_SMASHABLE_ROCK, 0, 0, -1, -1, 0, 0, 0, Route40Rock, -1 person_event SPRITE_LASS, 13, 11, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LassScript_0x1a61c4, -1 - person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY + person_event SPRITE_BUENA, 10, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, MonicaScript, EVENT_ROUTE_40_MONICA_OF_MONDAY person_event SPRITE_POKEFAN_M, 6, 7, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x1a61c7, -1 - person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a61d3, -1 - person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR + person_event SPRITE_LASS, 4, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a61d3, -1 + person_event SPRITE_STANDING_YOUNGSTER, 9, 16, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, StandingYoungsterScript_0x1a61d6, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR diff --git a/maps/Route40BattleTowerGate.asm b/maps/Route40BattleTowerGate.asm index 8c60ec96c..e8f5e6e41 100644 --- a/maps/Route40BattleTowerGate.asm +++ b/maps/Route40BattleTowerGate.asm @@ -88,5 +88,5 @@ Route40BattleTowerGate_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR + person_event SPRITE_ROCKER, 3, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, RockerScript_0x9f669, EVENT_BATTLE_TOWER_OUTSIDE_SAILOR person_event SPRITE_TWIN, 5, 7, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TwinScript_0x9f66c, -1 diff --git a/maps/Route41.asm b/maps/Route41.asm index 81b16e240..d30932a29 100644 --- a/maps/Route41.asm +++ b/maps/Route41.asm @@ -349,13 +349,13 @@ Route41_MapEventHeader: .PersonEvents: db 10 - person_event SPRITE_OLIVINE_RIVAL, 6, 32, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCharlie, -1 - person_event SPRITE_OLIVINE_RIVAL, 8, 46, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermGeorge, -1 - person_event SPRITE_OLIVINE_RIVAL, 26, 20, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermBerke, -1 - person_event SPRITE_OLIVINE_RIVAL, 30, 32, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermKirk, -1 - person_event SPRITE_OLIVINE_RIVAL, 46, 19, SPRITEMOVEDATA_1E, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermMathew, -1 - person_event SPRITE_SWIMMER_GIRL, 4, 17, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfKaylee, -1 + person_event SPRITE_OLIVINE_RIVAL, 6, 32, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermCharlie, -1 + person_event SPRITE_OLIVINE_RIVAL, 8, 46, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermGeorge, -1 + person_event SPRITE_OLIVINE_RIVAL, 26, 20, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermBerke, -1 + person_event SPRITE_OLIVINE_RIVAL, 30, 32, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermKirk, -1 + person_event SPRITE_OLIVINE_RIVAL, 46, 19, SPRITEMOVEDATA_SPINCOUNTERCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerSwimmermMathew, -1 + person_event SPRITE_SWIMMER_GIRL, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfKaylee, -1 person_event SPRITE_SWIMMER_GIRL, 19, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfSusie, -1 person_event SPRITE_SWIMMER_GIRL, 34, 27, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerSwimmerfDenise, -1 person_event SPRITE_SWIMMER_GIRL, 28, 44, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerSwimmerfKara, -1 - person_event SPRITE_SWIMMER_GIRL, 50, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerSwimmerfWendy, -1 + person_event SPRITE_SWIMMER_GIRL, 50, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerSwimmerfWendy, -1 diff --git a/maps/Route42.asm b/maps/Route42.asm index 1ee15cffb..00033853c 100644 --- a/maps/Route42.asm +++ b/maps/Route42.asm @@ -337,11 +337,11 @@ Route42_MapEventHeader: .PersonEvents: db 9 person_event SPRITE_FISHER, 10, 40, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherTully1, -1 - person_event SPRITE_POKEFAN_M, 9, 51, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerBenjamin, -1 + person_event SPRITE_POKEFAN_M, 9, 51, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerBenjamin, -1 person_event SPRITE_SUPER_NERD, 8, 47, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacShane, -1 - person_event SPRITE_FRUIT_TREE, 16, 27, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934d, -1 - person_event SPRITE_FRUIT_TREE, 16, 28, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934f, -1 - person_event SPRITE_FRUIT_TREE, 16, 29, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9351, -1 - person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL - person_event SPRITE_POKE_BALL, 8, 33, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION - person_event SPRITE_SUICUNE, 16, 26, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42 + person_event SPRITE_FRUIT_TREE, 16, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934d, -1 + person_event SPRITE_FRUIT_TREE, 16, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a934f, -1 + person_event SPRITE_FRUIT_TREE, 16, 29, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9351, -1 + person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a9349, EVENT_ROUTE_42_ULTRA_BALL + person_event SPRITE_POKE_BALL, 8, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a934b, EVENT_ROUTE_42_SUPER_POTION + person_event SPRITE_SUICUNE, 16, 26, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_SAW_SUICUNE_ON_ROUTE_42 diff --git a/maps/Route43.asm b/maps/Route43.asm index 8c12f8d02..f348133dc 100644 --- a/maps/Route43.asm +++ b/maps/Route43.asm @@ -517,10 +517,10 @@ Route43_MapEventHeader: .PersonEvents: db 8 person_event SPRITE_SUPER_NERD, 5, 13, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacBen, -1 - person_event SPRITE_SUPER_NERD, 20, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacBrent1, -1 + person_event SPRITE_SUPER_NERD, 20, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacBrent1, -1 person_event SPRITE_SUPER_NERD, 7, 14, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacRon, -1 person_event SPRITE_FISHER, 16, 4, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 4, TrainerFisherMarvin, -1 person_event SPRITE_LASS, 25, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerTiffany3, -1 - person_event SPRITE_YOUNGSTER, 40, 13, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperSpencer, -1 - person_event SPRITE_FRUIT_TREE, 26, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19d266, -1 - person_event SPRITE_POKE_BALL, 32, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER + person_event SPRITE_YOUNGSTER, 40, 13, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperSpencer, -1 + person_event SPRITE_FRUIT_TREE, 26, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19d266, -1 + person_event SPRITE_POKE_BALL, 32, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19d268, EVENT_ROUTE_43_MAX_ETHER diff --git a/maps/Route44.asm b/maps/Route44.asm index 2cbb5e40e..ca1935065 100644 --- a/maps/Route44.asm +++ b/maps/Route44.asm @@ -515,12 +515,12 @@ Route44_MapEventHeader: db 11 person_event SPRITE_FISHER, 3, 35, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherWilton1, -1 person_event SPRITE_FISHER, 13, 19, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerFisherEdgar, -1 - person_event SPRITE_YOUNGSTER, 9, 10, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicPhil, -1 - person_event SPRITE_SUPER_NERD, 2, 43, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPokemaniacZach, -1 + person_event SPRITE_YOUNGSTER, 9, 10, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicPhil, -1 + person_event SPRITE_SUPER_NERD, 2, 43, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPokemaniacZach, -1 person_event SPRITE_YOUNGSTER, 5, 51, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerBird_keeperVance1, -1 person_event SPRITE_COOLTRAINER_M, 15, 41, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainermAllen, -1 person_event SPRITE_COOLTRAINER_F, 14, 31, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 5, TrainerCooltrainerfCybil, -1 - person_event SPRITE_FRUIT_TREE, 5, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19da40, -1 - person_event SPRITE_POKE_BALL, 8, 30, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE - person_event SPRITE_POKE_BALL, 4, 45, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL - person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL + person_event SPRITE_FRUIT_TREE, 5, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19da40, -1 + person_event SPRITE_POKE_BALL, 8, 30, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da42, EVENT_ROUTE_44_MAX_REVIVE + person_event SPRITE_POKE_BALL, 4, 45, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da44, EVENT_ROUTE_44_ULTRA_BALL + person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19da46, EVENT_ROUTE_44_MAX_REPEL diff --git a/maps/Route45.asm b/maps/Route45.asm index e21515ef0..e818c36ae 100644 --- a/maps/Route45.asm +++ b/maps/Route45.asm @@ -539,12 +539,12 @@ Route45_MapEventHeader: person_event SPRITE_POKEFAN_M, 65, 15, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerMichael, -1 person_event SPRITE_POKEFAN_M, 28, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerParry, -1 person_event SPRITE_POKEFAN_M, 65, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerTimothy, -1 - person_event SPRITE_BLACK_BELT, 50, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltKenji, -1 + person_event SPRITE_BLACK_BELT, 50, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerBlackbeltKenji, -1 person_event SPRITE_COOLTRAINER_M, 18, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainermRyan, -1 - person_event SPRITE_COOLTRAINER_F, 36, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfKelly, -1 - person_event SPRITE_FRUIT_TREE, 82, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19e294, -1 - person_event SPRITE_POKE_BALL, 51, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET - person_event SPRITE_POKE_BALL, 66, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE - person_event SPRITE_POKE_BALL, 20, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER - person_event SPRITE_POKE_BALL, 33, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION - person_event SPRITE_YOUNGSTER, 70, 4, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19e269, -1 + person_event SPRITE_COOLTRAINER_F, 36, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfKelly, -1 + person_event SPRITE_FRUIT_TREE, 82, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x19e294, -1 + person_event SPRITE_POKE_BALL, 51, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e296, EVENT_ROUTE_45_NUGGET + person_event SPRITE_POKE_BALL, 66, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e298, EVENT_ROUTE_45_REVIVE + person_event SPRITE_POKE_BALL, 20, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29a, EVENT_ROUTE_45_ELIXER + person_event SPRITE_POKE_BALL, 33, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x19e29c, EVENT_ROUTE_45_MAX_POTION + person_event SPRITE_YOUNGSTER, 70, 4, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x19e269, -1 diff --git a/maps/Route46.asm b/maps/Route46.asm index 91ddfe8b5..e7c19942f 100644 --- a/maps/Route46.asm +++ b/maps/Route46.asm @@ -264,6 +264,6 @@ Route46_MapEventHeader: person_event SPRITE_POKEFAN_M, 19, 12, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerBailey, -1 person_event SPRITE_YOUNGSTER, 14, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerCamperTed, -1 person_event SPRITE_LASS, 13, 2, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 2, TrainerPicnickerErin1, -1 - person_event SPRITE_FRUIT_TREE, 5, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a978f, -1 - person_event SPRITE_FRUIT_TREE, 6, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9791, -1 - person_event SPRITE_POKE_BALL, 15, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED + person_event SPRITE_FRUIT_TREE, 5, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a978f, -1 + person_event SPRITE_FRUIT_TREE, 6, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a9791, -1 + person_event SPRITE_POKE_BALL, 15, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a978d, EVENT_ROUTE_46_X_SPEED diff --git a/maps/Route5CleanseTagSpeechHouse.asm b/maps/Route5CleanseTagSpeechHouse.asm index f1a57e338..fd60b1757 100644 --- a/maps/Route5CleanseTagSpeechHouse.asm +++ b/maps/Route5CleanseTagSpeechHouse.asm @@ -75,5 +75,5 @@ Route5CleanseTagSpeechHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_1F, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x18b634, -1 + person_event SPRITE_GRANNY, 5, 2, SPRITEMOVEDATA_SPINCLOCKWISE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrannyScript_0x18b634, -1 person_event SPRITE_TEACHER, 3, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, TeacherScript_0x18b64f, -1 diff --git a/maps/Route5UndergroundEntrance.asm b/maps/Route5UndergroundEntrance.asm index 5cea76d7e..2e2e286e1 100644 --- a/maps/Route5UndergroundEntrance.asm +++ b/maps/Route5UndergroundEntrance.asm @@ -34,4 +34,4 @@ Route5UndergroundEntrance_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18b555, -1 + person_event SPRITE_TEACHER, 2, 2, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18b555, -1 diff --git a/maps/Route8.asm b/maps/Route8.asm index 734c04003..da454b477 100644 --- a/maps/Route8.asm +++ b/maps/Route8.asm @@ -187,5 +187,5 @@ Route8_MapEventHeader: person_event SPRITE_BIKER, 9, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerBikerHarris, -1 person_event SPRITE_BIKER, 10, 10, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerBikerZeke, -1 person_event SPRITE_SUPER_NERD, 2, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdSam, -1 - person_event SPRITE_SUPER_NERD, 12, 31, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerSupernerdTom, -1 - person_event SPRITE_FRUIT_TREE, 5, 33, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x6c06c, -1 + person_event SPRITE_SUPER_NERD, 12, 31, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerSupernerdTom, -1 + person_event SPRITE_FRUIT_TREE, 5, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x6c06c, -1 diff --git a/maps/Route9.asm b/maps/Route9.asm index e939f7612..8afe0f978 100644 --- a/maps/Route9.asm +++ b/maps/Route9.asm @@ -217,8 +217,8 @@ Route9_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_YOUNGSTER, 11, 23, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerCamperDean, -1 - person_event SPRITE_LASS, 8, 39, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerHeidi, -1 - person_event SPRITE_YOUNGSTER, 4, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerCamperSid, -1 + person_event SPRITE_LASS, 8, 39, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 3, TrainerPicnickerHeidi, -1 + person_event SPRITE_YOUNGSTER, 4, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 5, TrainerCamperSid, -1 person_event SPRITE_LASS, 15, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 2, 1, TrainerPicnickerEdna, -1 person_event SPRITE_POKEFAN_M, 3, 28, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerTim, -1 person_event SPRITE_POKEFAN_M, 15, 36, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 4, TrainerHikerSidney, -1 diff --git a/maps/RuinsofAlphAerodactylItemRoom.asm b/maps/RuinsofAlphAerodactylItemRoom.asm index 947e5d6ed..316fadea8 100644 --- a/maps/RuinsofAlphAerodactylItemRoom.asm +++ b/maps/RuinsofAlphAerodactylItemRoom.asm @@ -47,7 +47,7 @@ RuinsofAlphAerodactylItemRoom_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM - person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab6, EVENT_PICKED_UP_GOLD_BERRY_FROM_AERODACTYL_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59ab8, EVENT_PICKED_UP_MOON_STONE_FROM_AERODACTYL_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59aba, EVENT_PICKED_UP_HEAL_POWDER_FROM_AERODACTYL_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59abc, EVENT_PICKED_UP_ENERGY_ROOT_FROM_AERODACTYL_ITEM_ROOM diff --git a/maps/RuinsofAlphHoOhItemRoom.asm b/maps/RuinsofAlphHoOhItemRoom.asm index b6ea51eb0..e1b93cb1c 100644 --- a/maps/RuinsofAlphHoOhItemRoom.asm +++ b/maps/RuinsofAlphHoOhItemRoom.asm @@ -47,7 +47,7 @@ RuinsofAlphHoOhItemRoom_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM - person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59918, EVENT_PICKED_UP_GOLD_BERRY_FROM_HO_OH_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991a, EVENT_PICKED_UP_MYSTERYBERRY_FROM_HO_OH_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991c, EVENT_PICKED_UP_REVIVAL_HERB_FROM_HO_OH_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5991e, EVENT_PICKED_UP_CHARCOAL_FROM_HO_OH_ITEM_ROOM diff --git a/maps/RuinsofAlphInnerChamber.asm b/maps/RuinsofAlphInnerChamber.asm index b8a350dc2..ae5b818da 100644 --- a/maps/RuinsofAlphInnerChamber.asm +++ b/maps/RuinsofAlphInnerChamber.asm @@ -125,6 +125,6 @@ RuinsofAlphInnerChamber_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_FISHER, 7, 3, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS - person_event SPRITE_TEACHER, 13, 14, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS + person_event SPRITE_FISHER, 7, 3, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58f7d, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS + person_event SPRITE_TEACHER, 13, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x58f80, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS person_event SPRITE_GRAMPS, 19, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x58f83, EVENT_RUINS_OF_ALPH_INNER_CHAMBER_TOURISTS diff --git a/maps/RuinsofAlphKabutoItemRoom.asm b/maps/RuinsofAlphKabutoItemRoom.asm index 509e25136..a64a9ab34 100644 --- a/maps/RuinsofAlphKabutoItemRoom.asm +++ b/maps/RuinsofAlphKabutoItemRoom.asm @@ -47,7 +47,7 @@ RuinsofAlphKabutoItemRoom_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM - person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a2, EVENT_PICKED_UP_BERRY_FROM_KABUTO_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a4, EVENT_PICKED_UP_PSNCUREBERRY_FROM_KABUTO_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a6, EVENT_PICKED_UP_HEAL_POWDER_FROM_KABUTO_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x599a8, EVENT_PICKED_UP_ENERGYPOWDER_FROM_KABUTO_ITEM_ROOM diff --git a/maps/RuinsofAlphOmanyteItemRoom.asm b/maps/RuinsofAlphOmanyteItemRoom.asm index 68627e386..48b980505 100644 --- a/maps/RuinsofAlphOmanyteItemRoom.asm +++ b/maps/RuinsofAlphOmanyteItemRoom.asm @@ -47,7 +47,7 @@ RuinsofAlphOmanyteItemRoom_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM - person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM - person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2c, EVENT_PICKED_UP_MYSTERYBERRY_FROM_OMANYTE_ITEM_ROOM + person_event SPRITE_POKE_BALL, 6, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a2e, EVENT_PICKED_UP_MYSTIC_WATER_FROM_OMANYTE_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a30, EVENT_PICKED_UP_STARDUST_FROM_OMANYTE_ITEM_ROOM + person_event SPRITE_POKE_BALL, 4, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59a32, EVENT_PICKED_UP_STAR_PIECE_FROM_OMANYTE_ITEM_ROOM diff --git a/maps/RuinsofAlphOutside.asm b/maps/RuinsofAlphOutside.asm index 6e6fb96d3..019ab920e 100644 --- a/maps/RuinsofAlphOutside.asm +++ b/maps/RuinsofAlphOutside.asm @@ -313,6 +313,6 @@ RuinsofAlphOutside_MapEventHeader: db 5 person_event SPRITE_YOUNGSTER, 20, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 1, TrainerPsychicNathan, -1 person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ScientistScript_0x58043, EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST - person_event SPRITE_FISHER, 17, 13, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER - person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS + person_event SPRITE_FISHER, 17, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x58061, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_FISHER + person_event SPRITE_YOUNGSTER, 11, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, YoungsterScript_0x58076, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS person_event SPRITE_YOUNGSTER, 8, 12, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x5807e, EVENT_RUINS_OF_ALPH_OUTSIDE_TOURIST_YOUNGSTERS diff --git a/maps/RuinsofAlphResearchCenter.asm b/maps/RuinsofAlphResearchCenter.asm index ddf5e8e71..5433134b0 100644 --- a/maps/RuinsofAlphResearchCenter.asm +++ b/maps/RuinsofAlphResearchCenter.asm @@ -413,5 +413,5 @@ RuinsofAlphResearchCenter_MapEventHeader: .PersonEvents: db 3 person_event SPRITE_SCIENTIST, 5, 4, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x591e5, -1 - person_event SPRITE_SCIENTIST, 2, 5, SPRITEMOVEDATA_02, 1, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x59214, -1 + person_event SPRITE_SCIENTIST, 2, 5, SPRITEMOVEDATA_WANDER, 1, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x59214, -1 person_event SPRITE_SCIENTIST, 5, 2, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x591d1, EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST diff --git a/maps/SaffronCity.asm b/maps/SaffronCity.asm index 83b8b8ff4..0955b339f 100644 --- a/maps/SaffronCity.asm +++ b/maps/SaffronCity.asm @@ -301,5 +301,5 @@ SaffronCity_MapEventHeader: person_event SPRITE_COOLTRAINER_F, 24, 20, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 2, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerFScript_0x199355, -1 person_event SPRITE_FISHER, 12, 27, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x199358, -1 person_event SPRITE_YOUNGSTER, 19, 15, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x19936c, -1 - person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19936f, -1 - person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x199372, -1 + person_event SPRITE_YOUNGSTER, 22, 35, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x19936f, -1 + person_event SPRITE_LASS, 8, 19, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x199372, -1 diff --git a/maps/SaffronGym.asm b/maps/SaffronGym.asm index 8149aea1c..f7e3ae784 100644 --- a/maps/SaffronGym.asm +++ b/maps/SaffronGym.asm @@ -331,8 +331,8 @@ SaffronGym_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_SABRINA, 8, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SabrinaScript_0x189c2e, -1 - person_event SPRITE_GRANNY, 16, 17, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerMediumRebecca, -1 - person_event SPRITE_YOUNGSTER, 16, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFranklin, -1 - person_event SPRITE_GRANNY, 4, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerMediumDoris, -1 - person_event SPRITE_YOUNGSTER, 4, 17, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicJared, -1 + person_event SPRITE_GRANNY, 16, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerMediumRebecca, -1 + person_event SPRITE_YOUNGSTER, 16, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPsychicFranklin, -1 + person_event SPRITE_GRANNY, 4, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerMediumDoris, -1 + person_event SPRITE_YOUNGSTER, 4, 17, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPsychicJared, -1 person_event SPRITE_GYM_GUY, 14, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SaffronGymGuyScript, -1 diff --git a/maps/SaffronMart.asm b/maps/SaffronMart.asm index 0f86b355c..ea1f211cb 100644 --- a/maps/SaffronMart.asm +++ b/maps/SaffronMart.asm @@ -50,5 +50,5 @@ SaffronMart_MapEventHeader: .PersonEvents: db 3 person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x18a3bf, -1 - person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CooltrainerMScript_0x18a3c6, -1 + person_event SPRITE_COOLTRAINER_M, 2, 7, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, CooltrainerMScript_0x18a3c6, -1 person_event SPRITE_COOLTRAINER_F, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, CooltrainerFScript_0x18a3c9, -1 diff --git a/maps/SaffronPokeCenter1F.asm b/maps/SaffronPokeCenter1F.asm index 490f99ef1..15d998dce 100644 --- a/maps/SaffronPokeCenter1F.asm +++ b/maps/SaffronPokeCenter1F.asm @@ -124,6 +124,6 @@ SaffronPokeCenter1F_MapEventHeader: .PersonEvents: db 4 person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x18a47d, -1 - person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18a480, -1 + person_event SPRITE_TEACHER, 2, 7, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, TeacherScript_0x18a480, -1 person_event SPRITE_FISHER, 6, 8, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x18a48c, -1 - person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x18a4a0, -1 + person_event SPRITE_YOUNGSTER, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, YoungsterScript_0x18a4a0, -1 diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm index 455618116..329d3d6c7 100644 --- a/maps/SaffronTrainStation.asm +++ b/maps/SaffronTrainStation.asm @@ -232,6 +232,6 @@ SaffronTrainStation_MapEventHeader: .PersonEvents: db 4 person_event SPRITE_OFFICER, 9, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, OfficerScript_0x18a81e, -1 - person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, GymGuyScript_0x18a875, -1 + person_event SPRITE_GYM_GUY, 14, 10, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, GymGuyScript_0x18a875, -1 person_event SPRITE_TEACHER, 11, 6, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x18a889, EVENT_SAFFRON_TRAIN_STATION_POPULATION person_event SPRITE_LASS, 10, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x18a88c, EVENT_SAFFRON_TRAIN_STATION_POPULATION diff --git a/maps/SilverCaveItemRooms.asm b/maps/SilverCaveItemRooms.asm index cf0774811..e2f998dba 100644 --- a/maps/SilverCaveItemRooms.asm +++ b/maps/SilverCaveItemRooms.asm @@ -28,5 +28,5 @@ SilverCaveItemRooms_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE - person_event SPRITE_POKE_BALL, 11, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE + person_event SPRITE_POKE_BALL, 3, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c65e, EVENT_SILVER_CAVE_ITEM_ROOMS_MAX_REVIVE + person_event SPRITE_POKE_BALL, 11, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c660, EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE diff --git a/maps/SilverCaveRoom1.asm b/maps/SilverCaveRoom1.asm index d8884288a..019dd016f 100644 --- a/maps/SilverCaveRoom1.asm +++ b/maps/SilverCaveRoom1.asm @@ -44,7 +44,7 @@ SilverCaveRoom1_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_POKE_BALL, 9, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER - person_event SPRITE_POKE_BALL, 29, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN - person_event SPRITE_POKE_BALL, 30, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE - person_event SPRITE_POKE_BALL, 18, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL + person_event SPRITE_POKE_BALL, 9, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c554, EVENT_SILVER_CAVE_ROOM_1_MAX_ELIXER + person_event SPRITE_POKE_BALL, 29, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c556, EVENT_SILVER_CAVE_ROOM_1_PROTEIN + person_event SPRITE_POKE_BALL, 30, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c558, EVENT_SILVER_CAVE_ROOM_1_ESCAPE_ROPE + person_event SPRITE_POKE_BALL, 18, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c55a, EVENT_SILVER_CAVE_ROOM_1_ULTRA_BALL diff --git a/maps/SilverCaveRoom2.asm b/maps/SilverCaveRoom2.asm index 8056e1f62..f1095cb4e 100644 --- a/maps/SilverCaveRoom2.asm +++ b/maps/SilverCaveRoom2.asm @@ -38,6 +38,6 @@ SilverCaveRoom2_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 10, 24, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM - person_event SPRITE_POKE_BALL, 24, 22, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL - person_event SPRITE_POKE_BALL, 20, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP + person_event SPRITE_POKE_BALL, 10, 24, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b2, EVENT_SILVER_CAVE_ROOM_2_CALCIUM + person_event SPRITE_POKE_BALL, 24, 22, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b4, EVENT_SILVER_CAVE_ROOM_2_ULTRA_BALL + person_event SPRITE_POKE_BALL, 20, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c5b6, EVENT_SILVER_CAVE_ROOM_2_PP_UP diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm index 6c9b1c8d8..47661ee39 100644 --- a/maps/SlowpokeWellB1F.asm +++ b/maps/SlowpokeWellB1F.asm @@ -330,8 +330,8 @@ SlowpokeWellB1F_MapEventHeader: person_event SPRITE_ROCKET, 2, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM1, EVENT_SLOWPOKE_WELL_ROCKETS person_event SPRITE_ROCKET, 6, 5, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 2, TrainerGruntM2, EVENT_SLOWPOKE_WELL_ROCKETS person_event SPRITE_ROCKET_GIRL, 4, 10, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerGruntF1, EVENT_SLOWPOKE_WELL_ROCKETS - person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES - person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES + person_event SPRITE_SLOWPOKE, 4, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a681, EVENT_SLOWPOKE_WELL_SLOWPOKES + person_event SPRITE_SLOWPOKE, 2, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SlowpokeScript_0x5a695, EVENT_SLOWPOKE_WELL_SLOWPOKES person_event SPRITE_KURT, 14, 16, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, KurtScript_0x5a5d5, EVENT_SLOWPOKE_WELL_KURT - person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, SlowpokeWellB1FBoulder, -1 - person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION + person_event SPRITE_BOULDER, 2, 3, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, SlowpokeWellB1FBoulder, -1 + person_event SPRITE_POKE_BALL, 3, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a6a3, EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION diff --git a/maps/SlowpokeWellB2F.asm b/maps/SlowpokeWellB2F.asm index a5816de3b..a532cd648 100644 --- a/maps/SlowpokeWellB2F.asm +++ b/maps/SlowpokeWellB2F.asm @@ -73,5 +73,5 @@ SlowpokeWellB2F_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_GYM_GUY, 4, 5, SPRITEMOVEDATA_02, 2, 1, -1, -1, 0, 0, 1, GymGuyScript_0x5ad0b, -1 - person_event SPRITE_POKE_BALL, 5, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE + person_event SPRITE_GYM_GUY, 4, 5, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, 0, 0, 1, GymGuyScript_0x5ad0b, -1 + person_event SPRITE_POKE_BALL, 5, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5ad28, EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE diff --git a/maps/SproutTower1F.asm b/maps/SproutTower1F.asm index c7252d33b..a10f41ed8 100644 --- a/maps/SproutTower1F.asm +++ b/maps/SproutTower1F.asm @@ -117,8 +117,8 @@ SproutTower1F_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_SAGE, 4, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x1844fe, -1 - person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x184501, -1 + person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageScript_0x184501, -1 person_event SPRITE_GRANNY, 12, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, GrannyScript_0x184504, -1 person_event SPRITE_TEACHER, 9, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x184507, -1 person_event SPRITE_SAGE, 5, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageChow, -1 - person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL + person_event SPRITE_POKE_BALL, 7, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18451e, EVENT_SPROUT_TOWER1F_PARLYZ_HEAL diff --git a/maps/SproutTower2F.asm b/maps/SproutTower2F.asm index bf0ccca8a..0e0b4b799 100644 --- a/maps/SproutTower2F.asm +++ b/maps/SproutTower2F.asm @@ -99,6 +99,6 @@ SproutTower2F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_SAGE, 3, 12, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageNico, -1 + person_event SPRITE_SAGE, 3, 12, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 4, TrainerSageNico, -1 person_event SPRITE_SAGE, 14, 9, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 5, TrainerSageEdmond, -1 - person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY + person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1847a7, EVENT_SPROUT_TOWER2F_X_ACCURACY diff --git a/maps/SproutTower3F.asm b/maps/SproutTower3F.asm index f0dece4d3..da36b255a 100644 --- a/maps/SproutTower3F.asm +++ b/maps/SproutTower3F.asm @@ -349,6 +349,6 @@ SproutTower3F_MapEventHeader: person_event SPRITE_SAGE, 8, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerSageTroy, -1 person_event SPRITE_SAGE, 2, 10, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SageLiScript, -1 person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerSageNeal, -1 - person_event SPRITE_POKE_BALL, 14, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION - person_event SPRITE_POKE_BALL, 1, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE + person_event SPRITE_POKE_BALL, 14, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a19, EVENT_SPROUT_TOWER_3F_POTION + person_event SPRITE_POKE_BALL, 1, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x184a1b, EVENT_SPROUT_TOWER_3F_ESCAPE_ROPE person_event SPRITE_SILVER, 4, 10, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_SPROUT_TOWER diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm index ea250ae37..3a03b67a2 100644 --- a/maps/TeamRocketBaseB1F.asm +++ b/maps/TeamRocketBaseB1F.asm @@ -789,6 +789,6 @@ TeamRocketBaseB1F_MapEventHeader: person_event SPRITE_ROCKET, 0, 0, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_SECURITY_GRUNTS person_event SPRITE_ROCKET, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM16, EVENT_TEAM_ROCKET_BASE_POPULATION person_event SPRITE_SCIENTIST, 12, 18, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerScientistJed, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_POKE_BALL, 6, 27, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION - person_event SPRITE_POKE_BALL, 15, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET - person_event SPRITE_POKE_BALL, 12, 21, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC + person_event SPRITE_POKE_BALL, 6, 27, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac4, EVENT_TEAM_ROCKET_BASE_B1F_HYPER_POTION + person_event SPRITE_POKE_BALL, 15, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac6, EVENT_TEAM_ROCKET_BASE_B1F_NUGGET + person_event SPRITE_POKE_BALL, 12, 21, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6cac8, EVENT_TEAM_ROCKET_BASE_B1F_GUARD_SPEC diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm index fe6aa731f..920db3621 100644 --- a/maps/TeamRocketBaseB2F.asm +++ b/maps/TeamRocketBaseB2F.asm @@ -956,13 +956,13 @@ TeamRocketBaseB2F_MapEventHeader: person_event SPRITE_ROCKET_GIRL, 16, 20, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE person_event SPRITE_LANCE, 13, 5, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_LANCE person_event SPRITE_DRAGON, 13, 9, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE - person_event SPRITE_VOLTORB, 5, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 - person_event SPRITE_VOLTORB, 7, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 - person_event SPRITE_VOLTORB, 9, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 - person_event SPRITE_VOLTORB, 5, 22, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 - person_event SPRITE_VOLTORB, 7, 22, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 - person_event SPRITE_VOLTORB, 9, 22, SPRITEMOVEDATA_16, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 + person_event SPRITE_VOLTORB, 5, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d101, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 + person_event SPRITE_VOLTORB, 7, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d12c, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 + person_event SPRITE_VOLTORB, 9, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, VoltorbScript_0x6d157, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 + person_event SPRITE_VOLTORB, 5, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 + person_event SPRITE_VOLTORB, 7, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 + person_event SPRITE_VOLTORB, 9, 22, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 person_event SPRITE_ROCKET, 13, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM17, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_ROCKET, 1, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 2, 1, TrainerGruntM18, EVENT_TEAM_ROCKET_BASE_POPULATION person_event SPRITE_ROCKET, 14, 21, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM19, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_POKE_BALL, 10, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF + person_event SPRITE_POKE_BALL, 10, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6d20d, EVENT_TEAM_ROCKET_BASE_B2F_TM_THIEF diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm index 671ff9dd7..2939c1691 100644 --- a/maps/TeamRocketBaseB3F.asm +++ b/maps/TeamRocketBaseB3F.asm @@ -589,15 +589,15 @@ TeamRocketBaseB3F_MapEventHeader: db 14 person_event SPRITE_LANCE, 14, 25, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, LanceScript_0x6dffc, EVENT_TEAM_ROCKET_BASE_B3F_LANCE_PASSWORDS person_event SPRITE_ROCKET, 3, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_TEAM_ROCKET_BASE_B3F_EXECUTIVE - person_event SPRITE_MOLTRES, 2, 7, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_MOLTRES, 2, 7, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, MoltresScript_0x6e091, EVENT_TEAM_ROCKET_BASE_POPULATION person_event SPRITE_ROCKET_GIRL, 7, 21, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 0, TrainerGruntF5, EVENT_TEAM_ROCKET_BASE_POPULATION - person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION + person_event SPRITE_ROCKET, 14, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM28, EVENT_TEAM_ROCKET_BASE_POPULATION person_event SPRITE_SCIENTIST, 11, 23, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 0, TrainerScientistRoss, EVENT_TEAM_ROCKET_BASE_POPULATION person_event SPRITE_SCIENTIST, 15, 11, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerScientistMitch, EVENT_TEAM_ROCKET_BASE_POPULATION person_event SPRITE_ROCKET, 14, 24, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, RocketScript_0x6e048, EVENT_TEAM_ROCKET_BASE_POPULATION person_event SPRITE_SILVER, 5, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_TEAM_ROCKET_BASE - person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN - person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL - person_event SPRITE_POKE_BALL, 9, 28, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL - person_event SPRITE_POKE_BALL, 2, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL - person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL + person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e120, EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN + person_event SPRITE_POKE_BALL, 12, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e122, EVENT_TEAM_ROCKET_BASE_B3F_X_SPECIAL + person_event SPRITE_POKE_BALL, 9, 28, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e124, EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL + person_event SPRITE_POKE_BALL, 2, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e126, EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL + person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x6e128, EVENT_TEAM_ROCKET_BASE_B3F_ULTRA_BALL diff --git a/maps/TinTower1F.asm b/maps/TinTower1F.asm index ee0e6277d..66c34d708 100644 --- a/maps/TinTower1F.asm +++ b/maps/TinTower1F.asm @@ -534,13 +534,13 @@ TinTower1F_MapEventHeader: .PersonEvents: db 10 - person_event SPRITE_SUICUNE, 9, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE - person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU - person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI - person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE - person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1 - person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1 - person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1 + person_event SPRITE_SUICUNE, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_SUICUNE + person_event SPRITE_RAIKOU, 9, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_RAIKOU + person_event SPRITE_ENTEI, 9, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, ObjectEvent, EVENT_TIN_TOWER_1F_ENTEI + person_event SPRITE_SUPER_NERD, 3, 8, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SuperNerdScript_0x1851c8, EVENT_TIN_TOWER_1F_EUSINE + person_event SPRITE_SAGE, 9, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185173, EVENT_TIN_TOWER_1F_WISE_TRIO_1 + person_event SPRITE_SAGE, 11, 11, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185176, EVENT_TIN_TOWER_1F_WISE_TRIO_1 + person_event SPRITE_SAGE, 6, 14, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185179, EVENT_TIN_TOWER_1F_WISE_TRIO_1 person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, 0, 0, 0, SageScript_0x18517c, EVENT_TIN_TOWER_1F_WISE_TRIO_2 person_event SPRITE_SAGE, 1, 9, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SageScript_0x185188, EVENT_TIN_TOWER_1F_WISE_TRIO_2 person_event SPRITE_SAGE, 2, 14, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SageScript_0x1851bc, EVENT_TIN_TOWER_1F_WISE_TRIO_2 diff --git a/maps/TinTower3F.asm b/maps/TinTower3F.asm index 4a0e103bf..41873c9aa 100644 --- a/maps/TinTower3F.asm +++ b/maps/TinTower3F.asm @@ -25,4 +25,4 @@ TinTower3F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 14, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL + person_event SPRITE_POKE_BALL, 14, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a37, EVENT_TIN_TOWER_3F_FULL_HEAL diff --git a/maps/TinTower4F.asm b/maps/TinTower4F.asm index 1068a5a91..60b085abd 100644 --- a/maps/TinTower4F.asm +++ b/maps/TinTower4F.asm @@ -38,6 +38,6 @@ TinTower4F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL - person_event SPRITE_POKE_BALL, 14, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP - person_event SPRITE_POKE_BALL, 12, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE + person_event SPRITE_POKE_BALL, 10, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a58, EVENT_TIN_TOWER_4F_ULTRA_BALL + person_event SPRITE_POKE_BALL, 14, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5a, EVENT_TIN_TOWER_4F_PP_UP + person_event SPRITE_POKE_BALL, 12, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185a5c, EVENT_TIN_TOWER_4F_ESCAPE_ROPE diff --git a/maps/TinTower5F.asm b/maps/TinTower5F.asm index 6fd38614f..848942bf0 100644 --- a/maps/TinTower5F.asm +++ b/maps/TinTower5F.asm @@ -37,4 +37,4 @@ TinTower5F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 9, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY + person_event SPRITE_POKE_BALL, 9, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185aa9, EVENT_TIN_TOWER_5F_RARE_CANDY diff --git a/maps/TinTower6F.asm b/maps/TinTower6F.asm index decbede6f..7a58b6153 100644 --- a/maps/TinTower6F.asm +++ b/maps/TinTower6F.asm @@ -25,4 +25,4 @@ TinTower6F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 8, 8, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION + person_event SPRITE_POKE_BALL, 8, 8, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185ae4, EVENT_TIN_TOWER_6F_MAX_POTION diff --git a/maps/TinTower7F.asm b/maps/TinTower7F.asm index 64d484393..bc6b79700 100644 --- a/maps/TinTower7F.asm +++ b/maps/TinTower7F.asm @@ -28,4 +28,4 @@ TinTower7F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 1, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE + person_event SPRITE_POKE_BALL, 1, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b05, EVENT_TIN_TOWER_7F_MAX_REVIVE diff --git a/maps/TinTower8F.asm b/maps/TinTower8F.asm index 16df54c63..12c7acf5e 100644 --- a/maps/TinTower8F.asm +++ b/maps/TinTower8F.asm @@ -35,6 +35,6 @@ TinTower8F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET - person_event SPRITE_POKE_BALL, 6, 11, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER - person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE + person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b35, EVENT_TIN_TOWER_8F_NUGGET + person_event SPRITE_POKE_BALL, 6, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b37, EVENT_TIN_TOWER_8F_MAX_ELIXER + person_event SPRITE_POKE_BALL, 1, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b39, EVENT_TIN_TOWER_8F_FULL_RESTORE diff --git a/maps/TinTower9F.asm b/maps/TinTower9F.asm index 0f1c1d116..78e052a31 100644 --- a/maps/TinTower9F.asm +++ b/maps/TinTower9F.asm @@ -38,4 +38,4 @@ TinTower9F_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 1, 9, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP + person_event SPRITE_POKE_BALL, 1, 9, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x185b88, EVENT_TIN_TOWER_9F_HP_UP diff --git a/maps/TinTowerRoof.asm b/maps/TinTowerRoof.asm index de2594edb..6efa6e21f 100644 --- a/maps/TinTowerRoof.asm +++ b/maps/TinTowerRoof.asm @@ -60,4 +60,4 @@ TinTowerRoof_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_HO_OH, 5, 9, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH + person_event SPRITE_HO_OH, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, HoOhScript_0x77244, EVENT_TIN_TOWER_ROOF_HO_OH diff --git a/maps/TohjoFalls.asm b/maps/TohjoFalls.asm index 90790ad01..2bda0033b 100644 --- a/maps/TohjoFalls.asm +++ b/maps/TohjoFalls.asm @@ -25,4 +25,4 @@ TohjoFalls_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE + person_event SPRITE_POKE_BALL, 6, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18db02, EVENT_TOHJO_FALLS_MOON_STONE diff --git a/maps/UndergroundPathSwitchRoomEntrances.asm b/maps/UndergroundPathSwitchRoomEntrances.asm index e3e23144a..34f77d333 100644 --- a/maps/UndergroundPathSwitchRoomEntrances.asm +++ b/maps/UndergroundPathSwitchRoomEntrances.asm @@ -931,6 +931,6 @@ UndergroundPathSwitchRoomEntrances_MapEventHeader: person_event SPRITE_ROCKET_GIRL, 12, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerGruntF3, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_TEACHER, 27, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, TeacherScript_0x7ca7d, -1 person_event SPRITE_SUPER_NERD, 27, 19, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, SuperNerdScript_0x7ca7a, -1 - person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL - person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL + person_event SPRITE_POKE_BALL, 12, 1, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7d, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_SMOKE_BALL + person_event SPRITE_POKE_BALL, 9, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7ce7f, EVENT_UNDERGROUND_PATH_SWITCH_ROOM_ENTRANCES_FULL_HEAL person_event SPRITE_SILVER, 3, 23, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_UNDERGROUND_PATH diff --git a/maps/UndergroundWarehouse.asm b/maps/UndergroundWarehouse.asm index 7d519ca97..3e272fb52 100644 --- a/maps/UndergroundWarehouse.asm +++ b/maps/UndergroundWarehouse.asm @@ -225,7 +225,7 @@ UndergroundWarehouse_MapEventHeader: person_event SPRITE_ROCKET, 8, 9, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM24, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET, 15, 8, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 2, 3, TrainerGruntM14, EVENT_RADIO_TOWER_ROCKET_TAKEOVER person_event SPRITE_ROCKET, 3, 14, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 2, 4, TrainerGruntM15, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_GENTLEMAN, 8, 12, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER - person_event SPRITE_POKE_BALL, 15, 18, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER - person_event SPRITE_POKE_BALL, 9, 13, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK - person_event SPRITE_POKE_BALL, 1, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL + person_event SPRITE_GENTLEMAN, 8, 12, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x7d9bf, EVENT_RADIO_TOWER_ROCKET_TAKEOVER + person_event SPRITE_POKE_BALL, 15, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e4, EVENT_UNDERGROUND_WAREHOUSE_MAX_ETHER + person_event SPRITE_POKE_BALL, 9, 13, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e6, EVENT_UNDERGROUND_WAREHOUSE_TM_SLEEP_TALK + person_event SPRITE_POKE_BALL, 1, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7d9e8, EVENT_UNDERGROUND_WAREHOUSE_ULTRA_BALL diff --git a/maps/UnionCave1F.asm b/maps/UnionCave1F.asm index f6544808d..e35c88e78 100644 --- a/maps/UnionCave1F.asm +++ b/maps/UnionCave1F.asm @@ -208,11 +208,11 @@ UnionCave1F_MapEventHeader: .PersonEvents: db 9 person_event SPRITE_POKEFAN_M, 6, 3, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerHikerDaniel, -1 - person_event SPRITE_SUPER_NERD, 21, 4, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacLarry, -1 - person_event SPRITE_POKEFAN_M, 8, 11, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerRussell, -1 + person_event SPRITE_SUPER_NERD, 21, 4, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacLarry, -1 + person_event SPRITE_POKEFAN_M, 8, 11, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 1, TrainerHikerRussell, -1 person_event SPRITE_FISHER, 27, 15, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerFirebreatherRay, -1 person_event SPRITE_FISHER, 19, 14, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 4, TrainerFirebreatherBill, -1 - person_event SPRITE_POKE_BALL, 21, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL - person_event SPRITE_POKE_BALL, 2, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK - person_event SPRITE_POKE_BALL, 17, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION - person_event SPRITE_POKE_BALL, 33, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING + person_event SPRITE_POKE_BALL, 21, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c00, EVENT_UNION_CAVE_1F_GREAT_BALL + person_event SPRITE_POKE_BALL, 2, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c02, EVENT_UNION_CAVE_1F_X_ATTACK + person_event SPRITE_POKE_BALL, 17, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c04, EVENT_UNION_CAVE_1F_POTION + person_event SPRITE_POKE_BALL, 33, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x59c06, EVENT_UNION_CAVE_1F_AWAKENING diff --git a/maps/UnionCaveB1F.asm b/maps/UnionCaveB1F.asm index 5b6d0415a..54d6914ad 100644 --- a/maps/UnionCaveB1F.asm +++ b/maps/UnionCaveB1F.asm @@ -163,10 +163,10 @@ UnionCaveB1F_MapEventHeader: .PersonEvents: db 7 - person_event SPRITE_POKEFAN_M, 4, 9, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerPhillip, -1 + person_event SPRITE_POKEFAN_M, 4, 9, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerPhillip, -1 person_event SPRITE_POKEFAN_M, 7, 16, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerHikerLeonard, -1 person_event SPRITE_SUPER_NERD, 32, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacAndrew, -1 person_event SPRITE_SUPER_NERD, 30, 17, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacCalvin, -1 - person_event SPRITE_POKE_BALL, 16, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT - person_event SPRITE_BOULDER, 10, 7, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, UnionCaveB1FBoulder, -1 - person_event SPRITE_POKE_BALL, 23, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND + person_event SPRITE_POKE_BALL, 16, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a016, EVENT_UNION_CAVE_B1F_TM_SWIFT + person_event SPRITE_BOULDER, 10, 7, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, UnionCaveB1FBoulder, -1 + person_event SPRITE_POKE_BALL, 23, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a018, EVENT_UNION_CAVE_B1F_X_DEFEND diff --git a/maps/UnionCaveB2F.asm b/maps/UnionCaveB2F.asm index 7d9bbf462..afeba994e 100644 --- a/maps/UnionCaveB2F.asm +++ b/maps/UnionCaveB2F.asm @@ -153,8 +153,8 @@ UnionCaveB2F_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_ROCKER, 19, 15, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainermNick, -1 - person_event SPRITE_COOLTRAINER_F, 13, 5, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfGwen, -1 + person_event SPRITE_COOLTRAINER_F, 13, 5, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 1, TrainerCooltrainerfGwen, -1 person_event SPRITE_COOLTRAINER_F, 30, 3, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 2, 3, TrainerCooltrainerfEmma, -1 - person_event SPRITE_POKE_BALL, 2, 16, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER - person_event SPRITE_POKE_BALL, 19, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION - person_event SPRITE_SURF, 31, 11, SPRITEMOVEDATA_24, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS + person_event SPRITE_POKE_BALL, 2, 16, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36a, EVENT_UNION_CAVE_B2F_ELIXER + person_event SPRITE_POKE_BALL, 19, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x5a36c, EVENT_UNION_CAVE_B2F_HYPER_POTION + person_event SPRITE_SURF, 31, 11, SPRITEMOVEDATA_LAPRAS, 1, 1, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SurfScript_0x5a31f, EVENT_UNION_CAVE_B2F_LAPRAS diff --git a/maps/VermilionCity.asm b/maps/VermilionCity.asm index d80b56b12..5a2939d63 100644 --- a/maps/VermilionCity.asm +++ b/maps/VermilionCity.asm @@ -294,9 +294,9 @@ VermilionCity_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_02, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x1aa983, -1 + person_event SPRITE_TEACHER, 9, 18, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, 0, 0, 0, TeacherScript_0x1aa983, -1 person_event SPRITE_GRAMPS, 6, 23, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, GrampsScript_0x1aa986, -1 - person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, VermilionMachop, -1 - person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_02, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1aa99b, -1 - person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_15, 0, 0, -1, -1, 0, 0, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX + person_event SPRITE_MACHOP, 7, 26, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, VermilionMachop, -1 + person_event SPRITE_SUPER_NERD, 16, 14, SPRITEMOVEDATA_WANDER, 1, 1, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, SuperNerdScript_0x1aa99b, -1 + person_event SPRITE_BIG_SNORLAX, 8, 34, SPRITEMOVEDATA_SNORLAX, 0, 0, -1, -1, 0, 0, 0, VermilionSnorlax, EVENT_VERMILION_CITY_SNORLAX person_event SPRITE_POKEFAN_M, 12, 31, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, VermilionGymBadgeGuy, -1 diff --git a/maps/VermilionMagnetTrainSpeechHouse.asm b/maps/VermilionMagnetTrainSpeechHouse.asm index 6d2516cce..99d930647 100644 --- a/maps/VermilionMagnetTrainSpeechHouse.asm +++ b/maps/VermilionMagnetTrainSpeechHouse.asm @@ -49,4 +49,4 @@ VermilionMagnetTrainSpeechHouse_MapEventHeader: .PersonEvents: db 2 person_event SPRITE_POKEFAN_F, 3, 2, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, PokefanFScript_0x191eb7, -1 - person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x191eba, -1 + person_event SPRITE_YOUNGSTER, 3, 0, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x191eba, -1 diff --git a/maps/VermilionPokeCenter1F.asm b/maps/VermilionPokeCenter1F.asm index 2ca8e4d28..0ac63a69e 100644 --- a/maps/VermilionPokeCenter1F.asm +++ b/maps/VermilionPokeCenter1F.asm @@ -91,4 +91,4 @@ VermilionPokeCenter1F_MapEventHeader: person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x191603, -1 person_event SPRITE_FISHING_GURU, 2, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FishingGuruScript_0x191606, -1 person_event SPRITE_SAILOR, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 1, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, SailorScript_0x19161a, -1 - person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x19161d, -1 + person_event SPRITE_BUG_CATCHER, 5, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, BugCatcherScript_0x19161d, -1 diff --git a/maps/VictoryRoad.asm b/maps/VictoryRoad.asm index 2c7d332f5..e15f0c40c 100644 --- a/maps/VictoryRoad.asm +++ b/maps/VictoryRoad.asm @@ -264,8 +264,8 @@ VictoryRoad_MapEventHeader: .PersonEvents: db 6 person_event SPRITE_SILVER, 13, 18, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, 0, 0, 0, ObjectEvent, EVENT_RIVAL_VICTORY_ROAD - person_event SPRITE_POKE_BALL, 28, 3, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE - person_event SPRITE_POKE_BALL, 48, 12, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE - person_event SPRITE_POKE_BALL, 29, 18, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE - person_event SPRITE_POKE_BALL, 48, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL - person_event SPRITE_POKE_BALL, 38, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP + person_event SPRITE_POKE_BALL, 28, 3, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74529, EVENT_VICTORY_ROAD_TM_EARTHQUAKE + person_event SPRITE_POKE_BALL, 48, 12, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452b, EVENT_VICTORY_ROAD_MAX_REVIVE + person_event SPRITE_POKE_BALL, 29, 18, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452d, EVENT_VICTORY_ROAD_FULL_RESTORE + person_event SPRITE_POKE_BALL, 48, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7452f, EVENT_VICTORY_ROAD_FULL_HEAL + person_event SPRITE_POKE_BALL, 38, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x74531, EVENT_VICTORY_ROAD_HP_UP diff --git a/maps/VioletCity.asm b/maps/VioletCity.asm index 3b8555f36..6203ce87a 100644 --- a/maps/VioletCity.asm +++ b/maps/VioletCity.asm @@ -301,11 +301,11 @@ VioletCity_MapEventHeader: .PersonEvents: db 8 - person_event SPRITE_FISHER, 16, 13, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL - person_event SPRITE_LASS, 28, 28, SPRITEMOVEDATA_02, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a8403, -1 - person_event SPRITE_SUPER_NERD, 14, 24, SPRITEMOVEDATA_02, 2, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a8406, -1 + person_event SPRITE_FISHER, 16, 13, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, FisherScript_0x1a83bb, EVENT_VIOLET_CITY_EARL + person_event SPRITE_LASS, 28, 28, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x1a8403, -1 + person_event SPRITE_SUPER_NERD, 14, 24, SPRITEMOVEDATA_WANDER, 2, 1, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, SuperNerdScript_0x1a8406, -1 person_event SPRITE_GRAMPS, 20, 17, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrampsScript_0x1a8409, -1 - person_event SPRITE_YOUNGSTER, 18, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a840c, -1 - person_event SPRITE_FRUIT_TREE, 29, 14, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8425, -1 - person_event SPRITE_POKE_BALL, 1, 4, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP - person_event SPRITE_POKE_BALL, 5, 35, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY + person_event SPRITE_YOUNGSTER, 18, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a840c, -1 + person_event SPRITE_FRUIT_TREE, 29, 14, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 0, 0, FruitTreeScript_0x1a8425, -1 + person_event SPRITE_POKE_BALL, 1, 4, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8421, EVENT_VIOLET_CITY_PP_UP + person_event SPRITE_POKE_BALL, 5, 35, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x1a8423, EVENT_VIOLET_CITY_RARE_CANDY diff --git a/maps/VioletMart.asm b/maps/VioletMart.asm index 42b215d20..441c94855 100644 --- a/maps/VioletMart.asm +++ b/maps/VioletMart.asm @@ -62,4 +62,4 @@ VioletMart_MapEventHeader: db 3 person_event SPRITE_CLERK, 3, 1, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, 0, 0, 0, ClerkScript_0x68295, -1 person_event SPRITE_GRANNY, 6, 7, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, GrannyScript_0x6829c, -1 - person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_03, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x6829f, -1 + person_event SPRITE_COOLTRAINER_M, 2, 5, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, CooltrainerMScript_0x6829f, -1 diff --git a/maps/VioletOnixTradeHouse.asm b/maps/VioletOnixTradeHouse.asm index 8269c5ab6..f5872dcea 100644 --- a/maps/VioletOnixTradeHouse.asm +++ b/maps/VioletOnixTradeHouse.asm @@ -45,5 +45,5 @@ VioletOnixTradeHouse_MapEventHeader: .PersonEvents: db 2 - person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x6998d, -1 + person_event SPRITE_POKEFAN_M, 3, 2, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, PokefanMScript_0x6998d, -1 person_event SPRITE_YOUNGSTER, 5, 6, SPRITEMOVEDATA_WALK_UP_DOWN, 2, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x69990, -1 diff --git a/maps/VioletPokeCenter1F.asm b/maps/VioletPokeCenter1F.asm index e1357dd2b..fb11bd4a6 100644 --- a/maps/VioletPokeCenter1F.asm +++ b/maps/VioletPokeCenter1F.asm @@ -228,6 +228,6 @@ VioletPokeCenter1F_MapEventHeader: db 5 person_event SPRITE_NURSE, 1, 3, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 0, 0, NurseScript_0x694c9, -1 person_event SPRITE_GAMEBOY_KID, 6, 7, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, GameboyKidScript_0x69540, -1 - person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x69543, -1 + person_event SPRITE_GENTLEMAN, 4, 1, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, GentlemanScript_0x69543, -1 person_event SPRITE_YOUNGSTER, 1, 8, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, YoungsterScript_0x69546, -1 person_event SPRITE_SCIENTIST, 3, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, ScientistScript_0x694cc, EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER diff --git a/maps/ViridianCity.asm b/maps/ViridianCity.asm index eecc84915..7313b89eb 100644 --- a/maps/ViridianCity.asm +++ b/maps/ViridianCity.asm @@ -237,7 +237,7 @@ ViridianCity_MapEventHeader: .PersonEvents: db 4 - person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_02, 2, 2, -1, -1, 0, 0, 0, GrampsScript_0x1a9a4c, -1 + person_event SPRITE_GRAMPS, 5, 18, SPRITEMOVEDATA_WANDER, 2, 2, -1, -1, 0, 0, 0, GrampsScript_0x1a9a4c, -1 person_event SPRITE_GRAMPS, 8, 30, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrampsScript_0x1a9a61, -1 person_event SPRITE_FISHER, 23, 6, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, FisherScript_0x1a9a75, -1 - person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_02, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9a90, -1 + person_event SPRITE_YOUNGSTER, 21, 17, SPRITEMOVEDATA_WANDER, 3, 3, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungsterScript_0x1a9a90, -1 diff --git a/maps/ViridianNicknameSpeechHouse.asm b/maps/ViridianNicknameSpeechHouse.asm index f5a7597ad..45e489a60 100644 --- a/maps/ViridianNicknameSpeechHouse.asm +++ b/maps/ViridianNicknameSpeechHouse.asm @@ -74,5 +74,5 @@ ViridianNicknameSpeechHouse_MapEventHeader: db 4 person_event SPRITE_POKEFAN_M, 4, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_RED, 0, 0, PokefanMScript_0x9ae3a, -1 person_event SPRITE_LASS, 4, 5, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, LassScript_0x9ae3d, -1 - person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_16, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MoltresScript_0x9ae40, -1 - person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_16, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x9ae4a, -1 + person_event SPRITE_MOLTRES, 2, 5, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, MoltresScript_0x9ae40, -1 + person_event SPRITE_GROWLITHE, 3, 6, SPRITEMOVEDATA_POKEMON, 0, 2, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, GrowlitheScript_0x9ae4a, -1 diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index e95bd02ef..015692811 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -671,9 +671,9 @@ WarehouseEntrance_MapEventHeader: db 9 person_event SPRITE_SUPER_NERD, 31, 5, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 3, TrainerSupernerdEric, -1 person_event SPRITE_SUPER_NERD, 9, 6, SPRITEMOVEDATA_STANDING_UP, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 2, 2, TrainerSupernerdTeru, -1 - person_event SPRITE_SUPER_NERD, 27, 3, SPRITEMOVEDATA_0A, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacIssac, -1 + person_event SPRITE_SUPER_NERD, 27, 3, SPRITEMOVEDATA_SPINRANDOM_FAST, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 2, TrainerPokemaniacIssac, -1 person_event SPRITE_SUPER_NERD, 6, 2, SPRITEMOVEDATA_STANDING_RIGHT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 2, 3, TrainerPokemaniacDonald, -1 - person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE + person_event SPRITE_POKE_BALL, 25, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x7c306, EVENT_WAREHOUSE_ENTRANCE_COIN_CASE person_event SPRITE_GRAMPS, 11, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BROWN, 0, 0, GrampsScript_0x7c146, EVENT_WAREHOUSE_ENTRANCE_GRAMPS person_event SPRITE_SUPER_NERD, 14, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, OlderHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_OLDER_HAIRCUT_BROTHER person_event SPRITE_SUPER_NERD, 15, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, (1 << 3) | PAL_OW_GREEN, 0, 0, YoungerHaircutBrotherScript, EVENT_WAREHOUSE_ENTRANCE_YOUNGER_HAIRCUT_BROTHER diff --git a/maps/WhirlIslandB1F.asm b/maps/WhirlIslandB1F.asm index c429dde8e..5dc118841 100644 --- a/maps/WhirlIslandB1F.asm +++ b/maps/WhirlIslandB1F.asm @@ -62,9 +62,9 @@ WhirlIslandB1F_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE - person_event SPRITE_POKE_BALL, 18, 2, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS - person_event SPRITE_POKE_BALL, 23, 33, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM - person_event SPRITE_POKE_BALL, 8, 17, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET - person_event SPRITE_POKE_BALL, 26, 19, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE - person_event SPRITE_BOULDER, 26, 23, SPRITEMOVEDATA_19, 0, 0, -1, -1, 0, 0, 0, WhirlIslandB1FBoulder, -1 + person_event SPRITE_POKE_BALL, 13, 7, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c410, EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE + person_event SPRITE_POKE_BALL, 18, 2, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c412, EVENT_WHIRL_ISLAND_B1F_CARBOS + person_event SPRITE_POKE_BALL, 23, 33, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c414, EVENT_WHIRL_ISLAND_B1F_CALCIUM + person_event SPRITE_POKE_BALL, 8, 17, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c416, EVENT_WHIRL_ISLAND_B1F_NUGGET + person_event SPRITE_POKE_BALL, 26, 19, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c418, EVENT_WHIRL_ISLAND_B1F_ESCAPE_ROPE + person_event SPRITE_BOULDER, 26, 23, SPRITEMOVEDATA_STRENGTH_BOULDER, 0, 0, -1, -1, 0, 0, 0, WhirlIslandB1FBoulder, -1 diff --git a/maps/WhirlIslandB2F.asm b/maps/WhirlIslandB2F.asm index c657b90d2..0a5a4ed39 100644 --- a/maps/WhirlIslandB2F.asm +++ b/maps/WhirlIslandB2F.asm @@ -33,6 +33,6 @@ WhirlIslandB2F_MapEventHeader: .PersonEvents: db 3 - person_event SPRITE_POKE_BALL, 11, 10, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE - person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE - person_event SPRITE_POKE_BALL, 12, 5, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER + person_event SPRITE_POKE_BALL, 11, 10, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4b8, EVENT_WHIRL_ISLAND_B2F_FULL_RESTORE + person_event SPRITE_POKE_BALL, 4, 6, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4ba, EVENT_WHIRL_ISLAND_B2F_MAX_REVIVE + person_event SPRITE_POKE_BALL, 12, 5, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c4bc, EVENT_WHIRL_ISLAND_B2F_MAX_ELIXER diff --git a/maps/WhirlIslandLugiaChamber.asm b/maps/WhirlIslandLugiaChamber.asm index 4650dd053..e3c192a09 100644 --- a/maps/WhirlIslandLugiaChamber.asm +++ b/maps/WhirlIslandLugiaChamber.asm @@ -59,4 +59,4 @@ WhirlIslandLugiaChamber_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_LUGIA, 5, 9, SPRITEMOVEDATA_16, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA + person_event SPRITE_LUGIA, 5, 9, SPRITEMOVEDATA_POKEMON, 0, 0, -1, -1, (1 << 3) | PAL_OW_BLUE, 0, 0, LugiaScript_0x18c518, EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA diff --git a/maps/WhirlIslandNE.asm b/maps/WhirlIslandNE.asm index e9d6c515a..25566611c 100644 --- a/maps/WhirlIslandNE.asm +++ b/maps/WhirlIslandNE.asm @@ -26,4 +26,4 @@ WhirlIslandNE_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 11, 11, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL + person_event SPRITE_POKE_BALL, 11, 11, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c396, EVENT_WHIRL_ISLAND_NE_ULTRA_BALL diff --git a/maps/WhirlIslandSW.asm b/maps/WhirlIslandSW.asm index 533c084fc..01b09e319 100644 --- a/maps/WhirlIslandSW.asm +++ b/maps/WhirlIslandSW.asm @@ -28,4 +28,4 @@ WhirlIslandSW_MapEventHeader: .PersonEvents: db 1 - person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_01, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL + person_event SPRITE_POKE_BALL, 2, 15, SPRITEMOVEDATA_ITEM_TREE, 0, 0, -1, -1, 0, 1, 0, ItemFragment_0x18c3bc, EVENT_WHIRL_ISLAND_SW_ULTRA_BALL diff --git a/maps/WiseTriosRoom.asm b/maps/WiseTriosRoom.asm index 9a0a68010..d51462ca2 100644 --- a/maps/WiseTriosRoom.asm +++ b/maps/WiseTriosRoom.asm @@ -360,7 +360,7 @@ WiseTriosRoom_MapEventHeader: .PersonEvents: db 6 - person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_03, 0, 0, -1, -1, 0, 0, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 + person_event SPRITE_SAGE, 2, 6, SPRITEMOVEDATA_SPINRANDOM_SLOW, 0, 0, -1, -1, 0, 0, 0, SageScript_0x9859a, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 person_event SPRITE_SAGE, 7, 6, SPRITEMOVEDATA_WALK_LEFT_RIGHT, 0, 1, -1, -1, 0, 0, 0, SageScript_0x9859d, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 person_event SPRITE_SAGE, 5, 7, SPRITEMOVEDATA_STANDING_LEFT, 0, 0, -1, -1, 0, 0, 0, SageScript_0x985a0, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_1 person_event SPRITE_SAGE, 2, 4, SPRITEMOVEDATA_STANDING_DOWN, 0, 0, -1, -1, 0, 2, 2, TrainerSageGaku, EVENT_WISE_TRIOS_ROOM_WISE_TRIO_2 -- cgit v1.2.3 From d8aa438644e86fe7421ad8721fa9b9275ed62023 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 6 Nov 2015 20:55:16 -0500 Subject: More battle command labels --- battle/ai/scoring.asm | 16 +- battle/anim_commands.asm | 8 +- battle/core.asm | 74 ++-- battle/effect_command_pointers.asm | 6 +- battle/effect_commands.asm | 752 +++++++++++++++++++------------------ battle/effects/curse.asm | 20 +- battle/effects/metronome.asm | 6 +- battle/effects/mirror_move.asm | 4 +- battle/moves/move_effects.asm | 94 ++--- constants/battle_constants.asm | 4 + engine/predef.asm | 2 +- items/item_effects.asm | 8 +- macros/move_effect.asm | 6 +- wram.asm | 3 +- 14 files changed, 510 insertions(+), 493 deletions(-) diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 1b2da2f42..bd8ef20ca 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -176,7 +176,7 @@ AI_Types: ; 38635 push de ld a, 1 ld [hBattleTurn], a - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup pop de pop bc pop hl @@ -431,7 +431,7 @@ AI_Smart_LeechHit: ; 387f7 push hl ld a, 1 ld [hBattleTurn], a - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup pop hl ; 60% chance to discourage this move if not very effective. @@ -512,7 +512,7 @@ AI_Smart_LockOn: ; 3881d push hl push bc - callba HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callba BattleCheckTypeMatchup ld a, [wd265] cp $a pop bc @@ -1384,7 +1384,7 @@ AI_Smart_Mimic: ; 38ba8 ld a, $1 ld [hBattleTurn], a - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup ld a, [wd265] cp $a @@ -1504,7 +1504,7 @@ AI_Smart_Encore: ; 38c3b push hl ld a, [wEnemyMoveStruct + MOVE_TYPE] ld hl, EnemyMonType1 - predef Function347d3 + predef CheckTypeMatchup pop hl ld a, [wd265] @@ -1830,7 +1830,7 @@ AI_Smart_Conversion2: ; 38d98 xor a ld [hBattleTurn], a - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup ld a, [wd265] cp $a @@ -2496,7 +2496,7 @@ AI_Smart_HiddenPower: ; 3909e ; Calculate Hidden Power's type and base power based on enemy's DVs. callab HiddenPowerDamage - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup pop hl ; Discourage Hidden Power if not very effective. @@ -3498,7 +3498,7 @@ AI_Status: ; 39453 push de ld a, 1 ld [hBattleTurn], a - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup pop de pop bc pop hl diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index b6dff896c..96bd1c45b 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -498,7 +498,7 @@ endr ret BattleAnimCmd_EF: ; cc383 (33:4383) - ld hl, wc689 + ld hl, wKickCounter ld a, [hl] and a jr z, .asm_cc39a @@ -568,7 +568,7 @@ endr BattleAnimCmd_F8: ; cc3d6 (33:43d6) call GetBattleAnimByte - ld hl, wc689 + ld hl, wKickCounter cp [hl] jr z, .jump @@ -598,7 +598,7 @@ endr BattleAnimCmd_EE: ; cc3fa (33:43fa) call GetBattleAnimByte ld e, a - ld a, [wc689] + ld a, [wKickCounter] and e jr nz, .jump @@ -1150,7 +1150,7 @@ BattleAnimCmd_E6: ; cc776 (33:4776) ld a, [CurPartySpecies] ; CurPartySpecies push af - ld a, [wc689] + ld a, [wKickCounter] ld [CurPartySpecies], a ; CurPartySpecies ld a, [hBattleTurn] ; $ff00+$e4 diff --git a/battle/core.asm b/battle/core.asm index 18cb3c2fd..93a39d6d4 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -424,7 +424,7 @@ Function3c27c: ; 3c27c call GetItemName ld hl, BattleText_UsersStringBuffer1Activated call StdBattleTextBox - callab BattleCommand_StatMessageUser + callab BattleCommand_StatUpMessage pop af bit SUBSTATUS_CONFUSED, a ret nz @@ -1133,7 +1133,7 @@ ResidualDamage: ; 3c716 ld c, l .did_toxic - call Function3cc3f + call SubtractHPFromUser .did_psn_brn call HasUserFainted @@ -1155,7 +1155,7 @@ ResidualDamage: ; 3c716 call SwitchTurnCore call GetEighthMaxHP - call Function3cc3f + call SubtractHPFromUser ld a, $1 ld [hBGMapMode], a call Function3ccef @@ -1175,7 +1175,7 @@ ResidualDamage: ; 3c716 ld de, ANIM_IN_NIGHTMARE call Function3ee0f call GetQuarterMaxHP - call Function3cc3f + call SubtractHPFromUser ld hl, HasANightmareText call StdBattleTextBox .asm_3c7c5 @@ -1193,7 +1193,7 @@ ResidualDamage: ; 3c716 ld de, ANIM_IN_NIGHTMARE call Function3ee0f call GetQuarterMaxHP - call Function3cc3f + call SubtractHPFromUser ld hl, HurtByCurseText call StdBattleTextBox @@ -1334,7 +1334,7 @@ Function3c874: ; 3c874 .asm_3c8d3 call GetSixteenthMaxHP - call Function3cc3f + call SubtractHPFromUser ld hl, BattleText_UsersHurtByStringBuffer1 jr .asm_3c8e1 @@ -1827,7 +1827,7 @@ HandleWeather: ; 3cb9e call Call_PlayBattleAnim call SwitchTurnCore call GetEighthMaxHP - call Function3cc3f + call SubtractHPFromUser ld hl, SandstormHitsText jp StdBattleTextBox @@ -1863,19 +1863,19 @@ endr dw BattleText_TheSandstormSubsided ; 3cc39 -Function3cc39: ; 3cc39 - call Function3cc45 +SubtractHPFromTarget: ; 3cc39 + call SubtractHP jp Function3cd3c ; 3cc3f -Function3cc3f: ; 3cc3f +SubtractHPFromUser: ; 3cc3f ; Subtract HP from Pkmn - call Function3cc45 + call SubtractHP jp Function3cd36 ; 3cc45 -Function3cc45: ; 3cc45 +SubtractHP: ; 3cc45 ld hl, BattleMonHP ld a, [hBattleTurn] and a @@ -3480,7 +3480,7 @@ LookUpTheEffectivenessOfEveryMove: ; 3d5d7 ld a, BANK(Moves) call FarCopyBytes call SetEnemyTurn - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup pop bc pop de pop hl @@ -3516,13 +3516,13 @@ IsThePlayerPkmnTypesEffectiveAgainstOTPkmn: ; 3d618 ld a, [BattleMonType1] ld [wPlayerMoveStruct + MOVE_TYPE], a call SetPlayerTurn - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup ld a, [wd265] cp 10 + 1 ; 1.0 + 0.1 jr nc, .asm_3d663 ld a, [BattleMonType2] ld [wPlayerMoveStruct + MOVE_TYPE], a - callab HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + callab BattleCheckTypeMatchup ld a, [wd265] cp 10 + 1 ; 1.0 + 0.1 jr nc, .asm_3d663 @@ -3749,7 +3749,7 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 xor a ld [wcfca], a - ld [wc689], a + ld [wKickCounter], a call SetEnemyTurn ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim @@ -3757,7 +3757,7 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 call BattleCheckEnemyShininess jr nc, .asm_3d800 ld a, 1 ; shiny anim - ld [wc689], a + ld [wKickCounter], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim .asm_3d800 @@ -3811,8 +3811,8 @@ endr ; 3d867 ResetEnemyStatLevels: ; 3d867 - ld a, 7 - ld b, 8 + ld a, BASE_STAT_LEVEL + ld b, NUM_LEVEL_STATS ld hl, EnemyStatLevels .loop ld [hli], a @@ -4142,8 +4142,8 @@ GetEnemyMonDVs: ; 3da97 ; 3dab1 ResetPlayerStatLevels: ; 3dab1 - ld a, 7 - ld b, 8 + ld a, BASE_STAT_LEVEL + ld b, NUM_LEVEL_STATS ld hl, PlayerStatLevels .loop ld [hli], a @@ -4255,13 +4255,13 @@ Function3db5f: ; 3db5f call SetPlayerTurn xor a ld [wcfca], a - ld [wc689], a + ld [wKickCounter], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim call BattleCheckPlayerShininess jr nc, .asm_3dbbc ld a, $1 - ld [wc689], a + ld [wKickCounter], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim @@ -4351,7 +4351,7 @@ SpikesDamage: ; 3dc23 call StdBattleTextBox call GetEighthMaxHP - call Function3cc39 + call SubtractHPFromTarget pop hl call .hl @@ -4627,15 +4627,15 @@ Function3dde9: ; 3dde9 res SUBSTATUS_CONFUSED, [hl] .asm_3de26 - ld hl, Function365fd + ld hl, CalcEnemyStats ld a, [hBattleTurn] and a jr z, .asm_3de31 - ld hl, Function365d7 + ld hl, CalcPlayerStats .asm_3de31 call SwitchTurnCore - ld a, BANK(Function365fd) + ld a, BANK(CalcEnemyStats) rst FarCall call SwitchTurnCore call Function3ddc8 @@ -4761,7 +4761,7 @@ endr call GetItemName ld hl, BattleText_UsersStringBuffer1Activated call StdBattleTextBox - callab BattleCommand_StatMessageUser + callab BattleCommand_StatUpMessage ret .asm_3def9 @@ -6170,18 +6170,18 @@ Function3e7c1: ; 3e7c1 call SetEnemyTurn callab UpdateMoveData call CheckSubstatus_RechargeChargedRampageBideRollout - jr nz, .asm_3e894 + jr nz, .raging xor a ld [wc733], a -.asm_3e894 +.raging ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_FURY_CUTTER - jr z, .asm_3e89f + jr z, .fury_cutter xor a ld [EnemyFuryCutterCount], a -.asm_3e89f +.fury_cutter ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_RAGE jr z, .asm_3e8af @@ -6929,11 +6929,11 @@ Function3ec30: ; 3ec30 Function3ec31: ; 3ec31 ld [hBattleTurn], a - call Function3ec39 - jp Function3ec76 + call ApplyPrzEffectOnSpeed + jp ApplyBrnEffectOnAttack ; 3ec39 -Function3ec39: ; 3ec39 +ApplyPrzEffectOnSpeed: ; 3ec39 ld a, [hBattleTurn] and a jr z, .asm_3ec5a @@ -6979,7 +6979,7 @@ Function3ec39: ; 3ec39 ret ; 3ec76 -Function3ec76: ; 3ec76 +ApplyBrnEffectOnAttack: ; 3ec76 ld a, [hBattleTurn] and a jr z, .asm_3ec93 @@ -9547,7 +9547,7 @@ BattleStartMessage: ; 3fc8b ld a, 1 ld [hBattleTurn], a ld a, 1 - ld [wc689], a + ld [wKickCounter], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm index 530578439..f355ffc83 100644 --- a/battle/effect_command_pointers.asm +++ b/battle/effect_command_pointers.asm @@ -11,7 +11,7 @@ BattleCommandPointers: ; 3fd28 dw BattleCommand_DamageVariation ; 34cfd dw BattleCommand_CheckHit ; 34d32 dw BattleCommand_LowerSub ; 34eee - dw BattleCommand0b ; 34f60 + dw BattleCommand_HitTargetNoSub ; 34f60 dw BattleCommand_RaiseSub ; 35004 dw BattleCommand_ResultText ; 35023 dw BattleCommand_CheckFaint ; 3505e @@ -140,8 +140,8 @@ BattleCommandPointers: ; 3fd28 dw BattleCommand_SpecialDefenseDown2 ; 362d9 dw BattleCommand_AccuracyDown2 ; 362dd dw BattleCommand_EvasionDown2 ; 362e1 - dw BattleCommand_StatMessageUser ; 363b8 - dw BattleCommand_StatMessageTarget ; 363e9 + dw BattleCommand_StatUpMessage ; 363b8 + dw BattleCommand_StatDownMessage ; 363e9 dw BattleCommand_StatUpFailText ; 3644c dw BattleCommand_StatDownFailText ; 3646a dw BattleCommand_EffectChance ; 34ecc diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index b782ee62c..2239385f3 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -133,7 +133,7 @@ BattleCommand_CheckTurn: ; 34084 xor a ld [AttackMissed], a ld [EffectFailed], a - ld [wc689], a + ld [wKickCounter], a ld [AlreadyDisobeyed], a ld [AlreadyFailed], a ld [wc73e], a @@ -635,7 +635,7 @@ MoveDisabled: ; 3438d ld a, BATTLE_VARS_MOVE call GetBattleVar - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetMoveName ld hl, DisabledMoveText @@ -1058,7 +1058,7 @@ BattleCommand_DoTurn: ; 34555 and 1 << SUBSTATUS_IN_LOOP | 1 << SUBSTATUS_RAMPAGE | 1 << SUBSTATUS_BIDE ret nz - call .asm_345ad + call .consume_pp ld a, b and a jp nz, EndMoveEffect @@ -1077,24 +1077,24 @@ endr ld hl, PartyMon1PP ld a, [CurBattleMon] - jr z, .asm_345a4 + jr z, .player ; skip this part entirely if wildbattle ld a, [wBattleMode] dec a - jr z, .asm_345c5 + jr z, .wild ld hl, OTPartyMon1PP ld a, [CurOTMon] -.asm_345a4 +.player call GetPartyLocation push hl call Function3460b pop hl ret c -.asm_345ad +.consume_pp ld a, [hBattleTurn] and a ld a, [CurMoveNum] @@ -1112,7 +1112,7 @@ endr ld b, 0 ret -.asm_345c5 +.wild ld hl, EnemyMonMoves ld a, [CurEnemyMoveNum] ld c, a @@ -1129,7 +1129,7 @@ endr .mimic ld hl, wCaughtMonPP - call .asm_345ad + call .consume_pp ret .asm_345e3 @@ -1169,10 +1169,10 @@ Function3460b: ; 3460b ld a, [hBattleTurn] and a ld a, [CurMoveNum] - jr z, .asm_34616 + jr z, .player ld a, [CurEnemyMoveNum] -.asm_34616 +.player ld c, a ld a, 2 call UserPartyAttr @@ -1300,7 +1300,7 @@ endr BattleCommand_TripleKick: ; 346b2 ; triplekick - ld a, [wc689] + ld a, [wKickCounter] ld b, a inc b ld hl, CurDamage + 1 @@ -1308,7 +1308,7 @@ BattleCommand_TripleKick: ; 346b2 ld e, a ld a, [hli] ld d, a -.asm_346be +.next_kick dec b ret z ld a, [hl] @@ -1319,7 +1319,7 @@ BattleCommand_TripleKick: ; 346b2 ld [hli], a ; No overflow. - jr nc, .asm_346be + jr nc, .next_kick ld a, $ff ld [hld], a ld [hl], a @@ -1330,7 +1330,7 @@ BattleCommand_TripleKick: ; 346b2 BattleCommand_KickCounter: ; 346cd ; kickcounter - ld hl, wc689 + ld hl, wKickCounter inc [hl] ret ; 346d2 @@ -1368,7 +1368,7 @@ BattleCommand_Stab: ; 346d2 .go ld a, BATTLE_VARS_MOVE_TYPE call GetBattleVarAddr - ld [wd265], a + ld [wTypeMatchup], a push hl push de @@ -1384,7 +1384,7 @@ BattleCommand_Stab: ; 346d2 pop bc pop de - ld a, [wd265] + ld a, [wTypeMatchup] cp b jr z, .stab cp c @@ -1512,29 +1512,29 @@ endr jr .TypesLoop .end - call HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn - ld a, [wd265] + call BattleCheckTypeMatchup + ld a, [wTypeMatchup] ld b, a ld a, [TypeModifier] - and $80 + and %10000000 or b ld [TypeModifier], a ret ; 347c8 -HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn: ; 347c8 +BattleCheckTypeMatchup: ; 347c8 ld hl, EnemyMonType1 ld a, [hBattleTurn] and a - jr z, Function347d3 + jr z, CheckTypeMatchup ld hl, BattleMonType1 ; fallthrough ; 347d3 -Function347d3: ; 347d3 +CheckTypeMatchup: ; 347d3 push hl push de push bc @@ -1545,7 +1545,7 @@ Function347d3: ; 347d3 inc hl ld c, [hl] ld a, 10 ; 1.0 - ld [wd265], a + ld [wTypeMatchup], a ld hl, TypeMatchup .TypesLoop ld a, [hli] @@ -1579,7 +1579,7 @@ Function347d3: ; 347d3 ld [hMultiplicand + 1], a ld a, [hli] ld [hMultiplicand + 2], a - ld a, [wd265] + ld a, [wTypeMatchup] ld [hMultiplier], a call Multiply ld a, 10 @@ -1589,7 +1589,7 @@ Function347d3: ; 347d3 call Divide pop bc ld a, [hQuotient + 2] - ld [wd265], a + ld [wTypeMatchup], a jr .TypesLoop .End @@ -1601,8 +1601,8 @@ Function347d3: ; 347d3 BattleCommanda3: ; 34833 - call HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn - ld a, [wd265] + call BattleCheckTypeMatchup + ld a, [wTypeMatchup] and a ld a, 10 ; 1.0 jr nz, .skip @@ -1612,8 +1612,9 @@ BattleCommanda3: ; 34833 inc a ld [AttackMissed], a ret + .skip - ld [wd265], a + ld [wTypeMatchup], a ret ; 3484e @@ -1645,8 +1646,8 @@ Function3484e: ; 3484e inc hl call GetMoveByte ld hl, EnemyMonType - call Function347d3 - ld a, [wd265] + call CheckTypeMatchup + ld a, [wTypeMatchup] cp 10 + 1 ; 1.0 + 0.1 jr nc, .super_effective and a @@ -1690,8 +1691,8 @@ Function3484e: ; 3484e ld a, [BattleMonType1] ld b, a ld hl, EnemyMonType1 - call Function347d3 - ld a, [wd265] + call CheckTypeMatchup + ld a, [wTypeMatchup] cp 10 + 1 ; 1.0 + 0.1 jr c, .ok call Function34931 @@ -1699,8 +1700,8 @@ Function3484e: ; 3484e ld a, [BattleMonType2] cp b jr z, .ok2 - call Function347d3 - ld a, [wd265] + call CheckTypeMatchup + ld a, [wTypeMatchup] cp 10 + 1 ; 1.0 + 0.1 jr c, .ok2 call Function34931 @@ -1720,7 +1721,7 @@ Function348de: ; 348de ld b, NUM_MOVES + 1 ld c, 0 - ld a, [wd265] + ld a, [wTypeMatchup] push af .loop dec b @@ -1740,9 +1741,9 @@ Function348de: ; 348de inc hl call GetMoveByte ld hl, BattleMonType1 - call Function347d3 + call CheckTypeMatchup - ld a, [wd265] + ld a, [wTypeMatchup] ; immune and a jr z, .loop @@ -1765,7 +1766,7 @@ endr .exit pop af - ld [wd265], a + ld [wTypeMatchup], a ld a, c and a @@ -2008,8 +2009,8 @@ Function34a2a: ; 34a2a inc hl call GetMoveByte ld hl, BaseType - call Function347d3 - ld a, [wd265] + call CheckTypeMatchup + ld a, [wTypeMatchup] and a jr nz, .asm_34a77 @@ -2098,8 +2099,8 @@ Function34aa7: ; 34aa7 inc hl call GetMoveByte ld hl, BattleMonType1 - call Function347d3 - ld a, [wd265] + call CheckTypeMatchup + ld a, [wTypeMatchup] cp 10 jr c, .asm_34ae9 @@ -2195,16 +2196,16 @@ Function34b20: ; 34b20 .asm_34b4a ld a, [BattleMonType1] ld hl, BaseType - call Function347d3 - ld a, [wd265] + call CheckTypeMatchup + ld a, [wTypeMatchup] cp $b jr nc, .asm_34b6d ld a, [BattleMonType2] .asm_34b5d ld hl, BaseType - call Function347d3 - ld a, [wd265] + call CheckTypeMatchup + ld a, [wTypeMatchup] cp $b jr nc, .asm_34b6d @@ -2732,9 +2733,9 @@ BattleCommand_LowerSub: ; 34eee ld [wcfca], a ld [FXAnimIDHi], a inc a - ld [wc689], a + ld [wKickCounter], a ld a, SUBSTITUTE - jp Function37e44 + jp PlayMoveAnim_KeepHiID .asm_34f36 call BattleCommanda7 @@ -2764,12 +2765,12 @@ BattleCommand_LowerSub: ; 34eee BattleCommand_HitTarget: ; 34f57 ; hittarget call BattleCommand_LowerSub - call BattleCommand0b + call BattleCommand_HitTargetNoSub jp BattleCommand_RaiseSub ; 34f60 -BattleCommand0b: ; 34f60 +BattleCommand_HitTargetNoSub: ; 34f60 ld a, [AttackMissed] and a jp nz, BattleCommand_MoveDelay @@ -2797,7 +2798,7 @@ BattleCommand0b: ; 34f60 cp EFFECT_TRIPLE_KICK jr z, .triplekick xor a - ld [wc689], a + ld [wKickCounter], a .triplekick @@ -2818,10 +2819,10 @@ BattleCommand0b: ; 34f60 ; clear sprite jp Function37ec7 .multihit_conversion_doublehit_twineedle - ld a, [wc689] + ld a, [wKickCounter] and 1 xor 1 - ld [wc689], a + ld [wKickCounter], a ld a, [de] cp $1 push af @@ -2865,7 +2866,7 @@ BattleCommand_StatDownAnim: ; 34fdb BattleCommand_StatUpDownAnim: ; 34feb ld [wcfca], a xor a - ld [wc689], a + ld [wKickCounter], a ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar ld e, a @@ -2899,9 +2900,9 @@ BattleCommand_RaiseSub: ; 35004 ld [wcfca], a ld [FXAnimIDHi], a ld a, $2 - ld [wc689], a + ld [wKickCounter], a ld a, SUBSTITUTE - jp Function37e44 + jp PlayMoveAnim_KeepHiID ; 35023 @@ -2998,7 +2999,7 @@ BattleCommand_CheckFaint: ; 3505e .asm_350ab call GetOpponentItem ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetItemName ld hl, HungOnText @@ -3085,8 +3086,8 @@ Function350e4: ; 350e4 ld hl, CrashedText call StdBattleTextBox ld a, $1 - ld [wc689], a - call Function37e36 + ld [wKickCounter], a + call PlayPlayerMoveAnim_ClearHiID ld c, $1 ld a, [hBattleTurn] and a @@ -3252,9 +3253,9 @@ BattleCommand_CheckDestinyBond: ; 351c0 ld [wcfca], a ld [FXAnimIDHi], a inc a - ld [wc689], a - ld a, $c2 - call Function37e44 + ld [wKickCounter], a + ld a, DESTINY_BOND + call PlayMoveAnim_KeepHiID call BattleCommand_SwitchTurn jr .asm_3524d ; 3522f $1c @@ -3750,44 +3751,47 @@ BattleCommand_BeatUp: ; 35461 call ResetDamage ld a, [hBattleTurn] and a - jp nz, .asm_354ef + jp nz, .enemy_beats_up ld a, [PlayerSubStatus3] bit SUBSTATUS_IN_LOOP, a - jr nz, .asm_35482 + jr nz, .next_mon ld c, 20 call DelayFrames xor a ld [PlayerRolloutCount], a ld [DefaultFlypoint], a ld [wc72d], a - jr .asm_3548d -.asm_35482 + jr .got_mon + +.next_mon ld a, [PlayerRolloutCount] ld b, a ld a, [PartyCount] sub b ld [DefaultFlypoint], a -.asm_3548d + +.got_mon ld a, [DefaultFlypoint] ld hl, PartyMonNicknames call GetNick - ld a, $22 - call Function355bd + ld a, MON_HP + call GetBeatupMonLocation ld a, [hli] or [hl] - jp z, Function355b0 + jp z, .beatup_fail ; fainted ld a, [DefaultFlypoint] ld c, a ld a, [CurBattleMon] cp [hl] ld hl, BattleMonStatus - jr z, .asm_354b2 - ld a, $20 - call Function355bd -.asm_354b2 + jr z, .active_mon + ld a, MON_STATUS + call GetBeatupMonLocation +.active_mon ld a, [hl] and a - jp nz, Function355b0 + jp nz, .beatup_fail + ld a, $1 ld [wc72d], a ld hl, BeatUpAttackText @@ -3798,8 +3802,8 @@ BattleCommand_BeatUp: ; 35461 ld a, [BaseDefense] ld c, a push bc - ld a, $0 - call Function355bd + ld a, MON_SPECIES + call GetBeatupMonLocation ld a, [hl] ld [CurSpecies], a call GetBaseData @@ -3807,8 +3811,8 @@ BattleCommand_BeatUp: ; 35461 pop bc ld b, a push bc - ld a, $1f - call Function355bd + ld a, MON_LEVEL + call GetBeatupMonLocation ld a, [hl] ld e, a pop bc @@ -3816,35 +3820,35 @@ BattleCommand_BeatUp: ; 35461 ld d, a ret -.asm_354ef +.enemy_beats_up ld a, [EnemySubStatus3] bit SUBSTATUS_IN_LOOP, a - jr nz, .asm_35502 + jr nz, .not_first_enemy_beatup xor a ld [EnemyRolloutCount], a ld [DefaultFlypoint], a ld [wc72d], a - jr .asm_3550d + jr .enemy_continue -.asm_35502 +.not_first_enemy_beatup ld a, [EnemyRolloutCount] ld b, a ld a, [OTPartyCount] sub b ld [DefaultFlypoint], a -.asm_3550d +.enemy_continue ld a, [wBattleMode] dec a - jr z, .asm_3556b + jr z, .wild ld a, [wLinkMode] and a - jr nz, .asm_35532 + jr nz, .link_or_tower ld a, [InBattleTowerBattle] and a - jr nz, .asm_35532 + jr nz, .link_or_tower ld a, [DefaultFlypoint] ld c, a @@ -3852,49 +3856,50 @@ BattleCommand_BeatUp: ; 35461 ld hl, OTPartySpecies add hl, bc ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetPokemonName - jr .asm_35544 + jr .got_enemy_nick -.asm_35532 +.link_or_tower ld a, [DefaultFlypoint] ld hl, OTPartyMonNicknames ld bc, NAME_LENGTH call AddNTimes ld de, StringBuffer1 call CopyBytes -.asm_35544 - ld a, $22 - call Function355bd +.got_enemy_nick + ld a, MON_HP + call GetBeatupMonLocation ld a, [hli] or [hl] - jp z, Function355b0 + jp z, .beatup_fail ld a, [DefaultFlypoint] ld b, a ld a, [CurOTMon] cp b ld hl, EnemyMonStatus - jr z, .asm_35560 + jr z, .active_enemy - ld a, $20 - call Function355bd -.asm_35560 + ld a, MON_STATUS + call GetBeatupMonLocation +.active_enemy ld a, [hl] and a - jr nz, Function355b0 + jr nz, .beatup_fail ld a, $1 ld [wc72d], a - jr .asm_3557d + jr .finish_beatup -.asm_3556b +.wild ld a, [EnemyMonSpecies] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetPokemonName ld hl, BeatUpAttackText call StdBattleTextBox jp EnemyAttackDamage -.asm_3557d + +.finish_beatup ld hl, BeatUpAttackText call StdBattleTextBox ld a, [BattleMonSpecies] @@ -3903,8 +3908,8 @@ BattleCommand_BeatUp: ; 35461 ld a, [BaseDefense] ld c, a push bc - ld a, $0 - call Function355bd + ld a, MON_SPECIES + call GetBeatupMonLocation ld a, [hl] ld [CurSpecies], a call GetBaseData @@ -3912,8 +3917,8 @@ BattleCommand_BeatUp: ; 35461 pop bc ld b, a push bc - ld a, $1f - call Function355bd + ld a, MON_LEVEL + call GetBeatupMonLocation ld a, [hl] ld e, a pop bc @@ -3923,7 +3928,7 @@ BattleCommand_BeatUp: ; 35461 ; 355b0 -Function355b0: ; 355b0 +.beatup_fail: ; 355b0 ld b, buildopponentrage_command jp SkipToBattleCommand ; 355b5 @@ -3938,7 +3943,7 @@ BattleCommanda8: ; 355b5 ; 355bd -Function355bd: ; 355bd +GetBeatupMonLocation: ; 355bd push bc ld c, a ld b, 0 @@ -4445,7 +4450,7 @@ BattleCommand_Counter: ; 35813 ret z call BattleCommanda3 - ld a, [wd265] + ld a, [wTypeMatchup] and a ret z @@ -4775,18 +4780,18 @@ BattleCommand_Conversion2: ; 359e6 push hl ld a, d ld [hl], a - call HowEffectiveIsTheMovetypeAgainstTheEnemyPkmn + call BattleCheckTypeMatchup pop hl pop af ld [hl], a pop hl - ld a, [wd265] - cp $a + ld a, [wTypeMatchup] + cp 10 jr nc, .asm_35a13 call BattleCommand_SwitchTurn ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a predef GetTypeName ld hl, TransformedTypeText jp StdBattleTextBox @@ -4852,7 +4857,7 @@ BattleCommand_Sketch: ; 35a74 .asm_35aa5 ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar - ld [wd265], a + ld [wTypeMatchup], a ld b, a and a jr z, .asm_35b10 @@ -5009,13 +5014,13 @@ BattleCommand_SleepTalk: ; 35b33 ld [hl], a call Function34548 jr nz, .asm_35b9a - ld a, [wc689] + ld a, [wKickCounter] push af call BattleCommand_LowerSub pop af - ld [wc689], a + ld [wKickCounter], a .asm_35b9a - call Function37e36 + call PlayPlayerMoveAnim_ClearHiID call UpdateMoveData jp ResetTurn .asm_35ba3 @@ -5138,7 +5143,7 @@ BattleCommand_Spite: ; 35c0f ld a, [hli] cp b jr nz, .asm_35c33 - ld [wd265], a + ld [wTypeMatchup], a dec hl ld b, 0 push bc @@ -5192,7 +5197,7 @@ endr call AnimateCurrentMove pop de ld a, d - ld [wd265], a + ld [wTypeMatchup], a ld hl, SpiteEffectText jp StdBattleTextBox .asm_35c91 @@ -5276,8 +5281,8 @@ BattleCommand_HealBell: ; 35cc9 ld a, [hBattleTurn] and a - jp z, Function365d7 - jp Function365fd + jp z, CalcPlayerStats + jp CalcEnemyStats ; 35d00 @@ -5495,8 +5500,8 @@ UpdateMoveData: ; 35e40 ld a, BATTLE_VARS_MOVE call GetBattleVar - ld [CurSpecies], a ; not CurSpecies - ld [wd265], a + ld [CurMove], a + ld [wNamedObjectIndexBuffer], a dec a call GetMoveData @@ -5514,7 +5519,7 @@ BattleCommand_SleepTarget: ; 35e5c jr nz, .asm_35e70 ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetItemName ld hl, ProtectedByText jr .asm_35ec6 @@ -5633,7 +5638,7 @@ BattleCommand_PoisonTarget: ; 35eee ret nz call Function35ff5 ld de, ANIM_PSN - call Function37e54 + call PlayOpponentBattleAnim call RefreshBattleHuds ld hl, WasPoisonedText @@ -5667,7 +5672,7 @@ BattleCommand_Poison: ; 35f2c cp HELD_PREVENT_POISON jr nz, .asm_35f5f ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetItemName ld hl, ProtectedByText jr .asm_35fb8 @@ -5909,10 +5914,10 @@ BattleCommand_BurnTarget: ; 3608c call GetBattleVarAddr set BRN, [hl] call UpdateOpponentInParty - ld hl, Function3ec76 + ld hl, ApplyBrnEffectOnAttack call CallBattleCore ld de, ANIM_BRN - call Function37e54 + call PlayOpponentBattleAnim call RefreshBattleHuds ld hl, WasBurnedText @@ -5983,7 +5988,7 @@ BattleCommand_FreezeTarget: ; 36102 set FRZ, [hl] call UpdateOpponentInParty ld de, ANIM_FRZ - call Function37e54 + call PlayOpponentBattleAnim call RefreshBattleHuds ld hl, WasFrozenText @@ -6031,10 +6036,10 @@ BattleCommand_ParalyzeTarget: ; 36165 call GetBattleVarAddr set PAR, [hl] call UpdateOpponentInParty - ld hl, Function3ec39 + ld hl, ApplyPrzEffectOnSpeed call CallBattleCore ld de, ANIM_PAR - call Function37e54 + call PlayOpponentBattleAnim call RefreshBattleHuds call PrintParalyze ld hl, Function3dde9 @@ -6044,59 +6049,59 @@ BattleCommand_ParalyzeTarget: ; 36165 BattleCommand_AttackUp: ; 361ac ; attackup - ld b, $0 + ld b, ATTACK jr BattleCommand_StatUp BattleCommand_DefenseUp: ; 361b0 ; defenseup - ld b, $1 + ld b, DEFENSE jr BattleCommand_StatUp BattleCommand_SpeedUp: ; 361b4 ; speedup - ld b, $2 + ld b, SPEED jr BattleCommand_StatUp BattleCommand_SpecialAttackUp: ; 361b8 ; specialattackup - ld b, $3 + ld b, SP_ATTACK jr BattleCommand_StatUp BattleCommand_SpecialDefenseUp: ; 361bc ; specialdefenseup - ld b, $4 + ld b, SP_DEFENSE jr BattleCommand_StatUp BattleCommand_AccuracyUp: ; 361c0 ; accuracyup - ld b, $5 + ld b, ACCURACY jr BattleCommand_StatUp BattleCommand_EvasionUp: ; 361c4 ; evasionup - ld b, $6 + ld b, EVASION jr BattleCommand_StatUp BattleCommand_AttackUp2: ; 361c8 ; attackup2 - ld b, $10 + ld b, $10 | ATTACK jr BattleCommand_StatUp BattleCommand_DefenseUp2: ; 361cc ; defenseup2 - ld b, $11 + ld b, $10 | DEFENSE jr BattleCommand_StatUp BattleCommand_SpeedUp2: ; 361d0 ; speedup2 - ld b, $12 + ld b, $10 | SPEED jr BattleCommand_StatUp BattleCommand_SpecialAttackUp2: ; 361d4 ; specialattackup2 - ld b, $13 + ld b, $10 | SP_ATTACK jr BattleCommand_StatUp BattleCommand_SpecialDefenseUp2: ; 361d8 ; specialdefenseup2 - ld b, $14 + ld b, $10 | SP_DEFENSE jr BattleCommand_StatUp BattleCommand_AccuracyUp2: ; 361dc ; accuracyup2 - ld b, $15 + ld b, $10 | ACCURACY jr BattleCommand_StatUp BattleCommand_EvasionUp2: ; 361e0 ; evasionup2 - ld b, $16 + ld b, $10 | EVASION jr BattleCommand_StatUp BattleCommand_StatUp: ; 361e4 ; statup @@ -6114,15 +6119,15 @@ CheckIfStatCanBeRaised: ; 361ef ld hl, PlayerStatLevels ld a, [hBattleTurn] and a - jr z, .asm_361fe ; 0x361f9 $3 + jr z, .got_stat_levels ; 0x361f9 $3 ld hl, EnemyStatLevels -.asm_361fe +.got_stat_levels ld a, [AttackMissed] and a - jp nz, Function3627b + jp nz, .stat_raise_failed ld a, [EffectFailed] and a - jp nz, Function3627b + jp nz, .stat_raise_failed ld a, [LoweredStat] and $f ld c, a @@ -6132,29 +6137,29 @@ CheckIfStatCanBeRaised: ; 361ef inc b ld a, $d cp b - jp c, Function36270 + jp c, .cant_raise_stat ld a, [LoweredStat] and $f0 - jr z, .asm_3622b ; 0x36222 $7 + jr z, .got_num_stages ; 0x36222 $7 inc b ld a, $d cp b - jr nc, .asm_3622b ; 0x36228 $1 + jr nc, .got_num_stages ; 0x36228 $1 ld b, a -.asm_3622b +.got_num_stages ld [hl], b push hl ld a, c cp $5 - jr nc, .asm_36268 ; 0x36230 $36 + jr nc, .done_calcing_stats ; 0x36230 $36 ld hl, BattleMonStats + 1 ld de, PlayerStats ld a, [hBattleTurn] and a - jr z, .asm_36243 ; 0x3623b $6 + jr z, .got_stats_pointer ; 0x3623b $6 ld hl, EnemyMonStats + 1 ld de, EnemyStats -.asm_36243 +.got_stats_pointer push bc sla c ld b, 0 @@ -6162,25 +6167,25 @@ CheckIfStatCanBeRaised: ; 361ef ld a, c add e ld e, a - jr nc, .asm_3624f ; 0x3624c $1 + jr nc, .no_carry ; 0x3624c $1 inc d -.asm_3624f +.no_carry pop bc ld a, [hld] sub 999 % $100 - jr nz, .asm_3625b ; 0x36253 $6 + jr nz, .not_already_max ; 0x36253 $6 ld a, [hl] sbc 999 / $100 - jp z, Function3626e -.asm_3625b + jp z, .stats_already_max +.not_already_max ld a, [hBattleTurn] and a - jr z, .asm_36265 ; 0x3625e $5 - call Function365fd - jr .asm_36268 ; 0x36263 $3 -.asm_36265 - call Function365d7 -.asm_36268 + jr z, .calc_player_stats ; 0x3625e $5 + call CalcEnemyStats + jr .done_calcing_stats ; 0x36263 $3 +.calc_player_stats + call CalcPlayerStats +.done_calcing_stats pop hl xor a ld [FailedMessage], a @@ -6188,14 +6193,14 @@ CheckIfStatCanBeRaised: ; 361ef ; 3626e -Function3626e: ; 3626e +.stats_already_max: ; 3626e pop hl dec [hl] ; fallthrough ; 36270 -Function36270: ; 36270 +.cant_raise_stat: ; 36270 ld a, $2 ld [FailedMessage], a ld a, $1 @@ -6204,7 +6209,7 @@ Function36270: ; 36270 ; 3627b -Function3627b: ; 3627b +.stat_raise_failed: ; 3627b ld a, $1 ld [FailedMessage], a ret @@ -6216,18 +6221,20 @@ Function36281: ; 36281 ld hl, Function3f447 ld a, [hBattleTurn] and a - jr z, .asm_36292 ; 0x3628a $6 + jr z, .do_player ; 0x3628a $6 ld bc, wc6fa ld hl, Function3f486 -.asm_36292 +.do_player ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp MINIMIZE ret nz + ld a, $1 ld [bc], a call Function37ed5 ret nc + xor a ld [$ffd4], a call CallBattleCore @@ -6297,7 +6304,7 @@ BattleCommand_StatDown: ; 362e3 ld [LoweredStat], a - call Function36391 + call CheckMist jp nz, .Mist ld hl, EnemyStatLevels @@ -6380,11 +6387,11 @@ BattleCommand_StatDown: ; 362e3 ld de, EnemyStats ld a, [hBattleTurn] and a - jr z, .asm_36366 + jr z, .do_enemy ld hl, BattleMonAttack + 1 ld de, PlayerStats -.asm_36366 - call Function3641a +.do_enemy + call TryLowerStat pop hl jr z, .CouldntLower @@ -6417,25 +6424,26 @@ BattleCommand_StatDown: ; 362e3 ; 36391 -Function36391: ; 36391 +CheckMist: ; 36391 ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_ATTACK_DOWN - jr c, .asm_363ae + jr c, .dont_check_mist cp EFFECT_EVASION_DOWN + 1 - jr c, .asm_363b0 + jr c, .check_mist cp EFFECT_ATTACK_DOWN_2 - jr c, .asm_363ae + jr c, .dont_check_mist cp EFFECT_EVASION_DOWN_2 + 1 - jr c, .asm_363b0 + jr c, .check_mist cp EFFECT_ATTACK_DOWN_HIT - jr c, .asm_363ae + jr c, .dont_check_mist cp EFFECT_EVASION_DOWN_HIT + 1 - jr c, .asm_363b0 -.asm_363ae + jr c, .check_mist +.dont_check_mist xor a ret -.asm_363b0 + +.check_mist ld a, BATTLE_VARS_SUBSTATUS4_OPP call GetBattleVar bit SUBSTATUS_MIST, a @@ -6443,7 +6451,7 @@ Function36391: ; 36391 ; 363b8 -BattleCommand_StatMessageUser: ; 363b8 +BattleCommand_StatUpMessage: ; 363b8 ld a, [FailedMessage] and a ret nz @@ -6477,7 +6485,7 @@ BattleCommand_StatMessageUser: ; 363b8 ; 363e9 -BattleCommand_StatMessageTarget: ; 363e9 +BattleCommand_StatDownMessage: ; 363e9 ld a, [FailedMessage] and a ret nz @@ -6510,7 +6518,7 @@ BattleCommand_StatMessageTarget: ; 363e9 ; 3641a -Function3641a: ; 3641a +TryLowerStat: ; 3641a ; Lower stat c from stat struct hl (buffer de). push bc @@ -6521,32 +6529,32 @@ Function3641a: ; 3641a ld a, c add e ld e, a - jr nc, .asm_36426 + jr nc, .no_carry inc d -.asm_36426 +.no_carry pop bc ; The lowest possible stat is 1. ld a, [hld] sub 1 - jr nz, .asm_3642f + jr nz, .not_min ld a, [hl] and a ret z -.asm_3642f +.not_min ld a, [hBattleTurn] and a jr z, .Player call BattleCommand_SwitchTurn - call Function365d7 + call CalcPlayerStats call BattleCommand_SwitchTurn jr .end .Player call BattleCommand_SwitchTurn - call Function365fd + call CalcEnemyStats call BattleCommand_SwitchTurn .end ld a, 1 @@ -6626,24 +6634,20 @@ GetStatName: ; 3648f ; 364e6 -Table0x364e6: ; 364e6 - db 25, 100 - db 28, 100 - db 33, 100 - db 40, 100 - db 50, 100 - db 66, 100 -; 364f2 - - -StatLevelMulipliers: ; 364f2 - db 1, 1 ; 1.0x - db 15, 10 ; 1.5x - db 2, 1 ; 2.0x - db 25, 10 ; 2.5x - db 3, 1 ; 3.0x - db 35, 10 ; 3.5x - db 4, 1 ; 4.0x +StatLevelMultipliers: ; 364e6 + db 25, 100 ; 0.25x + db 28, 100 ; 0.28x + db 33, 100 ; 0.33x + db 40, 100 ; 0.40x + db 50, 100 ; 0.50x + db 66, 100 ; 0.66x + db 1, 1 ; 1.00x + db 15, 10 ; 1.50x + db 2, 1 ; 2.00x + db 25, 10 ; 2.50x + db 3, 1 ; 3.00x + db 35, 10 ; 3.50x + db 4, 1 ; 4.00x ; 36500 @@ -6653,27 +6657,27 @@ BattleCommand_AllStatsUp: ; 36500 ; Attack call ResetMiss call BattleCommand_AttackUp - call BattleCommand_StatMessageUser + call BattleCommand_StatUpMessage ; Defense call ResetMiss call BattleCommand_DefenseUp - call BattleCommand_StatMessageUser + call BattleCommand_StatUpMessage ; Speed call ResetMiss call BattleCommand_SpeedUp - call BattleCommand_StatMessageUser + call BattleCommand_StatUpMessage ; Special Attack call ResetMiss call BattleCommand_SpecialAttackUp - call BattleCommand_StatMessageUser + call BattleCommand_StatUpMessage ; Special Defense call ResetMiss call BattleCommand_SpecialDefenseUp - jp BattleCommand_StatMessageUser + jp BattleCommand_StatUpMessage ; 3652d @@ -6684,16 +6688,16 @@ ResetMiss: ; 3652d ; 36532 -Function36532: ; 36532 +LowerStat: ; 36532 ld [LoweredStat], a ld hl, PlayerStatLevels ld a, [hBattleTurn] and a - jr z, .asm_36540 + jr z, .got_target ld hl, EnemyStatLevels -.asm_36540 +.got_target ld a, [LoweredStat] and $f ld c, a @@ -6701,56 +6705,56 @@ Function36532: ; 36532 add hl, bc ld b, [hl] dec b - jr z, .asm_36589 + jr z, .cant_lower_anymore ld a, [LoweredStat] and $f0 - jr z, .asm_36558 + jr z, .got_num_stages dec b - jr nz, .asm_36558 + jr nz, .got_num_stages inc b -.asm_36558 +.got_num_stages ld [hl], b ld a, c cp 5 - jr nc, .asm_36576 + jr nc, .accuracy_evasion push hl ld hl, BattleMonStats + 1 ld de, PlayerStats ld a, [hBattleTurn] and a - jr z, .asm_36570 + jr z, .got_target_2 ld hl, EnemyMonStats + 1 ld de, EnemyStats -.asm_36570 - call Function3641a +.got_target_2 + call TryLowerStat pop hl - jr z, .asm_36588 + jr z, .failed -.asm_36576 +.accuracy_evasion ld a, [hBattleTurn] and a - jr z, .asm_36580 + jr z, .player - call Function365fd + call CalcEnemyStats - jr .asm_36583 + jr .finish -.asm_36580 - call Function365d7 +.player + call CalcPlayerStats -.asm_36583 +.finish xor a ld [FailedMessage], a ret -.asm_36588 +.failed inc [hl] -.asm_36589 +.cant_lower_anymore ld a, 2 ld [FailedMessage], a ret @@ -6817,51 +6821,51 @@ BattleCommanda7: ; 365c3 ; 365d7 -Function365d7: ; 365d7 +CalcPlayerStats: ; 365d7 ld hl, PlayerAtkLevel ld de, PlayerStats ld bc, BattleMonAttack - ld a, $5 - call Function3661d + ld a, 5 + call CalcStats ld hl, BadgeStatBoosts call CallBattleCore call BattleCommand_SwitchTurn - ld hl, Function3ec39 + ld hl, ApplyPrzEffectOnSpeed call CallBattleCore - ld hl, Function3ec76 + ld hl, ApplyBrnEffectOnAttack call CallBattleCore jp BattleCommand_SwitchTurn ; 365fd -Function365fd: ; 365fd +CalcEnemyStats: ; 365fd ld hl, EnemyAtkLevel ld de, EnemyStats ld bc, EnemyMonAttack - ld a, $5 - call Function3661d + ld a, 5 + call CalcStats call BattleCommand_SwitchTurn - ld hl, Function3ec39 + ld hl, ApplyPrzEffectOnSpeed call CallBattleCore - ld hl, Function3ec76 + ld hl, ApplyBrnEffectOnAttack call CallBattleCore jp BattleCommand_SwitchTurn ; 3661d -Function3661d: ; 3661d -.asm_3661d +CalcStats: ; 3661d +.loop push af ld a, [hli] push hl @@ -6870,7 +6874,7 @@ Function3661d: ; 3661d ld c, a dec c ld b, 0 - ld hl, Table0x364e6 + ld hl, StatLevelMultipliers rept 2 add hl, bc endr @@ -6897,25 +6901,25 @@ endr ld b, a ld a, [hQuotient + 2] or b - jr nz, .asm_36651 + jr nz, .check_maxed_out ld a, 1 ld [hQuotient + 2], a - jr .asm_36662 + jr .not_maxed_out -.asm_36651 +.check_maxed_out ld a, [hQuotient + 2] cp 999 % $100 ld a, b sbc 999 / $100 - jr c, .asm_36662 + jr c, .not_maxed_out ld a, 999 % $100 ld [$ffb6], a ld a, 999 / $100 ld [$ffb5], a -.asm_36662 +.not_maxed_out pop bc ld a, [$ffb5] ld [bc], a @@ -6926,7 +6930,7 @@ endr pop hl pop af dec a - jr nz, .asm_3661d + jr nz, .loop ret ; 36671 @@ -6943,11 +6947,11 @@ BattleCommand_StoreEnergy: ; 36671 ld hl, PlayerRolloutCount ld a, [hBattleTurn] and a - jr z, .asm_36684 + jr z, .check_still_storing_energy ld hl, EnemyRolloutCount -.asm_36684 +.check_still_storing_energy dec [hl] - jr nz, .asm_366dc + jr nz, .still_storing ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr @@ -6961,13 +6965,13 @@ BattleCommand_StoreEnergy: ; 36671 ld a, 1 ld [hl], a ld hl, PlayerDamageTaken + 1 - ld de, wc732 + ld de, wc732 ; player ld a, [hBattleTurn] and a - jr z, .asm_366ad + jr z, .player ld hl, EnemyDamageTaken + 1 - ld de, wc733 -.asm_366ad + ld de, wc733 ; enemy +.player ld a, [hld] add a ld b, a @@ -6975,16 +6979,16 @@ BattleCommand_StoreEnergy: ; 36671 ld a, [hl] rl a ld [CurDamage], a - jr nc, .asm_366c3 + jr nc, .not_maxed ld a, $ff ld [CurDamage], a ld [CurDamage + 1], a -.asm_366c3 +.not_maxed or b - jr nz, .asm_366cb + jr nz, .built_up_something ld a, 1 ld [AttackMissed], a -.asm_366cb +.built_up_something xor a ld [hli], a ld [hl], a @@ -6998,7 +7002,7 @@ BattleCommand_StoreEnergy: ; 36671 ld b, unleashenergy_command jp SkipToBattleCommand -.asm_366dc +.still_storing ld hl, StoringEnergyText call StdBattleTextBox jp EndMoveEffect @@ -7032,7 +7036,7 @@ rept 2 endr ld [bc], a ld a, 1 - ld [wc689], a + ld [wKickCounter], a call AnimateCurrentMove jp EndMoveEffect ; 3671a @@ -7044,33 +7048,35 @@ BattleCommand_CheckRampage: ; 3671a ld de, PlayerRolloutCount ld a, [hBattleTurn] and a - jr z, .asm_36725 ; 36720 $3 + jr z, .player ; 36720 $3 ld de, EnemyRolloutCount -.asm_36725 +.player ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr - bit 1, [hl] + bit SUBSTATUS_RAMPAGE, [hl] ret z ld a, [de] dec a ld [de], a - jr nz, .asm_3674c ; 36730 $1a - res 1, [hl] + jr nz, .continue_rampage ; 36730 $1a + + res SUBSTATUS_RAMPAGE, [hl] call BattleCommand_SwitchTurn call Function37962 push af call BattleCommand_SwitchTurn pop af - jr nz, .asm_3674c ; 3673f $b - set 7, [hl] + jr nz, .continue_rampage ; 3673f $b + + set SUBSTATUS_CONFUSED, [hl] call BattleRandom - and $1 + and %00000001 rept 2 inc a endr - inc de + inc de ; ConfuseCount ld [de], a -.asm_3674c +.continue_rampage ld b, rampage_command jp SkipToBattleCommand ; 36751 @@ -7094,8 +7100,9 @@ BattleCommand_Rampage: ; 36751 ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr set SUBSTATUS_RAMPAGE, [hl] +; Rampage for 1 or 2 more turns call BattleRandom - and 1 + and %00000001 inc a ld [de], a ld a, 1 @@ -7121,34 +7128,39 @@ BattleCommand_Teleport: ; 36778 call GetBattleVar bit SUBSTATUS_CANT_RUN, a jr nz, .failed +; Only need to check these next things if it's your turn ld a, [hBattleTurn] and a - jr nz, .asm_367bf + jr nz, .enemy_turn +; Can't teleport from a trainer battle ld a, [wBattleMode] dec a jr nz, .failed +; If your level is greater than the opponent's, you run without fail. ld a, [CurPartyLevel] ld b, a ld a, [BattleMonLevel] cp b - jr nc, .asm_367df + jr nc, .run_away +; Generate a number between 0 and (YourLevel + TheirLevel). add b ld c, a inc c -.asm_367ac +.loop_player call BattleRandom cp c - jr nc, .asm_367ac ; 367b0 $fa + jr nc, .loop_player ; 367b0 $fa +; If that number is greater than 4 times your level, run away. srl b srl b cp b - jr nc, .asm_367df ; 367b7 $26 + jr nc, .run_away ; 367b7 $26 .failed call AnimateFailedMove jp PrintButItFailed -.asm_367bf +.enemy_turn ld a, [wBattleMode] dec a jr nz, .failed @@ -7156,38 +7168,38 @@ BattleCommand_Teleport: ; 36778 ld b, a ld a, [CurPartyLevel] cp b - jr nc, .asm_367df ; 367cd $10 + jr nc, .run_away ; 367cd $10 add b ld c, a inc c -.asm_367d2 +.loop_enemy call BattleRandom cp c - jr nc, .asm_367d2 ; 367d6 $fa + jr nc, .loop_enemy ; 367d6 $fa srl b srl b cp b - jr nc, .asm_367df ; 367dd $0 -.asm_367df + jr nc, .run_away ; 367dd $0 +.run_away call UpdateBattleMonInParty xor a ld [wcfca], a inc a ld [wd232], a - ld [wc689], a - call Function36804 + ld [wKickCounter], a + call SetBattleDraw call BattleCommand_LowerSub - call Function37e36 + call PlayPlayerMoveAnim_ClearHiID ld c, 20 call DelayFrames - call Function36804 + call SetBattleDraw ld hl, FledFromBattleText jp StdBattleTextBox ; 36804 -Function36804: ; 36804 +SetBattleDraw: ; 36804 ld a, [wBattleResult] and $c0 or $2 @@ -7241,7 +7253,7 @@ BattleCommand_ForceSwitch: ; 3680f ld [wcfca], a inc a ld [wd232], a - call Function36804 + call SetBattleDraw ld a, [wPlayerMoveStruct + MOVE_ANIM] jp .asm_36975 .asm_36869 @@ -7252,7 +7264,7 @@ BattleCommand_ForceSwitch: ; 3680f jr z, .asm_368ca ; 36872 $56 call UpdateEnemyMonInParty ld a, $1 - ld [wc689], a + ld [wKickCounter], a call AnimateCurrentMove ld c, $14 call DelayFrames @@ -7332,7 +7344,7 @@ BattleCommand_ForceSwitch: ; 3680f ld [wcfca], a inc a ld [wd232], a - call Function36804 + call SetBattleDraw ld a, [wEnemyMoveStruct + MOVE_ANIM] jr .asm_36975 @@ -7346,7 +7358,7 @@ BattleCommand_ForceSwitch: ; 3680f call UpdateBattleMonInParty ld a, $1 - ld [wc689], a + ld [wKickCounter], a call AnimateCurrentMove ld c, $14 call DelayFrames @@ -7397,9 +7409,9 @@ BattleCommand_ForceSwitch: ; 3680f .asm_36975 push af - call Function36804 + call SetBattleDraw ld a, $1 - ld [wc689], a + ld [wKickCounter], a call AnimateCurrentMove ld c, $14 call DelayFrames @@ -7760,8 +7772,8 @@ BattleCommand_Charge: ; 36b4d xor a ld [wcfca], a inc a - ld [wc689], a - call Function37e36 + ld [wKickCounter], a + call PlayPlayerMoveAnim_ClearHiID ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp FLY @@ -8068,7 +8080,7 @@ BattleCommand_Confuse: ; 36d3b cp HELD_PREVENT_CONFUSE jr nz, .asm_36d53 ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetItemName call AnimateFailedMove ld hl, ProtectedByText @@ -8122,7 +8134,7 @@ endr .asm_36d99 ld de, ANIM_CONFUSED - call Function37e54 + call PlayOpponentBattleAnim ld hl, BecameConfusedText call StdBattleTextBox @@ -8166,7 +8178,7 @@ BattleCommand_Paralyze: ; 36dc7 cp HELD_PREVENT_PARALYZE jr nz, .asm_36def ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetItemName call AnimateFailedMove ld hl, ProtectedByText @@ -8212,7 +8224,7 @@ BattleCommand_Paralyze: ; 36dc7 call GetBattleVarAddr set PAR, [hl] call UpdateOpponentInParty - ld hl, Function3ec39 + ld hl, ApplyPrzEffectOnSpeed call CallBattleCore call UpdateBattleHuds call PrintParalyze @@ -8283,7 +8295,7 @@ BattleCommand_Substitute: ; 36e7c ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVar bit SUBSTATUS_SUBSTITUTE, a - jr nz, .asm_36ef4 + jr nz, .already_has_sub ld a, [hli] ld b, [hl] @@ -8302,10 +8314,10 @@ endr ld a, [hl] sbc 0 ld d, a - jr c, .asm_36eff + jr c, .too_weak_to_sub ld a, d or e - jr z, .asm_36eff + jr z, .too_weak_to_sub ld [hl], d inc hl ld [hl], e @@ -8318,43 +8330,43 @@ endr ld de, wc72e ld a, [hBattleTurn] and a - jr z, .asm_36ecf + jr z, .player ld hl, wc731 ld de, wc72f -.asm_36ecf +.player xor a ld [hl], a ld [de], a call Function37ed5 - jr c, .asm_36ee8 + jr c, .mobile xor a ld [wcfca], a ld [FXAnimIDHi], a - ld [wc689], a + ld [wKickCounter], a ld a, SUBSTITUTE - call Function37e44 - jr .asm_36eeb + call PlayMoveAnim_KeepHiID + jr .finish -.asm_36ee8 +.mobile call BattleCommanda6 -.asm_36eeb +.finish ld hl, MadeSubstituteText call StdBattleTextBox jp RefreshBattleHuds -.asm_36ef4 +.already_has_sub call Function34548 call nz, BattleCommand_RaiseSub ld hl, HasSubstituteText - jr .asm_36f08 + jr .jp_stdbattletextbox -.asm_36eff +.too_weak_to_sub call Function34548 call nz, BattleCommand_RaiseSub ld hl, TooWeakSubText -.asm_36f08 +.jp_stdbattletextbox jp StdBattleTextBox ; 36f0b @@ -8461,7 +8473,7 @@ BattleCommand_Mimic: ; 36f46 ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar ld [hl], a - ld [wd265], a + ld [wNamedObjectIndexBuffer], a ld bc, BattleMonPP - BattleMonMoves add hl, bc ld [hl], 5 @@ -8589,7 +8601,7 @@ BattleCommand_Disable: ; 36fed ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar ld [hl], a - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetMoveName ld hl, WasDisabledText jp StdBattleTextBox @@ -8716,7 +8728,7 @@ BattleCommand_Conversion: ; 3707f ld [de], a inc de ld [de], a - ld [wd265], a + ld [wNamedObjectIndexBuffer], a callba GetTypeName call AnimateCurrentMove ld hl, TransformedTypeText @@ -8737,9 +8749,9 @@ BattleCommand_ResetStats: ; 3710e push af call SetPlayerTurn - call Function365d7 + call CalcPlayerStats call SetEnemyTurn - call Function365fd + call CalcEnemyStats pop af ld [hBattleTurn], a @@ -8805,10 +8817,10 @@ BattleCommand_Heal: ; 3713e ld a, [hBattleTurn] and a jr nz, .asm_37193 - call Function365d7 + call CalcPlayerStats jr .asm_37196 .asm_37193 - call Function365fd + call CalcEnemyStats .asm_37196 pop af pop de @@ -8853,7 +8865,7 @@ BattleCommand_Transform: ; 371cd ld [wcfca], a ld [FXAnimIDHi], a ld a, $1 - ld [wc689], a + ld [wKickCounter], a ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr bit SUBSTATUS_SUBSTITUTE, [hl] @@ -8862,7 +8874,7 @@ BattleCommand_Transform: ; 371cd call Function34548 jr nz, .asm_37200 ld a, SUBSTITUTE - call Function37e44 + call PlayMoveAnim_KeepHiID .asm_37200 ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVarAddr @@ -8938,15 +8950,15 @@ endr jr nz, .asm_3725f pop hl ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetPokemonName ld hl, EnemyStats ld de, PlayerStats - ld bc, $000a + ld bc, 2 * 5 call BattleSideCopy ld hl, EnemyStatLevels ld de, PlayerStatLevels - ld bc, $0008 + ld bc, 8 call BattleSideCopy call Function37ed5 jr c, .asm_372a8 @@ -8958,7 +8970,7 @@ endr .asm_372a0 and a jr nz, .asm_372a8 - call Function37e36 + call PlayPlayerMoveAnim_ClearHiID jr .asm_372ae .asm_372a8 call BattleCommand_MoveDelay @@ -8968,10 +8980,10 @@ endr ld [wcfca], a ld [FXAnimIDHi], a ld a, $2 - ld [wc689], a + ld [wKickCounter], a pop af ld a, SUBSTITUTE - call nz, Function37e44 + call nz, PlayMoveAnim_KeepHiID ld hl, TransformedText jp StdBattleTextBox ; 372c6 @@ -9165,9 +9177,9 @@ BattleCommand_SelfDestruct: ; 37380 ld [hli], a ld [hl], a ld a, $1 - ld [wc689], a + ld [wKickCounter], a call BattleCommand_LowerSub - call Function37e36 + call PlayPlayerMoveAnim_ClearHiID ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr res SUBSTATUS_LEECH_SEED, [hl] @@ -9218,10 +9230,10 @@ ResetTurn: ; 3747b ld hl, wc732 ld a, [hBattleTurn] and a - jr z, .asm_37486 + jr z, .player ld hl, wc733 -.asm_37486 +.player ld [hl], 1 xor a ld [AlreadyDisobeyed], a @@ -9509,7 +9521,7 @@ BattleCommand_Present: ; 37874 pop bc .asm_37889 - ld a, [wd265] + ld a, [wTypeMatchup] and a jp z, AnimateFailedMove ld a, [AttackMissed] @@ -9533,8 +9545,8 @@ BattleCommand_Present: ; 37874 .asm_378ad ld a, c - ld [wc689], a - call Function37de9 + ld [wKickCounter], a + call AnimateCurrentMoveEitherSide ld d, [hl] pop bc ret @@ -9542,7 +9554,7 @@ BattleCommand_Present: ; 37874 .asm_378b7 pop bc ld a, $3 - ld [wc689], a + ld [wKickCounter], a call AnimateCurrentMove call BattleCommand_SwitchTurn ld hl, AICheckPlayerMaxHP @@ -9694,7 +9706,7 @@ endr push de inc hl ld a, [hl] - ld [wd265], a + ld [wTypeMatchup], a call BattleCommand_MoveDelay ld hl, MagnitudeText call StdBattleTextBox @@ -9788,7 +9800,7 @@ BattleCommand_BatonPass: ; 379c9 ld hl, Function3d57a call CallBattleCore ld a, 1 - ld [wd265], a + ld [wTypeMatchup], a ld hl, ApplyStatLevelMultiplierOnAllStats call CallBattleCore @@ -10170,7 +10182,7 @@ BattleCommand_BellyDrum: ; 37c1a push bc call AnimateCurrentMove pop bc - callab Function3cc3f + callab SubtractHPFromUser call UpdateUserInParty ld a, 5 @@ -10225,10 +10237,10 @@ BattleCommand_PsychUp: ; 37c55 ld a, [hBattleTurn] and a jr nz, .asm_37c89 ; 37c82 $5 - call Function365d7 + call CalcPlayerStats jr .asm_37c8c ; 37c87 $3 .asm_37c89 - call Function365fd + call CalcEnemyStats .asm_37c8c call AnimateCurrentMove ld hl, CopiedStatsText @@ -10254,7 +10266,7 @@ BattleCommand_MirrorCoat: ; 37c95 ret z call BattleCommanda3 - ld a, [wd265] + ld a, [wTypeMatchup] and a ret z @@ -10491,16 +10503,16 @@ GetItem: ; 37dd0 ; 37de9 -Function37de9: ; 37de9 +AnimateCurrentMoveEitherSide: ; 37de9 push hl push de push bc - ld a, [wc689] + ld a, [wKickCounter] push af call BattleCommand_LowerSub pop af - ld [wc689], a - call Function37e19 + ld [wKickCounter], a + call PlayMoveAnim_ClearHiID call BattleCommand_RaiseSub pop bc pop de @@ -10513,12 +10525,12 @@ AnimateCurrentMove: ; 37e01 push hl push de push bc - ld a, [wc689] + ld a, [wKickCounter] push af call BattleCommand_LowerSub pop af - ld [wc689], a - call Function37e36 + ld [wKickCounter], a + call PlayPlayerMoveAnim_ClearHiID call BattleCommand_RaiseSub pop bc pop de @@ -10527,7 +10539,7 @@ AnimateCurrentMove: ; 37e01 ; 37e19 -Function37e19: ; 37e19 +PlayMoveAnim_ClearHiID: ; 37e19 xor a ld [FXAnimIDHi], a @@ -10541,17 +10553,17 @@ Function37e19: ; 37e19 ld a, [hBattleTurn] and a ld a, 1 - jr z, .asm_37e30 + jr z, .player ld a, 4 -.asm_37e30 +.player ld [wcfca], a - jp Function37e47 + jp PlayUserBattleAnim ; 37e36 -Function37e36: ; 37e36 +PlayPlayerMoveAnim_ClearHiID: ; 37e36 xor a ld [wcfca], a ld [FXAnimIDHi], a @@ -10565,7 +10577,7 @@ Function37e36: ; 37e36 ; 37e44 -Function37e44: ; 37e44 +PlayMoveAnim_KeepHiID: ; 37e44 ld [FXAnimIDLo], a @@ -10573,7 +10585,7 @@ Function37e44: ; 37e44 ; 37e47 -Function37e47: ; 37e47 +PlayUserBattleAnim: ; 37e47 push hl push de push bc @@ -10585,7 +10597,7 @@ Function37e47: ; 37e47 ; 37e54 -Function37e54: ; 37e54 +PlayOpponentBattleAnim: ; 37e54 ld a, e ld [FXAnimIDLo], a ld a, d diff --git a/battle/effects/curse.asm b/battle/effects/curse.asm index 2c9ce4365..dceb3b8d5 100644 --- a/battle/effects/curse.asm +++ b/battle/effects/curse.asm @@ -26,13 +26,13 @@ BattleCommand_Curse: ; 37588 ; Attack ld a, [bc] - cp 13 ; max + cp MAX_STAT_LEVEL jr c, .raise ; Defense inc bc ld a, [bc] - cp 13 ; max + cp MAX_STAT_LEVEL jr nc, .cantraise .raise @@ -40,19 +40,19 @@ BattleCommand_Curse: ; 37588 ; Raise Attack and Defense, and lower Speed. ld a, $1 - ld [wc689], a + ld [wKickCounter], a call AnimateCurrentMove - ld a, $2 - call Function36532 + ld a, SPEED + call LowerStat call BattleCommand_SwitchTurn - call BattleCommand_StatMessageTarget + call BattleCommand_StatDownMessage call ResetMiss call BattleCommand_SwitchTurn call BattleCommand_AttackUp - call BattleCommand_StatMessageUser + call BattleCommand_StatUpMessage call ResetMiss call BattleCommand_DefenseUp - jp BattleCommand_StatMessageUser + jp BattleCommand_StatUpMessage .ghost @@ -74,7 +74,7 @@ BattleCommand_Curse: ; 37588 call AnimateCurrentMove ld hl, GetHalfMaxHP call CallBattleCore - ld hl, Function3cc3f + ld hl, SubtractHPFromUser call CallBattleCore call UpdateUserInParty ld hl, PutACurseText @@ -89,7 +89,7 @@ BattleCommand_Curse: ; 37588 ; Can't raise either stat. - ld b, $8 ; ABILITY + ld b, ABILITY + 1 call GetStatName call AnimateFailedMove ld hl, WontRiseAnymoreText diff --git a/battle/effects/metronome.asm b/battle/effects/metronome.asm index 016d67089..af574061d 100644 --- a/battle/effects/metronome.asm +++ b/battle/effects/metronome.asm @@ -5,14 +5,14 @@ BattleCommand_Metronome: ; 37418 call Function34548 jr nz, .asm_3742b - ld a, [wc689] + ld a, [wKickCounter] push af call BattleCommand_LowerSub pop af - ld [wc689], a + ld [wKickCounter], a .asm_3742b - call Function37e36 + call PlayPlayerMoveAnim_ClearHiID .GetMove call BattleRandom diff --git a/battle/effects/mirror_move.asm b/battle/effects/mirror_move.asm index 1b39b1ad3..e6196466b 100644 --- a/battle/effects/mirror_move.asm +++ b/battle/effects/mirror_move.asm @@ -40,11 +40,11 @@ BattleCommand_MirrorMove: ; 373c9 call Function34548 jr nz, .done - ld a, [wc689] + ld a, [wKickCounter] push af call BattleCommand_LowerSub pop af - ld [wc689], a + ld [wKickCounter], a .done call BattleCommand_MoveDelay diff --git a/battle/moves/move_effects.asm b/battle/moves/move_effects.asm index b5aadf1a1..451d1481a 100644 --- a/battle/moves/move_effects.asm +++ b/battle/moves/move_effects.asm @@ -208,7 +208,7 @@ Explosion: damagevariation checkhit selfdestruct - effect0x0b + hittargetnosub resulttext checkfaint criticaltext @@ -255,7 +255,7 @@ AttackUp: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -269,7 +269,7 @@ DefenseUp: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -281,7 +281,7 @@ SpeedUp: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -294,7 +294,7 @@ SpecialAttackUp: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -306,7 +306,7 @@ SpecialDefenseUp: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -318,7 +318,7 @@ AccuracyUp: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -333,7 +333,7 @@ EvasionUp: statupanim effect0xa7 raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -346,7 +346,7 @@ AttackUp2: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -360,7 +360,7 @@ DefenseUp2: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -373,7 +373,7 @@ SpeedUp2: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -385,7 +385,7 @@ SpecialAttackUp2: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -398,7 +398,7 @@ SpecialDefenseUp2: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -410,7 +410,7 @@ AccuracyUp2: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -422,7 +422,7 @@ EvasionUp2: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove @@ -436,7 +436,7 @@ AttackDown: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -451,7 +451,7 @@ DefenseDown: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -465,7 +465,7 @@ SpeedDown: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -478,7 +478,7 @@ SpecialAttackDown: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -491,7 +491,7 @@ SpecialDefenseDown: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -508,7 +508,7 @@ AccuracyDown: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -522,7 +522,7 @@ EvasionDown: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -536,7 +536,7 @@ AttackDown2: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -550,7 +550,7 @@ DefenseDown2: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -565,7 +565,7 @@ SpeedDown2: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -578,7 +578,7 @@ SpecialAttackDown2: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -591,7 +591,7 @@ SpecialDefenseDown2: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -604,7 +604,7 @@ AccuracyDown2: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -617,7 +617,7 @@ EvasionDown2: lowersub statdownanim raisesub - statmessagetarget + statdownmessage statdownfailtext endmove @@ -641,7 +641,7 @@ AttackDownHit: checkdestinybond buildopponentrage attackdown - statmessagetarget + statdownmessage endmove Acid: @@ -667,7 +667,7 @@ DefenseDownHit: buildopponentrage effectchance defensedown - statmessagetarget + statdownmessage endmove Bubblebeam: @@ -693,7 +693,7 @@ SpeedDownHit: checkdestinybond buildopponentrage speeddown - statmessagetarget + statdownmessage endmove SpecialAttackDownHit: @@ -715,7 +715,7 @@ SpecialAttackDownHit: checkdestinybond buildopponentrage specialattackdown - statmessagetarget + statdownmessage endmove PsychicM: @@ -740,7 +740,7 @@ SpecialDefenseDownHit: checkdestinybond buildopponentrage specialdefensedown - statmessagetarget + statdownmessage endmove MudSlap: @@ -764,7 +764,7 @@ AccuracyDownHit: checkdestinybond buildopponentrage accuracydown - statmessagetarget + statdownmessage endmove EvasionDownHit: @@ -786,7 +786,7 @@ EvasionDownHit: checkdestinybond buildopponentrage evasiondown - statmessagetarget + statdownmessage endmove SteelWing: @@ -809,7 +809,7 @@ DefenseUpHit: checkdestinybond buildopponentrage defenseup - statmessageuser + statupmessage endmove MetalClaw: @@ -832,7 +832,7 @@ AttackUpHit: checkdestinybond buildopponentrage attackup - statmessageuser + statupmessage endmove Ancientpower: @@ -966,7 +966,7 @@ MultiHit: stab damagevariation clearmissdamage - effect0x0b + hittargetnosub resulttext checkfaint criticaltext @@ -994,7 +994,7 @@ PoisonMultiHit: stab damagevariation clearmissdamage - effect0x0b + hittargetnosub resulttext checkfaint criticaltext @@ -1350,7 +1350,7 @@ Dig: stab damagevariation checkhit - effect0x0b + hittargetnosub raisesub resulttext checkfaint @@ -1571,7 +1571,7 @@ TripleKick: stab damagevariation clearmissdamage - effect0x0b + hittargetnosub resulttext checkfaint criticaltext @@ -1730,7 +1730,7 @@ Swagger: raisesub resulttext switchturn - statmessageuser + statupmessage switchturn confusetarget endmove @@ -2041,7 +2041,7 @@ SkullBash: kingsrock endturn defenseup - statmessageuser + statupmessage endmove Twister: @@ -2097,7 +2097,7 @@ FutureSight: futuresight damagevariation checkhit - effect0x0b + hittargetnosub resulttext checkfaint checkdestinybond @@ -2211,7 +2211,7 @@ BeatUp: damagecalc damagevariation clearmissdamage - effect0x0b + hittargetnosub resulttext checkfaint criticaltext @@ -2234,6 +2234,6 @@ DefenseCurl: lowersub statupanim raisesub - statmessageuser + statupmessage statupfailtext endmove diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index 62531c7be..99cc04d4d 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -4,6 +4,8 @@ EGG_LEVEL EQU 5 NUM_MOVES EQU 4 REST_TURNS EQU 2 +MAX_STAT_LEVEL EQU 13 +BASE_STAT_LEVEL EQU 7 const_def const ATTACK @@ -13,6 +15,8 @@ REST_TURNS EQU 2 const SP_DEFENSE const ACCURACY const EVASION + const ABILITY +NUM_LEVEL_STATS EQU const_value ; move struct const_def diff --git a/engine/predef.asm b/engine/predef.asm index 44be28628..2fc3525bc 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -95,7 +95,7 @@ PredefPointers:: ; 856b add_predef Function5108b add_predef GetTrainerPic add_predef DecompressPredef ; $40 - add_predef Function347d3 + add_predef CheckTypeMatchup add_predef ConvertMon_1to2 add_predef Functionfb877 add_predef Functiond0000 diff --git a/items/item_effects.asm b/items/item_effects.asm index 8f1717947..f1ca0c2a9 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -403,7 +403,7 @@ endr jr c, .not_kurt_ball ld a, POKE_BALL .not_kurt_ball - ld [wc689], a + ld [wKickCounter], a ld de, ANIM_THROW_POKE_BALL ld a, e @@ -1567,7 +1567,7 @@ Functionf030: ; f030 (3:7030) res 7, [hl] .asm_f04f push bc - callba Function365d7 + callba CalcPlayerStats pop bc ret @@ -2344,7 +2344,7 @@ endr callba CheckIfStatCanBeRaised call WaitSFX - callba BattleCommand_StatMessageUser + callba BattleCommand_StatUpMessage callba BattleCommand_StatUpFailText ld a, [CurBattleMon] @@ -2959,7 +2959,7 @@ UseBallInTrainerBattle: ; f7a0 ld a, d ld [FXAnimIDHi], a xor a - ld [wc689], a + ld [wKickCounter], a ld [hBattleTurn], a ld [wcfca], a predef PlayBattleAnim diff --git a/macros/move_effect.asm b/macros/move_effect.asm index 7d0eda319..0c2325e8d 100644 --- a/macros/move_effect.asm +++ b/macros/move_effect.asm @@ -15,7 +15,7 @@ endm command damagevariation command checkhit command lowersub - command effect0x0b + command hittargetnosub command raisesub command resulttext command checkfaint @@ -144,8 +144,8 @@ endm command specialdefensedown2 command accuracydown2 command evasiondown2 - command statmessageuser - command statmessagetarget + command statupmessage + command statdownmessage command statupfailtext command statdownfailtext command effectchance diff --git a/wram.asm b/wram.asm index 61c699383..40808140e 100644 --- a/wram.asm +++ b/wram.asm @@ -600,7 +600,7 @@ EnemyDamageTaken:: ; c684 wc686:: ds 2 wc688:: ds 1 -wc689:: ds 1 +wKickCounter:: ds 1 wc68a:: BattleScriptBuffer:: ; c68a ds 40 @@ -1898,6 +1898,7 @@ wd264:: ds 1 wFoundMatchingIDInParty:: wNamedObjectIndexBuffer:: wCurTMHM:: +wTypeMatchup:: wd265:: ds 1 wd266:: ds 1 wd267:: ds 1 -- cgit v1.2.3 From 929d0aa0817d76bddc764adcd37a78034c29170d Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Fri, 6 Nov 2015 22:36:06 -0500 Subject: Still more battle command labels --- battle/core.asm | 44 ++-- battle/effect_command_pointers.asm | 4 +- battle/effect_commands.asm | 458 ++++++++++++------------------------- battle/effects/attract.asm | 79 +++++++ battle/effects/present.asm | 93 ++++++++ battle/misc.asm | 4 +- battle/moves/move_effects.asm | 2 +- macros/move_effect.asm | 4 +- main.asm | 2 +- wram.asm | 5 +- 10 files changed, 351 insertions(+), 344 deletions(-) create mode 100755 battle/effects/attract.asm create mode 100755 battle/effects/present.asm diff --git a/battle/core.asm b/battle/core.asm index 93a39d6d4..88dab84fd 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -1158,7 +1158,7 @@ ResidualDamage: ; 3c716 call SubtractHPFromUser ld a, $1 ld [hBGMapMode], a - call Function3ccef + call RestoreHP ld hl, LeechSeedSapsText call StdBattleTextBox .asm_3c7a1 @@ -1394,7 +1394,7 @@ Function3c8eb: ; 3c8eb .asm_3c92d call GetSixteenthMaxHP call SwitchTurnCore - call Function3ccef + call RestoreHP ld hl, BattleText_0x80880 jp StdBattleTextBox ; 3c93c @@ -1531,7 +1531,7 @@ Function3c93c: ; 3c93c .asm_3ca14 call GetItemName call SwitchTurnCore - call Function3ddc8 + call ItemRecoveryAnim call SwitchTurnCore ld hl, BattleText_UserRecoveredPPUsing jp StdBattleTextBox @@ -2032,7 +2032,7 @@ Function3ccde: ; 3ccde ; 3ccef -Function3ccef: ; 3ccef +RestoreHP ; 3ccef ld hl, EnemyMonMaxHP ld a, [hBattleTurn] and a @@ -4461,21 +4461,21 @@ Function3dcf9: ; 3dcf9 jr z, .player_1 call SetPlayerTurn call Function3dd2f - call Function3dde9 + call UseHeldStatusHealingItem call Function3de51 call SetEnemyTurn call Function3dd2f - call Function3dde9 + call UseHeldStatusHealingItem jp Function3de51 .player_1 call SetEnemyTurn call Function3dd2f - call Function3dde9 + call UseHeldStatusHealingItem call Function3de51 call SetPlayerTurn call Function3dd2f - call Function3dde9 + call UseHeldStatusHealingItem jp Function3de51 ; 3dd2f @@ -4519,7 +4519,7 @@ Function3dd2f: ; 3dd2f ret nc .asm_3dd66 - call Function3ddc8 + call ItemRecoveryAnim ld a, [hli] ld [Buffer2], a ld a, [hl] @@ -4559,7 +4559,7 @@ Function3dd2f: ; 3dd2f .asm_3dda4 ld [wd10a], a predef Functionc6e0 -Function3ddac: +UseOpponentItem: call RefreshBattleHuds callab GetOpponentItem ld a, [hl] @@ -4571,7 +4571,7 @@ Function3ddac: ; 3ddc8 -Function3ddc8: ; 3ddc8 +ItemRecoveryAnim: ; 3ddc8 push hl push de push bc @@ -4590,16 +4590,16 @@ Function3ddc8: ; 3ddc8 ret ; 3dde9 -Function3dde9: ; 3dde9 +UseHeldStatusHealingItem: ; 3dde9 callab GetOpponentItem ld hl, .Statuses -.asm_3ddf2 +.loop ld a, [hli] cp $ff ret z inc hl cp b - jr nz, .asm_3ddf2 + jr nz, .loop dec hl ld b, [hl] ld a, BATTLE_VARS_STATUS_OPP @@ -4620,26 +4620,26 @@ Function3dde9: ; 3dde9 and [hl] res SUBSTATUS_NIGHTMARE, [hl] ld a, b - cp $7f - jr nz, .asm_3de26 + cp 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR + jr nz, .skip_confuse ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVarAddr res SUBSTATUS_CONFUSED, [hl] -.asm_3de26 +.skip_confuse ld hl, CalcEnemyStats ld a, [hBattleTurn] and a - jr z, .asm_3de31 + jr z, .got_pointer ld hl, CalcPlayerStats -.asm_3de31 +.got_pointer call SwitchTurnCore ld a, BANK(CalcEnemyStats) rst FarCall call SwitchTurnCore - call Function3ddc8 - call Function3ddac + call ItemRecoveryAnim + call UseOpponentItem ld a, $1 and a ret @@ -4675,7 +4675,7 @@ Function3de51: ; 3de51 call GetBattleVarAddr res SUBSTATUS_CONFUSED, [hl] call GetItemName - call Function3ddc8 + call ItemRecoveryAnim ld hl, BattleText_0x80dab call StdBattleTextBox ld a, [hBattleTurn] diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm index f355ffc83..8bb72661b 100644 --- a/battle/effect_command_pointers.asm +++ b/battle/effect_command_pointers.asm @@ -166,8 +166,8 @@ BattleCommandPointers: ; 3fd28 dw BattleCommanda3 ; 34833 dw BattleCommand_AllStatsUp ; 36500 dw BattleCommanda5 ; 35165 - dw BattleCommanda6 ; 365af - dw BattleCommanda7 ; 365c3 + dw BattleCommand_RaiseSubNoAnim ; 365af + dw BattleCommand_LowerSubNoAnim ; 365c3 dw BattleCommanda8 ; 355b5 dw BattleCommand_ClearMissDamage ; 355d5 - a9 dw BattleCommand_MoveDelay ; 37e80 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 2239385f3..eca9ae8d8 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -371,12 +371,12 @@ CantMove: ; 341f0 ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp FLY - jr z, .asm_3420f + jr z, .fly_dig cp DIG ret nz -.asm_3420f +.fly_dig res SUBSTATUS_UNDERGROUND, [hl] res SUBSTATUS_FLYING, [hl] jp Function37ece @@ -384,7 +384,7 @@ CantMove: ; 341f0 -Function34216: ; 34216 +OpponentCantMove: ; 34216 call BattleCommand_SwitchTurn call CantMove jp BattleCommand_SwitchTurn @@ -2726,8 +2726,8 @@ BattleCommand_LowerSub: ; 34eee ret nz .charge_turn - call Function37ed5 - jr c, .asm_34f36 + call _CheckBattleScene + jr c, .skip_anims xor a ld [wcfca], a @@ -2737,8 +2737,8 @@ BattleCommand_LowerSub: ; 34eee ld a, SUBSTITUTE jp PlayMoveAnim_KeepHiID -.asm_34f36 - call BattleCommanda7 +.skip_anims + call BattleCommand_LowerSubNoAnim jp BattleCommand_MoveDelay .Rampage @@ -2893,8 +2893,8 @@ BattleCommand_RaiseSub: ; 35004 bit SUBSTATUS_SUBSTITUTE, a ret z - call Function37ed5 - jp c, BattleCommanda6 + call _CheckBattleScene + jp c, BattleCommand_RaiseSubNoAnim xor a ld [wcfca], a @@ -5463,7 +5463,7 @@ Function35de0: ; 35de0 call StdBattleTextBox call BattleCommand_SwitchTurn - call BattleCommanda7 + call BattleCommand_LowerSubNoAnim ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND @@ -5516,15 +5516,15 @@ BattleCommand_SleepTarget: ; 35e5c call GetOpponentItem ld a, b cp HELD_PREVENT_SLEEP - jr nz, .asm_35e70 + jr nz, .not_protected_by_item ld a, [hl] ld [wNamedObjectIndexBuffer], a call GetItemName ld hl, ProtectedByText - jr .asm_35ec6 + jr .fail -.asm_35e70 +.not_protected_by_item ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr ld d, h @@ -5532,36 +5532,36 @@ BattleCommand_SleepTarget: ; 35e5c ld a, [de] and SLP ld hl, AlreadyAsleepText - jr nz, .asm_35ec6 + jr nz, .fail ld a, [AttackMissed] and a jp nz, PrintDidntAffect2 ld hl, DidntAffect1Text - call Function35ece - jr c, .asm_35ec6 + call .CheckAIRandomFail + jr c, .fail ld a, [de] and a - jr nz, .asm_35ec6 + jr nz, .fail call CheckSubstituteOpp - jr nz, .asm_35ec6 + jr nz, .fail call AnimateCurrentMove ld b, $7 ld a, [InBattleTowerBattle] and a - jr z, .asm_35ea4 + jr z, .random_loop ld b, $3 -.asm_35ea4 +.random_loop call BattleRandom and b - jr z, .asm_35ea4 + jr z, .random_loop cp 7 - jr z, .asm_35ea4 + jr z, .random_loop inc a ld [de], a call UpdateOpponentInParty @@ -5570,12 +5570,12 @@ BattleCommand_SleepTarget: ; 35e5c ld hl, FellAsleepText call StdBattleTextBox - callba Function3dde9 + callba UseHeldStatusHealingItem - jp z, Function34216 + jp z, OpponentCantMove ret -.asm_35ec6 +.fail push hl call AnimateFailedMove pop hl @@ -5583,31 +5583,31 @@ BattleCommand_SleepTarget: ; 35e5c ; 35ece -Function35ece: ; 35ece +.CheckAIRandomFail: ; 35ece ; Enemy turn ld a, [hBattleTurn] and a - jr z, .asm_35eec + jr z, .dont_fail ; Not in link battle ld a, [wLinkMode] and a - jr nz, .asm_35eec + jr nz, .dont_fail ld a, [InBattleTowerBattle] and a - jr nz, .asm_35eec + jr nz, .dont_fail ; Not locked-on by the enemy ld a, [PlayerSubStatus5] bit SUBSTATUS_LOCK_ON, a - jr nz, .asm_35eec + jr nz, .dont_fail call BattleRandom - cp $40 + cp $40 ; 25% ret c -.asm_35eec +.dont_fail xor a ret ; 35eee @@ -5625,7 +5625,7 @@ BattleCommand_PoisonTarget: ; 35eee ld a, [TypeModifier] and $7f ret z - call Function35fe1 + call CheckIfTargetIsPoisonType ret z call GetOpponentItem ld a, b @@ -5634,9 +5634,10 @@ BattleCommand_PoisonTarget: ; 35eee ld a, [EffectFailed] and a ret nz - call Function37962 + call SafeCheckSafeguard ret nz - call Function35ff5 + + call PoisonOpponent ld de, ANIM_PSN call PlayOpponentBattleAnim call RefreshBattleHuds @@ -5644,7 +5645,7 @@ BattleCommand_PoisonTarget: ; 35eee ld hl, WasPoisonedText call StdBattleTextBox - callba Function3dde9 + callba UseHeldStatusHealingItem ret ; 35f2c @@ -5655,83 +5656,83 @@ BattleCommand_Poison: ; 35f2c ld hl, DoesntAffectText ld a, [TypeModifier] and $7f - jp z, .asm_35fb8 + jp z, .failed - call Function35fe1 - jp z, .asm_35fb8 + call CheckIfTargetIsPoisonType + jp z, .failed ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar ld b, a ld hl, AlreadyPoisonedText and 1 << PSN - jp nz, .asm_35fb8 + jp nz, .failed call GetOpponentItem ld a, b cp HELD_PREVENT_POISON - jr nz, .asm_35f5f + jr nz, .do_poison ld a, [hl] ld [wNamedObjectIndexBuffer], a call GetItemName ld hl, ProtectedByText - jr .asm_35fb8 + jr .failed -.asm_35f5f +.do_poison ld hl, DidntAffect1Text ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar and a - jr nz, .asm_35fb8 + jr nz, .failed ld a, [hBattleTurn] and a - jr z, .asm_35f89 + jr z, .skip_random ld a, [wLinkMode] and a - jr nz, .asm_35f89 + jr nz, .skip_random ld a, [InBattleTowerBattle] and a - jr nz, .asm_35f89 + jr nz, .skip_random ld a, [PlayerSubStatus5] bit SUBSTATUS_LOCK_ON, a - jr nz, .asm_35f89 + jr nz, .skip_random call BattleRandom - cp $40 - jr c, .asm_35fb8 + cp $40 ; 25% chance AI fails + jr c, .failed -.asm_35f89 +.skip_random call CheckSubstituteOpp - jr nz, .asm_35fb8 + jr nz, .failed ld a, [AttackMissed] and a - jr nz, .asm_35fb8 - call Function35fc9 - jr z, .asm_35fa4 + jr nz, .failed + call .check_toxic + jr z, .toxic - call Function35fc0 + call .apply_poison ld hl, WasPoisonedText call StdBattleTextBox - jr .asm_35fb1 + jr .finished -.asm_35fa4 +.toxic set SUBSTATUS_TOXIC, [hl] xor a ld [de], a - call Function35fc0 + call .apply_poison ld hl, BadlyPoisonedText call StdBattleTextBox -.asm_35fb1 - callba Function3dde9 +.finished + callba UseHeldStatusHealingItem ret -.asm_35fb8 +.failed push hl call AnimateFailedMove pop hl @@ -5739,14 +5740,14 @@ BattleCommand_Poison: ; 35f2c ; 35fc0 -Function35fc0: ; 35fc0 +.apply_poison: ; 35fc0 call AnimateCurrentMove - call Function35ff5 + call PoisonOpponent jp RefreshBattleHuds ; 35fc9 -Function35fc9: ; 35fc9 +.check_toxic: ; 35fc9 ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVarAddr ld a, [hBattleTurn] @@ -5762,7 +5763,7 @@ Function35fc9: ; 35fc9 ; 35fe1 -Function35fe1: ; 35fe1 +CheckIfTargetIsPoisonType: ; 35fe1 ld de, EnemyMonType1 ld a, [hBattleTurn] and a @@ -5779,7 +5780,7 @@ Function35fe1: ; 35fe1 ; 35ff5 -Function35ff5: ; 35ff5 +PoisonOpponent: ; 35ff5 ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr set PSN, [hl] @@ -5789,7 +5790,7 @@ Function35ff5: ; 35ff5 BattleCommand_DrainTarget: ; 35fff ; draintarget - call Function36011 + call SapHealth ld hl, SuckedHealthText jp StdBattleTextBox ; 36008 @@ -5797,34 +5798,34 @@ BattleCommand_DrainTarget: ; 35fff BattleCommand_EatDream: ; 36008 ; eatdream - call Function36011 + call SapHealth ld hl, DreamEatenText jp StdBattleTextBox ; 36011 -Function36011: ; 36011 +SapHealth: ; 36011 ld hl, CurDamage ld a, [hli] srl a - ld [$ffb3], a + ld [hDividend], a ld b, a ld a, [hl] rr a - ld [$ffb4], a + ld [hDividend + 1], a or b - jr nz, .asm_36026 ; 0x36020 $4 + jr nz, .ok1 ; 0x36020 $4 ld a, $1 - ld [$ffb4], a -.asm_36026 + ld [hDividend + 1], a +.ok1 ld hl, BattleMonHP ld de, BattleMonMaxHP ld a, [hBattleTurn] and a - jr z, .asm_36037 ; 0x3602f $6 + jr z, .battlemonhp ; 0x3602f $6 ld hl, EnemyMonHP ld de, EnemyMonMaxHP -.asm_36037 +.battlemonhp ld bc, wd1ed ld a, [hli] ld [bc], a @@ -5838,17 +5839,17 @@ Function36011: ; 36011 ld a, [de] dec bc ld [bc], a - ld a, [$ffb4] + ld a, [hDividend + 1] ld b, [hl] add b ld [hld], a ld [wd1ee], a - ld a, [$ffb3] + ld a, [hDividend] ld b, [hl] adc b ld [hli], a ld [wd1ef], a - jr c, .asm_36064 ; 0x36056 $c + jr c, .okay2 ; 0x36056 $c ld a, [hld] ld b, a ld a, [de] @@ -5859,8 +5860,8 @@ Function36011: ; 36011 ld a, [de] inc de sbc b - jr nc, .asm_36070 ; 0x36062 $c -.asm_36064 + jr nc, .okay3 ; 0x36062 $c +.okay2 ld a, [de] ld [hld], a ld [wd1ee], a @@ -5869,15 +5870,15 @@ Function36011: ; 36011 ld [hli], a ld [wd1ef], a inc de -.asm_36070 +.okay3 ld a, [hBattleTurn] and a hlcoord 10, 9 ld a, $1 - jr z, .asm_3607e ; 0x36078 $4 + jr z, .hp_bar ; 0x36078 $4 hlcoord 2, 2 xor a -.asm_3607e +.hp_bar ld [wd10a], a predef Functionc6e0 call RefreshBattleHuds @@ -5908,7 +5909,7 @@ BattleCommand_BurnTarget: ; 3608c ld a, [EffectFailed] and a ret nz - call Function37962 + call SafeCheckSafeguard ret nz ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr @@ -5923,7 +5924,7 @@ BattleCommand_BurnTarget: ; 3608c ld hl, WasBurnedText call StdBattleTextBox - callba Function3dde9 + callba UseHeldStatusHealingItem ret ; 360dd @@ -5981,7 +5982,7 @@ BattleCommand_FreezeTarget: ; 36102 ld a, [EffectFailed] and a ret nz - call Function37962 + call SafeCheckSafeguard ret nz ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr @@ -5994,16 +5995,16 @@ BattleCommand_FreezeTarget: ; 36102 ld hl, WasFrozenText call StdBattleTextBox - callba Function3dde9 + callba UseHeldStatusHealingItem ret nz - call Function34216 + call OpponentCantMove call EndRechargeOpp ld hl, wc740 ld a, [hBattleTurn] and a - jr z, .asm_36162 + jr z, .finish ld hl, wc73f -.asm_36162 +.finish ld [hl], $1 ret ; 36165 @@ -6030,7 +6031,7 @@ BattleCommand_ParalyzeTarget: ; 36165 ld a, [EffectFailed] and a ret nz - call Function37962 + call SafeCheckSafeguard ret nz ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr @@ -6042,7 +6043,7 @@ BattleCommand_ParalyzeTarget: ; 36165 call PlayOpponentBattleAnim call RefreshBattleHuds call PrintParalyze - ld hl, Function3dde9 + ld hl, UseHeldStatusHealingItem jp CallBattleCore ; 361ac @@ -6232,7 +6233,7 @@ Function36281: ; 36281 ld a, $1 ld [bc], a - call Function37ed5 + call _CheckBattleScene ret nc xor a @@ -6793,7 +6794,7 @@ BattleCommand_Curl: ; 365a7 ; 365af -BattleCommanda6: ; 365af +BattleCommand_RaiseSubNoAnim: ; 365af ld hl, GetMonBackpic ld a, [hBattleTurn] and a @@ -6807,7 +6808,7 @@ BattleCommanda6: ; 365af ; 365c3 -BattleCommanda7: ; 365c3 +BattleCommand_LowerSubNoAnim: ; 365c3 ld hl, Function3f447 ld a, [hBattleTurn] and a @@ -7062,7 +7063,7 @@ BattleCommand_CheckRampage: ; 3671a res SUBSTATUS_RAMPAGE, [hl] call BattleCommand_SwitchTurn - call Function37962 + call SafeCheckSafeguard push af call BattleCommand_SwitchTurn pop af @@ -8061,7 +8062,7 @@ BattleCommand_ConfuseTarget: ; 36d1d ld a, [EffectFailed] and a ret nz - call Function37962 + call SafeCheckSafeguard ret nz call CheckSubstituteOpp ret nz @@ -8228,7 +8229,7 @@ BattleCommand_Paralyze: ; 36dc7 call CallBattleCore call UpdateBattleHuds call PrintParalyze - ld hl, Function3dde9 + ld hl, UseHeldStatusHealingItem jp CallBattleCore .asm_36e49 call AnimateFailedMove @@ -8338,7 +8339,7 @@ endr xor a ld [hl], a ld [de], a - call Function37ed5 + call _CheckBattleScene jr c, .mobile xor a @@ -8350,7 +8351,7 @@ endr jr .finish .mobile - call BattleCommanda6 + call BattleCommand_RaiseSubNoAnim .finish ld hl, MadeSubstituteText call StdBattleTextBox @@ -8836,7 +8837,7 @@ BattleCommand_Heal: ; 3713e .asm_371a9 call AnimateCurrentMove call BattleCommand_SwitchTurn - ld hl, Function3ccef + ld hl, RestoreHP call CallBattleCore call BattleCommand_SwitchTurn call UpdateUserInParty @@ -8870,12 +8871,12 @@ BattleCommand_Transform: ; 371cd call GetBattleVarAddr bit SUBSTATUS_SUBSTITUTE, [hl] push af - jr z, .asm_37200 + jr z, .skip_substitute call Function34548 - jr nz, .asm_37200 + jr nz, .skip_substitute ld a, SUBSTITUTE call PlayMoveAnim_KeepHiID -.asm_37200 +.skip_substitute ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVarAddr set SUBSTATUS_TRANSFORMED, [hl] @@ -8884,12 +8885,12 @@ BattleCommand_Transform: ; 371cd ld de, EnemyMonSpecies ld a, [hBattleTurn] and a - jr nz, .asm_3721f + jr nz, .got_mon_species ld hl, EnemyMonSpecies ld de, BattleMonSpecies xor a ld [CurMoveNum], a -.asm_3721f +.got_mon_species push hl ld a, [hli] ld [de], a @@ -8901,21 +8902,23 @@ endr call CopyBytes ld a, [hBattleTurn] and a - jr z, .asm_3723a + jr z, .skip_enemy_backup ld a, [de] - ld [wc6f2], a + ld [wEnemyBackupDVs], a inc de ld a, [de] - ld [wc6f2 + 1], a + ld [wEnemyBackupDVs + 1], a dec de -.asm_3723a +.skip_enemy_backup +; copy DVs ld a, [hli] ld [de], a inc de ld a, [hli] ld [de], a inc de - ld bc, $000c +; move pointer to stats + ld bc, BattleMonStats - BattleMonPP add hl, bc push hl ld h, d @@ -8924,30 +8927,31 @@ endr ld d, h ld e, l pop hl - ld bc, $000c + ld bc, BattleMonStructEnd - BattleMonStats call CopyBytes - ld bc, $ffe2 +; init the power points + ld bc, BattleMonMoves - BattleMonStructEnd add hl, bc push de ld d, h ld e, l pop hl - ld bc, $ffe8 + ld bc, BattleMonPP - BattleMonStructEnd add hl, bc ld b, NUM_MOVES -.asm_3725f +.pp_loop ld a, [de] inc de and a - jr z, .asm_3726c + jr z, .done_move cp SKETCH ld a, 1 - jr z, .asm_3726c + jr z, .done_move ld a, 5 -.asm_3726c +.done_move ld [hli], a dec b - jr nz, .asm_3725f + jr nz, .pp_loop pop hl ld a, [hl] ld [wNamedObjectIndexBuffer], a @@ -8960,22 +8964,22 @@ endr ld de, PlayerStatLevels ld bc, 8 call BattleSideCopy - call Function37ed5 - jr c, .asm_372a8 + call _CheckBattleScene + jr c, .skip_anims ld a, [hBattleTurn] and a ld a, [wc6fe] - jr z, .asm_372a0 + jr z, .got_byte ld a, [wc6fa] -.asm_372a0 +.got_byte and a - jr nz, .asm_372a8 + jr nz, .skip_anims call PlayPlayerMoveAnim_ClearHiID - jr .asm_372ae -.asm_372a8 + jr .after_anim +.skip_anims call BattleCommand_MoveDelay - call BattleCommanda6 -.asm_372ae + call BattleCommand_RaiseSubNoAnim +.after_anim xor a ld [wcfca], a ld [FXAnimIDHi], a @@ -9186,7 +9190,7 @@ BattleCommand_SelfDestruct: ; 37380 ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVarAddr res SUBSTATUS_DESTINY_BOND, [hl] - call Function37ed5 + call _CheckBattleScene ret nc callba DrawPlayerHUD callba DrawEnemyHUD @@ -9393,86 +9397,7 @@ ResetFuryCutterCount: ; 377be ; 377ce -BattleCommand_Attract: ; 377ce -; attract - ld a, [AttackMissed] - and a - jr nz, .failed - call Function377f5 - jr c, .failed - call CheckHiddenOpponent - jr nz, .failed - ld a, BATTLE_VARS_SUBSTATUS1_OPP - call GetBattleVarAddr - bit SUBSTATUS_IN_LOVE, [hl] - jr nz, .failed - - set SUBSTATUS_IN_LOVE, [hl] - call AnimateCurrentMove - -; 'fell in love!' - ld hl, FellInLoveText - jp StdBattleTextBox - -.failed - jp Function37354 -; 377f5 - - -Function377f5: ; 377f5 - ld a, MON_SPECIES - call BattlePartyAttr - ld a, [hl] - ld [CurPartySpecies], a - - ld a, [CurBattleMon] - ld [CurPartyMon], a - xor a - ld [MonType], a - - callba GetGender - jr c, .asm_37849 - - ld b, 1 - jr nz, .asm_37815 - dec b - -.asm_37815 - push bc - ld a, [TempEnemyMonSpecies] - ld [CurPartySpecies], a - ld hl, EnemyMonDVs - ld a, [EnemySubStatus5] - bit SUBSTATUS_TRANSFORMED, a - jr z, .asm_37829 - ld hl, wc6f2 -.asm_37829 - ld a, [hli] - ld [TempMonDVs], a - ld a, [hl] - ld [TempMonDVs + 1], a - ld a, 3 - ld [MonType], a - callba GetGender - pop bc - jr c, .asm_37849 - - ld a, 1 - jr nz, .asm_37844 - dec a - -.asm_37844 - xor b - jr z, .asm_37849 - - and a - ret - -.asm_37849 - scf - ret -; 3784b - +INCLUDE "battle/effects/attract.asm" BattleCommand_HappinessPower: ; 3784b ; happinesspower @@ -9502,100 +9427,7 @@ BattleCommand_HappinessPower: ; 3784b ; 37874 -BattleCommand_Present: ; 37874 -; present - - ld a, [wLinkMode] - cp $3 - jr z, .asm_3787d - push bc - push de -.asm_3787d - - call BattleCommand_Stab - - ld a, [wLinkMode] - cp $3 - jr z, .asm_37889 - pop de - pop bc -.asm_37889 - - ld a, [wTypeMatchup] - and a - jp z, AnimateFailedMove - ld a, [AttackMissed] - and a - jp nz, AnimateFailedMove - - push bc - call BattleRandom - ld b, a - ld hl, .table_37907 - ld c, 0 -.asm_378a1 - ld a, [hli] - cp $ff - jr z, .asm_378b7 ; 378a4 $11 - cp b - jr nc, .asm_378ad ; 378a7 $4 - inc c - inc hl - jr .asm_378a1 ; 378ab $f4 - -.asm_378ad - ld a, c - ld [wKickCounter], a - call AnimateCurrentMoveEitherSide - ld d, [hl] - pop bc - ret - -.asm_378b7 - pop bc - ld a, $3 - ld [wKickCounter], a - call AnimateCurrentMove - call BattleCommand_SwitchTurn - ld hl, AICheckPlayerMaxHP - ld a, [hBattleTurn] - and a - jr z, .asm_378ce ; 378c9 $3 - ld hl, AICheckEnemyMaxHP -.asm_378ce - ld a, BANK(AICheckPlayerMaxHP) - rst FarCall - jr c, .asm_378f3 ; 378d1 $20 - - ld hl, GetQuarterMaxHP - call CallBattleCore - call BattleCommand_SwitchTurn - ld hl, Function3ccef - call CallBattleCore - call BattleCommand_SwitchTurn - ld hl, RegainedHealthText - call StdBattleTextBox - call BattleCommand_SwitchTurn - call UpdateOpponentInParty - jr .asm_37904 ; 378f1 $11 - -.asm_378f3 - call BattleCommand_SwitchTurn - call Function37ed5 - jr nc, .asm_37904 ; 378f9 $9 - call AnimateFailedMove - ld hl, RefusedGiftText - call StdBattleTextBox -.asm_37904 - jp EndMoveEffect - -.table_37907 - db 40 percent, 40 - db 70 percent + 1, 80 - db 80 percent, 120 - db $ff -; 3790e - +INCLUDE "battle/effects/present.asm" BattleCommand_FrustrationPower: ; 3790e ; frustrationpower @@ -9652,15 +9484,15 @@ BattleCommand_Safeguard: ; 37939 ; 37962 -Function37962: ; 37962 +SafeCheckSafeguard: ; 37962 push hl ld hl, EnemyScreens ld a, [hBattleTurn] and a - jr z, .asm_3796e + jr z, .got_turn ld hl, PlayerScreens -.asm_3796e +.got_turn bit SCREENS_SAFEGUARD, [hl] pop hl ret @@ -9672,9 +9504,9 @@ BattleCommand_CheckSafeguard: ; 37972 ld hl, EnemyScreens ld a, [hBattleTurn] and a - jr z, .asm_3797d ; 37978 $3 + jr z, .got_turn ; 37978 $3 ld hl, PlayerScreens -.asm_3797d +.got_turn bit SCREENS_SAFEGUARD, [hl] ret z ld a, 1 @@ -10108,7 +9940,7 @@ endr call AnimateCurrentMove call BattleCommand_SwitchTurn - callab Function3ccef + callab RestoreHP call BattleCommand_SwitchTurn call UpdateUserInParty @@ -10717,8 +10549,8 @@ Function37ece: ; 37ece ; 37ed5 -Function37ed5: ; 37ed5 -; Related to mobile link battles. +_CheckBattleScene: ; 37ed5 +; Checks the options. Returns carry if battle animations are disabled. push hl push de push bc diff --git a/battle/effects/attract.asm b/battle/effects/attract.asm new file mode 100755 index 000000000..5e9561206 --- /dev/null +++ b/battle/effects/attract.asm @@ -0,0 +1,79 @@ +BattleCommand_Attract: ; 377ce +; attract + ld a, [AttackMissed] + and a + jr nz, .failed + call CheckOppositeGender + jr c, .failed + call CheckHiddenOpponent + jr nz, .failed + ld a, BATTLE_VARS_SUBSTATUS1_OPP + call GetBattleVarAddr + bit SUBSTATUS_IN_LOVE, [hl] + jr nz, .failed + + set SUBSTATUS_IN_LOVE, [hl] + call AnimateCurrentMove + +; 'fell in love!' + ld hl, FellInLoveText + jp StdBattleTextBox + +.failed + jp Function37354 +; 377f5 + + +CheckOppositeGender: ; 377f5 + ld a, MON_SPECIES + call BattlePartyAttr + ld a, [hl] + ld [CurPartySpecies], a + + ld a, [CurBattleMon] + ld [CurPartyMon], a + xor a + ld [MonType], a + + callba GetGender + jr c, .genderless_samegender + + ld b, 1 + jr nz, .got_gender + dec b + +.got_gender + push bc + ld a, [TempEnemyMonSpecies] + ld [CurPartySpecies], a + ld hl, EnemyMonDVs + ld a, [EnemySubStatus5] + bit SUBSTATUS_TRANSFORMED, a + jr z, .not_transformed + ld hl, wEnemyBackupDVs +.not_transformed + ld a, [hli] + ld [TempMonDVs], a + ld a, [hl] + ld [TempMonDVs + 1], a + ld a, 3 + ld [MonType], a + callba GetGender + pop bc + jr c, .genderless_samegender + + ld a, 1 + jr nz, .got_enemy_gender + dec a + +.got_enemy_gender + xor b + jr z, .genderless_samegender + + and a + ret + +.genderless_samegender + scf + ret +; 3784b diff --git a/battle/effects/present.asm b/battle/effects/present.asm new file mode 100755 index 000000000..a1594e379 --- /dev/null +++ b/battle/effects/present.asm @@ -0,0 +1,93 @@ +BattleCommand_Present: ; 37874 +; present + + ld a, [wLinkMode] + cp LINK_COLOSSEUM + jr z, .colosseum_skippush + push bc + push de +.colosseum_skippush + + call BattleCommand_Stab + + ld a, [wLinkMode] + cp LINK_COLOSSEUM + jr z, .colosseum_skippop + pop de + pop bc +.colosseum_skippop + + ld a, [wTypeMatchup] + and a + jp z, AnimateFailedMove + ld a, [AttackMissed] + and a + jp nz, AnimateFailedMove + + push bc + call BattleRandom + ld b, a + ld hl, .PresentPower + ld c, 0 +.next + ld a, [hli] + cp $ff + jr z, .heal_effect ; 378a4 $11 + cp b + jr nc, .got_power ; 378a7 $4 + inc c + inc hl + jr .next ; 378ab $f4 + +.got_power + ld a, c + ld [wPresentPower], a + call AnimateCurrentMoveEitherSide + ld d, [hl] + pop bc + ret + +.heal_effect + pop bc + ld a, $3 + ld [wPresentPower], a + call AnimateCurrentMove + call BattleCommand_SwitchTurn + ld hl, AICheckPlayerMaxHP + ld a, [hBattleTurn] + and a + jr z, .got_hp_fn_pointer ; 378c9 $3 + ld hl, AICheckEnemyMaxHP +.got_hp_fn_pointer + ld a, BANK(AICheckPlayerMaxHP) + rst FarCall + jr c, .already_fully_healed ; 378d1 $20 + + ld hl, GetQuarterMaxHP + call CallBattleCore + call BattleCommand_SwitchTurn + ld hl, RestoreHP + call CallBattleCore + call BattleCommand_SwitchTurn + ld hl, RegainedHealthText + call StdBattleTextBox + call BattleCommand_SwitchTurn + call UpdateOpponentInParty + jr .do_animation ; 378f1 $11 + +.already_fully_healed + call BattleCommand_SwitchTurn + call _CheckBattleScene + jr nc, .do_animation ; 378f9 $9 + call AnimateFailedMove + ld hl, RefusedGiftText + call StdBattleTextBox +.do_animation + jp EndMoveEffect + +.PresentPower + db 40 percent, 40 + db 70 percent + 1, 80 + db 80 percent, 120 + db $ff +; 3790e diff --git a/battle/misc.asm b/battle/misc.asm index 6d38b8e2f..f6b20e739 100644 --- a/battle/misc.asm +++ b/battle/misc.asm @@ -13,11 +13,11 @@ Functionfbd54: ; fbd54 jr Functionfbd91 Functionfbd69: ; fbd69 (3e:7d69) - callba BattleCommanda6 + callba BattleCommand_RaiseSubNoAnim jr Functionfbd77 Functionfbd71: ; fbd71 (3e:7d71) - callba BattleCommanda7 + callba BattleCommand_LowerSubNoAnim Functionfbd77: ; fbd77 (3e:7d77) xor a diff --git a/battle/moves/move_effects.asm b/battle/moves/move_effects.asm index 451d1481a..7e17341fc 100644 --- a/battle/moves/move_effects.asm +++ b/battle/moves/move_effects.asm @@ -331,7 +331,7 @@ EvasionUp: lowersub evasionup statupanim - effect0xa7 + lowersubnoanim raisesub statupmessage statupfailtext diff --git a/macros/move_effect.asm b/macros/move_effect.asm index 0c2325e8d..354e5220a 100644 --- a/macros/move_effect.asm +++ b/macros/move_effect.asm @@ -170,8 +170,8 @@ endm command effect0xa3 command allstatsup command effect0xa5 - command effect0xa6 - command effect0xa7 + command raisesubnoanim + command lowersubnoanim command effect0xa8 command clearmissdamage command movedelay diff --git a/main.asm b/main.asm index 36a236a1b..ebbb8c28b 100644 --- a/main.asm +++ b/main.asm @@ -31025,7 +31025,7 @@ AI_Redundant: ; 2c41a jr .NotRedundant .Attract: ; 2c4fe - callba Function377f5 + callba CheckOppositeGender jr c, .Redundant ld a, [PlayerSubStatus1] bit SUBSTATUS_IN_LOVE, a diff --git a/wram.asm b/wram.asm index 40808140e..4879804e7 100644 --- a/wram.asm +++ b/wram.asm @@ -66,6 +66,7 @@ battle_struct: MACRO \1Type:: \1Type1:: db \1Type2:: db +\1StructEnd:: ENDM box: MACRO @@ -600,7 +601,8 @@ EnemyDamageTaken:: ; c684 wc686:: ds 2 wc688:: ds 1 -wKickCounter:: ds 1 +wKickCounter:: +wPresentPower:: ds 1 wc68a:: BattleScriptBuffer:: ; c68a ds 40 @@ -703,6 +705,7 @@ wPayDayMoney:: ds 3 ; c6ec ds 1 wc6f0:: ds 2 +wEnemyBackupDVs:: ; used when enemy is transformed wc6f2:: ds 2 AlreadyDisobeyed:: ; c6f4 ds 1 -- cgit v1.2.3 From e0445806694a80a98e4d803478a2675ec8803ba6 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 7 Nov 2015 08:05:57 -0500 Subject: battle/ai/switch.asm and more battle/effect_commands.asm --- battle/ai/items.asm | 8 +- battle/ai/scoring.asm | 8 +- battle/ai/switch.asm | 662 ++++++++++++++++++++++++++++++++ battle/core.asm | 32 +- battle/effect_command_pointers.asm | 2 +- battle/effect_commands.asm | 759 +++---------------------------------- battle/moves/move_effects.asm | 4 +- engine/predef.asm | 2 +- items/item_effects.asm | 2 +- macros/move_effect.asm | 2 +- main.asm | 24 +- wram.asm | 1 + 12 files changed, 755 insertions(+), 751 deletions(-) create mode 100755 battle/ai/switch.asm diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 37c8ea4b7..285f92c73 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -44,7 +44,7 @@ DontSwitch: ; 38041 ; 38045 SwitchOften: ; 38045 - callab Function34941 + callab CheckAbleToSwitch ld a, [wc717] and $f0 jp z, DontSwitch @@ -80,7 +80,7 @@ SwitchOften: ; 38045 ; 38083 SwitchRarely: ; 38083 - callab Function34941 + callab CheckAbleToSwitch ld a, [wc717] and $f0 jp z, DontSwitch @@ -115,7 +115,7 @@ SwitchRarely: ; 38083 ; 380c1 SwitchSometimes: ; 380c1 - callab Function34941 + callab CheckAbleToSwitch ld a, [wc717] and $f0 jp z, DontSwitch @@ -665,7 +665,7 @@ EnemyPotionFinish: ; 38436 xor a ld [wd10a], a call AIUsedItemSound - predef Functionc6e0 + predef AnimateHPBar jp AIUpdateHUD diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index bd8ef20ca..52c71d624 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -981,7 +981,7 @@ AI_Smart_Whirlwind: ; 38a2a ; Consider player's type(s) if its moves are unknown. push hl - callab Function3484e + callab CheckPlayerMoveTypeMatchups ld a, [wc716] cp 10 ; neutral pop hl @@ -1908,7 +1908,7 @@ AI_Smart_MeanLook: ; 38dfb ; Otherwise, discourage this move unless the player only has not very effective moves against the enemy. push hl - callab Function3484e + callab CheckPlayerMoveTypeMatchups ld a, [wc716] cp $b ; not very effective pop hl @@ -2169,7 +2169,7 @@ AI_Smart_PerishSong: ; 38f4a jr nz, .yes push hl - callab Function3484e + callab CheckPlayerMoveTypeMatchups ld a, [wc716] cp 10 ; 1.0 pop hl @@ -2431,7 +2431,7 @@ AI_Smart_BatonPass: ; 39062 ; Consider player's type(s) if its moves are unknown. push hl - callab Function3484e + callab CheckPlayerMoveTypeMatchups ld a, [wc716] cp 10 ; neutral pop hl diff --git a/battle/ai/switch.asm b/battle/ai/switch.asm new file mode 100755 index 000000000..3d65b187a --- /dev/null +++ b/battle/ai/switch.asm @@ -0,0 +1,662 @@ +CheckPlayerMoveTypeMatchups: ; 3484e +; Check how well the moves you've already used +; fare against the enemy's Pokemon. Used to +; score a potential switch. + push hl + push de + push bc + ld a, 10 + ld [wc716], a + ld hl, PlayerUsedMoves + ld a, [hl] + and a + jr z, .unknown_moves + + ld d, NUM_MOVES + ld e, 0 +.loop + ld a, [hli] + and a + jr z, .exit + push hl + dec a + ld hl, Moves + MOVE_POWER + call GetMoveAttr + and a + jr z, .next + + inc hl + call GetMoveByte + ld hl, EnemyMonType + call CheckTypeMatchup + ld a, [wTypeMatchup] + cp 10 + 1 ; 1.0 + 0.1 + jr nc, .super_effective + and a + jr z, .next + cp 10 ; 1.0 + jr nc, .neutral + +.not_very_effective + ld a, e + cp 1 ; 0.1 + jr nc, .next + ld e, 1 + jr .next + +.neutral + ld e, 2 + jr .next + +.super_effective + call .DecreaseScore + pop hl + jr .done + +.next + pop hl + dec d + jr nz, .loop + +.exit + ld a, e + cp 2 + jr z, .done + call .IncreaseScore + ld a, e + and a + jr nz, .done + call .IncreaseScore + jr .done + +.unknown_moves + ld a, [BattleMonType1] + ld b, a + ld hl, EnemyMonType1 + call CheckTypeMatchup + ld a, [wTypeMatchup] + cp 10 + 1 ; 1.0 + 0.1 + jr c, .ok + call .DecreaseScore +.ok + ld a, [BattleMonType2] + cp b + jr z, .ok2 + call CheckTypeMatchup + ld a, [wTypeMatchup] + cp 10 + 1 ; 1.0 + 0.1 + jr c, .ok2 + call .DecreaseScore +.ok2 + +.done + call .CheckEnemyMoveMatchups + pop bc + pop de + pop hl + ret +; 348de + + +.CheckEnemyMoveMatchups: ; 348de + ld de, EnemyMonMoves + ld b, NUM_MOVES + 1 + ld c, 0 + + ld a, [wTypeMatchup] + push af +.loop2 + dec b + jr z, .exit2 + + ld a, [de] + and a + jr z, .exit2 + + inc de + dec a + ld hl, Moves + MOVE_POWER + call GetMoveAttr + and a + jr z, .loop2 + + inc hl + call GetMoveByte + ld hl, BattleMonType1 + call CheckTypeMatchup + + ld a, [wTypeMatchup] + ; immune + and a + jr z, .loop2 + + ; not very effective + inc c + cp 10 + jr c, .loop2 + + ; neutral +rept 5 + inc c +endr + cp 10 + jr z, .loop2 + + ; super effective + ld c, 100 + jr .loop2 + +.exit2 + pop af + ld [wTypeMatchup], a + + ld a, c + and a + jr z, .doubledown ; double down + cp 5 + jr c, .DecreaseScore ; down + cp 100 + ret c + jr .IncreaseScore ; up + +.doubledown + call .DecreaseScore + + ; fallthrough +; 34931 + + +.DecreaseScore: ; 34931 + ld a, [wc716] + dec a + ld [wc716], a + ret +; 34939 + + +.IncreaseScore: ; 34939 + ld a, [wc716] + inc a + ld [wc716], a + ret +; 34941 + +CheckAbleToSwitch: ; 34941 + xor a + ld [wc717], a + call CountEnemyAliveMons + ret c + + ld a, [EnemySubStatus1] + bit SUBSTATUS_PERISH, a + jr z, .no_perish + + ld a, [EnemyPerishCount] + cp 1 + jr nz, .no_perish + + ; Perish count is 1 + + call CountEnemyAliveMons + call Function34b77 + call Function34b20 + call Function34a85 + + ld a, e + cp 2 + jr nz, .not_2 + + ld a, [wc716] + add $30 + ld [wc717], a + ret + +.not_2 + call CountEnemyAliveMons + sla c + sla c + ld b, $ff + +.loop1 + inc b + sla c + jr nc, .loop1 + + ld a, b + add $30 + ld [wc717], a + ret + +.no_perish + + call CheckPlayerMoveTypeMatchups + ld a, [wc716] + cp 11 + ret nc + + ld a, [LastEnemyCounterMove] + and a + jr z, .asm_349d2 + + call Function34a2a + ld a, [wc716] + and a + jr z, .asm_349d2 + + ld c, a + call Function34aa7 + ld a, [wc716] + cp $ff + ret z + + ld b, a + ld a, e + cp 2 + jr z, .asm_349be + + call CheckPlayerMoveTypeMatchups + ld a, [wc716] + cp 10 + ret nc + + ld a, b + add $10 + ld [wc717], a + ret + +.asm_349be + ld c, $10 + call CheckPlayerMoveTypeMatchups + ld a, [wc716] + cp 10 + jr nc, .asm_349cc + ld c, $20 + +.asm_349cc + ld a, b + add c + ld [wc717], a + ret + +.asm_349d2 + call CheckPlayerMoveTypeMatchups + ld a, [wc716] + cp 10 + ret nc + + call CountEnemyAliveMons + call Function34b77 + call Function34b20 + call Function34a85 + + ld a, e + cp $2 + ret nz + + ld a, [wc716] + add $10 + ld [wc717], a + ret +; 349f4 + + +CountEnemyAliveMons: ; 349f4 + ld a, [OTPartyCount] + cp 2 + jr c, .only_one + + ld d, a + ld e, 0 + ld b, 1 << (PARTY_LENGTH - 1) + ld c, 0 + ld hl, OTPartyMon1HP + +.loop + ld a, [CurOTMon] + cp e + jr z, .next + + push bc + ld b, [hl] + inc hl + ld a, [hld] + or b + pop bc + jr z, .next + + ld a, c + or b + ld c, a + +.next + srl b + push bc + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + pop bc + inc e + dec d + jr nz, .loop + + ld a, c + and a + jr nz, .more_than_one + +.only_one + scf + ret + +.more_than_one + and a + ret +; 34a2a + + +Function34a2a: ; 34a2a + ld hl, OTPartyMon1 + ld a, [OTPartyCount] + ld b, a + ld c, 1 << (PARTY_LENGTH - 1) + ld d, 0 + xor a + ld [wc716], a + +.asm_34a39 + ld a, [CurOTMon] + cp d + push hl + jr z, .asm_34a77 + + push hl + push bc + ld bc, MON_HP + add hl, bc + pop bc + ld a, [hli] + or [hl] + pop hl + jr z, .asm_34a77 + + ld a, [hl] + ld [CurSpecies], a + call GetBaseData + ld a, [LastEnemyCounterMove] + dec a + ld hl, Moves + MOVE_POWER + call GetMoveAttr + and a + jr z, .asm_34a77 + + inc hl + call GetMoveByte + ld hl, BaseType + call CheckTypeMatchup + ld a, [wTypeMatchup] + and a + jr nz, .asm_34a77 + + ld a, [wc716] + or c + ld [wc716], a +.asm_34a77 + pop hl + dec b + ret z + + push bc + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + pop bc + + inc d + srl c + jr .asm_34a39 +; 34a85 + + +Function34a85: ; 34a85 + push bc + ld a, [OTPartyCount] + ld e, a + ld hl, OTPartyMon1HP + ld b, 1 << (PARTY_LENGTH - 1) + ld c, 0 +.asm_34a91 + ld a, [hli] + or [hl] + jr z, .asm_34a98 + + ld a, b + or c + ld c, a + +.asm_34a98 + srl b + push bc + ld bc, PartyMon2HP - (PartyMon1HP + 1) + add hl, bc + pop bc + dec e + jr nz, .asm_34a91 + + ld a, c + pop bc + + and c + ld c, a + + ; fallthrough +; 34aa7 + +Function34aa7: ; 34aa7 + + ld a, $ff + ld [wc716], a + ld hl, OTPartyMon1Moves + ld b, 1 << (PARTY_LENGTH - 1) + ld d, 0 + ld e, 0 +.asm_34ab5 + ld a, b + and c + jr z, .asm_34b00 + + push hl + push bc + ld b, NUM_MOVES + ld c, 0 +.asm_34abf + ld a, [hli] + and a + push hl + jr z, .asm_34aef + + dec a + ld hl, Moves + MOVE_POWER + call GetMoveAttr + and a + jr z, .asm_34ae9 + + inc hl + call GetMoveByte + ld hl, BattleMonType1 + call CheckTypeMatchup + ld a, [wTypeMatchup] + cp 10 + jr c, .asm_34ae9 + + ld e, 1 + cp 11 + jr c, .asm_34ae9 + + ld e, 2 + jr .asm_34aef + +.asm_34ae9 + pop hl + dec b + jr nz, .asm_34abf + + jr .asm_34af0 + +.asm_34aef + pop hl +.asm_34af0 + ld a, e + pop bc + pop hl + cp $2 + jr z, .asm_34b0e + + cp $1 + jr nz, .asm_34b00 + + ld a, d + or b + ld d, a + jr .asm_34b00 + +.asm_34b00 + push bc + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + pop bc + srl b + jr nc, .asm_34ab5 + + ld a, d + ld b, a + and a + ret z + +.asm_34b0e + push bc + sla b + sla b + ld c, $ff +.asm_34b15 + inc c + sla b + jr nc, .asm_34b15 + + ld a, c + ld [wc716], a + pop bc + ret +; 34b20 + + +Function34b20: ; 34b20 + push bc + ld hl, OTPartySpecies + ld b, 1 << (PARTY_LENGTH - 1) + ld c, 0 + +.asm_34b28 + ld a, [hli] + cp $ff + jr z, .asm_34b72 + + push hl + ld [CurSpecies], a + call GetBaseData + ld a, [LastEnemyCounterMove] + and a + jr z, .asm_34b4a + + dec a + ld hl, Moves + MOVE_POWER + call GetMoveAttr + and a + jr z, .asm_34b4a + + inc hl + call GetMoveByte + jr .asm_34b5d + +.asm_34b4a + ld a, [BattleMonType1] + ld hl, BaseType + call CheckTypeMatchup + ld a, [wTypeMatchup] + cp $b + jr nc, .asm_34b6d + ld a, [BattleMonType2] + +.asm_34b5d + ld hl, BaseType + call CheckTypeMatchup + ld a, [wTypeMatchup] + cp $b + jr nc, .asm_34b6d + + ld a, b + or c + ld c, a + +.asm_34b6d + srl b + pop hl + jr .asm_34b28 + +.asm_34b72 + ld a, c + pop bc + and c + ld c, a + ret +; 34b77 + + +Function34b77: ; 34b77 + push bc + ld de, OTPartySpecies + ld b, 1 << (PARTY_LENGTH - 1) + ld c, 0 + ld hl, OTPartyMon1HP + +.loop + ld a, [de] + inc de + cp $ff + jr z, .done + + push hl + push bc + ld b, [hl] + inc hl + ld c, [hl] +rept 2 + inc hl +endr + srl c + rl b + srl c + rl b + ld a, [hld] + cp c + ld a, [hl] + sbc b + pop bc + jr nc, .next + + ld a, b + or c + ld c, a + +.next + srl b + pop hl + push bc + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + pop bc + jr .loop + +.done + ld a, c + pop bc + and c + ld c, a + ret +; 34bb1 diff --git a/battle/core.asm b/battle/core.asm index 88dab84fd..fbfbdc0a6 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -1865,13 +1865,13 @@ endr SubtractHPFromTarget: ; 3cc39 call SubtractHP - jp Function3cd3c + jp UpdateHPBar ; 3cc3f SubtractHPFromUser: ; 3cc3f ; Subtract HP from Pkmn call SubtractHP - jp Function3cd36 + jp UpdateHPBarBattleHuds ; 3cc45 @@ -2040,20 +2040,20 @@ RestoreHP ; 3ccef ld hl, BattleMonMaxHP .ok ld a, [hli] - ld [Buffer1 + 1], a + ld [Buffer2], a ld a, [hld] - ld [Buffer1 + 0], a + ld [Buffer1], a dec hl ld a, [hl] - ld [Buffer1 + 2], a + ld [Buffer3], a add c ld [hld], a - ld [Buffer1 + 4], a + ld [Buffer5], a ld a, [hl] - ld [Buffer1 + 3], a + ld [Buffer4], a adc b ld [hli], a - ld [Buffer1 + 5], a + ld [Buffer6], a ld a, [Buffer1] ld c, a @@ -2066,23 +2066,23 @@ RestoreHP ; 3ccef jr c, .asm_3cd2d ld a, b ld [hli], a - ld [Buffer1 + 5], a + ld [Buffer6], a ld a, c ld [hl], a - ld [Buffer1 + 4], a + ld [Buffer5], a .asm_3cd2d call SwitchTurnCore - call Function3cd36 + call UpdateHPBarBattleHuds jp SwitchTurnCore ; 3cd36 -Function3cd36: ; 3cd36 - call Function3cd3c +UpdateHPBarBattleHuds: ; 3cd36 + call UpdateHPBar jp UpdateBattleHuds ; 3cd3c -Function3cd3c: ; 3cd3c +UpdateHPBar: ; 3cd3c hlcoord 10, 9 ld a, [hBattleTurn] and a @@ -2093,7 +2093,7 @@ Function3cd3c: ; 3cd3c .ok push bc ld [wd10a], a - predef Functionc6e0 + predef AnimateHPBar pop bc ret ; 3cd55 @@ -4558,7 +4558,7 @@ Function3dd2f: ; 3dd2f .asm_3dda4 ld [wd10a], a - predef Functionc6e0 + predef AnimateHPBar UseOpponentItem: call RefreshBattleHuds callab GetOpponentItem diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm index 8bb72661b..e0735b2ea 100644 --- a/battle/effect_command_pointers.asm +++ b/battle/effect_command_pointers.asm @@ -163,7 +163,7 @@ BattleCommandPointers: ; 3fd28 dw BattleCommand_Teleport ; 36778 dw BattleCommand_BeatUp ; 35461 dw BattleCommand_RageDamage ; 3527b - dw BattleCommanda3 ; 34833 + dw BattleCommand_ResetTypeMatchup ; 34833 dw BattleCommand_AllStatsUp ; 36500 dw BattleCommanda5 ; 35165 dw BattleCommand_RaiseSubNoAnim ; 365af diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index eca9ae8d8..5f6a22414 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -1600,12 +1600,14 @@ CheckTypeMatchup: ; 347d3 ; 34833 -BattleCommanda3: ; 34833 +BattleCommand_ResetTypeMatchup: ; 34833 +; Reset the type matchup multiplier to 1.0, if the type matchup is not 0. +; If there is immunity in play, the move automatically misses. call BattleCheckTypeMatchup ld a, [wTypeMatchup] and a ld a, 10 ; 1.0 - jr nz, .skip + jr nz, .reset call ResetDamage xor a ld [TypeModifier], a @@ -1613,673 +1615,12 @@ BattleCommanda3: ; 34833 ld [AttackMissed], a ret -.skip +.reset ld [wTypeMatchup], a ret ; 3484e - -Function3484e: ; 3484e - push hl - push de - push bc - ld a, 10 - ld [wc716], a - ld hl, PlayerUsedMoves - ld a, [hl] - and a - jr z, .unknown_moves - - ld d, NUM_MOVES - ld e, 0 -.loop - ld a, [hli] - and a - jr z, .exit - push hl - dec a - ld hl, Moves + MOVE_POWER - call GetMoveAttr - and a - jr z, .next - - inc hl - call GetMoveByte - ld hl, EnemyMonType - call CheckTypeMatchup - ld a, [wTypeMatchup] - cp 10 + 1 ; 1.0 + 0.1 - jr nc, .super_effective - and a - jr z, .next - cp 10 ; 1.0 - jr nc, .neutral - -.not_very_effective - ld a, e - cp 1 ; 0.1 - jr nc, .next - ld e, 1 - jr .next - -.neutral - ld e, 2 - jr .next - -.super_effective - call Function34931 - pop hl - jr .done - -.next - pop hl - dec d - jr nz, .loop - -.exit - ld a, e - cp 2 - jr z, .done - call Function34939 - ld a, e - and a - jr nz, .done - call Function34939 - jr .done - -.unknown_moves - ld a, [BattleMonType1] - ld b, a - ld hl, EnemyMonType1 - call CheckTypeMatchup - ld a, [wTypeMatchup] - cp 10 + 1 ; 1.0 + 0.1 - jr c, .ok - call Function34931 -.ok - ld a, [BattleMonType2] - cp b - jr z, .ok2 - call CheckTypeMatchup - ld a, [wTypeMatchup] - cp 10 + 1 ; 1.0 + 0.1 - jr c, .ok2 - call Function34931 -.ok2 - -.done - call Function348de - pop bc - pop de - pop hl - ret -; 348de - - -Function348de: ; 348de - ld de, EnemyMonMoves - ld b, NUM_MOVES + 1 - ld c, 0 - - ld a, [wTypeMatchup] - push af -.loop - dec b - jr z, .exit - - ld a, [de] - and a - jr z, .exit - - inc de - dec a - ld hl, Moves + MOVE_POWER - call GetMoveAttr - and a - jr z, .loop - - inc hl - call GetMoveByte - ld hl, BattleMonType1 - call CheckTypeMatchup - - ld a, [wTypeMatchup] - ; immune - and a - jr z, .loop - - ; not very effective - inc c - cp 10 - jr c, .loop - - ; neutral -rept 5 - inc c -endr - cp 10 - jr z, .loop - - ; super effective - ld c, 100 - jr .loop - -.exit - pop af - ld [wTypeMatchup], a - - ld a, c - and a - jr z, .doubledown ; double down - cp 5 - jr c, Function34931 ; down - cp 100 - ret c - jr Function34939 ; up - -.doubledown - call Function34931 - - ; fallthrough -; 34931 - - -Function34931: ; 34931 - ld a, [wc716] - dec a - ld [wc716], a - ret -; 34939 - - -Function34939: ; 34939 - ld a, [wc716] - inc a - ld [wc716], a - ret -; 34941 - - -Function34941: ; 34941 - xor a - ld [wc717], a - call CountEnemyAliveMons - ret c - - ld a, [EnemySubStatus1] - bit SUBSTATUS_PERISH, a - jr z, .no_perish - - ld a, [EnemyPerishCount] - cp 1 - jr nz, .no_perish - - ; Perish count is 1 - - call CountEnemyAliveMons - call Function34b77 - call Function34b20 - call Function34a85 - - ld a, e - cp 2 - jr nz, .asm_34971 - - ld a, [wc716] - add $30 - ld [wc717], a - ret - -.asm_34971 - call CountEnemyAliveMons - sla c - sla c - ld b, $ff - -.asm_3497a - inc b - sla c - jr nc, .asm_3497a - - ld a, b - add $30 - ld [wc717], a - ret - -.no_perish - - call Function3484e - ld a, [wc716] - cp 11 - ret nc - - ld a, [LastEnemyCounterMove] - and a - jr z, .asm_349d2 - - call Function34a2a - ld a, [wc716] - and a - jr z, .asm_349d2 - - ld c, a - call Function34aa7 - ld a, [wc716] - cp $ff - ret z - - ld b, a - ld a, e - cp 2 - jr z, .asm_349be - - call Function3484e - ld a, [wc716] - cp 10 - ret nc - - ld a, b - add $10 - ld [wc717], a - ret - -.asm_349be - ld c, $10 - call Function3484e - ld a, [wc716] - cp 10 - jr nc, .asm_349cc - ld c, $20 - -.asm_349cc - ld a, b - add c - ld [wc717], a - ret - -.asm_349d2 - call Function3484e - ld a, [wc716] - cp 10 - ret nc - - call CountEnemyAliveMons - call Function34b77 - call Function34b20 - call Function34a85 - - ld a, e - cp $2 - ret nz - - ld a, [wc716] - add $10 - ld [wc717], a - ret -; 349f4 - - -CountEnemyAliveMons: ; 349f4 - ld a, [OTPartyCount] - cp 2 - jr c, .only_one - - ld d, a - ld e, 0 - ld b, 1 << (PARTY_LENGTH - 1) - ld c, 0 - ld hl, OTPartyMon1HP - -.loop - ld a, [CurOTMon] - cp e - jr z, .next - - push bc - ld b, [hl] - inc hl - ld a, [hld] - or b - pop bc - jr z, .next - - ld a, c - or b - ld c, a - -.next - srl b - push bc - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - inc e - dec d - jr nz, .loop - - ld a, c - and a - jr nz, .more_than_one - -.only_one - scf - ret - -.more_than_one - and a - ret -; 34a2a - - -Function34a2a: ; 34a2a - ld hl, OTPartyMon1 - ld a, [OTPartyCount] - ld b, a - ld c, 1 << (PARTY_LENGTH - 1) - ld d, 0 - xor a - ld [wc716], a - -.asm_34a39 - ld a, [CurOTMon] - cp d - push hl - jr z, .asm_34a77 - - push hl - push bc - ld bc, MON_HP - add hl, bc - pop bc - ld a, [hli] - or [hl] - pop hl - jr z, .asm_34a77 - - ld a, [hl] - ld [CurSpecies], a - call GetBaseData - ld a, [LastEnemyCounterMove] - dec a - ld hl, Moves + MOVE_POWER - call GetMoveAttr - and a - jr z, .asm_34a77 - - inc hl - call GetMoveByte - ld hl, BaseType - call CheckTypeMatchup - ld a, [wTypeMatchup] - and a - jr nz, .asm_34a77 - - ld a, [wc716] - or c - ld [wc716], a -.asm_34a77 - pop hl - dec b - ret z - - push bc - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - - inc d - srl c - jr .asm_34a39 -; 34a85 - - -Function34a85: ; 34a85 - push bc - ld a, [OTPartyCount] - ld e, a - ld hl, OTPartyMon1HP - ld b, 1 << (PARTY_LENGTH - 1) - ld c, 0 -.asm_34a91 - ld a, [hli] - or [hl] - jr z, .asm_34a98 - - ld a, b - or c - ld c, a - -.asm_34a98 - srl b - push bc - ld bc, PartyMon2HP - (PartyMon1HP + 1) - add hl, bc - pop bc - dec e - jr nz, .asm_34a91 - - ld a, c - pop bc - - and c - ld c, a - - ; fallthrough -; 34aa7 - -Function34aa7: ; 34aa7 - - ld a, $ff - ld [wc716], a - ld hl, OTPartyMon1Moves - ld b, 1 << (PARTY_LENGTH - 1) - ld d, 0 - ld e, 0 -.asm_34ab5 - ld a, b - and c - jr z, .asm_34b00 - - push hl - push bc - ld b, NUM_MOVES - ld c, 0 -.asm_34abf - ld a, [hli] - and a - push hl - jr z, .asm_34aef - - dec a - ld hl, Moves + MOVE_POWER - call GetMoveAttr - and a - jr z, .asm_34ae9 - - inc hl - call GetMoveByte - ld hl, BattleMonType1 - call CheckTypeMatchup - ld a, [wTypeMatchup] - cp 10 - jr c, .asm_34ae9 - - ld e, 1 - cp 11 - jr c, .asm_34ae9 - - ld e, 2 - jr .asm_34aef - -.asm_34ae9 - pop hl - dec b - jr nz, .asm_34abf - - jr .asm_34af0 - -.asm_34aef - pop hl -.asm_34af0 - ld a, e - pop bc - pop hl - cp $2 - jr z, .asm_34b0e - - cp $1 - jr nz, .asm_34b00 - - ld a, d - or b - ld d, a - jr .asm_34b00 - -.asm_34b00 - push bc - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - srl b - jr nc, .asm_34ab5 - - ld a, d - ld b, a - and a - ret z - -.asm_34b0e - push bc - sla b - sla b - ld c, $ff -.asm_34b15 - inc c - sla b - jr nc, .asm_34b15 - - ld a, c - ld [wc716], a - pop bc - ret -; 34b20 - - -Function34b20: ; 34b20 - push bc - ld hl, OTPartySpecies - ld b, 1 << (PARTY_LENGTH - 1) - ld c, 0 - -.asm_34b28 - ld a, [hli] - cp $ff - jr z, .asm_34b72 - - push hl - ld [CurSpecies], a - call GetBaseData - ld a, [LastEnemyCounterMove] - and a - jr z, .asm_34b4a - - dec a - ld hl, Moves + MOVE_POWER - call GetMoveAttr - and a - jr z, .asm_34b4a - - inc hl - call GetMoveByte - jr .asm_34b5d - -.asm_34b4a - ld a, [BattleMonType1] - ld hl, BaseType - call CheckTypeMatchup - ld a, [wTypeMatchup] - cp $b - jr nc, .asm_34b6d - ld a, [BattleMonType2] - -.asm_34b5d - ld hl, BaseType - call CheckTypeMatchup - ld a, [wTypeMatchup] - cp $b - jr nc, .asm_34b6d - - ld a, b - or c - ld c, a - -.asm_34b6d - srl b - pop hl - jr .asm_34b28 - -.asm_34b72 - ld a, c - pop bc - and c - ld c, a - ret -; 34b77 - - -Function34b77: ; 34b77 - push bc - ld de, OTPartySpecies - ld b, 1 << (PARTY_LENGTH - 1) - ld c, 0 - ld hl, OTPartyMon1HP - -.loop - ld a, [de] - inc de - cp $ff - jr z, .done - - push hl - push bc - ld b, [hl] - inc hl - ld c, [hl] -rept 2 - inc hl -endr - srl c - rl b - srl c - rl b - ld a, [hld] - cp c - ld a, [hl] - sbc b - pop bc - jr nc, .next - - ld a, b - or c - ld c, a - -.next - srl b - pop hl - push bc - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - jr .loop - -.done - ld a, c - pop bc - and c - ld c, a - ret -; 34bb1 - +INCLUDE "battle/ai/switch.asm" TypeMatchup: ; 34bb1 INCLUDE "battle/type_matchup.asm" @@ -2779,11 +2120,11 @@ BattleCommand_HitTargetNoSub: ; 34f60 and a ld de, PlayerRolloutCount ld a, 1 - jr z, .asm_34f76 + jr z, .got_rollout_count ld de, EnemyRolloutCount ld a, 4 -.asm_34f76 +.got_rollout_count ld [wcfca], a ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar @@ -3234,18 +2575,18 @@ BattleCommand_CheckDestinyBond: ; 351c0 ld a, [hld] ld [Buffer2], a ld a, [hl] - ld [wd1ec], a + ld [Buffer3], a xor a ld [hld], a ld a, [hl] - ld [wd1ed], a + ld [Buffer4], a xor a ld [hl], a - ld [wd1ee], a - ld [wd1ef], a + ld [Buffer5], a + ld [Buffer6], a ld h, b ld l, c - predef Functionc6e0 + predef AnimateHPBar call RefreshBattleHuds call BattleCommand_SwitchTurn @@ -4449,7 +3790,7 @@ BattleCommand_Counter: ; 35813 cp EFFECT_COUNTER ret z - call BattleCommanda3 + call BattleCommand_ResetTypeMatchup ld a, [wTypeMatchup] and a ret z @@ -4633,12 +3974,12 @@ BattleCommand_PainSplit: ; 35926 ld a, $1 ld [wd10a], a hlcoord 10, 9 - predef Functionc6e0 + predef AnimateHPBar ld hl, EnemyMonHP ld a, [hli] - ld [wd1ed], a + ld [Buffer4], a ld a, [hli] - ld [wd1ec], a + ld [Buffer3], a ld a, [hli] ld [Buffer2], a ld a, [hl] @@ -4648,7 +3989,7 @@ BattleCommand_PainSplit: ; 35926 ld [wd10a], a call ResetDamage hlcoord 2, 2 - predef Functionc6e0 + predef AnimateHPBar callba Function178000 ld hl, SharedPainText @@ -4661,9 +4002,9 @@ BattleCommand_PainSplit: ; 35926 ld [Buffer2], a ld a, [hld] ld b, a - ld [wd1ec], a + ld [Buffer3], a ld a, [hl] - ld [wd1ed], a + ld [Buffer4], a rept 2 dec de endr @@ -4708,10 +4049,10 @@ Function359ac: ; 359ac .asm_359c2 ld a, c ld [hld], a - ld [wd1ee], a + ld [Buffer5], a ld a, b ld [hli], a - ld [wd1ef], a + ld [Buffer6], a ret ; 359cd @@ -5331,20 +4672,20 @@ Function35d1c: ; 35d1c ld a, [hld] ld b, a ld a, [EnemyMonHP + 1] - ld [wd1ec], a + ld [Buffer3], a sub b ld [EnemyMonHP + 1], a ld a, [hl] ld b, a ld a, [EnemyMonHP] - ld [wd1ec + 1], a + ld [Buffer4], a sbc b ld [EnemyMonHP], a jr nc, .asm_35d59 - ld a, [wd1ed] + ld a, [Buffer4] ld [hli], a - ld a, [wd1ec] + ld a, [Buffer3] ld [hl], a xor a @@ -5360,13 +4701,13 @@ Function35d1c: ; 35d1c ld [Buffer1], a ld hl, EnemyMonHP ld a, [hli] - ld [wd1ef], a + ld [Buffer6], a ld a, [hl] - ld [wd1ee], a + ld [Buffer5], a hlcoord 2, 2 xor a ld [wd10a], a - predef Functionc6e0 + predef AnimateHPBar .asm_35d7b jp RefreshBattleHuds ; 35d7e @@ -5391,28 +4732,28 @@ Function35d7e: ; 35d7e ld a, [hld] ld b, a ld a, [BattleMonHP + 1] - ld [wd1ec], a + ld [Buffer3], a sub b ld [BattleMonHP + 1], a - ld [wd1ee], a + ld [Buffer5], a ld b, [hl] ld a, [BattleMonHP] - ld [wd1ec + 1], a + ld [Buffer4], a sbc b ld [BattleMonHP], a - ld [wd1ee + 1], a + ld [Buffer6], a jr nc, .asm_35dc5 - ld a, [wd1ec + 1] + ld a, [Buffer4] ld [hli], a - ld a, [wd1ec] + ld a, [Buffer3] ld [hl], a xor a ld hl, BattleMonHP ld [hli], a ld [hl], a - ld hl, wd1ee + ld hl, Buffer5 ld [hli], a ld [hl], a @@ -5425,7 +4766,7 @@ Function35d7e: ; 35d7e hlcoord 10, 9 ld a, $1 ld [wd10a], a - predef Functionc6e0 + predef AnimateHPBar .asm_35ddd jp RefreshBattleHuds ; 35de0 @@ -5826,7 +5167,7 @@ SapHealth: ; 36011 ld hl, EnemyMonHP ld de, EnemyMonMaxHP .battlemonhp - ld bc, wd1ed + ld bc, Buffer4 ld a, [hli] ld [bc], a ld a, [hl] @@ -5843,12 +5184,12 @@ SapHealth: ; 36011 ld b, [hl] add b ld [hld], a - ld [wd1ee], a + ld [Buffer5], a ld a, [hDividend] ld b, [hl] adc b ld [hli], a - ld [wd1ef], a + ld [Buffer6], a jr c, .okay2 ; 0x36056 $c ld a, [hld] ld b, a @@ -5864,11 +5205,11 @@ SapHealth: ; 36011 .okay2 ld a, [de] ld [hld], a - ld [wd1ee], a + ld [Buffer5], a dec de ld a, [de] ld [hli], a - ld [wd1ef], a + ld [Buffer6], a inc de .okay3 ld a, [hBattleTurn] @@ -5880,7 +5221,7 @@ SapHealth: ; 36011 xor a .hp_bar ld [wd10a], a - predef Functionc6e0 + predef AnimateHPBar call RefreshBattleHuds jp UpdateBattleMonInParty ; 3608c @@ -8019,20 +7360,20 @@ rept 2 dec hl endr ld a, [hl] - ld [wd1ec], a + ld [Buffer3], a sub c ld [hld], a - ld [wd1ee], a + ld [Buffer5], a ld a, [hl] - ld [wd1ed], a + ld [Buffer4], a sbc b ld [hl], a - ld [wd1ef], a + ld [Buffer6], a jr nc, .asm_36cfe xor a ld [hli], a ld [hl], a - ld hl, wd1ee + ld hl, Buffer5 ld [hli], a ld [hl], a .asm_36cfe @@ -8045,7 +7386,7 @@ endr xor a .asm_36d0c ld [wd10a], a - predef Functionc6e0 + predef AnimateHPBar call RefreshBattleHuds ld hl, RecoilText jp StdBattleTextBox @@ -10097,7 +9438,7 @@ BattleCommand_MirrorCoat: ; 37c95 cp EFFECT_MIRROR_COAT ret z - call BattleCommanda3 + call BattleCommand_ResetTypeMatchup ld a, [wTypeMatchup] and a ret z diff --git a/battle/moves/move_effects.asm b/battle/moves/move_effects.asm index 7e17341fc..7f69ea6fd 100644 --- a/battle/moves/move_effects.asm +++ b/battle/moves/move_effects.asm @@ -898,7 +898,7 @@ Bide: doturn usedmovetext unleashenergy - effect0xa3 + resettypematchup checkhit hittarget effect0xa5 @@ -1398,7 +1398,7 @@ StaticDamage: doturn constantdamage checkhit - effect0xa3 + resettypematchup hittarget resulttext checkfaint diff --git a/engine/predef.asm b/engine/predef.asm index 2fc3525bc..17130929d 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -41,7 +41,7 @@ PredefPointers:: ; 856b add_predef SentGetPkmnIntoFromBox add_predef SentPkmnIntoBox add_predef GiveEgg - add_predef Functionc6e0 + add_predef AnimateHPBar add_predef CalcPkmnStats add_predef CalcPkmnStatC add_predef CanLearnTMHMMove diff --git a/items/item_effects.asm b/items/item_effects.asm index f1ca0c2a9..0b67efce5 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -1842,7 +1842,7 @@ Functionf1db: ; f1db (3:71db) call AddNTimes ld a, $2 ld [wd10a], a - predef_jump Functionc6e0 + predef_jump AnimateHPBar Functionf1f9: ; f1f9 (3:71f9) call Functionf20b diff --git a/macros/move_effect.asm b/macros/move_effect.asm index 354e5220a..8842fdcd7 100644 --- a/macros/move_effect.asm +++ b/macros/move_effect.asm @@ -167,7 +167,7 @@ endm command teleport command beatup command ragedamage - command effect0xa3 + command resettypematchup command allstatsup command effect0xa5 command raisesubnoanim diff --git a/main.asm b/main.asm index ebbb8c28b..6605c1c0f 100644 --- a/main.asm +++ b/main.asm @@ -4525,9 +4525,9 @@ Functionc699: ; c699 ret ; c6e0 -Functionc6e0: ; c6e0 +AnimateHPBar: ; c6e0 call WaitBGMap - call Functiond627 + call _AnimateHPBar call WaitBGMap ret ; c6ea @@ -7495,11 +7495,11 @@ Functiond61d: ; d61d (3:561d) inc [hl] ret -Functiond627: ; d627 +_AnimateHPBar: ; d627 call Functiond65f - jr c, .asm_d645 + jr c, .do_player call Functiond670 -.asm_d62f +.enemy_loop push bc push hl call Functiond6e2 @@ -7513,12 +7513,12 @@ Functiond627: ; d627 pop hl pop bc pop af - jr nc, .asm_d62f + jr nc, .enemy_loop ret -.asm_d645 +.do_player call Functiond670 -.asm_d648 +.player_loop push bc push hl call Functiond6f5 @@ -7533,21 +7533,21 @@ Functiond627: ; d627 pop hl pop bc pop af - jr nc, .asm_d648 + jr nc, .player_loop ret ; d65f Functiond65f: ; d65f ld a, [Buffer2] and a - jr nz, .asm_d66e + jr nz, .player ld a, [Buffer1] cp $30 - jr nc, .asm_d66e + jr nc, .player and a ret -.asm_d66e +.player scf ret ; d670 diff --git a/wram.asm b/wram.asm index 4879804e7..41a03c86b 100644 --- a/wram.asm +++ b/wram.asm @@ -1776,6 +1776,7 @@ Buffer4:: wd1ed:: ds 1 Buffer5:: wd1ee:: ds 1 +Buffer6:: wd1ef:: ds 1 wd1f0:: ds 1 wd1f1:: ds 1 -- cgit v1.2.3 From 2cbb1acc6e3bc5fe30d1be8f665d2252703518ac Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 7 Nov 2015 09:48:32 -0500 Subject: Pokemon animations --- battle/ai/scoring.asm | 6 +- battle/ai/switch.asm | 10 +- battle/core.asm | 54 +++--- battle/effect_commands.asm | 125 +++++++------- constants/animation_constants.asm | 11 ++ engine/predef.asm | 6 +- gfx/pics/animation.asm | 345 +++++++++++++++++++------------------- home.asm | 8 +- main.asm | 28 ++-- misc/mobile_42.asm | 10 +- wram.asm | 25 +-- 11 files changed, 324 insertions(+), 304 deletions(-) diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 52c71d624..39d2a8eca 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -576,7 +576,7 @@ AI_Smart_Explosion: ; 388a6 ; Unless this is the enemy's last Pokemon... push hl - callba CountEnemyAliveMons + callba CheckEnemyHasMonToSwitchTo pop hl jr nc, .asm_388b7 @@ -2028,7 +2028,7 @@ endr jp nz, AIDiscourageMove push hl - callba CountEnemyAliveMons + callba CheckEnemyHasMonToSwitchTo pop hl jr nc, .asm_38eb0 @@ -2160,7 +2160,7 @@ endr AI_Smart_PerishSong: ; 38f4a push hl - callab CountEnemyAliveMons + callab CheckEnemyHasMonToSwitchTo pop hl jr c, .no diff --git a/battle/ai/switch.asm b/battle/ai/switch.asm index 3d65b187a..c7fd696e1 100755 --- a/battle/ai/switch.asm +++ b/battle/ai/switch.asm @@ -184,7 +184,7 @@ endr CheckAbleToSwitch: ; 34941 xor a ld [wc717], a - call CountEnemyAliveMons + call CheckEnemyHasMonToSwitchTo ret c ld a, [EnemySubStatus1] @@ -197,7 +197,7 @@ CheckAbleToSwitch: ; 34941 ; Perish count is 1 - call CountEnemyAliveMons + call CheckEnemyHasMonToSwitchTo call Function34b77 call Function34b20 call Function34a85 @@ -212,7 +212,7 @@ CheckAbleToSwitch: ; 34941 ret .not_2 - call CountEnemyAliveMons + call CheckEnemyHasMonToSwitchTo sla c sla c ld b, $ff @@ -284,7 +284,7 @@ CheckAbleToSwitch: ; 34941 cp 10 ret nc - call CountEnemyAliveMons + call CheckEnemyHasMonToSwitchTo call Function34b77 call Function34b20 call Function34a85 @@ -300,7 +300,7 @@ CheckAbleToSwitch: ; 34941 ; 349f4 -CountEnemyAliveMons: ; 349f4 +CheckEnemyHasMonToSwitchTo: ; 349f4 ld a, [OTPartyCount] cp 2 jr c, .only_one diff --git a/battle/core.asm b/battle/core.asm index fbfbdc0a6..45c5e8bd0 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -92,7 +92,7 @@ Function3c000: ; 3c000 call SendOutPkmnText call NewBattleMonStatus call BreakAttraction - call Function3db5f + call SendOutPlayerMon call EmptyBattleTextBox call LoadTileMapToTempTileMap call SetPlayerTurn @@ -2928,7 +2928,7 @@ Function3d227: ; 3d227 call SendOutPkmnText call NewBattleMonStatus call BreakAttraction - call Function3db5f + call SendOutPlayerMon call EmptyBattleTextBox call LoadTileMapToTempTileMap call SetPlayerTurn @@ -2950,7 +2950,7 @@ Function3d2b3: ; 3d2b3 call SendOutPkmnText call NewBattleMonStatus call BreakAttraction - call Function3db5f + call SendOutPlayerMon call EmptyBattleTextBox call LoadTileMapToTempTileMap call SetPlayerTurn @@ -3755,31 +3755,31 @@ Function_SetEnemyPkmnAndSendOutAnimation: ; 3d7c7 call Call_PlayBattleAnim call BattleCheckEnemyShininess - jr nc, .asm_3d800 + jr nc, .not_shiny ld a, 1 ; shiny anim ld [wKickCounter], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim -.asm_3d800 +.not_shiny ld bc, TempMonSpecies - callba Function4e53f - jr c, .asm_3d82c + callba CheckFaintedFrzSlp + jr c, .skip_cry callba CheckBattleScene - jr c, .asm_3d821 + jr c, .cry_no_anim hlcoord 12, 0 ld d, $0 - ld e, $0 - predef Functiond008e - jr .asm_3d82c + ld e, ANIM_MON_SLOW + predef AnimateFrontpic + jr .skip_cry -.asm_3d821 +.cry_no_anim ld a, $f ld [CryTracks], a ld a, [TempEnemyMonSpecies] call PlayStereoCry -.asm_3d82c +.skip_cry call UpdateEnemyHUD ld a, $1 ld [hBGMapMode], a @@ -4207,7 +4207,7 @@ endr ; 3db32 -Function3db32: ; 3db32 +SwitchPlayerMon: ; 3db32 call ClearSprites ld a, [CurBattleMon] ld [LastPlayerMon], a @@ -4218,7 +4218,7 @@ Function3db32: ; 3db32 call ResetPlayerStatLevels call NewBattleMonStatus call BreakAttraction - call Function3db5f + call SendOutPlayerMon call EmptyBattleTextBox call LoadTileMapToTempTileMap ld hl, EnemyMonHP @@ -4228,7 +4228,7 @@ Function3db32: ; 3db32 ; 3db5f -Function3db5f: ; 3db5f +SendOutPlayerMon: ; 3db5f ld hl, BattleMonDVs predef GetUnownLetter hlcoord 1, 5 @@ -4259,25 +4259,25 @@ Function3db5f: ; 3db5f ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim call BattleCheckPlayerShininess - jr nc, .asm_3dbbc + jr nc, .not_shiny ld a, $1 ld [wKickCounter], a ld de, ANIM_SEND_OUT_MON call Call_PlayBattleAnim -.asm_3dbbc +.not_shiny ld a, MON_SPECIES call GetPartyParamLocation ld b, h ld c, l - callba Function4e53f - jr c, .asm_3dbd6 + callba CheckFaintedFrzSlp + jr c, .statused ld a, $f0 ld [CryTracks], a ld a, [CurPartySpecies] call PlayStereoCry -.asm_3dbd6 +.statused call UpdatePlayerHUD ld a, $1 ld [hBGMapMode], a @@ -5528,7 +5528,7 @@ BattleMonEntrance: ; 3e40b call SendOutPkmnText call NewBattleMonStatus call BreakAttraction - call Function3db5f + call SendOutPlayerMon call EmptyBattleTextBox call LoadTileMapToTempTileMap call SetPlayerTurn @@ -5553,7 +5553,7 @@ PassedBattleMonEntrance: ; 3e459 xor a ld [wd265], a call ApplyStatLevelMultiplierOnAllStats - call Function3db5f + call SendOutPlayerMon call EmptyBattleTextBox call LoadTileMapToTempTileMap call SetPlayerTurn @@ -9556,15 +9556,15 @@ BattleStartMessage: ; 3fc8b jr c, .skip_cry callba CheckBattleScene - jr c, .do_cry + jr c, .cry_no_anim hlcoord 12, 0 ld d, $0 - ld e, $1 - predef Functiond008e + ld e, ANIM_MON_NORMAL + predef AnimateFrontpic jr .skip_cry -.do_cry +.cry_no_anim ld a, $0f ld [CryTracks], a ld a, [TempEnemyMonSpecies] diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 5f6a22414..c05336bd3 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -6555,41 +6555,42 @@ BattleCommand_ForceSwitch: ; 3680f ld a, [BattleType] cp BATTLETYPE_SHINY - jp z, .asm_36969 + jp z, .fail cp BATTLETYPE_TRAP - jp z, .asm_36969 + jp z, .fail cp BATTLETYPE_CELEBI - jp z, .asm_36969 + jp z, .fail cp BATTLETYPE_SUICUNE - jp z, .asm_36969 + jp z, .fail ld a, [hBattleTurn] and a - jp nz, .asm_368cd + jp nz, .force_player_switch ld a, [AttackMissed] and a - jr nz, .asm_36852 ; 36830 $20 + jr nz, .missed ; 36830 $20 ld a, [wBattleMode] dec a - jr nz, .asm_36869 ; 36836 $31 + jr nz, .trainer ; 36836 $31 ld a, [CurPartyLevel] ld b, a ld a, [BattleMonLevel] cp b - jr nc, .asm_36855 ; 36840 $13 + jr nc, .wild_force_flee ; 36840 $13 add b ld c, a inc c -.asm_36845 +.random_loop_wild call BattleRandom cp c - jr nc, .asm_36845 ; 36849 $fa + jr nc, .random_loop_wild ; 36849 $fa srl b srl b cp b - jr nc, .asm_36855 ; 36850 $3 -.asm_36852 - jp .asm_36969 -.asm_36855 + jr nc, .wild_force_flee ; 36850 $3 +.missed + jp .fail + +.wild_force_flee call UpdateBattleMonInParty xor a ld [wcfca], a @@ -6597,13 +6598,14 @@ BattleCommand_ForceSwitch: ; 3680f ld [wd232], a call SetBattleDraw ld a, [wPlayerMoveStruct + MOVE_ANIM] - jp .asm_36975 -.asm_36869 - call CountEnemyAliveMons - jr c, .asm_368ca ; 3686c $5c + jp .succeed + +.trainer + call CheckEnemyHasMonToSwitchTo + jr c, .switch_fail ; 3686c $5c ld a, [wc70f] and a - jr z, .asm_368ca ; 36872 $56 + jr z, .switch_fail ; 36872 $56 call UpdateEnemyMonInParty ld a, $1 ld [wKickCounter], a @@ -6613,19 +6615,20 @@ BattleCommand_ForceSwitch: ; 3680f hlcoord 1, 0 lb bc, 4, 10 call ClearBox - ld c, $14 + ld c, 20 call DelayFrames ld a, [OTPartyCount] ld b, a ld a, [CurOTMon] ld c, a -.asm_3689a +; select a random enemy mon to switch to +.random_loop_trainer call BattleRandom and $7 cp b - jr nc, .asm_3689a ; 368a0 $f8 + jr nc, .random_loop_trainer ; 368a0 $f8 cp c - jr z, .asm_3689a ; 368a3 $f5 + jr z, .random_loop_trainer ; 368a3 $f5 push af push bc ld hl, OTPartyMon1HP @@ -6634,7 +6637,7 @@ BattleCommand_ForceSwitch: ; 3680f or [hl] pop bc pop de - jr z, .asm_3689a ; 368b1 $e7 + jr z, .random_loop_trainer ; 368b1 $e7 ld a, d inc a ld [wc718], a @@ -6646,41 +6649,41 @@ BattleCommand_ForceSwitch: ; 3680f ld hl, SpikesDamage jp CallBattleCore -.asm_368ca - jp .asm_36969 +.switch_fail + jp .fail -.asm_368cd +.force_player_switch ld a, [AttackMissed] and a - jr nz, .asm_368f3 + jr nz, .player_miss ld a, [wBattleMode] dec a - jr nz, .asm_36908 + jr nz, .vs_trainer ld a, [BattleMonLevel] ld b, a ld a, [CurPartyLevel] cp b - jr nc, .asm_368f5 + jr nc, .wild_succeed_playeristarget add b ld c, a inc c -.asm_368e6 +.wild_random_loop_playeristarget call BattleRandom cp c - jr nc, .asm_368e6 + jr nc, .wild_random_loop_playeristarget srl b srl b cp b - jr nc, .asm_368f5 + jr nc, .wild_succeed_playeristarget -.asm_368f3 - jr .asm_36969 +.player_miss + jr .fail -.asm_368f5 +.wild_succeed_playeristarget call UpdateBattleMonInParty xor a ld [wcfca], a @@ -6688,39 +6691,39 @@ BattleCommand_ForceSwitch: ; 3680f ld [wd232], a call SetBattleDraw ld a, [wEnemyMoveStruct + MOVE_ANIM] - jr .asm_36975 + jr .succeed -.asm_36908 - call Function36994 - jr c, .asm_36969 +.vs_trainer + call CheckPlayerHasMonToSwitchTo + jr c, .fail ld a, [wc70f] cp $1 - jr z, .asm_368ca + jr z, .switch_fail call UpdateBattleMonInParty ld a, $1 ld [wKickCounter], a call AnimateCurrentMove - ld c, $14 + ld c, 20 call DelayFrames hlcoord 9, 7 lb bc, 5, 11 call ClearBox - ld c, $14 + ld c, 20 call DelayFrames ld a, [PartyCount] ld b, a ld a, [CurBattleMon] ld c, a -.asm_3693a +.random_loop_trainer_playeristarget call BattleRandom and $7 cp b - jr nc, .asm_3693a + jr nc, .random_loop_trainer_playeristarget cp c - jr z, .asm_3693a + jr z, .random_loop_trainer_playeristarget push af push bc @@ -6730,11 +6733,11 @@ BattleCommand_ForceSwitch: ; 3680f or [hl] pop bc pop de - jr z, .asm_3693a + jr z, .random_loop_trainer_playeristarget ld a, d ld [CurPartyMon], a - ld hl, Function3db32 + ld hl, SwitchPlayerMon call CallBattleCore ld hl, DraggedOutText @@ -6743,57 +6746,57 @@ BattleCommand_ForceSwitch: ; 3680f ld hl, SpikesDamage jp CallBattleCore -.asm_36969 +.fail call BattleCommand_LowerSub call BattleCommand_MoveDelay call BattleCommand_RaiseSub jp PrintButItFailed -.asm_36975 +.succeed push af call SetBattleDraw ld a, $1 ld [wKickCounter], a call AnimateCurrentMove - ld c, $14 + ld c, 20 call DelayFrames pop af ld hl, FledInFearText - cp $2e - jr z, .asm_36991 + cp ROAR + jr z, .do_text ld hl, BlownAwayText -.asm_36991 +.do_text jp StdBattleTextBox ; 36994 -Function36994: ; 36994 +CheckPlayerHasMonToSwitchTo: ; 36994 ld a, [PartyCount] ld d, a ld e, 0 ld bc, PARTYMON_STRUCT_LENGTH -.asm_3699d +.loop ld a, [CurBattleMon] cp e - jr z, .asm_369ae + jr z, .next ld a, e ld hl, PartyMon1HP call AddNTimes ld a, [hli] or [hl] - jr nz, .asm_369b4 + jr nz, .not_fainted -.asm_369ae +.next inc e dec d - jr nz, .asm_3699d + jr nz, .loop scf ret -.asm_369b4 +.not_fainted and a ret ; 369b6 diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm index ea57f7230..6ca0ff2e1 100644 --- a/constants/animation_constants.asm +++ b/constants/animation_constants.asm @@ -60,3 +60,14 @@ ANIM_BG_PSYCHIC EQU $29 ANIM_BG_VIBRATE_MON EQU $33 ANIM_BG_WOBBLE_MON EQU $34 + + const_def + const ANIM_MON_SLOW ; 0 + const ANIM_MON_NORMAL ; 1 + const ANIM_MON_MENU ; 2 + const ANIM_MON_TRADE ; 3 + const ANIM_MON_EVOLVE ; 4 + const ANIM_MON_HATCH ; 5 + const ANIM_MON_UNUSED ; 6 + const ANIM_MON_EGG1 ; 7 + const ANIM_MON_EGG2 ; 8 diff --git a/engine/predef.asm b/engine/predef.asm index 17130929d..c05da1496 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -98,10 +98,10 @@ PredefPointers:: ; 856b add_predef CheckTypeMatchup add_predef ConvertMon_1to2 add_predef Functionfb877 - add_predef Functiond0000 + add_predef AnimateMon_Slow_Normal add_predef PlaceStatusString - add_predef Functiond00a3 - add_predef Functiond008e + add_predef LoadMonAnimation + add_predef AnimateFrontpic add_predef Functiond0669 ; $48 add_predef Functiond066e dbw $ff, Function2d43 ; ???? diff --git a/gfx/pics/animation.asm b/gfx/pics/animation.asm index 695999e82..fd37b0497 100644 --- a/gfx/pics/animation.asm +++ b/gfx/pics/animation.asm @@ -1,55 +1,55 @@ ; Pic animation arrangement. -Functiond0000: ; d0000 +AnimateMon_Slow_Normal: ; d0000 hlcoord 12, 0 ld a, [wBattleMode] - cp $1 - jr z, .asm_d0012 - ld e, $0 + cp WILD_BATTLE + jr z, .wild + ld e, ANIM_MON_SLOW ld d, $0 - call Functiond008e + call AnimateFrontpic ret -.asm_d0012 - ld e, $1 +.wild + ld e, ANIM_MON_NORMAL ld d, $0 - call Functiond008e + call AnimateFrontpic ret ; d001a -Functiond001a: ; d001a - ld e, $2 +AnimateMon_Menu: ; d001a + ld e, ANIM_MON_MENU ld d, $0 - call Functiond008e + call AnimateFrontpic ret ; d0022 -Functiond0022: ; d0022 - ld e, $3 +AnimateMon_Trade: ; d0022 + ld e, ANIM_MON_TRADE ld d, $0 - call Functiond008e + call AnimateFrontpic ret ; d002a -Functiond002a: ; d002a - ld e, $4 +AnimateMon_Evolve: ; d002a + ld e, ANIM_MON_EVOLVE ld d, $0 - call Functiond008e + call AnimateFrontpic ret ; d0032 -Functiond0032: ; d0032 - ld e, $5 +AnimateMon_Hatch: ; d0032 + ld e, ANIM_MON_HATCH ld d, $0 - call Functiond008e + call AnimateFrontpic ret ; d003a -Functiond003a: ; d003a - ld e, $6 +AnimateMon_Unused: ; d003a + ld e, ANIM_MON_UNUSED ld d, $0 - call Functiond008e + call AnimateFrontpic ret ; d0042 @@ -81,31 +81,31 @@ PokeAnims: ; d0042 dw .Egg1 dw .Egg2 -.Slow: POKEANIM Cry3, Setup2, Play -.Normal: POKEANIM Cry3, Setup, Play -.Menu: POKEANIM Cry2, Setup, Play, SetWait, Wait, Extra, Play +.Slow: POKEANIM StereoCry, Setup2, Play +.Normal: POKEANIM StereoCry, Setup, Play +.Menu: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play .Trade: POKEANIM Extra, Play2, Extra, Play, SetWait, Wait, Cry, Setup, Play -.Evolve: POKEANIM Extra, Play, SetWait, Wait, Cry2, Setup, Play -.Hatch: POKEANIM Extra, Play, Cry2, Setup, Play, SetWait, Wait, Extra, Play -.Unused: POKEANIM Cry2, Setup, Play, SetWait, Wait, Extra, Play +.Evolve: POKEANIM Extra, Play, SetWait, Wait, CryNoWait, Setup, Play +.Hatch: POKEANIM Extra, Play, CryNoWait, Setup, Play, SetWait, Wait, Extra, Play +.Unused: POKEANIM CryNoWait, Setup, Play, SetWait, Wait, Extra, Play .Egg1: POKEANIM Setup, Play .Egg2: POKEANIM Extra, Play -Functiond008e: ; d008e - call Functiond01c6 +AnimateFrontpic: ; d008e + call AnimateMon_CheckIfPokemon ret c - call Functiond00a3 -.asm_d0095 + call LoadMonAnimation +.loop call Functiond00b4 push af callba Function10402d pop af - jr nc, .asm_d0095 + jr nc, .loop ret ; d00a3 -Functiond00a3: ; d00a3 +LoadMonAnimation: ; d00a3 push hl ld c, e ld b, 0 @@ -126,10 +126,10 @@ Functiond00b4: ; d00b4 push af ld a, $2 ld [rSVBK], a - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] ld c, a ld b, 0 - ld hl, w2_d169 + ld hl, wPokeAnimPointer ld a, [hli] ld h, [hl] ld l, a @@ -137,7 +137,7 @@ Functiond00b4: ; d00b4 ld a, [hl] ld hl, PokeAnim_SetupCommands rst JumpTable - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] ld c, a pop af ld [rSVBK], a @@ -162,24 +162,24 @@ endm setup_command PokeAnim_Play setup_command PokeAnim_Play2 setup_command PokeAnim_Cry - setup_command PokeAnim_Cry2 - setup_command PokeAnim_Cry3 + setup_command PokeAnim_CryNoWait + setup_command PokeAnim_StereoCry ; d00f2 PokeAnim_SetWait: ; d00f2 - ld a, $12 - ld [w2_d181], a - ld a, [w2_d168] + ld a, 18 + ld [wPokeAnimWaitCounter], a + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a PokeAnim_Wait: ; d00fe - ld hl, w2_d181 + ld hl, wPokeAnimWaitCounter dec [hl] ret nz - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d010b @@ -188,9 +188,9 @@ PokeAnim_Setup: ; d010b ld b, $0 call Functiond0228 call Functiond0504 - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d011d @@ -199,9 +199,9 @@ PokeAnim_Setup2: ; d011d ld b, $4 call Functiond0228 call Functiond0504 - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d012f @@ -210,9 +210,9 @@ PokeAnim_Extra: ; d012f ld b, $0 call Functiond0228 call Functiond0504 - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d0141 @@ -222,9 +222,9 @@ PokeAnim_Play: ; d0141 bit 7, a ret z call Functiond04bd - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d0155 @@ -233,53 +233,53 @@ PokeAnim_Play2: ; d0155 ld a, [w2_d17e] bit 7, a ret z - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d0166 PokeAnim_Nop: ; d0166 call Functiond01a9 - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d0171 PokeAnim_Finish: ; d0171 call Functiond01a9 - ld hl, w2_d168 + ld hl, wPokeAnimSceneIndex set 7, [hl] ret ; d017a PokeAnim_Cry: ; d017a - ld a, [w2_d16b] + ld a, [wPokeAnimSpecies] call _PlayCry - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d0188 -PokeAnim_Cry2: ; d0188 - ld a, [w2_d16b] +PokeAnim_CryNoWait: ; d0188 + ld a, [wPokeAnimSpecies] call PlayCry2 - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d0196 -PokeAnim_Cry3: ; d0196 +PokeAnim_StereoCry: ; d0196 ld a, $f ld [CryTracks], a - ld a, [w2_d16b] + ld a, [wPokeAnimSpecies] call PlayStereoCry2 - ld a, [w2_d168] + ld a, [wPokeAnimSceneIndex] inc a - ld [w2_d168], a + ld [wPokeAnimSceneIndex], a ret ; d01a9 @@ -297,16 +297,16 @@ Functiond01a9: ; d01a9 ret ; d01c6 -Functiond01c6: ; d01c6 +AnimateMon_CheckIfPokemon: ; d01c6 ld a, [CurPartySpecies] cp EGG - jr z, .asm_d01d4 + jr z, .fail call IsAPokemon - jr c, .asm_d01d4 + jr c, .fail and a ret -.asm_d01d4 +.fail scf ret ; d01d6 @@ -316,39 +316,44 @@ Functiond01d6: ; d01d6 push af ld a, $2 ld [rSVBK], a + push bc push de push hl - ld hl, w2_d168 - ld bc, $0029 + ld hl, wPokeAnimSceneIndex + ld bc, wPokeAnimStructEnd - wPokeAnimSceneIndex xor a call ByteFill pop hl pop de pop bc + +; bc contains anim pointer ld a, c - ld [w2_d169], a + ld [wPokeAnimPointer], a ld a, b - ld [w2_d16a], a + ld [wPokeAnimPointer + 1], a +; hl contains TileMap coords ld a, l - ld [w2_d16f], a + ld [wPokeAnimCoord], a ld a, h - ld [w2_d170], a + ld [wPokeAnimCoord + 1], a +; d = ????? ld a, d ld [w2_d16e], a ld a, $1 ld hl, CurPartySpecies call GetFarWRAMByte - ld [w2_d16b], a + ld [wPokeAnimSpecies], a ld a, $1 ld hl, UnownLetter call GetFarWRAMByte - ld [w2_d16c], a - call Functiond065c - ld [w2_d16d], a - call Functiond05b4 + ld [wPokeAnimUnownLetter], a + call PokeAnim_GetSpeciesOrUnown + ld [wPokeAnimSpeciesOrUnown], a + call PokeAnim_GetFrontpicDims ld a, c - ld [w2_d171], a + ld [wPokeAnimFrontpicHeight], a pop af ld [rSVBK], a ret @@ -361,7 +366,7 @@ Functiond0228: ; d0228 ld [rSVBK], a push bc ld hl, w2_d172 - ld bc, $001f + ld bc, wPokeAnimStructEnd - w2_d172 xor a call ByteFill pop bc @@ -406,13 +411,13 @@ Functiond0261: ; d0261 call Functiond02c8 ld a, [w2_d183] call Functiond02ae - ld [w2_d181], a + ld [wPokeAnimWaitCounter], a call Functiond02dc Functiond0282: ; d0282 - ld a, [w2_d181] + ld a, [wPokeAnimWaitCounter] dec a - ld [w2_d181], a + ld [wPokeAnimWaitCounter], a ret nz call Functiond02e4 ret @@ -487,14 +492,14 @@ Functiond02e4: ; d02e4 ret ; d02ec -Functiond02ec: ; d02ec - ld a, [w2_d16b] +PokeAnim_IsUnown: ; d02ec + ld a, [wPokeAnimSpecies] cp UNOWN ret ; d02f2 -Functiond02f2: ; d02f2 - ld a, [w2_d16b] +PokeAnim_IsEgg: ; d02f2 + ld a, [wPokeAnimSpecies] cp EGG ret ; d02f8 @@ -562,7 +567,7 @@ Functiond033b: ; d033b Functiond0356: ; d0356 push hl - ld a, [w2_d171] + ld a, [wPokeAnimFrontpicHeight] sub 5 ld c, a ld b, 0 @@ -581,13 +586,13 @@ Functiond036b: ; d036b ld [w2_d187], a ld [w2_d186], a ld [w2_d185], a -.asm_d0375 +.loop push hl call Functiond0392 pop hl ld a, b and a - jr z, .asm_d038a + jr z, .next ld a, [w2_d177] call GetFarByte @@ -596,11 +601,11 @@ Functiond036b: ; d036b call Functiond03bd pop hl -.asm_d038a +.next push hl call Functiond0499 pop hl - jr nc, .asm_d0375 + jr nc, .loop ret ; d0392 @@ -617,23 +622,23 @@ Functiond0392: ; d0392 ld b, [hl] ld a, [w2_d187] and 7 - jr z, .asm_d03b0 + jr z, .skip ld c, a ld a, b -.asm_d03ab +.loop rrca dec c - jr nz, .asm_d03ab + jr nz, .loop ld b, a -.asm_d03b0 +.skip xor a bit 0, b - jr z, .asm_d03b7 + jr z, .finish ld a, 1 -.asm_d03b7 +.finish ld b, a ld hl, w2_d187 inc [hl] @@ -656,18 +661,18 @@ Functiond03bd: ; d03bd Functiond03cd: ; d03cd call Functiond046c ld a, [w2_d186] - ld bc, $0014 + ld bc, SCREEN_WIDTH call AddNTimes ld a, [wc2c6] and a - jr nz, .asm_d03e8 + jr nz, .go ld a, [w2_d185] ld e, a ld d, 0 add hl, de - jr .asm_d03f3 + jr .skip -.asm_d03e8 +.go ld a, [w2_d185] ld e, a ld a, l @@ -677,7 +682,7 @@ Functiond03cd: ; d03cd sbc 0 ld h, a -.asm_d03f3 +.skip ret ; d03f4 @@ -685,18 +690,18 @@ Unknown_d03f4: db 6, 5, 4 Functiond03f7: ; d03f7 push af - ld a, [w2_d171] + ld a, [wPokeAnimFrontpicHeight] cp 5 - jr z, .asm_d0405 + jr z, .check_add_24 cp 6 - jr z, .asm_d041a + jr z, .check_add_13 pop af ret -.asm_d0405 +.check_add_24 pop af cp 5 * 5 - jr nc, .asm_d0417 + jr nc, .add_24 push hl push de ld hl, Unknown_d042f @@ -708,14 +713,14 @@ Functiond03f7: ; d03f7 pop hl ret -.asm_d0417 +.add_24 add 24 ret -.asm_d041a +.check_add_13 pop af cp 6 * 6 - jr nc, .asm_d042c + jr nc, .add_13 push hl push de ld hl, Unknown_d0448 @@ -727,7 +732,7 @@ Functiond03f7: ; d03f7 pop hl ret -.asm_d042c +.add_13 add 13 ret ; d042f @@ -749,31 +754,31 @@ Unknown_d0448: Functiond046c: ; d046c - ld hl, w2_d16f + ld hl, wPokeAnimCoord ld a, [hli] ld h, [hl] ld l, a - ld a, [w2_d171] + ld a, [wPokeAnimFrontpicHeight] ld de, 0 ld bc, 6 cp 7 - jr z, .asm_d048f + jr z, .okay ld de, 21 ld bc, 25 cp 6 - jr z, .asm_d048f + jr z, .okay ld de, 41 ld bc, 45 -.asm_d048f +.okay ld a, [wc2c6] and a - jr nz, .asm_d0497 + jr nz, .add_bc add hl, de ret -.asm_d0497 +.add_bc add hl, bc ret ; d0499 @@ -783,22 +788,22 @@ Functiond0499: ; d0499 inc a ld [w2_d186], a ld c, a - ld a, [w2_d171] + ld a, [wPokeAnimFrontpicHeight] cp c - jr nz, .asm_d04bb + jr nz, .no_carry xor a ld [w2_d186], a ld a, [w2_d185] inc a ld [w2_d185], a ld c, a - ld a, [w2_d171] + ld a, [wPokeAnimFrontpicHeight] cp c - jr nz, .asm_d04bb + jr nz, .no_carry scf ret -.asm_d04bb +.no_carry xor a ret ; d04bd @@ -807,17 +812,17 @@ Functiond04bd: ; d04bd call Functiond04f6 ld a, [wc2c6] and a - jr nz, .asm_d04ce + jr nz, .minus_one_and_six ld de, 1 ld bc, 0 - jr .asm_d04d4 + jr .okay -.asm_d04ce +.minus_one_and_six ld de, -1 ld bc, 6 -.asm_d04d4 - ld hl, w2_d16f +.okay + ld hl, wPokeAnimCoord ld a, [hli] ld h, [hl] ld l, a @@ -825,28 +830,28 @@ Functiond04bd: ; d04bd ld c, 7 ld b, 7 ld a, [w2_d16e] -.asm_d04e2 +.loop push bc push hl push de - ld de, $0014 -.asm_d04e8 + ld de, SCREEN_WIDTH +.loop2 ld [hl], a inc a add hl, de dec b - jr nz, .asm_d04e8 + jr nz, .loop2 pop de pop hl add hl, de pop bc dec c - jr nz, .asm_d04e2 + jr nz, .loop ret ; d04f6 Functiond04f6: ; d04f6 - ld hl, w2_d16f + ld hl, wPokeAnimCoord ld a, [hli] ld h, [hl] ld l, a @@ -917,7 +922,7 @@ Functiond0536: ; d0536 ; d0551 Functiond0551: ; d0551 - ld hl, w2_d16f + ld hl, wPokeAnimCoord ld a, [hli] ld h, [hl] ld l, a @@ -927,18 +932,18 @@ Functiond0551: ; d0551 ; d055c Functiond055c: ; d055c - call Functiond02f2 + call PokeAnim_IsEgg jr z, .egg ld c, BANK(UnownAnimations) ld hl, UnownAnimationPointers ld de, UnownAnimationExtraPointers - call Functiond02ec - jr z, .asm_d0576 + call PokeAnim_IsUnown + jr z, .unown ld c, BANK(PicAnimations) ld hl, AnimationPointers ld de, AnimationExtraPointers -.asm_d0576 +.unown ld a, [w2_d172] and a @@ -947,7 +952,7 @@ Functiond055c: ; d055c ld l, e .asm_d057e - ld a, [w2_d16d] + ld a, [wPokeAnimSpeciesOrUnown] dec a ld e, a ld d, 0 @@ -982,7 +987,7 @@ endr ret ; d05b4 -Functiond05b4: ; d05b4 +PokeAnim_GetFrontpicDims: ; d05b4 ld a, [rSVBK] push af ld a, $1 @@ -999,26 +1004,26 @@ Functiond05b4: ; d05b4 ; d05ce Functiond05ce: ; d05ce - call Functiond02f2 + call PokeAnim_IsEgg jr z, .egg - call Functiond02ec + call PokeAnim_IsUnown ld b, BANK(UnownFramesPointers) ld c, BANK(UnownsFrames) ld hl, UnownFramesPointers - jr z, .asm_d05ef - ld a, [w2_d16b] + jr z, .got_frames + ld a, [wPokeAnimSpecies] cp 151 + 1 ld b, BANK(FramesPointers) ld c, BANK(KantoFrames) ld hl, FramesPointers - jr c, .asm_d05ef + jr c, .got_frames ld c, BANK(JohtoFrames) -.asm_d05ef +.got_frames ld a, c ld [w2_d177], a - ld a, [w2_d16d] + ld a, [wPokeAnimSpeciesOrUnown] dec a ld e, a ld d, 0 @@ -1046,19 +1051,19 @@ endr ; d061b Functiond061b: ; d061b - call Functiond02f2 + call PokeAnim_IsEgg jr z, .egg - call Functiond02ec + call PokeAnim_IsUnown ld a, BANK(UnownBitmasksPointers) ld hl, UnownBitmasksPointers - jr z, .asm_d062f + jr z, .unown ld a, BANK(BitmasksPointers) ld hl, BitmasksPointers -.asm_d062f +.unown ld [w2_d17a], a - ld a, [w2_d16d] + ld a, [wPokeAnimSpeciesOrUnown] dec a ld e, a ld d, 0 @@ -1085,14 +1090,14 @@ endr ret ; d065c -Functiond065c: ; d065c - call Functiond02ec - jr z, .asm_d0665 - ld a, [w2_d16b] +PokeAnim_GetSpeciesOrUnown: ; d065c + call PokeAnim_IsUnown + jr z, .unown + ld a, [wPokeAnimSpecies] ret -.asm_d0665 - ld a, [w2_d16c] +.unown + ld a, [wPokeAnimUnownLetter] ret ; d0669 @@ -1101,7 +1106,7 @@ Functiond0669: ; d0669 ld [wc2c6], a Functiond066e: ; d066e - call Functiond01c6 + call AnimateMon_CheckIfPokemon jr c, .asm_d068c ld h, d ld l, e @@ -1113,7 +1118,7 @@ Functiond066e: ; d066e pop bc ld d, 0 ld e, c - call Functiond008e + call AnimateFrontpic xor a ld [wc2c6], a ret diff --git a/home.asm b/home.asm index 9def17d17..d5f98ee3a 100644 --- a/home.asm +++ b/home.asm @@ -217,10 +217,10 @@ LoadTileMapToTempTileMap:: ; 309d ; Load TileMap into TempTileMap ld a, [rSVBK] push af - ld a, BANK(w2_d000) + ld a, BANK(TempTileMap) ld [rSVBK], a hlcoord 0, 0 - ld de, w2_d000 + decoord 0, 0, TempTileMap ld bc, TileMapEnd - TileMap call CopyBytes pop af @@ -241,9 +241,9 @@ LoadTempTileMapToTileMap:: ; 30bf ; Load TempTileMap into TileMap ld a, [rSVBK] push af - ld a, BANK(w2_d000) + ld a, BANK(TempTileMap) ld [rSVBK], a - ld hl, w2_d000 + hlcoord 0, 0, TempTileMap decoord 0, 0 ld bc, TileMapEnd - TileMap call CopyBytes diff --git a/main.asm b/main.asm index 6605c1c0f..d272e5c7a 100644 --- a/main.asm +++ b/main.asm @@ -20039,8 +20039,8 @@ Function1728f: ; 1728f (5:728f) ld [CurPartySpecies], a hlcoord 6, 3 ld d, $0 - ld e, $5 - predef Functiond008e + ld e, ANIM_MON_HATCH + predef AnimateFrontpic pop af ld [CurSpecies], a ret @@ -41215,8 +41215,8 @@ Function4d81e: ; 4d81e ld [CurPartySpecies], a hlcoord 7, 2 ld d, $0 - ld e, $3 - predef Functiond008e + ld e, ANIM_MON_TRADE + predef AnimateFrontpic ret ; 4d860 @@ -42738,7 +42738,7 @@ Function4e289: ; 4e289 (13:6289) hlcoord 0, 0 ld d, $0 ld e, $2 - predef Functiond00a3 + predef LoadMonAnimation ld hl, wcf64 set 6, [hl] ret @@ -42793,7 +42793,7 @@ Function4e2f2: ; 4e2f2 (13:62f2) ld a, [CurPartySpecies] cp EGG jr z, .asm_4e2fe - call Function4e53f + call CheckFaintedFrzSlp jr c, Function4e305 .asm_4e2fe xor a @@ -42941,7 +42941,7 @@ Function4e497: ; 4e497 (13:6497) pop de hlcoord 0, 0 ld d, $0 - predef Functiond00a3 + predef LoadMonAnimation ld hl, wcf64 set 6, [hl] ret @@ -43016,21 +43016,21 @@ Function4e528: ; 4e528 (13:6528) jp SkipNames -Function4e53f: ; 4e53f +CheckFaintedFrzSlp: ; 4e53f ld hl, MON_HP add hl, bc ld a, [hli] or [hl] - jr z, .asm_4e552 + jr z, .fainted_frz_slp ld hl, MON_STATUS add hl, bc ld a, [hl] and (1 << FRZ) | SLP - jr nz, .asm_4e552 + jr nz, .fainted_frz_slp and a ret -.asm_4e552 +.fainted_frz_slp scf ret ; 4e554 @@ -43248,8 +43248,8 @@ _EvolutionAnimation: ; 4e607 ld [CurPartySpecies], a hlcoord 7, 2 ld d, $0 - ld e, $4 - predef Functiond008e + ld e, ANIM_MON_EVOLVE + predef AnimateFrontpic pop af ld [CurPartySpecies], a @@ -43393,7 +43393,7 @@ Function4e794: ; 4e794 call GetPartyLocation ld b, h ld c, l - callba Function4e53f + callba CheckFaintedFrzSlp ret ; 4e7a6 diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 847422b7c..b10404b78 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -284,8 +284,8 @@ Function108219: ; 108219 ld [CurPartySpecies], a hlcoord 7, 2 ld d, $0 - ld e, $3 - predef Functiond008e + ld e, ANIM_MON_TRADE + predef AnimateFrontpic ret ; 108229 @@ -293,8 +293,8 @@ Function108229: ; 108229 ld [CurPartySpecies], a hlcoord 7, 2 ld d, $0 - ld e, $3 - predef Functiond00a3 + ld e, ANIM_MON_TRADE + predef LoadMonAnimation ret ; 108239 @@ -304,7 +304,7 @@ Function108239: ; 108239 call GetPokemonName ld hl, StringBuffer1 pop de - ld bc, $000b + ld bc, PKMN_NAME_LENGTH call CopyBytes ret ; 10824b diff --git a/wram.asm b/wram.asm index 41a03c86b..8ad643225 100644 --- a/wram.asm +++ b/wram.asm @@ -2648,20 +2648,19 @@ wGameDataEnd:: SECTION "Pic Animations", WRAMX, BANK [2] -w2_d000:: +TempTileMap:: ; 20x18 grid of 8x8 tiles ds SCREEN_WIDTH * SCREEN_HEIGHT ; $168 = 360 - -w2_d168:: ds 1 -w2_d169:: ds 1 -w2_d16a:: ds 1 -w2_d16b:: ds 1 -w2_d16c:: ds 1 -w2_d16d:: ds 1 +; PokeAnim Header +wPokeAnimSceneIndex:: ds 1 +wPokeAnimPointer:: ds 2 +wPokeAnimSpecies:: ds 1 +wPokeAnimUnownLetter:: ds 1 +wPokeAnimSpeciesOrUnown:: ds 1 w2_d16e:: ds 1 -w2_d16f:: ds 1 -w2_d170:: ds 1 -w2_d171:: ds 1 +wPokeAnimCoord:: ds 2 +wPokeAnimFrontpicHeight:: ds 1 +; PokeAnim Data w2_d172:: ds 1 w2_d173:: ds 1 w2_d174:: ds 1 @@ -2677,7 +2676,7 @@ w2_d17d:: ds 1 w2_d17e:: ds 1 w2_d17f:: ds 1 w2_d180:: ds 1 -w2_d181:: ds 1 +wPokeAnimWaitCounter:: ds 1 w2_d182:: ds 1 w2_d183:: ds 1 w2_d184:: ds 1 @@ -2685,6 +2684,8 @@ w2_d185:: ds 1 w2_d186:: ds 1 w2_d187:: ds 1 w2_d188:: ds 1 + ds 8 +wPokeAnimStructEnd:: SECTION "WRAM 3", WRAMX, BANK [3] -- cgit v1.2.3 From eb39f6a3396b21047a11dd871263c6dbc5f2c65f Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 7 Nov 2015 13:05:58 -0500 Subject: Move MON_* parentheses to the EQUS declaration --- battle/core.asm | 18 +++++----- constants/pokemon_constants.asm | 64 +++++++++++++++++------------------ event/dratini.asm | 2 +- items/item_effects.asm | 16 ++++----- main.asm | 74 ++++++++++++++++++++--------------------- sram.asm | 8 ++--- 6 files changed, 91 insertions(+), 91 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index 45c5e8bd0..51da5bd26 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -4068,16 +4068,16 @@ InitBattleMon: ; 3da0d ld de, BattleMonSpecies ld bc, MON_ID call CopyBytes - ld bc, (MON_DVS) - (MON_ID) + ld bc, MON_DVS - MON_ID add hl, bc ld de, BattleMonDVs - ld bc, (MON_PKRUS) - (MON_DVS) + ld bc, MON_PKRUS - MON_DVS call CopyBytes rept 3 inc hl endr ld de, BattleMonLevel - ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_LEVEL) + ld bc, PARTYMON_STRUCT_LENGTH - MON_LEVEL call CopyBytes ld a, [BattleMonSpecies] ld [TempBattleMonSpecies], a @@ -4096,7 +4096,7 @@ endr call CopyBytes ld hl, BattleMonAttack ld de, PlayerStats - ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_ATK) + ld bc, PARTYMON_STRUCT_LENGTH - MON_ATK call CopyBytes call Function3ec2c call BadgeStatBoosts @@ -4160,16 +4160,16 @@ Function3dabd: ; 3dabd ld de, EnemyMonSpecies ld bc, MON_ID call CopyBytes - ld bc, (MON_DVS) - (MON_ID) + ld bc, MON_DVS - MON_ID add hl, bc ld de, EnemyMonDVs - ld bc, (MON_PKRUS) - (MON_DVS) + ld bc, MON_PKRUS - MON_DVS call CopyBytes rept 3 inc hl endr ld de, EnemyMonLevel - ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_LEVEL) + ld bc, PARTYMON_STRUCT_LENGTH - MON_LEVEL call CopyBytes ld a, [EnemyMonSpecies] ld [CurSpecies], a @@ -4182,7 +4182,7 @@ endr call CopyBytes ld hl, EnemyMonAttack ld de, EnemyStats - ld bc, (PARTYMON_STRUCT_LENGTH) - (MON_ATK) + ld bc, PARTYMON_STRUCT_LENGTH - MON_ATK call CopyBytes call Function3ec30 ld hl, BaseType1 @@ -5868,7 +5868,7 @@ endr push hl call .asm_3e6a5 pop hl - ld bc, (MON_PP) - (MON_MOVES) + ld bc, MON_PP - MON_MOVES add hl, bc call .asm_3e6a5 diff --git a/constants/pokemon_constants.asm b/constants/pokemon_constants.asm index 4fe16d09c..3407281c4 100644 --- a/constants/pokemon_constants.asm +++ b/constants/pokemon_constants.asm @@ -260,38 +260,38 @@ NUM_POKEMON EQU const_value EGG EQU 253 ; pokemon structure in RAM -MON_SPECIES EQUS "PartyMon1Species - PartyMon1" -MON_ITEM EQUS "PartyMon1Item - PartyMon1" -MON_MOVES EQUS "PartyMon1Moves - PartyMon1" -MON_ID EQUS "PartyMon1ID - PartyMon1" -MON_EXP EQUS "PartyMon1Exp - PartyMon1" -MON_STAT_EXP EQUS "PartyMon1StatExp - PartyMon1" -MON_HP_EXP EQUS "PartyMon1HPExp - PartyMon1" -MON_ATK_EXP EQUS "PartyMon1AtkExp - PartyMon1" -MON_DEF_EXP EQUS "PartyMon1DefExp - PartyMon1" -MON_SPD_EXP EQUS "PartyMon1SpdExp - PartyMon1" -MON_SPC_EXP EQUS "PartyMon1SpcExp - PartyMon1" -MON_DVS EQUS "PartyMon1DVs - PartyMon1" -MON_PP EQUS "PartyMon1PP - PartyMon1" -MON_HAPPINESS EQUS "PartyMon1Happiness - PartyMon1" -MON_PKRUS EQUS "PartyMon1PokerusStatus - PartyMon1" -MON_CAUGHTDATA EQUS "PartyMon1CaughtData - PartyMon1" -MON_CAUGHTLEVEL EQUS "PartyMon1CaughtLevel - PartyMon1" -MON_CAUGHTTIME EQUS "PartyMon1CaughtTime - PartyMon1" -MON_CAUGHTGENDER EQUS "PartyMon1CaughtGender - PartyMon1" -MON_CAUGHTLOCATION EQUS "PartyMon1CaughtLocation - PartyMon1" -MON_LEVEL EQUS "PartyMon1Level - PartyMon1" -MON_STATUS EQUS "PartyMon1Status - PartyMon1" -MON_HP EQUS "PartyMon1HP - PartyMon1" -MON_MAXHP EQUS "PartyMon1MaxHP - PartyMon1" -MON_ATK EQUS "PartyMon1Attack - PartyMon1" -MON_DEF EQUS "PartyMon1Defense - PartyMon1" -MON_SPD EQUS "PartyMon1Speed - PartyMon1" -MON_SAT EQUS "PartyMon1SpclAtk - PartyMon1" -MON_SDF EQUS "PartyMon1SpclDef - PartyMon1" -BOXMON_STRUCT_LENGTH EQUS "PartyMon1End - PartyMon1" -PARTYMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1" -SCRATCHMON_STRUCT_LENGTH EQUS "PartyMon1StatsEnd - PartyMon1Item" +MON_SPECIES EQUS "(PartyMon1Species - PartyMon1)" +MON_ITEM EQUS "(PartyMon1Item - PartyMon1)" +MON_MOVES EQUS "(PartyMon1Moves - PartyMon1)" +MON_ID EQUS "(PartyMon1ID - PartyMon1)" +MON_EXP EQUS "(PartyMon1Exp - PartyMon1)" +MON_STAT_EXP EQUS "(PartyMon1StatExp - PartyMon1)" +MON_HP_EXP EQUS "(PartyMon1HPExp - PartyMon1)" +MON_ATK_EXP EQUS "(PartyMon1AtkExp - PartyMon1)" +MON_DEF_EXP EQUS "(PartyMon1DefExp - PartyMon1)" +MON_SPD_EXP EQUS "(PartyMon1SpdExp - PartyMon1)" +MON_SPC_EXP EQUS "(PartyMon1SpcExp - PartyMon1)" +MON_DVS EQUS "(PartyMon1DVs - PartyMon1)" +MON_PP EQUS "(PartyMon1PP - PartyMon1)" +MON_HAPPINESS EQUS "(PartyMon1Happiness - PartyMon1)" +MON_PKRUS EQUS "(PartyMon1PokerusStatus - PartyMon1)" +MON_CAUGHTDATA EQUS "(PartyMon1CaughtData - PartyMon1)" +MON_CAUGHTLEVEL EQUS "(PartyMon1CaughtLevel - PartyMon1)" +MON_CAUGHTTIME EQUS "(PartyMon1CaughtTime - PartyMon1)" +MON_CAUGHTGENDER EQUS "(PartyMon1CaughtGender - PartyMon1)" +MON_CAUGHTLOCATION EQUS "(PartyMon1CaughtLocation - PartyMon1)" +MON_LEVEL EQUS "(PartyMon1Level - PartyMon1)" +MON_STATUS EQUS "(PartyMon1Status - PartyMon1)" +MON_HP EQUS "(PartyMon1HP - PartyMon1)" +MON_MAXHP EQUS "(PartyMon1MaxHP - PartyMon1)" +MON_ATK EQUS "(PartyMon1Attack - PartyMon1)" +MON_DEF EQUS "(PartyMon1Defense - PartyMon1)" +MON_SPD EQUS "(PartyMon1Speed - PartyMon1)" +MON_SAT EQUS "(PartyMon1SpclAtk - PartyMon1)" +MON_SDF EQUS "(PartyMon1SpclDef - PartyMon1)" +BOXMON_STRUCT_LENGTH EQUS "(PartyMon1End - PartyMon1)" +PARTYMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1)" +SCRATCHMON_STRUCT_LENGTH EQUS "(PartyMon1StatsEnd - PartyMon1Item)" const_value SET 1 const MONMENU_CUT ; 1 diff --git a/event/dratini.asm b/event/dratini.asm index aa1d7a0f4..24876f9f4 100644 --- a/event/dratini.asm +++ b/event/dratini.asm @@ -59,7 +59,7 @@ endr call GetFarByte ; get the address of the move's PP and update the PP - ld hl, (MON_PP) - (MON_MOVES) + ld hl, MON_PP - MON_MOVES add hl, de ld [hl], a diff --git a/items/item_effects.asm b/items/item_effects.asm index 0b67efce5..a8551d30c 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -1338,11 +1338,11 @@ Functioneed9: ; eed9 ; eeeb Table_eeeb: ; eeeb - db HP_UP, (MON_HP_EXP) - (MON_STAT_EXP) - db PROTEIN, (MON_ATK_EXP) - (MON_STAT_EXP) - db IRON, (MON_DEF_EXP) - (MON_STAT_EXP) - db CARBOS, (MON_SPD_EXP) - (MON_STAT_EXP) - db CALCIUM, (MON_SPC_EXP) - (MON_STAT_EXP) + db HP_UP, MON_HP_EXP - MON_STAT_EXP + db PROTEIN, MON_ATK_EXP - MON_STAT_EXP + db IRON, MON_DEF_EXP - MON_STAT_EXP + db CARBOS, MON_SPD_EXP - MON_STAT_EXP + db CALCIUM, MON_SPC_EXP - MON_STAT_EXP ; eef5 @@ -2641,7 +2641,7 @@ Functionf652: ; f652 rept NUM_MOVES + 2 ; BattleMonPP - BattleMonMoves inc de endr - ld bc, (MON_PP) - (MON_MOVES) + ld bc, MON_PP - MON_MOVES add hl, bc ld a, [hl] ld [de], a @@ -3111,7 +3111,7 @@ Functionf84c: ; f84c ld de, Buffer1 predef FillPP pop hl - ld bc, (MON_PP) - (MON_MOVES) + ld bc, MON_PP - MON_MOVES add hl, bc ld de, Buffer1 ld b, 0 @@ -3279,7 +3279,7 @@ Functionf8ec: ; f8ec pop hl push bc - ld bc, (MON_PP) - (MON_MOVES) + ld bc, MON_PP - MON_MOVES ld a, [MonType] cp WILDMON jr nz, .notwild diff --git a/main.asm b/main.asm index d272e5c7a..e14f964d0 100644 --- a/main.asm +++ b/main.asm @@ -1642,7 +1642,7 @@ LearnMove: ; 6508 .learn ld a, [wd262] ld [hl], a - ld bc, (MON_PP) - (MON_MOVES) + ld bc, MON_PP - MON_MOVES add hl, bc push hl @@ -9232,7 +9232,7 @@ Functione039: ; e039 cp [hl] jr z, .asm_e131 ld hl, sPartyScratch1 - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes push hl add hl, bc @@ -9242,11 +9242,11 @@ Functione039: ; e039 .asm_e11a push bc push hl - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop hl push hl - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH add hl, bc pop de pop bc @@ -9357,7 +9357,7 @@ endr srl c pop hl push bc - ld bc, (MON_DVS) - (MON_HP_EXP) + 1 + ld bc, MON_DVS - MON_HP_EXP + 1 add hl, bc pop bc ld a, c @@ -13536,12 +13536,12 @@ Function12cfe: ; 12cfe (4:6cfe) ld [de], a ld a, [CurPartyMon] ld hl, sPartyScratch1 - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l ld hl, DefaultFlypoint - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH ld a, BANK(sPartyScratch1) call GetSRAMBank call CopyBytes @@ -26053,7 +26053,7 @@ Function28595: ; 28595 .next pop de - ld hl, (SCRATCHMON_STRUCT_LENGTH) + ld hl, SCRATCHMON_STRUCT_LENGTH add hl, de ld d, h ld e, l @@ -26916,13 +26916,13 @@ Function28b87: ; 28b87 .asm_28c7b ld hl, sPartyScratch1 ld a, [DefaultFlypoint] - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld a, BANK(sPartyScratch1) call GetSRAMBank ld d, h ld e, l - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH add hl, bc ld a, [DefaultFlypoint] ld c, a @@ -26932,7 +26932,7 @@ Function28b87: ; 28b87 cp $6 jr z, .asm_28ca6 push bc - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop bc jr .asm_28c96 @@ -26941,15 +26941,15 @@ Function28b87: ; 28b87 ld hl, sPartyScratch1 ld a, [PartyCount] dec a - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes push hl ld hl, wc9f4 ld a, [wd003] - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes pop de - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes call CloseSRAM ld hl, PlayerName @@ -32105,7 +32105,7 @@ FindFirstAliveMon: ; 2ee2f jr nz, .loop .okay - ld de, (MON_LEVEL) - (MON_HP) + ld de, MON_LEVEL - MON_HP add hl, de ld a, [hl] ld [BattleMonLevel], a @@ -33505,7 +33505,7 @@ FillMoves: ; 424e1 jr z, .NextMove push hl ld a, [hl] - ld hl, (MON_PP) - (MON_MOVES) + ld hl, MON_PP - MON_MOVES add hl, de push hl dec a @@ -34126,23 +34126,23 @@ Function4456e: ; 4456e call Function44648 cp $a jr nc, .asm_445be - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH ld hl, s0_a835 call AddNTimes ld d, h ld e, l ld a, [CurPartyMon] - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH ld hl, sPartyScratch1 call AddNTimes push hl ld a, BANK(s0_a834) call GetSRAMBank - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop hl xor a - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call ByteFill ld a, MON_ITEM call GetPartyParamLocation @@ -34164,7 +34164,7 @@ Function445c0: ; 445c0 (11:45c0) ld a, b push bc ld hl, s0_a835 - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes push hl add hl, bc @@ -34175,7 +34175,7 @@ Function445c0: ; 445c0 (11:45c0) cp $9 jr z, .done push bc - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop bc inc b @@ -34184,7 +34184,7 @@ Function445c0: ; 445c0 (11:45c0) ld h, d ld l, e xor a - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call ByteFill ld hl, s0_a834 dec [hl] @@ -34194,7 +34194,7 @@ Function445c0: ; 445c0 (11:45c0) ReadMailMessage: ; 445f4 ld a, b ld hl, s0_a835 - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34206,22 +34206,22 @@ Function44607: ; 44607 call GetSRAMBank push bc ld a, b - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH ld hl, s0_a835 call AddNTimes push hl ld a, [CurPartyMon] - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH ld hl, sPartyScratch1 call AddNTimes ld d, h ld e, l pop hl push hl - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop hl - ld de, (PARTYMON_STRUCT_LENGTH) - (MON_MOVES) + ld de, PARTYMON_STRUCT_LENGTH - MON_MOVES add hl, de ld d, [hl] ld a, [CurPartyMon] @@ -34260,7 +34260,7 @@ Function44654:: ; 44654 call GetSRAMBank ld a, [CurPartyMon] ld hl, sPartyScratch1 - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l @@ -34363,11 +34363,11 @@ BackupScratchmons: ; 44725 call GetSRAMBank ld hl, sPartyScratch1 ld de, sPartyScratch2 - ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) + ld bc, 6 * SCRATCHMON_STRUCT_LENGTH call CopyBytes ld hl, s0_a834 ld de, s0_aa0b - ld bc, 1 + 10 * (SCRATCHMON_STRUCT_LENGTH) + ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH call CopyBytes jp CloseSRAM ; 44745 @@ -34377,11 +34377,11 @@ RestoreScratchmons: ; 44745 (11:4745) call GetSRAMBank ld hl, sPartyScratch2 ld de, sPartyScratch1 - ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) + ld bc, 6 * SCRATCHMON_STRUCT_LENGTH call CopyBytes ld hl, s0_aa0b ld de, s0_a834 - ld bc, 1 + 10 * (SCRATCHMON_STRUCT_LENGTH) + ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH call CopyBytes jp CloseSRAM @@ -34390,11 +34390,11 @@ DeleteScratchmons: ; 44765 (11:4765) call GetSRAMBank xor a ld hl, sPartyScratch1 - ld bc, 6 * (SCRATCHMON_STRUCT_LENGTH) + ld bc, 6 * SCRATCHMON_STRUCT_LENGTH call ByteFill xor a ld hl, s0_a834 - ld bc, 1 + 10 * (SCRATCHMON_STRUCT_LENGTH) + ld bc, 1 + 10 * SCRATCHMON_STRUCT_LENGTH call ByteFill jp CloseSRAM ; 44781 (11:4781) @@ -34471,7 +34471,7 @@ InitMail: ; 0x447b9 Function447da: ; 0x447da dec a - ld hl, s0_a835 + (MON_HP) - 1 + ld hl, s0_a835 + MON_HP - 1 ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld a, BANK(s0_a834) @@ -63031,7 +63031,7 @@ INCLUDE "engine/radio.asm" ReadPartyMonMail: ; b9229 ld a, [CurPartyMon] ld hl, sPartyScratch1 - ld bc, (SCRATCHMON_STRUCT_LENGTH) + ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld d, h ld e, l diff --git a/sram.asm b/sram.asm index 9656636af..67a4b73e9 100644 --- a/sram.asm +++ b/sram.asm @@ -9,12 +9,12 @@ sScratch:: SECTION "SRAM Bank 0", SRAM [$a600], BANK [0] -sPartyScratch1:: ds 6 * (SCRATCHMON_STRUCT_LENGTH) -sPartyScratch2:: ds 6 * (SCRATCHMON_STRUCT_LENGTH) +sPartyScratch1:: ds 6 * SCRATCHMON_STRUCT_LENGTH +sPartyScratch2:: ds 6 * SCRATCHMON_STRUCT_LENGTH s0_a834:: ds 1 -s0_a835:: ds 10 * (SCRATCHMON_STRUCT_LENGTH) +s0_a835:: ds 10 * SCRATCHMON_STRUCT_LENGTH s0_aa0b:: ds 1 -s0_aa0c:: ds 10 * (SCRATCHMON_STRUCT_LENGTH) +s0_aa0c:: ds 10 * SCRATCHMON_STRUCT_LENGTH sMysteryGiftItem:: ds 1 s0_abe3:: ds 1 -- cgit v1.2.3 From 09603bf0315862d7c008e08a9960e6111a0859f8 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 7 Nov 2015 14:38:52 -0500 Subject: More Battle Tower shenanigans --- constants/misc_constants.asm | 1 + data/battle_tower.asm | 10 +- engine/specials.asm | 2 +- main.asm | 4 +- misc/battle_tower_47.asm | 8 +- misc/battle_tower_5c.asm | 422 +++++++++++++++++++++++++++++++++++++++ misc/mobile_46.asm | 8 +- misc/mobile_5c.asm | 457 +++---------------------------------------- misc/mobile_5f.asm | 46 ++--- wram.asm | 68 ++++--- 10 files changed, 523 insertions(+), 503 deletions(-) create mode 100755 misc/battle_tower_5c.asm diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 173f0145f..e10be0db4 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -114,6 +114,7 @@ BATTLETOWER_NROFPKMNS EQU 3 BATTLETOWER_TRAINERDATALENGTH EQU $24 BATTLETOWER_NROFTRAINERS EQU 7 BATTLETOWER_NRMONSPERLEVELBRACKET EQU BATTLETOWER_NROFPKMNS * BATTLETOWER_NROFTRAINERS +BATTLE_TOWER_STRUCT_LENGTH EQU $e0 ; NAME_LENGTH + 3 * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH NUM_WILDMONS_PER_AREA_TIME_OF_DAY EQU 7 WILDMON_GRASS_STRUCTURE_LENGTH EQU 2 + 3 * (1 + 2 * NUM_WILDMONS_PER_AREA_TIME_OF_DAY) diff --git a/data/battle_tower.asm b/data/battle_tower.asm index 775b65951..8b278fca9 100644 --- a/data/battle_tower.asm +++ b/data/battle_tower.asm @@ -1,13 +1,13 @@ Function_LoadOpponentTrainerAndPokemons: ; 1f8000 ld a, [rSVBK] push af - ld a, BANK(BT_OTrainer) + ld a, BANK(BT_OTTrainer) ld [rSVBK], a - ; Fill BT_OTrainer with zeros + ; Fill BT_OTTrainer with zeros xor a - ld hl, BT_OTrainer - ld bc, BT_OTrainerEnd - BT_OTrainer + ld hl, BT_OTTrainer + ld bc, BT_OTTrainerEnd - BT_OTTrainer call ByteFill ; Write $ff into the Item-Slots @@ -17,7 +17,7 @@ Function_LoadOpponentTrainerAndPokemons: ; 1f8000 ld [BT_OTPkmn3Item], a ; Set BT_OTTrainer as start address to write the following data to - ld de, BT_OTrainer + ld de, BT_OTTrainer ld a, [hRandomAdd] ld b, a diff --git a/engine/specials.asm b/engine/specials.asm index 68543f2d9..005ee2487 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -141,7 +141,7 @@ SpecialsPointers:: ; c029 add_special Function170114 add_special BattleTowerBattle add_special Function1704e1 - add_special Function17021d + add_special EmptySpecial_17021d add_special Function_LoadOpponentTrainerAndPokemonsWithOTSprite add_special Function11ba38 add_special SpecialCheckForBattleTowerRules diff --git a/main.asm b/main.asm index e14f964d0..99a74d154 100644 --- a/main.asm +++ b/main.asm @@ -15809,7 +15809,7 @@ Function13a47: ; unreferenced push bc call Function13b71 push de - callba Function17d073 + callba CheckStringForErrors pop hl pop bc jr nc, .asm_13b0e @@ -15847,7 +15847,7 @@ Function13a47: ; unreferenced push bc call Function13b71 push de - callba Function17d073 + callba CheckStringForErrors pop hl jr nc, .asm_13b34 ld d, h diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index 8cf670c80..bc6eec83d 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -1,16 +1,16 @@ BattleTowerText:: ; 11c000 -; Print text c for trainer [BT_OTrainer_TrainerClass] +; Print text c for trainer [BT_OTTrainerClass] ; 1: Intro text ; 2: Player lost ; 3: Player won ld a, [rSVBK] push af - ld a, 3 ; BANK(BT_OTrainer_TrainerClass) + ld a, 3 ; BANK(BT_OTTrainerClass) ld [rSVBK], a IF DEF(CRYSTAL11) - ld hl, BT_OTrainer_TrainerClass + ld hl, BT_OTTrainerClass ELSE - ld hl, BT_OTrainer_Name + 5 + ld hl, BT_OTName + 5 ENDC ld a, [hl] dec a diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm new file mode 100755 index 000000000..6d5ad2ebf --- /dev/null +++ b/misc/battle_tower_5c.asm @@ -0,0 +1,422 @@ +BattleTowerBattle: ; 170215 + xor a + ld [wcf63], a + call _BattleTowerBattle + ret +; 17021d + +EmptySpecial_17021d: ; 17021d + ret +; 17021e + +Function17021e: ; 17021e + xor a + ld [wcf63], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ret +; 17022c + +_BattleTowerBattle: ; 17022c +.loop + call .do_jumptable + call DelayFrame + ld a, [wcf63] + cp $1 + jr nz, .loop + ret +; 17023a + +.do_jumptable: ; 17023a + ld a, [wcf63] + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 170249 + +.jumptable: ; 170249 + dw RunBattleTowerTrainer + dw SkipBattleTowerTrainer +; 17024d + +RunBattleTowerTrainer: ; 17024d + ld a, [Options] + push af + ld hl, Options + set BATTLE_SHIFT, [hl] ; SET MODE + + ld a, [InBattleTowerBattle] + push af + or $1 + ld [InBattleTowerBattle], a + + xor a + ld [wLinkMode], a + callba Mobile_HealParty + callba HealParty + call ReadBTTrainerParty + call Clears5_a89a + predef StartBattle + callba LoadPokemonData + callba HealParty + ld a, [wBattleResult] + ld [ScriptVar], a + and a + jr nz, .lost + ld a, BANK(sNrOfBeatenBattleTowerTrainers) + call GetSRAMBank + ld a, [sNrOfBeatenBattleTowerTrainers] + ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 + call CloseSRAM + ld hl, StringBuffer3 + ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 + add "1" + ld [hli], a + ld a, "@" + ld [hl], a + +.lost + pop af + ld [InBattleTowerBattle], a + pop af + ld [Options], a + ld a, $1 + ld [wcf63], a + ret + + +ReadBTTrainerParty: ; 1702b7 +; Initialise the BattleTower-Trainer and his Pkmn + call CopyBTTrainer_FromBT_OT_TowBT_OTTemp + +; Check the nicknames for illegal characters, and replace bad nicknames +; with their species names. + ld de, wBT_OTTempPkmn1Name ; $c643 + ld c, PKMN_NAME_LENGTH + callba CheckStringForErrors + jr nc, .skip_mon_1 + + ld a, [wBT_OTTempPkmn1] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempPkmn1Name ; $c643 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.skip_mon_1 + ld de, wBT_OTTempPkmn2Name ; $c67e + ld c, PKMN_NAME_LENGTH + callba CheckStringForErrors + jr nc, .skip_mon_2 + ld a, [wBT_OTTempPkmn2] ; [$c64e] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempPkmn2Name ; $c67e + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.skip_mon_2 + ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9 + ld c, PKMN_NAME_LENGTH + callba CheckStringForErrors + jr nc, .skip_mon_3 + ld a, [wBT_OTTempPkmn3] ; [$c689] + ld [wNamedObjectIndexBuffer], a + call GetPokemonName + ld l, e + ld h, d + ld de, wBT_OTTempPkmn3Name ; $c686 + 51 = $c6b9 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +.skip_mon_3 +; Add the terminator character to each of these names + ld a, "@" + ld [wBT_OTTempPkmn1NameEnd - 1], a ; $c64d + ld [wBT_OTTempPkmn2NameEnd - 1], a ; $c688 + ld [wBT_OTTempPkmn3NameEnd - 1], a ; $c68a + 57 = $c6c3 +; Fix errors in the movesets + call CheckBTMonMovesForErrors +; Repair the trainer name if needed, then copy it to OTPlayerName + ld de, wBT_OTTempName + ld c, NAME_LENGTH - 1 + callba CheckStringForErrors + jr nc, .trainer_name_okay + ld hl, BT_ChrisName + jr .done_trainer_name + +.trainer_name_okay + ld hl, wBT_OTTempName ; 0xc608 + +.done_trainer_name + ld de, OTPlayerName + ld bc, NAME_LENGTH - 1 + call CopyBytes + ld a, "@" + ld [de], a + + ld hl, wBT_OTTempTrainerClass + ld a, [hli] + ld [OtherTrainerClass], a + ld a, OTPartyMonNicknames % $100 + ld [BGMapBuffer], a + ld a, OTPartyMonNicknames / $100 + ld [BGMapBuffer + 1], a + + ; Copy Pkmn into Memory from the address in hl + ld de, OTPartyMon1Species + ld bc, OTPartyCount + ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has + ld [bc], a + inc bc +.otpartymon_loop + push af + ld a, [hl] + ld [bc], a + inc bc + push bc + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + push de + ld a, [BGMapBuffer] + ld e, a + ld a, [BGMapBuffer + 1] + ld d, a + ld bc, PKMN_NAME_LENGTH + call CopyBytes + ld a, e + ld [BGMapBuffer], a + ld a, d + ld [BGMapBuffer + 1], a + pop de + pop bc + pop af + dec a + and a + jr nz, .otpartymon_loop + ld a, -1 + ld [bc], a + ret +; 170394 + +Function170394: ; 170394 + ld hl, $c608 + 11 + ld d, $3 +.asm_170399 + push de + push hl + ld b, h + ld c, l + ld a, [hl] + and a + jr z, .asm_1703b1 + cp $ff + jr z, .asm_1703b1 + cp $fe + jr z, .asm_1703b1 + cp $fd + jr z, .asm_1703b1 + cp $fc + jr nz, .asm_1703b4 + +.asm_1703b1 + ld a, $eb + ld [hl], a + +.asm_1703b4 + ld [CurSpecies], a + call GetBaseData + ld a, $5 + call GetSRAMBank + ld a, [$b2fb] + call CloseSRAM + ld e, a + ld hl, $001f + add hl, bc + ld a, [hl] + cp $2 + ld a, $2 + jr c, .asm_1703d6 + ld a, [hl] + cp e + jr c, .asm_1703d7 + ld a, e + +.asm_1703d6 + ld [hl], a + +.asm_1703d7 + ld [CurPartyLevel], a + ld hl, $0002 + add hl, bc + ld d, $3 + ld a, [hli] + and a + jr z, .asm_1703ea + cp $fc + jr nc, .asm_1703ea + jr .asm_1703f4 + +.asm_1703ea + dec hl + ld a, $1 + ld [hli], a + xor a +rept 2 + ld [hli], a +endr + ld [hl], a + jr .asm_1703ff + +.asm_1703f4 + ld a, [hl] + cp $fc + jr c, .asm_1703fb + ld [hl], $0 + +.asm_1703fb + inc hl + dec d + jr nz, .asm_1703f4 + +.asm_1703ff + ld hl, $0024 + add hl, bc + ld d, h + ld e, l + push hl + push de + ld hl, $000a + add hl, bc + ld b, $1 + predef CalcPkmnStats + pop de + pop hl +rept 2 + dec de +endr + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + pop hl + ld bc, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH + add hl, bc + pop de + dec d + jp nz, .asm_170399 + ret +; 170426 + +BT_ChrisName: ; 170426 + db "CHRIS@" +; 17042c + +Function17042c: ; 17042c + ld hl, OTPartyMon2ID + ld a, $7 +.asm_170431 + push af + push hl + ld c, $12 +.asm_170435 + ld a, [hli] + ld b, a + ld a, [hli] + and a + jr z, .asm_170451 + cp $f + jr nc, .asm_17045b + push hl + ld hl, Unknown_170470 + dec a + ld e, a + ld d, 0 + add hl, de + ld a, [hl] + pop hl + cp b + jr c, .asm_17045b + jr z, .asm_17045b + jr .asm_170456 + +.asm_170451 + ld a, b + cp $fc + jr nc, .asm_17045b + +.asm_170456 + dec c + jr nz, .asm_170435 + jr .asm_170466 + +.asm_17045b + pop de + push de + ld hl, Unknown_17047e + ld bc, BATTLETOWER_TRAINERDATALENGTH + call CopyBytes + +.asm_170466 + pop hl + ld de, $00e0 + add hl, de + pop af + dec a + jr nz, .asm_170431 + ret +; 170470 + +Unknown_170470: + db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 + +Unknown_17047e: + db $03, $04, $05, $08 + db $03, $05, $0e, $06 + db $03, $02, $00, $00 + db $39, $07, $07, $04 + db $00, $05, $04, $07 + db $01, $05, $00, $00 + db $0f, $05, $14, $07 + db $05, $05, $11, $0c + db $0c, $06, $06, $04 + + +CopyBTTrainer_FromBT_OT_TowBT_OTTemp: ; 1704a2 +; copy the BattleTower-Trainer data that lies at 'BT_OTTrainer' to 'wBT_OTTemp' + ld a, [rSVBK] + push af + ld a, $3 ; BANK(BT_OTTrainer) + ld [rSVBK], a + + ld hl, BT_OTTrainer ; $d100 + ld de, wBT_OTTemp ; $c608 + ld bc, BATTLE_TOWER_STRUCT_LENGTH + call CopyBytes + + pop af + ld [rSVBK], a + + ld a, BANK(s1_be45) + call GetSRAMBank + ld a, $2 + ld [s1_be45], a + ld hl, sNrOfBeatenBattleTowerTrainers + inc [hl] + call CloseSRAM +SkipBattleTowerTrainer: ; 1704c9 + ret +; 1704ca diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 494f848a6..7a439246d 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -7543,7 +7543,7 @@ Function11b6b4: ; 11b6b4 ld [$c628], a ld de, $c63d ld c, $5 - callba Function17d073 + callba CheckStringForErrors jr nc, .asm_11b70f callba Function17d187 @@ -7557,7 +7557,7 @@ Function11b6b4: ; 11b6b4 .asm_11b723 ld de, $c642 ld c, $5 - callba Function17d073 + callba CheckStringForErrors jr nc, .asm_11b736 callba Function17d199 @@ -7571,7 +7571,7 @@ Function11b6b4: ; 11b6b4 .asm_11b74a ld de, $c647 ld c, $21 - callba Function17d073 + callba CheckStringForErrors jr nc, .asm_11b75d callba Function17d1ab @@ -7590,7 +7590,7 @@ Function11b6b4: ; 11b6b4 .asm_11b776 ld de, $c668 ld c, $5 - callba Function17d073 + callba CheckStringForErrors jr nc, .asm_11b789 callba Function17d1c9 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index b9b0553ce..39a8fbc41 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -251,418 +251,7 @@ Function17020c: ; 17020c ret ; 170215 -BattleTowerBattle: ; 170215 - xor a - ld [wJumptableIndex], a - call Function17022c - ret -; 17021d - -Function17021d: ; 17021d - ret -; 17021e - -Function17021e: ; 17021e - xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ret -; 17022c - -Function17022c: ; 17022c -.loop - call Jumpto_BattleTowerBattleFunction - call DelayFrame - ld a, [wJumptableIndex] - cp $1 - jr nz, .loop - ret -; 17023a - -Jumpto_BattleTowerBattleFunction: ; 17023a - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_BattleTowerBattleFunctions -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 170249 - -Jumptable_BattleTowerBattleFunctions: ; 170249 - dw RunBattleTowerBattle - dw SkipBattleTowerBattle -; 17024d - -RunBattleTowerBattle: ; 17024d - ld a, [Options] - push af - ld hl, Options - set 6, [hl] - ld a, [InBattleTowerBattle] - push af - or $1 - ld [InBattleTowerBattle], a - xor a - ld [wLinkMode], a - callba Mobile_HealParty - callba HealParty - call Function1702b7 - call Function170bf7 - predef StartBattle - callba LoadPokemonData - callba HealParty - ld a, [wBattleResult] - ld [ScriptVar], a - and a - jr nz, .lost - ld a, BANK(sNrOfBeatenBattleTowerTrainers) - call GetSRAMBank - ld a, [sNrOfBeatenBattleTowerTrainers] - ld [wNrOfBeatenBattleTowerTrainers], a ; wcf64 - call CloseSRAM - ld hl, StringBuffer3 - ld a, [wNrOfBeatenBattleTowerTrainers] ; wcf64 - add $f7 - ld [hli], a - ld a, $50 - ld [hl], a - -.lost - pop af - ld [InBattleTowerBattle], a - pop af - ld [Options], a - ld a, $1 - ld [wJumptableIndex], a - ret - - -Function1702b7: ; 1702b7 -; Initialise the BattleTower-Trainer and his Pkmn - call CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_1702db - - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn1Name ; $c643 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_1702db - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_1702fc - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2] ; [$c64e] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn2Name ; $c67e - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_1702fc - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 - ld c, PKMN_NAME_LENGTH - callba Function17d073 - jr nc, .asm_17031d - ld a, [wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3] ; [$c689] - ld [wd265], a - call GetPokemonName - ld l, e - ld h, d - ld de, wBT_OTTempCopy + wBT_OTTempCopy_Pkmn3Name ; $c686 + 51 = $c6b9 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -.asm_17031d - ld a, $50 - ld [wBT_OTTempCopy + wBT_OTTempCopy_45], a ; $c64d - ld [wBT_OTTempCopy + wBT_OTTempCopy_80], a ; $c688 - ld [wBT_OTTempCopy + wBT_OTTempCopy_BB], a ; $c68a + 57 = $c6c3 - call Function170c98 - ld de, wBT_OTTempCopy - ld c, $a - callba Function17d073 - jr nc, .asm_17033d - ld hl, String_170426 - jr .asm_170340 - -.asm_17033d - ld hl, wBT_OTTempCopy ; 0xc608 - -.asm_170340 - ld de, wd26b - ld bc, $000a - call CopyBytes - ld a, $50 - ld [de], a - ld hl, wBT_OTTempCopy + wBT_OTTempCopy_TrainerClass - ld a, [hli] - ld [OtherTrainerClass], a - ld a, $ea - ld [BGMapBuffer], a - ld a, $d3 - ld [wcd21], a - - ; Copy Pkmn into Memory from the address in hl - ld de, OTPartyMon1Species - ld bc, OTPartyCount - ld a, BATTLETOWER_NROFPKMNS ; Number of Pkmn the BattleTower-Trainer has - ld [bc], a - inc bc -.asm_170367 - push af - ld a, [hl] - ld [bc], a - inc bc - push bc - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - push de - ld a, [BGMapBuffer] - ld e, a - ld a, [wcd21] - ld d, a - ld bc, $000b - call CopyBytes - ld a, e - ld [BGMapBuffer], a - ld a, d - ld [wcd21], a - pop de - pop bc - pop af - dec a - and a - jr nz, .asm_170367 - ld a, $ff - ld [bc], a - ret -; 170394 - -Function170394: ; 170394 - ld hl, $c608 + 11 - ld d, $3 -.asm_170399 - push de - push hl - ld b, h - ld c, l - ld a, [hl] - and a - jr z, .asm_1703b1 - cp $ff - jr z, .asm_1703b1 - cp $fe - jr z, .asm_1703b1 - cp $fd - jr z, .asm_1703b1 - cp $fc - jr nz, .asm_1703b4 - -.asm_1703b1 - ld a, $eb - ld [hl], a - -.asm_1703b4 - ld [CurSpecies], a - call GetBaseData - ld a, $5 - call GetSRAMBank - ld a, [$b2fb] - call CloseSRAM - ld e, a - ld hl, $001f - add hl, bc - ld a, [hl] - cp $2 - ld a, $2 - jr c, .asm_1703d6 - ld a, [hl] - cp e - jr c, .asm_1703d7 - ld a, e - -.asm_1703d6 - ld [hl], a - -.asm_1703d7 - ld [CurPartyLevel], a - ld hl, $0002 - add hl, bc - ld d, $3 - ld a, [hli] - and a - jr z, .asm_1703ea - cp $fc - jr nc, .asm_1703ea - jr .asm_1703f4 - -.asm_1703ea - dec hl - ld a, $1 - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - jr .asm_1703ff - -.asm_1703f4 - ld a, [hl] - cp $fc - jr c, .asm_1703fb - ld [hl], $0 - -.asm_1703fb - inc hl - dec d - jr nz, .asm_1703f4 - -.asm_1703ff - ld hl, $0024 - add hl, bc - ld d, h - ld e, l - push hl - push de - ld hl, $000a - add hl, bc - ld b, $1 - predef CalcPkmnStats - pop de - pop hl -rept 2 - dec de -endr - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - pop hl - ld bc, $003b - add hl, bc - pop de - dec d - jp nz, .asm_170399 - ret -; 170426 - -String_170426: ; 170426 - db "CHRIS@" -; 17042c - -Function17042c: ; 17042c - ld hl, OTPartyMon2ID - ld a, $7 -.asm_170431 - push af - push hl - ld c, $12 -.asm_170435 - ld a, [hli] - ld b, a - ld a, [hli] - and a - jr z, .asm_170451 - cp $f - jr nc, .asm_17045b - push hl - ld hl, Unknown_170470 - dec a - ld e, a - ld d, 0 - add hl, de - ld a, [hl] - pop hl - cp b - jr c, .asm_17045b - jr z, .asm_17045b - jr .asm_170456 - -.asm_170451 - ld a, b - cp $fc - jr nc, .asm_17045b - -.asm_170456 - dec c - jr nz, .asm_170435 - jr .asm_170466 - -.asm_17045b - pop de - push de - ld hl, Unknown_17047e - ld bc, $0024 - call CopyBytes - -.asm_170466 - pop hl - ld de, $00e0 - add hl, de - pop af - dec a - jr nz, .asm_170431 - ret -; 170470 - -Unknown_170470: - db $12, $24, $45, $45, $42, $42, $45, $42, $27, $27, $45, $27, $42, $24 - -Unknown_17047e: - db $03, $04, $05, $08 - db $03, $05, $0e, $06 - db $03, $02, $00, $00 - db $39, $07, $07, $04 - db $00, $05, $04, $07 - db $01, $05, $00, $00 - db $0f, $05, $14, $07 - db $05, $05, $11, $0c - db $0c, $06, $06, $04 - - -CopyBTTrainer_FromBT_OTrainer_TowBT_OTTempCopy: ; 1704a2 -; copy the BattleTower-Trainer data that lies at 'BT_OTrainer' to 'wBT_OTTempCopy' - ld a, [rSVBK] - push af - ld a, $3 - ld [rSVBK], a - ld hl, BT_OTrainer ; $d100 - ld de, wBT_OTTempCopy ; $c608 - ld bc, BT_OTrainerEnd - BT_OTrainer ; $e0 = $a + $1 + 3*$3b + $24 - ; = $a + $1 + BATTLETOWER_NROFPKMNS * (PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH) + BATTLETOWER_TRAINERDATALENGTH - call CopyBytes - pop af - ld [rSVBK], a - ld a, BANK(s1_be45) - call GetSRAMBank - ld a, $2 - ld [s1_be45], a - ld hl, sNrOfBeatenBattleTowerTrainers - inc [hl] - call CloseSRAM -SkipBattleTowerBattle: ; 1704c9 - ret -; 1704ca - +INCLUDE "misc/battle_tower_5c.asm" Function1704ca: ; 1704ca ld a, [$be46] @@ -1753,7 +1342,7 @@ Function170be4: ; 170be4 ret ; 170bf7 -Function170bf7: ; 170bf7 +Clears5_a89a: ; 170bf7 ld a, $5 call GetSRAMBank ld hl, $a89a @@ -1881,46 +1470,46 @@ Function170c8b: ; 170c8b ret ; 170c98 -Function170c98: ; 170c98 - ld c, $3 - ld hl, $c608 + 13 -.asm_170c9d +CheckBTMonMovesForErrors: ; 170c98 + ld c, BATTLETOWER_NROFPKMNS + ld hl, wBT_OTTempPkmn1Moves +.loop push hl ld a, [hl] - cp $fc - jr c, .asm_170ca6 - ld a, $1 + cp NUM_ATTACKS + 1 + jr c, .okay + ld a, POUND ld [hl], a -.asm_170ca6 +.okay inc hl - ld b, $3 -.asm_170ca9 + ld b, NUM_MOVES - 1 +.loop2 ld a, [hl] and a - jr z, .asm_170cb1 - cp $fc - jr c, .asm_170cb9 + jr z, .loop3 + cp NUM_ATTACKS + 1 + jr c, .next -.asm_170cb1 +.loop3 xor a ld [hl], a inc hl dec b - jr nz, .asm_170cb1 - jr .asm_170cbd + jr nz, .loop3 + jr .done -.asm_170cb9 +.next inc hl dec b - jr nz, .asm_170ca9 + jr nz, .loop2 -.asm_170cbd +.done pop hl - ld de, $003b + ld de, PARTYMON_STRUCT_LENGTH + PKMN_NAME_LENGTH add hl, de dec c - jr nz, .asm_170c9d + jr nz, .loop ret ; 170cc6 diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 49f7353b7..9fd476d7f 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -178,48 +178,50 @@ HaveWantPals: ; 17cff3 RGB 0, 0, 0 -Function17d073: ; 17d073 -.asm_17d073 +CheckStringForErrors: ; 17d073 +; Valid character ranges: +; $00, $05 - $13, $19 - $1c, $26 - $34, $3a - $3e, $40 - $48, $60 - $ff +.loop ld a, [de] inc de and a - jr z, .asm_17d0ae + jr z, .NextChar cp $60 - jr nc, .asm_17d0ae + jr nc, .NextChar cp $4e - jr z, .asm_17d0ae - cp $50 - jr z, .asm_17d0b1 + jr z, .NextChar + cp "@" + jr z, .Done cp $5 - jr c, .asm_17d0ac - cp $14 - jr c, .asm_17d0ae + jr c, .Fail + cp "" + jr c, .NextChar cp $19 - jr c, .asm_17d0ac + jr c, .Fail cp $1d - jr c, .asm_17d0ae + jr c, .NextChar cp $26 - jr c, .asm_17d0ac + jr c, .Fail cp $35 - jr c, .asm_17d0ae + jr c, .NextChar cp $3a - jr c, .asm_17d0ac + jr c, .Fail cp $3f - jr c, .asm_17d0ae + jr c, .NextChar cp $40 - jr c, .asm_17d0ac + jr c, .Fail cp $49 - jr c, .asm_17d0ae + jr c, .NextChar -.asm_17d0ac +.Fail scf ret -.asm_17d0ae +.NextChar dec c - jr nz, .asm_17d073 + jr nz, .loop -.asm_17d0b1 +.Done and a ret ; 17d0b3 diff --git a/wram.asm b/wram.asm index 8ad643225..117322357 100644 --- a/wram.asm +++ b/wram.asm @@ -129,6 +129,22 @@ channel_struct: MACRO ds 1 ; c132 ENDM +battle_tower_struct: MACRO +\1Name:: ds NAME_LENGTH +- 1 +\1TrainerClass:: ds 1 +\1Pkmn1:: party_struct \1Pkmn1 +\1Pkmn1Name:: ds PKMN_NAME_LENGTH +\1Pkmn1NameEnd:: +\1Pkmn2:: party_struct \1Pkmn2 +\1Pkmn2Name:: ds PKMN_NAME_LENGTH +\1Pkmn2NameEnd:: +\1Pkmn3:: party_struct \1Pkmn3 +\1Pkmn3Name:: ds PKMN_NAME_LENGTH +\1Pkmn3NameEnd:: +\1TrainerData:: ds BATTLETOWER_TRAINERDATALENGTH +\1TrainerEnd:: +endm + INCLUDE "vram.asm" SECTION "Stack", WRAM0 @@ -435,10 +451,12 @@ wOddEggName:: ds PKMN_NAME_LENGTH wOddEggOTName:: ds PKMN_NAME_LENGTH ds -70 +wBT_OTTemp:: battle_tower_struct wBT_OTTemp + ds -BATTLE_TOWER_STRUCT_LENGTH + wMisc:: wBattle:: wc608:: -wBT_OTTempCopy:: ; used to copy the data of the BattleTower-Trainer and the 3 Pkmn wEnemyMoveStruct:: ds MOVE_LENGTH ; c608 wc60f:: @@ -888,21 +906,21 @@ wMiscEnd:: wc7e8:: ds 24 -RSSET 0 ; Offsets for wBT_OTTempCopy:: @ $c608 -wBT_OTTempCopy_0 RB NAME_LENGTH + -1 ; $c608 -wBT_OTTempCopy_TrainerClass RB 1 ; $c608 + $a = $c612 -wBT_OTTempCopy_Pkmn1 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $b = $c613 -wBT_OTTempCopy_Pkmn1Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $45 = $c64d -wBT_OTTempCopy_45 RB 1 -wBT_OTTempCopy_Pkmn2 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $46 = $c64e -wBT_OTTempCopy_Pkmn2Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $76 = $c67e -wBT_OTTempCopy_80 RB 1 -wBT_OTTempCopy_Pkmn3 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $81 = $c689 -wBT_OTTempCopy_Pkmn3Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $b1 = $c6b9 -wBT_OTTempCopy_BB RB 1 +RSSET 0 ; Offsets for wBT_OTTemp:: @ $c608 +wBT_OTTemp_0 RB NAME_LENGTH + -1 ; $c608 +wBT_OTTemp_TrainerClass RB 1 ; $c608 + $a = $c612 +wBT_OTTemp_Pkmn1 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $b = $c613 +wBT_OTTemp_Pkmn1Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $45 = $c64d +wBT_OTTemp_45 RB 1 +wBT_OTTemp_Pkmn2 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $46 = $c64e +wBT_OTTemp_Pkmn2Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $76 = $c67e +wBT_OTTemp_80 RB 1 +wBT_OTTemp_Pkmn3 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $81 = $c689 +wBT_OTTemp_Pkmn3Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $b1 = $c6b9 +wBT_OTTemp_BB RB 1 -GLOBAL wBT_OTTempCopy_TrainerClass, wBT_OTTempCopy_Pkmn1, wBT_OTTempCopy_Pkmn1Name, wBT_OTTempCopy_Pkmn2, wBT_OTTempCopy_Pkmn2Name, wBT_OTTempCopy_Pkmn3, wBT_OTTempCopy_Pkmn3Name -GLOBAL wBT_OTTempCopy_45, wBT_OTTempCopy_80, wBT_OTTempCopy_BB +GLOBAL wBT_OTTemp_TrainerClass, wBT_OTTemp_Pkmn1, wBT_OTTemp_Pkmn1Name, wBT_OTTemp_Pkmn2, wBT_OTTemp_Pkmn2Name, wBT_OTTemp_Pkmn3, wBT_OTTemp_Pkmn3Name +GLOBAL wBT_OTTemp_45, wBT_OTTemp_80, wBT_OTTemp_BB @@ -1205,7 +1223,8 @@ CurMove:: wNamedObjectTypeBuffer:: ds 1 ds 1 -wJumptableIndex:: ds 1 +wJumptableIndex:: +wcf63:: ds 1 wNrOfBeatenBattleTowerTrainers:: wMomBankDigitCursorPosition:: wIntroSceneFrameCounter:: @@ -2695,22 +2714,9 @@ w3_d000:: ; d000 w3_d090:: ds $70 -BT_OTrainer:: w3_d100:: ; BattleTower OpponentTrainer-Data (length = 0xe0 = $a + $1 + 3*$3b + $24) -BT_OTrainer_Name:: - ds NAME_LENGTH + -1 -BT_OTrainer_TrainerClass:: - ds 1 -BT_OTPkmn1:: party_struct BT_OTPkmn1 -BT_OTPkmn1Name:: ds PKMN_NAME_LENGTH -BT_OTPkmn2:: party_struct BT_OTPkmn2 -BT_OTPkmn2Name:: ds PKMN_NAME_LENGTH -BT_OTPkmn3:: party_struct BT_OTPkmn3 -BT_OTPkmn3Name:: ds PKMN_NAME_LENGTH - -BT_OTrainerData:: ds $24 -BT_OTrainerEnd:: ; w3_d1e0 - +BT_OTTrainer:: battle_tower_struct BT_OT +; d1e0 ds $20 BT_TrainerTextIndex:: ds $600 -- cgit v1.2.3 From 6a570ebb8ecb72dc9d1373062c311dfbb1234dc3 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sat, 7 Nov 2015 21:04:54 -0500 Subject: more battle core labels --- battle/ai/items.asm | 4 +- battle/core.asm | 536 ++++++++++++++++++++++--------------------- battle/effect_commands.asm | 43 ++-- constants/item_constants.asm | 120 +++++----- constants/misc_constants.asm | 22 ++ engine/save.asm | 2 +- event/kurt.asm | 2 +- event/mom.asm | 6 +- event/move_deleter.asm | 2 +- home/map.asm | 2 +- home/menu.asm | 2 +- items/item_effects.asm | 2 +- main.asm | 80 +++---- misc/battle_tower_5c.asm | 115 +++++----- misc/crystal_misc.asm | 2 +- misc/mobile_22.asm | 8 +- misc/mobile_40.asm | 10 +- misc/mobile_42.asm | 2 +- misc/mobile_46.asm | 4 +- misc/mobile_5b.asm | 4 +- misc/mobile_5c.asm | 4 +- misc/mobile_5f.asm | 4 +- wram.asm | 13 +- 23 files changed, 515 insertions(+), 474 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 285f92c73..95d2818e4 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -731,8 +731,8 @@ AI_Switch: ; 3846c callab ResetEnemyStatLevels ld hl, PlayerSubStatus1 res SUBSTATUS_IN_LOVE, [hl] - callba Function3d4e1 - callba Function3d57a + callba EnemySwitch + callba ResetBattleParticipants xor a ld [wd264], a ld a, [wLinkMode] diff --git a/battle/core.asm b/battle/core.asm index 51da5bd26..a2bcbaa5b 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -5,7 +5,7 @@ BattleCore: Function3c000: ; 3c000 xor a - ld [wc664], a + ld [wBattleParticipantsNotFainted], a ld [wc6fc], a ld [wd0ec], a ld [BattleEnded], a @@ -42,7 +42,7 @@ Function3c000: ; 3c000 call NewEnemyMonStatus call ResetEnemyStatLevels call BreakAttraction - call Function3d4e1 + call EnemySwitch .wild ld c, 40 @@ -86,7 +86,7 @@ Function3c000: ; 3c000 ld a, $9 call Function3d490 call LoadTileMapToTempTileMap - call Function3d57a + call ResetBattleParticipants call InitBattleMon call ResetPlayerStatLevels call SendOutPkmnText @@ -108,7 +108,7 @@ Function3c000: ; 3c000 call NewEnemyMonStatus call ResetEnemyStatLevels call BreakAttraction - call Function3d4e1 + call EnemySwitch call SetEnemyTurn call SpikesDamage @@ -431,7 +431,7 @@ Function3c27c: ; 3c27c xor a ld [wcfca], a ld de, ANIM_CONFUSED - call Function3ee0f + call Call_PlayBattleAnim_OnlyIfVisible call SwitchTurnCore ld hl, BecameConfusedText jp StdBattleTextBox @@ -665,7 +665,7 @@ Function3c434: ; 3c434 call SetPlayerTurn callab UpdateMoveData xor a - ld [wc732], a + ld [wPlayerCharging], a ld a, [wPlayerMoveStruct + MOVE_EFFECT] cp EFFECT_FURY_CUTTER jr z, .asm_3c494 @@ -778,7 +778,7 @@ Function3c4df: ; 3c4df ; 3c543 -Function3c543: ; 3c543 +TryEnemyFlee: ; 3c543 ld a, [wBattleMode] dec a jr nz, .Stay @@ -939,14 +939,14 @@ GetMoveEffect: ; 3c5ec Function3c5fe: ; 3c5fe call LoadTileMapToTempTileMap - call Function3c543 + call TryEnemyFlee jp c, WildFled_EnemyFled_LinkBattleCanceled call SetEnemyTurn ld a, $1 ld [wc70f], a callab AI_SwitchOrTryItem - jr c, .asm_3c62f - call Function3c6de + jr c, .switch_item + call EnemyTurn_EndOpponentProtectEndureDestinyBond call Function3d2e0 ret c ld a, [wd232] @@ -957,12 +957,12 @@ Function3c5fe: ; 3c5fe call HasEnemyFainted jp z, HandleEnemyMonFaint -.asm_3c62f +.switch_item call SetEnemyTurn call ResidualDamage jp z, HandleEnemyMonFaint call RefreshBattleHuds - call Function3c6cf + call PlayerTurn_EndOpponentProtectEndureDestinyBond call Function3d2e0 ret c ld a, [wd232] @@ -987,7 +987,7 @@ Function3c664: ; 3c664 call SetEnemyTurn callab AI_SwitchOrTryItem push af - call Function3c6cf + call PlayerTurn_EndOpponentProtectEndureDestinyBond pop bc ld a, [wd232] and a @@ -1006,11 +1006,11 @@ Function3c664: ; 3c664 push bc call RefreshBattleHuds pop af - jr c, .asm_3c6be + jr c, .switched_or_used_item call LoadTileMapToTempTileMap - call Function3c543 + call TryEnemyFlee jp c, WildFled_EnemyFled_LinkBattleCanceled - call Function3c6de + call EnemyTurn_EndOpponentProtectEndureDestinyBond call Function3d2e0 ret c ld a, [wd232] @@ -1021,7 +1021,7 @@ Function3c664: ; 3c664 call HasEnemyFainted jp z, HandleEnemyMonFaint -.asm_3c6be +.switched_or_used_item call SetEnemyTurn call ResidualDamage jp z, HandleEnemyMonFaint @@ -1031,21 +1031,21 @@ Function3c664: ; 3c664 ret ; 3c6cf -Function3c6cf: ; 3c6cf +PlayerTurn_EndOpponentProtectEndureDestinyBond: ; 3c6cf call SetPlayerTurn - call Function3c6fe + call EndUserDestinyBond callab DoPlayerTurn - jp Function3c6ed + jp EndOpponentProtectEndureDestinyBond ; 3c6de -Function3c6de: ; 3c6de +EnemyTurn_EndOpponentProtectEndureDestinyBond: ; 3c6de call SetEnemyTurn - call Function3c6fe + call EndUserDestinyBond callab DoEnemyTurn - jp Function3c6ed + jp EndOpponentProtectEndureDestinyBond ; 3c6ed -Function3c6ed: ; 3c6ed +EndOpponentProtectEndureDestinyBond: ; 3c6ed ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVarAddr res SUBSTATUS_PROTECT, [hl] @@ -1056,7 +1056,7 @@ Function3c6ed: ; 3c6ed ret ; 3c6fe -Function3c6fe: ; 3c6fe +EndUserDestinyBond: ; 3c6fe ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVarAddr res SUBSTATUS_DESTINY_BOND, [hl] @@ -1107,14 +1107,14 @@ ResidualDamage: ; 3c716 xor a ld [wcfca], a - call Function3ee0f + call Call_PlayBattleAnim_OnlyIfVisible call GetEighthMaxHP ld de, PlayerToxicCount ld a, [hBattleTurn] and a - jr z, .asm_3c74d + jr z, .check_toxic ld de, EnemyToxicCount -.asm_3c74d +.check_toxic ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVar @@ -1142,7 +1142,7 @@ ResidualDamage: ; 3c716 ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr bit SUBSTATUS_LEECH_SEED, [hl] - jr z, .asm_3c7a1 + jr z, .not_seeded call SwitchTurnCore xor a @@ -1151,7 +1151,7 @@ ResidualDamage: ; 3c716 ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND - call z, Function3ee0f + call z, Call_PlayBattleAnim_OnlyIfVisible call SwitchTurnCore call GetEighthMaxHP @@ -1161,7 +1161,7 @@ ResidualDamage: ; 3c716 call RestoreHP ld hl, LeechSeedSapsText call StdBattleTextBox -.asm_3c7a1 +.not_seeded call HasUserFainted jr z, .fainted @@ -1169,16 +1169,16 @@ ResidualDamage: ; 3c716 ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr bit SUBSTATUS_NIGHTMARE, [hl] - jr z, .asm_3c7c5 + jr z, .not_nightmare xor a ld [wcfca], a ld de, ANIM_IN_NIGHTMARE - call Function3ee0f + call Call_PlayBattleAnim_OnlyIfVisible call GetQuarterMaxHP call SubtractHPFromUser ld hl, HasANightmareText call StdBattleTextBox -.asm_3c7c5 +.not_nightmare call HasUserFainted jr z, .fainted @@ -1186,25 +1186,25 @@ ResidualDamage: ; 3c716 ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVarAddr bit SUBSTATUS_CURSE, [hl] - jr z, .asm_3c7e9 + jr z, .not_cursed xor a ld [wcfca], a ld de, ANIM_IN_NIGHTMARE - call Function3ee0f + call Call_PlayBattleAnim_OnlyIfVisible call GetQuarterMaxHP call SubtractHPFromUser ld hl, HurtByCurseText call StdBattleTextBox -.asm_3c7e9 +.not_cursed ld hl, BattleMonHP ld a, [hBattleTurn] and a - jr z, .asm_3c7f4 + jr z, .check_fainted ld hl, EnemyMonHP -.asm_3c7f4 +.check_fainted ld a, [hli] or [hl] ret nz @@ -2139,14 +2139,14 @@ HandleEnemyMonFaint: ; 3cd55 or [hl] jr nz, .asm_3cdba - call Function3d1f8 - jr nc, .asm_3cda4 + call AskUseNextPokemon + jr nc, .dont_flee ld a, 1 ld [BattleEnded], a ret -.asm_3cda4 +.dont_flee call Function3d227 call Function3d2e0 jp c, WildFled_EnemyFled_LinkBattleCanceled @@ -2251,7 +2251,7 @@ Function3ce01: ; 3ce01 ld a, [wBattleResult] and $c0 ld [wBattleResult], a - call ShareExperiencePoints + call DoOthersShareExperience jr z, .asm_3ce72 ld hl, EnemyMonBaseStats ld b, $7 @@ -2264,36 +2264,37 @@ Function3ce01: ; 3ce01 .asm_3ce72 ld hl, EnemyMonBaseStats ld de, wc720 - ld bc, $0007 + ld bc, EnemyMonEnd - EnemyMonBaseStats call CopyBytes xor a ld [wc71f], a call GiveExperiencePoints - call ShareExperiencePoints + call DoOthersShareExperience ret z - ld a, [wc664] + + ld a, [wBattleParticipantsNotFainted] push af ld a, d - ld [wc664], a + ld [wBattleParticipantsNotFainted], a ld hl, wc720 ld de, EnemyMonBaseStats - ld bc, $0007 + ld bc, EnemyMonEnd - EnemyMonBaseStats call CopyBytes ld a, $1 ld [wc71f], a call GiveExperiencePoints pop af - ld [wc664], a + ld [wBattleParticipantsNotFainted], a ret ; 3ceaa -ShareExperiencePoints: ; 3ceaa +DoOthersShareExperience: ; 3ceaa ld a, [PartyCount] ld b, a ld hl, PartyMon1 ld c, 1 ld d, 0 -.asm_3ceb5 +.loop push hl push bc ld bc, MON_HP @@ -2302,7 +2303,7 @@ ShareExperiencePoints: ; 3ceaa or [hl] pop bc pop hl - jr z, .asm_3ced1 + jr z, .next push hl push bc @@ -2313,31 +2314,31 @@ ShareExperiencePoints: ; 3ceaa pop hl cp EXP_SHARE - jr nz, .asm_3ced1 + jr nz, .next ld a, d or c ld d, a -.asm_3ced1 +.next sla c push de ld de, PARTYMON_STRUCT_LENGTH add hl, de pop de dec b - jr nz, .asm_3ceb5 + jr nz, .loop ld a, d ld e, 0 ld b, PARTY_LENGTH -.asm_3cee1 +.loop2 srl a - jr nc, .asm_3cee6 + jr nc, .okay inc e -.asm_3cee6 +.okay dec b - jr nz, .asm_3cee1 + jr nz, .loop2 ld a, e and a ret @@ -2438,14 +2439,14 @@ EnemyPartyMonEntrance: ; 3cf78 and a jr nz, .asm_3cf8f - call Function3d4e1 + call EnemySwitch jr .asm_3cf92 .asm_3cf8f - call Function3d517 + call EnemySwitch_SetMode .asm_3cf92 - call Function3d57a + call ResetBattleParticipants call SetEnemyTurn call SpikesDamage xor a @@ -2676,30 +2677,30 @@ PlayVictoryMusic: ; 3d0ea ld de, MUSIC_WILD_VICTORY ld a, [wBattleMode] dec a - jr nz, .asm_3d113 + jr nz, .trainer_victory push de - call ShareExperiencePoints + call DoOthersShareExperience pop de - jr nz, .asm_3d11e + jr nz, .play_music ld hl, wPayDayMoney ld a, [hli] or [hl] - jr nz, .asm_3d11e - ld a, [wc664] + jr nz, .play_music + ld a, [wBattleParticipantsNotFainted] and a - jr z, .asm_3d121 - jr .asm_3d11e + jr z, .lost + jr .play_music -.asm_3d113 +.trainer_victory ld de, MUSIC_GYM_VICTORY call IsJohtoGymLeader - jr c, .asm_3d11e + jr c, .play_music ld de, MUSIC_TRAINER_VICTORY -.asm_3d11e +.play_music call PlayMusic -.asm_3d121 +.lost pop de ret ; 3d123 @@ -2790,7 +2791,7 @@ HandlePlayerMonFaint: ; 3d14e jp z, WinTrainerBattle .notfainted - call Function3d1f8 + call AskUseNextPokemon jr nc, .asm_3d190 ld a, $1 ld [BattleEnded], a @@ -2813,7 +2814,7 @@ HandlePlayerMonFaint: ; 3d14e Function3d1aa: ; 3d1aa ld a, [CurBattleMon] ld c, a - ld hl, wc664 + ld hl, wBattleParticipantsNotFainted ld b, $0 predef FlagPredef ld hl, EnemySubStatus3 @@ -2849,27 +2850,30 @@ Function3d1aa: ; 3d1aa ret ; 3d1f8 -Function3d1f8: ; 3d1f8 +AskUseNextPokemon: ; 3d1f8 call EmptyBattleTextBox call LoadTileMapToTempTileMap +; We don't need to be here if we're in a Trainer battle, +; as that decision is made for us. ld a, [wBattleMode] and a dec a ret nz + ld hl, BattleText_UseNextMon call StdBattleTextBox -.asm_3d20a +.loop lb bc, 1, 7 call PlaceYesNoBox ld a, [MenuSelection2] - jr c, .asm_3d217 + jr c, .pressed_b and a ret -.asm_3d217 +.pressed_b ld a, [MenuSelection2] - cp $1 - jr z, .asm_3d20a + cp $1 ; YES + jr z, .loop ld hl, PartyMon1Speed ld de, EnemyMonSpeed jp TryToRunAwayFromBattle @@ -2877,17 +2881,17 @@ Function3d1f8: ; 3d1f8 Function3d227: ; 3d227 call EmptyBattleTextBox - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function3d2f7 call ForcePickPartyMonInBattle ld a, [wLinkMode] and a - jr z, .asm_3d241 + jr z, .skip_link ld a, $1 ld [wd0ec], a call Function3e8e4 -.asm_3d241 +.skip_link xor a ld [wd0ec], a call Function3d2e0 @@ -2916,7 +2920,7 @@ Function3d227: ; 3d227 ld [LastPlayerMon], a ld a, [CurPartyMon] ld [CurBattleMon], a - call Function3d581 + call AddBattleParticipant call InitBattleMon call ResetPlayerStatLevels call ClearPalettes @@ -2944,7 +2948,7 @@ Function3d2b3: ; 3d2b3 ld [LastPlayerMon], a ld a, [CurPartyMon] ld [CurBattleMon], a - call Function3d581 + call AddBattleParticipant call InitBattleMon call ResetPlayerStatLevels call SendOutPkmnText @@ -2961,17 +2965,17 @@ Function3d2b3: ; 3d2b3 Function3d2e0: ; 3d2e0 ld a, [wLinkMode] cp LINK_MOBILE - jr nz, .asm_3d2ef ; It's not a mobile battle + jr nz, .not_mobile ; It's not a mobile battle ld a, [wcd2b] and a - jr z, .asm_3d2ef + jr z, .not_mobile ; We have a mobile battle and something else happened scf ret -.asm_3d2ef +.not_mobile xor a ret ; 3d2f1 @@ -3305,43 +3309,46 @@ Function3d4c3: ; 3d4c3 call ResetEnemyStatLevels call Function_SetEnemyPkmnAndSendOutAnimation call BreakAttraction - call Function3d57a + call ResetBattleParticipants ret ; 3d4e1 -Function3d4e1: ; 3d4e1 +EnemySwitch: ; 3d4e1 call Function3d714 - jr nc, Function3d517 + jr nc, EnemySwitch_SetMode + ; Shift Mode call ResetEnemyBattleVars call Function3d533 - jr c, .asm_3d4f1 + jr c, .skip call FindPkmnInOTPartyToSwitchIntoBattle -.asm_3d4f1 +.skip + ; 'b' contains the PartyNr of the Pkmn the AI will switch to call LoadEnemyPkmnToSwitchTo - call Function3d74b + call OfferSwitch push af call Function3d7a0 call Function_BattleTextEnemySentOut call Function_SetEnemyPkmnAndSendOutAnimation pop af ret c + ; If we're here, then we're switching too xor a - ld [wc664], a + ld [wBattleParticipantsNotFainted], a ld [wc6fc], a ld [wd0ec], a inc a ld [wEnemyIsSwitching], a call LoadTileMapToTempTileMap - jp Function3e3ad + jp PlayerSwitch ; 3d517 -Function3d517: ; 3d517 +EnemySwitch_SetMode: ; 3d517 call ResetEnemyBattleVars call Function3d533 - jr c, .asm_3d522 + jr c, .skip call FindPkmnInOTPartyToSwitchIntoBattle -.asm_3d522 +.skip ; 'b' contains the PartyNr of the Pkmn the AI will switch to call LoadEnemyPkmnToSwitchTo ld a, 1 @@ -3400,17 +3407,17 @@ ResetEnemyBattleVars: ; 3d557 ld a, $8 call Function3d490 call EmptyBattleTextBox - jp LoadMenuDataHeader_0x1d75 + jp LoadPartyMenuDataHeader ; 3d57a -Function3d57a: ; 3d57a +ResetBattleParticipants: ; 3d57a xor a - ld [wc664], a + ld [wBattleParticipantsNotFainted], a ld [wc6fc], a -Function3d581: ; 3d581 +AddBattleParticipant: ; 3d581 ld a, [CurBattleMon] ld c, a - ld hl, wc664 + ld hl, wBattleParticipantsNotFainted ld b, SET_FLAG push bc predef FlagPredef @@ -3677,7 +3684,7 @@ Function3d714: ; 3d714 ret ; 3d74b -Function3d74b: ; 3d74b +OfferSwitch: ; 3d74b ld a, [CurPartyMon] push af callab Battle_GetTrainerName @@ -3687,10 +3694,10 @@ Function3d74b: ; 3d74b call PlaceYesNoBox ld a, [MenuSelection2] dec a - jr nz, .asm_3d79a + jr nz, .said_no call Function3d2f7 call PickSwitchMonInBattle - jr c, .asm_3d791 + jr c, .canceled_switch ld a, [CurBattleMon] ld [LastPlayerMon], a ld a, [CurPartyMon] @@ -3706,12 +3713,12 @@ Function3d74b: ; 3d74b and a ret -.asm_3d791 +.canceled_switch call ClearPalettes call DelayFrame call Function3eda6 -.asm_3d79a +.said_no pop af ld [CurPartyMon], a scf @@ -4098,7 +4105,7 @@ endr ld de, PlayerStats ld bc, PARTYMON_STRUCT_LENGTH - MON_ATK call CopyBytes - call Function3ec2c + call ApplyStatusEffectOnPlayerStats call BadgeStatBoosts ret ; 3da74 @@ -4184,7 +4191,7 @@ endr ld de, EnemyStats ld bc, PARTYMON_STRUCT_LENGTH - MON_ATK call CopyBytes - call Function3ec30 + call ApplyStatusEffectOnEnemyStats ld hl, BaseType1 ld de, EnemyMonType1 ld a, [hli] @@ -4213,7 +4220,7 @@ SwitchPlayerMon: ; 3db32 ld [LastPlayerMon], a ld a, [CurPartyMon] ld [CurBattleMon], a - call Function3d581 + call AddBattleParticipant call InitBattleMon call ResetPlayerStatLevels call NewBattleMonStatus @@ -4410,8 +4417,8 @@ PursuitSwitch: ; 3dc5b call PlayStereoCry ld a, [wc71a] ld c, a - ld hl, wc664 - ld b, $0 + ld hl, wBattleParticipantsNotFainted + ld b, RESET_FLAG predef FlagPredef call PlayerMonFaintedAnimation ld hl, BattleText_PkmnFainted @@ -5217,7 +5224,7 @@ BattleMenu_Pack: ; 3e1c7 and a jp nz, ItemsCantBeUsed - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld a, [BattleType] cp BATTLETYPE_TUTORIAL @@ -5312,10 +5319,10 @@ Function3e234: ; 3e234 ; 3e28d BattleMenu_PKMN: ; 3e28d - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader Function3e290: call ExitMenu - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call WhiteBGMap Function3e299: call Function3d2fa @@ -5445,28 +5452,28 @@ Function3e358: ; 3e358 ; fallthrough ; 3e3ad -Function3e3ad: ; 3e3ad +PlayerSwitch: ; 3e3ad ld a, 1 ld [wPlayerIsSwitching], a ld a, [wLinkMode] and a - jr z, .asm_3e3c1 - call LoadMenuDataHeader_0x1d75 + jr z, .not_linked + call LoadPartyMenuDataHeader call Function3e8e4 call WriteBackup -.asm_3e3c1 +.not_linked call Function3e7c1 ld a, [wLinkMode] and a - jr nz, .asm_3e3cf + jr nz, .linked .switch call BattleMonEntrance and a ret -.asm_3e3cf +.linked ld a, [wBattleAction] cp BATTLEACTION_E jp z, .switch @@ -5522,7 +5529,7 @@ BattleMonEntrance: ; 3e40b ld a, [CurBattleMon] ld [CurPartyMon], a - call Function3d581 + call AddBattleParticipant call InitBattleMon call ResetPlayerStatLevels call SendOutPkmnText @@ -5548,7 +5555,7 @@ PassedBattleMonEntrance: ; 3e459 ld a, [CurPartyMon] ld [CurBattleMon], a - call Function3d581 + call AddBattleParticipant call InitBattleMon xor a ld [wd265], a @@ -6062,7 +6069,7 @@ Function3e7c1: ; 3e7c1 ret nz ld a, [wLinkMode] and a - jr z, .asm_3e817 + jr z, .not_linked call EmptyBattleTextBox call LoadTileMapToTempTileMap ld a, [wd0ec] @@ -6071,73 +6078,74 @@ Function3e7c1: ; 3e7c1 call Call_LoadTempTileMapToTileMap ld a, [wBattleAction] cp BATTLEACTION_E - jp z, .asm_3e8bd + jp z, .struggle cp BATTLEACTION_D - jp z, .asm_3e82c + jp z, .battle_action_d cp BATTLEACTION_SWITCH1 jp nc, ResetVarsForSubstatusRage ld [CurEnemyMoveNum], a ld c, a ld a, [EnemySubStatus1] bit SUBSTATUS_ROLLOUT, a - jp nz, .asm_3e882 + jp nz, .skip_load ld a, [EnemySubStatus3] and 1 << SUBSTATUS_CHARGED | 1 << SUBSTATUS_RAMPAGE | 1 << SUBSTATUS_BIDE - jp nz, .asm_3e882 + jp nz, .skip_load ld hl, EnemySubStatus5 bit SUBSTATUS_ENCORED, [hl] ld a, [LastEnemyMove] - jp nz, .asm_3e87f + jp nz, .finish ld hl, EnemyMonMoves ld b, 0 add hl, bc ld a, [hl] - jp .asm_3e87f + jp .finish -.asm_3e817 +.not_linked ld hl, EnemySubStatus5 bit SUBSTATUS_ENCORED, [hl] - jr z, .asm_3e824 + jr z, .skip_encore ld a, [LastEnemyMove] - jp .asm_3e87f + jp .finish -.asm_3e824 +.skip_encore call CheckSubstatus_RechargeChargedRampageBideRollout jp nz, ResetVarsForSubstatusRage - jr .asm_3e830 + jr .continue -.asm_3e82c +.battle_action_d ld a, $ff - jr .asm_3e87f + jr .finish -.asm_3e830 +.continue ld hl, EnemyMonMoves ld de, EnemyMonPP ld b, NUM_MOVES -.asm_3e838 +.loop ld a, [hl] and a - jp z, .asm_3e8bd + jp z, .struggle ld a, [EnemyDisabledMove] cp [hl] - jr z, .asm_3e848 + jr z, .disabled ld a, [de] and $3f - jr nz, .asm_3e84f + jr nz, .enough_pp -.asm_3e848 +.disabled inc hl inc de dec b - jr nz, .asm_3e838 - jr .asm_3e8bd + jr nz, .loop + jr .struggle -.asm_3e84f +.enough_pp ld a, [wBattleMode] dec a - jr nz, .asm_3e882 -.asm_3e855 + jr nz, .skip_load +; wild +.loop2 ld hl, EnemyMonMoves call BattleRandom and 3 ; TODO factor in NUM_MOVES @@ -6149,30 +6157,30 @@ Function3e7c1: ; 3e7c1 and $f dec a cp c - jr z, .asm_3e855 + jr z, .loop2 ld a, [hl] and a - jr z, .asm_3e855 + jr z, .loop2 ld hl, EnemyMonPP add hl, bc ld b, a ld a, [hl] and $3f - jr z, .asm_3e855 + jr z, .loop2 ld a, c ld [CurEnemyMoveNum], a ld a, b -.asm_3e87f +.finish ld [CurEnemyMove], a -.asm_3e882 +.skip_load call SetEnemyTurn callab UpdateMoveData call CheckSubstatus_RechargeChargedRampageBideRollout jr nz, .raging xor a - ld [wc733], a + ld [wEnemyCharging], a .raging ld a, [wEnemyMoveStruct + MOVE_EFFECT] @@ -6184,13 +6192,13 @@ Function3e7c1: ; 3e7c1 .fury_cutter ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_RAGE - jr z, .asm_3e8af + jr z, .no_rage ld hl, EnemySubStatus4 res SUBSTATUS_RAGE, [hl] xor a ld [wEnemyRageCounter], a -.asm_3e8af +.no_rage ld a, [wEnemyMoveStruct + MOVE_EFFECT] cp EFFECT_PROTECT ret z @@ -6200,9 +6208,9 @@ Function3e7c1: ; 3e7c1 ld [EnemyProtectCount], a ret -.asm_3e8bd +.struggle ld a, STRUGGLE - jr .asm_3e87f + jr .finish ; 3e8c1 ResetVarsForSubstatusRage: ; 3e8c1 @@ -6918,16 +6926,16 @@ Function3ec1a: ; 3ec1a ; 3ec2c -Function3ec2c: ; 3ec2c +ApplyStatusEffectOnPlayerStats: ; 3ec2c ld a, 1 - jr Function3ec31 + jr ApplyStatusEffectOnStats ; 3ec30 -Function3ec30: ; 3ec30 +ApplyStatusEffectOnEnemyStats: ; 3ec30 xor a ; 3ec31 -Function3ec31: ; 3ec31 +ApplyStatusEffectOnStats: ; 3ec31 ld [hBattleTurn], a call ApplyPrzEffectOnSpeed jp ApplyBrnEffectOnAttack @@ -6936,7 +6944,7 @@ Function3ec31: ; 3ec31 ApplyPrzEffectOnSpeed: ; 3ec39 ld a, [hBattleTurn] and a - jr z, .asm_3ec5a + jr z, .enemy ld a, [BattleMonStatus] and 1 << PAR ret z @@ -6950,14 +6958,14 @@ ApplyPrzEffectOnSpeed: ; 3ec39 rr b ld [hli], a or b - jr nz, .asm_3ec58 + jr nz, .player_ok ld b, $1 -.asm_3ec58 +.player_ok ld [hl], b ret -.asm_3ec5a +.enemy ld a, [EnemyMonStatus] and 1 << PAR ret z @@ -6971,10 +6979,10 @@ ApplyPrzEffectOnSpeed: ; 3ec39 rr b ld [hli], a or b - jr nz, .asm_3ec74 + jr nz, .enemy_ok ld b, $1 -.asm_3ec74 +.enemy_ok ld [hl], b ret ; 3ec76 @@ -6982,7 +6990,7 @@ ApplyPrzEffectOnSpeed: ; 3ec39 ApplyBrnEffectOnAttack: ; 3ec76 ld a, [hBattleTurn] and a - jr z, .asm_3ec93 + jr z, .enemy ld a, [BattleMonStatus] and 1 << BRN ret z @@ -6994,14 +7002,14 @@ ApplyBrnEffectOnAttack: ; 3ec76 rr b ld [hli], a or b - jr nz, .asm_3ec91 + jr nz, .player_ok ld b, $1 -.asm_3ec91 +.player_ok ld [hl], b ret -.asm_3ec93 +.enemy ld a, [EnemyMonStatus] and 1 << BRN ret z @@ -7013,10 +7021,10 @@ ApplyBrnEffectOnAttack: ; 3ec76 rr b ld [hli], a or b - jr nz, .asm_3eca9 + jr nz, .enemy_ok ld b, $1 -.asm_3eca9 +.enemy_ok ld [hl], b ret ; 3ecab @@ -7024,12 +7032,12 @@ ApplyBrnEffectOnAttack: ; 3ec76 ApplyStatLevelMultiplierOnAllStats: ; 3ecab ; Apply StatLevelMultipliers on all 5 Stats ld c, 0 -.asm_3ecad +.stat_loop call ApplyStatLevelMultiplier inc c ld a, c cp 5 - jr nz, .asm_3ecad + jr nz, .stat_loop ret ; 3ecb7 @@ -7042,17 +7050,17 @@ ApplyStatLevelMultiplier: ; 3ecb7 ld hl, BattleMonAttack ld de, PlayerStats ld bc, PlayerAtkLevel - jr z, .asm_3ecd2 + jr z, .got_pointers ld hl, EnemyMonAttack ld de, EnemyStats ld bc, EnemyAtkLevel -.asm_3ecd2 +.got_pointers add c ld c, a - jr nc, .asm_3ecd7 + jr nc, .okay inc b -.asm_3ecd7 +.okay ld a, [bc] pop bc ld b, a @@ -7063,9 +7071,9 @@ ApplyStatLevelMultiplier: ; 3ecb7 ld a, c add e ld e, a - jr nc, .asm_3ece6 + jr nc, .okay2 inc d -.asm_3ece6 +.okay2 pop bc push hl ld hl, .StatLevelMultipliers @@ -7095,24 +7103,24 @@ ApplyStatLevelMultiplier: ; 3ecb7 sub 999 % $100 ld a, [hQuotient + 1] sbc 999 / $100 - jp c, .asm_3ed1e + jp c, .okay3 ld a, 999 / $100 - ld [$ffb5], a + ld [hQuotient + 1], a ld a, 999 % $100 - ld [$ffb6], a + ld [hQuotient + 2], a -.asm_3ed1e - ld a, [$ffb5] +.okay3 + ld a, [hQuotient + 1] ld [hli], a ld b, a - ld a, [$ffb6] + ld a, [hQuotient + 2] ld [hl], a or b - jr nz, .asm_3ed29 + jr nz, .okay4 inc [hl] -.asm_3ed29 +.okay4 pop bc ret ; 3ed2b @@ -7162,18 +7170,18 @@ BadgeStatBoosts: ; 3ed45 ; Swap badges 3 (PlainBadge) and 5 (MineralBadge). ld d, a - and %00000100 + and (1 << PLAINBADGE) rept 2 add a endr ld b, a ld a, d - and %00010000 + and (1 << MINERALBADGE) rrca rrca ld c, a ld a, d - and %11101011 + and ((1 << ZEPHYRBADGE) | (1 << HIVEBADGE) | (1 << FOGBADGE) | (1 << STORMBADGE) | (1 << GLACIERBADGE) | (1 << RISINGBADGE)) or b or c ld b, a @@ -7337,7 +7345,7 @@ endr ; 3ee0f -Function3ee0f: ; 3ee0f +Call_PlayBattleAnim_OnlyIfVisible: ; 3ee0f ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND @@ -7385,44 +7393,45 @@ GiveExperiencePoints: ; 3ee3b ld [CurPartyMon], a ld bc, PartyMon1Species -.asm_3ee50 - ld hl, $0022 +.loop + ld hl, MON_HP add hl, bc ld a, [hli] or [hl] - jp z, .asm_3f0b9 + jp z, .skip_stats ; fainted + push bc - ld hl, wc664 + ld hl, wBattleParticipantsNotFainted ld a, [CurPartyMon] ld c, a - ld b, $2 + ld b, CHECK_FLAG ld d, $0 predef FlagPredef ld a, c and a pop bc - jp z, .asm_3f0b9 - ld hl, $000c + jp z, .skip_stats + ld hl, MON_STAT_EXP + 1 add hl, bc ld d, h ld e, l ld hl, EnemyMonBaseStats - 1 push bc ld c, $5 -.asm_3ee7c +.loop1 inc hl ld a, [de] add [hl] ld [de], a - jr nc, .asm_3ee89 + jr nc, .okay1 dec de ld a, [de] inc a - jr z, .asm_3eea4 + jr z, .next ld [de], a inc de -.asm_3ee89 +.okay1 push hl push bc ld a, MON_PKRUS @@ -7431,31 +7440,31 @@ GiveExperiencePoints: ; 3ee3b and a pop bc pop hl - jr z, .asm_3eea9 + jr z, .skip ld a, [de] add [hl] ld [de], a - jr nc, .asm_3eea9 + jr nc, .skip dec de ld a, [de] inc a - jr z, .asm_3eea4 + jr z, .next ld [de], a inc de - jr .asm_3eea9 + jr .skip -.asm_3eea4 +.next ld a, $ff ld [de], a inc de ld [de], a -.asm_3eea9 +.skip rept 2 inc de endr dec c - jr nz, .asm_3ee7c + jr nz, .loop1 xor a ld [hMultiplicand + 0], a ld [hMultiplicand + 1], a @@ -7464,27 +7473,27 @@ endr ld a, [EnemyMonLevel] ld [hMultiplier], a call Multiply - ld a, $7 + ld a, 7 ld [hDivisor], a - ld b, $4 + ld b, 4 call Divide pop bc - ld hl, $0006 + ld hl, MON_ID add hl, bc ld a, [PlayerID] cp [hl] - jr nz, .asm_3eedd + jr nz, .boosted inc hl ld a, [PlayerID + 1] cp [hl] ld a, $0 - jr z, .asm_3eee2 + jr z, .no_boost -.asm_3eedd +.boosted call DoubleExp ld a, $1 -.asm_3eee2 +.no_boost ld [StringBuffer2 + 2], a ld a, [wBattleMode] dec a @@ -7495,9 +7504,9 @@ endr ld a, [hl] cp LUCKY_EGG call z, DoubleExp - ld a, [$ffb6] + ld a, [hQuotient + 2] ld [StringBuffer2 + 1], a - ld a, [$ffb5] + ld a, [hQuotient + 1] ld [StringBuffer2], a ld a, [CurPartyMon] ld hl, PartyMonNicknames @@ -7505,35 +7514,35 @@ endr ld hl, Text_PkmnGainedExpPoint call BattleTextBox ld a, [StringBuffer2 + 1] - ld [$ffb6], a + ld [hQuotient + 2], a ld a, [StringBuffer2] - ld [$ffb5], a + ld [hQuotient + 1], a pop bc call Function3f136 push bc call LoadTileMapToTempTileMap pop bc - ld hl, $000a + ld hl, MON_EXP + 2 add hl, bc ld d, [hl] - ld a, [$ffb6] + ld a, [hQuotient + 2] add d ld [hld], a ld d, [hl] - ld a, [$ffb5] + ld a, [hQuotient + 1] adc d ld [hl], a - jr nc, .asm_3ef3d + jr nc, .skip2 dec hl inc [hl] - jr nz, .asm_3ef3d + jr nz, .skip2 ld a, $ff rept 2 ld [hli], a endr ld [hl], a -.asm_3ef3d +.skip2 ld a, [CurPartyMon] ld e, a ld d, $0 @@ -7546,14 +7555,14 @@ endr ld d, MAX_LEVEL callab CalcExpAtLevel pop bc - ld hl, $000a + ld hl, MON_EXP + 2 add hl, bc push bc - ld a, [hMultiplicand] + ld a, [hQuotient] ld b, a - ld a, [$ffb5] + ld a, [hQuotient + 1] ld c, a - ld a, [$ffb6] + ld a, [hQuotient + 2] ld d, a ld a, [hld] sub d @@ -7561,7 +7570,7 @@ endr sbc c ld a, [hl] sbc b - jr c, .asm_3ef74 + jr c, .max_exp ld a, b ld [hli], a ld a, c @@ -7569,7 +7578,7 @@ endr ld a, d ld [hld], a -.asm_3ef74 +.max_exp xor a ; PARTYMON ld [MonType], a predef CopyPkmnToTempMon @@ -7579,9 +7588,10 @@ endr add hl, bc ld a, [hl] cp MAX_LEVEL - jp nc, .asm_3f0b9 + jp nc, .skip_stats cp d - jp z, .asm_3f0b9 + jp z, .skip_stats +; grew to level ##! ld [wc719], a ld a, [CurPartyLevel] push af @@ -7594,24 +7604,24 @@ endr ld [CurSpecies], a ld [wd265], a call GetBaseData - ld hl, $0025 + ld hl, MON_MAXHP + 1 add hl, bc ld a, [hld] ld e, a ld d, [hl] push de - ld hl, $0024 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l - ld hl, $000a + ld hl, MON_EXP + 2 add hl, bc push bc ld b, $1 predef CalcPkmnStats pop bc pop de - ld hl, $0025 + ld hl, MON_MAXHP + 1 add hl, bc ld a, [hld] sub e @@ -7630,7 +7640,7 @@ endr ld d, a ld a, [CurPartyMon] cp d - jr nz, .asm_3f035 + jr nz, .skip_animation ld de, BattleMonHP ld a, [hli] ld [de], a @@ -7639,27 +7649,27 @@ endr ld [de], a ld de, BattleMonMaxHP push bc - ld bc, $000c + ld bc, PARTYMON_STRUCT_LENGTH - MON_MAXHP call CopyBytes pop bc - ld hl, $001f + ld hl, MON_LEVEL add hl, bc ld a, [hl] ld [BattleMonLevel], a ld a, [PlayerSubStatus5] bit SUBSTATUS_TRANSFORMED, a - jr nz, .asm_3f012 - ld hl, $0026 + jr nz, .transformed + ld hl, MON_ATK add hl, bc ld de, PlayerStats - ld bc, $000a + ld bc, PARTYMON_STRUCT_LENGTH - MON_ATK call CopyBytes -.asm_3f012 +.transformed xor a ld [wd265], a call ApplyStatLevelMultiplierOnAllStats - callab Function3ec2c + callab ApplyStatusEffectOnPlayerStats callab BadgeStatBoosts callab UpdatePlayerHUD call EmptyBattleTextBox @@ -7667,13 +7677,13 @@ endr ld a, $1 ld [hBGMapMode], a -.asm_3f035 +.skip_animation callba LevelUpHappinessMod ld a, [CurBattleMon] ld b, a ld a, [CurPartyMon] cp b - jr z, .asm_3f057 + jr z, .skip_animation2 ld de, SFX_HIT_END_OF_EXP_BAR call PlaySFX call WaitSFX @@ -7681,7 +7691,7 @@ endr call StdBattleTextBox call LoadTileMapToTempTileMap -.asm_3f057 +.skip_animation2 xor a ; PARTYMON ld [MonType], a predef CopyPkmnToTempMon @@ -7706,7 +7716,7 @@ endr ld a, [wc719] ld b, a -.asm_3f093 +.level_loop inc b ld a, b ld [CurPartyLevel], a @@ -7715,7 +7725,7 @@ endr pop bc ld a, b cp c - jr nz, .asm_3f093 + jr nz, .level_loop pop af ld [CurPartyLevel], a ld hl, EvolvableFlags @@ -7726,26 +7736,26 @@ endr pop af ld [CurPartyLevel], a -.asm_3f0b9 +.skip_stats ld a, [PartyCount] ld b, a ld a, [CurPartyMon] inc a cp b - jr z, .asm_3f0d1 + jr z, .done ld [CurPartyMon], a ld a, MON_SPECIES call GetPartyParamLocation ld b, h ld c, l - jp .asm_3ee50 + jp .loop -.asm_3f0d1 - jp Function3d57a +.done + jp ResetBattleParticipants ; 3f0d4 Function3f0d4: ; 3f0d4 - ld a, [wc664] + ld a, [wBattleParticipantsNotFainted] ld b, a ld c, $6 ld d, $0 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index c05336bd3..a9f32942f 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -723,22 +723,22 @@ BattleCommand_CheckObedience: ; 343db ld hl, JohtoBadges ; risingbadge - bit 7, [hl] + bit RISINGBADGE, [hl] ld a, MAX_LEVEL + 1 jr nz, .getlevel ; stormbadge - bit 5, [hl] + bit STORMBADGE, [hl] ld a, 70 jr nz, .getlevel ; fogbadge - bit 3, [hl] + bit FOGBADGE, [hl] ld a, 50 jr nz, .getlevel ; hivebadge - bit 1, [hl] + bit HIVEBADGE, [hl] ld a, 30 jr nz, .getlevel @@ -1017,9 +1017,9 @@ Function34548: ; 34548 ld a, [hBattleTurn] and a - ld a, [wc732] ; player + ld a, [wPlayerCharging] ; player jr z, .end - ld a, [wc733] ; enemy + ld a, [wEnemyCharging] ; enemy .end and a ret @@ -2129,13 +2129,13 @@ BattleCommand_HitTargetNoSub: ; 34f60 ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_MULTI_HIT - jr z, .multihit_conversion_doublehit_twineedle + jr z, .multihit cp EFFECT_CONVERSION - jr z, .multihit_conversion_doublehit_twineedle + jr z, .conversion cp EFFECT_DOUBLE_HIT - jr z, .multihit_conversion_doublehit_twineedle + jr z, .doublehit cp EFFECT_TWINEEDLE - jr z, .multihit_conversion_doublehit_twineedle + jr z, .twineedle cp EFFECT_TRIPLE_KICK jr z, .triplekick xor a @@ -2159,7 +2159,10 @@ BattleCommand_HitTargetNoSub: ; 34f60 .fly_dig ; clear sprite jp Function37ec7 -.multihit_conversion_doublehit_twineedle +.multihit +.conversion +.doublehit +.twineedle ld a, [wKickCounter] and 1 xor 1 @@ -6307,12 +6310,12 @@ BattleCommand_StoreEnergy: ; 36671 ld a, 1 ld [hl], a ld hl, PlayerDamageTaken + 1 - ld de, wc732 ; player + ld de, wPlayerCharging ; player ld a, [hBattleTurn] and a jr z, .player ld hl, EnemyDamageTaken + 1 - ld de, wc733 ; enemy + ld de, wEnemyCharging ; enemy .player ld a, [hld] add a @@ -8575,11 +8578,11 @@ CheckUserMove: ; 37462 ResetTurn: ; 3747b - ld hl, wc732 + ld hl, wPlayerCharging ld a, [hBattleTurn] and a jr z, .player - ld hl, wc733 + ld hl, wEnemyCharging .player ld [hl], 1 @@ -8921,7 +8924,7 @@ BattleCommand_BatonPass: ; 379c9 call DelayFrames ; Transition into switchmon menu - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Function3d2f7 callba ForcePickSwitchMonInBattle @@ -8971,9 +8974,9 @@ BattleCommand_BatonPass: ; 379c9 ; Passed enemy PartyMon entrance xor a ld [wc718], a - ld hl, Function3d517 + ld hl, EnemySwitch_SetMode call CallBattleCore - ld hl, Function3d57a + ld hl, ResetBattleParticipants call CallBattleCore ld a, 1 ld [wTypeMatchup], a @@ -8995,7 +8998,7 @@ BatonPass_LinkPlayerSwitch: ; 37a67 ld a, 1 ld [wd0ec], a - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, Function3e8e4 call CallBattleCore call WriteBackup @@ -9011,7 +9014,7 @@ BatonPass_LinkEnemySwitch: ; 37a82 and a ret z - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, Function3e8e4 call CallBattleCore diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 20b51c300..126369301 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -191,69 +191,69 @@ const MIRAGE_MAIL ; $BD const ITEM_BE ; $BE - add_tm DYNAMICPUNCH - add_tm HEADBUTT - add_tm CURSE - add_tm ROLLOUT - const ITEM_C3 - add_tm ROAR - add_tm TOXIC - add_tm ZAP_CANNON - add_tm ROCK_SMASH - add_tm PSYCH_UP - add_tm HIDDEN_POWER - add_tm SUNNY_DAY - add_tm SWEET_SCENT - add_tm SNORE - add_tm BLIZZARD - add_tm HYPER_BEAM - add_tm ICY_WIND - add_tm PROTECT - add_tm RAIN_DANCE - add_tm GIGA_DRAIN - add_tm ENDURE - add_tm FRUSTRATION - add_tm SOLARBEAM - add_tm IRON_TAIL - add_tm DRAGONBREATH - add_tm THUNDER - add_tm EARTHQUAKE - add_tm RETURN - add_tm DIG - const ITEM_DC - add_tm PSYCHIC - add_tm SHADOW_BALL - add_tm MUD_SLAP - add_tm DOUBLE_TEAM - add_tm ICE_PUNCH - add_tm SWAGGER - add_tm SLEEP_TALK - add_tm SLUDGE_BOMB - add_tm SANDSTORM - add_tm FIRE_BLAST - add_tm SWIFT - add_tm DEFENSE_CURL - add_tm THUNDERPUNCH - add_tm DREAM_EATER - add_tm DETECT - add_tm REST - add_tm ATTRACT - add_tm THIEF - add_tm STEEL_WING - add_tm FIRE_PUNCH - add_tm FURY_CUTTER - add_tm NIGHTMARE + add_tm DYNAMICPUNCH ; $BF + add_tm HEADBUTT ; $C0 + add_tm CURSE ; $C1 + add_tm ROLLOUT ; $C2 + const ITEM_C3 ; $C3 + add_tm ROAR ; $C4 + add_tm TOXIC ; $C5 + add_tm ZAP_CANNON ; $C6 + add_tm ROCK_SMASH ; $C7 + add_tm PSYCH_UP ; $C8 + add_tm HIDDEN_POWER ; $C9 + add_tm SUNNY_DAY ; $CA + add_tm SWEET_SCENT ; $CB + add_tm SNORE ; $CC + add_tm BLIZZARD ; $CD + add_tm HYPER_BEAM ; $CE + add_tm ICY_WIND ; $CF + add_tm PROTECT ; $D0 + add_tm RAIN_DANCE ; $D1 + add_tm GIGA_DRAIN ; $D2 + add_tm ENDURE ; $D3 + add_tm FRUSTRATION ; $D4 + add_tm SOLARBEAM ; $D5 + add_tm IRON_TAIL ; $D6 + add_tm DRAGONBREATH ; $D7 + add_tm THUNDER ; $D8 + add_tm EARTHQUAKE ; $D9 + add_tm RETURN ; $DA + add_tm DIG ; $DB + const ITEM_DC ; $DC + add_tm PSYCHIC ; $DD + add_tm SHADOW_BALL ; $DE + add_tm MUD_SLAP ; $DF + add_tm DOUBLE_TEAM ; $E0 + add_tm ICE_PUNCH ; $E1 + add_tm SWAGGER ; $E2 + add_tm SLEEP_TALK ; $E3 + add_tm SLUDGE_BOMB ; $E4 + add_tm SANDSTORM ; $E5 + add_tm FIRE_BLAST ; $E6 + add_tm SWIFT ; $E7 + add_tm DEFENSE_CURL ; $E8 + add_tm THUNDERPUNCH ; $E9 + add_tm DREAM_EATER ; $EA + add_tm DETECT ; $EB + add_tm REST ; $EC + add_tm ATTRACT ; $ED + add_tm THIEF ; $EE + add_tm STEEL_WING ; $EF + add_tm FIRE_PUNCH ; $F0 + add_tm FURY_CUTTER ; $F1 + add_tm NIGHTMARE ; $F2 NUM_TMS = const_value - TM01 - 2 - add_hm CUT - add_hm FLY - add_hm SURF - add_hm STRENGTH - add_hm FLASH - add_hm WHIRLPOOL - add_hm WATERFALL + add_hm CUT ; $F3 + add_hm FLY ; $F4 + add_hm SURF ; $F5 + add_hm STRENGTH ; $F6 + add_hm FLASH ; $F7 + add_hm WHIRLPOOL ; $F8 + add_hm WATERFALL ; $F9 NUM_HMS = const_value - HM01 - const HM_08 + const HM_08 ; $FA add_mt FLAMETHROWER add_mt THUNDERBOLT diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index e10be0db4..19f2edf6d 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -165,3 +165,25 @@ HMENURETURN_SCRIPT EQU %10000000 HMENURETURN_ASM EQU %11111111 NUM_MON_SUBMENU_ITEMS EQU 8 + + const_def + const ZEPHYRBADGE + const HIVEBADGE + const PLAINBADGE + const FOGBADGE + const MINERALBADGE + const STORMBADGE + const GLACIERBADGE + const RISINGBADGE +NUM_JOHTO_BADGES EQU const_value + const_def + const BOULDERBADGE + const CASCADEBADGE + const THUNDERBADGE + const RAINBOWBADGE + const SOULBADGE + const MARSHBADGE + const VOLCANOBADGE + const EARTHBADGE +NUM_KANTO_BADGES EQU const_value +NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES diff --git a/engine/save.asm b/engine/save.asm index 21382a802..a4afa2a05 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -1,5 +1,5 @@ Function14a1a: ; 14a1a - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Function5e9a call SpeechTextBox call UpdateSprites diff --git a/event/kurt.asm b/event/kurt.asm index bf46fae11..8304634c7 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -23,7 +23,7 @@ UnknownText_0x88013: ; 0x88013 ; 0x88018 Special_SelectApricornForKurt: ; 88018 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld c, $1 xor a ld [wd0e4], a diff --git a/event/mom.asm b/event/mom.asm index 9f8c5d543..691fe6626 100644 --- a/event/mom.asm +++ b/event/mom.asm @@ -103,7 +103,7 @@ endr .AccessBankOfMom: ; 162a8 ld hl, UnknownText_0x1665d call PrintText - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, MenuDataHeader_0x166b5 call CopyMenuDataHeader call InterpretMenu2 @@ -148,7 +148,7 @@ endr ld [hl], a ld a, $5 ld [wcf64], a - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function16517 call Function1656b call Function16571 @@ -216,7 +216,7 @@ endr ld [hl], a ld a, $5 ld [wcf64], a - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function16512 call Function1656b call Function16571 diff --git a/event/move_deleter.asm b/event/move_deleter.asm index 98391edcb..0cd677dbe 100644 --- a/event/move_deleter.asm +++ b/event/move_deleter.asm @@ -19,7 +19,7 @@ MoveDeletion: jr z, .asm_2c5ca ld hl, UnknownText_0x2c5ea call PrintText - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Function12f5b push af call Function2b74 diff --git a/home/map.asm b/home/map.asm index c226af1ed..6b871617e 100644 --- a/home/map.asm +++ b/home/map.asm @@ -1961,7 +1961,7 @@ CheckStandingOnXYTrigger:: ; 2ae7 FadeToMenu:: ; 2b29 xor a ld [hBGMapMode], a - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba FadeBlackBGMap call ClearSprites call DisableSpriteUpdates diff --git a/home/menu.asm b/home/menu.asm index ff7c2e4f1..d23f9123c 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -52,7 +52,7 @@ MenuTextBoxBackup:: ; 1d67 ret ; 1d6e -LoadMenuDataHeader_0x1d75:: ; 1d6e +LoadPartyMenuDataHeader:: ; 1d6e ld hl, MenuDataHeader_0x1d75 call LoadMenuDataHeader ret diff --git a/items/item_effects.asm b/items/item_effects.asm index a8551d30c..fa68626ce 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -1673,7 +1673,7 @@ Functionf0d6: ; f0d6 ld a, [CurPartyMon] ld c, a - ld hl, wc664 + ld hl, wBattleParticipantsNotFainted ld b, SET_FLAG predef FlagPredef diff --git a/main.asm b/main.asm index 99a74d154..9584d4f2d 100644 --- a/main.asm +++ b/main.asm @@ -415,7 +415,7 @@ Continue: ; 5d65 callba TryLoadSaveFile jr c, .FailToLoad callba Function150b9 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function5e85 ld a, $1 ld [hBGMapMode], a @@ -5197,7 +5197,7 @@ FlyFunction: ; ca3b .outdoors xor a ld [hMapAnims], a - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call ClearSprites callba _FlyMap ld a, e @@ -9707,7 +9707,7 @@ TextJump_WasSentToBillsPC: ; 0xe3d9 InitNickname: ; e3de push de - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call DisableSpriteUpdates pop de push de @@ -9748,7 +9748,7 @@ UnknownText_0xe417: ; 0xe417 Functione41c: ; e41c (3:641c) xor a ld [hBGMapMode], a ; $ff00+$d4 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call ClearPCItemScreen ld hl, Options ld a, [hl] @@ -9844,7 +9844,7 @@ Functione4cb: ; e4cb ; e4cd Functione4cd: ; e4cd - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Function44781 jr nc, .asm_e4e0 ld hl, UnknownText_0xe4f9 @@ -9871,7 +9871,7 @@ UnknownText_0xe4f9: ; 0xe4f9 ; 0xe4fe Functione4fe: ; e4fe (3:64fe) - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Functione2391 call Function222a call ClearPCItemScreen @@ -9947,7 +9947,7 @@ CheckCurPartyMonFainted: ; e538 Functione559: ; e559 (3:6559) - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Functione2583 call Function222a call ClearPCItemScreen @@ -13264,7 +13264,7 @@ GiveTakePartyMonItem: ; 12b60 cp 1 jr nz, .asm_12ba0 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call ClearPalettes call Function12ba9 call ClearPalettes @@ -13677,7 +13677,7 @@ MonMailAction: ; 12d45 OpenPartyStats: ; 12e00 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call ClearSprites ; PartyMon xor a @@ -14739,7 +14739,7 @@ Function134c0: ; 134c0 ; 134dd Function134dd: ; 134dd - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, Elevator_WhichFloorText call PrintText call Elevator_GetCurrentFloorText @@ -16613,7 +16613,7 @@ UnknownText_0x157cc: ; 0x157cc ; 0x157d1 KrisWithdrawItemMenu: ; 0x157d1 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba ClearPCItemScreen .asm_157da call Function15985 @@ -16692,7 +16692,7 @@ Function157e9: ; 0x157e9 KrisTossItemMenu: ; 0x1585f - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba ClearPCItemScreen .asm_15868 call Function15985 @@ -16729,7 +16729,7 @@ KrisDepositItemMenu: ; 0x1588b call Function158b8 jr c, .asm_158b6 call DisableSpriteUpdates - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Function106a5 .asm_1589c callba Function106be @@ -17034,7 +17034,7 @@ MartDialog: ; 15a61 HerbShop: ; 15a6e call ReadMart - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, UnknownText_0x15e4a call Function15fcd call Function15c62 @@ -17048,7 +17048,7 @@ BargainShop: ; 15a84 ld de, BargainShopData call LoadMartPointer call Function15c25 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, UnknownText_0x15e6d call Function15fcd call Function15c62 @@ -17067,7 +17067,7 @@ BargainShop: ; 15a84 Pharmacist: ; 15aae call ReadMart - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, UnknownText_0x15e90 call Function15fcd call Function15c62 @@ -17088,7 +17088,7 @@ RooftopSale: ; 15ac4 .ok call LoadMartPointer call Function15c25 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, UnknownText_0x15f83 call Function15fcd call Function15c62 @@ -17173,7 +17173,7 @@ StandardMart: ; 15b47 ; 15b62 .HowMayIHelpYou: ; 15b62 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, UnknownText_0x15f83 call PrintText ld a, $1 @@ -17226,7 +17226,7 @@ StandardMart: ; 15b47 ; 15baf .AnythingElse: ; 15baf - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, UnknownText_0x15fb9 call PrintText ld a, $1 @@ -19462,7 +19462,7 @@ DoEggStep:: ; 16f3e OverworldHatchEgg:: ; 16f5e call ResetWindow - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function16f70 call Function2b4d call RestartMapMusic @@ -20304,7 +20304,7 @@ Function20021: ; 20021 (8:4021) ld a, [hl] push af set 4, [hl] - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call ClearTileMap ld hl, UnknownText_0x2004c call PrintText @@ -23968,7 +23968,7 @@ Function2695b: ; 2695b ld d, 0 add hl, de ld [hl], -1 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, MenuDataHeader_0x269c5 call CopyMenuDataHeader xor a @@ -25065,7 +25065,7 @@ Function2715c: ; 2715c callba Function3ed9f call ClearSGB call WriteBackup - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call WaitBGMap jp SetPalettes ; 27192 @@ -26846,7 +26846,7 @@ Function28b87: ; 28b87 ld hl, UnknownText_0x28eb8 bccoord 1, 14 call PlaceWholeStringInBoxAtOnce - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader hlcoord 10, 7 ld b, $3 ld c, $7 @@ -27015,7 +27015,7 @@ Function28b87: ; 28b87 ld a, [hli] ld [wc731], a ld a, [hl] - ld [wc732], a + ld [wPlayerCharging], a ld hl, OTPartyMon1DVs ld a, [wd003] call GetPartyLocation @@ -27030,7 +27030,7 @@ Function28b87: ; 28b87 ld c, l callba GetCaughtGender ld a, c - ld [wc733], a + ld [wEnemyCharging], a ld a, [DefaultFlypoint] ld [CurPartyMon], a ld hl, PartySpecies @@ -28143,7 +28143,7 @@ Function29549: ; 29549 call Function295e3 ld de, wc703 call Function295ef - ld a, [wc733] + ld a, [wEnemyCharging] ld de, wc724 call Function295f6 ld de, wc731 @@ -32241,7 +32241,7 @@ endr ld [wd0e4], a ld [CriticalHit], a ld [BattleMonSpecies], a - ld [wc664], a + ld [wBattleParticipantsNotFainted], a ld [CurBattleMon], a ld [wd232], a ld [TimeOfDayPal], a @@ -34427,7 +34427,7 @@ Function44781: ; 44781 _KrisMailBoxMenu: ; 0x447a0 call InitMail jr z, .nomail - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function44806 jp WriteBackup @@ -38301,7 +38301,7 @@ Function4a098: ; 4a098 (12:6098) call Function1ff8 call Function1bee call WaitBGMap - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Function89de0 call Call_ExitMenu call Function49351 @@ -38520,7 +38520,7 @@ Function4a28a: ; 4a28a (12:628a) call Function4a6d8 call Function1bee call WaitBGMap - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld a, $5 call GetSRAMBank ld a, [$aa4b] @@ -56925,7 +56925,7 @@ Special_SetDayOfWeek: ; 90913 hlcoord 0, 12 lb bc, 4, 18 call TextBox - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld hl, UnknownText_0x90a3f call PrintText hlcoord 9, 3 @@ -67846,7 +67846,7 @@ BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) ret BillsPCDepositFuncStats: ; e24c8 (38:64c8) - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Functione2f7e call ExitMenu call PCMonInfo @@ -67865,7 +67865,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0) push af ld de, PCString_ReleasePKMN call Functione2a6e - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader lb bc, 14, 11 call PlaceYesNoBox ld a, [MenuSelection2] @@ -68111,7 +68111,7 @@ endr ret .stats: ; e26c0 (38:66c0) - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Functione2f7e call ExitMenu call PCMonInfo @@ -68128,7 +68128,7 @@ endr jr c, .FailedRelease ld de, PCString_ReleasePKMN call Functione2a6e - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader lb bc, 14, 11 call PlaceYesNoBox ld a, [MenuSelection2] @@ -68371,7 +68371,7 @@ Functione2887: ; e2887 ; e28a5 Functione28a5: ; e28a5 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Functione2f7e call ExitMenu call PCMonInfo @@ -70009,7 +70009,7 @@ PCString_NoReleasingEGGS: db "No releasing EGGS!@" ; e35aa Functione35aa: ; e35aa (38:75aa) - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Functione35e2 .loop xor a @@ -74686,7 +74686,7 @@ Functionfcc63: ; fcc63 jr c, .asm_fcce6 ld a, 2 .asm_fcce6 - ld [wc733], a + ld [wEnemyCharging], a ld hl, PartyMon1Level ld bc, PARTYMON_STRUCT_LENGTH @@ -74750,7 +74750,7 @@ Functionfcc63: ; fcc63 ld e, TRADE_OT_ID call GetTradeAttribute - ld de, wc732 + ld de, wPlayerCharging call Functionfce15 ld hl, PartyMon1ID diff --git a/misc/battle_tower_5c.asm b/misc/battle_tower_5c.asm index 6d5ad2ebf..bfbffc828 100755 --- a/misc/battle_tower_5c.asm +++ b/misc/battle_tower_5c.asm @@ -211,94 +211,93 @@ ReadBTTrainerParty: ; 1702b7 ret ; 170394 -Function170394: ; 170394 - ld hl, $c608 + 11 - ld d, $3 -.asm_170399 +ValidateBTParty: ; 170394 +; Check for and fix errors in party data + ld hl, wBT_OTTempPkmn1Species + ld d, BATTLETOWER_NROFPKMNS +.pkmn_loop push de push hl ld b, h ld c, l ld a, [hl] and a - jr z, .asm_1703b1 - cp $ff - jr z, .asm_1703b1 - cp $fe - jr z, .asm_1703b1 - cp $fd - jr z, .asm_1703b1 - cp $fc - jr nz, .asm_1703b4 +idx = $ff +rept ($ff +- NUM_POKEMON) + jr z, .invalid + cp idx +idx = idx +- 1 +endr + jr nz, .valid -.asm_1703b1 - ld a, $eb +.invalid + ld a, SMEARGLE ld [hl], a -.asm_1703b4 +.valid ld [CurSpecies], a call GetBaseData ld a, $5 call GetSRAMBank - ld a, [$b2fb] + ld a, [$b2fb] ; s5_b2fb ; max level? call CloseSRAM ld e, a - ld hl, $001f + ld hl, MON_LEVEL add hl, bc ld a, [hl] - cp $2 - ld a, $2 - jr c, .asm_1703d6 + cp MIN_LEVEL + ld a, MIN_LEVEL + jr c, .load ld a, [hl] cp e - jr c, .asm_1703d7 + jr c, .dont_load ld a, e -.asm_1703d6 +.load ld [hl], a -.asm_1703d7 +.dont_load ld [CurPartyLevel], a - ld hl, $0002 + ld hl, MON_MOVES add hl, bc - ld d, $3 + ld d, NUM_MOVES - 1 ld a, [hli] and a - jr z, .asm_1703ea - cp $fc - jr nc, .asm_1703ea - jr .asm_1703f4 + jr z, .not_move + cp NUM_ATTACKS + 1 + jr nc, .not_move + jr .valid_move -.asm_1703ea +.not_move dec hl - ld a, $1 + ld a, POUND ld [hli], a xor a rept 2 ld [hli], a endr ld [hl], a - jr .asm_1703ff + jr .done_moves -.asm_1703f4 +.valid_move ld a, [hl] - cp $fc - jr c, .asm_1703fb + cp NUM_ATTACKS + 1 + jr c, .next ld [hl], $0 -.asm_1703fb +.next inc hl dec d - jr nz, .asm_1703f4 + jr nz, .valid_move -.asm_1703ff - ld hl, $0024 +.done_moves + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l push hl push de - ld hl, $000a + ld hl, MON_EXP + 2 add hl, bc ld b, $1 predef CalcPkmnStats @@ -317,7 +316,7 @@ endr add hl, bc pop de dec d - jp nz, .asm_170399 + jp nz, .pkmn_loop ret ; 170426 @@ -326,20 +325,20 @@ BT_ChrisName: ; 170426 ; 17042c Function17042c: ; 17042c - ld hl, OTPartyMon2ID - ld a, $7 -.asm_170431 + ld hl, BT_TrainerTextIndex + $be + ld a, 7 +.loop push af push hl - ld c, $12 -.asm_170435 + ld c, 18 +.loop2 ld a, [hli] ld b, a ld a, [hli] and a - jr z, .asm_170451 + jr z, .skip cp $f - jr nc, .asm_17045b + jr nc, .exit_inner_loop push hl ld hl, Unknown_170470 dec a @@ -349,34 +348,34 @@ Function17042c: ; 17042c ld a, [hl] pop hl cp b - jr c, .asm_17045b - jr z, .asm_17045b + jr c, .exit_inner_loop + jr z, .exit_inner_loop jr .asm_170456 -.asm_170451 +.skip ld a, b cp $fc - jr nc, .asm_17045b + jr nc, .exit_inner_loop .asm_170456 dec c - jr nz, .asm_170435 - jr .asm_170466 + jr nz, .loop2 + jr .dont_copy -.asm_17045b +.exit_inner_loop pop de push de ld hl, Unknown_17047e ld bc, BATTLETOWER_TRAINERDATALENGTH call CopyBytes -.asm_170466 +.dont_copy pop hl ld de, $00e0 add hl, de pop af dec a - jr nz, .asm_170431 + jr nz, .loop ret ; 170470 diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm index cb152cefd..978a0fc14 100644 --- a/misc/crystal_misc.asm +++ b/misc/crystal_misc.asm @@ -430,7 +430,7 @@ Function17a91e: ; 17a91e (5e:691e) ret .asm_17a92c - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function17a99e ld hl, $d088 set 7, [hl] diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 0f0e1852e..78fef3f56 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -2927,7 +2927,7 @@ UnknownText_0x8a23c: ; 0x8a23c ; 0x8a241 Function8a241: ; 8a241 (22:6241) - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function891fe call Function8a262 jr nc, .asm_8a254 @@ -3455,7 +3455,7 @@ Palette_8a624: ; 8a624 ; 8a62c Function8a62c: ; 8a62c (22:662c) - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function891fe xor a call Function8b94a @@ -3885,7 +3885,7 @@ Function8a999: ; 8a999 (22:6999) jr c, .asm_8a9bb push bc push de - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader pop de dec e ld a, e @@ -4141,7 +4141,7 @@ Function8ab77: ; 8ab77 (22:6b77) Function8ab93: ; 8ab93 (22:6b93) call WhiteBGMap - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader callba Function105688 call ClearSprites call Function891fe diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 7ffe48b9e..851b6d2c6 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -242,7 +242,7 @@ Function10016f: ; 10016f jr z, .asm_1001af cp $f8 ret z - ret + ret ; ???????????????????????????? .asm_1001af ld a, $d7 @@ -4483,7 +4483,7 @@ Unknown_101d8d: ; 101d8d Function101d95: ; 101d95 call Function101ee2 - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader ld e, $e call Function101ee4 ld hl, wcd29 @@ -6256,7 +6256,7 @@ Jumptable_1029cb: ; 1029cb ; 1029cf Function1029cf: ; 1029cf - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader hlcoord 10, 7 ld b, $3 ld c, $8 @@ -6384,7 +6384,7 @@ Function102a3b: ; 102a3b ld a, [hli] ld [wc731], a ld a, [hl] - ld [wc732], a + ld [wPlayerCharging], a ld a, [wcd4d] dec a ld hl, OTPartyMon1DVs @@ -6401,7 +6401,7 @@ Function102a3b: ; 102a3b ld c, l callba GetCaughtGender ld a, c - ld [wc733], a + ld [wEnemyCharging], a ret ; 102b12 diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index b10404b78..fcd99e927 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -1259,7 +1259,7 @@ Function1089d2: call Function108a92 ld de, wc703 call Function108a9c - ld a, [wc733] + ld a, [wEnemyCharging] ld de, wc724 call Function108aa3 ld de, wc731 diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 7a439246d..8462331d6 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -7658,7 +7658,7 @@ Function11b7e5: ; 11b7e5 ld a, [$c608 + 11] ld [wc731], a ld a, [$c608 + 12] - ld [wc732], a + ld [wPlayerCharging], a ld hl, $c608 + 26 ld a, [hli] ld [wc72f], a @@ -7667,7 +7667,7 @@ Function11b7e5: ; 11b7e5 ld bc, $c608 + 5 callba GetCaughtGender ld a, c - ld [wc733], a + ld [wEnemyCharging], a call SpeechTextBox call FadeToMenu callba Function108016 diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index dd661851d..698858b2e 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -884,7 +884,7 @@ Function16d42e: ; 16d42e ; 16d43b Function16d43b: ; 16d43b - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call WhiteBGMap call ClearTileMap call ClearSprites @@ -1034,7 +1034,7 @@ Function16d6ca: ; 16d6ca ; 16d6ce Function16d6ce: ; 16d6ce - call LoadMenuDataHeader_0x1d75 + call LoadPartyMenuDataHeader call Function16d6e1 callba Function87d call Call_ExitMenu diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 39a8fbc41..54d22b8ec 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -62,11 +62,11 @@ Function17005a: ; 17005a ld a, [hli] ld [wc731], a ld a, [hl] - ld [wc732], a + ld [wPlayerCharging], a ld bc, $a82c callba GetCaughtGender ld a, c - ld [wc733], a + ld [wEnemyCharging], a ld a, [wcd81] ld [wc74e], a call CloseSRAM diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 9fd476d7f..a912c2770 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -285,7 +285,7 @@ Function17d0f3: ; 17d0f3 ld a, [$c608 + 11] ld [wc731], a ld a, [$c608 + 12] - ld [wc732], a + ld [wPlayerCharging], a ld hl, $c608 + 26 ld a, [hli] ld [wc72f], a @@ -294,7 +294,7 @@ Function17d0f3: ; 17d0f3 ld bc, $c608 + 5 callba GetCaughtGender ld a, c - ld [wc733], a + ld [wEnemyCharging], a call SpeechTextBox call FadeToMenu callba Function10804d diff --git a/wram.asm b/wram.asm index 117322357..9dac61981 100644 --- a/wram.asm +++ b/wram.asm @@ -488,7 +488,14 @@ wc663:: CurOTMon:: ; c663 ds 1 -wc664:: ds 1 +wBattleParticipantsNotFainted:: +; Bit array. Bits 0 - 5 correspond to party members 1 - 6. +; Bit set if the mon appears in battle. +; Bit cleared if the mon faints. +; Backed up if the enemy switches. +; All bits cleared if the enemy faints. + ds 1 + TypeModifier:: ; c665 ; >10: super-effective ; 10: normal @@ -848,8 +855,8 @@ wc72e:: ds 1 wc72f:: ds 1 wc730:: ds 1 wc731:: ds 1 -wc732:: ds 1 -wc733:: ds 1 +wPlayerCharging:: ds 1 +wEnemyCharging:: ds 1 wc734:: BattleEnded:: ; c734 ds 1 -- cgit v1.2.3 From c34264ddd89c2af4ba1370d4a2789009e9139b48 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 8 Nov 2015 10:59:28 -0500 Subject: AI and player items, withdraw/deposit --- battle/ai/items.asm | 36 +-- battle/core.asm | 4 +- constants/item_constants.asm | 25 ++ constants/wram_constants.asm | 6 + engine/predef.asm | 2 +- home.asm | 2 +- items/item_effects.asm | 187 +++++++-------- main.asm | 547 ++++++++++++++++++++++--------------------- wram.asm | 9 +- 9 files changed, 433 insertions(+), 385 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 95d2818e4..f91f45ee5 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -314,7 +314,7 @@ AI_Items: ; 39196 bit ALWAYS_USE_F, a jp nz, .Use call Random - cp 50 + cp -1 + 20 percent jp c, .Use jp .DontUse @@ -326,7 +326,7 @@ AI_Items: ; 39196 cp 4 jr c, .FailToxicCheck call Random - cp $80 + cp 1 + 50 percent jp c, .Use .FailToxicCheck ld a, [EnemyMonStatus] @@ -367,7 +367,7 @@ AI_Items: ; 39196 callab AICheckEnemyQuarterHP jp nc, .UseHealItem call Random - cp $80 + cp 1 + 50 percent jp c, .UseHealItem jp .DontUse @@ -375,7 +375,7 @@ AI_Items: ; 39196 callab AICheckEnemyQuarterHP jp c, .DontUse call Random - cp $32 + cp -1 + 20 percent jp c, .DontUse jr .UseHealItem @@ -385,7 +385,7 @@ AI_Items: ; 39196 callab AICheckEnemyQuarterHP jp nc, .UseHealItem call Random - cp $32 + cp -1 + 20 percent jp nc, .DontUse .UseHealItem: ; 38281 (e:4281) @@ -418,44 +418,44 @@ AI_Items: ; 39196 .asm_382ae: ; This appears to be unused callab AICheckEnemyMaxHP - jr c, .asm_382e4 + jr c, .dont_use push bc ld de, EnemyMonMaxHP + 1 ld hl, EnemyMonHP + 1 ld a, [de] sub [hl] - jr z, .asm_382e7 + jr z, .check_40_percent dec hl dec de ld c, a sbc [hl] and a - jr nz, .asm_382e7 + jr nz, .check_40_percent ld a, c cp b - jp c, .asm_382d5 + jp c, .check_50_percent callab AICheckEnemyQuarterHP - jr c, .asm_382e7 + jr c, .check_40_percent -.asm_382d5 +.check_50_percent pop bc ld a, [bc] bit UNKNOWN_USE_F, a jp z, .Use call Random - cp $80 + cp 1 + 50 percent jp c, .Use -.asm_382e4 +.dont_use jp .DontUse -.asm_382e7 +.check_40_percent pop bc ld a, [bc] bit UNKNOWN_USE_F, a jp z, .DontUse call Random - cp $64 + cp 1 + 39 percent jp c, .Use jp .DontUse ; 382f9 @@ -517,13 +517,13 @@ AI_Items: ; 39196 bit ALWAYS_USE_F, a jp nz, .Use call Random - cp $80 + cp 1 + 50 percent jp c, .DontUse ld a, [bc] bit CONTEXT_USE_F, a jp nz, .Use call Random - cp $80 + cp 1 + 50 percent jp c, .DontUse jp .Use .notfirstturnout @@ -531,7 +531,7 @@ AI_Items: ; 39196 bit ALWAYS_USE_F, a jp z, .DontUse call Random - cp $32 + cp -1 + 20 percent jp nc, .DontUse jp .Use diff --git a/battle/core.asm b/battle/core.asm index a2bcbaa5b..f6f8fbf0f 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -5109,7 +5109,7 @@ DrawEnemyHUD: ; 3e043 ld [wd10a], a hlcoord 2, 2 ld b, 0 - call DrawHPBar + call DrawBattleHPBar ret ; 3e127 @@ -5954,7 +5954,7 @@ MoveInfoBox: ; 3e6c8 ld [CurPartyMon], a ld a, WILDMON ld [MonType], a - callab Functionf8ec + callab GetMaxPPOfMove ld hl, MenuSelection2 ld c, [hl] diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 126369301..41ecfcf60 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -412,3 +412,28 @@ ITEMMENU_CLOSE EQU 6 const MART_MT_MOON const MART_INDIGO_PLATEAU const MART_UNDERGROUND + +; PartyMenuActionText + const_def + const PARTYMENUACTION_00 + const PARTYMENUACTION_HEALING_ITEM + const PARTYMENUACTION_02 + const PARTYMENUACTION_TEACH_TM + const PARTYMENUACTION_04 + const PARTYMENUACTION_EVO_STONE + const PARTYMENUACTION_06 + const PARTYMENUACTION_07 + const PARTYMENUACTION_08 + const PARTYMENUACTION_MOBILE + +const_value set $f0 + const PARTYMENUTEXT_HEAL_PSN + const PARTYMENUTEXT_HEAL_BRN + const PARTYMENUTEXT_HEAL_FRZ + const PARTYMENUTEXT_HEAL_SLP + const PARTYMENUTEXT_HEAL_PAR + const PARTYMENUTEXT_HEAL_HP + const PARTYMENUTEXT_HEAL_ALL + const PARTYMENUTEXT_REVIVE + const PARTYMENUTEXT_LEVEL_UP + const PARTYMENUTEXT_HEAL_CONFUSION diff --git a/constants/wram_constants.asm b/constants/wram_constants.asm index dd2c6f40b..ffe9b11a6 100644 --- a/constants/wram_constants.asm +++ b/constants/wram_constants.asm @@ -75,3 +75,9 @@ NUM_OBJECT_STRUCTS EQU 13 ; After-Champion Spawn SPAWN_LANCE EQU 1 SPAWN_RED EQU 2 + +; wPokemonWithdrawDepositParameter +PC_WITHDRAW EQU 0 +PC_DEPOSIT EQU 1 +DAYCARE_WITHDRAW EQU 2 +DAYCARE_DEPOSIT EQU 3 diff --git a/engine/predef.asm b/engine/predef.asm index c05da1496..6079b48a4 100644 --- a/engine/predef.asm +++ b/engine/predef.asm @@ -34,7 +34,7 @@ PredefPointers:: ; 856b add_predef Predef1 add_predef HealParty add_predef FlagPredef - add_predef Functionc699 + add_predef DrawPartyMenuHPBar add_predef FillPP add_predef TryAddMonToParty add_predef Functionda96 diff --git a/home.asm b/home.asm index d5f98ee3a..1f32edbe8 100644 --- a/home.asm +++ b/home.asm @@ -1648,7 +1648,7 @@ IsAPokemon:: ; 3741 ; 3750 -DrawHPBar:: ; 3750 +DrawBattleHPBar:: ; 3750 ; Draw an HP bar d tiles long at hl ; Fill it up to e pixels diff --git a/items/item_effects.asm b/items/item_effects.asm index fa68626ce..0024e3f50 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -1193,8 +1193,8 @@ Thunderstone: WaterStone: LeafStone: SunStone: ; ee0f - ld b, $5 - call Functionf1f9 + ld b, PARTYMENUACTION_EVO_STONE + call UseItem_SelectMon jp c, .asm_ee38 @@ -1230,8 +1230,8 @@ Protein: Iron: Carbos: Calcium: ; ee3d - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionee9f @@ -1363,8 +1363,8 @@ Functioneef5: ; eef5 RareCandy: ; ef14 - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionee9f @@ -1422,7 +1422,7 @@ RareCandy: ; ef14 ld [hl], a callba LevelUpHappinessMod - ld a, $f8 + ld a, PARTYMENUTEXT_LEVEL_UP call Functionf24a xor a ; PARTYMON @@ -1455,8 +1455,8 @@ RareCandy: ; ef14 HealPowder: ; efad - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e @@ -1488,8 +1488,8 @@ BurntBerry: IceBerry: MintBerry: Miracleberry: ; efcc - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e Functionefd4: ; efd4 @@ -1502,22 +1502,22 @@ Functionefda: ; efda (3:6fda) call Functionf30d ld a, $1 ret z - call Functionf058 + call GetItemHealingAction ld a, MON_STATUS call GetPartyParamLocation ld a, [hl] and c - jr nz, .asm_eff4 + jr nz, .good call Functionf009 ld a, $1 ret nc - ld b, $f9 -.asm_eff4 + ld b, PARTYMENUTEXT_HEAL_CONFUSION +.good xor a ld [hl], a ld a, b ld [PartyMenuActionText], a - call Functionf030 + call HealStatus call Play_SFX_FULL_HEAL call Functionf279 call UseDisposableItem @@ -1526,16 +1526,16 @@ Functionefda: ; efda (3:6fda) Functionf009: ; f009 (3:7009) call Functionf2a6 - jr nc, .asm_f01c + jr nc, .nope ld a, [PlayerSubStatus3] - bit 7, a - jr z, .asm_f01c + bit SUBSTATUS_CONFUSED, a + jr z, .nope ld a, c cp $ff - jr nz, .asm_f01c + jr nz, .nope scf ret -.asm_f01c +.nope and a ret @@ -1550,39 +1550,39 @@ Functionf01e: ; f01e (3:701e) ld [BattleMonHP + 1], a ret -Functionf030: ; f030 (3:7030) +HealStatus: ; f030 (3:7030) call Functionf2a6 ret nc xor a ld [BattleMonStatus], a ld hl, PlayerSubStatus5 - res 0, [hl] + res SUBSTATUS_TOXIC, [hl] ld hl, PlayerSubStatus1 - res 0, [hl] - call Functionf058 + res SUBSTATUS_NIGHTMARE, [hl] + call GetItemHealingAction ld a, c - cp $ff - jr nz, .asm_f04f + cp %11111111 + jr nz, .not_full_heal ld hl, PlayerSubStatus3 - res 7, [hl] -.asm_f04f + res SUBSTATUS_CONFUSED, [hl] +.not_full_heal push bc callba CalcPlayerStats pop bc ret -Functionf058: ; f058 (3:7058) +GetItemHealingAction: ; f058 (3:7058) push hl ld a, [CurItem] - ld hl, Table_f071 + ld hl, .healingactions ld bc, 3 .next cp [hl] - jr z, .asm_f068 + jr z, .found_it add hl, bc jr .next -.asm_f068 +.found_it inc hl ld b, [hl] inc hl @@ -1593,39 +1593,39 @@ Functionf058: ; f058 (3:7058) ret ; f071 (3:7071) -Table_f071: ; f071 +.healingactions: ; f071 ; item, party menu action text, status - db ANTIDOTE, $f0, 1 << PSN - db BURN_HEAL, $f1, 1 << BRN - db ICE_HEAL, $f2, 1 << FRZ - db AWAKENING, $f3, SLP - db PARLYZ_HEAL, $f4, 1 << PAR - db FULL_HEAL, $f6, %11111111 - db FULL_RESTORE, $f6, %11111111 - db HEAL_POWDER, $f6, %11111111 - db PSNCUREBERRY, $f0, 1 << PSN - db PRZCUREBERRY, $f4, 1 << PAR - db BURNT_BERRY, $f2, 1 << FRZ - db ICE_BERRY, $f1, 1 << BRN - db MINT_BERRY, $f3, SLP - db MIRACLEBERRY, $f6, %11111111 + db ANTIDOTE, PARTYMENUTEXT_HEAL_PSN, 1 << PSN + db BURN_HEAL, PARTYMENUTEXT_HEAL_BRN, 1 << BRN + db ICE_HEAL, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ + db AWAKENING, PARTYMENUTEXT_HEAL_SLP, SLP + db PARLYZ_HEAL, PARTYMENUTEXT_HEAL_PAR, 1 << PAR + db FULL_HEAL, PARTYMENUTEXT_HEAL_ALL, %11111111 + db FULL_RESTORE, PARTYMENUTEXT_HEAL_ALL, %11111111 + db HEAL_POWDER, PARTYMENUTEXT_HEAL_ALL, %11111111 + db PSNCUREBERRY, PARTYMENUTEXT_HEAL_PSN, 1 << PSN + db PRZCUREBERRY, PARTYMENUTEXT_HEAL_PAR, 1 << PAR + db BURNT_BERRY, PARTYMENUTEXT_HEAL_FRZ, 1 << FRZ + db ICE_BERRY, PARTYMENUTEXT_HEAL_BRN, 1 << BRN + db MINT_BERRY, PARTYMENUTEXT_HEAL_SLP, SLP + db MIRACLEBERRY, PARTYMENUTEXT_HEAL_ALL, %11111111 db -1, 0, 0 ; f09e Functionf09e: ; f09e (3:709e) - ld hl, Jumptable_f0a3 + ld hl, .jumptable rst JumpTable ret -Jumptable_f0a3: ; f0a3 (3:70a3) +.jumptable: ; f0a3 (3:70a3) dw Functionf2a2 dw Functionf299 dw Functionf29e RevivalHerb: ; f0a9 - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e call Functionf0d6 @@ -1644,8 +1644,8 @@ RevivalHerb: ; f0a9 Revive: MaxRevive: ; f0c8 - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e call Functionf0d6 @@ -1692,7 +1692,7 @@ Functionf0d6: ; f0d6 .asm_f117 call Functionf1db - ld a, $f7 + ld a, PARTYMENUTEXT_REVIVE ld [PartyMenuActionText], a call Functionf279 call UseDisposableItem @@ -1702,8 +1702,8 @@ Functionf0d6: ; f0d6 FullRestore: ; f128 - ld b, 1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf29e call Functionf30d @@ -1729,10 +1729,10 @@ Functionf144: ; f144 xor a ld [hli], a ld [hl], a - call Functionf030 + call HealStatus call Functionf01e call Functionf1db - ld a, $f5 + ld a, PARTYMENUTEXT_HEAL_HP ld [PartyMenuActionText], a call Functionf279 call UseDisposableItem @@ -1805,8 +1805,8 @@ Functionf192: ; f192 Functionf1a9: ; f1a9 (3:71a9) - ld b, 1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon ld a, 2 ret c @@ -1824,7 +1824,7 @@ Functionf1a9: ; f1a9 (3:71a9) call Functionf2d1 call Functionf01e call Functionf1db - ld a, $f5 + ld a, PARTYMENUTEXT_HEAL_HP ld [PartyMenuActionText], a call Functionf279 call UseDisposableItem @@ -1844,23 +1844,23 @@ Functionf1db: ; f1db (3:71db) ld [wd10a], a predef_jump AnimateHPBar -Functionf1f9: ; f1f9 (3:71f9) - call Functionf20b +UseItem_SelectMon: ; f1f9 (3:71f9) + call .SelectMon ret c ld a, [CurPartySpecies] cp EGG - jr nz, .asm_f209 + jr nz, .not_egg call CantUseOnEggMessage scf ret -.asm_f209 +.not_egg and a ret -Functionf20b: ; f20b (3:720b) +.SelectMon: ; f20b (3:720b) ld a, b ld [PartyMenuActionText], a push hl @@ -2179,7 +2179,7 @@ Functionf3df: ; f3df (3:73df) call Functionf30d call Functionf2d1 call Functionf1db - ld a, $f5 + ld a, PARTYMENUTEXT_HEAL_HP call Functionf24a call JoyWaitAorB .asm_f413 @@ -2189,35 +2189,38 @@ Functionf3df: ; f3df (3:73df) ret Functionf419: ; f419 (3:7419) +.loop push bc - ld a, $1 + ld a, PARTYMENUACTION_HEALING_ITEM ld [PartyMenuActionText], a call Functionf21c pop bc - jr c, .asm_f43e + jr c, .set_carry ld a, [wd0d8] dec a ld c, a ld a, b cp c - jr z, .asm_f440 + jr z, .loopback ld a, c ld [CurPartyMon], a call Functionf30d - jr z, .asm_f440 + jr z, .loopback call Functionf31b - jr nc, .asm_f440 + jr nc, .loopback xor a ret -.asm_f43e + +.set_carry scf ret -.asm_f440 + +.loopback push bc ld hl, UnknownText_0xf44a call MenuTextBoxBackup pop bc - jr Functionf419 + jr .loop ; f44a (3:744a) UnknownText_0xf44a: ; 0xf44a @@ -2301,18 +2304,18 @@ PokeDoll: ; f48f GuardSpec: ; f4ab ld hl, PlayerSubStatus4 - bit 1, [hl] + bit SUBSTATUS_MIST, [hl] jp nz, WontHaveAnyEffect_NotUsedMessage - set 1, [hl] + set SUBSTATUS_MIST, [hl] jp Functionf789 ; f4b8 DireHit: ; f4b8 ld hl, PlayerSubStatus4 - bit 2, [hl] + bit SUBSTATUS_FOCUS_ENERGY, [hl] jp nz, WontHaveAnyEffect_NotUsedMessage - set 2, [hl] + set SUBSTATUS_FOCUS_ENERGY, [hl] jp Functionf789 ; f4c5 @@ -2324,17 +2327,17 @@ XSpecial: ; f4c5 call Functionf789 ld a, [CurItem] - ld hl, Tablef504 + ld hl, .x_item_table -.asm_f4ce +.loop cp [hl] - jr z, .asm_f4d5 + jr z, .got_it rept 2 inc hl endr - jr .asm_f4ce + jr .loop -.asm_f4d5 +.got_it inc hl ld b, [hl] xor a @@ -2354,7 +2357,7 @@ endr ret ; f504 -Tablef504: ; f504 +.x_item_table: ; f504 db X_ATTACK, ATTACK db X_DEFEND, DEFENSE db X_SPEED, SPEED @@ -2522,8 +2525,8 @@ Mysteryberry: ; f5bf .loop ; Party Screen opens to choose on which Pkmn to use the Item - ld b, $1 - call Functionf1f9 + ld b, PARTYMENUACTION_HEALING_ITEM + call UseItem_SelectMon jp c, Functionf6e0 .loop2 @@ -2612,7 +2615,7 @@ Functionf652: ; f652 cp b jr nz, .asm_f66c ld a, [PlayerSubStatus5] - bit 3, a + bit SUBSTATUS_TRANSFORMED, a jr nz, .asm_f66c call .asm_f677 @@ -2708,7 +2711,7 @@ Functionf6e0: ; f6e0 RestorePP: ; f6e8 xor a ; PARTYMON ld [MonType], a - call Functionf8ec + call GetMaxPPOfMove ld hl, PartyMon1PP ld bc, PARTYMON_STRUCT_LENGTH call GetMthMoveOfNthPartymon @@ -3210,7 +3213,7 @@ Functionf8b9: ; f8b9 push hl push de push bc - call Functionf8ec + call GetMaxPPOfMove pop bc pop de ld a, [de] @@ -3229,7 +3232,7 @@ Functionf8b9: ; f8b9 ; f8ec -Functionf8ec: ; f8ec +GetMaxPPOfMove: ; f8ec ld a, [StringBuffer1 + 0] push af ld a, [StringBuffer1 + 1] diff --git a/main.asm b/main.asm index 9584d4f2d..d1eaf8ccd 100644 --- a/main.asm +++ b/main.asm @@ -3050,8 +3050,8 @@ SpecialReturnShuckle: ; 737e cp 150 ld a, $3 jr nc, .HappyToStayWithYou - xor a - ld [wd10b], a + xor a ; take from pc + ld [wPokemonWithdrawDepositParameter], a callab Functione039 ld a, $2 @@ -4475,7 +4475,7 @@ endr ret ; c699 -Functionc699: ; c699 +DrawPartyMenuHPBar: ; c699 ld a, b or c jr z, .zero @@ -7564,7 +7564,7 @@ Functiond670: ; d670 ld a, [hli] ld b, a pop hl - call Functionc699 + call DrawPartyMenuHPBar ld a, e ld [wd1f1], a ld a, [wd1ee] @@ -7575,7 +7575,7 @@ Functiond670: ; d670 ld e, a ld a, [Buffer2] ld d, a - call Functionc699 + call DrawPartyMenuHPBar ld a, e ld [wd1f2], a push hl @@ -7679,7 +7679,7 @@ Functiond6f5: ; d6f5 ld c, a ld a, [hli] ld b, a - call Functionc699 + call DrawPartyMenuHPBar pop bc pop de pop hl @@ -7718,7 +7718,7 @@ Functiond749: ; d749 ld e, a ld a, [Buffer2] ld d, a - call Functionc699 + call DrawPartyMenuHPBar ld c, e ld d, $6 ld a, [wd10a] @@ -7743,7 +7743,7 @@ Functiond771: ; d771 ld h, a .asm_d780 - call DrawHPBar + call DrawBattleHPBar ret ; d784 @@ -8369,26 +8369,28 @@ Functionda96: ; da96 SentGetPkmnIntoFromBox: ; db3f ; Sents/Gets Pkmn into/from Box depending on Parameter -; wd10b == 0: get Pkmn into Party -; wd10b == 1: sent Pkmn into Box +; wPokemonWithdrawDepositParameter == 0: get Pkmn into Party +; wPokemonWithdrawDepositParameter == 1: sent Pkmn into Box +; wPokemonWithdrawDepositParameter == 2: get Pkmn from DayCare +; wPokemonWithdrawDepositParameter == 3: put Pkmn into DayCare ld a, BANK(sBoxCount) call GetSRAMBank - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .check_IfPartyIsFull - cp $2 + cp DAYCARE_WITHDRAW jr z, .check_IfPartyIsFull - cp $3 + cp DAYCARE_DEPOSIT ld hl, wBreedMon1Species - jr z, .asm_db9b + jr z, .breedmon ; we want to sent a Pkmn into the Box ; so check if there's enough space ld hl, sBoxCount ld a, [hl] cp MONS_PER_BOX - jr nz, .asm_db69 + jr nz, .there_is_room jp CloseSRAM_And_SetCFlag .check_IfPartyIsFull @@ -8397,131 +8399,133 @@ SentGetPkmnIntoFromBox: ; db3f cp PARTY_LENGTH jp z, CloseSRAM_And_SetCFlag -.asm_db69 +.there_is_room inc a ld [hl], a ld c, a ld b, 0 add hl, bc - ld a, [wd10b] - cp $2 + ld a, [wPokemonWithdrawDepositParameter] + cp DAYCARE_WITHDRAW ld a, [wBreedMon1Species] - jr z, .asm_db7c + jr z, .okay1 ld a, [CurPartySpecies] -.asm_db7c +.okay1 ld [hli], a ld [hl], $ff - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] dec a ld hl, PartyMon1Species ld bc, PARTYMON_STRUCT_LENGTH ld a, [PartyCount] - jr nz, .asm_db97 + jr nz, .okay2 ld hl, sBoxMon1Species ld bc, BOXMON_STRUCT_LENGTH ld a, [sBoxCount] -.asm_db97 +.okay2 dec a ; PartyCount - 1 call AddNTimes -.asm_db9b +.breedmon push hl ld e, l ld d, h - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a ld hl, sBoxMon1Species ld bc, BOXMON_STRUCT_LENGTH - jr z, .asm_dbb7 - cp $2 + jr z, .okay3 + cp DAYCARE_WITHDRAW ld hl, wBreedMon1Species - jr z, .asm_dbbd + jr z, .okay4 ld hl, PartyMon1Species ld bc, PARTYMON_STRUCT_LENGTH -.asm_dbb7 +.okay3 ld a, [CurPartyMon] call AddNTimes -.asm_dbbd +.okay4 ld bc, BOXMON_STRUCT_LENGTH call CopyBytes - ld a, [wd10b] - cp $3 + ld a, [wPokemonWithdrawDepositParameter] + cp DAYCARE_DEPOSIT ld de, wBreedMon1OT - jr z, .asm_dbe2 + jr z, .okay5 dec a ld hl, PartyMonOT ld a, [PartyCount] - jr nz, .asm_dbdc + jr nz, .okay6 ld hl, sBoxMonOT ld a, [sBoxCount] -.asm_dbdc +.okay6 dec a call SkipNames ld d, h ld e, l -.asm_dbe2 +.okay5 ld hl, sBoxMonOT - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a - jr z, .asm_dbf5 + jr z, .okay7 ld hl, wBreedMon1OT - cp $2 - jr z, .asm_dbfb + cp DAYCARE_WITHDRAW + jr z, .okay8 ld hl, PartyMonOT -.asm_dbf5 +.okay7 ld a, [CurPartyMon] call SkipNames -.asm_dbfb +.okay8 ld bc, NAME_LENGTH call CopyBytes - ld a, [wd10b] - cp $3 + ld a, [wPokemonWithdrawDepositParameter] + cp DAYCARE_DEPOSIT ld de, wBreedMon1Nick - jr z, .asm_dc20 + jr z, .okay9 dec a ld hl, PartyMonNicknames ld a, [PartyCount] - jr nz, .asm_dc1a + jr nz, .okay10 ld hl, sBoxMonNicknames ld a, [sBoxCount] -.asm_dc1a +.okay10 dec a call SkipNames ld d, h ld e, l -.asm_dc20 +.okay9 ld hl, sBoxMonNicknames - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a - jr z, .asm_dc33 + jr z, .okay11 ld hl, wBreedMon1Nick - cp $2 - jr z, .asm_dc39 + cp DAYCARE_WITHDRAW + jr z, .okay12 ld hl, PartyMonNicknames -.asm_dc33 +.okay11 ld a, [CurPartyMon] call SkipNames -.asm_dc39 +.okay12 ld bc, PKMN_NAME_LENGTH call CopyBytes pop hl - ld a, [wd10b] - cp $1 - jr z, .asm_dca4 - cp $3 - jp z, .asm_dcac + + ld a, [wPokemonWithdrawDepositParameter] + cp PC_DEPOSIT + jr z, .took_out_of_box + cp DAYCARE_DEPOSIT + jp z, .CloseSRAM_And_ClearCFlag + push hl srl a add $2 @@ -8531,35 +8535,38 @@ SentGetPkmnIntoFromBox: ; db3f ld a, d ld [CurPartyLevel], a pop hl + ld b, h ld c, l - ld hl, $1f + ld hl, MON_LEVEL add hl, bc ld [hl], a - ld hl, $24 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l - ld hl, $a + ld hl, MON_EXP + 2 add hl, bc + push bc ld b, $1 call CalcPkmnStats pop bc - ld a, [wd10b] + + ld a, [wPokemonWithdrawDepositParameter] and a - jr nz, .asm_dcac - ld hl, $20 + jr nz, .CloseSRAM_And_ClearCFlag + ld hl, MON_STATUS add hl, bc xor a ld [hl], a - ld hl, $22 + ld hl, MON_HP add hl, bc ld d, h ld e, l ld a, [CurPartySpecies] cp EGG - jr z, .asm_dc9e + jr z, .egg rept 2 inc hl endr @@ -8568,22 +8575,22 @@ endr ld a, [hl] inc de ld [de], a - jr .asm_dcac + jr .CloseSRAM_And_ClearCFlag -.asm_dc9e +.egg xor a ld [de], a inc de ld [de], a - jr .asm_dcac + jr .CloseSRAM_And_ClearCFlag -.asm_dca4 +.took_out_of_box ld a, [sBoxCount] dec a ld b, a call Functiondcb6 -.asm_dcac +.CloseSRAM_And_ClearCFlag call CloseSRAM and a ret @@ -8637,13 +8644,13 @@ Functiondcb6: ; dcb6 push bc push hl push de - callba Functionf8ec + callba GetMaxPPOfMove pop de pop hl ld a, [wd265] ld b, a ld a, [de] - and $c0 + and %11000000 add b ld [de], a pop bc @@ -8674,7 +8681,7 @@ Functiondd21: ; dd21 ld a, e ld [CurPartyLevel], a xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a jp Functiondd64 ; dd42 @@ -8689,8 +8696,8 @@ Functiondd42: ; dd42 ld [DefaultFlypoint], a ld a, e ld [CurPartyLevel], a - ld a, $1 - ld [wd10b], a + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a jp Functiondd64 ; dd64 @@ -8698,25 +8705,25 @@ Functiondd64: ; dd64 ld hl, PartyCount ld a, [hl] cp PARTY_LENGTH - jr nz, .asm_dd6e + jr nz, .room_in_party scf ret -.asm_dd6e +.room_in_party inc a ld [hl], a ld c, a ld b, 0 add hl, bc - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a ld a, [wBreedMon1Species] ld de, wBreedMon1Nick - jr z, .asm_dd86 + jr z, .okay ld a, [wBreedMon2Species] ld de, wBreedMon2Nick -.asm_dd86 +.okay ld [hli], a ld [CurSpecies], a ld a, $ff @@ -8742,17 +8749,17 @@ Functiondd64: ; dd64 push hl call Functionde1a pop hl - ld bc, $20 + ld bc, BOXMON_STRUCT_LENGTH call CopyBytes call GetBaseData call Functionde1a ld b, d ld c, e - ld hl, $1f + ld hl, MON_LEVEL add hl, bc ld a, [CurPartyLevel] ld [hl], a - ld hl, $24 + ld hl, MON_MAXHP add hl, bc ld d, h ld e, l @@ -8783,9 +8790,9 @@ Functiondd64: ; dd64 add hl, bc ld a, [hMultiplicand] ld [hli], a - ld a, [$ffb5] + ld a, [hMultiplicand + 1] ld [hli], a - ld a, [$ffb6] + ld a, [hMultiplicand + 2] ld [hl], a and a ret @@ -8806,7 +8813,7 @@ Functionde2a: ; de2a ld de, wBreedMon1Nick call Functionde44 xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a jp Functione039 ; de37 @@ -8814,7 +8821,7 @@ Functionde37: ; de37 ld de, wBreedMon2Nick call Functionde44 xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a jp Functione039 ; de44 @@ -9112,15 +9119,15 @@ String_Egg: ; e035 Functione039: ; e039 ld hl, PartyCount - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a - jr z, .asm_e04a + jr z, .okay ld a, BANK(sBoxCount) call GetSRAMBank ld hl, sBoxCount -.asm_e04a +.okay ld a, [hl] dec a ld [hli], a @@ -9139,7 +9146,7 @@ Functione039: ; e039 jr nz, .asm_e057 ld hl, PartyMonOT ld d, PARTY_LENGTH - 1 - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e06d ld hl, sBoxMonOT @@ -9160,7 +9167,7 @@ Functione039: ; e039 ld bc, PKMN_NAME_LENGTH add hl, bc ld bc, PartyMonNicknames - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e090 ld bc, sBoxMonNicknames @@ -9169,7 +9176,7 @@ Functione039: ; e039 ld hl, PartyMons ld bc, PARTYMON_STRUCT_LENGTH - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e0a5 ld hl, sBoxMons @@ -9180,7 +9187,7 @@ Functione039: ; e039 call AddNTimes ld d, h ld e, l - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e0bc ld bc, BOXMON_STRUCT_LENGTH @@ -9196,7 +9203,7 @@ Functione039: ; e039 .asm_e0c3 call CopyDataUntil ld hl, PartyMonNicknames - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e0d2 ld hl, sBoxMonNicknames @@ -9210,7 +9217,7 @@ Functione039: ; e039 ld bc, PKMN_NAME_LENGTH add hl, bc ld bc, PartyMonNicknamesEnd - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jr z, .asm_e0ed ld bc, sBoxMonNicknamesEnd @@ -9219,7 +9226,7 @@ Functione039: ; e039 call CopyDataUntil .asm_60f0 - ld a, [wd10b] + ld a, [wPokemonWithdrawDepositParameter] and a jp nz, CloseSRAM ld a, [wLinkMode] @@ -27040,7 +27047,7 @@ Function28b87: ; 28b87 ld a, [hl] ld [DefaultFlypoint], a xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a callab Functione039 ld a, [PartyCount] dec a @@ -34291,7 +34298,7 @@ Function44654:: ; 44654 ld a, $4 jr c, .asm_446c1 xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a callba Functione039 ld a, $1 @@ -42293,7 +42300,7 @@ Function4df45: ; 4df45 (13:5f45) ld a, [hli] ld d, a ld e, [hl] - callba Functionc699 + callba DrawPartyMenuHPBar ld hl, wcda1 call SetHPPal ld b, $3 @@ -43929,42 +43936,42 @@ WritePartyMenuTilemap: ; 0x5005f ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, " " call ByteFill ; blank the tilemap - call Function50396 ; This reads from a pointer table??? -.asm_50077 + call GetPartyMenuTilemapPointers ; This reads from a pointer table??? +.loop ld a, [hli] cp $ff - jr z, .asm_50084 ; 0x5007a $8 + jr z, .end ; 0x5007a $8 push hl - ld hl, Jumptable_50089 + ld hl, .Jumptable rst JumpTable pop hl - jr .asm_50077 ; 0x50082 $f3 -.asm_50084 + jr .loop ; 0x50082 $f3 +.end pop af ld [Options], a ret ; 0x50089 -Jumptable_50089: ; 50089 - dw Function5009b - dw Function500cf - dw Function50138 - dw Function50176 - dw Function501b2 - dw Function501e0 - dw Function5022f - dw Function502b1 - dw Function50307 +.Jumptable: ; 50089 + dw PlacePartyNicknames + dw PlacePartyHPBar + dw PlacePartyMenuHPDigits + dw PlacePartyMonLevel + dw PlacePartyMonStatus + dw PlacePartyMonTMHMCompatibility + dw PlacePartyMonEvoStoneCompatibility + dw PlacePartyMonGender + dw PlacePartyMonMobileBattleSelection ; 5009b -Function5009b: ; 5009b +PlacePartyNicknames: ; 5009b hlcoord 3, 1 ld a, [PartyCount] and a - jr z, .asm_500bf + jr z, .end ld c, a ld b, $0 -.asm_500a7 +.loop push bc push hl push hl @@ -43974,28 +43981,28 @@ Function5009b: ; 5009b pop hl call PlaceString pop hl - ld de, $28 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_500a7 + jr nz, .loop -.asm_500bf +.end rept 2 dec hl endr - ld de, String_500c8 + ld de, .CANCEL call PlaceString ret ; 500c8 -String_500c8: ; 500c8 +.CANCEL: ; 500c8 db "CANCEL@" ; 500cf -Function500cf: ; 500cf +PlacePartyHPBar: ; 500cf xor a ld [wcda9], a ld a, [PartyCount] @@ -44004,17 +44011,17 @@ Function500cf: ; 500cf ld c, a ld b, $0 hlcoord 11, 2 -.asm_500de +.loop push bc push hl - call Function50389 - jr z, .asm_50103 + call PartyMenuCheckEgg + jr z, .skip push hl - call Function50117 + call PlacePartymonHPBar pop hl ld d, $6 ld b, $0 - call DrawHPBar + call DrawBattleHPBar ld hl, wcd9b ld a, [wcda9] ld c, a @@ -44024,35 +44031,35 @@ Function500cf: ; 500cf ld b, $fc call GetSGBLayout -.asm_50103 +.skip ld hl, wcda9 inc [hl] pop hl - ld de, $28 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_500de + jr nz, .loop ld b, $a call GetSGBLayout ret ; 50117 -Function50117: ; 50117 +PlacePartymonHPBar: ; 50117 ld a, b ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld a, [hli] or [hl] - jr nz, .asm_50129 + jr nz, .not_fainted xor a ld e, a ld c, a ret -.asm_50129 +.not_fainted dec hl ld a, [hli] ld b, a @@ -44062,22 +44069,22 @@ Function50117: ; 50117 ld d, a ld a, [hli] ld e, a - predef Functionc699 + predef DrawPartyMenuHPBar ret ; 50138 -Function50138: ; 50138 +PlacePartyMenuHPDigits: ; 50138 ld a, [PartyCount] and a ret z ld c, a ld b, $0 hlcoord 13, 1 -.asm_50143 +.loop push bc push hl - call Function50389 - jr z, .asm_5016b + call PartyMenuCheckEgg + jr z, .next push hl ld a, b ld bc, PARTYMON_STRUCT_LENGTH @@ -44090,7 +44097,7 @@ Function50138: ; 50138 lb bc, 2, 3 call PrintNum pop de - ld a, $f3 + ld a, "/" ld [hli], a rept 2 inc de @@ -44098,29 +44105,29 @@ endr lb bc, 2, 3 call PrintNum -.asm_5016b +.next pop hl - ld de, $28 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_50143 + jr nz, .loop ret ; 50176 -Function50176: ; 50176 +PlacePartyMonLevel: ; 50176 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 8, 2 -.asm_50181 +.loop push bc push hl - call Function50389 - jr z, .asm_501a7 + call PartyMenuCheckEgg + jr z, .next push hl ld a, b ld bc, PARTYMON_STRUCT_LENGTH @@ -44131,37 +44138,39 @@ Function50176: ; 50176 pop hl ld a, [de] cp 100 ; This is distinct from MAX_LEVEL. - jr nc, .asm_501a1 + jr nc, .ThreeDigits ld a, "" ld [hli], a - lb bc, PRINTNUM_RIGHTALIGN | 1, 2 ; Missing a jr in here -.asm_501a1 + lb bc, PRINTNUM_RIGHTALIGN | 1, 2 + ; jr .okay +.ThreeDigits lb bc, PRINTNUM_RIGHTALIGN | 1, 3 +; .okay call PrintNum -.asm_501a7 +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_50181 + jr nz, .loop ret ; 501b2 -Function501b2: ; 501b2 +PlacePartyMonStatus: ; 501b2 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 5, 2 -.asm_501bd +.loop push bc push hl - call Function50389 - jr z, .asm_501d5 + call PartyMenuCheckEgg + jr z, .next push hl ld a, b ld bc, PARTYMON_STRUCT_LENGTH @@ -44172,29 +44181,29 @@ Function501b2: ; 501b2 pop hl call PlaceStatusString -.asm_501d5 +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_501bd + jr nz, .loop ret ; 501e0 -Function501e0: ; 501e0 +PlacePartyMonTMHMCompatibility: ; 501e0 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_501eb +.loop push bc push hl - call Function50389 - jr z, .asm_5020a + call PartyMenuCheckEgg + jr z, .next push hl ld hl, PartySpecies ld e, b @@ -44204,53 +44213,53 @@ Function501e0: ; 501e0 ld [CurPartySpecies], a predef CanLearnTMHMMove pop hl - call Function50215 + call .PlaceAbleNotAble call PlaceString -.asm_5020a +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_501eb + jr nz, .loop ret ; 50215 -Function50215: ; 50215 +.PlaceAbleNotAble: ; 50215 ld a, c and a - jr nz, .asm_5021d - ld de, String_50226 + jr nz, .able + ld de, .string_not_able ret -.asm_5021d - ld de, String_50221 +.able + ld de, .string_able ret ; 50221 -String_50221: ; 50221 +.string_able: ; 50221 db "ABLE@" ; 50226 -String_50226: ; 50226 +.string_not_able: ; 50226 db "NOT ABLE@" ; 5022f -Function5022f: ; 5022f +PlacePartyMonEvoStoneCompatibility: ; 5022f ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_5023a +.loop push bc push hl - call Function50389 - jr z, .asm_5025d + call PartyMenuCheckEgg + jr z, .next push hl ld a, b ld bc, PARTYMON_STRUCT_LENGTH @@ -44264,22 +44273,22 @@ Function5022f: ; 5022f rept 2 add hl, de endr - call Function50268 + call .DetermineCompatibility pop hl call PlaceString -.asm_5025d +.next pop hl - ld de, $28 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_5023a + jr nz, .loop ret ; 50268 -Function50268: ; 50268 +.DetermineCompatibility: ; 50268 ld de, StringBuffer1 ld a, BANK(EvosAttacksPointers) ld bc, 2 @@ -44293,15 +44302,15 @@ Function50268: ; 50268 ld bc, $a call FarCopyBytes ld hl, StringBuffer1 -.asm_50287 +.loop2 ld a, [hli] and a - jr z, .asm_5029f + jr z, .nope rept 2 inc hl endr cp EVOLVE_ITEM - jr nz, .asm_50287 + jr nz, .loop2 rept 2 dec hl endr @@ -44310,35 +44319,35 @@ endr rept 2 inc hl endr - jr nz, .asm_50287 - ld de, String_502a3 + jr nz, .loop2 + ld de, .string_able ret -.asm_5029f - ld de, String_502a8 +.nope + ld de, .string_not_able ret ; 502a3 -String_502a3: ; 502a3 +.string_able: ; 502a3 db "ABLE@" ; 502a8 -String_502a8: ; 502a8 +.string_not_able: ; 502a8 db "NOT ABLE@" ; 502b1 -Function502b1: ; 502b1 +PlacePartyMonGender: ; 502b1 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_502bc +.loop push bc push hl - call Function50389 - jr z, .asm_502e3 + call PartyMenuCheckEgg + jr z, .next ld [CurPartySpecies], a push hl ld a, b @@ -44346,86 +44355,86 @@ Function502b1: ; 502b1 xor a ld [MonType], a call GetGender - ld de, String_502fe - jr c, .asm_502df - ld de, String_502ee - jr nz, .asm_502df - ld de, String_502f5 + ld de, .unknown + jr c, .got_gender + ld de, .male + jr nz, .got_gender + ld de, .female -.asm_502df +.got_gender pop hl call PlaceString -.asm_502e3 +.next pop hl - ld de, $28 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_502bc + jr nz, .loop ret ; 502ee -String_502ee: ; 502ee +.male: ; 502ee db "♂…MALE@" ; 502f5 -String_502f5: ; 502f5 +.female: ; 502f5 db "♀…FEMALE@" ; 502fe -String_502fe: ; 502fe +.unknown: ; 502fe db "…UNKNOWN@" ; 50307 -Function50307: ; 50307 +PlacePartyMonMobileBattleSelection: ; 50307 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 1 -.asm_50312 +.loop push bc push hl - ld de, String_50372 + ld de, .String_Sanka_Shinai call PlaceString pop hl - ld de, $28 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_50312 + jr nz, .loop ld a, l - ld e, $b + ld e, PKMN_NAME_LENGTH sub e ld l, a ld a, h sbc $0 ld h, a - ld de, String_50379 + ld de, .String_Kettei_Yameru call PlaceString ld b, $3 ld c, $0 ld hl, DefaultFlypoint ld a, [hl] -.asm_5033b +.loop2 push hl push bc hlcoord 12, 1 -.asm_50340 +.loop3 and a - jr z, .asm_5034a - ld de, $28 + jr z, .done + ld de, 2 * SCREEN_WIDTH add hl, de dec a - jr .asm_50340 + jr .loop3 -.asm_5034a - ld de, String_5036b +.done + ld de, .String_Banme push hl call PlaceString pop hl @@ -44433,7 +44442,7 @@ Function50307: ; 50307 push bc push hl ld a, c - ld hl, Strings_50383 + ld hl, .Strings_1_2_3 call GetNthString ld d, h ld e, l @@ -44446,24 +44455,24 @@ Function50307: ; 50307 inc c dec b ret z - jr .asm_5033b + jr .loop2 ; 5036b -String_5036b: ; 5036b +.String_Banme: ; 5036b db " ばんめ @" ; Place ; 50372 -String_50372: ; 50372 +.String_Sanka_Shinai: ; 50372 db "さんかしない@" ; Cancel ; 50379 -String_50379: ; 50379 +.String_Kettei_Yameru: ; 50379 db "けってい やめる@" ; Quit ; 50383 -Strings_50383: ; 50383 +.Strings_1_2_3: ; 50383 db "1@", "2@", "3@" ; 1st, 2nd, 3rd ; 50389 -Function50389: ; 50389 +PartyMenuCheckEgg: ; 50389 ld a, PartySpecies % $100 add b ld e, a @@ -44475,15 +44484,15 @@ Function50389: ; 50389 ret ; 50396 -Function50396: ; 50396 +GetPartyMenuTilemapPointers: ; 50396 ld a, [PartyMenuActionText] and $f0 - jr nz, .asm_503ae + jr nz, .skip ld a, [PartyMenuActionText] and $f ld e, a ld d, 0 - ld hl, Unknown_503b2 + ld hl, .Pointers rept 2 add hl, de endr @@ -44492,29 +44501,29 @@ endr ld l, a ret -.asm_503ae - ld hl, Unknown_503c6 +.skip + ld hl, .Default ret ; 503b2 -Unknown_503b2: ; 503b2 - dw Unknown_503c6 - dw Unknown_503c6 - dw Unknown_503c6 - dw Unknown_503cc - dw Unknown_503c6 - dw Unknown_503d1 - dw Unknown_503d6 - dw Unknown_503d6 - dw Unknown_503c6 - dw Unknown_503db +.Pointers: ; 503b2 + dw .Default + dw .Default + dw .Default + dw .TMHM + dw .Default + dw .EvoStone + dw .Gender + dw .Gender + dw .Default + dw .Mobile ; 503c6 -Unknown_503c6: db 0, 1, 2, 3, 4, $ff -Unknown_503cc: db 0, 5, 3, 4, $ff -Unknown_503d1: db 0, 6, 3, 4, $ff -Unknown_503d6: db 0, 7, 3, 4, $ff -Unknown_503db: db 0, 8, 3, 4, $ff +.Default: db 0, 1, 2, 3, 4, $ff +.TMHM: db 0, 5, 3, 4, $ff +.EvoStone: db 0, 6, 3, 4, $ff +.Gender: db 0, 7, 3, 4, $ff +.Mobile: db 0, 8, 3, 4, $ff ; 503e0 @@ -45529,7 +45538,7 @@ DrawHP: ; 50b10 ld c, e .asm_50b41 - predef Functionc699 + predef DrawPartyMenuHPBar ld a, 6 ld d, a ld c, a @@ -45542,7 +45551,7 @@ DrawHP: ; 50b10 push de push hl push hl - call DrawHPBar + call DrawBattleHPBar pop hl ; Print HP @@ -45774,7 +45783,7 @@ endr push af ld [hl], b push hl - callab Functionf8ec + callab GetMaxPPOfMove pop hl pop af ld [hl], a @@ -56249,7 +56258,7 @@ Function8e936: ; 8e936 (23:6936) ret Function8e94c: ; 8e94c (23:694c) - callba Function50117 + callba PlacePartymonHPBar call GetHPPal ld e, d ld d, 0 @@ -67878,7 +67887,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0) add [hl] ld [CurPartyMon], a xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a callba Functione039 call Functione3180 ld a, $0 @@ -68140,8 +68149,8 @@ endr ld hl, wcb2a add [hl] ld [CurPartyMon], a - ld a, $1 - ld [wd10b], a + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a callba Functione039 call Functione3180 ld a, $0 @@ -69532,12 +69541,12 @@ Functione307c: ; e307c (38:707c) ld hl, PartyMonNicknames ld a, [CurPartyMon] call GetNick - ld a, $1 - ld [wd10b], a + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a predef SentGetPkmnIntoFromBox jr c, .asm_boxisfull xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a callba Functione039 ld a, [CurPartySpecies] call PlayCry @@ -69588,11 +69597,11 @@ TryWithdrawPokemon: ; e30fa (38:70fa) call GetNick call CloseSRAM xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a predef SentGetPkmnIntoFromBox jr c, .PartyFull - ld a, $1 - ld [wd10b], a + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a callba Functione039 ld a, [CurPartySpecies] call PlayCry @@ -69829,8 +69838,8 @@ Functione32b0: ; e32b0 call Functione3389 call CloseSRAM callba Function5088b - ld a, $1 - ld [wd10b], a + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a callba Functione039 ret ; e32fa @@ -69863,7 +69872,7 @@ Functione3316: ; e3316 ld bc, PARTYMON_STRUCT_LENGTH call Functione3389 xor a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a callba Functione039 ret ; e3346 @@ -74697,7 +74706,7 @@ Functionfcc63: ; fcc63 ld [CurPartySpecies], a xor a ld [MonType], a - ld [wd10b], a + ld [wPokemonWithdrawDepositParameter], a callab Functione039 predef TryAddMonToParty diff --git a/wram.asm b/wram.asm index 9dac61981..ef7ee6916 100644 --- a/wram.asm +++ b/wram.asm @@ -561,8 +561,8 @@ PlayerSubStatus5:: ; c66c ; 7 cant run ; 6 destiny bond ; 5 lock-on -; 4 -; 3 +; 4 encore +; 3 transformed ; 2 ; 1 ; 0 toxic @@ -1602,6 +1602,11 @@ CurPartyMon:: ; d109 ds 1 wd10a:: ds 1 +wPokemonWithdrawDepositParameter:: +; 0: Take from PC +; 1: Put into PC +; 2: Take from Daycare +; 3: Put into Daycare wd10b:: ds 1 wItemQuantityChangeBuffer:: ds 1 wItemQuantityBuffer:: ds 1 -- cgit v1.2.3 From ac824f62fc6bdbc63f2f9fb7bd17e4827a535f36 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 8 Nov 2015 13:27:26 -0500 Subject: More battle core labels --- battle/ai/items.asm | 2 +- battle/ai/scoring.asm | 4 +- battle/core.asm | 357 +++++++++++----------- battle/effect_commands.asm | 34 +-- constants/battle_constants.asm | 2 + constants/sprite_constants.asm | 4 +- engine/map_objects.asm | 6 +- engine/phone_scripts.asm | 35 --- engine/scripting.asm | 6 +- items/item_effects.asm | 2 +- main.asm | 666 ++++++++--------------------------------- misc/mobile_40.asm | 6 +- misc/mobile_42.asm | 28 +- misc/mobile_46.asm | 6 +- misc/mobile_5c.asm | 8 +- misc/mobile_5f.asm | 6 +- wram.asm | 22 +- 17 files changed, 378 insertions(+), 816 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index f91f45ee5..cf78980b3 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -16,7 +16,7 @@ AI_SwitchOrTryItem: ; 38000 bit SUBSTATUS_CANT_RUN, a jr nz, DontSwitch - ld a, [wc731] + ld a, [wEnemyWrapCount] and a jr nz, DontSwitch diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 39d2a8eca..dbdbb9db8 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -1062,7 +1062,7 @@ AI_Smart_Bind: ; 38a71 ; Bind, Wrap, Fire Spin, Clamp ; 50% chance to discourage this move if the player is already trapped. - ld a, [wc730] + ld a, [wPlayerWrapCount] and a jr nz, .asm_38a8b @@ -2466,7 +2466,7 @@ AI_Smart_RapidSpin: ; 39084 ; 80% chance to greatly encourage this move if the enemy is ; trapped (Bind effect), seeded, or scattered with spikes. - ld a, [wc731] + ld a, [wEnemyWrapCount] and a jr nz, .asm_39097 diff --git a/battle/core.asm b/battle/core.asm index f6f8fbf0f..a772794a1 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -166,8 +166,8 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5 Function3c12f: ; 3c12f .loop - call Function3c1bf - call Function3c3f5 + call MobileFn_3c1bf + call CheckContestBattleOver jp c, .quit xor a @@ -192,8 +192,8 @@ Function3c12f: ; 3c12f .not_disconnected call Function3c410 - jr c, .asm_3c18a -.asm_3c179 + jr c, .skip_iteration +.loop1 call BattleMenu jr c, .quit ld a, [BattleEnded] @@ -202,20 +202,20 @@ Function3c12f: ; 3c12f ld a, [wd232] ; roared/whirlwinded/teleported and a jr nz, .quit -.asm_3c18a +.skip_iteration call Function3c434 - jr nz, .asm_3c179 + jr nz, .loop1 call Function3c300 jr c, .quit call DetermineMoveOrder - jr c, .asm_3c19e + jr c, .false call Function3c5fe - jr .asm_3c1a1 -.asm_3c19e + jr .proceed +.false call Function3c664 -.asm_3c1a1 +.proceed call Function3d2e0 jr c, .quit @@ -227,7 +227,7 @@ Function3c12f: ; 3c12f and a jr nz, .quit - call Function3c1d6 + call HandleBetweenTurnEffects ld a, [BattleEnded] and a jr nz, .quit @@ -237,46 +237,41 @@ Function3c12f: ; 3c12f ret ; 3c1bf -Function3c1bf: ; 3c1bf - ret -; 3c1c0 - - -Function3c1c0: ; 3c1c0 +MobileFn_3c1bf: mobile ld a, $5 call GetSRAMBank ld hl, $a89b inc [hl] - jr nz, .asm_3c1d2 + jr nz, .finish dec hl inc [hl] - jr nz, .asm_3c1d2 + jr nz, .finish dec [hl] inc hl dec [hl] -.asm_3c1d2 +.finish call CloseSRAM ret ; 3c1d6 -Function3c1d6: ; 3c1d6 +HandleBetweenTurnEffects: ; 3c1d6 ld a, [hLinkPlayerNumber] cp $1 jr z, .CheckEnemyFirst call CheckFaint_PlayerThenEnemy ret c - call Function3ca26 + call HandleFutureSight call CheckFaint_PlayerThenEnemy ret c call HandleWeather call CheckFaint_PlayerThenEnemy ret c - call Function3c874 + call HandleWrap call CheckFaint_PlayerThenEnemy ret c - call Function3c801 + call HandlePerishSong call CheckFaint_PlayerThenEnemy ret c jr .NoMoreFaintingConditions @@ -284,27 +279,27 @@ Function3c1d6: ; 3c1d6 .CheckEnemyFirst call CheckFaint_EnemyThenPlayer ret c - call Function3ca26 + call HandleFutureSight call CheckFaint_EnemyThenPlayer ret c call HandleWeather call CheckFaint_EnemyThenPlayer ret c - call Function3c874 + call HandleWrap call CheckFaint_EnemyThenPlayer ret c - call Function3c801 + call HandlePerishSong call CheckFaint_EnemyThenPlayer ret c .NoMoreFaintingConditions - call Function3c8eb - call Function3c93c + call HandleLeftovers + call HandleMysteryberry call HanleDefrost call HandleSafeguard call HandleScreens - call Function3de97 - call Function3dcf9 + call HandleStatBoostingHeldItems + call HandleHealingItems call UpdateBattleMonInParty call LoadTileMapToTempTileMap jp Function3c4df @@ -578,13 +573,13 @@ DetermineMoveOrder: ; 3c314 ret ; 3c3f5 -Function3c3f5: ; 3c3f5 +CheckContestBattleOver: ; 3c3f5 ld a, [BattleType] cp BATTLETYPE_CONTEST - jr nz, .asm_3c40e - ld a, [wdc79] + jr nz, .contest_not_over + ld a, [wParkBallsRemaining] and a - jr nz, .asm_3c40e + jr nz, .contest_not_over ld a, [wBattleResult] and $c0 add $2 @@ -592,7 +587,7 @@ Function3c3f5: ; 3c3f5 scf ret -.asm_3c40e +.contest_not_over and a ret ; 3c410 @@ -787,7 +782,7 @@ TryEnemyFlee: ; 3c543 bit SUBSTATUS_CANT_RUN, a jr nz, .Stay - ld a, [wc731] + ld a, [wEnemyWrapCount] and a jr nz, .Stay @@ -1217,27 +1212,28 @@ ResidualDamage: ; 3c716 ret ; 3c801 -Function3c801: ; 3c801 +HandlePerishSong: ; 3c801 ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3c813 + jr z, .EnemyFirst call SetPlayerTurn - call .asm_3c81c + call .do_it call SetEnemyTurn - jp .asm_3c81c + jp .do_it -.asm_3c813 +.EnemyFirst call SetEnemyTurn - call .asm_3c81c + call .do_it call SetPlayerTurn -.asm_3c81c + +.do_it ld hl, PlayerPerishCount ld a, [hBattleTurn] and a - jr z, .asm_3c827 + jr z, .got_count ld hl, EnemyPerishCount -.asm_3c827 +.got_count ld a, BATTLE_VARS_SUBSTATUS1 call GetBattleVar bit SUBSTATUS_PERISH, a @@ -1285,46 +1281,51 @@ Function3c801: ; 3c801 ret ; 3c874 -Function3c874: ; 3c874 +HandleWrap: ; 3c874 ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3c886 + jr z, .EnemyFirst call SetPlayerTurn - call .asm_3c88f + call .do_it call SetEnemyTurn - jp .asm_3c88f + jp .do_it -.asm_3c886 +.EnemyFirst call SetEnemyTurn - call .asm_3c88f + call .do_it call SetPlayerTurn -.asm_3c88f - ld hl, wc730 - ld de, wc72e + +.do_it + ld hl, wPlayerWrapCount + ld de, wPlayerTrappingMove ld a, [hBattleTurn] and a - jr z, .asm_3c8a0 - ld hl, wc731 - ld de, wc72f + jr z, .got_addrs + ld hl, wEnemyWrapCount + ld de, wEnemyTrappingMove -.asm_3c8a0 +.got_addrs ld a, [hl] and a ret z + ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVar bit SUBSTATUS_SUBSTITUTE, a ret nz + ld a, [de] ld [wd265], a ld [FXAnimIDLo], a call GetMoveName dec [hl] - jr z, .asm_3c8de + jr z, .release_from_bounds + ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND - jr nz, .asm_3c8d3 + jr nz, .skip_anim + call SwitchTurnCore xor a ld [wcfca], a @@ -1332,13 +1333,13 @@ Function3c874: ; 3c874 predef PlayBattleAnim call SwitchTurnCore -.asm_3c8d3 +.skip_anim call GetSixteenthMaxHP call SubtractHPFromUser ld hl, BattleText_UsersHurtByStringBuffer1 jr .asm_3c8e1 -.asm_3c8de +.release_from_bounds ld hl, BattleText_UserWasReleasedFromStringBuffer1 .asm_3c8e1 @@ -1352,20 +1353,21 @@ SwitchTurnCore: ; 3c8e4 ret ; 3c8eb -Function3c8eb: ; 3c8eb +HandleLeftovers: ; 3c8eb ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3c8fd + jr z, .DoEnemyFirst call SetPlayerTurn - call .asm_3c906 + call .do_it call SetEnemyTurn - jp .asm_3c906 + jp .do_it -.asm_3c8fd +.DoEnemyFirst call SetEnemyTurn - call .asm_3c906 + call .do_it call SetPlayerTurn -.asm_3c906 +.do_it + callab GetUserItem ld a, [hl] ld [wd265], a @@ -1373,25 +1375,27 @@ Function3c8eb: ; 3c8eb ld a, b cp HELD_LEFTOVERS ret nz + ld hl, BattleMonHP ld a, [hBattleTurn] and a - jr z, .asm_3c922 + jr z, .got_hp ld hl, EnemyMonHP -.asm_3c922 +.got_hp +; Don't restore if we're already at max HP ld a, [hli] ld b, a ld a, [hli] ld c, a ld a, [hli] cp b - jr nz, .asm_3c92d + jr nz, .restore ld a, [hl] cp c ret z -.asm_3c92d +.restore call GetSixteenthMaxHP call SwitchTurnCore call RestoreHP @@ -1399,24 +1403,25 @@ Function3c8eb: ; 3c8eb jp StdBattleTextBox ; 3c93c -Function3c93c: ; 3c93c +HandleMysteryberry: ; 3c93c ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3c94e + jr z, .DoEnemyFirst call SetPlayerTurn - call .asm_3c957 + call .do_it call SetEnemyTurn - jp .asm_3c957 + jp .do_it -.asm_3c94e +.DoEnemyFirst call SetEnemyTurn - call .asm_3c957 + call .do_it call SetPlayerTurn -.asm_3c957 + +.do_it callab GetUserItem ld a, b cp HELD_RESTORE_PP - jr nz, .asm_3c9ae + jr nz, .quit ld hl, PartyMon1PP ld a, [CurBattleMon] call GetPartyLocation @@ -1427,12 +1432,12 @@ Function3c93c: ; 3c93c call GetPartyLocation ld a, [hBattleTurn] and a - jr z, .asm_3c99b + jr z, .wild ld de, wc739 ld hl, wc735 ld a, [wBattleMode] dec a - jr z, .asm_3c99b + jr z, .wild ld hl, OTPartyMon1PP ld a, [CurOTMon] call GetPartyLocation @@ -1442,33 +1447,33 @@ Function3c93c: ; 3c93c ld a, [CurOTMon] call GetPartyLocation -.asm_3c99b +.wild ld c, $0 -.asm_3c99d +.loop ld a, [hl] and a - jr z, .asm_3c9ae + jr z, .quit ld a, [de] and $3f - jr z, .asm_3c9af + jr z, .restore inc hl inc de inc c ld a, c cp NUM_MOVES - jr nz, .asm_3c99d + jr nz, .loop -.asm_3c9ae +.quit ret -.asm_3c9af +.restore ; lousy hack ld a, [hl] cp SKETCH ld b, 1 - jr z, .asm_3c9b8 + jr z, .sketch ld b, 5 -.asm_3c9b8 +.sketch ld a, [de] add b ld [de], a @@ -1480,10 +1485,10 @@ Function3c93c: ; 3c93c ld hl, BattleMonPP ld a, [hBattleTurn] and a - jr z, .asm_3c9d2 + jr z, .player_pp ld de, EnemyMonMoves - 1 ld hl, EnemyMonPP -.asm_3c9d2 +.player_pp inc de pop bc ld b, 0 @@ -1497,38 +1502,38 @@ Function3c93c: ; 3c93c ld a, [wd265] cp [hl] - jr nz, .asm_3c9f5 + jr nz, .skip_checks ld a, [hBattleTurn] and a ld a, [PlayerSubStatus5] - jr z, .asm_3c9ee + jr z, .check_transform ld a, [EnemySubStatus5] -.asm_3c9ee +.check_transform bit SUBSTATUS_TRANSFORMED, a - jr nz, .asm_3c9f5 + jr nz, .skip_checks ld a, [de] add b ld [de], a -.asm_3c9f5 +.skip_checks callab GetUserItem ld a, [hl] ld [wd265], a xor a ld [hl], a - call Function3df12 + call GetPartymonItem ld a, [hBattleTurn] and a - jr z, .asm_3ca12 + jr z, .consume_item ld a, [wBattleMode] dec a - jr z, .asm_3ca14 - call Function3df1f + jr z, .skip_consumption + call GetOTPartymonItem -.asm_3ca12 +.consume_item xor a ld [hl], a -.asm_3ca14 +.skip_consumption call GetItemName call SwitchTurnCore call ItemRecoveryAnim @@ -1537,27 +1542,28 @@ Function3c93c: ; 3c93c jp StdBattleTextBox ; 3ca26 -Function3ca26: ; 3ca26 +HandleFutureSight: ; 3ca26 ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3ca38 + jr z, .enemy_first call SetPlayerTurn - call .asm_3ca41 + call .do_it call SetEnemyTurn - jp .asm_3ca41 + jp .do_it -.asm_3ca38 +.enemy_first call SetEnemyTurn - call .asm_3ca41 + call .do_it call SetPlayerTurn -.asm_3ca41 - ld hl, wc71d + +.do_it + ld hl, wPlayerFutureSightCount ld a, [hBattleTurn] and a - jr z, .asm_3ca4c - ld hl, wc71e + jr z, .okay + ld hl, wEnemyFutureSightCount -.asm_3ca4c +.okay ld a, [hl] and a ret z @@ -3402,7 +3408,7 @@ ResetEnemyBattleVars: ; 3d557 dec a ld [wc6e6], a xor a - ld [wc730], a + ld [wPlayerWrapCount], a hlcoord 18, 0 ld a, $8 call Function3d490 @@ -3809,8 +3815,8 @@ endr ld [wEnemyRageCounter], a ld [EnemyDisabledMove], a ld [wc6fa], a - ld [wc730], a - ld [wc731], a + ld [wPlayerWrapCount], a + ld [wEnemyWrapCount], a ld [EnemyTurnsTaken], a ld hl, PlayerSubStatus5 res SUBSTATUS_CANT_RUN, [hl] @@ -3907,7 +3913,7 @@ TryToRunAwayFromBattle: ; 3d8b3 bit SUBSTATUS_CANT_RUN, a jp nz, .cant_escape - ld a, [wc730] + ld a, [wPlayerWrapCount] and a jp nz, .cant_escape @@ -4258,7 +4264,7 @@ SendOutPlayerMon: ; 3db5f call CheckAmuletCoin call Function3ee27 xor a - ld [wc731], a + ld [wEnemyWrapCount], a call SetPlayerTurn xor a ld [wcfca], a @@ -4312,8 +4318,8 @@ endr ld [wPlayerRageCounter], a ld [DisabledMove], a ld [wc6fe], a - ld [wc731], a - ld [wc730], a + ld [wEnemyWrapCount], a + ld [wPlayerWrapCount], a ld [PlayerTurnsTaken], a ld hl, EnemySubStatus5 res SUBSTATUS_CANT_RUN, [hl] @@ -4462,31 +4468,31 @@ Function3dce6: ; 3dce6 ret ; 3dcf9 -Function3dcf9: ; 3dcf9 +HandleHealingItems: ; 3dcf9 ld a, [hLinkPlayerNumber] cp $1 jr z, .player_1 call SetPlayerTurn - call Function3dd2f + call HandleHPHealingItem call UseHeldStatusHealingItem - call Function3de51 + call HandleStatusHealingItem call SetEnemyTurn - call Function3dd2f + call HandleHPHealingItem call UseHeldStatusHealingItem - jp Function3de51 + jp HandleStatusHealingItem .player_1 call SetEnemyTurn - call Function3dd2f + call HandleHPHealingItem call UseHeldStatusHealingItem - call Function3de51 + call HandleStatusHealingItem call SetPlayerTurn - call Function3dd2f + call HandleHPHealingItem call UseHeldStatusHealingItem - jp Function3de51 + jp HandleStatusHealingItem ; 3dd2f -Function3dd2f: ; 3dd2f +HandleHPHealingItem: ; 3dd2f callab GetOpponentItem ld a, b cp $1 @@ -4495,11 +4501,11 @@ Function3dd2f: ; 3dd2f ld hl, EnemyMonMaxHP ld a, [hBattleTurn] and a - jr z, .asm_3dd4a + jr z, .go ld de, BattleMonHP + 1 ld hl, BattleMonMaxHP -.asm_3dd4a +.go push bc ld a, [de] ld [wd1ec], a @@ -4515,17 +4521,17 @@ Function3dd2f: ; 3dd2f cp [hl] ld a, c pop bc - jr z, .asm_3dd62 - jr c, .asm_3dd66 + jr z, .equal + jr c, .less ret -.asm_3dd62 +.equal inc hl cp [hl] dec hl ret nc -.asm_3dd66 +.less call ItemRecoveryAnim ld a, [hli] ld [Buffer2], a @@ -4544,13 +4550,13 @@ Function3dd2f: ; 3dd2f cp c ld a, [hl] sbc b - jr nc, .asm_3dd8d + jr nc, .okay ld a, [hli] ld [wd1ef], a ld a, [hl] ld [wd1ee], a -.asm_3dd8d +.okay ld a, [wd1ef] ld [de], a inc de @@ -4560,10 +4566,10 @@ Function3dd2f: ; 3dd2f ld [wd10a], a and a hlcoord 2, 2 - jr z, .asm_3dda4 + jr z, .got_hp_bar_coords hlcoord 10, 9 -.asm_3dda4 +.got_hp_bar_coords ld [wd10a], a predef AnimateHPBar UseOpponentItem: @@ -4627,7 +4633,7 @@ UseHeldStatusHealingItem: ; 3dde9 and [hl] res SUBSTATUS_NIGHTMARE, [hl] ld a, b - cp 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR + cp ALL_STATUS jr nz, .skip_confuse ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVarAddr @@ -4658,12 +4664,12 @@ UseHeldStatusHealingItem: ; 3dde9 db HELD_HEAL_BURN, 1 << BRN db HELD_HEAL_SLEEP, SLP db HELD_HEAL_PARALYZE, 1 << PAR - db HELD_HEAL_STATUS, 1 << PSN | 1 << FRZ | 1 << BRN | SLP | 1 << PAR + db HELD_HEAL_STATUS, ALL_STATUS db $ff ; 3de51 -Function3de51: ; 3de51 +HandleStatusHealingItem: ; 3de51 ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVar bit SUBSTATUS_CONFUSED, a @@ -4671,11 +4677,11 @@ Function3de51: ; 3de51 callab GetOpponentItem ld a, b cp HELD_HEAL_CONFUSION - jr z, .asm_3de67 + jr z, .heal_status cp HELD_HEAL_STATUS ret nz -.asm_3de67 +.heal_status ld a, [hl] ld [wd265], a ld a, BATTLE_VARS_SUBSTATUS3_OPP @@ -4687,8 +4693,8 @@ Function3de51: ; 3de51 call StdBattleTextBox ld a, [hBattleTurn] and a - jr nz, .asm_3de90 - call Function3df1f + jr nz, .do_partymon + call GetOTPartymonItem xor a ld [bc], a ld a, [wBattleMode] @@ -4697,36 +4703,37 @@ Function3de51: ; 3de51 ld [hl], $0 ret -.asm_3de90 - call Function3df12 +.do_partymon + call GetPartymonItem xor a ld [bc], a ld [hl], a ret ; 3de97 -Function3de97: ; 3de97 +HandleStatBoostingHeldItems: ; 3de97 +; The effects handled here are not used in-game. ld a, [hLinkPlayerNumber] cp $1 jr z, .player_1 - call Function3dea9 - jp Function3deb1 + call .DoEnemy + jp .DoPlayer .player_1 - call Function3deb1 - jp Function3dea9 + call .DoPlayer + jp .DoEnemy ; 3dea9 -Function3dea9: ; 3dea9 - call Function3df12 +.DoEnemy: ; 3dea9 + call GetPartymonItem ld a, $0 - jp Function3deb6 + jp .HandleItem ; 3deb1 -Function3deb1: ; 3deb1 - call Function3df1f +.DoPlayer: ; 3deb1 + call GetOTPartymonItem ld a, $1 -Function3deb6: ; 3deb6 +.HandleItem: ; 3deb6 ld [hBattleTurn], a ld d, h ld e, l @@ -4735,16 +4742,16 @@ Function3deb6: ; 3deb6 ld a, [bc] ld b, a callab GetItem - ld hl, .data_3defc -.asm_3dec7 + ld hl, .StatUpItems +.loop ld a, [hli] cp $ff - jr z, .asm_3def9 + jr z, .finish rept 2 inc hl endr cp b - jr nz, .asm_3dec7 + jr nz, .loop pop bc ld a, [bc] ld [wd265], a @@ -4771,13 +4778,13 @@ endr callab BattleCommand_StatUpMessage ret -.asm_3def9 +.finish pop bc pop de ret ; 3defc -.data_3defc +.StatUpItems dbw HELD_ATTACK_UP, BattleCommand_AttackUp dbw HELD_DEFENSE_UP, BattleCommand_DefenseUp dbw HELD_SPEED_UP, BattleCommand_SpeedUp @@ -4789,7 +4796,7 @@ endr ; 3df12 -Function3df12: ; 3df12 +GetPartymonItem: ; 3df12 ld hl, PartyMon1Item ld a, [CurBattleMon] call GetPartyLocation @@ -4797,7 +4804,7 @@ Function3df12: ; 3df12 ret ; 3df1f -Function3df1f: ; 3df1f +GetOTPartymonItem: ; 3df1f ld hl, OTPartyMon1Item ld a, [CurOTMon] call GetPartyLocation @@ -4805,7 +4812,7 @@ Function3df1f: ; 3df1f ret ; 3df2c -Function3df2c: ; 3df2c +UpdateBattleHUDs: ; 3df2c push hl push de push bc @@ -5298,7 +5305,7 @@ Function3e234: ; 3e234 ld a, $1 ld [MenuSelection2], a call ExitMenu - call Function3df2c + call UpdateBattleHUDs call WaitBGMap call LoadTileMapToTempTileMap call ResetTextRelatedRAM @@ -5421,7 +5428,7 @@ Function3e358: ; 3e358 jp Function3e299 .asm_3e36b - ld a, [wc730] + ld a, [wPlayerWrapCount] and a jr nz, .asm_3e378 ld a, [EnemySubStatus5] diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index a9f32942f..e93284c72 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -7247,13 +7247,13 @@ BattleCommand_TrapTarget: ; 36c2d ld a, [AttackMissed] and a ret nz - ld hl, wc731 - ld de, wc72f + ld hl, wEnemyWrapCount + ld de, wEnemyTrappingMove ld a, [hBattleTurn] and a jr z, .asm_36c43 - ld hl, wc730 - ld de, wc72e + ld hl, wPlayerWrapCount + ld de, wPlayerTrappingMove .asm_36c43 ld a, [hl] @@ -7494,7 +7494,7 @@ endr cp HELD_HEAL_CONFUSION ret nz .asm_36db0 - ld hl, Function3de51 + ld hl, HandleStatusHealingItem jp CallBattleCore ; 36db6 @@ -7674,13 +7674,13 @@ endr call GetBattleVarAddr set SUBSTATUS_SUBSTITUTE, [hl] - ld hl, wc730 - ld de, wc72e + ld hl, wPlayerWrapCount + ld de, wPlayerTrappingMove ld a, [hBattleTurn] and a jr z, .player - ld hl, wc731 - ld de, wc72f + ld hl, wEnemyWrapCount + ld de, wEnemyTrappingMove .player xor a @@ -9077,8 +9077,8 @@ ResetBatonPassStatus: ; 37ab1 ld [hl], 0 xor a - ld [wc730], a - ld [wc731], a + ld [wPlayerWrapCount], a + ld [wEnemyWrapCount], a ret ; 37ae9 @@ -9181,12 +9181,12 @@ BattleCommand_ClearHazards: ; 37b39 .asm_37b4a ld hl, PlayerScreens - ld de, wc730 + ld de, wPlayerWrapCount ld a, [hBattleTurn] and a jr z, .asm_37b5b ; 37b53 $6 ld hl, EnemyScreens - ld de, wc731 + ld de, wEnemyWrapCount .asm_37b5b bit SCREENS_SPIKES, [hl] jr z, .asm_37b69 ; 37b5d $a @@ -9526,12 +9526,12 @@ BattleCommand_SkipSunCharge: ; 37d02 BattleCommand_CheckFutureSight: ; 37d0d ; checkfuturesight - ld hl, wc71d + ld hl, wPlayerFutureSightCount ld de, wc727 ld a, [hBattleTurn] and a jr z, .ok - ld hl, wc71e + ld hl, wEnemyFutureSightCount ld de, wc729 .ok @@ -9566,11 +9566,11 @@ BattleCommand_FutureSight: ; 37d34 call GetBattleVarAddr ld [hl], b .asm_37d4b - ld hl, wc71d + ld hl, wPlayerFutureSightCount ld a, [hBattleTurn] and a jr z, .asm_37d56 ; 37d51 $3 - ld hl, wc71e + ld hl, wEnemyFutureSightCount .asm_37d56 ld a, [hl] and a diff --git a/constants/battle_constants.asm b/constants/battle_constants.asm index 99cc04d4d..804f223cb 100644 --- a/constants/battle_constants.asm +++ b/constants/battle_constants.asm @@ -98,6 +98,8 @@ const_value SET 3 const PAR const SLP ; 7 turns +ALL_STATUS EQU (1 << PSN) + (1 << BRN) + (1 << FRZ) + (1 << PAR) + SLP + ; substatus enum_start 7, -1 enum SUBSTATUS_IN_LOVE diff --git a/constants/sprite_constants.asm b/constants/sprite_constants.asm index 209fbf59c..a017d41b0 100644 --- a/constants/sprite_constants.asm +++ b/constants/sprite_constants.asm @@ -219,7 +219,7 @@ NUM_SPRITEHEADER_FIELDS EQU const_value const SPRITEMOVEDATA_SUDOWOODO const SPRITEMOVEDATA_SMASHABLE_ROCK const SPRITEMOVEDATA_STRENGTH_BOULDER - const SPRITEMOVEDATA_1A + const SPRITEMOVEDATA_FOLLOWNOTEXACT const SPRITEMOVEDATA_1B const SPRITEMOVEDATA_1C const SPRITEMOVEDATA_1D @@ -254,7 +254,7 @@ SPRITEMOVEDATA_FIELDS EQU 6 const SPRITEMOVEFN_FOLLOW const SPRITEMOVEFN_SCRIPTED const SPRITEMOVEFN_STRENGTH - const SPRITEMOVEFN_12 + const SPRITEMOVEFN_FOLLOWNOTEXACT const SPRITEMOVEFN_13 const SPRITEMOVEFN_14 const SPRITEMOVEFN_BIG_SNORLAX diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 8c8fcb3c5..7addafd23 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -29,7 +29,7 @@ SpriteMovementData:: ; 4273 db SPRITEMOVEFN_STANDING, DOWN, $01, $0c, $00, $00 ; 17 db SPRITEMOVEFN_STANDING, DOWN, $01, $2e, $10, $00 ; 18 db SPRITEMOVEFN_STRENGTH, DOWN, $01, $2e, $00, $40 ; 19 - db SPRITEMOVEFN_12, DOWN, $01, $02, $00, $00 ; 1a + db SPRITEMOVEFN_FOLLOWNOTEXACT, DOWN, $01, $02, $00, $00 ; 1a db SPRITEMOVEFN_13, DOWN, $00, $8e, $01, $00 ; 1b db SPRITEMOVEFN_14, DOWN, $08, $8e, $02, $00 ; 1c db SPRITEMOVEFN_17, DOWN, $00, $82, $00, $00 ; 1d @@ -963,7 +963,7 @@ Function47dd: ; 47dd dw .Follow ; 0f dw .Script ; 10 dw .Strength ; 11 - dw .Movement12 ; 12 + dw .FollowNotExact ; 12 dw .Movement13 ; 13 dw .Movement14 ; 14 dw .MovementBigStanding ; 15 @@ -1145,7 +1145,7 @@ Function47dd: ; 47dd ret ; 48ff -.Movement12: ; 48ff +.FollowNotExact: ; 48ff ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] diff --git a/engine/phone_scripts.asm b/engine/phone_scripts.asm index 5d8afd028..33541e224 100644 --- a/engine/phone_scripts.asm +++ b/engine/phone_scripts.asm @@ -3154,38 +3154,3 @@ String_be657: db "Dad@" String_be65b: db "Sister@" String_be662: db "Brother@" - -TalkToTrainerScript:: ; 0xbe66a - faceplayer - trainerstatus $2 - iftrue AlreadyBeatenTrainerScript - loadtrainerdata - playrammusic - jump StartBattleWithMapTrainerScript -; 0xbe675 - -SeenByTrainerScript:: ; 0xbe675 - loadtrainerdata - playrammusic - showemote EMOTE_SHOCK, LAST_TALKED, 30 - callasm Function831e - applymovement2 MovementBuffer - writepersonxy LAST_TALKED - faceperson PLAYER, LAST_TALKED - jump StartBattleWithMapTrainerScript -; 0xbe68a - -StartBattleWithMapTrainerScript: ; 0xbe68a - loadfont - trainertext $0 - closetext - loadmovesprites - loadtrainerdata - startbattle - returnafterbattle - trainerstatus 1 - loadvar wd04d, -1 - -AlreadyBeatenTrainerScript: - scripttalkafter -; 0xbe699 diff --git a/engine/scripting.asm b/engine/scripting.asm index 360360f79..296f69ecd 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1360,7 +1360,7 @@ Script_writepersonxy: ; 0x9735b ld a, [hLastTalked] .ok ld b, a - callba Function80a1 + callba WritePersonXY ret ; 0x9736f @@ -1376,7 +1376,7 @@ Script_follownotexact: ; 0x9736f call GetScriptByte call GetScriptPerson ld c, a - callba Function839e + callba FollowNotExact ret ; 0x97384 @@ -1546,7 +1546,7 @@ Script_catchtutorial: ; 0x97447 call GetScriptByte ld [BattleType], a call BufferScreen - callba Function4e554 + callba CatchTutorial jp Script_reloadmap ; 0x97459 diff --git a/items/item_effects.asm b/items/item_effects.asm index 0024e3f50..0c1fcc8ac 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -724,7 +724,7 @@ endr jp TossItem .used_park_ball - ld hl, wdc79 + ld hl, wParkBallsRemaining dec [hl] ret ; ec0a diff --git a/main.asm b/main.asm index d1eaf8ccd..7334dbb15 100644 --- a/main.asm +++ b/main.asm @@ -3267,10 +3267,11 @@ PlayerSpawn_ConvertCoords: ; 808f ; 80a1 -Function80a1:: ; 80a1 +WritePersonXY:: ; 80a1 ld a, b call CheckObjectVisibility ret c + ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] @@ -3685,7 +3686,7 @@ Function830d: ; 830d ret ; 831e -Function831e: ; 831e +TrainerWalkToPlayer: ; 831e ld a, [hLastTalked] call Function1b1e ld a, $3e @@ -3770,7 +3771,7 @@ Function8388: ; 8388 ; 839e -Function839e:: ; 839e +FollowNotExact:: ; 839e push bc ld a, c call CheckObjectVisibility @@ -3778,9 +3779,12 @@ Function839e:: ; 839e ld e, c pop bc ret c + ld a, b call CheckObjectVisibility ret c + +; Person 2 is now in bc, person 1 is now in de ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] @@ -3788,33 +3792,34 @@ Function839e:: ; 839e add hl, bc ld c, [hl] ld b, a + ld hl, OBJECT_MAP_X add hl, de ld a, [hl] cp b - jr z, .asm_83c7 - jr c, .asm_83c4 + jr z, .same_x + jr c, .to_the_left inc b - jr .asm_83d5 + jr .continue -.asm_83c4 +.to_the_left dec b - jr .asm_83d5 + jr .continue -.asm_83c7 +.same_x ld hl, OBJECT_MAP_Y add hl, de ld a, [hl] cp c - jr z, .asm_83d5 - jr c, .asm_83d4 + jr z, .continue + jr c, .below inc c - jr .asm_83d5 + jr .continue -.asm_83d4 +.below dec c -.asm_83d5 +.continue ld hl, OBJECT_MAP_X add hl, de ld [hl], b @@ -3847,7 +3852,7 @@ Function839e:: ; 839e ld [hl], a ld hl, OBJECT_MOVEMENTTYPE add hl, de - ld [hl], SPRITEMOVEDATA_1A + ld [hl], SPRITEMOVEDATA_FOLLOWNOTEXACT ld hl, OBJECT_09 add hl, de ld [hl], $0 @@ -9760,7 +9765,7 @@ Functione41c: ; e41c (3:641c) ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] ld hl, UnknownText_0xe43a call PrintText pop af @@ -10477,7 +10482,7 @@ Function116c1: ; 116c1 ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] ld a, [hMapAnims] push af xor a @@ -13919,7 +13924,7 @@ Function12f5b: ; 12f5b ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] call LoadFontsBattleExtra call Function12f73 pop bc @@ -13983,7 +13988,7 @@ ManagePokemonMoves: ; 12fba ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] call MoveScreenLoop pop af ld [Options], a @@ -14781,10 +14786,10 @@ Elevator_GetCurrentFloorText: ; 13512 ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] hlcoord 0, 0 - ld b, $4 - ld c, $8 + ld b, 4 + ld c, 8 call TextBox hlcoord 1, 2 ld de, Elevator_CurrentFloorText @@ -14916,7 +14921,7 @@ Special_GiveParkBalls: ; 135db xor a ld [wContestMon], a ld a, 20 - ld [wdc79], a + ld [wParkBallsRemaining], a callba StartBugContestTimer ret ; 135eb @@ -14926,7 +14931,7 @@ BugCatchingContestBattleScript:: ; 0x135eb battlecheck startbattle returnafterbattle - copybytetovar wdc79 + copybytetovar wParkBallsRemaining iffalse BugCatchingContestOutOfBallsScript end ; 0x135f8 @@ -16605,7 +16610,7 @@ LOG_OFF EQU 6 PC_DisplayTextWaitMenu: ; 157bb ld a, [Options] push af - set 4, a + set NO_TEXT_SCROLL, a ld [Options], a call MenuTextBox pop af @@ -18989,7 +18994,7 @@ Function16be4: ; 16be4 ld [hInMenu], a ld a, [Options] push af - set 4, a + set NO_TEXT_SCROLL, a ld [Options], a call WhiteBGMap call ClearTileMap @@ -20310,7 +20315,7 @@ Function20021: ; 20021 (8:4021) ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] call LoadPartyMenuDataHeader call ClearTileMap ld hl, UnknownText_0x2004c @@ -20978,7 +20983,7 @@ Function245f1: ; 245f1 ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] call Function247f0 call Function2488b call Function248b8 @@ -21868,26 +21873,27 @@ ShowMoney_TerminatorString: ; 24b8e ; 24b8f Function24b8f: ; 24b8f +; unreferenced, related to safari? ld hl, Options ld a, [hl] push af - set 4, [hl] + set NO_TEXT_SCROLL, [hl] hlcoord 0, 0 - ld b, $3 - ld c, $7 + ld b, 3 + ld c, 7 call TextBox hlcoord 1, 1 - ld de, wdc7a + ld de, wSafariTimeRemaining lb bc, 2, 3 call PrintNum hlcoord 4, 1 - ld de, String24bcf + ld de, .slash_500 call PlaceString hlcoord 1, 3 - ld de, String24bd4 + ld de, .booru_ko call PlaceString hlcoord 5, 3 - ld de, wdc79 + ld de, wSafariBallsRemaining lb bc, 1, 2 call PrintNum pop af @@ -21895,9 +21901,9 @@ Function24b8f: ; 24b8f ret ; 24bcf -String24bcf: ; 24bcf +.slash_500: ; 24bcf db "/500@" -String24bd4: ; 24bd4 +.booru_ko: ; 24bd4 db "ボール こ@" ; 24bdc @@ -21919,7 +21925,7 @@ Function24be7: ; 24be7 ld de, String24c52 call PlaceString hlcoord 8, 5 - ld de, wdc79 + ld de, wSafariBallsRemaining lb bc, PRINTNUM_RIGHTALIGN | 1, 2 call PrintNum hlcoord 1, 1 @@ -22459,7 +22465,7 @@ Strings24f5f: ; 24f5f Function24f7c: ; 24f7c hlcoord 17, 13 - ld de, wdc79 + ld de, wSafariBallsRemaining lb bc, PRINTNUM_LEADINGZEROS | 1, 2 call PrintNum ret @@ -22484,14 +22490,14 @@ MenuData_0x24f91: ; 24f91 Strings24f9a: ; 24f9a db "FIGHT@" - db $4a, "@" + db "", "@" db "PARKBALL× @" db "RUN@" ; 24fb2 Function24fb2: ; 24fb2 hlcoord 13, 16 - ld de, wdc79 + ld de, wParkBallsRemaining lb bc, PRINTNUM_LEADINGZEROS | 1, 2 call PrintNum ret @@ -27020,16 +27026,16 @@ Function28b87: ; 28b87 ld a, [wd003] call GetPartyLocation ld a, [hli] - ld [wc731], a + ld [wEnemyWrapCount], a ld a, [hl] ld [wPlayerCharging], a ld hl, OTPartyMon1DVs ld a, [wd003] call GetPartyLocation ld a, [hli] - ld [wc72f], a + ld [wEnemyTrappingMove], a ld a, [hl] - ld [wc730], a + ld [wPlayerWrapCount], a ld a, [wd003] ld hl, OTPartyMon1Species call GetPartyLocation @@ -27400,7 +27406,7 @@ Function28fdb: ; 28fdb ld de, VTiles0 call Function29491 ld a, [wc702] - ld hl, wc72f + ld hl, wEnemyTrappingMove ld de, VTiles0 tile $31 call Function29491 ld a, [wc6d0] @@ -28011,9 +28017,9 @@ Function29461: ; 29461 call Function29549 ld a, [wc702] ld [CurPartySpecies], a - ld a, [wc72f] + ld a, [wEnemyTrappingMove] ld [TempMonDVs], a - ld a, [wc730] + ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a ld b, $1a call GetSGBLayout @@ -28153,7 +28159,7 @@ Function29549: ; 29549 ld a, [wEnemyCharging] ld de, wc724 call Function295f6 - ld de, wc731 + ld de, wEnemyWrapCount call Function29611 call Function295d8 ret @@ -41188,7 +41194,7 @@ FlagPredef: ; 4d7c1 Function4d7fd: ; 4d7fd ld a, [wc702] - ld hl, wc72f + ld hl, wEnemyTrappingMove ld de, VTiles2 push de push af @@ -41209,9 +41215,9 @@ Function4d81e: ; 4d81e callba Function29549 ld a, [wc702] ld [CurPartySpecies], a - ld a, [wc72f] + ld a, [wEnemyTrappingMove] ld [TempMonDVs], a - ld a, [wc730] + ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a ld b, $1a call GetSGBLayout @@ -43043,11 +43049,11 @@ CheckFaintedFrzSlp: ; 4e53f ; 4e554 -Function4e554:: ; 4e554 +CatchTutorial:: ; 4e554 ld a, [BattleType] dec a ld c, a - ld hl, Jumptable_4e564 + ld hl, .jumptable ld b, 0 rept 2 add hl, bc @@ -43058,23 +43064,24 @@ endr jp [hl] ; 4e564 -Jumptable_4e564: ; 4e564 (13:6564) - dw Function4e56a - dw Function4e56a - dw Function4e56a +.jumptable: ; 4e564 (13:6564) + dw .DudeTutorial + dw .DudeTutorial + dw .DudeTutorial -Function4e56a: ; 4e56a (13:656a) +.DudeTutorial: ; 4e56a (13:656a) +; Back up your name to your Mom's name. ld hl, PlayerName ld de, MomsName ld bc, NAME_LENGTH call CopyBytes - - ld hl, DudeString +; Copy Dude's name to your name + ld hl, .Dude ld de, PlayerName ld bc, NAME_LENGTH call CopyBytes - call Function4e5b7 + call .LoadDudeData xor a ld [hJoyDown], a @@ -43084,8 +43091,8 @@ Function4e56a: ; 4e56a (13:656a) and $f8 add $3 ld [Options], a - ld hl, AutoInput_4e5df - ld a, BANK(AutoInput_4e5df) + ld hl, .AutoInput + ld a, BANK(.AutoInput) call StartAutoInput callab StartBattle call StopAutoInput @@ -43098,13 +43105,13 @@ Function4e56a: ; 4e56a (13:656a) call CopyBytes ret -Function4e5b7: ; 4e5b7 (13:65b7) +.LoadDudeData: ; 4e5b7 (13:65b7) ld hl, OTPartyMon1 - ld [hl], $1 + ld [hl], BULBASAUR inc hl - ld [hl], $12 + ld [hl], POTION inc hl - ld [hl], $1 + ld [hl], POUND inc hl ld [hl], $ff ld hl, OTPartyMon1Exp + 2 @@ -43122,474 +43129,17 @@ endr ret ; 4e5da (13:65da) -DudeString: ; 4e5da +.Dude: ; 4e5da db "DUDE@" ; 4e5df -AutoInput_4e5df: ; 4e5df +.AutoInput: ; 4e5df db NO_INPUT, $ff ; end ; 4e5e1 +INCLUDE "engine/evolution_animation.asm" -EvolutionAnimation: ; 4e5e1 - push hl - push de - push bc - ld a, [CurSpecies] - push af - ld a, [rOBP0] - push af - ld a, [BaseDexNo] - push af - - call _EvolutionAnimation - - pop af - ld [BaseDexNo], a - pop af - ld [rOBP0], a - pop af - ld [CurSpecies], a - pop bc - pop de - pop hl - - ld a, [wd1ed] - and a - ret z - - scf - ret -; 4e607 - -_EvolutionAnimation: ; 4e607 - ld a, $e4 - ld [rOBP0], a - - ld de, MUSIC_NONE - call PlayMusic - - callba Function8cf53 - - ld de, EvolutionGFX - ld hl, VTiles0 - lb bc, BANK(EvolutionGFX), 8 - call Request2bpp - - xor a - ld [Danger], a - call WaitBGMap - xor a - ld [hBGMapMode], a - ld a, [Buffer1] - ld [PlayerHPPal], a - - ld c, $0 - call Function4e703 - ld a, [Buffer1] - ld [CurPartySpecies], a - ld [CurSpecies], a - call Function4e708 - - ld de, VTiles2 - ld hl, VTiles2 tile $31 - ld bc, $31 - call Request2bpp - - ld a, $31 - ld [wd1ec], a - call Function4e755 - ld a, [Buffer2] - ld [CurPartySpecies], a - ld [CurSpecies], a - call Function4e711 - ld a, [Buffer1] - ld [CurPartySpecies], a - ld [CurSpecies], a - - ld a, $1 - ld [hBGMapMode], a - call Function4e794 - jr c, .asm_4e67c - - ld a, [Buffer1] - call PlayCry - -.asm_4e67c - ld de, MUSIC_EVOLUTION - call PlayMusic - - ld c, 80 - call DelayFrames - - ld c, $1 - call Function4e703 - call Function4e726 - jr c, .asm_4e6df - - ld a, $cf - ld [wd1ec], a - - call Function4e755 - xor a - ld [wd1ed], a - - ld a, [Buffer2] - ld [PlayerHPPal], a - - ld c, $0 - call Function4e703 - call Function4e7a6 - callba Function8cf53 - call Function4e794 - jr c, .asm_4e6de - - ld a, [wc2c6] - push af - ld a, $1 - ld [wc2c6], a - ld a, [CurPartySpecies] - push af - - ld a, [PlayerHPPal] - ld [CurPartySpecies], a - hlcoord 7, 2 - ld d, $0 - ld e, ANIM_MON_EVOLVE - predef AnimateFrontpic - - pop af - ld [CurPartySpecies], a - pop af - ld [wc2c6], a - ret - -.asm_4e6de - ret - -.asm_4e6df - ld a, $1 - ld [wd1ed], a - - ld a, [Buffer1] - ld [PlayerHPPal], a - - ld c, $0 - call Function4e703 - call Function4e7a6 - callba Function8cf53 - call Function4e794 - ret c - - ld a, [PlayerHPPal] - call PlayCry - ret -; 4e703 - -Function4e703: ; 4e703 - ld b, $b - jp GetSGBLayout -; 4e708 - -Function4e708: ; 4e708 - call GetBaseData - hlcoord 7, 2 - jp Function3786 -; 4e711 - -Function4e711: ; 4e711 - call GetBaseData - ld a, $1 - ld [wc2c6], a - ld de, VTiles2 - predef Function5108b - xor a - ld [wc2c6], a - ret -; 4e726 - -Function4e726: ; 4e726 - call ClearJoypad - lb bc, 1, 14 -.asm_4e72c - push bc - call Function4e779 - pop bc - jr c, .asm_4e73f - push bc - call Function4e741 - pop bc - inc b -rept 2 - dec c -endr - jr nz, .asm_4e72c - and a - ret - -.asm_4e73f - scf - ret -; 4e741 - -Function4e741: ; 4e741 -.asm_4e741 - ld a, $cf - ld [wd1ec], a - call Function4e755 - ld a, $31 - ld [wd1ec], a - call Function4e755 - dec b - jr nz, .asm_4e741 - ret -; 4e755 - -Function4e755: ; 4e755 - push bc - xor a - ld [hBGMapMode], a - hlcoord 7, 2 - lb bc, 7, 7 - ld de, $d -.asm_4e762 - push bc -.asm_4e763 - ld a, [wd1ec] - add [hl] - ld [hli], a - dec c - jr nz, .asm_4e763 - pop bc - add hl, de - dec b - jr nz, .asm_4e762 - ld a, $1 - ld [hBGMapMode], a - call WaitBGMap - pop bc - ret -; 4e779 - -Function4e779: ; 4e779 -.asm_4e779 - call DelayFrame - push bc - call JoyTextDelay - ld a, [hJoyDown] - pop bc - and B_BUTTON - jr nz, .asm_4e78c -.asm_4e787 - dec c - jr nz, .asm_4e779 - and a - ret - -.asm_4e78c - ld a, [wd1e9] - and a - jr nz, .asm_4e787 - scf - ret -; 4e794 - -Function4e794: ; 4e794 - ld a, [CurPartyMon] - ld hl, PartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba CheckFaintedFrzSlp - ret -; 4e7a6 - -Function4e7a6: ; 4e7a6 - ld a, [wd1ed] - and a - ret nz - ld de, SFX_EVOLVED - call PlaySFX - ld hl, wJumptableIndex - ld a, [hl] - push af - ld [hl], $0 -.asm_4e7b8 - call Function4e7cf - jr nc, .asm_4e7c2 - call Function4e80c - jr .asm_4e7b8 - -.asm_4e7c2 - ld c, $20 -.asm_4e7c4 - call Function4e80c - dec c - jr nz, .asm_4e7c4 - pop af - ld [wJumptableIndex], a - ret -; 4e7cf - -Function4e7cf: ; 4e7cf - ld hl, wJumptableIndex - ld a, [hl] - cp $20 - ret nc - ld d, a - inc [hl] - and $1 - jr nz, .asm_4e7e6 - ld e, $0 - call Function4e7e8 - ld e, $10 - call Function4e7e8 - -.asm_4e7e6 - scf - ret -; 4e7e8 - -Function4e7e8: ; 4e7e8 - push de - ld de, $4858 - ld a, $13 - call Function3b2a - ld hl, $b - add hl, bc - ld a, [wJumptableIndex] - and $e - sla a - pop de - add e - ld [hl], a - ld hl, $3 - add hl, bc - ld [hl], $0 - ld hl, $c - add hl, bc - ld [hl], $10 - ret -; 4e80c - -Function4e80c: ; 4e80c - push bc - callab Function8cf69 - ld a, [$ff9b] - and $e - srl a -rept 2 - inc a -endr - and $7 - ld b, a - ld hl, Sprites + 3 - ld c, $28 -.asm_4e823 - ld a, [hl] - or b - ld [hli], a -rept 3 - inc hl -endr - dec c - jr nz, .asm_4e823 - pop bc - call DelayFrame - ret -; 4e831 - - -EvolutionGFX: -INCBIN "gfx/evo/bubble_large.2bpp" -INCBIN "gfx/evo/bubble.2bpp" - -Function4e881: ; 4e881 - call WhiteBGMap - call ClearTileMap - call ClearSprites - call DisableLCD - call LoadStandardFont - call LoadFontsBattleExtra - ld hl, VBGMap0 - ld bc, VBGMap1 - VBGMap0 - ld a, " " - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - xor a - ld [hSCY], a - ld [hSCX], a - call EnableLCD - ld hl, UnknownText_0x4e8bd - call PrintText - call Function3200 - call SetPalettes - ret -; 4e8bd - -UnknownText_0x4e8bd: ; 0x4e8bd - ; SAVING RECORD… DON'T TURN OFF! - text_jump UnknownText_0x1bd39e - db "@" -; 0x4e8c2 - - -Function4e8c2: ; 4e8c2 - call WhiteBGMap - call ClearTileMap - call ClearSprites - call DisableLCD - call LoadStandardFont - call LoadFontsBattleExtra - ld hl, VBGMap0 - ld bc, VBGMap1 - VBGMap0 - ld a, " " - call ByteFill - hlcoord 0, 0, AttrMap - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - ld hl, wd000 - ld c, $40 -.asm_4e8ee - ld a, -1 - ld [hli], a - ld a, " " - ld [hli], a - dec c - jr nz, .asm_4e8ee - xor a - ld [hSCY], a - ld [hSCX], a - call EnableLCD - call Function3200 - call SetPalettes - ret -; 4e906 - -Function4e906: ; 4e906 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld hl, w6_d000 - ld bc, w6_d400 - w6_d000 - ld a, " " - call ByteFill - ld hl, VBGMap0 - ld de, w6_d000 - ld b, $0 - ld c, $40 - call Request2bpp - pop af - ld [rSVBK], a - ret -; 4e929 - -Function4e929: ; 4e929 +Function4e929: ; mobile function ld h, b ld l, c call Function4e930 @@ -43601,35 +43151,35 @@ Function4e930: ; 4e930 ld a, [hli] xor [hl] ld c, a - jr z, .asm_4e941 + jr z, .skip_male_trainers srl c srl c -.asm_4e939 +.male_trainer_loop srl c ld a, c cp MaleTrainersEnd - MaleTrainers - 1 - jr nc, .asm_4e939 + jr nc, .male_trainer_loop inc c -.asm_4e941 +.skip_male_trainers ld a, [de] cp $1 ld hl, MaleTrainers - jr nz, .asm_4e958 + jr nz, .finished ld hl, FemaleTrainers ld a, c and a - jr z, .asm_4e958 + jr z, .finished -.asm_4e950 +.female_trainer_loop srl c ld a, c cp FemaleTrainersEnd - FemaleTrainers - 1 - jr nc, .asm_4e950 + jr nc, .female_trainer_loop inc c -.asm_4e958 +.finished ld b, $0 add hl, bc ld a, [hl] @@ -64133,6 +63683,42 @@ INCLUDE "engine/std_scripts.asm" INCLUDE "engine/phone_scripts.asm" +TalkToTrainerScript:: ; 0xbe66a + faceplayer + trainerstatus CHECK_FLAG + iftrue AlreadyBeatenTrainerScript + loadtrainerdata + playrammusic + jump StartBattleWithMapTrainerScript +; 0xbe675 + +SeenByTrainerScript:: ; 0xbe675 + loadtrainerdata + playrammusic + showemote EMOTE_SHOCK, LAST_TALKED, 30 + callasm TrainerWalkToPlayer + applymovement2 MovementBuffer + writepersonxy LAST_TALKED + faceperson PLAYER, LAST_TALKED + jump StartBattleWithMapTrainerScript +; 0xbe68a + +StartBattleWithMapTrainerScript: ; 0xbe68a + loadfont + trainertext $0 + closetext + loadmovesprites + loadtrainerdata + startbattle + returnafterbattle + trainerstatus SET_FLAG + loadvar wd04d, -1 + +AlreadyBeatenTrainerScript: + scripttalkafter +; 0xbe699 + + SECTION "bank30", ROMX, BANK[$30] @@ -74748,13 +74334,13 @@ Functionfcc63: ; fcc63 ld e, TRADE_DVS call GetTradeAttribute - ld de, wc72f + ld de, wEnemyTrappingMove call Functionfce0f ld hl, PartyMon1DVs ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdde - ld hl, wc72f + ld hl, wEnemyTrappingMove call Functionfce0f ld e, TRADE_OT_ID @@ -74765,7 +74351,7 @@ Functionfcc63: ; fcc63 ld hl, PartyMon1ID ld bc, PARTYMON_STRUCT_LENGTH call Functionfcdde - ld hl, wc731 + ld hl, wEnemyWrapCount call Functionfce0f ld e, TRADE_ITEM diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 851b6d2c6..e7b73aa36 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -6382,7 +6382,7 @@ Function102a3b: ; 102a3b ld hl, OTPartyMon1ID call GetPartyLocation ld a, [hli] - ld [wc731], a + ld [wEnemyWrapCount], a ld a, [hl] ld [wPlayerCharging], a ld a, [wcd4d] @@ -6390,9 +6390,9 @@ Function102a3b: ; 102a3b ld hl, OTPartyMon1DVs call GetPartyLocation ld a, [hli] - ld [wc72f], a + ld [wEnemyTrappingMove], a ld a, [hl] - ld [wc730], a + ld [wPlayerWrapCount], a ld a, [wcd4d] dec a ld hl, OTPartyMon1Species diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index fcd99e927..72a8f9e8c 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -170,7 +170,7 @@ Function1080b7: ; 1080b7 ld de, VTiles0 tile $30 call Function1081e9 ld a, [wc702] - ld hl, wc72f + ld hl, wEnemyTrappingMove ld de, VTiles2 tile $31 call Function1081e9 ld a, [$c6d0] @@ -515,7 +515,7 @@ Function10839b: ; 10839b call Function1081ca ld a, [wc702] ld [CurPartySpecies], a - ld hl, wc72f + ld hl, wEnemyTrappingMove ld de, VTiles2 call Function108201 call EnableLCD @@ -548,9 +548,9 @@ Function10839b: ; 10839b ld [hWY], a ld a, [wc702] ld [CurPartySpecies], a - ld a, [wc72f] + ld a, [wEnemyTrappingMove] ld [TempMonDVs], a - ld a, [wc730] + ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a ld b, $1a call GetSGBLayout @@ -650,7 +650,7 @@ Function1084d7: ; 1084d7 call Function1081ca ld a, [wc702] ld [CurPartySpecies], a - ld hl, wc72f + ld hl, wEnemyTrappingMove ld de, VTiles2 call Function108201 call EnableLCD @@ -692,16 +692,16 @@ Function1084d7: ; 1084d7 ld [hWY], a ld a, [wc702] ld [CurPartySpecies], a - ld a, [wc72f] + ld a, [wEnemyTrappingMove] ld [TempMonDVs], a - ld a, [wc730] + ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a ld b, $1a call GetSGBLayout ld a, $e4 call DmgToCgbBGPals ld a, [wc702] - ld hl, wc72f + ld hl, wEnemyTrappingMove call Function10898a ld a, [wc702] call Function108229 @@ -719,7 +719,7 @@ Function108589: ; 108589 call Function1081ca ld a, [wc702] ld [CurPartySpecies], a - ld hl, wc72f + ld hl, wEnemyTrappingMove ld de, VTiles2 call Function108201 call EnableLCD @@ -761,16 +761,16 @@ Function108589: ; 108589 ld [hWY], a ld a, [wc702] ld [CurPartySpecies], a - ld a, [wc72f] + ld a, [wEnemyTrappingMove] ld [TempMonDVs], a - ld a, [wc730] + ld a, [wPlayerWrapCount] ld [TempMonDVs + 1], a ld b, $1a call GetSGBLayout ld a, $e4 call DmgToCgbBGPals ld a, [wc702] - ld hl, wc72f + ld hl, wEnemyTrappingMove call Function10898a ld a, [wc702] call Function108229 @@ -1262,7 +1262,7 @@ Function1089d2: ld a, [wEnemyCharging] ld de, wc724 call Function108aa3 - ld de, wc731 + ld de, wEnemyWrapCount call Function108abe call Function108a87 ret @@ -1737,7 +1737,7 @@ Function108c9b: ; 108c9b dec c jr nz, .asm_108ccc - ld de, wc731 + ld de, wEnemyWrapCount ld c, $2 .asm_108cd7 ld a, [hli] diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 8462331d6..9e22761b4 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -7656,14 +7656,14 @@ Function11b7e5: ; 11b7e5 ld a, $50 ld [de], a ld a, [$c608 + 11] - ld [wc731], a + ld [wEnemyWrapCount], a ld a, [$c608 + 12] ld [wPlayerCharging], a ld hl, $c608 + 26 ld a, [hli] - ld [wc72f], a + ld [wEnemyTrappingMove], a ld a, [hl] - ld [wc730], a + ld [wPlayerWrapCount], a ld bc, $c608 + 5 callba GetCaughtGender ld a, c diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 54d22b8ec..d82b84e82 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -55,12 +55,12 @@ Function17005a: ; 17005a ld [de], a ld hl, $a841 ld a, [hli] - ld [wc72f], a + ld [wEnemyTrappingMove], a ld a, [hl] - ld [wc730], a + ld [wPlayerWrapCount], a ld hl, $a832 ld a, [hli] - ld [wc731], a + ld [wEnemyWrapCount], a ld a, [hl] ld [wPlayerCharging], a ld bc, $a82c @@ -177,7 +177,7 @@ Function170139: ; 170139 ld e, l ld d, h ld hl, PlayerName - ld bc, $0005 + ld bc, $0005 ; Japanese name length call CopyBytes ld bc, PlayerID ld de, PlayerGender diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index a912c2770..54b1d9203 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -283,14 +283,14 @@ Function17d0f3: ; 17d0f3 ld a, $50 ld [de], a ld a, [$c608 + 11] - ld [wc731], a + ld [wEnemyWrapCount], a ld a, [$c608 + 12] ld [wPlayerCharging], a ld hl, $c608 + 26 ld a, [hli] - ld [wc72f], a + ld [wEnemyTrappingMove], a ld a, [hl] - ld [wc730], a + ld [wPlayerWrapCount], a ld bc, $c608 + 5 callba GetCaughtGender ld a, c diff --git a/wram.asm b/wram.asm index ef7ee6916..49e691e97 100644 --- a/wram.asm +++ b/wram.asm @@ -841,8 +841,8 @@ LastPlayerMove:: ; c71b LastEnemyMove:: ; c71c ds 1 -wc71d:: ds 1 -wc71e:: ds 1 +wPlayerFutureSightCount:: ds 1 +wEnemyFutureSightCount:: ds 1 wc71f:: ds 1 wc720:: ds 4 ; copy from/to EnemyMonBaseStats, length=7 wc724:: ds 3 @@ -851,10 +851,10 @@ wc729:: ds 2 wPlayerRageCounter:: ds 1 wEnemyRageCounter:: ds 1 wc72d:: ds 1 ; if 0 then PrintButItFailed -wc72e:: ds 1 -wc72f:: ds 1 -wc730:: ds 1 -wc731:: ds 1 +wPlayerTrappingMove:: ds 1 +wEnemyTrappingMove:: ds 1 +wPlayerWrapCount:: ds 1 +wEnemyWrapCount:: ds 1 wPlayerCharging:: ds 1 wEnemyCharging:: ds 1 wc734:: @@ -1636,8 +1636,8 @@ wd148:: ds 1 wd149:: ds 1 wd14a:: ds 1 wd14b:: ds 1 -wd14c:: ds 1 -wd14d:: ds 1 +wd14c:: ds 1 ; used in FollowNotExact +wd14d:: ds 1 ; used in FollowNotExact wd14e:: ds 1 wd14f:: ds 1 wd150:: ds 1 @@ -2512,8 +2512,10 @@ PoisonStepCount:: ; dc74 ds 2 wdc77:: ds 2 -wdc79:: ds 1 -wdc7a:: ds 2 +wdc79:: +wParkBallsRemaining:: +wSafariBallsRemaining:: ds 1 +wSafariTimeRemaining:: ds 2 wPhoneList:: ds CONTACT_LIST_SIZE ds 23 wLuckyNumberShowFlag:: ds 2 ; dc9d -- cgit v1.2.3 From 59d67a44be4f76131b432b94b1cb6361b58a9a26 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Sun, 8 Nov 2015 19:09:36 -0500 Subject: Attempting to decode AI switching --- battle/ai/items.asm | 40 ++++++------- battle/ai/scoring.asm | 6 +- battle/ai/switch.asm | 132 +++++++++++++++++++++-------------------- battle/core.asm | 144 ++++++++++++++++++++++----------------------- battle/effect_commands.asm | 22 +++---- items/item_effects.asm | 2 +- main.asm | 34 +++++------ misc/mobile_5f.asm | 10 ++-- wram.asm | 28 ++------- 9 files changed, 202 insertions(+), 216 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index cf78980b3..56a95ac4d 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -45,14 +45,14 @@ DontSwitch: ; 38041 SwitchOften: ; 38045 callab CheckAbleToSwitch - ld a, [wc717] + ld a, [wEnemySwitchMonParam] and $f0 jp z, DontSwitch cp $10 jr nz, .not_10 call Random - cp $80 + cp 1 + 50 percent jr c, .switch jp DontSwitch .not_10 @@ -60,35 +60,35 @@ SwitchOften: ; 38045 cp $20 jr nz, .not_20 call Random - cp 200 + cp -1 + 79 percent jr c, .switch jp DontSwitch .not_20 ; $30 call Random - cp 10 + cp 4 percent jp c, DontSwitch .switch - ld a, [wc717] + ld a, [wEnemySwitchMonParam] and $f inc a ; In register 'a' is the number (1-6) of the Pkmn to switch to - ld [wc718], a + ld [wEnemySwitchMonIndex], a jp AI_TrySwitch ; 38083 SwitchRarely: ; 38083 callab CheckAbleToSwitch - ld a, [wc717] + ld a, [wEnemySwitchMonParam] and $f0 jp z, DontSwitch cp $10 jr nz, .not_10 call Random - cp 20 + cp 8 percent jr c, .switch jp DontSwitch .not_10 @@ -96,34 +96,34 @@ SwitchRarely: ; 38083 cp $20 jr nz, .not_20 call Random - cp 30 + cp 12 percent jr c, .switch jp DontSwitch .not_20 ; $30 call Random - cp 200 + cp -1 + 79 percent jp c, DontSwitch .switch - ld a, [wc717] + ld a, [wEnemySwitchMonParam] and $f inc a - ld [wc718], a + ld [wEnemySwitchMonIndex], a jp AI_TrySwitch ; 380c1 SwitchSometimes: ; 380c1 callab CheckAbleToSwitch - ld a, [wc717] + ld a, [wEnemySwitchMonParam] and $f0 jp z, DontSwitch cp $10 jr nz, .not_10 call Random - cp 50 + cp -1 + 20 percent jr c, .switch jp DontSwitch .not_10 @@ -131,21 +131,21 @@ SwitchSometimes: ; 380c1 cp $20 jr nz, .not_20 call Random - cp $80 + cp 1 + 50 percent jr c, .switch jp DontSwitch .not_20 ; $30 call Random - cp 50 + cp -1 + 20 percent jp c, DontSwitch .switch - ld a, [wc717] + ld a, [wEnemySwitchMonParam] and $f inc a - ld [wc718], a + ld [wEnemySwitchMonIndex], a jp AI_TrySwitch ; 380ff @@ -225,7 +225,7 @@ endr xor a ld [de], a inc a - ld [wc70f], a + ld [wEnemyGoesFirst], a ld hl, EnemySubStatus3 res SUBSTATUS_BIDE, [hl] @@ -701,7 +701,7 @@ AI_TrySwitch: ; 3844b AI_Switch: ; 3846c ld a, $1 ld [wEnemyIsSwitching], a - ld [wc70f], a + ld [wEnemyGoesFirst], a ld hl, EnemySubStatus4 res SUBSTATUS_RAGE, [hl] xor a diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index dbdbb9db8..7dd204978 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -576,7 +576,7 @@ AI_Smart_Explosion: ; 388a6 ; Unless this is the enemy's last Pokemon... push hl - callba CheckEnemyHasMonToSwitchTo + callba FindAliveEnemyMons pop hl jr nc, .asm_388b7 @@ -2028,7 +2028,7 @@ endr jp nz, AIDiscourageMove push hl - callba CheckEnemyHasMonToSwitchTo + callba FindAliveEnemyMons pop hl jr nc, .asm_38eb0 @@ -2160,7 +2160,7 @@ endr AI_Smart_PerishSong: ; 38f4a push hl - callab CheckEnemyHasMonToSwitchTo + callab FindAliveEnemyMons pop hl jr c, .no diff --git a/battle/ai/switch.asm b/battle/ai/switch.asm index c7fd696e1..62a6bcd83 100755 --- a/battle/ai/switch.asm +++ b/battle/ai/switch.asm @@ -183,8 +183,8 @@ endr CheckAbleToSwitch: ; 34941 xor a - ld [wc717], a - call CheckEnemyHasMonToSwitchTo + ld [wEnemySwitchMonParam], a + call FindAliveEnemyMons ret c ld a, [EnemySubStatus1] @@ -197,9 +197,9 @@ CheckAbleToSwitch: ; 34941 ; Perish count is 1 - call CheckEnemyHasMonToSwitchTo - call Function34b77 - call Function34b20 + call FindAliveEnemyMons + call FindEnemyMonsWithEnoughHP + call FindEnemyMonsThatResistPlayer call Function34a85 ld a, e @@ -208,11 +208,11 @@ CheckAbleToSwitch: ; 34941 ld a, [wc716] add $30 - ld [wc717], a + ld [wEnemySwitchMonParam], a ret .not_2 - call CheckEnemyHasMonToSwitchTo + call FindAliveEnemyMons sla c sla c ld b, $ff @@ -224,7 +224,7 @@ CheckAbleToSwitch: ; 34941 ld a, b add $30 - ld [wc717], a + ld [wEnemySwitchMonParam], a ret .no_perish @@ -236,12 +236,12 @@ CheckAbleToSwitch: ; 34941 ld a, [LastEnemyCounterMove] and a - jr z, .asm_349d2 + jr z, .no_last_counter_move call Function34a2a ld a, [wc716] and a - jr z, .asm_349d2 + jr z, .no_last_counter_move ld c, a call Function34aa7 @@ -252,7 +252,7 @@ CheckAbleToSwitch: ; 34941 ld b, a ld a, e cp 2 - jr z, .asm_349be + jr z, .not_2_again call CheckPlayerMoveTypeMatchups ld a, [wc716] @@ -261,32 +261,32 @@ CheckAbleToSwitch: ; 34941 ld a, b add $10 - ld [wc717], a + ld [wEnemySwitchMonParam], a ret -.asm_349be +.not_2_again ld c, $10 call CheckPlayerMoveTypeMatchups ld a, [wc716] cp 10 - jr nc, .asm_349cc + jr nc, .okay ld c, $20 -.asm_349cc +.okay ld a, b add c - ld [wc717], a + ld [wEnemySwitchMonParam], a ret -.asm_349d2 +.no_last_counter_move call CheckPlayerMoveTypeMatchups ld a, [wc716] cp 10 ret nc - call CheckEnemyHasMonToSwitchTo - call Function34b77 - call Function34b20 + call FindAliveEnemyMons + call FindEnemyMonsWithEnoughHP + call FindEnemyMonsThatResistPlayer call Function34a85 ld a, e @@ -295,12 +295,12 @@ CheckAbleToSwitch: ; 34941 ld a, [wc716] add $10 - ld [wc717], a + ld [wEnemySwitchMonParam], a ret ; 349f4 -CheckEnemyHasMonToSwitchTo: ; 349f4 +FindAliveEnemyMons: ; 349f4 ld a, [OTPartyCount] cp 2 jr c, .only_one @@ -421,23 +421,23 @@ Function34a85: ; 34a85 ld hl, OTPartyMon1HP ld b, 1 << (PARTY_LENGTH - 1) ld c, 0 -.asm_34a91 +.loop ld a, [hli] or [hl] - jr z, .asm_34a98 + jr z, .next ld a, b or c ld c, a -.asm_34a98 +.next srl b push bc ld bc, PartyMon2HP - (PartyMon1HP + 1) add hl, bc pop bc dec e - jr nz, .asm_34a91 + jr nz, .loop ld a, c pop bc @@ -456,26 +456,26 @@ Function34aa7: ; 34aa7 ld b, 1 << (PARTY_LENGTH - 1) ld d, 0 ld e, 0 -.asm_34ab5 +.loop ld a, b and c - jr z, .asm_34b00 + jr z, .next push hl push bc ld b, NUM_MOVES ld c, 0 -.asm_34abf +.loop3 ld a, [hli] and a push hl - jr z, .asm_34aef + jr z, .break3 dec a ld hl, Moves + MOVE_POWER call GetMoveAttr and a - jr z, .asm_34ae9 + jr z, .nope inc hl call GetMoveByte @@ -483,61 +483,61 @@ Function34aa7: ; 34aa7 call CheckTypeMatchup ld a, [wTypeMatchup] cp 10 - jr c, .asm_34ae9 + jr c, .nope ld e, 1 - cp 11 - jr c, .asm_34ae9 + cp 10 + 1 + jr c, .nope ld e, 2 - jr .asm_34aef + jr .break3 -.asm_34ae9 +.nope pop hl dec b - jr nz, .asm_34abf + jr nz, .loop3 - jr .asm_34af0 + jr .done -.asm_34aef +.break3 pop hl -.asm_34af0 +.done ld a, e pop bc pop hl cp $2 - jr z, .asm_34b0e + jr z, .done2 cp $1 - jr nz, .asm_34b00 + jr nz, .next ld a, d or b ld d, a - jr .asm_34b00 + jr .next -.asm_34b00 +.next push bc ld bc, PARTYMON_STRUCT_LENGTH add hl, bc pop bc srl b - jr nc, .asm_34ab5 + jr nc, .loop ld a, d ld b, a and a ret z -.asm_34b0e +.done2 push bc sla b sla b ld c, $ff -.asm_34b15 +.loop2 inc c sla b - jr nc, .asm_34b15 + jr nc, .loop2 ld a, c ld [wc716], a @@ -546,60 +546,60 @@ Function34aa7: ; 34aa7 ; 34b20 -Function34b20: ; 34b20 +FindEnemyMonsThatResistPlayer: ; 34b20 push bc ld hl, OTPartySpecies ld b, 1 << (PARTY_LENGTH - 1) ld c, 0 -.asm_34b28 +.loop ld a, [hli] cp $ff - jr z, .asm_34b72 + jr z, .done push hl ld [CurSpecies], a call GetBaseData ld a, [LastEnemyCounterMove] and a - jr z, .asm_34b4a + jr z, .skip_move dec a ld hl, Moves + MOVE_POWER call GetMoveAttr and a - jr z, .asm_34b4a + jr z, .skip_move inc hl call GetMoveByte - jr .asm_34b5d + jr .check_type -.asm_34b4a +.skip_move ld a, [BattleMonType1] ld hl, BaseType call CheckTypeMatchup ld a, [wTypeMatchup] - cp $b - jr nc, .asm_34b6d + cp 10 + 1 + jr nc, .dont_choose_mon ld a, [BattleMonType2] -.asm_34b5d +.check_type ld hl, BaseType call CheckTypeMatchup ld a, [wTypeMatchup] - cp $b - jr nc, .asm_34b6d + cp 10 + 1 + jr nc, .dont_choose_mon ld a, b or c ld c, a -.asm_34b6d +.dont_choose_mon srl b pop hl - jr .asm_34b28 + jr .loop -.asm_34b72 +.done ld a, c pop bc and c @@ -608,7 +608,7 @@ Function34b20: ; 34b20 ; 34b77 -Function34b77: ; 34b77 +FindEnemyMonsWithEnoughHP: ; 34b77 push bc ld de, OTPartySpecies ld b, 1 << (PARTY_LENGTH - 1) @@ -629,10 +629,14 @@ Function34b77: ; 34b77 rept 2 inc hl endr +; hl = MaxHP + 1 +; b = (4 * b) % $100 + (c & 3) +; c = c / 4 srl c rl b srl c rl b +; a = (MaxHP / $100) - b - (1 if c > (MaxHP % $100) else 0) ld a, [hld] cp c ld a, [hl] diff --git a/battle/core.asm b/battle/core.asm index a772794a1..0cfb585bf 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -38,7 +38,7 @@ Function3c000: ; 3c000 dec a jr z, .wild xor a - ld [wc718], a + ld [wEnemySwitchMonIndex], a call NewEnemyMonStatus call ResetEnemyStatLevels call BreakAttraction @@ -104,7 +104,7 @@ Function3c000: ; 3c000 cp $2 jr nz, .not_linked_2 xor a - ld [wc718], a + ld [wEnemySwitchMonIndex], a call NewEnemyMonStatus call ResetEnemyStatLevels call BreakAttraction @@ -136,7 +136,7 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5 and $c0 ld [wBattleResult], a ld hl, BattleText_EnemyFled - call Function3d2e0 + call CheckMobileBattleError jr nc, .asm_3c115 ld hl, wcd2a @@ -150,7 +150,7 @@ WildFled_EnemyFled_LinkBattleCanceled: ; 3c0e5 .asm_3c118 call StopDangerSound - call Function3d2e0 + call CheckMobileBattleError jr c, .asm_3c126 ld de, SFX_RUN @@ -179,7 +179,7 @@ Function3c12f: ; 3c12f ld [CurDamage], a ld [CurDamage + 1], a - call Function3c27c + call HandleBerserkGene call UpdateBattleMonInParty callba AIChooseMove @@ -191,7 +191,7 @@ Function3c12f: ; 3c12f jp c, .quit .not_disconnected - call Function3c410 + call CheckPlayerLockedIn jr c, .skip_iteration .loop1 call BattleMenu @@ -199,27 +199,27 @@ Function3c12f: ; 3c12f ld a, [BattleEnded] and a jr nz, .quit - ld a, [wd232] ; roared/whirlwinded/teleported + ld a, [wForcedSwitch] ; roared/whirlwinded/teleported and a jr nz, .quit .skip_iteration - call Function3c434 + call ParsePlayerAction jr nz, .loop1 - call Function3c300 + call EnemyTriesToFlee jr c, .quit call DetermineMoveOrder jr c, .false - call Function3c5fe + call Battle_EnemyFirst jr .proceed .false - call Function3c664 + call Battle_PlayerFirst .proceed - call Function3d2e0 + call CheckMobileBattleError jr c, .quit - ld a, [wd232] + ld a, [wForcedSwitch] and a jr nz, .quit @@ -355,7 +355,7 @@ CheckFaint_EnemyThenPlayer: ; 3c25c ret ; 3c27c -Function3c27c: ; 3c27c +HandleBerserkGene: ; 3c27c ld a, [hLinkPlayerNumber] cp $1 jr z, .reverse @@ -432,7 +432,7 @@ Function3c27c: ; 3c27c jp StdBattleTextBox ; 3c300 -Function3c300: ; 3c300 +EnemyTriesToFlee: ; 3c300 ld a, [wLinkMode] and a jr z, .not_linked @@ -592,7 +592,7 @@ CheckContestBattleOver: ; 3c3f5 ret ; 3c410 -Function3c410: ; 3c410 +CheckPlayerLockedIn: ; 3c410 ld a, [PlayerSubStatus4] and 1 << SUBSTATUS_RECHARGE jp nz, .quit @@ -618,25 +618,25 @@ Function3c410: ; 3c410 ret ; 3c434 -Function3c434: ; 3c434 - call Function3c410 - jp c, .asm_3c4ba +ParsePlayerAction: ; 3c434 + call CheckPlayerLockedIn + jp c, .locked_in ld hl, PlayerSubStatus5 bit SUBSTATUS_ENCORED, [hl] - jr z, .asm_3c449 + jr z, .not_encored ld a, [LastPlayerMove] ld [CurPlayerMove], a - jr .asm_3c47c + jr .encored -.asm_3c449 +.not_encored ld a, [wd0ec] cp $2 - jr z, .asm_3c4ce + jr z, .reset_rage and a - jr nz, .asm_3c4b5 + jr nz, .reset_bide ld a, [PlayerSubStatus3] and 1 << SUBSTATUS_BIDE - jr nz, .asm_3c4ba + jr nz, .locked_in xor a ld [wd235], a inc a ; POUND @@ -647,50 +647,50 @@ Function3c434: ; 3c434 call UpdateBattleHuds ld a, [CurPlayerMove] cp STRUGGLE - jr z, .asm_3c476 + jr z, .struggle call PlayClickSFX -.asm_3c476 +.struggle ld a, $1 ld [hBGMapMode], a pop af ret nz -.asm_3c47c +.encored call SetPlayerTurn callab UpdateMoveData xor a ld [wPlayerCharging], a ld a, [wPlayerMoveStruct + MOVE_EFFECT] cp EFFECT_FURY_CUTTER - jr z, .asm_3c494 + jr z, .continue_fury_cutter xor a ld [PlayerFuryCutterCount], a -.asm_3c494 +.continue_fury_cutter ld a, [wPlayerMoveStruct + MOVE_EFFECT] cp EFFECT_RAGE - jr z, .asm_3c4a4 + jr z, .continue_rage ld hl, PlayerSubStatus4 res SUBSTATUS_RAGE, [hl] xor a ld [wPlayerRageCounter], a -.asm_3c4a4 +.continue_rage ld a, [wPlayerMoveStruct + MOVE_EFFECT] cp EFFECT_PROTECT - jr z, .asm_3c4c9 + jr z, .continue_protect cp EFFECT_ENDURE - jr z, .asm_3c4c9 + jr z, .continue_protect xor a ld [PlayerProtectCount], a - jr .asm_3c4c9 + jr .continue_protect -.asm_3c4b5 +.reset_bide ld hl, PlayerSubStatus3 res SUBSTATUS_BIDE, [hl] -.asm_3c4ba +.locked_in xor a ld [PlayerFuryCutterCount], a ld [PlayerProtectCount], a @@ -698,12 +698,12 @@ Function3c434: ; 3c434 ld hl, PlayerSubStatus4 res SUBSTATUS_RAGE, [hl] -.asm_3c4c9 - call Function3e7c1 +.continue_protect + call ParseEnemyAction xor a ret -.asm_3c4ce +.reset_rage xor a ld [PlayerFuryCutterCount], a ld [PlayerProtectCount], a @@ -932,19 +932,19 @@ GetMoveEffect: ; 3c5ec ; 3c5fe -Function3c5fe: ; 3c5fe +Battle_EnemyFirst: ; 3c5fe call LoadTileMapToTempTileMap call TryEnemyFlee jp c, WildFled_EnemyFled_LinkBattleCanceled call SetEnemyTurn ld a, $1 - ld [wc70f], a + ld [wEnemyGoesFirst], a callab AI_SwitchOrTryItem jr c, .switch_item call EnemyTurn_EndOpponentProtectEndureDestinyBond - call Function3d2e0 + call CheckMobileBattleError ret c - ld a, [wd232] + ld a, [wForcedSwitch] and a ret nz call HasPlayerFainted @@ -958,9 +958,9 @@ Function3c5fe: ; 3c5fe jp z, HandleEnemyMonFaint call RefreshBattleHuds call PlayerTurn_EndOpponentProtectEndureDestinyBond - call Function3d2e0 + call CheckMobileBattleError ret c - ld a, [wd232] + ld a, [wForcedSwitch] and a ret nz call HasEnemyFainted @@ -976,18 +976,18 @@ Function3c5fe: ; 3c5fe ret ; 3c664 -Function3c664: ; 3c664 +Battle_PlayerFirst: ; 3c664 xor a - ld [wc70f], a + ld [wEnemyGoesFirst], a call SetEnemyTurn callab AI_SwitchOrTryItem push af call PlayerTurn_EndOpponentProtectEndureDestinyBond pop bc - ld a, [wd232] + ld a, [wForcedSwitch] and a ret nz - call Function3d2e0 + call CheckMobileBattleError ret c call HasEnemyFainted jp z, HandleEnemyMonFaint @@ -1006,9 +1006,9 @@ Function3c664: ; 3c664 call TryEnemyFlee jp c, WildFled_EnemyFled_LinkBattleCanceled call EnemyTurn_EndOpponentProtectEndureDestinyBond - call Function3d2e0 + call CheckMobileBattleError ret c - ld a, [wd232] + ld a, [wForcedSwitch] and a ret nz call HasPlayerFainted @@ -2154,7 +2154,7 @@ HandleEnemyMonFaint: ; 3cd55 .dont_flee call Function3d227 - call Function3d2e0 + call CheckMobileBattleError jp c, WildFled_EnemyFled_LinkBattleCanceled ld a, $1 @@ -2437,7 +2437,7 @@ Function3cf4a: ; 3cf4a EnemyPartyMonEntrance: ; 3cf78 push af xor a - ld [wc718], a + ld [wEnemySwitchMonIndex], a call NewEnemyMonStatus call ResetEnemyStatLevels call BreakAttraction @@ -2805,7 +2805,7 @@ HandlePlayerMonFaint: ; 3d14e .asm_3d190 call Function3d227 - call Function3d2e0 + call CheckMobileBattleError jp c, WildFled_EnemyFled_LinkBattleCanceled ld a, c and a @@ -2900,7 +2900,7 @@ Function3d227: ; 3d227 .skip_link xor a ld [wd0ec], a - call Function3d2e0 + call CheckMobileBattleError jr c, .asm_3d251 ld hl, EnemyMonHP ld a, [hli] @@ -2968,7 +2968,7 @@ Function3d2b3: ; 3d2b3 ; 3d2e0 -Function3d2e0: ; 3d2e0 +CheckMobileBattleError: ; 3d2e0 ld a, [wLinkMode] cp LINK_MOBILE jr nz, .not_mobile ; It's not a mobile battle @@ -3057,7 +3057,7 @@ ForcePickPartyMonInBattle: ; 3d362 .pick call PickPartyMonInBattle ret nc - call Function3d2e0 + call CheckMobileBattleError ret c ld de, SFX_WRONG @@ -3082,7 +3082,7 @@ ForcePickSwitchMonInBattle: ; 3d380 .pick call ForcePickPartyMonInBattle - call Function3d2e0 + call CheckMobileBattleError ret c call SwitchMonAlreadyOut jr c, .pick @@ -3306,7 +3306,7 @@ Function3d4ae: ; 3d4ae Function3d4c3: ; 3d4c3 call ResetEnemyBattleVars - ld a, [wc718] + ld a, [wEnemySwitchMonIndex] dec a ld b, a call LoadEnemyPkmnToSwitchTo @@ -3376,7 +3376,7 @@ Function3d533: ; 3d533 jr .return_carry .not_linked - ld a, [wc718] + ld a, [wEnemySwitchMonIndex] and a jr z, .check_wd264 @@ -4031,8 +4031,8 @@ TryToRunAwayFromBattle: ; 3d8b3 ld [CurPlayerMove], a call Function3e8e4 call Call_LoadTempTileMapToTileMap - call Function3d2e0 - jr c, .asm_3d9f5 + call CheckMobileBattleError + jr c, .mobile ; Got away safely ld a, [wBattleAction] @@ -4059,15 +4059,15 @@ TryToRunAwayFromBattle: ; 3d8b3 scf ret -.asm_3d9f5 +.mobile call StopDangerSound ld hl, wcd2a bit 4, [hl] - jr nz, .asm_3da05 + jr nz, .skip_link_error ld hl, BattleText_LinkErrorBattleCanceled call StdBattleTextBox -.asm_3da05 +.skip_link_error call WaitSFX call LoadTileMapToTempTileMap scf @@ -5353,13 +5353,13 @@ Function3e299: jr .asm_3e2a8 .asm_3e2c8 - call Function3d2e0 + call CheckMobileBattleError jr c, .asm_3e2da jr Function3e299 .asm_3e2cf call Function3e308 - call Function3d2e0 + call CheckMobileBattleError jr c, .asm_3e2da jp Function3e290 @@ -5470,7 +5470,7 @@ PlayerSwitch: ; 3e3ad call WriteBackup .not_linked - call Function3e7c1 + call ParseEnemyAction ld a, [wLinkMode] and a jr nz, .linked @@ -6070,7 +6070,7 @@ Function3e786: ; 3e786 -Function3e7c1: ; 3e7c1 +ParseEnemyAction: ; 3e7c1 ld a, [wEnemyIsSwitching] and a ret nz @@ -8740,7 +8740,7 @@ Function3f6d0: ; 3f6d0 ld [OtherTrainerClass], a ld [wd266], a ld [wd267], a - ld [wd232], a + ld [wForcedSwitch], a ld [wd0d8], a ld [wKeyItemsPocketCursor], a ld [wItemsPocketCursor], a @@ -8813,7 +8813,7 @@ Function3f759: ; 3f759 ; 3f77c Function3f77c: ; 3f77c - callba Function3d2e0 + callba CheckMobileBattleError jp c, Function3f80f call Function3f830 jr nz, .asm_3f797 diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index e93284c72..37e13d0bc 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -6530,7 +6530,7 @@ BattleCommand_Teleport: ; 36778 xor a ld [wcfca], a inc a - ld [wd232], a + ld [wForcedSwitch], a ld [wKickCounter], a call SetBattleDraw call BattleCommand_LowerSub @@ -6598,15 +6598,15 @@ BattleCommand_ForceSwitch: ; 3680f xor a ld [wcfca], a inc a - ld [wd232], a + ld [wForcedSwitch], a call SetBattleDraw ld a, [wPlayerMoveStruct + MOVE_ANIM] jp .succeed .trainer - call CheckEnemyHasMonToSwitchTo + call FindAliveEnemyMons jr c, .switch_fail ; 3686c $5c - ld a, [wc70f] + ld a, [wEnemyGoesFirst] and a jr z, .switch_fail ; 36872 $56 call UpdateEnemyMonInParty @@ -6643,7 +6643,7 @@ BattleCommand_ForceSwitch: ; 3680f jr z, .random_loop_trainer ; 368b1 $e7 ld a, d inc a - ld [wc718], a + ld [wEnemySwitchMonIndex], a callab Function3d4c3 ld hl, DraggedOutText @@ -6691,7 +6691,7 @@ BattleCommand_ForceSwitch: ; 3680f xor a ld [wcfca], a inc a - ld [wd232], a + ld [wForcedSwitch], a call SetBattleDraw ld a, [wEnemyMoveStruct + MOVE_ANIM] jr .succeed @@ -6700,7 +6700,7 @@ BattleCommand_ForceSwitch: ; 3680f call CheckPlayerHasMonToSwitchTo jr c, .fail - ld a, [wc70f] + ld a, [wEnemyGoesFirst] cp $1 jr z, .switch_fail @@ -6991,7 +6991,7 @@ Function36ab5: ; 36ab5 Function36abf: ; 36abf push bc - ld a, [wc70f] + ld a, [wEnemyGoesFirst] ld b, a ld a, [hBattleTurn] xor b @@ -8943,7 +8943,7 @@ BattleCommand_BatonPass: ; 379c9 call BatonPass_LinkPlayerSwitch ; Mobile link battles handle entrances differently - callba Function3d2e0 + callba CheckMobileBattleError jp c, EndMoveEffect ld hl, PassedBattleMonEntrance @@ -8968,12 +8968,12 @@ BattleCommand_BatonPass: ; 379c9 call BatonPass_LinkEnemySwitch ; Mobile link battles handle entrances differently - callba Function3d2e0 + callba CheckMobileBattleError jp c, EndMoveEffect ; Passed enemy PartyMon entrance xor a - ld [wc718], a + ld [wEnemySwitchMonIndex], a ld hl, EnemySwitch_SetMode call CallBattleCore ld hl, ResetBattleParticipants diff --git a/items/item_effects.asm b/items/item_effects.asm index 0c1fcc8ac..b2258b6d5 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -2288,7 +2288,7 @@ PokeDoll: ; f48f dec a jr nz, .asm_f4a6 inc a - ld [wd232], a + ld [wForcedSwitch], a ld a, [wBattleResult] and 3 << 6 or $2 diff --git a/main.asm b/main.asm index 7334dbb15..7a77b77f6 100644 --- a/main.asm +++ b/main.asm @@ -32256,7 +32256,7 @@ endr ld [BattleMonSpecies], a ld [wBattleParticipantsNotFainted], a ld [CurBattleMon], a - ld [wd232], a + ld [wForcedSwitch], a ld [TimeOfDayPal], a ld [PlayerTurnsTaken], a ld [EnemyTurnsTaken], a @@ -33688,14 +33688,14 @@ endr ; so we have always the same AI, regardless of the loaded class of trainer ld a, [InBattleTowerBattle] bit 0, a - jr nz, .asm_4412f + jr nz, .battle_tower_skip ld a, [TrainerClass] dec a ld bc, 7 ; Trainer2AI - Trainer1AI call AddNTimes -.asm_4412f +.battle_tower_skip lb bc, CHECK_FLAG, 0 push bc push hl @@ -33766,40 +33766,40 @@ endr .PickLowestScoreMoves ld a, c -.asm_44175 +.move_loop inc [hl] dec hl inc a cp NUM_MOVES + 1 - jr nz, .asm_44175 + jr nz, .move_loop ld hl, Buffer1 ld de, EnemyMonMoves ld c, NUM_MOVES ; Give a score of 0 to a blank move -.asm_44184 +.loop2 ld a, [de] and a - jr nz, .asm_44189 + jr nz, .skip_load ld [hl], a ; Disregard the move if its score is not 1 -.asm_44189 +.skip_load ld a, [hl] dec a - jr z, .asm_44191 + jr z, .keep xor a ld [hli], a - jr .asm_44193 + jr .after_toss -.asm_44191 +.keep ld a, [de] ld [hli], a -.asm_44193 +.after_toss inc de dec c - jr nz, .asm_44184 + jr nz, .loop2 ; Randomly choose one of the moves with a score of 1 .ChooseMove @@ -60912,7 +60912,7 @@ Function92ed5: ; 92ed5 ; 92ee0 Function92ee0: ; 92ee0 - ld hl, wc70f + ld hl, wEnemyGoesFirst ld a, [wc700] cp [hl] call z, Function92f0c @@ -60920,7 +60920,7 @@ Function92ee0: ; 92ee0 ; 92eeb Function92eeb: ; 92eeb - ld hl, wc70f + ld hl, wEnemyGoesFirst ld a, [wc701] cp [hl] call z, Function92f0c @@ -60928,7 +60928,7 @@ Function92eeb: ; 92eeb ; 92ef6 Function92ef6: ; 92ef6 - ld hl, wc70f + ld hl, wEnemyGoesFirst ld a, [wc702] cp [hl] call z, Function92f0c @@ -61033,7 +61033,7 @@ Function92f70: ; 92f70 ; 92f80 Function92f80: ; 92f80 - ld hl, wc70f + ld hl, wEnemyGoesFirst ld a, [wc701] cp [hl] ret nz diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 54b1d9203..8e89a648b 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -1928,7 +1928,7 @@ Function17dc1f: ; 17dc1f ld a, $5c ld [wc70e], a ld a, $1 - ld [wc70f], a + ld [wEnemyGoesFirst], a ld hl, wc708 call LoadMenuDataHeader call InterpretMenu2 @@ -2155,7 +2155,7 @@ Function17dd49: ; 17dd49 jr .asm_17ddc9 .asm_17ddb7 - ld a, [wc70f] + ld a, [wEnemyGoesFirst] ld l, a ld a, [wc710] ld h, a @@ -2219,7 +2219,7 @@ Function17ddcd: ; 17ddcd jr nz, .asm_17de26 ld a, [wc70e] ld l, a - ld a, [wc70f] + ld a, [wEnemyGoesFirst] ld h, a jr .asm_17de2e @@ -2277,7 +2277,7 @@ Function17de32: ; 17de32 .asm_17de78 ld a, [wc70e] ld l, a - ld a, [wc70f] + ld a, [wEnemyGoesFirst] ld h, a jr .asm_17de8a @@ -2879,7 +2879,7 @@ Function17e1a1: ; 17e1a1 jr .asm_17e250 .asm_17e23e - ld a, [wc70f] + ld a, [wEnemyGoesFirst] ld l, a ld a, [wc710] ld h, a diff --git a/wram.asm b/wram.asm index 49e691e97..d7882fa17 100644 --- a/wram.asm +++ b/wram.asm @@ -452,7 +452,7 @@ wOddEggOTName:: ds PKMN_NAME_LENGTH ds -70 wBT_OTTemp:: battle_tower_struct wBT_OTTemp - ds -BATTLE_TOWER_STRUCT_LENGTH + ds wBT_OTTemp - @ wMisc:: wBattle:: @@ -818,7 +818,7 @@ wc70e:: FailedMessage:: ; c70e ds 1 -wc70f:: ds 1 +wEnemyGoesFirst:: ds 1 wc710:: wPlayerIsSwitching:: ds 1 ; c710 wc711:: @@ -831,8 +831,9 @@ PlayerUsedMoves:: ; c712 ds NUM_MOVES wc716:: ds 1 +wEnemySwitchMonParam:: wc717:: ds 1 -wc718:: ds 1 +wEnemySwitchMonIndex:: ds 1 wc719:: ds 1 LastPlayerMon:: ; c71a wc71a:: ds 1 @@ -912,25 +913,6 @@ wMiscEnd:: wc7e8:: ds 24 - -RSSET 0 ; Offsets for wBT_OTTemp:: @ $c608 -wBT_OTTemp_0 RB NAME_LENGTH + -1 ; $c608 -wBT_OTTemp_TrainerClass RB 1 ; $c608 + $a = $c612 -wBT_OTTemp_Pkmn1 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $b = $c613 -wBT_OTTemp_Pkmn1Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $45 = $c64d -wBT_OTTemp_45 RB 1 -wBT_OTTemp_Pkmn2 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $46 = $c64e -wBT_OTTemp_Pkmn2Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $76 = $c67e -wBT_OTTemp_80 RB 1 -wBT_OTTemp_Pkmn3 RB $30 ; PARTYMON_STRUCT_LENGTH ; $c608 + $81 = $c689 -wBT_OTTemp_Pkmn3Name RB PKMN_NAME_LENGTH + -1 ; $c608 + $b1 = $c6b9 -wBT_OTTemp_BB RB 1 - -GLOBAL wBT_OTTemp_TrainerClass, wBT_OTTemp_Pkmn1, wBT_OTTemp_Pkmn1Name, wBT_OTTemp_Pkmn2, wBT_OTTemp_Pkmn2Name, wBT_OTTemp_Pkmn3, wBT_OTTemp_Pkmn3Name -GLOBAL wBT_OTTemp_45, wBT_OTTemp_80, wBT_OTTemp_BB - - - SECTION "Overworld Map", WRAM0 [$c800] wc800:: @@ -1863,7 +1845,7 @@ OtherTrainerID:: ; d231 ; (Joey, Mikey, Albert, etc.) ds 1 -wd232:: ds 1 +wForcedSwitch:: ds 1 TrainerClass:: ; d233 ds 1 -- cgit v1.2.3 From 93ab6985d283857c54fe096294ba5296179963bf Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 9 Nov 2015 16:41:09 -0500 Subject: Some work on battle animations --- battle/anim_commands.asm | 102 +++--- battle/anims.asm | 1 + battle/core.asm | 28 +- battle/effect_command_pointers.asm | 2 +- battle/effect_commands.asm | 659 +++++++++++++++++++------------------ battle/effects/attract.asm | 2 +- battle/effects/foresight.asm | 2 +- battle/effects/metronome.asm | 6 +- battle/effects/mirror_move.asm | 4 +- battle/effects/protect.asm | 2 +- battle/effects/spikes.asm | 2 +- battle/misc.asm | 52 +-- battle/moves/move_effects.asm | 126 +++---- constants/animation_constants.asm | 73 ++-- constants/move_constants.asm | 41 +++ engine/credits.asm | 6 +- engine/scripting.asm | 6 +- home.asm | 53 +-- home/battle.asm | 50 +++ home/map.asm | 10 +- home/palettes.asm | 2 +- hram.asm | 2 + items/item_effects.asm | 14 +- macros/move_effect.asm | 2 +- main.asm | 182 +++++----- misc/mobile_22.asm | 2 +- misc/mobile_40.asm | 2 +- misc/mobile_42.asm | 4 +- wram.asm | 25 +- 29 files changed, 787 insertions(+), 675 deletions(-) diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index 96bd1c45b..839449d19 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -40,7 +40,7 @@ _PlayBattleAnim: ; cc0e4 push af ld [hl], c - call Functioncc11c + call BattleAnimRunScript pop af ld [hVBlank], a @@ -55,17 +55,17 @@ _PlayBattleAnim: ; cc0e4 ret ; cc11c -Functioncc11c: ; cc11c +BattleAnimRunScript: ; cc11c ld a, [FXAnimIDHi] and a - jr nz, .asm_cc156 + jr nz, .hi_byte callba CheckBattleScene - jr c, .asm_cc141 + jr c, .disabled call BattleAnimClearHud - call Functioncc163 + call RunBattleAnimScript call BattleAnimAssignPals call BattleAnimRequestPals @@ -76,31 +76,31 @@ Functioncc11c: ; cc11c call BattleAnimDelayFrame call BattleAnimRestoreHuds -.asm_cc141 +.disabled ld a, [wcfca] and a - jr z, .asm_cc15f + jr z, .done ld l, a ld h, 0 - ld de, $10e + ld de, ANIM_MISS add hl, de ld a, l ld [FXAnimIDLo], a ld a, h ld [FXAnimIDHi], a -.asm_cc156 +.hi_byte call WaitSFX call Functioncc881 - call Functioncc163 + call RunBattleAnimScript -.asm_cc15f +.done call Functioncc8f6 ret ; cc163 -Functioncc163: ; cc163 +RunBattleAnimScript: ; cc163 call Functioncc8d3 @@ -257,11 +257,11 @@ Functioncc23d: ; cc23d ld a, [BattleAnimFlags] bit 3, a - jr z, .asm_cc254 + jr z, .skip ld hl, Sprites + 3 ld c, (SpritesEnd - Sprites) / 4 -.asm_cc249 +.loop ld a, [hl] and $f0 ld [hli], a @@ -269,71 +269,71 @@ rept 3 inc hl endr dec c - jr nz, .asm_cc249 + jr nz, .loop ret -.asm_cc254 +.skip ld hl, Sprites ld c, SpritesEnd - Sprites xor a -.asm_cc25a +.loop2 ld [hli], a dec c - jr nz, .asm_cc25a + jr nz, .loop2 ret ; cc25f Functioncc25f: ; cc25f - call Functioncc267 + call .CheckTimer ret nc - call Functioncc275 + call .RunScript ret ; cc267 -Functioncc267: ; cc267 +.CheckTimer: ; cc267 ld a, [BattleAnimDuration] and a - jr z, .asm_cc273 + jr z, .done dec a ld [BattleAnimDuration], a and a ret -.asm_cc273 +.done scf ret ; cc275 -Functioncc275: ; cc275 - +.RunScript: ; cc275 +.loop call GetBattleAnimByte cp $ff - jr nz, .asm_cc286 + jr nz, .not_done_with_anim ; Return from a subroutine. ld hl, BattleAnimFlags bit 1, [hl] - jr nz, .asm_cc28e + jr nz, .do_anim set 0, [hl] ret -.asm_cc286 +.not_done_with_anim cp $d0 - jr nc, .asm_cc28e + jr nc, .do_anim ld [BattleAnimDuration], a ret -.asm_cc28e - call Functioncc293 +.do_anim + call .DoCommand - jr Functioncc275 + jr .loop ; cc293 -Functioncc293: ; cc293 +.DoCommand: ; cc293 ; Execute battle animation command in [BattleAnimByte]. ld a, [BattleAnimByte] sub $d0 @@ -1332,11 +1332,11 @@ Datacc871: ; cc871 Functioncc881: ; cc881 ld a, [wcfca] cp $1 - jr z, .asm_cc88b + jr z, .okay cp $4 ret nz -.asm_cc88b +.okay ld a, [TypeModifier] and $7f ret z @@ -1358,41 +1358,43 @@ Functioncc881: ; cc881 BattleAnimAssignPals: ; cc8a4 ld a, [hCGB] and a - jr nz, .asm_cc8be + jr nz, .cgb ld a, [hSGB] and a - ld a, $e0 - jr z, .asm_cc8b2 - ld a, $f0 + ld a, %11100000 + jr z, .sgb + ld a, %11110000 -.asm_cc8b2 +.sgb ld [wcfc8], a - ld a, $e4 + ld a, %11100100 ld [wcfc7], a ld [wcfc9], a ret -.asm_cc8be - ld a, $e4 +.cgb + ld a, %11100100 ld [wcfc7], a ld [wcfc8], a ld [wcfc9], a call DmgToCgbBGPals - ld de, $e4e4 + lb de, %11100100, %11100100 call DmgToCgbObjPals ret ; cc8d3 Functioncc8d3: ; cc8d3 +; Clear animation block ld hl, LYOverrides - ld bc, $0354 -.asm_cc8d9 + ld bc, wBattleAnimEnd - LYOverrides +.loop ld [hl], $0 inc hl dec bc ld a, c or b - jr nz, .asm_cc8d9 + jr nz, .loop + ld hl, FXAnimIDLo ld e, [hl] inc hl @@ -1401,7 +1403,7 @@ Functioncc8d3: ; cc8d3 rept 2 add hl, de endr - call Function3ae1 + call GetBattleAnimPointer call BattleAnimAssignPals call BattleAnimDelayFrame ret @@ -1409,12 +1411,12 @@ endr Functioncc8f6: ; cc8f6 call WaitTop - ld a, $e4 + ld a, %11100100 ld [wcfc7], a ld [wcfc8], a ld [wcfc9], a call DmgToCgbBGPals - ld de, $e4e4 + lb de, %11100100, %11100100 call DmgToCgbObjPals xor a ld [hSCX], a diff --git a/battle/anims.asm b/battle/anims.asm index 0f3ba748b..51b3448b2 100644 --- a/battle/anims.asm +++ b/battle/anims.asm @@ -255,6 +255,7 @@ BattleAnimations:: ; c906f dw BattleAnim_253 dw BattleAnim_254 dw BattleAnim_SweetScent2 +; $100 dw BattleAnim_ThrowPokeBall dw BattleAnim_SendOutMon dw BattleAnim_ReturnMon diff --git a/battle/core.asm b/battle/core.asm index 0cfb585bf..c44400baa 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2022,7 +2022,7 @@ Function3ccc2: ; 3ccc2 ret ; 3ccde -Function3ccde: ; 3ccde +CheckUserHasEnoughHP: ; 3ccde ld hl, BattleMonHP + 1 ld a, [hBattleTurn] and a @@ -3740,7 +3740,7 @@ Function3d7a0: ; 3d7a0 lb bc, 4, 10 call ClearBox call WaitBGMap - jp Function3ee27 + jp FinishBattleAnim ; 3d7b8 Function_BattleTextEnemySentOut: ; 3d7b8 @@ -4253,7 +4253,7 @@ SendOutPlayerMon: ; 3db5f ld [hBGMapMode], a call GetMonBackpic xor a - ld [$ffad], a + ld [hFillBox], a ld [wd0d2], a ld [CurMoveNum], a ld [TypeModifier], a @@ -4262,7 +4262,7 @@ SendOutPlayerMon: ; 3db5f ld [LastPlayerCounterMove], a ld [LastPlayerMove], a call CheckAmuletCoin - call Function3ee27 + call FinishBattleAnim xor a ld [wEnemyWrapCount], a call SetPlayerTurn @@ -5132,7 +5132,7 @@ Function3e12e: ; 3e12e ld a, [hl] cp b ret z - jp Function3ee27 + jp FinishBattleAnim ; 3e138 Function3e138: ; 3e138 @@ -5269,7 +5269,7 @@ BattleMenu_Pack: ; 3e1c7 call GetMonFrontpic call ExitMenu call WaitBGMap - call Function3ee27 + call FinishBattleAnim call LoadTileMapToTempTileMap jp BattleMenu ; 3e22b @@ -5309,7 +5309,7 @@ Function3e234: ; 3e234 call WaitBGMap call LoadTileMapToTempTileMap call ResetTextRelatedRAM - call Function3ee27 + call FinishBattleAnim and a ret @@ -6873,7 +6873,7 @@ Function3ebc7: ; 3ebc7 Function3ebd8: ; 3ebd8 xor a ld [TempEnemyMonSpecies], a - call Function3ee27 + call FinishBattleAnim ld a, [OtherTrainerClass] ld [TrainerClass], a ld de, VTiles2 @@ -7368,7 +7368,7 @@ Call_PlayBattleAnim: ; 3ee17 predef_jump PlayBattleAnim ; 3ee27 -Function3ee27: ; 3ee27 +FinishBattleAnim: ; 3ee27 push af push bc push de @@ -8377,7 +8377,7 @@ GetMonBackpic: ; 3f43d ld a, [PlayerSubStatus4] bit SUBSTATUS_SUBSTITUTE, a ld hl, BattleAnimCmd_DD - jr nz, Function3f46f + jr nz, Function3f46f ; substitute Function3f447: ; 3f447 ld a, [wc6fe] @@ -8576,7 +8576,7 @@ InitEnemyTrainer: ; 3f594 ld de, VTiles2 callab GetTrainerPic xor a - ld [$ffad], a + ld [hFillBox], a dec a ld [wc6e6], a hlcoord 12, 0 @@ -8641,7 +8641,7 @@ InitEnemyWildmon: ; 3f607 predef Function5108b xor a ld [TrainerClass], a - ld [$ffad], a + ld [hFillBox], a hlcoord 12, 0 lb bc, 7, 7 predef FillBox @@ -9400,7 +9400,7 @@ Function3fb6c: ; 3fb6c ld a, $1 ld [hBGMapMode], a ld a, $31 - ld [$ffad], a + ld [hFillBox], a hlcoord 2, 6 lb bc, 6, 6 predef FillBox @@ -9494,7 +9494,7 @@ CopyBackpic: ; 3fc30 ld [rSVBK], a call Function3fc5b ld a, $31 - ld [$ffad], a + ld [hFillBox], a hlcoord 2, 6 lb bc, 6, 6 predef FillBox diff --git a/battle/effect_command_pointers.asm b/battle/effect_command_pointers.asm index e0735b2ea..1113f968f 100644 --- a/battle/effect_command_pointers.asm +++ b/battle/effect_command_pointers.asm @@ -13,7 +13,7 @@ BattleCommandPointers: ; 3fd28 dw BattleCommand_LowerSub ; 34eee dw BattleCommand_HitTargetNoSub ; 34f60 dw BattleCommand_RaiseSub ; 35004 - dw BattleCommand_ResultText ; 35023 + dw BattleCommand_FailureText ; 35023 dw BattleCommand_CheckFaint ; 3505e dw BattleCommand_CriticalText ; 35175 dw BattleCommand_SuperEffectiveText ; 351ad diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 37e13d0bc..d31e635b3 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -30,12 +30,12 @@ DoTurn: ; 3401d ; Read in and execute the user's move effects for this turn. xor a - ld [wc6b4], a + ld [wTurnEnded], a ; Effect command checkturn is called for every move. call CheckTurn - ld a, [wc6b4] + ld a, [wTurnEnded] and a ret nz @@ -128,7 +128,7 @@ BattleCommand_CheckTurn: ; 34084 ld a, BATTLE_VARS_MOVE call GetBattleVar inc a - jp z, Function34385 + jp z, EndTurn xor a ld [AttackMissed], a @@ -156,7 +156,7 @@ CheckPlayerTurn: ld hl, MustRechargeText call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn .no_recharge @@ -185,7 +185,7 @@ CheckPlayerTurn: ld hl, UpdatePlayerHUD call CallBattleCore ld a, $1 - ld [$ffd4], a + ld [hBGMapMode], a ld hl, PlayerSubStatus1 res SUBSTATUS_NIGHTMARE, [hl] jr .not_asleep @@ -202,7 +202,7 @@ CheckPlayerTurn: jr z, .not_asleep call CantMove - jp Function34385 + jp EndTurn .not_asleep @@ -222,7 +222,7 @@ CheckPlayerTurn: call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn .not_frozen @@ -236,7 +236,7 @@ CheckPlayerTurn: call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn .not_flinched @@ -293,7 +293,7 @@ CheckPlayerTurn: call HitConfusion call CantMove - jp Function34385 + jp EndTurn .not_confused @@ -317,7 +317,7 @@ CheckPlayerTurn: ld hl, InfatuationText call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn .not_infatuated @@ -334,7 +334,7 @@ CheckPlayerTurn: call MoveDisabled call CantMove - jp Function34385 + jp EndTurn .no_disabled_move @@ -351,7 +351,7 @@ CheckPlayerTurn: ld hl, FullyParalyzedText call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn ; 341f0 @@ -379,7 +379,7 @@ CantMove: ; 341f0 .fly_dig res SUBSTATUS_UNDERGROUND, [hl] res SUBSTATUS_FLYING, [hl] - jp Function37ece + jp AppearUserRaiseSub ; 34216 @@ -402,7 +402,7 @@ CheckEnemyTurn: ; 3421f ld hl, MustRechargeText call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn .no_recharge @@ -433,7 +433,7 @@ CheckEnemyTurn: ; 3421f ld hl, UpdateEnemyHUD call CallBattleCore ld a, $1 - ld [$ffd4], a + ld [hBGMapMode], a ld hl, EnemySubStatus1 res SUBSTATUS_NIGHTMARE, [hl] jr .not_asleep @@ -446,7 +446,7 @@ CheckEnemyTurn: ; 3421f cp SLEEP_TALK jr z, .not_asleep call CantMove - jp Function34385 + jp EndTurn .not_asleep @@ -463,7 +463,7 @@ CheckEnemyTurn: ; 3421f ld hl, FrozenSolidText call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn .not_frozen @@ -477,7 +477,7 @@ CheckEnemyTurn: ; 3421f call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn .not_flinched @@ -527,7 +527,7 @@ CheckEnemyTurn: ; 3421f ; 50% chance of hitting itself call BattleRandom - cp $80 + cp 1 + 50 percent jr nc, .not_confused ; clear confusion-dependent substatus @@ -538,7 +538,7 @@ CheckEnemyTurn: ; 3421f ld hl, HurtItselfText call StdBattleTextBox - call Function355dd + call HitSelfInConfusion call BattleCommand_DamageCalc call BattleCommand_LowerSub xor a @@ -552,10 +552,10 @@ CheckEnemyTurn: ; 3421f call z, PlayFXAnimID ld c, $1 - call Function35d1c + call EnemyHurtItself call BattleCommand_RaiseSub call CantMove - jp Function34385 + jp EndTurn .not_confused @@ -573,13 +573,13 @@ CheckEnemyTurn: ; 3421f ; 50% chance of infatuation call BattleRandom - cp $80 + cp 1 + 50 percent jr c, .not_infatuated ld hl, InfatuationText call StdBattleTextBox call CantMove - jp Function34385 + jp EndTurn .not_infatuated @@ -597,7 +597,7 @@ CheckEnemyTurn: ; 3421f call MoveDisabled call CantMove - jp Function34385 + jp EndTurn .no_disabled_move @@ -619,9 +619,9 @@ CheckEnemyTurn: ; 3421f ; 34385 -Function34385: ; 34385 +EndTurn: ; 34385 ld a, $1 - ld [wc6b4], a + ld [wTurnEnded], a jp ResetDamage ; 3438d @@ -651,7 +651,7 @@ HitConfusion: ; 343a5 xor a ld [CriticalHit], a - call Function355dd + call HitSelfInConfusion call BattleCommand_DamageCalc call BattleCommand_LowerSub @@ -668,9 +668,9 @@ HitConfusion: ; 343a5 ld hl, UpdatePlayerHUD call CallBattleCore ld a, $1 - ld [$ffd4], a + ld [hBGMapMode], a ld c, $1 - call Function35d7e + call PlayerHurtItself jp BattleCommand_RaiseSub ; 343db @@ -683,7 +683,7 @@ BattleCommand_CheckObedience: ; 343db and a ret nz - call Function34548 + call CheckUserIsCharging ret nz ; If we've already checked this turn @@ -1013,7 +1013,7 @@ BattleCommand_UsedMoveText: ; 34541 ; 34548 -Function34548: ; 34548 +CheckUserIsCharging: ; 34548 ld a, [hBattleTurn] and a @@ -1027,7 +1027,7 @@ Function34548: ; 34548 BattleCommand_DoTurn: ; 34555 - call Function34548 + call CheckUserIsCharging ret nz ld hl, BattleMonPP @@ -1079,7 +1079,7 @@ endr ld a, [CurBattleMon] jr z, .player -; skip this part entirely if wildbattle +; mimic this part entirely if wildbattle ld a, [wBattleMode] dec a jr z, .wild @@ -1090,7 +1090,7 @@ endr .player call GetPartyLocation push hl - call Function3460b + call CheckMimicUsed pop hl ret c @@ -1107,7 +1107,7 @@ endr add hl, bc ld a, [hl] and $3f - jr z, .asm_345e3 + jr z, .out_of_pp dec [hl] ld b, 0 ret @@ -1121,18 +1121,18 @@ endr ld a, [hl] cp MIMIC jr z, .mimic - ld hl, wCaughtMonMoves + ld hl, wWildMonMoves add hl, bc ld a, [hl] cp MIMIC ret z .mimic - ld hl, wCaughtMonPP + ld hl, wWildMonPP call .consume_pp ret -.asm_345e3 +.out_of_pp call BattleCommand_MoveDelay ; get move effect ld a, BATTLE_VARS_MOVE_EFFECT @@ -1165,7 +1165,7 @@ endr db $ff ; 3460b -Function3460b: ; 3460b +CheckMimicUsed: ; 3460b ld a, [hBattleTurn] and a ld a, [CurMoveNum] @@ -1174,24 +1174,24 @@ Function3460b: ; 3460b .player ld c, a - ld a, 2 + ld a, MON_MOVES call UserPartyAttr ld a, BATTLE_VARS_MOVE call GetBattleVar cp MIMIC - jr z, .asm_3462f - + jr z, .mimic +; ld b, 0 add hl, bc ld a, [hl] cp MIMIC - jr nz, .asm_3462f + jr nz, .mimic scf ret -.asm_3462f +.mimic and a ret ; 34631 @@ -2063,12 +2063,12 @@ BattleCommand_LowerSub: ; 34eee call .Rampage jr z, .charge_turn - call Function34548 + call CheckUserIsCharging ret nz .charge_turn call _CheckBattleScene - jr c, .skip_anims + jr c, .mimic_anims xor a ld [wcfca], a @@ -2076,9 +2076,9 @@ BattleCommand_LowerSub: ; 34eee inc a ld [wKickCounter], a ld a, SUBSTITUTE - jp PlayMoveAnim_KeepHiID + jp LoadAnim -.skip_anims +.mimic_anims call BattleCommand_LowerSubNoAnim jp BattleCommand_MoveDelay @@ -2119,10 +2119,10 @@ BattleCommand_HitTargetNoSub: ; 34f60 ld a, [hBattleTurn] and a ld de, PlayerRolloutCount - ld a, 1 + ld a, BATTLEANIM_ENEMY_DAMAGE jr z, .got_rollout_count ld de, EnemyRolloutCount - ld a, 4 + ld a, BATTLEANIM_PLAYER_DAMAGE .got_rollout_count ld [wcfca], a @@ -2158,7 +2158,7 @@ BattleCommand_HitTargetNoSub: ; 34f60 .fly_dig ; clear sprite - jp Function37ec7 + jp AppearUserLowerSub .multihit .conversion .doublehit @@ -2199,9 +2199,9 @@ BattleCommand_StatDownAnim: ; 34fdb ld a, [hBattleTurn] and a - ld a, 2 + ld a, BATTLEANIM_ENEMY_STAT_DOWN jr z, BattleCommand_StatUpDownAnim - ld a, 5 + ld a, BATTLEANIM_WOBBLE ; fallthrough ; 34feb @@ -2246,47 +2246,50 @@ BattleCommand_RaiseSub: ; 35004 ld a, $2 ld [wKickCounter], a ld a, SUBSTITUTE - jp PlayMoveAnim_KeepHiID + jp LoadAnim ; 35023 -BattleCommand_ResultText: ; 35023 -; resulttext +BattleCommand_FailureText: ; 35023 +; failuretext +; If the move missed or failed, load the appropriate +; text, and end the effects of multi-turn or multi- +; hit moves. ld a, [AttackMissed] and a ret z - call Function350e4 + call GetFailureResultText ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVarAddr cp FLY - jr z, .asm_3504f + jr z, .fly_dig cp DIG - jr z, .asm_3504f + jr z, .fly_dig ; Move effect: inc hl ld a, [hl] cp EFFECT_MULTI_HIT - jr z, .asm_35049 + jr z, .multihit cp EFFECT_DOUBLE_HIT - jr z, .asm_35049 + jr z, .multihit cp EFFECT_TWINEEDLE - jr z, .asm_35049 + jr z, .multihit jp EndMoveEffect -.asm_35049 +.multihit call BattleCommand_RaiseSub jp EndMoveEffect -.asm_3504f +.fly_dig ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr res SUBSTATUS_UNDERGROUND, [hl] res SUBSTATUS_FLYING, [hl] - call Function37ece + call AppearUserRaiseSub jp EndMoveEffect ; 3505e @@ -2297,50 +2300,50 @@ BattleCommand_CheckFaint: ; 3505e ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVar bit SUBSTATUS_ENDURE, a - jr z, .asm_35072 + jr z, .not_enduring call BattleCommand_FalseSwipe ld b, $0 - jr nc, .asm_3508b + jr nc, .okay ld b, $1 - jr .asm_3508b + jr .okay -.asm_35072 +.not_enduring call GetOpponentItem ld a, b cp HELD_FOCUS_BAND ld b, $0 - jr nz, .asm_3508b + jr nz, .okay call BattleRandom cp c - jr nc, .asm_3508b + jr nc, .okay call BattleCommand_FalseSwipe ld b, $0 - jr nc, .asm_3508b + jr nc, .okay ld b, $2 -.asm_3508b +.okay push bc - call .asm_50bb + call .check_sub ld c, $0 ld a, [hBattleTurn] and a - jr nz, .asm_3509b - call Function35d1c - jr .asm_3509e + jr nz, .damage_player + call EnemyHurtItself + jr .done_damage -.asm_3509b - call Function35d7e +.damage_player + call PlayerHurtItself -.asm_3509e +.done_damage pop bc ld a, b and a ret z dec a - jr nz, .asm_350ab + jr nz, .not_enduring2 ld hl, EnduredText jp StdBattleTextBox -.asm_350ab +.not_enduring2 call GetOpponentItem ld a, [hl] ld [wNamedObjectIndexBuffer], a @@ -2349,7 +2352,7 @@ BattleCommand_CheckFaint: ; 3505e ld hl, HungOnText jp StdBattleTextBox -.asm_50bb +.check_sub ld a, BATTLE_VARS_SUBSTATUS4_OPP call GetBattleVar bit SUBSTATUS_SUBSTITUTE, a @@ -2358,10 +2361,10 @@ BattleCommand_CheckFaint: ; 3505e ld de, PlayerDamageTaken + 1 ld a, [hBattleTurn] and a - jr nz, .asm_350ce + jr nz, .damage_taken ld de, EnemyDamageTaken + 1 -.asm_350ce +.damage_taken ld a, [CurDamage + 1] ld b, a ld a, [de] @@ -2382,26 +2385,26 @@ BattleCommand_CheckFaint: ; 3505e ; 350e4 -Function350e4: ; 350e4 +GetFailureResultText: ; 350e4 ld hl, DoesntAffectText ld de, DoesntAffectText ld a, [TypeModifier] and $7f - jr z, .asm_35110 + jr z, .got_text ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_FUTURE_SIGHT ld hl, ButItFailedText ld de, ItFailedText - jr z, .asm_35110 + jr z, .got_text ld hl, AttackMissedText ld de, AttackMissed2Text ld a, [CriticalHit] cp $ff - jr nz, .asm_35110 + jr nz, .got_text ld hl, UnaffectedText -.asm_35110 - call Function35157 +.got_text + call FailText_CheckOpponentProtect xor a ld [CriticalHit], a @@ -2409,9 +2412,11 @@ Function350e4: ; 350e4 call GetBattleVar cp EFFECT_JUMP_KICK ret nz + ld a, [TypeModifier] and $7f ret z + ld hl, CurDamage ld a, [hli] ld b, [hl] @@ -2423,29 +2428,29 @@ Function350e4: ; 350e4 dec hl ld [hli], a or b - jr nz, .asm_3513e + jr nz, .do_at_least_1_damage inc a ld [hl], a -.asm_3513e +.do_at_least_1_damage ld hl, CrashedText call StdBattleTextBox ld a, $1 ld [wKickCounter], a - call PlayPlayerMoveAnim_ClearHiID + call LoadMoveAnim ld c, $1 ld a, [hBattleTurn] and a - jp nz, Function35d1c - jp Function35d7e + jp nz, EnemyHurtItself + jp PlayerHurtItself -Function35157: ; 35157 +FailText_CheckOpponentProtect: ; 35157 ld a, BATTLE_VARS_SUBSTATUS1_OPP call GetBattleVar bit SUBSTATUS_PROTECT, a - jr z, .asm_35162 + jr z, .not_protected ld h, d ld l, e -.asm_35162 +.not_protected jp StdBattleTextBox ; 35165 @@ -2599,7 +2604,7 @@ BattleCommand_CheckDestinyBond: ; 351c0 inc a ld [wKickCounter], a ld a, DESTINY_BOND - call PlayMoveAnim_KeepHiID + call LoadAnim call BattleCommand_SwitchTurn jr .asm_3524d ; 3522f $1c @@ -2823,7 +2828,7 @@ PlayerAttackDamage: ; 352e2 call ThickClubBoost .done - call Function3534d + call TruncateHL_BC ld a, [BattleMonLevel] ld e, a @@ -2835,13 +2840,14 @@ PlayerAttackDamage: ; 352e2 ; 3534d -Function3534d: ; 3534d +TruncateHL_BC: ; 3534d +.loop ; Truncate 16-bit values hl and bc to 8-bit values b and c respectively. ; b = hl, c = bc ld a, h or b - jr z, .asm_3536b + jr z, .finish srl b rr c @@ -2850,10 +2856,10 @@ Function3534d: ; 3534d ld a, c or b - jr nz, .asm_3535e + jr nz, .done_bc inc c -.asm_3535e +.done_bc srl h rr l srl h @@ -2861,17 +2867,17 @@ Function3534d: ; 3534d ld a, l or h - jr nz, .asm_3536b + jr nz, .finish inc l -.asm_3536b +.finish ld a, [wLinkMode] cp 3 jr z, .done ld a, h or b - jr nz, Function3534d + jr nz, .loop .done ld b, l @@ -3077,7 +3083,7 @@ EnemyAttackDamage: ; 353f6 call ThickClubBoost .done - call Function3534d + call TruncateHL_BC ld a, [EnemyMonLevel] ld e, a @@ -3315,37 +3321,37 @@ BattleCommand_ClearMissDamage: ; 355d5 ; 355dd -Function355dd: ; 355dd +HitSelfInConfusion: ; 355dd call ResetDamage ld a, [hBattleTurn] and a ld hl, BattleMonDefense ld de, PlayerScreens ld a, [BattleMonLevel] - jr z, .asm_355f7 + jr z, .got_it ld hl, EnemyMonDefense ld de, EnemyScreens ld a, [EnemyMonLevel] -.asm_355f7 +.got_it push af ld a, [hli] ld b, a ld c, [hl] ld a, [de] bit SCREENS_REFLECT, a - jr z, .asm_35604 + jr z, .mimic_screen sla c rl b -.asm_35604 +.mimic_screen rept 3 dec hl endr ld a, [hli] ld l, [hl] ld h, a - call Function3534d + call TruncateHL_BC ld d, $28 pop af ld e, a @@ -3798,7 +3804,7 @@ BattleCommand_Counter: ; 35813 and a ret z - call Function36abf + call CheckOpponentWentFirst ret z ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP @@ -3885,7 +3891,7 @@ rept 3 inc a endr ld [de], a - call Function36abf + call CheckOpponentWentFirst jr nz, .asm_3591a ld a, [hBattleTurn] and a @@ -3967,13 +3973,13 @@ BattleCommand_PainSplit: ; 35926 ld a, [AttackMissed] and a - jp nz, Function359cd + jp nz, PainSplit_PrintButItFailed call CheckSubstituteOpp - jp nz, Function359cd + jp nz, PainSplit_PrintButItFailed call AnimateCurrentMove ld hl, BattleMonMaxHP + 1 ld de, EnemyMonMaxHP + 1 - call .asm_3597d + call .PlayerShareHP ld a, $1 ld [wd10a], a hlcoord 10, 9 @@ -3987,18 +3993,18 @@ BattleCommand_PainSplit: ; 35926 ld [Buffer2], a ld a, [hl] ld [Buffer1], a - call Function359ac + call .EnemyShareHP xor a ld [wd10a], a call ResetDamage hlcoord 2, 2 predef AnimateHPBar - callba Function178000 + callba _UpdateBattleHUDs ld hl, SharedPainText jp StdBattleTextBox -.asm_3597d +.PlayerShareHP ld a, [hld] ld [Buffer1], a ld a, [hld] @@ -4030,11 +4036,7 @@ rept 3 inc de endr - ; fallthrough -; 359ac - - -Function359ac: ; 359ac +.EnemyShareHP: ; 359ac ld c, [hl] dec hl ld a, [CurDamage + 1] @@ -4043,13 +4045,13 @@ Function359ac: ; 359ac dec hl ld a, [CurDamage] sbc b - jr nc, .asm_359c2 + jr nc, .skip ld a, [CurDamage] ld b, a ld a, [CurDamage + 1] ld c, a -.asm_359c2 +.skip ld a, c ld [hld], a ld [Buffer5], a @@ -4059,7 +4061,7 @@ Function359ac: ; 359ac ret ; 359cd -Function359cd: ; 359cd +PainSplit_PrintButItFailed: ; 359cd jp PrintDidntAffect2 ; 359d0 @@ -4073,7 +4075,7 @@ BattleCommand_Snore: ; 359d0 call ResetDamage ld a, $1 ld [AttackMissed], a - call Function37354 + call FailSnore jp EndMoveEffect ; 359e6 @@ -4141,7 +4143,7 @@ BattleCommand_Conversion2: ; 359e6 jp StdBattleTextBox .asm_35a50 - jp Function37354 + jp FailConversion2 ; 35a53 @@ -4149,11 +4151,11 @@ BattleCommand_LockOn: ; 35a53 ; lockon call CheckSubstituteOpp - jr nz, .asm_35a6e + jr nz, .fail ld a, [AttackMissed] and a - jr nz, .asm_35a6e + jr nz, .fail ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVarAddr @@ -4163,7 +4165,7 @@ BattleCommand_LockOn: ; 35a53 ld hl, TookAimText jp StdBattleTextBox -.asm_35a6e +.fail call AnimateFailedMove jp PrintDidntAffect ; 35a74 @@ -4172,58 +4174,68 @@ BattleCommand_LockOn: ; 35a53 BattleCommand_Sketch: ; 35a74 ; sketch - call Function372d8 - + call ClearLastMove +; Don't sketch during a link battle ld a, [wLinkMode] and a - jr z, .asm_35a83 + jr z, .not_linked call AnimateFailedMove jp PrintNothingHappened -.asm_35a83 +.not_linked +; If the opponent has a substitute up, fail. call CheckSubstituteOpp - jp nz, .asm_35b10 - + jp nz, .fail +; If the opponent is transformed, fail. ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVarAddr bit SUBSTATUS_TRANSFORMED, [hl] - jp nz, .asm_35b10 - + jp nz, .fail +; Get the user's moveset in its party struct. +; This move replacement shall be permanent. +; Pointer will be in de. ld a, MON_MOVES call UserPartyAttr ld d, h ld e, l +; Get the battle move structs. ld hl, BattleMonMoves ld a, [hBattleTurn] and a - jr z, .asm_35aa5 + jr z, .get_last_move ld hl, EnemyMonMoves -.asm_35aa5 +.get_last_move ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar ld [wTypeMatchup], a ld b, a +; Fail if move is invalid or is Struggle. and a - jr z, .asm_35b10 + jr z, .fail cp STRUGGLE - jr z, .asm_35b10 + jr z, .fail +; Fail if user already knows that move ld c, NUM_MOVES -.asm_35ab7 +.does_user_already_know_move ld a, [hli] cp b - jr z, .asm_35b10 + jr z, .fail dec c - jr nz, .asm_35ab7 + jr nz, .does_user_already_know_move +; Find Sketch in the user's moveset. +; Pointer in hl, and index in c. dec hl ld c, NUM_MOVES -.asm_35ac1 +.find_sketch dec c ld a, [hld] cp SKETCH - jr nz, .asm_35ac1 + jr nz, .find_sketch inc hl +; The Sketched move is loaded to that slot. ld a, b ld [hl], a +; Copy the base PP from that move. push bc push hl dec a @@ -4234,24 +4246,27 @@ BattleCommand_Sketch: ; 35a74 add hl, bc ld [hl], a pop bc + ld a, [hBattleTurn] and a - jr z, .asm_35af6 + jr z, .user_trainer ld a, [wBattleMode] dec a - jr nz, .asm_35af6 + jr nz, .user_trainer +; wildmon ld a, [hl] push bc - ld hl, wc739 + ld hl, wWildMonPP ld b, 0 add hl, bc ld [hl], a - ld hl, wc735 + ld hl, wWildMonMoves add hl, bc pop bc ld [hl], b - jr .asm_35b04 -.asm_35af6 + jr .done_copy + +.user_trainer ld a, [hl] push af ld l, c @@ -4260,17 +4275,17 @@ BattleCommand_Sketch: ; 35a74 ld a, b ld [hl], a pop af - ld de, $0015 + ld de, MON_PP - MON_MOVES add hl, de ld [hl], a -.asm_35b04 +.done_copy call GetMoveName call AnimateCurrentMove ld hl, SketchedText jp StdBattleTextBox -.asm_35b10 +.fail call AnimateFailedMove jp PrintDidntAffect ; 35b16 @@ -4307,10 +4322,10 @@ BattleCommand_DefrostOpponent: ; 35b16 BattleCommand_SleepTalk: ; 35b33 ; sleeptalk - call Function372d8 + call ClearLastMove ld a, [AttackMissed] and a - jr nz, .asm_35ba3 + jr nz, .fail ld a, [hBattleTurn] and a ld hl, BattleMonMoves + 1 @@ -4324,12 +4339,12 @@ BattleCommand_SleepTalk: ; 35b33 ld a, BATTLE_VARS_STATUS call GetBattleVar and SLP - jr z, .asm_35ba3 + jr z, .fail ld a, [hl] and a - jr z, .asm_35ba3 + jr z, .fail call .asm_35ba9 - jr c, .asm_35ba3 + jr c, .fail dec hl .asm_35b62 push hl @@ -4356,18 +4371,19 @@ BattleCommand_SleepTalk: ; 35b33 call GetBattleVarAddr ld a, e ld [hl], a - call Function34548 - jr nz, .asm_35b9a + call CheckUserIsCharging + jr nz, .charging ld a, [wKickCounter] push af call BattleCommand_LowerSub pop af ld [wKickCounter], a -.asm_35b9a - call PlayPlayerMoveAnim_ClearHiID +.charging + call LoadMoveAnim call UpdateMoveData jp ResetTurn -.asm_35ba3 + +.fail call AnimateFailedMove jp TryPrintButItFailed @@ -4656,22 +4672,23 @@ PlayFXAnimID: ; 35d08 ; 35d1c -Function35d1c: ; 35d1c +EnemyHurtItself: ; 35d1c ld hl, CurDamage ld a, [hli] ld b, a ld a, [hl] or b - jr z, .asm_35d7b + jr z, .did_no_damage ld a, c and a - jr nz, .asm_35d31 + jr nz, .mimic_sub_check ld a, [EnemySubStatus4] bit SUBSTATUS_SUBSTITUTE, a - jp nz, Function35de0 -.asm_35d31 + jp nz, SelfInflictDamageToSubstitute + +.mimic_sub_check ld a, [hld] ld b, a ld a, [EnemyMonHP + 1] @@ -4684,7 +4701,7 @@ Function35d1c: ; 35d1c ld [Buffer4], a sbc b ld [EnemyMonHP], a - jr nc, .asm_35d59 + jr nc, .mimic_faint ld a, [Buffer4] ld [hli], a @@ -4696,7 +4713,7 @@ Function35d1c: ; 35d1c ld [hli], a ld [hl], a -.asm_35d59 +.mimic_faint ld hl, EnemyMonMaxHP ld a, [hli] ld [Buffer2], a @@ -4711,27 +4728,27 @@ Function35d1c: ; 35d1c xor a ld [wd10a], a predef AnimateHPBar -.asm_35d7b +.did_no_damage jp RefreshBattleHuds ; 35d7e -Function35d7e: ; 35d7e +PlayerHurtItself: ; 35d7e ld hl, CurDamage ld a, [hli] ld b, a ld a, [hl] or b - jr z, .asm_35ddd + jr z, .did_no_damage ld a, c and a - jr nz, .asm_35d93 + jr nz, .mimic_sub_check ld a, [PlayerSubStatus4] bit SUBSTATUS_SUBSTITUTE, a - jp nz, Function35de0 -.asm_35d93 + jp nz, SelfInflictDamageToSubstitute +.mimic_sub_check ld a, [hld] ld b, a ld a, [BattleMonHP + 1] @@ -4745,7 +4762,7 @@ Function35d7e: ; 35d7e sbc b ld [BattleMonHP], a ld [Buffer6], a - jr nc, .asm_35dc5 + jr nc, .mimic_faint ld a, [Buffer4] ld [hli], a @@ -4760,7 +4777,7 @@ Function35d7e: ; 35d7e ld [hli], a ld [hl], a -.asm_35dc5 +.mimic_faint ld hl, BattleMonMaxHP ld a, [hli] ld [Buffer2], a @@ -4770,12 +4787,12 @@ Function35d7e: ; 35d7e ld a, $1 ld [wd10a], a predef AnimateHPBar -.asm_35ddd +.did_no_damage jp RefreshBattleHuds ; 35de0 -Function35de0: ; 35de0 +SelfInflictDamageToSubstitute: ; 35de0 ld hl, SubTookDamageText call StdBattleTextBox @@ -4811,7 +4828,7 @@ Function35de0: ; 35de0 ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVar and 1 << SUBSTATUS_FLYING | 1 << SUBSTATUS_UNDERGROUND - call z, Function37ec7 + call z, AppearUserLowerSub call BattleCommand_SwitchTurn ld a, BATTLE_VARS_MOVE_EFFECT @@ -5031,25 +5048,25 @@ BattleCommand_Poison: ; 35f2c ld a, [hBattleTurn] and a - jr z, .skip_random + jr z, .mimic_random ld a, [wLinkMode] and a - jr nz, .skip_random + jr nz, .mimic_random ld a, [InBattleTowerBattle] and a - jr nz, .skip_random + jr nz, .mimic_random ld a, [PlayerSubStatus5] bit SUBSTATUS_LOCK_ON, a - jr nz, .skip_random + jr nz, .mimic_random call BattleRandom cp $40 ; 25% chance AI fails jr c, .failed -.skip_random +.mimic_random call CheckSubstituteOpp jr nz, .failed ld a, [AttackMissed] @@ -5244,7 +5261,7 @@ BattleCommand_BurnTarget: ; 3608c ld a, [TypeModifier] and $7f ret z - call Function36e5b + call CheckMoveTypeMatchesTarget ; Don't burn a Fire-type ret z call GetOpponentItem ld a, b @@ -5317,7 +5334,7 @@ BattleCommand_FreezeTarget: ; 36102 ld a, [Weather] cp WEATHER_SUN ret z - call Function36e5b + call CheckMoveTypeMatchesTarget ; Don't freeze an Ice-type ret z call GetOpponentItem ld a, b @@ -5454,7 +5471,7 @@ BattleCommand_StatUp: ; 361e4 ld a, [FailedMessage] and a ret nz - jp Function36281 + jp StatUpAnimation ; 361ef @@ -5561,7 +5578,7 @@ CheckIfStatCanBeRaised: ; 361ef ; 36281 -Function36281: ; 36281 +StatUpAnimation: ; 36281 ld bc, wc6fe ld hl, Function3f447 ld a, [hBattleTurn] @@ -5581,7 +5598,7 @@ Function36281: ; 36281 ret nc xor a - ld [$ffd4], a + ld [hBGMapMode], a call CallBattleCore call WaitBGMap jp BattleCommand_MoveDelay @@ -6146,7 +6163,7 @@ BattleCommand_RaiseSubNoAnim: ; 365af ld hl, GetMonFrontpic .PlayerTurn xor a - ld [$ffd4], a + ld [hBGMapMode], a call CallBattleCore jp WaitBGMap ; 365c3 @@ -6160,7 +6177,7 @@ BattleCommand_LowerSubNoAnim: ; 365c3 ld hl, Function3f486 .PlayerTurn xor a - ld [$ffd4], a + ld [hBGMapMode], a call CallBattleCore jp WaitBGMap ; 365d7 @@ -6534,7 +6551,7 @@ BattleCommand_Teleport: ; 36778 ld [wKickCounter], a call SetBattleDraw call BattleCommand_LowerSub - call PlayPlayerMoveAnim_ClearHiID + call LoadMoveAnim ld c, 20 call DelayFrames call SetBattleDraw @@ -6944,17 +6961,17 @@ BattleCommand_FakeOut: ; 36a82 ret nz call CheckSubstituteOpp - jr nz, .asm_36a9a + jr nz, .fail ld a, BATTLE_VARS_STATUS_OPP call GetBattleVar and 1 << FRZ | SLP - jr nz, .asm_36a9a + jr nz, .fail - call Function36abf - jr z, Function36ab5 + call CheckOpponentWentFirst + jr z, FlinchTarget -.asm_36a9a +.fail ld a, 1 ld [AttackMissed], a ret @@ -6970,7 +6987,7 @@ BattleCommand_FlinchTarget: ; 36aa0 and 1 << FRZ | SLP ret nz - call Function36abf + call CheckOpponentWentFirst ret nz ld a, [EffectFailed] @@ -6981,7 +6998,7 @@ BattleCommand_FlinchTarget: ; 36aa0 ; 36ab5 -Function36ab5: ; 36ab5 +FlinchTarget: ; 36ab5 ld a, BATTLE_VARS_SUBSTATUS3_OPP call GetBattleVarAddr set SUBSTATUS_FLINCHED, [hl] @@ -6989,12 +7006,14 @@ Function36ab5: ; 36ab5 ; 36abf -Function36abf: ; 36abf +CheckOpponentWentFirst: ; 36abf +; Returns a=0, z if user went first +; Returns a=1, nz if opponent went first push bc - ld a, [wEnemyGoesFirst] + ld a, [wEnemyGoesFirst] ; 0 if player went first ld b, a - ld a, [hBattleTurn] - xor b + ld a, [hBattleTurn] ; 0 if it's the player's turn + xor b ; 1 if opponent went first pop bc ret ; 36ac9 @@ -7099,14 +7118,14 @@ BattleCommand_Charge: ; 36b4d ld a, BATTLE_VARS_STATUS call GetBattleVar and SLP - jr z, .asm_36b65 + jr z, .awake call BattleCommand_MoveDelay call BattleCommand_RaiseSub call PrintButItFailed jp EndMoveEffect -.asm_36b65 +.awake ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr set SUBSTATUS_CHARGED, [hl] @@ -7121,36 +7140,36 @@ BattleCommand_Charge: ; 36b4d ld [wcfca], a inc a ld [wKickCounter], a - call PlayPlayerMoveAnim_ClearHiID + call LoadMoveAnim ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar cp FLY - jr z, .asm_36b96 + jr z, .flying cp DIG - jr z, .asm_36b96 + jr z, .flying call BattleCommand_RaiseSub - jr .asm_36b99 -.asm_36b96 - call Function37ec0 -.asm_36b99 + jr .not_flying +.flying + call DisappearUser +.not_flying ld a, BATTLE_VARS_SUBSTATUS3 call GetBattleVarAddr ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar ld b, a cp FLY - jr z, .asm_36bb0 + jr z, .set_flying cp DIG - jr nz, .asm_36bb2 + jr nz, .dont_set_digging set SUBSTATUS_UNDERGROUND, [hl] - jr .asm_36bb2 + jr .dont_set_digging -.asm_36bb0 +.set_flying set SUBSTATUS_FLYING, [hl] -.asm_36bb2 - call Function34548 - jr nz, .asm_36bc3 +.dont_set_digging + call CheckUserIsCharging + jr nz, .mimic ld a, BATTLE_VARS_LAST_COUNTER_MOVE call GetBattleVarAddr ld [hl], b @@ -7158,7 +7177,7 @@ BattleCommand_Charge: ; 36b4d call GetBattleVarAddr ld [hl], b -.asm_36bc3 +.mimic call ResetDamage ld hl, .UsedText @@ -7567,7 +7586,7 @@ BattleCommand_Paralyze: ; 36dc7 call DelayFrames call AnimateCurrentMove ld a, $1 - ld [$ffd4], a + ld [hBGMapMode], a ld a, BATTLE_VARS_STATUS_OPP call GetBattleVarAddr set PAR, [hl] @@ -7590,7 +7609,7 @@ BattleCommand_Paralyze: ; 36dc7 ; 36e5b -Function36e5b: ; 36e5b +CheckMoveTypeMatchesTarget: ; 36e5b ; Compare move type to opponent type. ; Return z if matching the opponent type, ; unless the move is Normal (Tri Attack). @@ -7694,7 +7713,7 @@ endr ld [FXAnimIDHi], a ld [wKickCounter], a ld a, SUBSTITUTE - call PlayMoveAnim_KeepHiID + call LoadAnim jr .finish .mobile @@ -7705,13 +7724,13 @@ endr jp RefreshBattleHuds .already_has_sub - call Function34548 + call CheckUserIsCharging call nz, BattleCommand_RaiseSub ld hl, HasSubstituteText jr .jp_stdbattletextbox .too_weak_to_sub - call Function34548 + call CheckUserIsCharging call nz, BattleCommand_RaiseSub ld hl, TooWeakSubText .jp_stdbattletextbox @@ -7785,38 +7804,38 @@ DoubleDamage: ; 36f37 BattleCommand_Mimic: ; 36f46 ; mimic - call Function372d8 + call ClearLastMove call BattleCommand_MoveDelay ld a, [AttackMissed] and a - jr nz, .asm_36f9a + jr nz, .fail ld hl, BattleMonMoves ld a, [hBattleTurn] and a - jr z, .asm_36f5d + jr z, .player_turn ld hl, EnemyMonMoves -.asm_36f5d +.player_turn call CheckHiddenOpponent - jr nz, .asm_36f9a + jr nz, .fail ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar and a - jr z, .asm_36f9a + jr z, .fail cp STRUGGLE - jr z, .asm_36f9a + jr z, .fail ld b, a ld c, NUM_MOVES -.asm_36f71 +.check_already_knows_move ld a, [hli] cp b - jr z, .asm_36f9a + jr z, .fail dec c - jr nz, .asm_36f71 + jr nz, .check_already_knows_move dec hl -.asm_36f79 +.find_mimic ld a, [hld] cp MIMIC - jr nz, .asm_36f79 + jr nz, .find_mimic inc hl ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP call GetBattleVar @@ -7829,8 +7848,9 @@ BattleCommand_Mimic: ; 36f46 call AnimateCurrentMove ld hl, LearnedMoveText jp StdBattleTextBox -.asm_36f9a - jp Function37357 + +.fail + jp FailMimic ; 36f9d @@ -7954,7 +7974,7 @@ BattleCommand_Disable: ; 36fed ld hl, WasDisabledText jp StdBattleTextBox .asm_37059 - jp Function37354 + jp FailDisable ; 3705c @@ -8202,7 +8222,7 @@ BattleCommand_Heal: ; 3713e BattleCommand_Transform: ; 371cd ; transform - call Function372d8 + call ClearLastMove ld a, BATTLE_VARS_SUBSTATUS5_OPP call GetBattleVarAddr bit SUBSTATUS_TRANSFORMED, [hl] @@ -8218,12 +8238,12 @@ BattleCommand_Transform: ; 371cd call GetBattleVarAddr bit SUBSTATUS_SUBSTITUTE, [hl] push af - jr z, .skip_substitute - call Function34548 - jr nz, .skip_substitute + jr z, .mimic_substitute + call CheckUserIsCharging + jr nz, .mimic_substitute ld a, SUBSTITUTE - call PlayMoveAnim_KeepHiID -.skip_substitute + call LoadAnim +.mimic_substitute ld a, BATTLE_VARS_SUBSTATUS5 call GetBattleVarAddr set SUBSTATUS_TRANSFORMED, [hl] @@ -8249,14 +8269,14 @@ endr call CopyBytes ld a, [hBattleTurn] and a - jr z, .skip_enemy_backup + jr z, .mimic_enemy_backup ld a, [de] ld [wEnemyBackupDVs], a inc de ld a, [de] ld [wEnemyBackupDVs + 1], a dec de -.skip_enemy_backup +.mimic_enemy_backup ; copy DVs ld a, [hli] ld [de], a @@ -8312,7 +8332,7 @@ endr ld bc, 8 call BattleSideCopy call _CheckBattleScene - jr c, .skip_anims + jr c, .mimic_anims ld a, [hBattleTurn] and a ld a, [wc6fe] @@ -8320,10 +8340,10 @@ endr ld a, [wc6fa] .got_byte and a - jr nz, .skip_anims - call PlayPlayerMoveAnim_ClearHiID + jr nz, .mimic_anims + call LoadMoveAnim jr .after_anim -.skip_anims +.mimic_anims call BattleCommand_MoveDelay call BattleCommand_RaiseSubNoAnim .after_anim @@ -8334,7 +8354,7 @@ endr ld [wKickCounter], a pop af ld a, SUBSTITUTE - call nz, PlayMoveAnim_KeepHiID + call nz, LoadAnim ld hl, TransformedText jp StdBattleTextBox ; 372c6 @@ -8363,7 +8383,7 @@ Function372d2: ; 372d2 ; 372d8 -Function372d8: ; 372d8 +ClearLastMove: ; 372d8 ld a, BATTLE_VARS_LAST_COUNTER_MOVE call GetBattleVarAddr xor a @@ -8472,15 +8492,20 @@ PrintButItFailed: ; 3734e ; 37354 -Function37354: ; 37354 +FailSnore: +FailDisable: +FailConversion2: +FailAttract: +FailForesight: +FailSpikes: call AnimateFailedMove ; fallthrough ; 37357 -Function37357: ; 37357 +FailMimic: ; 37357 ld hl, ButItFailedText ; 'but it failed!' ld de, ItFailedText ; 'it failed!' - jp Function35157 + jp FailText_CheckOpponentProtect ; 37360 @@ -8495,7 +8520,7 @@ PrintDidntAffect2: ; 37366 call AnimateFailedMove ld hl, DidntAffect1Text ; 'it didn't affect' ld de, DidntAffect2Text ; 'it didn't affect' - jp Function35157 + jp FailText_CheckOpponentProtect ; 37372 @@ -8516,9 +8541,9 @@ CheckSubstituteOpp: ; 37378 BattleCommand_SelfDestruct: ; 37380 callba MobileFn_10610d - ld a, $4 + ld a, BATTLEANIM_PLAYER_DAMAGE ld [wcfca], a - ld c, $3 + ld c, 3 call DelayFrames ld a, BATTLE_VARS_STATUS call GetBattleVarAddr @@ -8530,7 +8555,7 @@ BattleCommand_SelfDestruct: ; 37380 ld a, $1 ld [wKickCounter], a call BattleCommand_LowerSub - call PlayPlayerMoveAnim_ClearHiID + call LoadMoveAnim ld a, BATTLE_VARS_SUBSTATUS4 call GetBattleVarAddr res SUBSTATUS_LEECH_SEED, [hl] @@ -9348,15 +9373,17 @@ BattleCommand_StartSun: ; 37c07 BattleCommand_BellyDrum: ; 37c1a ; bellydrum +; This command is buggy because it raises the user's attack +; before checking that it has enough HP to use the move. +; Swap the order of these two blocks to fix. call BattleCommand_AttackUp2 ld a, [AttackMissed] and a - jr nz, .asm_37c4f + jr nz, .failed callab GetHalfMaxHP - - callab Function3ccde - jr nc, .asm_37c4f + callab CheckUserHasEnoughHP + jr nc, .failed push bc call AnimateCurrentMove @@ -9365,16 +9392,17 @@ BattleCommand_BellyDrum: ; 37c1a call UpdateUserInParty ld a, 5 -.asm_37c41 +.max_attack_loop push af call BattleCommand_AttackUp2 pop af dec a - jr nz, .asm_37c41 + jr nz, .max_attack_loop ld hl, BellyDrumText jp StdBattleTextBox -.asm_37c4f + +.failed call AnimateFailedMove jp PrintButItFailed ; 37c55 @@ -9387,40 +9415,45 @@ BattleCommand_PsychUp: ; 37c55 ld de, PlayerStatLevels ld a, [hBattleTurn] and a - jr z, .asm_37c64 ; 37c5e $4 + jr z, .pointers_correct ; 37c5e $4 +; It's the enemy's turn, so swap the pointers. push hl ld h, d ld l, e pop de -.asm_37c64 +.pointers_correct push hl - ld b, $8 -.asm_37c67 + ld b, NUM_LEVEL_STATS +; If any of the enemy's stats is modified from its base level, +; the move succeeds. Otherwise, it fails. +.loop ld a, [hli] - cp $7 - jr nz, .asm_37c76 ; 37c6a $a + cp BASE_STAT_LEVEL + jr nz, .break ; 37c6a $a dec b - jr nz, .asm_37c67 ; 37c6d $f8 + jr nz, .loop ; 37c6d $f8 pop hl call AnimateFailedMove jp PrintButItFailed -.asm_37c76 + +.break pop hl - ld b, $8 -.asm_37c79 + ld b, NUM_LEVEL_STATS +.loop2 ld a, [hli] ld [de], a inc de dec b - jr nz, .asm_37c79 ; 37c7d $fa + jr nz, .loop2 ; 37c7d $fa ld a, [hBattleTurn] and a - jr nz, .asm_37c89 ; 37c82 $5 + jr nz, .calc_enemy_stats ; 37c82 $5 call CalcPlayerStats - jr .asm_37c8c ; 37c87 $3 -.asm_37c89 + jr .merge ; 37c87 $3 + +.calc_enemy_stats call CalcEnemyStats -.asm_37c8c +.merge call AnimateCurrentMove ld hl, CopiedStatsText jp StdBattleTextBox @@ -9449,7 +9482,7 @@ BattleCommand_MirrorCoat: ; 37c95 and a ret z - call Function36abf + call CheckOpponentWentFirst ret z ld a, BATTLE_VARS_LAST_COUNTER_MOVE_OPP @@ -9514,7 +9547,7 @@ BattleCommand_DoubleMinimizeDamage: ; 37ce6 BattleCommand_SkipSunCharge: ; 37d02 -; skipsuncharge +; mimicsuncharge ld a, [Weather] cp WEATHER_SUN ret nz @@ -9554,7 +9587,7 @@ BattleCommand_CheckFutureSight: ; 37d0d BattleCommand_FutureSight: ; 37d34 ; futuresight - call Function34548 + call CheckUserIsCharging jr nz, .asm_37d4b ; 37d37 $12 ld a, BATTLE_VARS_MOVE_ANIM call GetBattleVar @@ -9691,7 +9724,7 @@ AnimateCurrentMoveEitherSide: ; 37de9 call BattleCommand_LowerSub pop af ld [wKickCounter], a - call PlayMoveAnim_ClearHiID + call PlayDamageAnim call BattleCommand_RaiseSub pop bc pop de @@ -9709,7 +9742,7 @@ AnimateCurrentMove: ; 37e01 call BattleCommand_LowerSub pop af ld [wKickCounter], a - call PlayPlayerMoveAnim_ClearHiID + call LoadMoveAnim call BattleCommand_RaiseSub pop bc pop de @@ -9718,7 +9751,7 @@ AnimateCurrentMove: ; 37e01 ; 37e19 -PlayMoveAnim_ClearHiID: ; 37e19 +PlayDamageAnim: ; 37e19 xor a ld [FXAnimIDHi], a @@ -9731,9 +9764,9 @@ PlayMoveAnim_ClearHiID: ; 37e19 ld a, [hBattleTurn] and a - ld a, 1 + ld a, BATTLEANIM_ENEMY_DAMAGE jr z, .player - ld a, 4 + ld a, BATTLEANIM_PLAYER_DAMAGE .player ld [wcfca], a @@ -9742,7 +9775,7 @@ PlayMoveAnim_ClearHiID: ; 37e19 ; 37e36 -PlayPlayerMoveAnim_ClearHiID: ; 37e36 +LoadMoveAnim: ; 37e36 xor a ld [wcfca], a ld [FXAnimIDHi], a @@ -9756,7 +9789,7 @@ PlayPlayerMoveAnim_ClearHiID: ; 37e36 ; 37e44 -PlayMoveAnim_KeepHiID: ; 37e44 +LoadAnim: ; 37e44 ld [FXAnimIDLo], a @@ -9838,10 +9871,10 @@ SkipToBattleCommand: ; 37e8c ld h, a ld a, [BattleScriptBufferLoc] ld l, a -.asm_37e94 +.loop ld a, [hli] cp b - jr nz, .asm_37e94 + jr nz, .loop ld a, h ld [BattleScriptBufferLoc + 1], a @@ -9878,20 +9911,20 @@ GetMoveByte: ; 37ebb ; 37ec0 -Function37ec0: ; 37ec0 - callba Functionfbd54 +DisappearUser: ; 37ec0 + callba _DisappearUser ret ; 37ec7 -Function37ec7: ; 37ec7 - callba Functionfbd71 +AppearUserLowerSub: ; 37ec7 + callba _AppearUserLowerSub ret ; 37ece -Function37ece: ; 37ece - callba Functionfbd69 +AppearUserRaiseSub: ; 37ece + callba _AppearUserRaiseSub ret ; 37ed5 diff --git a/battle/effects/attract.asm b/battle/effects/attract.asm index 5e9561206..f1bc590eb 100755 --- a/battle/effects/attract.asm +++ b/battle/effects/attract.asm @@ -20,7 +20,7 @@ BattleCommand_Attract: ; 377ce jp StdBattleTextBox .failed - jp Function37354 + jp FailAttract ; 377f5 diff --git a/battle/effects/foresight.asm b/battle/effects/foresight.asm index a8834fd9c..6f4f97cd2 100644 --- a/battle/effects/foresight.asm +++ b/battle/effects/foresight.asm @@ -19,5 +19,5 @@ BattleCommand_Foresight: ; 376a0 jp StdBattleTextBox .failed - jp Function37354 + jp FailForesight ; 376c2 diff --git a/battle/effects/metronome.asm b/battle/effects/metronome.asm index af574061d..ddc1bf62e 100644 --- a/battle/effects/metronome.asm +++ b/battle/effects/metronome.asm @@ -1,8 +1,8 @@ BattleCommand_Metronome: ; 37418 ; metronome - call Function372d8 - call Function34548 + call ClearLastMove + call CheckUserIsCharging jr nz, .asm_3742b ld a, [wKickCounter] @@ -12,7 +12,7 @@ BattleCommand_Metronome: ; 37418 ld [wKickCounter], a .asm_3742b - call PlayPlayerMoveAnim_ClearHiID + call LoadMoveAnim .GetMove call BattleRandom diff --git a/battle/effects/mirror_move.asm b/battle/effects/mirror_move.asm index e6196466b..c4f208d77 100644 --- a/battle/effects/mirror_move.asm +++ b/battle/effects/mirror_move.asm @@ -1,7 +1,7 @@ BattleCommand_MirrorMove: ; 373c9 ; mirrormove - call Function372d8 + call ClearLastMove ld a, BATTLE_VARS_MOVE call GetBattleVarAddr @@ -37,7 +37,7 @@ BattleCommand_MirrorMove: ; 373c9 call GetMoveData call GetMoveName call CopyName1 - call Function34548 + call CheckUserIsCharging jr nz, .done ld a, [wKickCounter] diff --git a/battle/effects/protect.asm b/battle/effects/protect.asm index ada796001..568ac00f8 100644 --- a/battle/effects/protect.asm +++ b/battle/effects/protect.asm @@ -23,7 +23,7 @@ ProtectChance: ; 3762c ld de, EnemyProtectCount .asm_37637 - call Function36abf + call CheckOpponentWentFirst jr nz, .failed ; Can't have a substitute. diff --git a/battle/effects/spikes.asm b/battle/effects/spikes.asm index 16a2c035d..3d15e4cfd 100644 --- a/battle/effects/spikes.asm +++ b/battle/effects/spikes.asm @@ -23,5 +23,5 @@ BattleCommand_Spikes: ; 37683 jp StdBattleTextBox .failed - jp Function37354 + jp FailSpikes ; 376a0 diff --git a/battle/misc.asm b/battle/misc.asm index f6b20e739..429e4aae6 100644 --- a/battle/misc.asm +++ b/battle/misc.asm @@ -1,50 +1,50 @@ -Functionfbd54: ; fbd54 +_DisappearUser: ; fbd54 xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [hBattleTurn] ; $ff00+$e4 and a - jr z, .asm_fbd61 - call Functionfbd96 - jr .asm_fbd64 -.asm_fbd61 - call Functionfbd9d -.asm_fbd64 + jr z, .player + call GetEnemyFrontpicCoords + jr .okay +.player + call GetPlayerBackpicCoords +.okay call ClearBox - jr Functionfbd91 + jr FinishAppearDisappearUser -Functionfbd69: ; fbd69 (3e:7d69) +_AppearUserRaiseSub: ; fbd69 (3e:7d69) callba BattleCommand_RaiseSubNoAnim - jr Functionfbd77 + jr AppearUser -Functionfbd71: ; fbd71 (3e:7d71) +_AppearUserLowerSub: ; fbd71 (3e:7d71) callba BattleCommand_LowerSubNoAnim -Functionfbd77: ; fbd77 (3e:7d77) +AppearUser: ; fbd77 (3e:7d77) xor a ld [hBGMapMode], a ; $ff00+$d4 ld a, [hBattleTurn] ; $ff00+$e4 and a - jr z, .asm_fbd85 - call Functionfbd96 + jr z, .player + call GetEnemyFrontpicCoords xor a - jr .asm_fbd8a -.asm_fbd85 - call Functionfbd9d + jr .okay +.player + call GetPlayerBackpicCoords ld a, $31 -.asm_fbd8a - ld [$ffad], a +.okay + ld [hFillBox], a predef FillBox -Functionfbd91: ; fbd91 (3e:7d91) +FinishAppearDisappearUser: ; fbd91 (3e:7d91) ld a, $1 ld [hBGMapMode], a ; $ff00+$d4 ret -Functionfbd96: ; fbd96 (3e:7d96) +GetEnemyFrontpicCoords: ; fbd96 (3e:7d96) hlcoord 12, 0 lb bc, 7, 7 ret -Functionfbd9d: ; fbd9d (3e:7d9d) +GetPlayerBackpicCoords: ; fbd9d (3e:7d9d) hlcoord 2, 6 lb bc, 6, 6 ret @@ -62,7 +62,7 @@ DoWeatherModifiers: ; fbda4 ld a, [de] inc de cp $ff - jr z, .asm_fbdc0 + jr z, .done_weather_types cp b jr nz, .NextWeatherType @@ -78,7 +78,7 @@ endr jr .CheckWeatherType -.asm_fbdc0 +.done_weather_types ld de, .WeatherMoveModifiers ld a, BATTLE_VARS_MOVE_EFFECT @@ -217,10 +217,10 @@ DoBadgeTypeBoosts: ; fbe24 ld a, e or d - jr nz, .asm_fbe6f + jr nz, .done_min ld e, 1 -.asm_fbe6f +.done_min add hl, de jr nc, .Update diff --git a/battle/moves/move_effects.asm b/battle/moves/move_effects.asm index 7f69ea6fd..454a1ac9b 100644 --- a/battle/moves/move_effects.asm +++ b/battle/moves/move_effects.asm @@ -44,7 +44,7 @@ NormalHit: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -83,7 +83,7 @@ PoisonHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -107,7 +107,7 @@ LeechHit: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -133,7 +133,7 @@ BurnHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -158,7 +158,7 @@ FreezeHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -187,7 +187,7 @@ ParalyzeHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -209,7 +209,7 @@ Explosion: checkhit selfdestruct hittargetnosub - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -229,7 +229,7 @@ DreamEater: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -634,7 +634,7 @@ AttackDownHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -659,7 +659,7 @@ DefenseDownHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -686,7 +686,7 @@ SpeedDownHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -708,7 +708,7 @@ SpecialAttackDownHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -733,7 +733,7 @@ SpecialDefenseDownHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -757,7 +757,7 @@ AccuracyDownHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -779,7 +779,7 @@ EvasionDownHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -802,7 +802,7 @@ DefenseUpHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -825,7 +825,7 @@ AttackUpHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -848,7 +848,7 @@ AllUpHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -868,7 +868,7 @@ PayDay: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -925,7 +925,7 @@ Rampage: damagevariation clearmissdamage hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -967,7 +967,7 @@ MultiHit: damagevariation clearmissdamage hittargetnosub - resulttext + failuretext checkfaint criticaltext cleartext @@ -995,7 +995,7 @@ PoisonMultiHit: damagevariation clearmissdamage hittargetnosub - resulttext + failuretext checkfaint criticaltext cleartext @@ -1027,7 +1027,7 @@ FlinchHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1046,7 +1046,7 @@ OHKOHit: stab ohko hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1069,7 +1069,7 @@ RecoilHit: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1122,7 +1122,7 @@ ConfuseHit: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1169,7 +1169,7 @@ TriAttack: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1218,7 +1218,7 @@ SkyAttack: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1246,7 +1246,7 @@ HyperBeam: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1267,7 +1267,7 @@ Rage: ragedamage damagevariation hittarget - resulttext + failuretext rage checkfaint criticaltext @@ -1328,7 +1328,7 @@ RazorWind: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1352,7 +1352,7 @@ Dig: checkhit hittargetnosub raisesub - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1377,7 +1377,7 @@ Whirlpool: damagevariation clearmissdamage hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1400,7 +1400,7 @@ StaticDamage: checkhit resettypematchup hittarget - resulttext + failuretext checkfaint checkdestinybond buildopponentrage @@ -1416,7 +1416,7 @@ Reversal: stab checkhit hittarget - resulttext + failuretext checkfaint supereffectivetext checkdestinybond @@ -1430,7 +1430,7 @@ Counter: doturn counter hittarget - resulttext + failuretext checkfaint checkdestinybond buildopponentrage @@ -1466,7 +1466,7 @@ Snore: effectchance snore hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1541,7 +1541,7 @@ FalseSwipe: falseswipe checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1572,7 +1572,7 @@ TripleKick: damagevariation clearmissdamage hittargetnosub - resulttext + failuretext checkfaint criticaltext cleartext @@ -1597,7 +1597,7 @@ Thief: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1634,7 +1634,7 @@ FlameWheel: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1708,7 +1708,7 @@ Rollout: rolloutpower damagevariation hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1728,7 +1728,7 @@ Swagger: lowersub statupanim raisesub - resulttext + failuretext switchturn statupmessage switchturn @@ -1747,7 +1747,7 @@ FuryCutter: furycutter damagevariation hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1776,7 +1776,7 @@ Return: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1797,7 +1797,7 @@ Present: stab damagevariation clearmissdamage - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1818,7 +1818,7 @@ Frustration: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1846,7 +1846,7 @@ SacredFire: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1869,7 +1869,7 @@ Magnitude: checkhit doubleundergrounddamage hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1897,7 +1897,7 @@ Pursuit: pursuit checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1917,7 +1917,7 @@ RapidSpin: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1959,7 +1959,7 @@ HiddenPower: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -1989,7 +1989,7 @@ FakeOut: checkhit fakeout hittarget - resulttext + failuretext endmove BellyDrum: @@ -2012,7 +2012,7 @@ MirrorCoat: doturn mirrorcoat hittarget - resulttext + failuretext checkfaint checkdestinybond buildopponentrage @@ -2032,7 +2032,7 @@ SkullBash: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -2057,7 +2057,7 @@ Twister: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -2079,7 +2079,7 @@ Earthquake: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -2098,7 +2098,7 @@ FutureSight: damagevariation checkhit hittargetnosub - resulttext + failuretext checkfaint checkdestinybond buildopponentrage @@ -2116,7 +2116,7 @@ Gust: doubleflyingdamage checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -2137,7 +2137,7 @@ Stomp: checkhit effectchance hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -2160,7 +2160,7 @@ Solarbeam: damagevariation checkhit hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -2182,7 +2182,7 @@ Thunder: stab damagevariation hittarget - resulttext + failuretext checkfaint criticaltext supereffectivetext @@ -2212,7 +2212,7 @@ BeatUp: damagevariation clearmissdamage hittargetnosub - resulttext + failuretext checkfaint criticaltext cleartext diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm index 6ca0ff2e1..5bc9b7b06 100644 --- a/constants/animation_constants.asm +++ b/constants/animation_constants.asm @@ -1,26 +1,3 @@ -ANIM_SWEET_SCENT_2 EQU 255 ; unused? -ANIM_THROW_POKE_BALL EQU 256 -ANIM_SEND_OUT_MON EQU 257 ; seems to also cover shiny -ANIM_RETURN_MON EQU 258 -ANIM_CONFUSED EQU 259 -ANIM_SLP EQU 260 -ANIM_BRN EQU 261 -ANIM_PSN EQU 262 -ANIM_SAP EQU 263 -ANIM_FRZ EQU 264 -ANIM_PAR EQU 265 -ANIM_IN_LOVE EQU 266 -ANIM_IN_SANDSTORM EQU 267 -ANIM_IN_NIGHTMARE EQU 268 -ANIM_IN_WHIRLPOOL EQU 269 -ANIM_MISS EQU 270 -ANIM_ENEMY_DAMAGE EQU 271 -ANIM_ENEMY_STAT_DOWN EQU 272 ; vibrate horizontally -ANIM_PLAYER_STAT_DOWN EQU 273 ; wobble horizontally -ANIM_PLAYER_DAMAGE EQU 274 -ANIM_WOBBLE EQU 275 -ANIM_SHAKE EQU 276 -ANIM_HIT_CONFUSION EQU 277 ANIM_OBJ_BURNED EQU $10 ANIM_OBJ_FROZEN EQU $2a @@ -71,3 +48,53 @@ ANIM_BG_WOBBLE_MON EQU $34 const ANIM_MON_UNUSED ; 6 const ANIM_MON_EGG1 ; 7 const ANIM_MON_EGG2 ; 8 + +const_value SET $d0 + const BATTLEANIM_D0 + const BATTLEANIM_D1 + const BATTLEANIM_D2 + const BATTLEANIM_D3 + const BATTLEANIM_D4 + const BATTLEANIM_D5 + const BATTLEANIM_D6 + const BATTLEANIM_D7 + const BATTLEANIM_D8 + const BATTLEANIM_D9 + const BATTLEANIM_DA + const BATTLEANIM_DB + const BATTLEANIM_DC + const BATTLEANIM_DD + const BATTLEANIM_DE + const BATTLEANIM_DF + const BATTLEANIM_E0 + const BATTLEANIM_E1 + const BATTLEANIM_E2 + const BATTLEANIM_E3 + const BATTLEANIM_E4 + const BATTLEANIM_E5 + const BATTLEANIM_E6 + const BATTLEANIM_E7 + const BATTLEANIM_E8 + const BATTLEANIM_E9 + const BATTLEANIM_EA + const BATTLEANIM_EB + const BATTLEANIM_EC + const BATTLEANIM_ED + const BATTLEANIM_EE + const BATTLEANIM_EF + const BATTLEANIM_F0 + const BATTLEANIM_F1 + const BATTLEANIM_F2 + const BATTLEANIM_F3 + const BATTLEANIM_F4 + const BATTLEANIM_F5 + const BATTLEANIM_F6 + const BATTLEANIM_F7 + const BATTLEANIM_F8 + const BATTLEANIM_F9 + const BATTLEANIM_FA + const BATTLEANIM_FB + const BATTLEANIM_FC + const BATTLEANIM_FD + const BATTLEANIM_FE + const BATTLEANIM_FF diff --git a/constants/move_constants.asm b/constants/move_constants.asm index d88b0b560..e8392b45a 100644 --- a/constants/move_constants.asm +++ b/constants/move_constants.asm @@ -256,3 +256,44 @@ const_value SET const_value + -1 const NUM_ATTACKS ; $fb + +; Battle animations use the same constants +; as the moves up to this point. + const ANIM_FC ; $fc + const ANIM_FD ; $fd + const ANIM_FE ; $fe + const ANIM_SWEET_SCENT_2 ; $ff + const ANIM_THROW_POKE_BALL ; $100 + const ANIM_SEND_OUT_MON ; $101 + const ANIM_RETURN_MON ; $102 + const ANIM_CONFUSED ; $103 + const ANIM_SLP ; $104 + const ANIM_BRN ; $105 + const ANIM_PSN ; $106 + const ANIM_SAP ; $107 + const ANIM_FRZ ; $108 + const ANIM_PAR ; $109 + const ANIM_IN_LOVE ; $10a + const ANIM_IN_SANDSTORM ; $10b + const ANIM_IN_NIGHTMARE ; $10c + const ANIM_IN_WHIRLPOOL ; $10d +; battle anims + const ANIM_MISS ; $10e + const ANIM_ENEMY_DAMAGE ; $10f + const ANIM_ENEMY_STAT_DOWN ; $110 + const ANIM_PLAYER_STAT_DOWN ; $111 + const ANIM_PLAYER_DAMAGE ; $112 + const ANIM_WOBBLE ; $113 + const ANIM_SHAKE ; $114 + const ANIM_HIT_CONFUSION ; $115 + +; wcfca uses offsets from ANIM_MISS + const_def + const BATTLEANIM_NONE + const BATTLEANIM_ENEMY_DAMAGE + const BATTLEANIM_ENEMY_STAT_DOWN + const BATTLEANIM_PLAYER_STAT_DOWN + const BATTLEANIM_PLAYER_DAMAGE + const BATTLEANIM_WOBBLE + const BATTLEANIM_SHAKE + const BATTLEANIM_HIT_CONFUSION \ No newline at end of file diff --git a/engine/credits.asm b/engine/credits.asm index 793891dd2..473a851be 100644 --- a/engine/credits.asm +++ b/engine/credits.asm @@ -366,7 +366,7 @@ ParseCredits: ; 1099aa ; First, let's clear the current text display, ; starting from line 5. xor a - ld [$ffd4], a + ld [hBGMapMode], a hlcoord 0, 5 ld bc, 20 * 12 ld a, " " @@ -479,9 +479,9 @@ endr ld [CreditsTimer], a xor a - ld [$ffd5], a + ld [hBGMapThird], a ld a, 1 - ld [$ffd4], a + ld [hBGMapMode], a .done jp Function109951 diff --git a/engine/scripting.asm b/engine/scripting.asm index 296f69ecd..703f67e07 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -440,14 +440,14 @@ Script_closetext: ; 0x96ed9 Script_keeptextopen: ; 0x96edc ; script command 0x55 - ld a, [$ffd8] + ld a, [hOAMUpdate] push af ld a, $1 - ld [$ffd8], a + ld [hOAMUpdate], a call WaitBGMap call KeepTextOpen pop af - ld [$ffd8], a + ld [hOAMUpdate], a ret ; 0x96eed diff --git a/home.asm b/home.asm index 1f32edbe8..2f1b231a0 100644 --- a/home.asm +++ b/home.asm @@ -1724,7 +1724,7 @@ Function378b:: ; 378b predef GetFrontpic pop hl xor a - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox xor a @@ -1991,57 +1991,6 @@ Function392d:: ; 392d INCLUDE "home/battle.asm" - -Function3ae1:: ; 3ae1 - -GLOBAL BattleAnimations -GLOBAL BattleAnimCommands - - ld a, BANK(BattleAnimations) - rst Bankswitch - - ld a, [hli] - ld [BattleAnimAddress], a - ld a, [hl] - ld [BattleAnimAddress + 1], a - - ld a, BANK(BattleAnimCommands) - rst Bankswitch - - ret -; 3af0 - -GetBattleAnimByte:: ; 3af0 - - push hl - push de - - ld hl, BattleAnimAddress - ld e, [hl] - inc hl - ld d, [hl] - - ld a, BANK(BattleAnimations) - rst Bankswitch - - ld a, [de] - ld [BattleAnimByte], a - inc de - - ld a, BANK(BattleAnimCommands) - rst Bankswitch - - ld [hl], d - dec hl - ld [hl], e - - pop de - pop hl - - ld a, [BattleAnimByte] - ret -; 3b0c - Function3b0c:: ; 3b0c ld a, [hLCDStatCustom] diff --git a/home/battle.asm b/home/battle.asm index 37f39572a..94a065d4d 100644 --- a/home/battle.asm +++ b/home/battle.asm @@ -309,3 +309,53 @@ GLOBAL BattleText rst Bankswitch ret ; 3ae1 + +GetBattleAnimPointer:: ; 3ae1 + +GLOBAL BattleAnimations +GLOBAL BattleAnimCommands + + ld a, BANK(BattleAnimations) + rst Bankswitch + + ld a, [hli] + ld [BattleAnimAddress], a + ld a, [hl] + ld [BattleAnimAddress + 1], a + + ld a, BANK(BattleAnimCommands) + rst Bankswitch + + ret +; 3af0 + +GetBattleAnimByte:: ; 3af0 + + push hl + push de + + ld hl, BattleAnimAddress + ld e, [hl] + inc hl + ld d, [hl] + + ld a, BANK(BattleAnimations) + rst Bankswitch + + ld a, [de] + ld [BattleAnimByte], a + inc de + + ld a, BANK(BattleAnimCommands) + rst Bankswitch + + ld [hl], d + dec hl + ld [hl], e + + pop de + pop hl + + ld a, [BattleAnimByte] + ret +; 3b0c diff --git a/home/map.asm b/home/map.asm index 6b871617e..df7f943b2 100644 --- a/home/map.asm +++ b/home/map.asm @@ -124,9 +124,10 @@ LoadMapPart:: ; 217a ; 2198 LoadMetatiles:: ; 2198 +; de <- wd194 ld a, [wd194] ld e, a - ld a, [wd195] + ld a, [wd194 + 1] ld d, a ld hl, wMisc ld b, 5 ; SCREEN_WIDTH / 4 @@ -163,20 +164,21 @@ endr ld h, a rept 3 +; copy 4 bytes from hl to de rept 4 ld a, [hli] ld [de], a inc de endr - +; next row ld a, e - add 5 * 4 + add SCREEN_WIDTH ld e, a jr nc, .next\@ inc d .next\@ endr - +; copy 4 more bytes from hl to de rept 4 ld a, [hli] ld [de], a diff --git a/home/palettes.asm b/home/palettes.asm index 93498aedd..30e14c8b3 100644 --- a/home/palettes.asm +++ b/home/palettes.asm @@ -79,7 +79,7 @@ DmgToCgbBGPals:: ; c9f ld [rBGP], a push af -; Don't need to be here if CGB +; Don't need to be here if DMG ld a, [hCGB] and a jr z, .end diff --git a/hram.asm b/hram.asm index 452071c70..d5ca2737b 100644 --- a/hram.asm +++ b/hram.asm @@ -32,6 +32,8 @@ hJoyDown EQU $ffa8 hJoyLast EQU $ffa9 hInMenu EQU $ffaa +hFillBox EQU $ffad + hMapObjectIndexBuffer EQU $ffaf hObjectStructIndexBuffer EQU $ffb0 diff --git a/items/item_effects.asm b/items/item_effects.asm index b2258b6d5..22877e26e 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -225,7 +225,7 @@ ParkBall: ; e8a2 .room_in_party xor a - ld [wCaughtMon], a + ld [wWildMon], a ld a, [CurItem] cp PARK_BALL call nz, Functionedfa @@ -394,7 +394,7 @@ endr ld a, [EnemyMonSpecies] .fail_to_catch - ld [wCaughtMon], a + ld [wWildMon], a ld c, 20 call DelayFrames @@ -416,7 +416,7 @@ endr ld [wcfca], a predef PlayBattleAnim - ld a, [wCaughtMon] + ld a, [wWildMon] and a jr nz, .caught ld a, [Buffer2] @@ -493,19 +493,19 @@ endr ld hl, EnemySubStatus5 bit SUBSTATUS_TRANSFORMED, [hl] jr nz, .Transformed - ld hl, wCaughtMonMoves + ld hl, wWildMonMoves ld de, EnemyMonMoves ld bc, NUM_MOVES call CopyBytes - ld hl, wCaughtMonPP + ld hl, wWildMonPP ld de, EnemyMonPP ld bc, NUM_MOVES call CopyBytes .Transformed ld a, [EnemyMonSpecies] - ld [wCaughtMon], a + ld [wWildMon], a ld [CurPartySpecies], a ld [wd265], a ld a, [BattleType] @@ -710,7 +710,7 @@ endr cp BATTLETYPE_CONTEST jr z, .used_park_ball - ld a, [wCaughtMon] + ld a, [wWildMon] and a jr z, .toss diff --git a/macros/move_effect.asm b/macros/move_effect.asm index 8842fdcd7..d25db45bd 100644 --- a/macros/move_effect.asm +++ b/macros/move_effect.asm @@ -17,7 +17,7 @@ endm command lowersub command hittargetnosub command raisesub - command resulttext + command failuretext command checkfaint command criticaltext command supereffectivetext diff --git a/main.asm b/main.asm index 7a77b77f6..924012f37 100644 --- a/main.asm +++ b/main.asm @@ -1001,7 +1001,7 @@ Function619c: ; 619c ld de, VTiles2 callba GetTrainerPic xor a - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 4 lb bc, 7, 7 predef FillBox @@ -1013,7 +1013,7 @@ ShrinkFrame: ; 61b4 ld c, $31 predef DecompressPredef xor a - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 4 lb bc, 7, 7 predef FillBox @@ -7487,11 +7487,11 @@ Functiond5fe: ; d5fe (3:55fe) cp $2 jr nz, .asm_d61c ld [hl], $0 - call Functiond61d + call .Incrementwd194 .asm_d61c ret -Functiond61d: ; d61d (3:561d) +.Incrementwd194: ; d61d (3:561d) ld hl, wd194 ld a, [hl] add $1 @@ -7757,14 +7757,14 @@ Functiond784: ; d784 and a ret z cp $1 - jr z, .asm_d792 + jr z, .load_15 ld de, $16 - jr .asm_d795 + jr .loaded_de -.asm_d792 +.load_15 ld de, $15 -.asm_d795 +.loaded_de push hl add hl, de ld a, " " @@ -7799,39 +7799,39 @@ Functiond7b4: ; d7b4 Functiond7c9: ; d7c9 ld a, [hCGB] and a - jr nz, .asm_d7d5 + jr nz, .cgb call DelayFrame call DelayFrame ret -.asm_d7d5 +.cgb ld a, [wd10a] and a - jr z, .asm_d829 + jr z, .load_0 cp $1 - jr z, .asm_d82d + jr z, .load_1 ld a, [CurPartyMon] cp $3 - jr nc, .asm_d7ea + jr nc, .c_is_1 ld c, $0 - jr .asm_d7ec + jr .c_is_0 -.asm_d7ea +.c_is_1 ld c, $1 -.asm_d7ec +.c_is_0 push af cp $2 - jr z, .asm_d7ff + jr z, .skip_delay cp $5 - jr z, .asm_d7ff + jr z, .skip_delay ld a, $2 ld [hBGMapMode], a ld a, c ld [hBGMapThird], a call DelayFrame -.asm_d7ff +.skip_delay ld a, $1 ld [hBGMapMode], a ld a, c @@ -7839,12 +7839,12 @@ Functiond7c9: ; d7c9 call DelayFrame pop af cp $2 - jr z, .asm_d813 + jr z, .two_frames cp $5 - jr z, .asm_d813 + jr z, .two_frames ret -.asm_d813 +.two_frames inc c ld a, $2 ld [hBGMapMode], a @@ -7858,14 +7858,14 @@ Functiond7c9: ; d7c9 call DelayFrame ret -.asm_d829 +.load_0 ld c, $0 - jr .asm_d82f + jr .finish -.asm_d82d +.load_1 ld c, $1 -.asm_d82f +.finish call DelayFrame ld a, c ld [hBGMapThird], a @@ -7880,23 +7880,23 @@ Functiond839: ; d839 ld hl, 0 ld a, [wd1f1] cp $30 - jr nc, .asm_d885 + jr nc, .coppy_buffer and a - jr z, .asm_d880 + jr z, .return_zero call AddNTimes ld b, $0 -.asm_d851 +.loop ld a, l sub $30 ld l, a ld a, h sbc $0 ld h, a - jr c, .asm_d85e + jr c, .done inc b - jr .asm_d851 + jr .loop -.asm_d85e +.done push bc ld bc, $80 add hl, bc @@ -7907,28 +7907,28 @@ Functiond839: ; d839 ld a, h sbc $0 ld h, a - jr c, .asm_d86f + jr c, .no_carry inc b -.asm_d86f +.no_carry ld a, [wd1f5] cp b - jr nc, .asm_d87c + jr nc, .finish ld a, [wd1f6] cp b - jr c, .asm_d87c + jr c, .finish ld a, b -.asm_d87c +.finish ld [wd1ec], a ret -.asm_d880 +.return_zero xor a ld [wd1ec], a ret -.asm_d885 +.coppy_buffer ld a, [Buffer1] ld [wd1ec], a ret @@ -8262,10 +8262,10 @@ endr FillPP: ; da6d push bc ld b, NUM_MOVES -.asm_da70 +.loop ld a, [hli] and a - jr z, .asm_da8f + jr z, .next dec a push hl push de @@ -8281,11 +8281,11 @@ FillPP: ; da6d pop hl ld a, [StringBuffer1 + MOVE_PP] -.asm_da8f +.next ld [de], a inc de dec b - jr nz, .asm_da70 + jr nz, .loop pop bc ret ; da96 @@ -8396,13 +8396,13 @@ SentGetPkmnIntoFromBox: ; db3f ld a, [hl] cp MONS_PER_BOX jr nz, .there_is_room - jp CloseSRAM_And_SetCFlag + jp CloseSRAM_And_SetCarryFlag .check_IfPartyIsFull ld hl, PartyCount ld a, [hl] cp PARTY_LENGTH - jp z, CloseSRAM_And_SetCFlag + jp z, CloseSRAM_And_SetCarryFlag .there_is_room inc a @@ -8529,7 +8529,7 @@ SentGetPkmnIntoFromBox: ; db3f cp PC_DEPOSIT jr z, .took_out_of_box cp DAYCARE_DEPOSIT - jp z, .CloseSRAM_And_ClearCFlag + jp z, .CloseSRAM_And_ClearCarryFlag push hl srl a @@ -8560,7 +8560,7 @@ SentGetPkmnIntoFromBox: ; db3f ld a, [wPokemonWithdrawDepositParameter] and a - jr nz, .CloseSRAM_And_ClearCFlag + jr nz, .CloseSRAM_And_ClearCarryFlag ld hl, MON_STATUS add hl, bc xor a @@ -8580,14 +8580,14 @@ endr ld a, [hl] inc de ld [de], a - jr .CloseSRAM_And_ClearCFlag + jr .CloseSRAM_And_ClearCarryFlag .egg xor a ld [de], a inc de ld [de], a - jr .CloseSRAM_And_ClearCFlag + jr .CloseSRAM_And_ClearCarryFlag .took_out_of_box ld a, [sBoxCount] @@ -8595,13 +8595,13 @@ endr ld b, a call Functiondcb6 -.CloseSRAM_And_ClearCFlag +.CloseSRAM_And_ClearCarryFlag call CloseSRAM and a ret ; dcb1 -CloseSRAM_And_SetCFlag: ; dcb1 +CloseSRAM_And_SetCarryFlag: ; dcb1 call CloseSRAM scf ret @@ -19131,7 +19131,7 @@ Function16cc8: ; 16cc8 call Function16cff hlcoord 1, 6 xor a - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox ld de, VTiles2 tile $31 @@ -19213,7 +19213,7 @@ Function16dac: ; 16dac call ByteFill hlcoord 7, 11 ld a, $31 - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox ret @@ -19950,7 +19950,7 @@ Function17254: ; 17254 (5:7254) ld a, b ld [hBGMapAddress + 1], a ld a, c - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox pop af @@ -20832,7 +20832,7 @@ Pokepic:: ; 244e3 ld c, a call GetTileCoord ld a, $80 - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox call WaitBGMap @@ -22991,7 +22991,7 @@ Function25299: ; 25299 (9:5299) hlcoord 14, 1 lb bc, 5, 7 xor a - ld [$ffad], a + ld [hFillBox], a predef FillBox ret ; 252ec (9:52ec) @@ -28076,7 +28076,7 @@ Function294c3: ; 294c3 call Function297cf hlcoord 7, 2 xor a - ld [$ffad], a + ld [hFillBox], a lb bc, 7, 7 predef FillBox call WaitBGMap @@ -32294,7 +32294,7 @@ endr FillBox: ; 2ef6e ; Fill wc2c6-aligned box width b height c -; with iterating tile starting from $ffad at hl. +; with iterating tile starting from hFillBox at hl. ; Predef $13 ld de, 20 @@ -32303,7 +32303,7 @@ FillBox: ; 2ef6e and a jr nz, .left - ld a, [$ffad] + ld a, [hFillBox] .x1 push bc push hl @@ -32330,7 +32330,7 @@ FillBox: ; 2ef6e add hl, bc pop bc - ld a, [$ffad] + ld a, [hFillBox] .x2 push bc push hl @@ -48128,7 +48128,7 @@ Function81adb: ; 81adb ld de, VTiles2 tile $31 predef GetBackpic ld a, $31 - ld [$ffad], a + ld [hFillBox], a hlcoord 2, 4 lb bc, 6, 6 predef FillBox @@ -48160,7 +48160,7 @@ Function81adb: ; 81adb callab GetTrainerPic xor a ld [TempEnemyMonSpecies], a - ld [$ffad], a + ld [hFillBox], a hlcoord 2, 3 lb bc, 7, 7 predef FillBox @@ -50997,7 +50997,7 @@ endr ld de, VTiles2 tile $31 predef GetBackpic ld a, $31 - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 6 lb bc, 6, 6 predef FillBox @@ -51295,7 +51295,7 @@ Function86810: ; 86810 call ByteFill callba GetPlayerBackpic ld a, $31 - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 6 lb bc, 6, 6 predef FillBox @@ -51319,7 +51319,7 @@ Function86810: ; 86810 call ByteFill callba Function88840 xor a - ld [$ffad], a + ld [hFillBox], a hlcoord 12, 5 lb bc, 7, 7 predef FillBox @@ -51635,7 +51635,7 @@ DrawIntroPlayerPic: ; 88874 ; Draw xor a - ld [$ffad], a + ld [hFillBox], a hlcoord 6, 4 lb bc, 7, 7 predef FillBox @@ -52482,7 +52482,7 @@ Function8ce14: ; 8ce14 Function8ce19: ; 8ce19 ld d, $55 - ld a, [wd195] + ld a, [wd194 + 1] ld e, a ld b, $15 ld a, [rSVBK] @@ -75652,22 +75652,22 @@ EnterWestConnection: ; 1045ed ld h, [hl] ld l, a srl c - jr z, .asm_10461e + jr z, .skip_to_load ld a, [WestConnectedMapWidth] add 6 ld e, a ld d, 0 -.asm_10461a +.loop add hl, de dec c - jr nz, .asm_10461a + jr nz, .loop -.asm_10461e +.skip_to_load ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a jp EnteredConnection ; 104629 @@ -75689,22 +75689,22 @@ EnterEastConnection: ; 104629 ld h, [hl] ld l, a srl c - jr z, .asm_10465a + jr z, .skip_to_load ld a, [EastConnectedMapWidth] add 6 ld e, a ld d, 0 -.asm_104656 +.loop add hl, de dec c - jr nz, .asm_104656 + jr nz, .loop -.asm_10465a +.skip_to_load ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a jp EnteredConnection ; 104665 @@ -75731,7 +75731,7 @@ EnterNorthConnection: ; 104665 ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a jp EnteredConnection ; 104696 @@ -75758,7 +75758,7 @@ EnterSouthConnection: ; 104696 ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a ; fallthrough ; 1046c4 @@ -75994,16 +75994,16 @@ GetCoordOfUpperLeftCorner:: ; 10486d ld hl, OverworldMap ld a, [XCoord] bit 0, a - jr nz, .asm_10487d + jr nz, .increment_then_halve1 srl a add $1 - jr .asm_104881 + jr .resume -.asm_10487d +.increment_then_halve1 add $1 srl a -.asm_104881 +.resume ld c, a ld b, $0 add hl, bc @@ -76013,21 +76013,21 @@ GetCoordOfUpperLeftCorner:: ; 10486d ld b, $0 ld a, [YCoord] bit 0, a - jr nz, .asm_10489a + jr nz, .increment_then_halve2 srl a add $1 - jr .asm_10489e + jr .resume2 -.asm_10489a +.increment_then_halve2 add $1 srl a -.asm_10489e +.resume2 call AddNTimes ld a, l ld [wd194], a ld a, h - ld [wd195], a + ld [wd194 + 1], a ld a, [YCoord] and $1 ld [wd196], a @@ -77777,7 +77777,7 @@ UsedMoveText: ; 105db9 ld [wd265], a push hl - callba Function34548 + callba CheckUserIsCharging pop hl jr nz, .grammar @@ -79228,14 +79228,14 @@ INCLUDE "text/phone/extra3.asm" SECTION "bank5E", ROMX, BANK[$5E] -Function178000: +_UpdateBattleHUDs: callba DrawPlayerHUD ld hl, PlayerHPPal call SetHPPal callba DrawEnemyHUD ld hl, EnemyHPPal call SetHPPal - callba Function3ee27 + callba FinishBattleAnim ret ; 17801f (5e:401f) diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 78fef3f56..c11ca8a14 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -1253,7 +1253,7 @@ Function897d5: ; 897d5 .asm_897f3 ld a, $37 - ld [$ffad], a + ld [hFillBox], a hlcoord 12, 3 lb bc, 7, 7 predef FillBox diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index e7b73aa36..70091db27 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -1618,7 +1618,7 @@ Function100a09: ; 100a09 call Function100a87 call Function100da5 - callba Function3ee27 + callba FinishBattleAnim jr .asm_100a2d .asm_100a2a diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 72a8f9e8c..591a26e1f 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -1210,7 +1210,7 @@ asm_108966 call Function108ac8 hlcoord 7, 2 xor a - ld [$ffad], a + ld [hFillBox], a ld bc, $0707 predef FillBox call WaitBGMap @@ -1224,7 +1224,7 @@ Function10898a: ; 10898a call Function108ac8 hlcoord 7, 2 xor a - ld [$ffad], a + ld [hFillBox], a ld bc, $0707 predef FillBox call WaitBGMap diff --git a/wram.asm b/wram.asm index d7882fa17..2436884be 100644 --- a/wram.asm +++ b/wram.asm @@ -473,7 +473,7 @@ wc64c:: ds 1 wc64d:: ds 1 -wCaughtMon:: +wWildMon:: wc64e:: ds 1 ds 1 wEnemyTrainerItem1:: ds 1 @@ -635,7 +635,8 @@ BattleScriptBuffer:: ; c68a BattleScriptBufferLoc:: ; c6b2 ds 2 -wc6b4:: ds 2 +wTurnEnded:: ds 1 + ds 1 PlayerStats:: ; c6b6 ds 10 @@ -862,10 +863,10 @@ wc734:: BattleEnded:: ; c734 ds 1 -wCaughtMonMoves:: +wWildMonMoves:: wc735:: ds 1 wc736:: ds 3 -wCaughtMonPP:: +wWildMonPP:: wc739:: ds 4 wc73d:: ds 1 wc73e:: ds 1 @@ -1627,7 +1628,11 @@ wd151:: ds 1 wd152:: ds 1 wd153:: ds 1 -UsedSprites:: ; d154 +UsedSprites:: ds 64 +UsedSpritesEnd:: + ds UsedSprites - @ + +wd154:: ; d154 ds 31 ; 64 wd173:: ds 1 @@ -1639,9 +1644,7 @@ wd182:: ds 1 wd191:: ds 1 wd192:: ds 1 wd193:: ds 1 -UsedSpritesEnd:: -wd194:: ds 1 -wd195:: ds 1 +wd194:: dw wd196:: ds 1 wd197:: ds 2 wd199:: ds 1 @@ -2731,7 +2734,7 @@ OBPals:: ds 8 * 8 ; d0c0 LYOverrides:: ; d100 ds SCREEN_HEIGHT_PX -LYOverridesEnd:: +LYOverridesEnd:: ; d190 ds 1 w5_d191:: ds 1 @@ -2781,7 +2784,9 @@ w5_d418:: ds 1 BattleAnimTemps:: ; d419 ds 8 ds 1 -w5_d422:: ds $40 +w5_d422:: ds $32 +wBattleAnimEnd:: + ds $e SECTION "WRAM 6", WRAMX, BANK [6] -- cgit v1.2.3 From 77d0a8a39696f28a78450225d60d1149f554ad88 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 9 Nov 2015 17:00:25 -0500 Subject: Add missing files in engine/ and battle/ --- engine/evolution_animation.asm | 457 ++++++++++++++++++++ engine/party_menu.asm | 940 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1397 insertions(+) create mode 100755 engine/evolution_animation.asm create mode 100644 engine/party_menu.asm diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm new file mode 100755 index 000000000..a2a93e189 --- /dev/null +++ b/engine/evolution_animation.asm @@ -0,0 +1,457 @@ +EvolutionAnimation: ; 4e5e1 + push hl + push de + push bc + ld a, [CurSpecies] + push af + ld a, [rOBP0] + push af + ld a, [BaseDexNo] + push af + + call _EvolutionAnimation + + pop af + ld [BaseDexNo], a + pop af + ld [rOBP0], a + pop af + ld [CurSpecies], a + pop bc + pop de + pop hl + + ld a, [wd1ed] + and a + ret z + + scf + ret +; 4e607 + +_EvolutionAnimation: ; 4e607 + ld a, $e4 + ld [rOBP0], a + + ld de, MUSIC_NONE + call PlayMusic + + callba Function8cf53 + + ld de, EvolutionGFX + ld hl, VTiles0 + lb bc, BANK(EvolutionGFX), 8 + call Request2bpp + + xor a + ld [Danger], a + call WaitBGMap + xor a + ld [hBGMapMode], a + ld a, [Buffer1] + ld [PlayerHPPal], a + + ld c, $0 + call Function4e703 + ld a, [Buffer1] + ld [CurPartySpecies], a + ld [CurSpecies], a + call Function4e708 + + ld de, VTiles2 + ld hl, VTiles2 tile $31 + ld bc, $31 + call Request2bpp + + ld a, $31 + ld [wd1ec], a + call Evolution_FlashFrontpics + ld a, [Buffer2] + ld [CurPartySpecies], a + ld [CurSpecies], a + call Function4e711 + ld a, [Buffer1] + ld [CurPartySpecies], a + ld [CurSpecies], a + + ld a, $1 + ld [hBGMapMode], a + call Function4e794 + jr c, .skip_cry + + ld a, [Buffer1] + call PlayCry + +.skip_cry + ld de, MUSIC_EVOLUTION + call PlayMusic + + ld c, 80 + call DelayFrames + + ld c, $1 + call Function4e703 + call Function4e726 + jr c, .pressed_b + + ld a, $cf + ld [wd1ec], a + + call Evolution_FlashFrontpics + xor a + ld [wd1ed], a + + ld a, [Buffer2] + ld [PlayerHPPal], a + + ld c, $0 + call Function4e703 + call Function4e7a6 + callba Function8cf53 + call Function4e794 + jr c, .asm_4e6de + + ld a, [wc2c6] + push af + ld a, $1 + ld [wc2c6], a + ld a, [CurPartySpecies] + push af + + ld a, [PlayerHPPal] + ld [CurPartySpecies], a + hlcoord 7, 2 + ld d, $0 + ld e, ANIM_MON_EVOLVE + predef AnimateFrontpic + + pop af + ld [CurPartySpecies], a + pop af + ld [wc2c6], a + ret + +.asm_4e6de + ret + +.pressed_b + ld a, $1 + ld [wd1ed], a + + ld a, [Buffer1] + ld [PlayerHPPal], a + + ld c, $0 + call Function4e703 + call Function4e7a6 + callba Function8cf53 + call Function4e794 + ret c + + ld a, [PlayerHPPal] + call PlayCry + ret +; 4e703 + +Function4e703: ; 4e703 + ld b, $b + jp GetSGBLayout +; 4e708 + +Function4e708: ; 4e708 + call GetBaseData + hlcoord 7, 2 + jp Function3786 +; 4e711 + +Function4e711: ; 4e711 + call GetBaseData + ld a, $1 + ld [wc2c6], a + ld de, VTiles2 + predef Function5108b + xor a + ld [wc2c6], a + ret +; 4e726 + +Function4e726: ; 4e726 + call ClearJoypad + lb bc, 1, 14 +.loop + push bc + call Evolution_CheckPressedB + pop bc + jr c, .pressed_b + push bc + call Evolution_NextFrame + pop bc + inc b +rept 2 + dec c +endr + jr nz, .loop + and a + ret + +.pressed_b + scf + ret +; 4e741 + +Evolution_NextFrame: ; 4e741 +.loop + ld a, -49 + ld [wd1ec], a + call Evolution_FlashFrontpics + ld a, 49 + ld [wd1ec], a + call Evolution_FlashFrontpics + dec b + jr nz, .loop + ret +; 4e755 + +Evolution_FlashFrontpics: ; 4e755 + push bc + xor a + ld [hBGMapMode], a + hlcoord 7, 2 + lb bc, 7, 7 + ld de, $d +.loop1 + push bc +.loop2 + ld a, [wd1ec] + add [hl] + ld [hli], a + dec c + jr nz, .loop2 + pop bc + add hl, de + dec b + jr nz, .loop1 + ld a, $1 + ld [hBGMapMode], a + call WaitBGMap + pop bc + ret +; 4e779 + +Evolution_CheckPressedB: ; 4e779 +.loop + call DelayFrame + push bc + call JoyTextDelay + ld a, [hJoyDown] + pop bc + and B_BUTTON + jr nz, .pressed_b +.loop2 + dec c + jr nz, .loop + and a + ret + +.pressed_b + ld a, [wd1e9] + and a + jr nz, .loop2 + scf + ret +; 4e794 + +Function4e794: ; 4e794 + ld a, [CurPartyMon] + ld hl, PartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba CheckFaintedFrzSlp + ret +; 4e7a6 + +Function4e7a6: ; 4e7a6 + ld a, [wd1ed] + and a + ret nz + ld de, SFX_EVOLVED + call PlaySFX + ld hl, wJumptableIndex + ld a, [hl] + push af + ld [hl], $0 +.asm_4e7b8 + call Function4e7cf + jr nc, .asm_4e7c2 + call Function4e80c + jr .asm_4e7b8 + +.asm_4e7c2 + ld c, $20 +.asm_4e7c4 + call Function4e80c + dec c + jr nz, .asm_4e7c4 + pop af + ld [wJumptableIndex], a + ret +; 4e7cf + +Function4e7cf: ; 4e7cf + ld hl, wJumptableIndex + ld a, [hl] + cp $20 + ret nc + ld d, a + inc [hl] + and $1 + jr nz, .asm_4e7e6 + ld e, $0 + call Function4e7e8 + ld e, $10 + call Function4e7e8 + +.asm_4e7e6 + scf + ret +; 4e7e8 + +Function4e7e8: ; 4e7e8 + push de + ld de, $4858 + ld a, $13 + call Function3b2a + ld hl, $b + add hl, bc + ld a, [wJumptableIndex] + and $e + sla a + pop de + add e + ld [hl], a + ld hl, $3 + add hl, bc + ld [hl], $0 + ld hl, $c + add hl, bc + ld [hl], $10 + ret +; 4e80c + +Function4e80c: ; 4e80c + push bc + callab Function8cf69 + ld a, [$ff9b] + and $e + srl a +rept 2 + inc a +endr + and $7 + ld b, a + ld hl, Sprites + 3 + ld c, $28 +.asm_4e823 + ld a, [hl] + or b + ld [hli], a +rept 3 + inc hl +endr + dec c + jr nz, .asm_4e823 + pop bc + call DelayFrame + ret +; 4e831 + + +EvolutionGFX: +INCBIN "gfx/evo/bubble_large.2bpp" +INCBIN "gfx/evo/bubble.2bpp" + +Function4e881: ; 4e881 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + call LoadStandardFont + call LoadFontsBattleExtra + ld hl, VBGMap0 + ld bc, VBGMap1 - VBGMap0 + ld a, " " + call ByteFill + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + xor a + call ByteFill + xor a + ld [hSCY], a + ld [hSCX], a + call EnableLCD + ld hl, UnknownText_0x4e8bd + call PrintText + call Function3200 + call SetPalettes + ret +; 4e8bd + +UnknownText_0x4e8bd: ; 0x4e8bd + ; SAVING RECORD… DON'T TURN OFF! + text_jump UnknownText_0x1bd39e + db "@" +; 0x4e8c2 + + +Function4e8c2: ; 4e8c2 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + call LoadStandardFont + call LoadFontsBattleExtra + ld hl, VBGMap0 + ld bc, VBGMap1 - VBGMap0 + ld a, " " + call ByteFill + hlcoord 0, 0, AttrMap + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + xor a + call ByteFill + ld hl, wd000 + ld c, $40 +.asm_4e8ee + ld a, -1 + ld [hli], a + ld a, " " + ld [hli], a + dec c + jr nz, .asm_4e8ee + xor a + ld [hSCY], a + ld [hSCX], a + call EnableLCD + call Function3200 + call SetPalettes + ret +; 4e906 + +Function4e906: ; 4e906 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld hl, w6_d000 + ld bc, w6_d400 - w6_d000 + ld a, " " + call ByteFill + ld hl, VBGMap0 + ld de, w6_d000 + ld b, $0 + ld c, $40 + call Request2bpp + pop af + ld [rSVBK], a + ret +; 4e929 diff --git a/engine/party_menu.asm b/engine/party_menu.asm new file mode 100644 index 000000000..b0997e821 --- /dev/null +++ b/engine/party_menu.asm @@ -0,0 +1,940 @@ +SelectMonFromParty: ; 50000 + call DisableSpriteUpdates + xor a + ld [PartyMenuActionText], a + call WhiteBGMap + call Function5003f + call WaitBGMap + call Function32f9 + call DelayFrame + call PartyMenuSelect + call Function2b74 + ret +; 5001d + + +Function5001d: ; 5001d + ld a, b + ld [PartyMenuActionText], a + call DisableSpriteUpdates + call WhiteBGMap + call Function5003f + call WaitBGMap + ld b, $a + call GetSGBLayout + call Function32f9 + call DelayFrame + call PartyMenuSelect + call Function2b74 + ret +; 5003f + +Function5003f: ; 5003f + call Function5004f + call Function50405 + call Function503e0 + call WritePartyMenuTilemap + call PrintPartyMenuText + ret +; 5004f + +Function5004f: ; 5004f + call LoadFontsBattleExtra + callab Function8ad1 ; engine/color.asm + callab InefficientlyClear121BytesAtwc300 + ret +; 5005f + + +WritePartyMenuTilemap: ; 0x5005f + ld hl, Options + ld a, [hl] + push af + set 4, [hl] ; Disable text delay + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill ; blank the tilemap + call Function50396 ; This reads from a pointer table??? +.loop + ld a, [hli] + cp -1 + jr z, .asm_50084 ; 0x5007a $8 + push hl + ld hl, .jumptable + rst JumpTable + pop hl + jr .loop ; 0x50082 $f3 + +.asm_50084 + pop af + ld [Options], a + ret +; 0x50089 + +.jumptable: ; 50089 + dw .displaynicks ; 0 + dw .drawhpbars ; 1 + dw Function50138 ; 2 + dw Function50176 ; 3 + dw Function501b2 ; 4 + dw Function501e0 ; 5 + dw Function5022f ; 6 + dw Function502b1 ; 7 + dw Function50307 ; 8 +; 5009b + +.displaynicks: ; 5009b + hlcoord 3, 1 + ld a, [PartyCount] + and a + jr z, .done + ld c, a + ld b, $0 +.loop2 + push bc + push hl + push hl + ld hl, PartyMonNicknames + ld a, b + call GetNick + pop hl + call PlaceString + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .loop2 + +.done +rept 2 + dec hl +endr + ld de, .cancelstring + call PlaceString + ret +; 500c8 + +.cancelstring: ; 500c8 + db "CANCEL@" +; 500cf + + +.drawhpbars: ; 500cf + xor a + ld [wcda9], a + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + hlcoord 11, 2 +.loop3 + push bc + push hl + call Function50389 + jr z, .skip + push hl + call _fillhpbar + pop hl + ld d, 6 + ld b, 0 + call DrawHPBar + ld hl, wcd9b + ld a, [wcda9] + ld c, a + ld b, $0 + add hl, bc + call SetHPPal + ld b, $fc + call GetSGBLayout + +.skip + ld hl, wcda9 + inc [hl] + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .loop3 + ld b, $a + call GetSGBLayout + ret +; 50117 + +_fillhpbar: ; 50117 + ld a, b + ld bc, PartyMon2 - PartyMon1 + ld hl, PartyMon1HP + call AddNTimes + ld a, [hli] + or [hl] + jr nz, .notfainted + xor a + ld e, a + ld c, a + ret + +.notfainted + dec hl + ld a, [hli] + ld b, a + ld a, [hli] + ld c, a + ld a, [hli] + ld d, a + ld a, [hli] + ld e, a + predef ComputeHPBarLength + ret +; 50138 + +Function50138: ; 50138 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, $0 + hlcoord 13, 1 +.asm_50143 + push bc + push hl + call Function50389 + jr z, .asm_5016b + push hl + ld a, b + ld bc, PartyMon2 - PartyMon1 + ld hl, PartyMon1HP + call AddNTimes + ld e, l + ld d, h + pop hl + push de + lb bc, 2, 3 + call PrintNum + pop de + ld a, $f3 + ld [hli], a +rept 2 + inc de +endr + lb bc, 2, 3 + call PrintNum + +.asm_5016b + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_50143 + ret +; 50176 + +Function50176: ; 50176 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, 0 + hlcoord 8, 2 +.asm_50181 + push bc + push hl + call Function50389 + jr z, .asm_501a7 + push hl + ld a, b + ld bc, PartyMon2 - PartyMon1 + ld hl, PartyMon1Level + call AddNTimes + ld e, l + ld d, h + pop hl + ld a, [de] + cp 100 ; This is distinct from MAX_LEVEL. + jr nc, .asm_501a1 + ld a, "" + ld [hli], a + ld bc, $4102 +.asm_501a1 + lb bc, PRINTNUM_RIGHTALIGN | 1, 3 + call PrintNum + +.asm_501a7 + pop hl + ld de, SCREEN_WIDTH * 2 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_50181 + ret +; 501b2 + +Function501b2: ; 501b2 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, 0 + hlcoord 5, 2 +.asm_501bd + push bc + push hl + call Function50389 + jr z, .asm_501d5 + push hl + ld a, b + ld bc, PartyMon2 - PartyMon1 + ld hl, PartyMon1Status + call AddNTimes + ld e, l + ld d, h + pop hl + call Function50d0a + +.asm_501d5 + pop hl + ld de, SCREEN_WIDTH * 2 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_501bd + ret +; 501e0 + +Function501e0: ; 501e0 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, 0 + hlcoord 12, 2 +.asm_501eb + push bc + push hl + call Function50389 + jr z, .asm_5020a + push hl + ld hl, PartySpecies + ld e, b + ld d, 0 + add hl, de + ld a, [hl] + ld [CurPartySpecies], a + predef CanLearnTMHMMove + pop hl + call Function50215 + call PlaceString + +.asm_5020a + pop hl + ld de, SCREEN_WIDTH * 2 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_501eb + ret +; 50215 + +Function50215: ; 50215 + ld a, c + and a + jr nz, .asm_5021d + ld de, String_50226 + ret + +.asm_5021d + ld de, String_50221 + ret +; 50221 + +String_50221: ; 50221 + db "ABLE@" +; 50226 + +String_50226: ; 50226 + db "NOT ABLE@" +; 5022f + + +Function5022f: ; 5022f + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, 0 + hlcoord 12, 2 +.asm_5023a + push bc + push hl + call Function50389 + jr z, .asm_5025d + push hl + ld a, b + ld bc, PartyMon2 - PartyMon1 + ld hl, PartyMon1Species + call AddNTimes + ld a, [hl] + dec a + ld e, a + ld d, 0 + ld hl, EvosAttacksPointers +rept 2 + add hl, de +endr + call Function50268 + pop hl + call PlaceString + +.asm_5025d + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_5023a + ret +; 50268 + +Function50268: ; 50268 + ld de, StringBuffer1 + ld a, BANK(EvosAttacksPointers) + ld bc, 2 + call FarCopyBytes + ld hl, StringBuffer1 + ld a, [hli] + ld h, [hl] + ld l, a + ld de, StringBuffer1 + ld a, BANK(EvosAttacks) + ld bc, $a + call FarCopyBytes + ld hl, StringBuffer1 +.asm_50287 + ld a, [hli] + and a + jr z, .asm_5029f +rept 2 + inc hl +endr + cp EVOLVE_ITEM + jr nz, .asm_50287 +rept 2 + dec hl +endr + ld a, [CurItem] + cp [hl] +rept 2 + inc hl +endr + jr nz, .asm_50287 + ld de, String_502a3 + ret + +.asm_5029f + ld de, String_502a8 + ret +; 502a3 + +String_502a3: ; 502a3 + db "ABLE@" +; 502a8 +String_502a8: ; 502a8 + db "NOT ABLE@" +; 502b1 + + +Function502b1: ; 502b1 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, 0 + hlcoord 12, 2 +.asm_502bc + push bc + push hl + call Function50389 + jr z, .asm_502e3 + ld [CurPartySpecies], a + push hl + ld a, b + ld [CurPartyMon], a + xor a + ld [MonType], a + call GetGender + ld de, String_502fe + jr c, .asm_502df + ld de, String_502ee + jr nz, .asm_502df + ld de, String_502f5 + +.asm_502df + pop hl + call PlaceString + +.asm_502e3 + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_502bc + ret +; 502ee + +String_502ee: ; 502ee + db "♂…MALE@" +; 502f5 + +String_502f5: ; 502f5 + db "♀…FEMALE@" +; 502fe + +String_502fe: ; 502fe + db "…UNKNOWN@" +; 50307 + + +Function50307: ; 50307 + ld a, [PartyCount] + and a + ret z + ld c, a + ld b, 0 + hlcoord 12, 1 +.asm_50312 + push bc + push hl + ld de, String_50372 + call PlaceString + pop hl + ld de, $0028 + add hl, de + pop bc + inc b + dec c + jr nz, .asm_50312 + ld a, l + ld e, $b + sub e + ld l, a + ld a, h + sbc $0 + ld h, a + ld de, String_50379 + call PlaceString + ld b, $3 + ld c, $0 + ld hl, DefaultFlypoint + ld a, [hl] +.asm_5033b + push hl + push bc + hlcoord 12, 1 +.asm_50340 + and a + jr z, .asm_5034a + ld de, $0028 + add hl, de + dec a + jr .asm_50340 + +.asm_5034a + ld de, String_5036b + push hl + call PlaceString + pop hl + pop bc + push bc + push hl + ld a, c + ld hl, Strings_50383 + call GetNthString + ld d, h + ld e, l + pop hl + call PlaceString + pop bc + pop hl + inc hl + ld a, [hl] + inc c + dec b + ret z + jr .asm_5033b +; 5036b + +String_5036b: ; 5036b + db " ばんめ @" ; Place +; 50372 +String_50372: ; 50372 + db "さんかしない@" ; Cancel +; 50379 +String_50379: ; 50379 + db "けってい やめる@" ; Quit +; 50383 +Strings_50383: ; 50383 + db "1@", "2@", "3@" ; 1st, 2nd, 3rd +; 50389 + + +Function50389: ; 50389 + ld a, PartySpecies % $100 + add b + ld e, a + ld a, PartySpecies / $100 + adc 0 + ld d, a + ld a, [de] + cp EGG + ret +; 50396 + +Function50396: ; 50396 + ld a, [PartyMenuActionText] + and $f0 + jr nz, .override + ld a, [PartyMenuActionText] + and $f + ld e, a + ld d, 0 + ld hl, .selectmonmenuoptions +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ret + +.override + ld hl, .default + ret +; 503b2 + +.selectmonmenuoptions: ; 503b2 + dw .default + dw .default + dw .default + dw .unknown1 + dw .default + dw .unknown2 + dw .trade + dw .trade + dw .default + dw .unknown3 +; 503c6 + +.default: db 0, 1, 2, 3, 4, -1 +.unknown1: db 0, 5, 3, 4, -1 +.unknown2: db 0, 6, 3, 4, -1 +.trade: db 0, 7, 3, 4, -1 +.unknown3: db 0, 8, 3, 4, -1 +; 503e0 + +Function503e0: ; 503e0 + ld hl, PartyCount + ld a, [hli] + and a + ret z + ld c, a + xor a + ld [hConnectedMapWidth], a +.asm_503ea + push bc + push hl + ld hl, Function8e83f + ld a, BANK(Function8e83f) + ld e, $0 + rst FarCall + ld a, [hConnectedMapWidth] + inc a + ld [hConnectedMapWidth], a + pop hl + pop bc + dec c + jr nz, .asm_503ea + callab Function8cf69 + ret +; 50405 +Function50405: ; 50405 + xor a + ld [wd0e3], a + ld de, Unknown_5044f + call Function1bb1 + ld a, [PartyCount] + inc a + ld [wcfa3], a + dec a + ld b, a + ld a, [wd0d8] + and a + jr z, .asm_50422 + inc b + cp b + jr c, .asm_50424 + +.asm_50422 + ld a, $1 + +.asm_50424 + ld [wcfa9], a + ld a, $3 + ld [wcfa8], a + ret +; 5042d + +Function5042d: ; 0x5042d + ld de, Unknown_5044f + call Function1bb1 + ld a, [PartyCount] + ld [wcfa3], a + ld b, a + ld a, [wd0d8] + and a + jr z, .asm_50444 + inc b + cp b + jr c, .asm_50446 +.asm_50444 + ld a, $1 +.asm_50446 + ld [wcfa9], a + ld a, $3 + ld [wcfa8], a + ret +; 5044f (14:444f) + +Unknown_5044f: ; 5044f +; cursor y +; cursor x +; list length +; ? +; bit 6: animate sprites bit 5: wrap around +; ? +; distance between items (hi: y, lo: x) +; allowed buttons (mask) + db $01, $00, $00, $01, $60, $00, $20, $00 +; 50457 + +PartyMenuSelect: ; 0x50457 +; sets carry if exitted menu. + call Function1bc9 + call Function1bee + ld a, [PartyCount] + inc a + ld b, a + ld a, [wcfa9] ; menu selection? + cp b + jr z, .exitmenu ; CANCEL + ld [wd0d8], a + ld a, [hJoyLast] + ld b, a + bit 1, b + jr nz, .exitmenu ; B button? + ld a, [wcfa9] + dec a + ld [CurPartyMon], a + ld c, a + ld b, $0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + ld [CurPartySpecies], a + + ld de, SFX_READ_TEXT_2 + call PlaySFX + call WaitSFX + and a + ret + +.exitmenu + ld de, SFX_READ_TEXT_2 + call PlaySFX + call WaitSFX + scf + ret +; 0x5049a + + +PrintPartyMenuText: ; 5049a + hlcoord 0, 14 + ld bc, $0212 + call TextBox + ld a, [PartyCount] + and a + jr nz, .haspokemon + ld de, YouHaveNoPKMNString + jr .gotstring +.haspokemon ; 504ae + ld a, [PartyMenuActionText] + and $f ; drop high nibble + ld hl, PartyMenuStrings + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld d, [hl] + ld e, a +.gotstring ; 504be + ld a, [Options] + push af + set 4, a ; disable text delay + ld [Options], a + hlcoord 1, 16 ; Coord + call PlaceString + pop af + ld [Options], a + ret +; 0x504d2 + +PartyMenuStrings: ; 0x504d2 + dw ChooseAMonString + dw UseOnWhichPKMNString + dw WhichPKMNString + dw TeachWhichPKMNString + dw MoveToWhereString + dw UseOnWhichPKMNString + dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString + dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString + dw ToWhichPKMNString + +ChooseAMonString: ; 0x504e4 + db "Choose a #MON.@" +UseOnWhichPKMNString: ; 0x504f3 + db "Use on which ?@" +WhichPKMNString: ; 0x50504 + db "Which ?@" +TeachWhichPKMNString: ; 0x5050e + db "Teach which ?@" +MoveToWhereString: ; 0x5051e + db "Move to where?@" +ChooseAFemalePKMNString: ; 0x5052d ; UNUSED + db "Choose a ♀.@" +ChooseAMalePKMNString: ; 0x5053b ; UNUSED + db "Choose a ♂.@" +ToWhichPKMNString: ; 0x50549 + db "To which ?@" + +YouHaveNoPKMNString: ; 0x50556 + db "You have no !@" + + +Function50566: ; 50566 + ld a, [CurPartyMon] + ld hl, PartyMonNicknames + call GetNick + ld a, [PartyMenuActionText] + and $f + ld hl, Unknown_5057b + call Function505c1 + ret +; 5057b + +Unknown_5057b: ; 5057b + dw UnknownText_0x50594 + dw UnknownText_0x5059e + dw UnknownText_0x505a3 + dw UnknownText_0x505a8 + dw UnknownText_0x50599 + dw UnknownText_0x5058f + dw UnknownText_0x505ad + dw UnknownText_0x505b2 + dw UnknownText_0x505b7 + dw UnknownText_0x505bc +; 5058f + +UnknownText_0x5058f: ; 0x5058f + ; recovered @ HP! + text_jump UnknownText_0x1bc0a2 + db "@" +; 0x50594 + +UnknownText_0x50594: ; 0x50594 + ; 's cured of poison. + text_jump UnknownText_0x1bc0bb + db "@" +; 0x50599 + +UnknownText_0x50599: ; 0x50599 + ; 's rid of paralysis. + text_jump UnknownText_0x1bc0d2 + db "@" +; 0x5059e + +UnknownText_0x5059e: ; 0x5059e + ; 's burn was healed. + text_jump UnknownText_0x1bc0ea + db "@" +; 0x505a3 + +UnknownText_0x505a3: ; 0x505a3 + ; was defrosted. + text_jump UnknownText_0x1bc101 + db "@" +; 0x505a8 + +UnknownText_0x505a8: ; 0x505a8 + ; woke up. + text_jump UnknownText_0x1bc115 + db "@" +; 0x505ad + +UnknownText_0x505ad: ; 0x505ad + ; 's health returned. + text_jump UnknownText_0x1bc123 + db "@" +; 0x505b2 + +UnknownText_0x505b2: ; 0x505b2 + ; is revitalized. + text_jump UnknownText_0x1bc13a + db "@" +; 0x505b7 + +UnknownText_0x505b7: ; 0x505b7 + ; grew to level @ !@ @ + text_jump UnknownText_0x1bc14f + db "@" +; 0x505bc + +UnknownText_0x505bc: ; 0x505bc + ; came to its senses. + text_jump UnknownText_0x1bc16e + db "@" +; 0x505c1 + +Function505c1: ; 505c1 + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [Options] + push af + set 4, a + ld [Options], a + call PrintText + pop af + ld [Options], a + ret +; 505da -- cgit v1.2.3 From f1b2466cc3672fa72f5b43e96a634dd83796f047 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 9 Nov 2015 23:01:45 -0500 Subject: Cleaning up static HRAM labels; movement stuff, route 38 trainers --- audio/engine.asm | 44 +++++------ battle/core.asm | 46 +++++------ battle/effect_commands.asm | 151 ++++++++++++++++++------------------ constants/radio_constants.asm | 15 ++++ engine/events.asm | 2 +- engine/evolution_animation.asm | 2 +- engine/map_objects.asm | 2 +- engine/radio.asm | 172 ++++++++++++++++++++--------------------- event/mom.asm | 2 +- gbhw.asm | 18 +++++ home.asm | 8 +- home/battle.asm | 6 +- home/joypad.asm | 2 +- home/movement.asm | 88 ++++++++++++--------- home/vblank.asm | 4 +- main.asm | 67 +++++++++------- maps/Route38.asm | 126 +++++++++++++++--------------- misc/mobile_40.asm | 67 ++++++++++------ tilesets/animations.asm | 2 +- wram.asm | 32 +++++++- 20 files changed, 483 insertions(+), 373 deletions(-) diff --git a/audio/engine.asm b/audio/engine.asm index 7739534ac..017833f6a 100644 --- a/audio/engine.asm +++ b/audio/engine.asm @@ -26,7 +26,7 @@ _SoundRestart:: ; e8000 .clearsound ; sound channel 1 2 3 4 xor a - ld [hli], a ; rNR10, $ff15, rNR30, $ff1f ; sweep = 0 + ld [hli], a ; rNR10, rNR20, rNR30, rNR40 ; sweep = 0 ld [hli], a ; rNR11, rNR21, rNR31, rNR41 ; length/wavepattern = 0 ld a, $08 @@ -345,7 +345,7 @@ UpdateChannels: ; e8125 ld a, [rNR52] and a, %10001101 ; ch2 off ld [rNR52], a - ld hl, $ff15 + ld hl, rNR20 call ClearChannel ret .asm_e8204 @@ -418,39 +418,39 @@ rept 4 endr ld de, WaveSamples add hl, de - ; load wavepattern into $ff30-$ff3f + ; load wavepattern into rWave_0-rWave_f ld a, [hli] - ld [$ff30], a + ld [rWave_0], a ld a, [hli] - ld [$ff31], a + ld [rWave_1], a ld a, [hli] - ld [$ff32], a + ld [rWave_2], a ld a, [hli] - ld [$ff33], a + ld [rWave_3], a ld a, [hli] - ld [$ff34], a + ld [rWave_4], a ld a, [hli] - ld [$ff35], a + ld [rWave_5], a ld a, [hli] - ld [$ff36], a + ld [rWave_6], a ld a, [hli] - ld [$ff37], a + ld [rWave_7], a ld a, [hli] - ld [$ff38], a + ld [rWave_8], a ld a, [hli] - ld [$ff39], a + ld [rWave_9], a ld a, [hli] - ld [$ff3a], a + ld [rWave_a], a ld a, [hli] - ld [$ff3b], a + ld [rWave_b], a ld a, [hli] - ld [$ff3c], a + ld [rWave_c], a ld a, [hli] - ld [$ff3d], a + ld [rWave_d], a ld a, [hli] - ld [$ff3e], a + ld [rWave_e], a ld a, [hli] - ld [$ff3f], a + ld [rWave_f], a pop hl ld a, [wc293] and a, $f0 @@ -475,7 +475,7 @@ endr ld a, [rNR52] and a, %10000111 ; ch4 off ld [rNR52], a - ld hl, $ff1f + ld hl, rNR40 call ClearChannel ret .asm_e82d4 @@ -3179,12 +3179,12 @@ endr ; e8ffe ClearChannel: ; e8ffe -; input: hl = beginning hw sound register (rNR10, $ff15, rNR30, $ff1f) +; input: hl = beginning hw sound register (rNR10, rNR20, rNR30, rNR40) ; output: 00 00 80 00 80 ; sound channel 1 2 3 4 xor a - ld [hli], a ; rNR10, $ff15, rNR30, $ff1f ; sweep = 0 + ld [hli], a ; rNR10, rNR20, rNR30, rNR40 ; sweep = 0 ld [hli], a ; rNR11, rNR21, rNR31, rNR41 ; length/wavepattern = 0 ld a, $08 diff --git a/battle/core.asm b/battle/core.asm index c44400baa..291d6162c 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -5093,14 +5093,14 @@ DrawEnemyHUD: ; 3e043 rr a srl b rr a - ld [$ffb6], a + ld [hProduct + 3], a ld a, b - ld [$ffb5], a + ld [hProduct + 2], a .asm_3e105 - ld a, [$ffb5] + ld a, [hProduct + 2] ld [hDividend + 0], a - ld a, [$ffb6] + ld a, [hProduct + 3] ld [hDividend + 1], a ld a, $2 ld b, a @@ -7796,17 +7796,17 @@ Function3f0d4: ; 3f0d4 DoubleExp: ; 3f106 push bc - ld a, [$ffb5] + ld a, [hProduct + 2] ld b, a - ld a, [$ffb6] + ld a, [hProduct + 3] ld c, a srl b rr c add c - ld [$ffb6], a - ld a, [$ffb5] + ld [hProduct + 3], a + ld a, [hProduct + 2] adc b - ld [$ffb5], a + ld [hProduct + 2], a pop bc ret ; 3f11b @@ -7846,10 +7846,10 @@ Function3f136: ; 3f136 cp MAX_LEVEL jp nc, .asm_3f219 - ld a, [$ffb6] + ld a, [hProduct + 3] ld [wd004], a push af - ld a, [$ffb5] + ld a, [hProduct + 2] ld [wd003], a push af xor a @@ -7883,11 +7883,11 @@ endr .asm_3f186 ld d, MAX_LEVEL callab CalcExpAtLevel - ld a, [hMultiplicand] + ld a, [hProduct + 1] ld b, a - ld a, [$ffb5] + ld a, [hProduct + 2] ld c, a - ld a, [$ffb6] + ld a, [hProduct + 3] ld d, a ld hl, TempMonExp + 2 ld a, [hld] @@ -7958,9 +7958,9 @@ endr call Function3f22c call Function3dfe pop af - ld [$ffb5], a + ld [hProduct + 2], a pop af - ld [$ffb6], a + ld [hProduct + 3], a .asm_3f219 pop bc @@ -8264,14 +8264,14 @@ Function3f39c: ; 3f39c push af inc d callab CalcExpAtLevel - ld hl, $ffb6 + ld hl, hProduct + 3 ld a, [hl] - ld [$ffba], a + ld [hPrintNum8], a pop bc sub b ld [hld], a ld a, [hl] - ld [$ffb9], a + ld [hPrintNum7], a pop bc sbc b ld [hld], a @@ -8281,7 +8281,7 @@ Function3f39c: ; 3f39c sbc b ld [hl], a pop de - ld hl, $ffb5 + ld hl, hProduct + 2 ld a, [hli] push af ld a, [hl] @@ -8289,13 +8289,13 @@ Function3f39c: ; 3f39c ld a, [de] dec de ld c, a - ld a, [$ffba] + ld a, [hPrintNum8] sub c ld [hld], a ld a, [de] dec de ld b, a - ld a, [$ffb9] + ld a, [hPrintNum7] sbc b ld [hld], a ld a, [de] @@ -9194,7 +9194,7 @@ endr add hl, bc dec d jr nz, .asm_3fa62 - ld bc, $ffee + ld bc, -18 add hl, bc push hl diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index d31e635b3..1c5d117ca 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -1966,18 +1966,18 @@ BattleCommand_CheckHit: ; 34d32 ld a, [hQuotient + 1] or b jr nz, .asm_34ea2 - ld [$ffb5], a + ld [hQuotient + 1], a ld a, $1 - ld [$ffb6], a + ld [hQuotient + 2], a .asm_34ea2 ld b, c dec d jr nz, .asm_34e7a - ld a, [$ffb5] + ld a, [hQuotient + 1] and a - ld a, [$ffb6] + ld a, [hQuotient + 2] jr z, .asm_34eaf ld a, $ff @@ -2683,7 +2683,7 @@ BattleCommand_RageDamage: ; 3527b dec a add hl, bc jr nc, .asm_35290 - ld hl, $ffff + ld hl, -1 .asm_3529a ld a, h ld [CurDamage], a @@ -3371,33 +3371,33 @@ BattleCommand_DamageCalc: ; 35612 ; Selfdestruct and Explosion halve defense. cp EFFECT_EXPLOSION - jr nz, .asm_35620 + jr nz, .dont_explode srl c - jr nz, .asm_35620 + jr nz, .dont_explode inc c -.asm_35620 +.dont_explode ; Variable-hit moves and Conversion can have a power of 0. cp EFFECT_MULTI_HIT - jr z, .asm_3562b + jr z, .skip_zero_damage_check cp EFFECT_CONVERSION - jr z, .asm_3562b + jr z, .skip_zero_damage_check ; No damage if move power is 0. ld a, d and a ret z -.asm_3562b +.skip_zero_damage_check ; Minimum defense value is 1. ld a, c and a - jr nz, .asm_35631 + jr nz, .not_dividing_by_zero ld c, 1 -.asm_35631 +.not_dividing_by_zero xor a ld hl, hDividend @@ -3409,9 +3409,9 @@ endr ; Level * 2 ld a, e add a - jr nc, .asm_3563e + jr nc, .level_not_overflowing ld [hl], $1 -.asm_3563e +.level_not_overflowing inc hl ld [hli], a @@ -3493,44 +3493,44 @@ endr ; Update CurDamage (capped at 997). ld hl, CurDamage ld b, [hl] - ld a, [hQuotient + 2] + ld a, [hProduct + 3] add b - ld [$ffb6], a - jr nc, .asm_356a5 + ld [hProduct + 3], a + jr nc, .dont_cap_1 - ld a, [hQuotient + 1] + ld a, [hProduct + 2] inc a - ld [$ffb5], a + ld [hProduct + 2], a and a jr z, .Cap -.asm_356a5 - ld a, [$ffb3] +.dont_cap_1 + ld a, [hProduct] ld b, a - ld a, [$ffb4] + ld a, [hProduct + 1] or a jr nz, .Cap - ld a, [$ffb5] + ld a, [hProduct + 2] cp 998 / $100 - jr c, .asm_356bd + jr c, .dont_cap_2 cp 998 / $100 + 1 jr nc, .Cap - ld a, [$ffb6] + ld a, [hProduct + 3] cp 998 % $100 jr nc, .Cap -.asm_356bd +.dont_cap_2 inc hl - ld a, [$ffb6] + ld a, [hProduct + 3] ld b, [hl] add b ld [hld], a - ld a, [$ffb5] + ld a, [hProduct + 2] ld b, [hl] adc b ld [hl], a @@ -3538,7 +3538,7 @@ endr ld a, [hl] cp 998 / $100 - jr c, .asm_356df + jr c, .dont_cap_3 cp 998 / $100 + 1 jr nc, .Cap @@ -3546,7 +3546,7 @@ endr inc hl ld a, [hld] cp 998 % $100 - jr c, .asm_356df + jr c, .dont_cap_3 .Cap ld a, 997 / $100 @@ -3555,15 +3555,15 @@ endr ld [hld], a -.asm_356df +.dont_cap_3 ; Minimum neutral damage is 2 (bringing the cap to 999). inc hl ld a, [hl] add 2 ld [hld], a - jr nc, .asm_356e7 + jr nc, .dont_floor inc [hl] -.asm_356e7 +.dont_floor ld a, 1 and a @@ -3576,20 +3576,20 @@ endr ret z ; x2 - ld a, [$ffb6] + ld a, [hQuotient + 2] add a - ld [$ffb6], a + ld [hProduct + 3], a - ld a, [$ffb5] + ld a, [hQuotient + 1] rl a - ld [$ffb5], a + ld [hProduct + 2], a ; Cap at $ffff. ret nc ld a, $ff - ld [$ffb5], a - ld [$ffb6], a + ld [hProduct + 2], a + ld [hProduct + 3], a ret ; 35703 @@ -3623,55 +3623,56 @@ BattleCommand_ConstantDamage: ; 35726 ld hl, BattleMonLevel ld a, [hBattleTurn] and a - jr z, .asm_35731 + jr z, .got_turn ld hl, EnemyMonLevel -.asm_35731 +.got_turn ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_LEVEL_DAMAGE ld b, [hl] ld a, 0 - jr z, .asm_3578c + jr z, .got_power ld a, BATTLE_VARS_MOVE_EFFECT call GetBattleVar cp EFFECT_PSYWAVE - jr z, .asm_35758 + jr z, .psywave cp EFFECT_SUPER_FANG - jr z, .asm_3576b + jr z, .super_fang cp EFFECT_REVERSAL - jr z, .asm_35792 + jr z, .reversal ld a, BATTLE_VARS_MOVE_POWER call GetBattleVar ld b, a ld a, $0 - jr .asm_3578c + jr .got_power -.asm_35758 +.psywave ld a, b srl a add b ld b, a -.asm_3575d +.psywave_loop call BattleRandom and a - jr z, .asm_3575d ; 35761 $fa + jr z, .psywave_loop ; 35761 $fa cp b - jr nc, .asm_3575d ; 35764 $f7 + jr nc, .psywave_loop ; 35764 $f7 ld b, a ld a, $0 - jr .asm_3578c ; 35769 $21 -.asm_3576b + jr .got_power ; 35769 $21 + +.super_fang ld hl, EnemyMonHP ld a, [hBattleTurn] and a - jr z, .asm_35776 ; 35771 $3 + jr z, .got_hp ; 35771 $3 ld hl, BattleMonHP -.asm_35776 +.got_hp ld a, [hli] srl a ld b, a @@ -3681,26 +3682,28 @@ BattleCommand_ConstantDamage: ; 35726 ld a, b pop bc and a - jr nz, .asm_3578c ; 35781 $9 + jr nz, .got_power ; 35781 $9 or b ld a, $0 - jr nz, .asm_3578c ; 35786 $4 + jr nz, .got_power ; 35786 $4 ld b, $1 - jr .asm_3578c ; 3578a $0 -.asm_3578c + jr .got_power ; 3578a $0 + +.got_power ld hl, CurDamage ld [hli], a ld [hl], b ret -.asm_35792 + +.reversal ld hl, BattleMonHP ld a, [hBattleTurn] and a - jr z, .asm_3579d ; 35798 $3 + jr z, .reversal_got_hp ; 35798 $3 ld hl, EnemyMonHP -.asm_3579d +.reversal_got_hp xor a - ld [$ffb3], a + ld [hDividend], a ld [hMultiplicand + 0], a ld a, [hli] ld [hMultiplicand + 1], a @@ -3715,9 +3718,9 @@ BattleCommand_ConstantDamage: ; 35726 ld [hDivisor], a ld a, b and a - jr z, .asm_357d6 + jr z, .skip_to_divide - ld a, [$ffb7] + ld a, [hProduct + 4] srl b rr a srl b @@ -3734,21 +3737,21 @@ BattleCommand_ConstantDamage: ; 35726 ld a, b ld [hDividend + 2], a -.asm_357d6 +.skip_to_divide ld b, $4 call Divide ld a, [hQuotient + 2] ld b, a ld hl, .FlailPower -.asm_357e1 +.reversal_loop ld a, [hli] cp b - jr nc, .asm_357e8 + jr nc, .break_loop inc hl - jr .asm_357e1 + jr .reversal_loop -.asm_357e8 +.break_loop ld a, [hBattleTurn] and a ld a, [hl] @@ -6277,16 +6280,16 @@ endr jr c, .not_maxed_out ld a, 999 % $100 - ld [$ffb6], a + ld [hQuotient + 2], a ld a, 999 / $100 - ld [$ffb5], a + ld [hQuotient + 1], a .not_maxed_out pop bc - ld a, [$ffb5] + ld a, [hQuotient + 1] ld [bc], a inc bc - ld a, [$ffb6] + ld a, [hQuotient + 2] ld [bc], a inc bc pop hl diff --git a/constants/radio_constants.asm b/constants/radio_constants.asm index 46341c305..ee9cd6ce6 100644 --- a/constants/radio_constants.asm +++ b/constants/radio_constants.asm @@ -93,3 +93,18 @@ const BUENA_ITEM const BUENA_MOVE const BUENA_STRING + + const_def + const BUENA_STARTERS + const BUENA_DRINKS + const BUENA_ITEMS + const BUENA_BALLS + const BUENA_MON1 + const BUENA_MON2 + const BUENA_TOWNS + const BUENA_TYPES + const BUENA_MOVES + const BUENA_XITEMS + const BUENA_STATIONS +NUM_PASSWORD_CATEGORIES EQU const_value +NUM_PASSWORDS_PER_CATEGORY EQU 3 diff --git a/engine/events.asm b/engine/events.asm index 04511f776..2cc307031 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -899,7 +899,7 @@ PlayerMovement: ; 96af0 CheckMenuOW: ; 96b30 xor a ld [hMenuReturn], a - ld [$ffa1], a + ld [hMenuReturn + 1], a ld a, [hJoyPressed] bit 2, a ; SELECT diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm index a2a93e189..37f51932d 100755 --- a/engine/evolution_animation.asm +++ b/engine/evolution_animation.asm @@ -342,7 +342,7 @@ Function4e7e8: ; 4e7e8 Function4e80c: ; 4e80c push bc callab Function8cf69 - ld a, [$ff9b] + ld a, [hVBlankCounter] and $e srl a rept 2 diff --git a/engine/map_objects.asm b/engine/map_objects.asm index 7addafd23..ae661a392 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -2926,7 +2926,7 @@ Function56cd: ; 56cd srl a srl a srl a - cp $14 + cp SCREEN_WIDTH jr c, .ok3 sub $20 diff --git a/engine/radio.asm b/engine/radio.asm index d833b66f5..eff95c081 100644 --- a/engine/radio.asm +++ b/engine/radio.asm @@ -1,7 +1,7 @@ PlayRadioShow: ; b8612 ; If we're already in the radio program proper, we don't need to be here. - ld a, [wd002] - cp 8 + ld a, [wCurrentRadioLine] + cp POKE_FLUTE_RADIO jr nc, .ok ; If Team Rocket is not occupying the radio tower, we don't need to be here. ld a, [StatusFlags2] @@ -12,11 +12,11 @@ PlayRadioShow: ; b8612 and a jr nz, .ok ; Team Rocket broadcasts on all stations. - ld a, 7 - ld [wd002], a + ld a, ROCKET_RADIO + ld [wCurrentRadioLine], a .ok -; Jump to the currently loaded station. The index to which we need to jump is in wd002. - ld a, [wd002] +; Jump to the currently loaded station. The index to which we need to jump is in wCurrentRadioLine. + ld a, [wCurrentRadioLine] ld e, a ld d, 0 ld hl, RadioJumptable @@ -128,16 +128,16 @@ RadioJumptable: ; b863a (2e:463a) PrintRadioLine: ; b86ea (2e:46ea) - ld [wd003], a - ld hl, wd00c - ld a, [wd005] - cp $2 + ld [wNextRadioLine], a + ld hl, wRadioText + ld a, [wNumRadioLinesPrinted] + cp 2 jr nc, .print inc hl - ld [hl], $0 + ld [hl], "" inc a - ld [wd005], a - cp $2 + ld [wNumRadioLinesPrinted], a + cp 2 jr nz, .print bccoord 1, 16 call PlaceWholeStringInBoxAtOnce @@ -146,9 +146,9 @@ PrintRadioLine: ; b86ea (2e:46ea) call PrintTextBoxText .skip ld a, RADIO_SCROLL - ld [wd002], a + ld [wCurrentRadioLine], a ld a, 100 - ld [wd004], a + ld [wRadioTextDelay], a ret ; b8718 (2e:4718) @@ -170,23 +170,23 @@ ReplacePeriodsWithSpaces: ; b8718 ; b8728 RadioScroll: ; b8728 (2e:4728) - ld hl, wd004 + ld hl, wRadioTextDelay ld a, [hl] and a jr z, .proceed dec [hl] ret .proceed - ld a, [wd003] - ld [wd002], a - ld a, [wd005] + ld a, [wNextRadioLine] + ld [wCurrentRadioLine], a + ld a, [wNumRadioLinesPrinted] cp 1 call nz, CopyBottomLineToTopLine jp ClearBottomLine OaksPkmnTalk1: ; b8742 (2e:4742) - ld a, $5 - ld [wd006], a + ld a, 5 + ld [wOaksPkmnTalkSegmentCounter], a call StartRadioStation ld hl, UnknownText_0xb8820 ld a, OAKS_POKEMON_TALK_2 @@ -274,7 +274,7 @@ endr ld [CurPartySpecies], a call GetPokemonName ld hl, StringBuffer1 - ld de, wd050 + ld de, wOaksPkmnTalkPkmnNameBuffer ld bc, PKMN_NAME_LENGTH call CopyBytes ; Now that we've chosen our wild Pokemon, @@ -290,7 +290,7 @@ endr .overflow pop bc - ld a, $0 + ld a, OAKS_POKEMON_TALK jp PrintRadioLine ; b87f2 (2e:47f2) @@ -361,7 +361,7 @@ UnknownText_0xb8839: ; 0xb8839 OaksPkmnTalk7: ; b883e (2e:483e) ld a, [CurPartySpecies] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetPokemonName ld hl, UnknownText_0xb884f ld a, OAKS_POKEMON_TALK_8 @@ -517,13 +517,13 @@ endr ld a, [hli] ld h, [hl] ld l, a - ld a, [wd006] + ld a, [wOaksPkmnTalkSegmentCounter] dec a - ld [wd006], a + ld [wOaksPkmnTalkSegmentCounter], a ld a, OAKS_POKEMON_TALK_4 jr nz, .ok - ld a, $5 - ld [wd006], a + ld a, 5 + ld [wOaksPkmnTalkSegmentCounter], a ld a, OAKS_POKEMON_TALK_10 .ok jp NextRadioLine @@ -652,9 +652,9 @@ OaksPkmnTalk10: ; b896e (2e:496e) ld hl, UnknownText_0xb898e call PrintText ld a, OAKS_POKEMON_TALK_11 - ld [wd002], a + ld [wCurrentRadioLine], a ld a, 100 - ld [wd004], a + ld [wRadioTextDelay], a ret ; b898e (2e:498e) @@ -669,7 +669,7 @@ UnknownText_0xb8993: ; 0xb8993 ; 0xb8994 OaksPkmnTalk11: ; b8994 (2e:4994) - ld hl, wd004 + ld hl, wRadioTextDelay dec [hl] ret nz hlcoord 9, 14 @@ -683,7 +683,7 @@ OaksPkmnTalk11: ; b8994 (2e:4994) ; b89a9 OaksPkmnTalk12: ; b89a9 (2e:49a9) - ld hl, wd004 + ld hl, wRadioTextDelay dec [hl] ret nz hlcoord 1, 16 @@ -697,7 +697,7 @@ OaksPkmnTalk12: ; b89a9 (2e:49a9) ; b89c6 OaksPkmnTalk13: ; b89c6 (2e:49c6) - ld hl, wd004 + ld hl, wRadioTextDelay dec [hl] ret nz hlcoord 12, 16 @@ -711,7 +711,7 @@ OaksPkmnTalk13: ; b89c6 (2e:49c6) ; b89d7 OaksPkmnTalk14: ; b89d7 (2e:49d7) - ld hl, wd004 + ld hl, wRadioTextDelay dec [hl] ret nz ld de, $1d @@ -719,13 +719,13 @@ OaksPkmnTalk14: ; b89d7 (2e:49d7) ld hl, .terminator call PrintText ld a, OAKS_POKEMON_TALK_4 - ld [wd003], a + ld [wNextRadioLine], a xor a - ld [wd005], a + ld [wNumRadioLinesPrinted], a ld a, RADIO_SCROLL - ld [wd002], a + ld [wCurrentRadioLine], a ld a, 10 - ld [wd004], a + ld [wRadioTextDelay], a ret ; b89ff (2e:49ff) @@ -734,9 +734,9 @@ OaksPkmnTalk14: ; b89d7 (2e:49d7) ; 0xb8a00 PlaceRadioString: ; b8a00 (2e:4a00) - ld [wd002], a + ld [wCurrentRadioLine], a ld a, 100 - ld [wd004], a + ld [wRadioTextDelay], a jp PlaceString CopyBottomLineToTopLine: ; b8a0b (2e:4a0b) @@ -747,11 +747,11 @@ CopyBottomLineToTopLine: ; b8a0b (2e:4a0b) ClearBottomLine: ; b8a17 (2e:4a17) hlcoord 1, 15 - ld bc, $12 + ld bc, SCREEN_WIDTH - 2 ld a, " " call ByteFill hlcoord 1, 16 - ld bc, $12 + ld bc, SCREEN_WIDTH - 2 ld a, " " jp ByteFill @@ -784,7 +784,7 @@ PokedexShow1: ; b8a46 (2e:4a46) call StartRadioStation .loop call Random - cp CELEBI + cp NUM_POKEMON jr nc, .loop ld c, a push bc @@ -795,7 +795,7 @@ PokedexShow1: ; b8a46 (2e:4a46) inc c ld a, c ld [CurPartySpecies], a - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetPokemonName ld hl, UnknownText_0xb8b30 ld a, POKEDEX_SHOW_2 @@ -817,8 +817,8 @@ endr push hl call CopyDexEntryPart1 dec hl - ld [hl], $57 - ld hl, wd26b + ld [hl], "" + ld hl, wPokedexShowPointerAddr call CopyRadioTextToRAM pop hl pop af @@ -827,9 +827,9 @@ rept 4 inc hl endr ld a, l - ld [wd26b], a + ld [wPokedexShowPointerAddr], a ld a, h - ld [wd26c], a + ld [wPokedexShowPointerAddr + 1], a ld a, POKEDEX_SHOW_3 jp PrintRadioLine @@ -864,17 +864,17 @@ PokedexShow8: ; b8acc (2e:4acc) jp PrintRadioLine CopyDexEntry: ; b8ad4 (2e:4ad4) - ld a, [wd26b] + ld a, [wPokedexShowPointerAddr] ld l, a - ld a, [wd26c] + ld a, [wPokedexShowPointerAddr + 1] ld h, a - ld a, [wd26d] + ld a, [wPokedexShowPointerBank] push af push hl call CopyDexEntryPart1 dec hl ld [hl], "" - ld hl, wd26b + ld hl, wPokedexShowPointerAddr call CopyRadioTextToRAM pop hl pop af @@ -882,10 +882,10 @@ CopyDexEntry: ; b8ad4 (2e:4ad4) ret CopyDexEntryPart1: ; b8af3 (2e:4af3) - ld de, wd26d + ld de, wPokedexShowPointerBank ld bc, SCREEN_WIDTH - 1 call FarCopyBytes - ld hl, wd26b + ld hl, wPokedexShowPointerAddr ld [hl], "" inc hl ld [hl], "" @@ -914,11 +914,11 @@ CopyDexEntryPart2: ; b8b11 (2e:4b11) jr nz, .loop .okay ld a, l - ld [wd26b], a + ld [wPokedexShowPointerAddr], a ld a, h - ld [wd26c], a + ld [wPokedexShowPointerAddr + 1], a ld a, d - ld [wd26d], a + ld [wPokedexShowPointerBank], a ret ; b8b30 (2e:4b30) @@ -1302,9 +1302,9 @@ PeoplePlaces4: ; People jp NextRadioLine ; b8d3e (2e:4d3e) -.E4Names: db WILL, BRUNO, KAREN, KOGA, CHAMPION ; $0b, $0d, $0e, $0f, $10 -.KantoLeaderNames: db BROCK, MISTY, LT_SURGE, ERIKA, JANINE, SABRINA, BLAINE, BLUE ; $11, $12, $13, $15, $1a, $23, $2e, $40 -.MiscNames: db RIVAL1, POKEMON_PROF, CAL, RIVAL2, RED ; $09, $0a, $0c, $2a, $3f +.E4Names: db WILL, BRUNO, KAREN, KOGA, CHAMPION +.KantoLeaderNames: db BROCK, MISTY, LT_SURGE, ERIKA, JANINE, SABRINA, BLAINE, BLUE +.MiscNames: db RIVAL1, POKEMON_PROF, CAL, RIVAL2, RED db -1 ; b8d51 @@ -1507,11 +1507,11 @@ endr ld l, a call CopyRadioTextToRAM call Random - cp $a ; 6.25 percent + cp 4 percent ld a, PLACES_AND_PEOPLE jr c, .ok call Random - cp $7b ; 48 percent + cp 1 + 48 percent ld a, PLACES_AND_PEOPLE_4 ; People jr c, .ok ld a, PLACES_AND_PEOPLE_6 ; Places @@ -1653,26 +1653,26 @@ UnknownText_0xb8ef2: ; 0xb8ef2 PokeFluteRadio: ; b8ef7 (2e:4ef7) call StartRadioStation ld a, 1 - ld [wd005], a + ld [wNumRadioLinesPrinted], a ret UnownRadio: ; b8f00 (2e:4f00) call StartRadioStation ld a, 1 - ld [wd005], a + ld [wNumRadioLinesPrinted], a ret EvolutionRadio: ; b8f09 (2e:4f09) call StartRadioStation ld a, 1 - ld [wd005], a + ld [wNumRadioLinesPrinted], a ret BuenasPassword1: ; b8f12 (2e:4f12) ; Determine if we need to be here - call BuenasPasswordCheckMidnight + call BuenasPasswordCheckTime jp nc, .PlayPassword - ld a, [wd005] + ld a, [wNumRadioLinesPrinted] and a jp z, BuenasPassword20 jp BuenasPassword8 @@ -1698,14 +1698,14 @@ BuenasPassword2: ; b8f3f (2e:4f3f) jp NextRadioLine BuenasPassword3: ; b8f47 (2e:4f47) - call BuenasPasswordCheckMidnight + call BuenasPasswordCheckTime ld hl, UnknownText_0xb918c jp c, BuenasPasswordAfterMidnight ld a, BUENAS_PASSWORD_4 jp NextRadioLine BuenasPassword4: ; b8f55 (2e:4f55) - call BuenasPasswordCheckMidnight + call BuenasPasswordCheckTime jp c, BuenasPassword8 ld a, [wBuenasPassword] ; If we already generated the password today, we don't need to generate a new one. @@ -1716,7 +1716,7 @@ BuenasPassword4: ; b8f55 (2e:4f55) .greater_than_11 call Random and $f - cp $b + cp NUM_PASSWORD_CATEGORIES jr nc, .greater_than_11 ; Store it in the high nybble of e. swap a @@ -1725,7 +1725,7 @@ BuenasPassword4: ; b8f55 (2e:4f55) .greater_than_three call Random and $3 - cp $3 + cp NUM_PASSWORDS_PER_CATEGORY jr nc, .greater_than_three ; The high nybble of wBuenasPassword will now contain the password group index, and the low nybble contains the actual password. add e @@ -1808,7 +1808,7 @@ endr ld l, c add hl, de ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a ret .RawString: ; b8fde (2e:4fde) @@ -1874,7 +1874,7 @@ BuenasPassword6: ; b90a4 (2e:50a4) jp NextRadioLine BuenasPassword7: ; b90ac (2e:50ac) - call BuenasPasswordCheckMidnight + call BuenasPasswordCheckTime ld hl, UnknownText_0xb91a0 jr c, BuenasPasswordAfterMidnight ld a, BUENAS_PASSWORD @@ -1959,29 +1959,29 @@ BuenasPassword20: ; b912a (2e:512a) ld [hBGMapMode], a ; $ff00+$d4 ld hl, WeeklyFlags res 7, [hl] - ld a, $4 - ld [wd002], a + ld a, BUENAS_PASSWORD + ld [wCurrentRadioLine], a xor a - ld [wd005], a + ld [wNumRadioLinesPrinted], a ld hl, UnknownText_0xb91d7 ld a, BUENAS_PASSWORD_21 jp NextRadioLine BuenasPassword21: ; b9152 (2e:5152) - ld a, $4 - ld [wd002], a + ld a, BUENAS_PASSWORD + ld [wCurrentRadioLine], a xor a - ld [wd005], a - call BuenasPasswordCheckMidnight + ld [wNumRadioLinesPrinted], a + call BuenasPasswordCheckTime jp nc, BuenasPassword1 ld hl, UnknownText_0xb91d7 ld a, BUENAS_PASSWORD_21 jp NextRadioLine -BuenasPasswordCheckMidnight: ; b9169 (2e:5169) +BuenasPasswordCheckTime: ; b9169 (2e:5169) call UpdateTime ld a, [hHours] ; $ff00+$94 - cp $12 + cp 18 ; 6 PM ret ; b9171 (2e:5171) @@ -2100,19 +2100,19 @@ UnknownText_0xb91d7: ; 0xb91d7 CopyRadioTextToRAM: ; b91dc (2e:51dc) ld a, [hl] cp TX_FAR - jp z, FarJumpText - ld de, wd00c + jp z, FarCopyRadioText + ld de, wRadioText ld bc, SCREEN_WIDTH * 2 jp CopyBytes StartRadioStation: ; b91eb (2e:51eb) - ld a, [wd005] + ld a, [wNumRadioLinesPrinted] and a ret nz call RadioTerminator call PrintText ld hl, RadioChannelSongs - ld a, [wd002] + ld a, [wCurrentRadioLine] ld c, a ld b, 0 rept 2 diff --git a/event/mom.asm b/event/mom.asm index 691fe6626..801787c52 100644 --- a/event/mom.asm +++ b/event/mom.asm @@ -510,7 +510,7 @@ Function16571: ; 16571 ld de, StringBuffer2 lb bc, PRINTNUM_MONEY | PRINTNUM_LEADINGZEROS | 3, 6 call PrintNum - ld a, [$ff9b] + ld a, [hVBlankCounter] and $10 jr nz, .skip hlcoord 13, 6 diff --git a/gbhw.asm b/gbhw.asm index 8c33239f2..fac373647 100644 --- a/gbhw.asm +++ b/gbhw.asm @@ -59,6 +59,7 @@ rNR11 EQU $ff11 ; Channel 1 Sound length/Wave pattern duty (R/W) rNR12 EQU $ff12 ; Channel 1 Volume Envelope (R/W) rNR13 EQU $ff13 ; Channel 1 Frequency lo (Write Only) rNR14 EQU $ff14 ; Channel 1 Frequency hi (R/W) +rNR20 EQU $ff15 ; Channel 2 Sweep register (R/W) rNR21 EQU $ff16 ; Channel 2 Sound Length/Wave Pattern Duty (R/W) rNR22 EQU $ff17 ; Channel 2 Volume Envelope (R/W) rNR23 EQU $ff18 ; Channel 2 Frequency lo data (W) @@ -68,6 +69,7 @@ rNR31 EQU $ff1b ; Channel 3 Sound Length rNR32 EQU $ff1c ; Channel 3 Select output level (R/W) rNR33 EQU $ff1d ; Channel 3 Frequency's lower data (W) rNR34 EQU $ff1e ; Channel 3 Frequency's higher data (R/W) +rNR40 EQU $ff1f ; Channel 4 Sweep register (R/W) rNR41 EQU $ff20 ; Channel 4 Sound Length (R/W) rNR42 EQU $ff21 ; Channel 4 Volume Envelope (R/W) rNR43 EQU $ff22 ; Channel 4 Polynomial Counter (R/W) @@ -75,6 +77,22 @@ rNR44 EQU $ff23 ; Channel 4 Counter/consecutive; Inital (R/W) rNR50 EQU $ff24 ; Channel control / ON-OFF / Volume (R/W) rNR51 EQU $ff25 ; Selection of Sound output terminal (R/W) rNR52 EQU $ff26 ; Sound on/off +rWave_0 EQU $ff30 +rWave_1 EQU $ff31 +rWave_2 EQU $ff32 +rWave_3 EQU $ff33 +rWave_4 EQU $ff34 +rWave_5 EQU $ff35 +rWave_6 EQU $ff36 +rWave_7 EQU $ff37 +rWave_8 EQU $ff38 +rWave_9 EQU $ff39 +rWave_a EQU $ff3a +rWave_b EQU $ff3b +rWave_c EQU $ff3c +rWave_d EQU $ff3d +rWave_e EQU $ff3e +rWave_f EQU $ff3f rLCDC EQU $ff40 ; LCD Control (R/W) rSTAT EQU $ff41 ; LCDC Status (R/W) rSCY EQU $ff42 ; Scroll Y (R/W) diff --git a/home.asm b/home.asm index 2f1b231a0..8497891ef 100644 --- a/home.asm +++ b/home.asm @@ -1460,17 +1460,17 @@ CheckTrainerBattle:: ; 360d pop af ld [hLastTalked], a ld a, b - ld [CurFruit], a + ld [EngineBuffer2], a ld a, c - ld [wd040], a + ld [EngineBuffer3], a jr Function367e ; 3674 Function3674:: ; 3674 ld a, 1 - ld [CurFruit], a + ld [EngineBuffer2], a ld a, -1 - ld [wd040], a + ld [EngineBuffer3], a Function367e:: ; 367e call GetMapScriptHeaderBank diff --git a/home/battle.asm b/home/battle.asm index 94a065d4d..57bab4083 100644 --- a/home/battle.asm +++ b/home/battle.asm @@ -234,7 +234,7 @@ endr ; 3a90 -FarJumpText:: ; 3a90 +FarCopyRadioText:: ; 3a90 inc hl ld a, [hROMBank] push af @@ -249,8 +249,8 @@ FarJumpText:: ; 3a90 ld l, a ld a, d ld h, a - ld de, wd00c - ld bc, $0028 + ld de, wRadioText + ld bc, 2 * SCREEN_WIDTH call CopyBytes pop af ld [hROMBank], a diff --git a/home/joypad.asm b/home/joypad.asm index 00179fc7f..eb482112e 100644 --- a/home/joypad.asm +++ b/home/joypad.asm @@ -437,7 +437,7 @@ KeepTextOpen:: ; aaf ; af5 .blink_cursor: ; af5 - ld a, [$ff9b] + ld a, [hVBlankCounter] and %00010000 ; bit 4, a jr z, .cursor_off ld a, "▼" diff --git a/home/movement.asm b/home/movement.asm index 82486b5c1..fdb606bd5 100644 --- a/home/movement.asm +++ b/home/movement.asm @@ -1,29 +1,29 @@ -Function1b1e:: ; 1b1e - ld [wd003], a +InitMovementBuffer:: ; 1b1e + ld [wMovementBufferPerson], a xor a - ld [DefaultFlypoint], a - ld a, $0 + ld [wMovementBufferCount], a + ld a, $0 ; useless ld [wd004], a ld a, $7 - ld [StartFlypoint], a + ld [wd005], a ld a, $d0 - ld [EndFlypoint], a + ld [wd006], a ret ; 1b35 -Function1b35:: ; 1b35 - ld a, [DefaultFlypoint] +DecrementMovementBufferCount:: ; 1b35 + ld a, [wMovementBufferCount] and a ret z dec a - ld [DefaultFlypoint], a + ld [wMovementBufferCount], a ret ; 1b3f -Function1b3f:: ; 1b3f +AppendToMovementBuffer:: ; 1b3f push hl push de - ld hl, DefaultFlypoint + ld hl, wMovementBufferCount ld e, [hl] inc [hl] ld d, 0 @@ -35,47 +35,50 @@ Function1b3f:: ; 1b3f ret ; 1b50 -Function1b50:: ; 1b50 +AppendToMovementBufferNTimes:: ; 1b50 push af ld a, c and a - jr nz, .asm_1b57 + jr nz, .okay pop af ret -.asm_1b57 +.okay pop af -.asm_1b58 - call Function1b3f +.loop + call AppendToMovementBuffer dec c - jr nz, .asm_1b58 + jr nz, .loop ret ; 1b5f -Function1b5f:: ; 1b5f +ComputePathToWalkToPlayer:: ; 1b5f push af +; compare x coords, load left/right into h, and x distance into d ld a, b sub d - ld h, $2 - jr nc, .asm_1b6a + ld h, LEFT + jr nc, .got_x_distance dec a cpl - ld h, $3 + ld h, RIGHT -.asm_1b6a +.got_x_distance ld d, a +; compare y coords, load up/down into l, and y distance into e ld a, c sub e - ld l, $1 - jr nc, .asm_1b75 + ld l, UP + jr nc, .got_y_distance dec a cpl - ld l, $0 + ld l, DOWN -.asm_1b75 +.got_y_distance ld e, a +; if the x distance is less than the y distance, swap h and l, and swap d and e cp d - jr nc, .asm_1b7f + jr nc, .done ld a, h ld h, l ld l, a @@ -83,21 +86,23 @@ Function1b5f:: ; 1b5f ld d, e ld e, a -.asm_1b7f +.done pop af ld b, a +; Add movement in the longer direction first... ld a, h - call Function1b92 + call .GetMovementData ld c, d - call Function1b50 + call AppendToMovementBufferNTimes +; ... then add the shorter direction. ld a, l - call Function1b92 + call .GetMovementData ld c, e - call Function1b50 + call AppendToMovementBufferNTimes ret ; 1b92 -Function1b92:: ; 1b92 +.GetMovementData: ; 1b92 push de push hl ld l, b @@ -108,7 +113,7 @@ endr ld e, a ld d, 0 add hl, de - ld de, .data_1ba5 + ld de, .MovementData add hl, de ld a, [hl] pop hl @@ -116,8 +121,19 @@ endr ret ; 1ba5 -.data_1ba5 - db 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19 +.MovementData + slow_step_down + slow_step_up + slow_step_left + slow_step_right + step_down + step_up + step_left + step_right + big_step_down + big_step_up + big_step_left + big_step_right ; 1bb1 Function1bb1:: ; 1bb1 diff --git a/home/vblank.asm b/home/vblank.asm index 870ef4808..69d86504d 100644 --- a/home/vblank.asm +++ b/home/vblank.asm @@ -64,7 +64,7 @@ VBlank0:: ; 2b1 ; sound ; inc frame counter - ld hl, $ff9b + ld hl, hVBlankCounter inc [hl] ; advance random variables @@ -418,7 +418,7 @@ VBlank6:: ; 436 ld [hROMBankBackup], a ; inc frame counter - ld hl, $ff9b + ld hl, hVBlankCounter inc [hl] call UpdateCGBPals diff --git a/main.asm b/main.asm index 924012f37..9ec72555b 100644 --- a/main.asm +++ b/main.asm @@ -1149,7 +1149,7 @@ Function627b: ; 627b ; 6292 Function6292: ; 6292 ; unreferenced - ld a, [$ff9b] + ld a, [hVBlankCounter] and $7 ret nz ld hl, LYOverrides + $5f @@ -3688,28 +3688,29 @@ Function830d: ; 830d TrainerWalkToPlayer: ; 831e ld a, [hLastTalked] - call Function1b1e - ld a, $3e - call Function1b3f + call InitMovementBuffer + ld a, movement_show_person + call AppendToMovementBuffer ld a, [wd03f] dec a - jr z, Function833b + jr z, .TerminateStep ld a, [hLastTalked] ld b, a - ld c, 0 + ld c, PLAYER ld d, 1 - call Function8341 - call Function1b35 + call .GetPathToPlayer + call DecrementMovementBufferCount -Function833b - ld a, $47 - call Function1b3f +.TerminateStep + ld a, movement_step_end + call AppendToMovementBuffer ret ; 8341 -Function8341: ; 8341 +.GetPathToPlayer: ; 8341 push de push bc +; get player object struct, load to de ld a, c call GetMapObject ld hl, MAPOBJECT_OBJECT_STRUCT_ID @@ -3718,6 +3719,8 @@ Function8341: ; 8341 call GetObjectStruct ld d, b ld e, c + +; get last talked object struct, load to bc pop bc ld a, b call GetMapObject @@ -3725,6 +3728,8 @@ Function8341: ; 8341 add hl, bc ld a, [hl] call GetObjectStruct + +; get last talked coords, load to bc ld hl, OBJECT_MAP_X add hl, bc ld a, [hl] @@ -3732,6 +3737,8 @@ Function8341: ; 8341 add hl, bc ld c, [hl] ld b, a + +; get player coords, load to de ld hl, OBJECT_MAP_X add hl, de ld a, [hl] @@ -3739,35 +3746,39 @@ Function8341: ; 8341 add hl, de ld e, [hl] ld d, a + pop af - call Function1b5f + call ComputePathToWalkToPlayer ret ; 8379 Special_SurfStartStep: ; 8379 - call Function1b1e - call Function8388 - call Function1b3f - ld a, $47 - call Function1b3f + call InitMovementBuffer + call .GetMovementData + call AppendToMovementBuffer + ld a, movement_step_end + call AppendToMovementBuffer ret ; 8388 -Function8388: ; 8388 +.GetMovementData: ; 8388 ld a, [PlayerDirection] srl a srl a and 3 ld e, a ld d, 0 - ld hl, .data_839a + ld hl, .movement_data add hl, de ld a, [hl] ret ; 839a -.data_839a - db 8 + DOWN, 8 + UP, 8 + LEFT, 8 + RIGHT +.movement_data + slow_step_down + slow_step_up + slow_step_left + slow_step_right ; 839e @@ -23185,7 +23196,7 @@ Function25415: ; 25415 (9:5415) ld de, GameTimeMinutes lb bc, PRINTNUM_LEADINGZEROS | 1, 2 call PrintNum - ld a, [$ff9b] + ld a, [hVBlankCounter] and $1f ret nz hlcoord 15, 12 @@ -23195,7 +23206,7 @@ Function25415: ; 25415 (9:5415) ret Function25438: ; 25438 (9:5438) - ld a, [$ff9b] + ld a, [hVBlankCounter] and $7 ret nz ld a, [wcf64] @@ -59041,7 +59052,7 @@ Function91d9b: ; 91d9b ; 91dcd Function91dcd: ; 91dcd - ld a, [$ff9b] + ld a, [hVBlankCounter] ld e, a and $f ret nz @@ -64357,7 +64368,7 @@ endr .CheckTheCard: ; e02da xor a - ld [$ff9b], a + ld [hVBlankCounter], a call Functione0960 call WaitSFX ld de, SFX_CHOOSE_A_CARD @@ -65463,7 +65474,7 @@ Functione0960: ; e0960 ld a, [hCGB] and a jr nz, .asm_e096d - ld a, [$ff9b] + ld a, [hVBlankCounter] and $4 ret nz @@ -65867,7 +65878,7 @@ Functione1190: ; e1190 ld a, [wcf64] and a jr nz, .asm_e1230 - ld a, [$ff9b] + ld a, [hVBlankCounter] and $10 jr z, .asm_e1235 diff --git a/maps/Route38.asm b/maps/Route38.asm index 4c8243542..3236dec8f 100644 --- a/maps/Route38.asm +++ b/maps/Route38.asm @@ -6,9 +6,9 @@ Route38_MapScriptHeader: db 0 TrainerBird_keeperToby: - trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, 0, Bird_keeperTobyScript + trainer EVENT_BEAT_BIRD_KEEPER_TOBY, BIRD_KEEPER, TOBY, Bird_keeperTobySeenText, Bird_keeperTobyBeatenText, 0, .script -Bird_keeperTobyScript: +.script: talkaftercancel loadfont writetext UnknownText_0x1a1f86 @@ -17,9 +17,9 @@ Bird_keeperTobyScript: end TrainerSailorHarry: - trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, 0, SailorHarryScript + trainer EVENT_BEAT_SAILOR_HARRY, SAILOR, HARRY, SailorHarrySeenText, SailorHarryBeatenText, 0, .script -SailorHarryScript: +.script: talkaftercancel loadfont writetext UnknownText_0x1a220c @@ -28,38 +28,38 @@ SailorHarryScript: end TrainerLassDana1: - trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, 0, LassDana1Script + trainer EVENT_BEAT_LASS_DANA, LASS, DANA1, LassDana1SeenText, LassDana1BeatenText, 0, .script -LassDana1Script: +.script: writecode VAR_CALLERID, PHONE_LASS_DANA talkaftercancel loadfont checkflag ENGINE_DANA - iftrue UnknownScript_0x1a1d82 + iftrue .DanaRematch checkflag ENGINE_DANA_HAS_THUNDERSTONE - iftrue UnknownScript_0x1a1df6 + iftrue .TryGiveThunderstone checkcellnum PHONE_LASS_DANA - iftrue UnknownScript_0x1a1e17 + iftrue .NumberAccepted checkevent EVENT_DANA_ASKED_FOR_PHONE_NUMBER - iftrue UnknownScript_0x1a1d6b + iftrue .SecondTimeAsking writetext UnknownText_0x1a20ec keeptextopen setevent EVENT_DANA_ASKED_FOR_PHONE_NUMBER - scall UnknownScript_0x1a1e0b - jump UnknownScript_0x1a1d6e + scall .AskNumber1F + jump .AskForPhoneNumber -UnknownScript_0x1a1d6b: - scall UnknownScript_0x1a1e0f -UnknownScript_0x1a1d6e: +.SecondTimeAsking: + scall .AskNumber2F +.AskForPhoneNumber: askforphonenumber PHONE_LASS_DANA - if_equal $1, UnknownScript_0x1a1e1f - if_equal $2, UnknownScript_0x1a1e1b + if_equal $1, .PhoneFull + if_equal $2, .DeclinedPhoneNumber trainertotext LASS, DANA1, $0 - scall UnknownScript_0x1a1e13 - jump UnknownScript_0x1a1e17 + scall .RegisteredPhoneNumber + jump .NumberAccepted -UnknownScript_0x1a1d82: - scall UnknownScript_0x1a1e23 +.DanaRematch: + scall .Rematch winlosstext LassDana1BeatenText, 0 copybytetovar wDanaFightCount if_equal 4, .Fight4 @@ -118,84 +118,84 @@ UnknownScript_0x1a1d82: clearflag ENGINE_DANA end -UnknownScript_0x1a1df6: - scall UnknownScript_0x1a1e27 +.TryGiveThunderstone: + scall .Gift verbosegiveitem THUNDERSTONE - iffalse UnknownScript_0x1a1e08 + iffalse .NoRoomForThunderstone clearflag ENGINE_DANA_HAS_THUNDERSTONE setevent EVENT_DANA_GAVE_THUNDERSTONE - jump UnknownScript_0x1a1e17 + jump .NumberAccepted -UnknownScript_0x1a1e08: - jump UnknownScript_0x1a1e2b +.NoRoomForThunderstone: + jump .PackFull -UnknownScript_0x1a1e0b: +.AskNumber1F: jumpstd asknumber1f end -UnknownScript_0x1a1e0f: +.AskNumber2F: jumpstd asknumber2f end -UnknownScript_0x1a1e13: +.RegisteredPhoneNumber: jumpstd registerednumberf end -UnknownScript_0x1a1e17: +.NumberAccepted: jumpstd numberacceptedf end -UnknownScript_0x1a1e1b: +.DeclinedPhoneNumber: jumpstd numberdeclinedf end -UnknownScript_0x1a1e1f: +.PhoneFull: jumpstd phonefullf end -UnknownScript_0x1a1e23: +.Rematch: jumpstd rematchf end -UnknownScript_0x1a1e27: +.Gift: jumpstd giftf end -UnknownScript_0x1a1e2b: +.PackFull: jumpstd packfullf end TrainerSchoolboyChad1: - trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, 0, SchoolboyChad1Script + trainer EVENT_BEAT_SCHOOLBOY_CHAD, SCHOOLBOY, CHAD1, SchoolboyChad1SeenText, SchoolboyChad1BeatenText, 0, .script -SchoolboyChad1Script: +.script: writecode VAR_CALLERID, PHONE_SCHOOLBOY_CHAD talkaftercancel loadfont checkflag ENGINE_CHAD - iftrue UnknownScript_0x1a1e75 + iftrue .ChadRematch checkcellnum PHONE_SCHOOLBOY_CHAD - iftrue UnknownScript_0x1a1ef5 + iftrue .HaveChadsNumber checkevent EVENT_CHAD_ASKED_FOR_PHONE_NUMBER - iftrue UnknownScript_0x1a1e5e + iftrue .SecondTimeAsking writetext UnknownText_0x1a200e keeptextopen setevent EVENT_CHAD_ASKED_FOR_PHONE_NUMBER - scall UnknownScript_0x1a1ee9 - jump UnknownScript_0x1a1e61 + scall .AskPhoneNumber1 + jump .AskToRegisterNumber -UnknownScript_0x1a1e5e: - scall UnknownScript_0x1a1eed -UnknownScript_0x1a1e61: +.SecondTimeAsking: + scall .AskPhoneNumber2 +.AskToRegisterNumber: askforphonenumber PHONE_SCHOOLBOY_CHAD - if_equal $1, UnknownScript_0x1a1efd - if_equal $2, UnknownScript_0x1a1ef9 + if_equal $1, .PhoneFull + if_equal $2, .SaidNo trainertotext SCHOOLBOY, CHAD1, $0 - scall UnknownScript_0x1a1ef1 - jump UnknownScript_0x1a1ef5 + scall .RegisteredChad + jump .HaveChadsNumber -UnknownScript_0x1a1e75: - scall UnknownScript_0x1a1f01 +.ChadRematch: + scall .Rematch winlosstext SchoolboyChad1BeatenText, 0 copybytetovar wChadFightCount if_equal 4, .Fight4 @@ -254,38 +254,38 @@ UnknownScript_0x1a1e75: clearflag ENGINE_CHAD end -UnknownScript_0x1a1ee9: +.AskPhoneNumber1: jumpstd asknumber1m end -UnknownScript_0x1a1eed: +.AskPhoneNumber2: jumpstd asknumber2m end -UnknownScript_0x1a1ef1: +.RegisteredChad: jumpstd registerednumberm end -UnknownScript_0x1a1ef5: +.HaveChadsNumber: jumpstd numberacceptedm end -UnknownScript_0x1a1ef9: +.SaidNo: jumpstd numberdeclinedm end -UnknownScript_0x1a1efd: +.PhoneFull: jumpstd phonefullm end -UnknownScript_0x1a1f01: +.Rematch: jumpstd rematchm end TrainerBeautyValerie: - trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, 0, BeautyValerieScript + trainer EVENT_BEAT_BEAUTY_VALERIE, BEAUTY, VALERIE, BeautyValerieSeenText, BeautyValerieBeatenText, 0, .script -BeautyValerieScript: +.script: talkaftercancel loadfont writetext UnknownText_0x1a2185 @@ -294,9 +294,9 @@ BeautyValerieScript: end TrainerBeautyOlivia: - trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, 0, BeautyOliviaScript + trainer EVENT_BEAT_BEAUTY_OLIVIA, BEAUTY, OLIVIA, BeautyOliviaSeenText, BeautyOliviaBeatenText, 0, .script -BeautyOliviaScript: +.script: talkaftercancel loadfont writetext UnknownText_0x1a229a diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 70091db27..7b7bc68f7 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -2357,38 +2357,45 @@ Function100efb: ; 100efb asm_100f02: ld a, c ld [StringBuffer2], a + ; someting that was previously stored in de gets backed up to here ld a, e ld [StringBuffer2 + 1], a ld a, d ld [StringBuffer2 + 2], a + ; empty this xor a ld [StringBuffer2 + 4], a ld [StringBuffer2 + 5], a -.asm_100f15 +.loop ld a, [hl] cp $ff - jr z, .asm_100f34 - ld [StringBuffer2 + 3], a + jr z, .done + ld [StringBuffer2 + 3], a ; bank push hl inc hl + ; addr 1 ld a, [hli] ld e, a ld a, [hli] ld d, a + ; size ld a, [hli] ld c, a ld a, [hli] ld b, a + ; addr 2 ld a, [hli] ld h, [hl] ld l, a call Function100f3d + ; next line pop hl ld de, $0007 add hl, de - jr .asm_100f15 + jr .loop -.asm_100f34 +.done + ; recover the values into bc ld a, [StringBuffer2 + 4] ld c, a ld a, [StringBuffer2 + 5] @@ -2397,16 +2404,20 @@ asm_100f02: ; 100f3d Function100f3d: ; 100f3d + ; parameter ld a, [StringBuffer2] cp $2 - jr z, .asm_100f61 + jr z, .two cp $1 - jr z, .asm_100f77 + jr z, .one cp $3 - jr z, .asm_100f4d + jr z, .three ret -.asm_100f4d +.three + ; what was once in de gets copied to hl, + ; modified by Function100f8d, and put back + ; into this backup ld a, [StringBuffer2 + 1] ld l, a ld a, [StringBuffer2 + 2] @@ -2418,7 +2429,9 @@ Function100f3d: ; 100f3d ld [StringBuffer2 + 2], a ret -.asm_100f61 +.two + ; hl gets backed up to de, then + ; do the same as in .three ld d, h ld e, l ld a, [StringBuffer2 + 1] @@ -2432,7 +2445,11 @@ Function100f3d: ; 100f3d ld [StringBuffer2 + 2], a ret -.asm_100f77 +.one + ; de gets copied to hl, then + ; load the backup into de, + ; finally run Function100f8d + ; and store the de result ld h, d ld l, e ld a, [StringBuffer2 + 1] @@ -2462,18 +2479,18 @@ Function100f8d: ; 100f8d ld a, [StringBuffer2 + 3] bit 7, a res 7, a - jr z, .asm_100fb6 + jr z, .sram and a - jr nz, .asm_100fb0 + jr nz, .wram call CopyBytes ret -.asm_100fb0 +.wram and $7f call FarCopyWRAM ret -.asm_100fb6 +.sram call GetSRAMBank call CopyBytes call CloseSRAM @@ -2481,16 +2498,20 @@ Function100f8d: ; 100f8d ; 100fc0 Unknown_100fc0: ; 100fc0 - dbwww $80, PlayerName, NAME_LENGTH, wd26b + ; first byte: + ; Bit 7 set: Not SRAM + ; Lower 7 bits: Bank + ; Address, size (dw), address + dbwww $80, PlayerName, NAME_LENGTH, OTPlayerName dbwww $80, PartyCount, 1 + PARTY_LENGTH + 1, OTPartyCount - dbwww $80, PlayerID, 2, wd276 - dbwww $80, PartyMons, $30 * PARTY_LENGTH, OTPartyMons + dbwww $80, PlayerID, 2, OTPlayerID + dbwww $80, PartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, OTPartyMons dbwww $80, PartyMonOT, NAME_LENGTH * PARTY_LENGTH, OTPartyMonOT dbwww $80, PartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, OTPartyMonNicknames db -1 Unknown_100feb: ; 100feb - dbwww $00, $a600, $2f * PARTY_LENGTH, NULL + dbwww $00, sPartyScratch1, SCRATCHMON_STRUCT_LENGTH * PARTY_LENGTH, NULL db -1 Unknown_100ff3: ; 100ff3 @@ -2501,15 +2522,15 @@ Unknown_100ff3: ; 100ff3 dbwww $80, wSecretID, 2, NULL dbwww $80, PlayerGender, 1, NULL dbwww $04, $a603, 8, NULL - dbwww $04, $a007, $30, NULL + dbwww $04, $a007, PARTYMON_STRUCT_LENGTH, NULL db -1 Unknown_10102c: ; 10102c - dbwww $80, wd26b, 11, NULL - dbwww $80, wd276, 2, NULL + dbwww $80, OTPlayerName, 11, NULL + dbwww $80, OTPlayerID, 2, NULL dbwww $80, OTPartyMonNicknames, PKMN_NAME_LENGTH * PARTY_LENGTH, NULL dbwww $80, OTPartyMonOT, NAME_LENGTH * PARTY_LENGTH, NULL - dbwww $80, OTPartyMons, $30 * PARTY_LENGTH, NULL + dbwww $80, OTPartyMons, PARTYMON_STRUCT_LENGTH * PARTY_LENGTH, NULL db -1 ; 10104f diff --git a/tilesets/animations.asm b/tilesets/animations.asm index c84db6785..675e06bb7 100644 --- a/tilesets/animations.asm +++ b/tilesets/animations.asm @@ -1008,7 +1008,7 @@ FlickeringCaveEntrancePalette: ; fc71e ; Ready for BGPD input... ld a, %10100000 ; auto-increment, index $20 (pal 4 color 0) ld [rBGPI], a - ld a, [$ff9b] + ld a, [hVBlankCounter] and %00000010 jr nz, .bit1set ld hl, Unkn1Pals + $20 ; pal 4 color 0 diff --git a/wram.asm b/wram.asm index 2436884be..9b5d557c4 100644 --- a/wram.asm +++ b/wram.asm @@ -1395,26 +1395,33 @@ MiscBuffer2:: PhoneScriptBank:: DefaultFlypoint:: ; d002 LuckyNumberDigit1Buffer:: +wCurrentRadioLine:: +wMovementBufferCount:: ds 1 wd003:: MiscBuffer3:: LuckyNumberDigit2Buffer:: PhoneCallerLo:: +wNextRadioLine:: +wMovementBufferPerson:: ds 1 wd004:: MiscBuffer4:: LuckyNumberDigit3Buffer:: PhoneCallerHi:: +wRadioTextDelay:: ds 1 wd005:: MiscBuffer5:: LuckyNumberDigit4Buffer:: StartFlypoint:: ; d005 +wNumRadioLinesPrinted:: ds 1 wd006:: MiscBuffer6:: LuckyNumberDigit5Buffer:: EndFlypoint:: ; d006 +wOaksPkmnTalkSegmentCounter:: ds 1 wd007:: @@ -1425,6 +1432,11 @@ MovementBuffer:: ; d007 wd008:: ds 2 wd00a:: ds 1 wd00b:: ds 1 + +wRadioText:: ds 2 * SCREEN_WIDTH +wRadioTextEnd:: + ds wRadioText - @ + wd00c:: ds 1 wd00d:: ds 1 wd00e:: ds 1 @@ -1474,31 +1486,40 @@ EngineBuffer3:: wd041:: EngineBuffer4:: +wTempTrainerEventFlagLo:: ds 1 + +wTempTrainerEventFlagHi:: MovementAnimation:: ; d042 ds 1 +wTempTrainerClass:: WalkingDirection:: ; d043 ds 1 +wTempTrainerID:: FacingDirection:: ; d044 ds 1 +wSeenTextPointer:: WalkingX:: ; d045 ds 1 WalkingY:: ; d046 ds 1 + WalkingTile:: ; d047 wWinTextPointer:: ds 1 wd048:: ds 1 wLossTextPointer:: ds 2 +wScriptAfterPointer:: wd04b:: ds 2 wd04d:: ds 1 MenuItemsListEnd:: wd04e:: ds 2 -wd050:: ds 10 +wOaksPkmnTalkPkmnNameBuffer:: +wd050:: ds PKMN_NAME_LENGTH +- 1 wd05a:: ds 12 wd066:: ds 10 wd070:: ds 3 @@ -1929,11 +1950,16 @@ TimeOfDay:: ; d269 ds 1 SECTION "Enemy Party", WRAMX, BANK [1] -OTPlayerName:: +OTPlayerName:: ds NAME_LENGTH + ds OTPlayerName - @ +wPokedexShowPointerAddr:: wd26b:: ds 1 wd26c:: ds 1 -wd26d:: ds 4 +wPokedexShowPointerBank:: +wd26d:: ds 1 + ds 3 wd271:: ds 5 +OTPlayerID:: wd276:: ds 10 OTPartyCount:: ds 1 ; d280 -- cgit v1.2.3 From d8cd991b35d45ef75b06a89b0626381132b34806 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Mon, 9 Nov 2015 23:55:39 -0500 Subject: engine/link.asm --- battle/core.asm | 12 +- engine/link.asm | 4117 ++++++++++++++++++++++++++++++++++++++++++++++++++ main.asm | 4482 +++---------------------------------------------------- 3 files changed, 4306 insertions(+), 4305 deletions(-) create mode 100755 engine/link.asm diff --git a/battle/core.asm b/battle/core.asm index 291d6162c..25025feb7 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -3642,15 +3642,15 @@ LoadEnemyPkmnToSwitchTo: ; 3d6ca ld a, [CurPartySpecies] cp UNOWN - jr nz, .asm_3d708 + jr nz, .skip_unown ld a, [wdef4] and a - jr nz, .asm_3d708 + jr nz, .skip_unown ld hl, EnemyMonDVs predef GetUnownLetter ld a, [UnownLetter] ld [wdef4], a -.asm_3d708 +.skip_unown ld hl, EnemyMonHP ld a, [hli] @@ -8630,13 +8630,13 @@ InitEnemyWildmon: ; 3f607 predef GetUnownLetter ld a, [CurPartySpecies] cp UNOWN - jr nz, .asm_3f648 + jr nz, .skip_unown ld a, [wdef4] and a - jr nz, .asm_3f648 + jr nz, .skip_unown ld a, [UnownLetter] ld [wdef4], a -.asm_3f648 +.skip_unown ld de, VTiles2 predef Function5108b xor a diff --git a/engine/link.asm b/engine/link.asm new file mode 100755 index 000000000..585b5061a --- /dev/null +++ b/engine/link.asm @@ -0,0 +1,4117 @@ +LinkCommunications: ; 28000 + call WhiteBGMap + ld c, $50 + call DelayFrames + call ClearScreen + call ClearSprites + call UpdateSprites + xor a + ld [hSCX], a + ld [hSCY], a + ld c, $50 + call DelayFrames + call ClearScreen + call UpdateSprites + call LoadStandardFont + call LoadFontsBattleExtra + callba Function16d69a + call Function3200 + hlcoord 3, 8 + ld b, $2 + ld c, $c + ld d, h + ld e, l + callba Function4d35b + hlcoord 4, 10 + ld de, String28419 + call PlaceString + call Function28eff + call Function3200 + ld hl, wcf5d + xor a + ld [hli], a + ld [hl], $50 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + jp nz, Function28177 + +Function2805d: ; 2805d + call Function28426 + call Function28499 + call Function28434 + xor a + ld [wcf56], a + call Function87d + ld a, [hLinkPlayerNumber] + cp $2 + jr nz, .asm_28091 + ld c, $3 + call DelayFrames + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + +.asm_28091 + ld de, MUSIC_NONE + call PlayMusic + ld c, $3 + call DelayFrames + xor a + ld [rIF], a + ld a, $8 + ld [rIE], a + ld hl, wd1f3 + ld de, EnemyMonSpecies + ld bc, $11 + call Function75f + ld a, $fe + ld [de], a + ld hl, OverworldMap + ld de, wd26b + ld bc, $1a8 + call Function75f + ld a, $fe + ld [de], a + ld hl, wc608 + ld de, wc6d0 + ld bc, $c8 + call Function75f + xor a + ld [rIF], a + ld a, $1d + ld [rIE], a + call Function287ab + ld hl, wd26b + call Function287ca + push hl + ld bc, NAME_LENGTH + add hl, bc + ld a, [hl] + pop hl + and a + jp z, Function28b22 + cp $7 + jp nc, Function28b22 + ld de, OverworldMap + ld bc, $1a2 + call Function2879e + ld de, wc6d0 + ld hl, wc813 + ld c, $2 +.asm_280fe + ld a, [de] + inc de + and a + jr z, .asm_280fe + cp $fd + jr z, .asm_280fe + cp $fe + jr z, .asm_280fe + cp $ff + jr z, .asm_2811d + push hl + push bc + ld b, $0 + dec a + ld c, a + add hl, bc + ld a, $fe + ld [hl], a + pop bc + pop hl + jr .asm_280fe + +.asm_2811d + ld hl, wc90f + dec c + jr nz, .asm_280fe + ld hl, OverworldMap + ld de, wd26b + ld bc, NAME_LENGTH + call CopyBytes + ld de, OTPartyCount + ld a, [hli] + ld [de], a + inc de +.asm_28135 + ld a, [hli] + cp $ff + jr z, .asm_2814e + ld [wd265], a + push hl + push de + callab ConvertMon_1to2 + pop de + pop hl + ld a, [wd265] + ld [de], a + inc de + jr .asm_28135 + +.asm_2814e + ld [de], a + ld hl, wc813 + call Function2868a + ld a, OTPartyMonOT % $100 + ld [wd102], a + ld a, OTPartyMonOT / $100 + ld [wd103], a + ld de, MUSIC_NONE + call PlayMusic + ld a, [hLinkPlayerNumber] + cp $2 + ld c, 66 + call z, DelayFrames + ld de, MUSIC_ROUTE_30 + call PlayMusic + jp Function287e3 +; 28177 + +Function28177: ; 28177 + call Function28426 + call Function28595 + call Function28434 + call Function29dba + ld a, [ScriptVar] + and a + jp z, Function283b2 + ld a, [hLinkPlayerNumber] + cp $2 + jr nz, .asm_281ae + ld c, $3 + call DelayFrames + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + xor a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + +.asm_281ae + ld de, MUSIC_NONE + call PlayMusic + ld c, $3 + call DelayFrames + xor a + ld [rIF], a + ld a, $8 + ld [rIE], a + ld hl, wd1f3 + ld de, EnemyMonSpecies + ld bc, $11 + call Function75f + ld a, $fe + ld [de], a + ld hl, OverworldMap + ld de, wd26b + ld bc, $1c2 + call Function75f + ld a, $fe + ld [de], a + ld hl, wc608 + ld de, wc6d0 + ld bc, $c8 + call Function75f + ld a, [wLinkMode] + cp LINK_TRADECENTER + jr nz, .asm_281fd + ld hl, wc9f4 + ld de, wcb84 + ld bc, $186 + call Function283f2 + +.asm_281fd + xor a + ld [rIF], a + ld a, $1d + ld [rIE], a + ld de, MUSIC_NONE + call PlayMusic + call Function287ab + ld hl, wd26b + call Function287ca + ld de, OverworldMap + ld bc, $1b9 + call Function2879e + ld de, wc6d0 + ld hl, wc813 + ld c, $2 +.asm_28224 + ld a, [de] + inc de + and a + jr z, .asm_28224 + cp $fd + jr z, .asm_28224 + cp $fe + jr z, .asm_28224 + cp $ff + jr z, .asm_28243 + push hl + push bc + ld b, $0 + dec a + ld c, a + add hl, bc + ld a, $fe + ld [hl], a + pop bc + pop hl + jr .asm_28224 + +.asm_28243 + ld hl, wc90f + dec c + jr nz, .asm_28224 + ld a, [wLinkMode] + cp LINK_TRADECENTER + jp nz, .asm_282fe + ld hl, wcb84 +.asm_28254 + ld a, [hli] + cp $20 + jr nz, .asm_28254 +.asm_28259 + ld a, [hli] + cp $fe + jr z, .asm_28259 + cp $20 + jr z, .asm_28259 + dec hl + ld de, wcb84 + ld bc, $190 + call CopyBytes + ld hl, wcb84 + ld bc, $c6 +.asm_28272 + ld a, [hl] + cp $21 + jr nz, .asm_28279 + ld [hl], $fe + +.asm_28279 + inc hl + dec bc + ld a, b + or c + jr nz, .asm_28272 + ld de, wcc9e +.asm_28282 + ld a, [de] + inc de + cp $ff + jr z, .asm_28294 + ld hl, wcc4a + dec a + ld b, $0 + ld c, a + add hl, bc + ld [hl], $fe + jr .asm_28282 + +.asm_28294 + ld hl, wcb84 + ld de, wc9f4 + ld b, $6 +.asm_2829c + push bc + ld bc, $21 + call CopyBytes + ld a, $e + add e + ld e, a + ld a, $0 + adc d + ld d, a + pop bc + dec b + jr nz, .asm_2829c + ld de, wc9f4 + ld b, $6 +.asm_282b4 + push bc + ld a, $21 + add e + ld e, a + ld a, $0 + adc d + ld d, a + ld bc, $e + call CopyBytes + pop bc + dec b + jr nz, .asm_282b4 + ld b, $6 + ld de, wc9f4 +.asm_282cc + push bc + push de + callba Function1de5c8 + ld a, c + or a + jr z, .asm_282ee + sub $3 + jr nc, .asm_282e4 + callba Function1df203 + jr .asm_282ee + +.asm_282e4 + cp $2 + jr nc, .asm_282ee + callba Function1df220 + +.asm_282ee + pop de + ld hl, $2f + add hl, de + ld d, h + ld e, l + pop bc + dec b + jr nz, .asm_282cc + ld de, wcb0e + xor a + ld [de], a + +.asm_282fe + ld hl, OverworldMap + ld de, wd26b + ld bc, NAME_LENGTH + call CopyBytes + ld de, OTPartyCount + ld bc, 8 + call CopyBytes + ld de, wd276 + ld bc, 2 + call CopyBytes + ld de, OTPartyMon1Species + ld bc, $1a4 + call CopyBytes + ld a, OTPartyMonOT % $100 + ld [wd102], a + ld a, OTPartyMonOT / $100 + ld [wd103], a + ld de, MUSIC_NONE + call PlayMusic + ld a, [hLinkPlayerNumber] + cp $2 + ld c, 66 + call z, DelayFrames + ld a, [wLinkMode] + cp LINK_COLOSSEUM + jr nz, .asm_283a9 + ld a, CAL + ld [OtherTrainerClass], a + call ClearScreen + callba Function4d354 + ld hl, Options + ld a, [hl] + push af + and $20 + or $3 + ld [hl], a + ld hl, wd26b + ld de, OTName + ld bc, NAME_LENGTH + call CopyBytes + call Function222a + ld a, [wc2d7] + push af + ld a, $1 + ld [wc2d7], a + ld a, [rIE] + push af + ld a, [rIF] + push af + xor a + ld [rIF], a + ld a, [rIE] + set 1, a + ld [rIE], a + pop af + ld [rIF], a + predef StartBattle + ld a, [rIF] + ld h, a + xor a + ld [rIF], a + pop af + ld [rIE], a + ld a, h + ld [rIF], a + pop af + ld [wc2d7], a + pop af + ld [Options], a + callba LoadPokemonData + jp Function28b22 + +.asm_283a9 + ld de, MUSIC_ROUTE_30 + call PlayMusic + jp Function287e3 +; 283b2 + +Function283b2: ; 283b2 + ld de, UnknownText_0x283ed + ld b, $a +.asm_283b7 + call DelayFrame + call Function908 + dec b + jr nz, .asm_283b7 + xor a + ld [hld], a + ld [hl], a + ld [hVBlank], a + push de + hlcoord 0, 12 + ld b, $4 + ld c, $12 + push de + ld d, h + ld e, l + callba Function4d35b + pop de + pop hl + bccoord 1, 14 + call PlaceWholeStringInBoxAtOnce + call FadeToWhite + call ClearScreen + ld b, $8 + call GetSGBLayout + call Function3200 + ret +; 283ed + +UnknownText_0x283ed: ; 0x283ed + ; Too much time has elapsed. Please try again. + text_jump UnknownText_0x1c4183 + db "@" +; 0x283f2 + +Function283f2: ; 283f2 + ld a, $1 + ld [$ffcc], a +.asm_283f6 + ld a, [hl] + ld [hSerialSend], a + call Function78a + push bc + ld b, a + inc hl + ld a, $30 +.asm_28401 + dec a + jr nz, .asm_28401 + ld a, [$ffcc] + and a + ld a, b + pop bc + jr z, .asm_28411 + dec hl + xor a + ld [$ffcc], a + jr .asm_283f6 + +.asm_28411 + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_283f6 + ret +; 28419 + +String28419: ; 28419 + db "PLEASE WAIT!@" +; 28426 + +Function28426: ; 28426 + ld hl, OverworldMap + lb bc, 5, SCREEN_WIDTH +.asm_2842c + xor a + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_2842c + ret +; 28434 + +Function28434: ; 28434 + ld hl, wd1f3 + ld a, $fd + ld b, $7 +.asm_2843b + ld [hli], a + dec b + jr nz, .asm_2843b + ld b, $a +.asm_28441 + call Random + cp $fd + jr nc, .asm_28441 + ld [hli], a + dec b + jr nz, .asm_28441 + ld hl, wc608 + ld a, $fd +rept 3 + ld [hli], a +endr + ld b, $c8 + xor a +.asm_28457 + ld [hli], a + dec b + jr nz, .asm_28457 + ld hl, wc818 + ld de, wc608 + 10 + ld bc, 0 +.asm_28464 + inc c + ld a, c + cp $fd + jr z, .asm_2848c + ld a, b + dec a + jr nz, .asm_2847f + push bc + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + ld b, $d + jr z, .asm_2847a + ld b, $27 + +.asm_2847a + ld a, c + cp b + pop bc + jr z, .asm_28495 + +.asm_2847f + inc hl + ld a, [hl] + cp $fe + jr nz, .asm_28464 + ld a, c + ld [de], a + inc de + ld [hl], $ff + jr .asm_28464 + +.asm_2848c + ld a, $ff + ld [de], a + inc de + lb bc, 1, 0 + jr .asm_28464 + +.asm_28495 + ld a, $ff + ld [de], a + ret +; 28499 + +Function28499: ; 28499 + ld de, OverworldMap + ld a, $fd + ld b, $6 +.asm_284a0 + ld [de], a + inc de + dec b + jr nz, .asm_284a0 + ld hl, PlayerName + ld bc, NAME_LENGTH + call CopyBytes + push de + ld hl, PartyCount + ld a, [hli] + ld [de], a + inc de +.asm_284b5 + ld a, [hli] + cp $ff + jr z, .asm_284ce + ld [wd265], a + push hl + push de + callab ConvertMon_2to1 + pop de + pop hl + ld a, [wd265] + ld [de], a + inc de + jr .asm_284b5 + +.asm_284ce + ld [de], a + pop de + ld hl, $8 + add hl, de + ld d, h + ld e, l + ld hl, PartyMon1Species + ld c, $6 +.asm_284db + push bc + call Function284f6 + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + pop bc + dec c + jr nz, .asm_284db + ld hl, PartyMonOT + call .asm_284f0 + ld hl, PartyMonNicknames +.asm_284f0 + ld bc, $42 + jp CopyBytes +; 284f6 + +Function284f6: ; 284f6 + ld b, h + ld c, l + push de + push bc + ld a, [hl] + ld [wd265], a + callab ConvertMon_2to1 + pop bc + pop de + ld a, [wd265] + ld [de], a + inc de + ld hl, $22 + add hl, bc + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + inc de + xor a + ld [de], a + inc de + ld hl, $20 + add hl, bc + ld a, [hl] + ld [de], a + inc de + ld a, [bc] + cp $51 + jr z, .asm_28528 + cp $52 + jr nz, .asm_28530 + +.asm_28528 + ld a, $17 + ld [de], a + inc de + ld [de], a + inc de + jr .asm_28544 + +.asm_28530 + push bc + dec a + ld hl, BaseData + 7 ; type + ld bc, BaseData1 - BaseData0 + call AddNTimes + ld bc, 2 + ld a, BANK(BaseData) + call FarCopyBytes + pop bc + +.asm_28544 + push bc + ld hl, $1 + add hl, bc + ld bc, $1a + call CopyBytes + pop bc + + ld hl, $1f + add hl, bc + ld a, [hl] + ld [de], a + ld [CurPartyLevel], a + inc de + + push bc + ld hl, $24 + add hl, bc + ld bc, 8 + call CopyBytes + pop bc + + push de + push bc + + ld a, [bc] + dec a + push bc + ld b, 0 + ld c, a + ld hl, KantoMonSpecials + add hl, bc + ld a, BANK(KantoMonSpecials) + call GetFarByte + ld [BaseSpecialAttack], a + pop bc + + ld hl, $a + add hl, bc + ld c, $5 + ld b, $1 + predef CalcPkmnStatC + + pop bc + pop de + + ld a, [$ffb5] + ld [de], a + inc de + ld a, [$ffb6] + ld [de], a + inc de + ld h, b + ld l, c + ret +; 28595 + +Function28595: ; 28595 + ld de, OverworldMap + ld a, $fd + ld b, $6 +.loop1 + ld [de], a + inc de + dec b + jr nz, .loop1 + ld hl, PlayerName + ld bc, NAME_LENGTH + call CopyBytes + ld hl, PartyCount + ld bc, 8 + call CopyBytes + ld hl, PlayerID + ld bc, 2 + call CopyBytes + ld hl, PartyMon1Species + ld bc, $120 + call CopyBytes + ld hl, PartyMonOT + ld bc, $42 + call CopyBytes + ld hl, PartyMonNicknames + ld bc, $42 + call CopyBytes + ld a, [wLinkMode] + cp LINK_TRADECENTER + ret nz + ld de, wc9f4 + ld a, $20 + call Function28682 + ld a, BANK(sPartyScratch1) + call GetSRAMBank + ld hl, sPartyScratch1 + ld b, PARTY_LENGTH +.loop2 + push bc + ld bc, $21 + call CopyBytes + ld bc, $e + add hl, bc + pop bc + dec b + jr nz, .loop2 + ld hl, sPartyScratch1 + ld b, PARTY_LENGTH +.loop3 + push bc + ld bc, $21 + add hl, bc + ld bc, $e + call CopyBytes + pop bc + dec b + jr nz, .loop3 + ld b, PARTY_LENGTH + ld de, sPartyScratch1 + ld hl, wc9f9 +.loop4 + push bc + push hl + push de + push hl + callba Function1de5c8 + pop de + ld a, c + or a + jr z, .next + sub $3 + jr nc, .skip + callba Function1df1e6 + jr .next + +.skip + cp $2 + jr nc, .next + callba Function1df220 + +.next + pop de + ld hl, SCRATCHMON_STRUCT_LENGTH + add hl, de + ld d, h + ld e, l + pop hl + ld bc, $21 + add hl, bc + pop bc + dec b + jr nz, .loop4 + call CloseSRAM + ld hl, wc9f9 + ld bc, $c6 +.loop5 + ld a, [hl] + cp $fe + jr nz, .skip2 + ld [hl], $21 + +.skip2 + inc hl + dec bc + ld a, b + or c + jr nz, .loop5 + ld hl, wcabf + ld de, wcb13 + ld b, $54 + ld c, $0 +.loop6 + inc c + ld a, [hl] + cp $fe + jr nz, .skip3 + ld [hl], $ff + ld a, c + ld [de], a + inc de + +.skip3 + inc hl + dec b + jr nz, .loop6 + ld a, $ff + ld [de], a + ret +; 28682 + +Function28682: ; 28682 + ld c, $5 +.loop + ld [de], a + inc de + dec c + jr nz, .loop + ret +; 2868a + +Function2868a: ; 2868a + push hl + ld d, h + ld e, l + ld bc, wcbea + ld hl, wcbe8 + ld a, c + ld [hli], a + ld [hl], b + ld hl, OTPartyMon1Species + ld c, $6 +.loop + push bc + call Function286ba + pop bc + dec c + jr nz, .loop + pop hl + lb bc, 1, 8 + add hl, bc + ld de, OTPartyMonOT + ld bc, $42 + call CopyBytes + ld de, OTPartyMonNicknames + ld bc, $42 + jp CopyBytes +; 286ba + +Function286ba: ; 286ba + ld b, h + ld c, l + ld a, [de] + inc de + push bc + push de + ld [wd265], a + callab ConvertMon_1to2 + pop de + pop bc + ld a, [wd265] + ld [bc], a + ld [CurSpecies], a + ld hl, $22 + add hl, bc + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hl], a + inc de + ld hl, $20 + add hl, bc + ld a, [de] + inc de + ld [hl], a + ld hl, wcbe8 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [de] + ld [hli], a + inc de + ld a, [de] + ld [hli], a + inc de + ld a, l + ld [wcbe8], a + ld a, h + ld [wcbe9], a + push bc + ld hl, $1 + add hl, bc + push hl + ld h, d + ld l, e + pop de + push bc + ld a, [hli] + ld b, a + call Function28771 + ld a, b + ld [de], a + inc de + pop bc + ld bc, $19 + call CopyBytes + pop bc + ld d, h + ld e, l + ld hl, $1f + add hl, bc + ld a, [de] + inc de + ld [hl], a + ld [CurPartyLevel], a + push bc + ld hl, $24 + add hl, bc + push hl + ld h, d + ld l, e + pop de + ld bc, 8 + call CopyBytes + pop bc + call GetBaseData + push de + push bc + ld d, h + ld e, l + ld hl, $a + add hl, bc + ld c, $5 + ld b, $1 + predef CalcPkmnStatC + pop bc + pop hl + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hli], a + push hl + push bc + ld hl, $a + add hl, bc + ld c, $6 + ld b, $1 + predef CalcPkmnStatC + pop bc + pop hl + ld a, [$ffb5] + ld [hli], a + ld a, [$ffb6] + ld [hli], a + push hl + ld hl, $1b + add hl, bc + ld a, $46 + ld [hli], a + xor a +rept 2 + ld [hli], a +endr + ld [hl], a + pop hl +rept 2 + inc de +endr + ret +; 28771 + +Function28771: ; 28771 + ld a, b + and a + ret z + push hl + ld hl, .TimeCapsuleAlt +.loop + ld a, [hli] + and a + jr z, .end + cp b + jr z, .found + inc hl + jr .loop + +.found + ld b, [hl] + +.end + pop hl + ret + +.TimeCapsuleAlt ; 28785 +; Pokémon traded from RBY do not have held items, so GSC usually interprets the +; catch rate as an item. However, if the catch rate appears in this table, the +; item associated with the table entry is used instead. + db ITEM_19, LEFTOVERS + db ITEM_2D, BITTER_BERRY + db ITEM_32, GOLD_BERRY + db ITEM_5A, BERRY + db ITEM_64, BERRY + db ITEM_78, BERRY + db ITEM_87, BERRY + db ITEM_BE, BERRY + db ITEM_C3, BERRY + db ITEM_DC, BERRY + db HM_08, BERRY + db $ff, BERRY + db $00 +; 2879e + +Function2879e: ; 2879e +.asm_2879e + ld a, [hli] + cp $fe + jr z, .asm_2879e + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .asm_2879e + ret +; 287ab + +Function287ab: ; 287ab + ld a, [hLinkPlayerNumber] + cp $2 + ret z + ld hl, EnemyMonSpecies + call Function287d8 + ld de, LinkBattleRNs + ld c, $a +.asm_287bb + ld a, [hli] + cp $fe + jr z, .asm_287bb + cp $fd + jr z, .asm_287bb + ld [de], a + inc de + dec c + jr nz, .asm_287bb + ret +; 287ca + +Function287ca: ; 287ca +.asm_287ca + ld a, [hli] + and a + jr z, .asm_287ca + cp $fd + jr z, .asm_287ca + cp $fe + jr z, .asm_287ca + dec hl + ret +; 287d8 + +Function287d8: ; 287d8 +.asm_287d8 + ld a, [hli] + cp $fd + jr z, .asm_287d8 + cp $fe + jr z, .asm_287d8 + dec hl + ret +; 287e3 + +Function287e3: ; 287e3 + call ClearScreen + call Function28ef8 + callba Function16d673 + xor a + ld hl, wcf51 +rept 3 + ld [hli], a +endr + ld [hl], a + ld a, $1 + ld [MenuSelection2], a + inc a + ld [wcf56], a + jp Function2888b +; 28803 + +Function28803: ; 28803 + ld a, $1 + ld [MonType], a + ld a, $c1 + ld [wcfa8], a + ld a, [OTPartyCount] + ld [wcfa3], a + ld a, $1 + ld [wcfa4], a + ld a, $9 + ld [wcfa1], a + ld a, $6 + ld [wcfa2], a + ld a, $1 + ld [wcfaa], a + ld a, $10 + ld [wcfa7], a + ld a, $20 + ld [wcfa5], a + xor a + ld [wcfa6], a + +Function28835: ; 28835 + callba Function16d70c + ld a, d + and a + jp z, Function2891c + bit 0, a + jr z, .asm_2885b + ld a, $1 + ld [wd263], a + callab Function50db9 + ld hl, OTPartyMon1Species + callba Function4d319 + jp Function2891c + +.asm_2885b + bit 6, a + jr z, .asm_28883 + ld a, [MenuSelection2] + ld b, a + ld a, [OTPartyCount] + cp b + jp nz, Function2891c + xor a + ld [MonType], a + call Function1bf7 + push hl + push bc + ld bc, NAME_LENGTH + add hl, bc + ld [hl], $7f + pop bc + pop hl + ld a, [PartyCount] + ld [MenuSelection2], a + jr Function2888b + +.asm_28883 + bit 7, a + jp z, Function2891c + jp Function28ac9 +; 2888b + +Function2888b: ; 2888b + callba Function49856 + xor a + ld [MonType], a + ld a, $c1 + ld [wcfa8], a + ld a, [PartyCount] + ld [wcfa3], a + ld a, $1 + ld [wcfa4], a + ld a, $1 + ld [wcfa1], a + ld a, $6 + ld [wcfa2], a + ld a, $1 + ld [wcfaa], a + ld a, $10 + ld [wcfa7], a + ld a, $20 + ld [wcfa5], a + xor a + ld [wcfa6], a + call Function3200 + +Function288c5: ; 288c5 + callba Function16d70c + ld a, d + and a + jr nz, .asm_288d2 + jp Function2891c + +.asm_288d2 + bit 0, a + jr z, .asm_288d9 + jp Function28926 + +.asm_288d9 + bit 7, a + jr z, .asm_288fe + ld a, [MenuSelection2] + dec a + jp nz, Function2891c + ld a, $1 + ld [MonType], a + call Function1bf7 + push hl + push bc + ld bc, NAME_LENGTH + add hl, bc + ld [hl], $7f + pop bc + pop hl + ld a, $1 + ld [MenuSelection2], a + jp Function28803 + +.asm_288fe + bit 6, a + jr z, Function2891c + ld a, [MenuSelection2] + ld b, a + ld a, [PartyCount] + cp b + jr nz, Function2891c + call Function1bf7 + push hl + push bc + ld bc, NAME_LENGTH + add hl, bc + ld [hl], $7f + pop bc + pop hl + jp Function28ade +; 2891c + +Function2891c: ; 2891c + ld a, [MonType] + and a + jp z, Function288c5 + jp Function28835 +; 28926 + +Function28926: ; 28926 + call LoadTileMapToTempTileMap + ld a, [MenuSelection2] + push af + hlcoord 0, 15 + ld b, $1 + ld c, $12 + call Function28eef + hlcoord 2, 16 + ld de, String28ab4 + call PlaceString + callba Function4d354 + +.asm_28946 + ld a, $7f + ldcoord_a 11, 16 + ld a, $13 + ld [wcfa8], a + ld a, $1 + ld [wcfa3], a + ld a, $1 + ld [wcfa4], a + ld a, $10 + ld [wcfa1], a + ld a, $1 + ld [wcfa2], a + ld a, $1 + ld [MenuSelection2], a + ld [wcfaa], a + ld a, $20 + ld [wcfa7], a + xor a + ld [wcfa5], a + ld [wcfa6], a + call Function1bd3 + bit 4, a + jr nz, .asm_2898d + bit 1, a + jr z, .asm_289cd +.asm_28983 + pop af + ld [MenuSelection2], a + call Call_LoadTempTileMapToTileMap + jp Function2888b + +.asm_2898d + ld a, $7f + ldcoord_a 1, 16 + ld a, $23 + ld [wcfa8], a + ld a, $1 + ld [wcfa3], a + ld a, $1 + ld [wcfa4], a + ld a, $10 + ld [wcfa1], a + ld a, $b + ld [wcfa2], a + ld a, $1 + ld [MenuSelection2], a + ld [wcfaa], a + ld a, $20 + ld [wcfa7], a + xor a + ld [wcfa5], a + ld [wcfa6], a + call Function1bd3 + bit 5, a + jp nz, .asm_28946 + bit 1, a + jr nz, .asm_28983 + jr .asm_289fe + +.asm_289cd + pop af + ld [MenuSelection2], a + ld a, $4 + ld [wd263], a + callab Function50db9 + callba Function4d319 + call Call_LoadTempTileMapToTileMap + hlcoord 6, 1 + lb bc, 6, 1 + ld a, " " + call Function28b77 + hlcoord 17, 1 + lb bc, 6, 1 + ld a, " " + call Function28b77 + jp Function2888b + +.asm_289fe + call Function1bee + pop af + ld [MenuSelection2], a + dec a + ld [DefaultFlypoint], a + ld [wcf56], a + callba Function16d6ce + ld a, [wcf51] + cp $f + jp z, Function287e3 + ld [wd003], a + call Function28b68 + ld c, $64 + call DelayFrames + callba Functionfb57e + jr c, .asm_28a58 + callba Functionfb5dd + jp nc, Function28b87 + xor a + ld [wcf57], a + ld [wcf52], a + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld hl, UnknownText_0x28aaf + bccoord 1, 14 + call PlaceWholeStringInBoxAtOnce + jr .asm_28a89 + +.asm_28a58 + xor a + ld [wcf57], a + ld [wcf52], a + ld a, [wd003] + ld hl, OTPartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [wd265], a + call GetPokemonName + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld hl, UnknownText_0x28ac4 + bccoord 1, 14 + call PlaceWholeStringInBoxAtOnce + +.asm_28a89 + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call Function28eef + hlcoord 1, 14 + ld de, String28ece + call PlaceString + ld a, $1 + ld [wcf56], a + callba Function16d6ce + ld c, $64 + call DelayFrames + jp Function287e3 +; 28aaf + + +UnknownText_0x28aaf: ; 0x28aaf + ; If you trade that #MON, you won't be able to battle. + text_jump UnknownText_0x1c41b1 + db "@" +; 0x28ab4 + +String28ab4: ; 28ab4 + db "STATS TRADE@" + +UnknownText_0x28ac4: ; 0x28ac4 + ; Your friend's @ appears to be abnormal! + text_jump UnknownText_0x1c41e6 + db "@" +; 0x28ac9 + + +Function28ac9: ; 28ac9 + ld a, [MenuSelection2] + cp $1 + jp nz, Function2891c + call Function1bf7 + push hl + push bc + ld bc, NAME_LENGTH + add hl, bc + ld [hl], $7f + pop bc + pop hl + +Function28ade: ; 28ade +.asm_28ade + ld a, $ed + ldcoord_a 9, 17 +.asm_28ae3 + call JoyTextDelay + ld a, [hJoyLast] + and a + jr z, .asm_28ae3 + bit 0, a + jr nz, .asm_28b0b + push af + ld a, " " + ldcoord_a 9, 17 + pop af + bit 6, a + jr z, .asm_28b03 + ld a, [OTPartyCount] + ld [MenuSelection2], a + jp Function28803 + +.asm_28b03 + ld a, $1 + ld [MenuSelection2], a + jp Function2888b + +.asm_28b0b + ld a, $ec + ldcoord_a 9, 17 + ld a, $f + ld [wcf56], a + callba Function16d6ce + ld a, [wcf51] + cp $f + jr nz, .asm_28ade + +Function28b22: ; 28b22 + call FadeToWhite + call ClearScreen + ld b, $8 + call GetSGBLayout + call Function3200 + xor a + ld [wcfbb], a + xor a + ld [rSB], a + ld [hSerialSend], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ret +; 28b42 + +Function28b42: ; 28b42 + hlcoord 0, 16 + ld a, "┘" + ld bc, 2 * SCREEN_WIDTH + call ByteFill + hlcoord 1, 16 + ld a, " " + ld bc, SCREEN_WIDTH - 2 + call ByteFill + hlcoord 2, 16 + ld de, String_28b61 + jp PlaceString +; 28b61 + +String_28b61: ; 28b61 + db "CANCEL@" +; 28b68 + +Function28b68: ; 28b68 + ld a, [wcf51] + hlcoord 6, 9 + ld bc, SCREEN_WIDTH + call AddNTimes + ld [hl], $ec + ret +; 28b77 + +Function28b77: ; 28b77 +.asm_28b77 + push bc + push hl +.asm_28b79 + ld [hli], a + dec c + jr nz, .asm_28b79 + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_28b77 + ret +; 28b87 + +Function28b87: ; 28b87 + xor a + ld [wcf57], a + ld [wcf52], a + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call Function28eef + callba Function4d354 + ld a, [DefaultFlypoint] + ld hl, PartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + ld de, wd004 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + ld a, [wd003] + ld hl, OTPartySpecies + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [wd265], a + call GetPokemonName + ld hl, UnknownText_0x28eb8 + bccoord 1, 14 + call PlaceWholeStringInBoxAtOnce + call LoadPartyMenuDataHeader + hlcoord 10, 7 + ld b, $3 + ld c, $7 + call Function28eef + ld de, String28eab + hlcoord 12, 8 + call PlaceString + ld a, $8 + ld [wcfa1], a + ld a, $b + ld [wcfa2], a + ld a, $1 + ld [wcfa4], a + ld a, $2 + ld [wcfa3], a + xor a + ld [wcfa5], a + ld [wcfa6], a + ld a, $20 + ld [wcfa7], a + ld a, $3 + ld [wcfa8], a + ld a, $1 + ld [MenuSelection2], a + ld [wcfaa], a + callba Function4d354 + call Function1bd3 + push af + call Call_ExitMenu + call Function3200 + pop af + bit 1, a + jr nz, .asm_28c33 + ld a, [MenuSelection2] + dec a + jr z, .asm_28c54 + +.asm_28c33 + ld a, $1 + ld [wcf56], a + hlcoord 0, 12 + ld b, 4 + ld c, 18 + call Function28eef + hlcoord 1, 14 + ld de, String28ece + call PlaceString + callba Function16d6ce + jp Function28ea3 + +.asm_28c54 + ld a, $2 + ld [wcf56], a + callba Function16d6ce + ld a, [wcf51] + dec a + jr nz, .asm_28c7b + hlcoord 0, 12 + ld b, 4 + ld c, 18 + call Function28eef + hlcoord 1, 14 + ld de, String28ece + call PlaceString + jp Function28ea3 + +.asm_28c7b + ld hl, sPartyScratch1 + ld a, [DefaultFlypoint] + ld bc, SCRATCHMON_STRUCT_LENGTH + call AddNTimes + ld a, BANK(sPartyScratch1) + call GetSRAMBank + ld d, h + ld e, l + ld bc, SCRATCHMON_STRUCT_LENGTH + add hl, bc + ld a, [DefaultFlypoint] + ld c, a +.asm_28c96 + inc c + ld a, c + cp $6 + jr z, .asm_28ca6 + push bc + ld bc, SCRATCHMON_STRUCT_LENGTH + call CopyBytes + pop bc + jr .asm_28c96 + +.asm_28ca6 + ld hl, sPartyScratch1 + ld a, [PartyCount] + dec a + ld bc, SCRATCHMON_STRUCT_LENGTH + call AddNTimes + push hl + ld hl, wc9f4 + ld a, [wd003] + ld bc, SCRATCHMON_STRUCT_LENGTH + call AddNTimes + pop de + ld bc, SCRATCHMON_STRUCT_LENGTH + call CopyBytes + call CloseSRAM + ld hl, PlayerName + ld de, wc6e7 + ld bc, NAME_LENGTH + call CopyBytes + ld a, [DefaultFlypoint] + ld hl, PartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [wc6d0], a + push af + ld a, [DefaultFlypoint] + ld hl, PartyMonOT + call SkipNames + ld de, wc6f2 + ld bc, NAME_LENGTH + call CopyBytes + ld hl, PartyMon1ID + ld a, [DefaultFlypoint] + call GetPartyLocation + ld a, [hli] + ld [PlayerScreens], a + ld a, [hl] + ld [EnemyScreens], a + ld hl, PartyMon1DVs + ld a, [DefaultFlypoint] + call GetPartyLocation + ld a, [hli] + ld [wc6fd], a + ld a, [hl] + ld [wc6fe], a + ld a, [DefaultFlypoint] + ld hl, PartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba GetCaughtGender + ld a, c + ld [wc701], a + ld hl, wd26b + ld de, wc719 + ld bc, NAME_LENGTH + call CopyBytes + ld a, [wd003] + ld hl, OTPartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [wc702], a + ld a, [wd003] + ld hl, OTPartyMonOT + call SkipNames + ld de, wc724 + ld bc, NAME_LENGTH + call CopyBytes + ld hl, OTPartyMon1ID + ld a, [wd003] + call GetPartyLocation + ld a, [hli] + ld [wEnemyWrapCount], a + ld a, [hl] + ld [wPlayerCharging], a + ld hl, OTPartyMon1DVs + ld a, [wd003] + call GetPartyLocation + ld a, [hli] + ld [wEnemyTrappingMove], a + ld a, [hl] + ld [wPlayerWrapCount], a + ld a, [wd003] + ld hl, OTPartyMon1Species + call GetPartyLocation + ld b, h + ld c, l + callba GetCaughtGender + ld a, c + ld [wEnemyCharging], a + ld a, [DefaultFlypoint] + ld [CurPartyMon], a + ld hl, PartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [DefaultFlypoint], a + xor a + ld [wPokemonWithdrawDepositParameter], a + callab Functione039 + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + ld a, $1 + ld [wd1e9], a + ld a, [wd003] + push af + ld hl, OTPartySpecies + ld b, $0 + ld c, a + add hl, bc + ld a, [hl] + ld [wd003], a + ld c, 100 + call DelayFrames + call ClearTileMap + call LoadFontsBattleExtra + ld b, $8 + call GetSGBLayout + ld a, [hLinkPlayerNumber] + cp $1 + jr z, .asm_28de4 + predef Function28f24 + jr .asm_28de9 + +.asm_28de4 + predef Function28f63 + +.asm_28de9 + pop af + ld c, a + ld [CurPartyMon], a + ld hl, OTPartySpecies + ld d, $0 + ld e, a + add hl, de + ld a, [hl] + ld [CurPartySpecies], a + ld hl, OTPartyMon1Species + ld a, c + call GetPartyLocation + ld de, TempMonSpecies + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + predef Functionda96 + ld a, [PartyCount] + dec a + ld [CurPartyMon], a + callab Function421d8 + call ClearScreen + call Function28ef8 + call Function28eff + callba Function4d354 + ld b, $1 + pop af + ld c, a + cp MEW + jr z, .asm_28e49 + ld a, [CurPartySpecies] + cp MEW + jr z, .asm_28e49 + ld b, $2 + ld a, c + cp CELEBI + jr z, .asm_28e49 + ld a, [CurPartySpecies] + cp CELEBI + jr z, .asm_28e49 + ld b, $0 + +.asm_28e49 + ld a, b + ld [wcf56], a + push bc + call Function862 + pop bc + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + jr z, .asm_28e63 + ld a, b + and a + jr z, .asm_28e63 + ld a, [wcf52] + cp b + jr nz, .asm_28e49 + +.asm_28e63 + callba Function14a58 + callba MobileFn_1060af + callba BackupMobileEventIndex + ld c, 40 + call DelayFrames + hlcoord 0, 12 + ld b, 4 + ld c, 18 + call Function28eef + hlcoord 1, 14 + ld de, String28ebd + call PlaceString + callba Function4d354 + ld c, 50 + call DelayFrames + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + jp z, Function2805d + jp Function28177 +; 28ea3 + +Function28ea3: ; 28ea3 + ld c, 100 + call DelayFrames + jp Function287e3 +; 28eab + +String28eab: ; 28eab + db "TRADE" + next "CANCEL@" + +UnknownText_0x28eb8: ; 0x28eb8 + ; Trade @ for @ ? + text_jump UnknownText_0x1c4212 + db "@" +; 0x28ebd + +String28ebd: ; 28ebd + db "Trade completed!@" + +String28ece: ; 28ece + db "Too bad! The trade" + next "was canceled!@" + + +Function28eef: ; 28eef + ld d, h + ld e, l + callba Function16d6ca + ret +; 28ef8 + +Function28ef8: ; 28ef8 + callba Function16d696 + ret +; 28eff + +Function28eff: ; 28eff + callba Function16d6a7 + call SetPalettes + ret +; 28f09 + +Function28f09: ; 28f09 + hlcoord 0, 0 + ld b, 6 + ld c, 18 + call Function28eef + hlcoord 0, 8 + ld b, 6 + ld c, 18 + call Function28eef + callba Functionfb60d + ret +; 28f24 + +Function28f24: ; 28f24 + xor a + ld [wcf66], a + ld hl, wc6e7 + ld de, wc719 + call Function297ff + ld hl, wc6d0 + ld de, wc702 + call Function29814 + ld de, .data_28f3f + jr Function28fa1 + +.data_28f3f + db $1b + db $1 + db $1c + db $21 + db $2d + db $27 + db $23 + db $3 + db $25 + db $28 + db $25 + db $1e + db $29 + db $6 + db $16 + db $1f + db $19 + db $17 + db $22 + db $1f + db $2a + db $e + db $3 + db $24 + db $5 + db $25 + db $2 + db $27 + db $25 + db $1d + db $2c + db $2e + db $1e + db $18 + db $1f + db $2b + +Function28f63: ; 28f63 + xor a + ld [wcf66], a + ld hl, wc719 + ld de, wc6e7 + call Function297ff + ld hl, wc702 + ld de, wc6d0 + call Function29814 + ld de, .data_28f7e + jr Function28fa1 + +.data_28f7e + db $1a + db $17 + db $22 + db $1f + db $2a + db $6 + db $3 + db $24 + db $5 + db $25 + db $2 + db $27 + db $25 + db $1d + db $2c + db $2f + db $1e + db $18 + db $1f + db $1b + db $1 + db $1c + db $22 + db $27 + db $23 + db $3 + db $25 + db $28 + db $25 + db $1e + db $29 + db $e + db $16 + db $1f + db $2b + +Function28fa1: ; 28fa1 + ld hl, BattleEnded + ld [hl], e + inc hl + ld [hl], d + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a + ld hl, VramState + ld a, [hl] + push af + res 0, [hl] + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + call Function28fdb + ld a, [wcf66] + and a + jr nz, .asm_28fca + ld de, MUSIC_EVOLUTION + call PlayMusic2 +.asm_28fca + call Function29082 + jr nc, .asm_28fca + pop af + ld [Options], a + pop af + ld [VramState], a + pop af + ld [hMapAnims], a + ret +; 28fdb + +Function28fdb: ; 28fdb + xor a + ld [wJumptableIndex], a + call WhiteBGMap + call ClearSprites + call ClearTileMap + call DisableLCD + call LoadFontsBattleExtra + callab Function8cf53 + ld a, [hCGB] + and a + jr z, .asm_2900b + ld a, $1 + ld [rVBK], a + ld hl, VTiles0 + ld bc, sScratch - VTiles0 + xor a + call ByteFill + ld a, $0 + ld [rVBK], a + +.asm_2900b + ld hl, VBGMap0 + ld bc, sScratch - VBGMap0 + ld a, " " + call ByteFill + ld hl, TradeGameBoyLZ + ld de, VTiles2 tile $31 + call Decompress + ld hl, TradeArrowGFX + ld de, VTiles1 tile $6d + ld bc, $10 + ld a, BANK(TradeArrowGFX) + call FarCopyBytes + ld hl, TradeArrowGFX + $10 + ld de, VTiles1 tile $6e + ld bc, $10 + ld a, BANK(TradeArrowGFX) + call FarCopyBytes + xor a + ld [hSCX], a + ld [hSCY], a + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + callba Function4d7fd + call EnableLCD + call Function2982b + ld a, [wc6d0] + ld hl, wc6fd + ld de, VTiles0 + call Function29491 + ld a, [wc702] + ld hl, wEnemyTrappingMove + ld de, VTiles0 tile $31 + call Function29491 + ld a, [wc6d0] + ld de, wc6d1 + call Function294a9 + ld a, [wc702] + ld de, wc703 + call Function294a9 + call Function297ed + ret +; 29082 + +Function29082: ; 29082 + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_2909b + call Function290a0 + callab Function8cf69 + ld hl, wcf65 + inc [hl] + call DelayFrame + and a + ret + +.asm_2909b + call LoadStandardFont + scf + ret +; 290a0 + +Function290a0: ; 290a0 + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, JumpTable290af +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 290af + +JumpTable290af: ; 290af + dw Function29114 + dw Function2942e + dw Function29461 + dw Function29348 + dw Function2937e + dw Function29391 + dw Function29129 + dw Function291af + dw Function291c4 + dw Function291d9 + dw Function2925d + dw Function29220 + dw Function2925d + dw Function29229 + dw Function2913c + dw Function2925d + dw Function291e8 + dw Function291fd + dw Function29211 + dw Function29220 + dw Function2925d + dw Function29229 + dw Function29701 + dw Function2973c + dw Function2975c + dw Function2977f + dw Function297a4 + dw Function293a6 + dw Function293b6 + dw Function293d2 + dw Function293de + dw Function293ea + dw Function2940c + dw Function294e7 + dw Function294f0 + dw Function2961b + dw Function2962c + dw Function29879 + dw Function29886 + dw Function29649 + dw Function29660 + dw Function2926d + dw Function29277 + dw Function29123 + dw Function29487 + dw Function294f9 + dw Function29502 + dw Function2950c +; 2910f + +Function2910f: ; 2910f + ld hl, wJumptableIndex + inc [hl] + ret +; 29114 + +Function29114: ; 29114 + ld hl, BattleEnded + ld e, [hl] + inc hl + ld d, [hl] + ld a, [de] + ld [wJumptableIndex], a + inc de + ld [hl], d + dec hl + ld [hl], e + ret +; 29123 + +Function29123: ; 29123 + ld hl, wJumptableIndex + set 7, [hl] + ret +; 29129 + +Function29129: ; 29129 + ld a, $ed + call Function292f6 + ld a, [wc74c] + ld [wd265], a + xor a + ld de, $2c58 + ld b, $0 + jr Function2914e + +Function2913c: ; 2913c + ld a, $ee + call Function292f6 + ld a, [wc74d] + ld [wd265], a + ld a, $2 + lb de, $4c, $94 + ld b, $4 + +Function2914e: ; 2914e + push bc + push de + push bc + push de + push af + call DisableLCD + callab Function8cf53 + ld hl, $9874 + ld bc, $c + ld a, $60 + call ByteFill + pop af + call Function29281 + xor a + ld [hSCX], a + ld a, $7 + ld [hWX], a + ld a, $70 + ld [hWY], a + call EnableLCD + call Function2985a + pop de + ld a, $11 + call Function3b2a + ld hl, $b + add hl, bc + pop bc + ld [hl], b + pop de + ld a, $12 + call Function3b2a + ld hl, $b + add hl, bc + pop bc + ld [hl], b + call WaitBGMap + ld b, $1b + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld a, $d0 + call Functioncf8 + call Function2910f + ld a, $5c + ld [wcf64], a + ret +; 291af + +Function291af: ; 291af + call Function2981d + ld a, [hSCX] + add $2 + ld [hSCX], a + cp $50 + ret nz + ld a, $1 + call Function29281 + call Function2910f + ret +; 291c4 + +Function291c4: ; 291c4 + call Function2981d + ld a, [hSCX] + add $2 + ld [hSCX], a + cp $a0 + ret nz + ld a, $2 + call Function29281 + call Function2910f + ret +; 291d9 + +Function291d9: ; 291d9 + call Function2981d + ld a, [hSCX] + add $2 + ld [hSCX], a + and a + ret nz + call Function2910f + ret +; 291e8 + +Function291e8: ; 291e8 + call Function2981d + ld a, [hSCX] + sub $2 + ld [hSCX], a + cp $b0 + ret nz + ld a, $1 + call Function29281 + call Function2910f + ret +; 291fd + +Function291fd: ; 291fd + call Function2981d + ld a, [hSCX] + sub $2 + ld [hSCX], a + cp $60 + ret nz + xor a + call Function29281 + call Function2910f + ret +; 29211 + +Function29211: ; 29211 + call Function2981d + ld a, [hSCX] + sub $2 + ld [hSCX], a + and a + ret nz + call Function2910f + ret +; 29220 + +Function29220: ; 29220 + ld a, $80 + ld [wcf64], a + call Function2910f + ret +; 29229 + +Function29229: ; 29229 + call WhiteBGMap + call ClearTileMap + call ClearSprites + call DisableLCD + callab Function8cf53 + ld hl, VBGMap0 + ld bc, sScratch - VBGMap0 + ld a, " " + call ByteFill + xor a + ld [hSCX], a + ld a, $90 + ld [hWY], a + call EnableLCD + call Function2982b + call WaitBGMap + call Function297ed + call Function29114 + ret +; 2925d + +Function2925d: ; 2925d + call Function2981d + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_29269 + dec [hl] + ret + +.asm_29269 + call Function2910f + ret +; 2926d + +Function2926d: ; 2926d + call Function29114 + ld de, SFX_GIVE_TRADEMON + call PlaySFX + ret +; 29277 + +Function29277: ; 29277 + call Function29114 + ld de, SFX_GET_TRADEMON + call PlaySFX + ret +; 29281 + +Function29281: ; 29281 + and 3 + ld e, a + ld d, 0 + ld hl, Jumptable_2928f +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 2928f + +Jumptable_2928f: ; 2928f + dw Function29297 + dw Function292af + dw Function292be + dw Function29297 +; 29297 + +Function29297: ; 29297 + call Function297cf + hlcoord 9, 3 + ld [hl], $5b + inc hl + ld bc, $a + ld a, $60 + call ByteFill + hlcoord 3, 2 + call Function292ec + ret +; 292af + +Function292af: ; 292af + call Function297cf + hlcoord 0, 3 + ld bc, SCREEN_WIDTH + ld a, $60 + call ByteFill + ret +; 292be + +Function292be: ; 292be + call Function297cf + hlcoord 0, 3 + ld bc, $11 + ld a, $60 + call ByteFill + hlcoord 17, 3 + ld a, $5d + ld [hl], a + ld a, $61 + ld de, SCREEN_WIDTH + ld c, $3 +.asm_292d9 + add hl, de + ld [hl], a + dec c + jr nz, .asm_292d9 + add hl, de + ld a, $5f + ld [hld], a + ld a, $5b + ld [hl], a + hlcoord 10, 6 + call Function292ec + ret +; 292ec + +Function292ec: ; 292ec + ld de, TradeGameBoyTilemap + lb bc, 8, 6 + call Function297db + ret +; 292f6 + +Function292f6: ; 292f6 + push af + call WhiteBGMap + call WaitTop + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + call ClearTileMap + hlcoord 0, 0 + ld bc, SCREEN_WIDTH + ld a, "─" + call ByteFill + hlcoord 0, 1 + ld de, wc736 + call PlaceString + ld hl, wc741 + ld de, 0 +.asm_2931e + ld a, [hli] + cp "@" + jr z, .asm_29326 + dec de + jr .asm_2931e + +.asm_29326 + hlcoord 0, 4 + add hl, de + ld de, wc741 + call PlaceString + hlcoord 7, 2 + ld bc, 6 + pop af + call ByteFill + call WaitBGMap + call WaitTop + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + call ClearTileMap + ret +; 29348 + +Function29348: ; 29348 + call ClearTileMap + call WaitTop + ld a, $a0 + ld [hSCX], a + call DelayFrame + hlcoord 8, 2 + ld de, Tilemap_298f7 + lb bc, 3, 12 + call Function297db + call WaitBGMap + ld b, $1b + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld de, $e4e4 + call DmgToCgbObjPals + ld de, SFX_POTION + call PlaySFX + call Function2910f + ret +; 2937e + +Function2937e: ; 2937e + ld a, [hSCX] + and a + jr z, .asm_29388 + add $4 + ld [hSCX], a + ret + +.asm_29388 + ld c, $50 + call DelayFrames + call Function29114 + ret +; 29391 + +Function29391: ; 29391 + ld a, [hSCX] + cp $a0 + jr z, .asm_2939c + sub $4 + ld [hSCX], a + ret + +.asm_2939c + call ClearTileMap + xor a + ld [hSCX], a + call Function29114 + ret +; 293a6 + +Function293a6: ; 293a6 + ld a, $8f + ld [hWX], a + ld a, $88 + ld [hSCX], a + ld a, $50 + ld [hWY], a + call Function29114 + ret +; 293b6 + +Function293b6: ; 293b6 + ld a, [hWX] + cp $7 + jr z, .asm_293c7 + sub $4 + ld [hWX], a + ld a, [hSCX] + sub $4 + ld [hSCX], a + ret + +.asm_293c7 + ld a, $7 + ld [hWX], a + xor a + ld [hSCX], a + call Function29114 + ret +; 293d2 + +Function293d2: ; 293d2 + ld a, $7 + ld [hWX], a + ld a, $50 + ld [hWY], a + call Function29114 + ret +; 293de + +Function293de: ; 293de + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + call Function29114 + ret +; 293ea + +Function293ea: ; 293ea + call WaitTop + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + call WaitBGMap + ld a, $7 + ld [hWX], a + xor a + ld [hWY], a + call DelayFrame + call WaitTop + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + call ClearTileMap + call Function2910f + ret +; 2940c + +Function2940c: ; 2940c + ld a, [hWX] + cp $a1 + jr nc, .asm_29417 + add $4 + ld [hWX], a + ret + +.asm_29417 + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + call WaitBGMap + ld a, $7 + ld [hWX], a + ld a, $90 + ld [hWY], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + call Function29114 + ret +; 2942e + +Function2942e: ; 2942e + call Function2951f + ld a, [wc6d0] + ld [CurPartySpecies], a + ld a, [wc6fd] + ld [TempMonDVs], a + ld a, [wc6fe] + ld [TempMonDVs + 1], a + ld b, $1a + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + call Function294bb + + ld a, [wc6d0] + call GetCryIndex + jr c, .asm_2945d + ld e, c + ld d, b + call PlayCryHeader +.asm_2945d + + call Function29114 + ret +; 29461 + +Function29461: ; 29461 + call Function29549 + ld a, [wc702] + ld [CurPartySpecies], a + ld a, [wEnemyTrappingMove] + ld [TempMonDVs], a + ld a, [wPlayerWrapCount] + ld [TempMonDVs + 1], a + ld b, $1a + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + call Function294c0 + call Function29114 + ret +; 29487 + +Function29487: ; 29487 + callba Function4d81e + call Function29114 + ret +; 29491 + +Function29491: ; 29491 + push de + push af + predef GetUnownLetter + pop af + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + pop de + predef GetFrontpic + ret +; 294a9 + +Function294a9: ; 294a9 + push de + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 + pop de + ld bc, NAME_LENGTH + call CopyBytes + ret +; 294bb + +Function294bb: ; 294bb + ld de, VTiles0 + jr Function294c3 + +Function294c0: ; 294c0 + ld de, VTiles0 tile $31 + +Function294c3: ; 294c3 + call DelayFrame + ld hl, VTiles2 + ld bc, $a31 + call Request2bpp + call WaitTop + call Function297cf + hlcoord 7, 2 + xor a + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + call WaitBGMap + ret +; 294e7 + +Function294e7: ; 294e7 + ld c, $50 + call DelayFrames + call Function29114 + ret +; 294f0 + +Function294f0: ; 294f0 + ld c, $28 + call DelayFrames + call Function29114 + ret +; 294f9 + +Function294f9: ; 294f9 + ld c, $60 + call DelayFrames + call Function29114 + ret +; 29502 + +Function29502: ; 29502 + call Function29516 + ret nz + ld c, $50 + call DelayFrames + ret +; 2950c + +Function2950c: ; 2950c + call Function29516 + ret nz + ld c, $b4 + call DelayFrames + ret +; 29516 + +Function29516: ; 29516 + call Function29114 + ld a, [wc702] + cp $fd + ret +; 2951f + +Function2951f: ; 2951f + ld de, wc6d0 + ld a, [de] + cp $fd + jr z, Function295a1 + call Function29573 + ld de, wc6d0 + call Function295e3 + ld de, wc6d1 + call Function295ef + ld a, [wc701] + ld de, wc6f2 + call Function295f6 + ld de, PlayerScreens + call Function29611 + call Function295d8 + ret +; 29549 + +Function29549: ; 29549 + ld de, wc702 + ld a, [de] + cp $fd + jr z, Function295a1 + call Function29573 + ld de, wc702 + call Function295e3 + ld de, wc703 + call Function295ef + ld a, [wEnemyCharging] + ld de, wc724 + call Function295f6 + ld de, wEnemyWrapCount + call Function29611 + call Function295d8 + ret +; 29573 + +Function29573: ; 29573 + call WaitTop + call Function297cf + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + hlcoord 3, 0 + ld b, $6 + ld c, $d + call TextBox + hlcoord 4, 0 + ld de, String29591 + call PlaceString + ret +; 29591 + +String29591: ; 29591 + db "─── №." + next "" + next "OT/" + next $73, "№.@" +; 295a1 + +Function295a1: ; 295a1 + call WaitTop + call Function297cf + ld a, VBGMap1 / $100 + ld [hBGMapAddress + 1], a + hlcoord 3, 0 + ld b, $6 + ld c, $d + call TextBox + hlcoord 4, 2 + ld de, String295c2 + call PlaceString + call Function295d8 + ret +; 295c2 + +String295c2: ; 295c2 + db "EGG" + next "OT/?????" + next $73, "№.?????@" +; 295d8 + +Function295d8: ; 295d8 + call WaitBGMap + call WaitTop + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ret +; 295e3 + +Function295e3: ; 295e3 + hlcoord 10, 0 + lb bc, PRINTNUM_LEADINGZEROS | 1, 3 + call PrintNum + ld [hl], $7f + ret +; 295ef + +Function295ef: ; 295ef + hlcoord 4, 2 + call PlaceString + ret +; 295f6 + +Function295f6: ; 295f6 + cp 3 + jr c, .asm_295fb + xor a + +.asm_295fb + push af + hlcoord 7, 4 + call PlaceString + inc bc + pop af + ld hl, Unknown_2960e + ld d, 0 + ld e, a + add hl, de + ld a, [hl] + ld [bc], a + ret +; 2960e + +Unknown_2960e: ; 2960e + db " ", "♂", "♀" +; 29611 + +Function29611: ; 29611 + hlcoord 7, 6 + lb bc, PRINTNUM_LEADINGZEROS | 2, 5 + call PrintNum + ret +; 2961b + +Function2961b: ; 2961b + lb de, $54, $58 + ld a, $e + call Function3b2a + call Function29114 + ld a, $20 + ld [wcf64], a + ret +; 2962c + +Function2962c: ; 2962c + lb de, $54, $58 + ld a, $e + call Function3b2a + ld hl, $b + add hl, bc + ld [hl], $1 + ld hl, $7 + add hl, bc + ld [hl], $dc + call Function29114 + ld a, $38 + ld [wcf64], a + ret +; 29649 + +Function29649: ; 29649 + lb de, $54, $58 + ld a, $f + call Function3b2a + call Function29114 + ld a, $10 + ld [wcf64], a + ld de, SFX_BALL_POOF + call PlaySFX + ret +; 29660 + +Function29660: ; 29660 + ld a, $e4 + call Functioncf8 + lb de, $28, $58 + ld a, $10 + call Function3b2a + call Function29114 + ld a, $40 + ld [wcf64], a + ret +; 29676 + +Function29676: ; 29676 (a:5676) + ld hl, $b + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Jumptable_29686 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 29686 + +Jumptable_29686: ; 29686 (a:5686) + dw Function2969a + dw Function296a4 + dw Function296af + dw Function296bd + dw Function296cf + dw Function296dd + dw Function296f2 +; 2969a + +Function29694: ; 29694 (a:5694) + ld hl, $b + add hl, bc + inc [hl] + ret + +Function2969a: ; 2969a (a:569a) + call Function29694 + ld hl, $c + add hl, bc + ld [hl], $80 + ret + +Function296a4: ; 296a4 (a:56a4) + ld hl, $c + add hl, bc + ld a, [hl] + dec [hl] + and a + ret nz + call Function29694 + +Function296af: ; 296af (a:56af) + ld hl, $4 + add hl, bc + ld a, [hl] + cp $94 + jr nc, .asm_296ba + inc [hl] + ret +.asm_296ba + call Function29694 + +Function296bd: ; 296bd (a:56bd) + ld hl, $5 + add hl, bc + ld a, [hl] + cp $4c + jr nc, .asm_296c8 + inc [hl] + ret +.asm_296c8 + ld hl, $ + add hl, bc + ld [hl], $0 + ret + +Function296cf: ; 296cf (a:56cf) + ld hl, $5 + add hl, bc + ld a, [hl] + cp $2c + jr z, .asm_296da + dec [hl] + ret +.asm_296da + call Function29694 + +Function296dd: ; 296dd (a:56dd) + ld hl, $4 + add hl, bc + ld a, [hl] + cp $58 + jr z, .asm_296e8 + dec [hl] + ret +.asm_296e8 + call Function29694 + ld hl, $c + add hl, bc + ld [hl], $80 + ret + +Function296f2: ; 296f2 (a:56f2) + ld hl, $c + add hl, bc + ld a, [hl] + dec [hl] + and a + ret nz + ld hl, $ + add hl, bc + ld [hl], $0 + ret +; 29701 (a:5701) + +Function29701: ; 29701 + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + jr z, .asm_29725 + ld hl, UnknownText_0x29737 + call PrintText + ld c, $bd + call DelayFrames + ld hl, UnknownText_0x29732 + call PrintText + call Function297c9 + ld c, $80 + call DelayFrames + call Function29114 + ret + +.asm_29725 + ld hl, UnknownText_0x29732 + call PrintText + call Function297c9 + call Function29114 + ret +; 29732 + +UnknownText_0x29732: ; 0x29732 + ; was sent to @ . + text_jump UnknownText_0x1bc6e9 + db "@" +; 0x29737 + +UnknownText_0x29737: ; 0x29737 + ; + text_jump UnknownText_0x1bc701 + db "@" +; 0x2973c + +Function2973c: ; 2973c + ld hl, UnknownText_0x29752 + call PrintText + call Function297c9 + ld hl, UnknownText_0x29757 + call PrintText + call Function297c9 + call Function29114 + ret +; 29752 + +UnknownText_0x29752: ; 0x29752 + ; bids farewell to + text_jump UnknownText_0x1bc703 + db "@" +; 0x29757 + +UnknownText_0x29757: ; 0x29757 + ; . + text_jump UnknownText_0x1bc719 + db "@" +; 0x2975c + +Function2975c: ; 2975c + call WaitTop + hlcoord 0, 10 + ld bc, 8 * SCREEN_WIDTH + ld a, " " + call ByteFill + call WaitBGMap + ld hl, UnknownText_0x2977a + call PrintText + call Function297c9 + call Function29114 + ret +; 2977a + +UnknownText_0x2977a: ; 0x2977a + ; Take good care of @ . + text_jump UnknownText_0x1bc71f + db "@" +; 0x2977f + +Function2977f: ; 2977f + ld hl, UnknownText_0x2979a + call PrintText + call Function297c9 + ld hl, UnknownText_0x2979f + call PrintText + call Function297c9 + ld c, $e + call DelayFrames + call Function29114 + ret +; 2979a + +UnknownText_0x2979a: ; 0x2979a + ; For @ 's @ , + text_jump UnknownText_0x1bc739 + db "@" +; 0x2979f + +UnknownText_0x2979f: ; 0x2979f + ; sends @ . + text_jump UnknownText_0x1bc74c + db "@" +; 0x297a4 + +Function297a4: ; 297a4 + ld hl, UnknownText_0x297bf + call PrintText + call Function297c9 + ld hl, UnknownText_0x297c4 + call PrintText + call Function297c9 + ld c, $e + call DelayFrames + call Function29114 + ret +; 297bf + +UnknownText_0x297bf: ; 0x297bf + ; will trade @ @ + text_jump UnknownText_0x1bc75e + db "@" +; 0x297c4 + +UnknownText_0x297c4: ; 0x297c4 + ; for @ 's @ . + text_jump UnknownText_0x1bc774 + db "@" +; 0x297c9 + +Function297c9: ; 297c9 + ld c, $50 + call DelayFrames + ret +; 297cf + +Function297cf: ; 297cf + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + ret +; 297db + +Function297db: ; 297db +.asm_297db + push bc + push hl +.asm_297dd + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_297dd + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_297db + ret +; 297ed + +Function297ed: ; 297ed + ld a, [hSGB] + and a + ld a, $e4 + jr z, .asm_297f6 + ld a, $f0 + +.asm_297f6 + call Functioncf8 + ld a, $e4 + call DmgToCgbBGPals + ret +; 297ff + +Function297ff: ; 297ff + push de + ld de, wc736 + ld bc, NAME_LENGTH + call CopyBytes + pop hl + ld de, wc741 + ld bc, NAME_LENGTH + call CopyBytes + ret +; 29814 + +Function29814: ; 29814 + ld a, [hl] + ld [wc74c], a + ld a, [de] + ld [wc74d], a + ret +; 2981d + +Function2981d: ; 2981d + ld a, [wcf65] + and $7 + ret nz + ld a, [rBGP] + xor $3c + call DmgToCgbBGPals + ret +; 2982b + +Function2982b: ; 2982b + call DelayFrame + ld de, TradeBallGFX + ld hl, VTiles0 tile $62 + lb bc, BANK(TradeBallGFX), $6 + call Request2bpp + ld de, TradePoofGFX + ld hl, VTiles0 tile $68 + lb bc, BANK(TradePoofGFX), $c + call Request2bpp + ld de, TradeCableGFX + ld hl, VTiles0 tile $74 + lb bc, BANK(TradeCableGFX), $4 + call Request2bpp + xor a + ld hl, wc300 + ld [hli], a + ld [hl], $62 + ret +; 2985a + +Function2985a: ; 2985a + call DelayFrame + ld e, $3 + callab Function8e83f + ld de, TradeBubbleGFX + ld hl, VTiles0 tile $72 + lb bc, BANK(TradeBubbleGFX), $4 + call Request2bpp + xor a + ld hl, wc300 + ld [hli], a + ld [hl], $62 + ret +; 29879 + +Function29879: ; 29879 + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_29882 + dec [hl] + ret + +.asm_29882 + call Function29114 + ret +; 29886 + +Function29886: ; 29886 + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_2988f + dec [hl] + ret + +.asm_2988f + call Function29114 + ret +; 29893 + + +Function29893: ; 29893 +; This function is unreferenced. +; It was meant for use in Japanese versions, so the +; constant used for copy length was changed by accident. + + ld hl, Unknown_298b5 + + ld a, [hli] + ld [wc6d0], a + ld de, wc6e7 + ld c, 13 ; jp: 8 +.asm_2989f + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_2989f + + ld a, [hli] + ld [wc702], a + ld de, wc719 + ld c, 13 ; jp: 8 +.asm_298ae + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_298ae + ret +; 298b5 + +Unknown_298b5: ; 298b5 + db $03, "ゲーフり@@", $23, $01 ; GAME FREAK + db $06, "クりーチャ@", $56, $04 ; Creatures Inc. +; 298c7 + + +TradeGameBoyTilemap: ; 298c7 +; 6x8 + db $31, $32, $32, $32, $32, $33 + db $34, $35, $36, $36, $37, $38 + db $34, $39, $3a, $3a, $3b, $38 + db $3c, $3d, $3e, $3e, $3f, $40 + db $41, $42, $43, $43, $44, $45 + db $46, $47, $43, $48, $49, $4a + db $41, $43, $4b, $4c, $4d, $4e + db $4f, $50, $50, $50, $51, $52 +; 297f7 + +Tilemap_298f7: ; 297f7 +; 12x3 + db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53 + db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54 + db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43 +; 2991b + +TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp" +TradeCableGFX: INCBIN "gfx/trade/cable.2bpp" +TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp" +TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz" +TradeBallGFX: INCBIN "gfx/trade/ball.2bpp" +TradePoofGFX: INCBIN "gfx/trade/poof.2bpp" + +Special_CheckTimeCapsuleCompatibility: ; 29bfb +; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar: +; 0: Party is okay +; 1: At least one Pokemon was introduced in GS +; 2: At least one Pokemon has a move that was introduced in GS +; 3: At least one Pokemon is holding mail + +; If any party Pokemon was introduced in the generation 2 games, don't let it in. + ld hl, PartySpecies + ld b, PARTY_LENGTH ; 6 +.loop + ld a, [hli] + cp $ff + jr z, .checkitem + cp CHIKORITA ; MEW + 1 ; 151 + 1 + jr nc, .mon_too_new + dec b + jr nz, .loop + +; If any party Pokemon is holding mail, don't let it in. +.checkitem + ld a, [PartyCount] + ld b, a + ld hl, PartyMon1Item +.itemloop + push hl + push bc + ld d, [hl] + callba ItemIsMail + pop bc + pop hl + jr c, .mon_has_mail + ld de, PARTYMON_STRUCT_LENGTH + add hl, de + dec b + jr nz, .itemloop + +; If any party Pokemon has a move that was introduced in the generation 2 games, don't let it in. + ld hl, PartyMon1Moves + ld a, [PartyCount] + ld b, a +.move_loop + ld c, NUM_MOVES +.move_next + ld a, [hli] + cp STRUGGLE + 1 + jr nc, .move_too_new + dec c + jr nz, .move_next + ld de, PartyMon2 - (PartyMon1 + NUM_MOVES) + add hl, de + dec b + jr nz, .move_loop + xor a + jr .done + +.mon_too_new + ld [wd265], a + call GetPokemonName + ld a, $1 + jr .done + +.move_too_new + push bc + ld [wd265], a + call GetMoveName + call CopyName1 + pop bc + call Function29c67 + ld a, $2 + jr .done + +.mon_has_mail + call Function29c67 + ld a, $3 + +.done + ld [ScriptVar], a + ret +; 29c67 + +Function29c67: ; 29c67 + ld a, [PartyCount] + sub b + ld c, a + inc c + ld b, $0 + ld hl, PartyCount + add hl, bc + ld a, [hl] + ld [wd265], a + call GetPokemonName + ret +; 29c7b + +Special_EnterTimeCapsule: ; 29c7b + ld c, $a + call DelayFrames + ld a, $4 + call Function29f17 + ld c, $28 + call DelayFrames + xor a + ld [hVBlank], a + inc a + ld [wLinkMode], a + ret +; 29c92 + +Special_AbortLink: ; 29c92 + ld c, $3 + call DelayFrames + ld a, -1 + ld [hLinkPlayerNumber], a + xor a + ld [rSB], a + ld [hSerialReceive], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + ld c, $3 + call DelayFrames + xor a + ld [rSB], a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + ld c, $3 + call DelayFrames + xor a + ld [rSB], a + ld [hSerialReceive], a + ld [rSC], a + ld c, $3 + call DelayFrames + ld a, -1 + ld [hLinkPlayerNumber], a + ld a, [rIF] + push af + xor a + ld [rIF], a + ld a, $f + ld [rIE], a + pop af + ld [rIF], a + ld hl, wcf5b + xor a + ld [hli], a + ld [hl], a + ld [hVBlank], a + ld [wLinkMode], a + ret +; 29ce8 + +Special_SetBitsForLinkTradeRequest: ; 29ce8 + ld a, $1 + ld [wcf56], a + ld [wd265], a + ret +; 29cf1 + +Special_SetBitsForBattleRequest: ; 29cf1 + ld a, $2 + ld [wcf56], a + ld [wd265], a + ret +; 29cfa + +Special_SetBitsForTimeCapsuleRequest: ; 29cfa + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + xor a + ld [wcf56], a + ld [wd265], a + ret +; 29d11 + +Special_WaitForLinkedFriend: ; 29d11 + ld a, [wcf56] + and a + jr z, .asm_29d2f + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + call DelayFrame + call DelayFrame + call DelayFrame + +.asm_29d2f + ld a, $2 + ld [wcf5c], a + ld a, $ff + ld [wcf5b], a +.asm_29d39 + ld a, [hLinkPlayerNumber] + cp $2 + jr z, .asm_29d79 + cp $1 + jr z, .asm_29d79 + ld a, -1 + ld [hLinkPlayerNumber], a + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld a, $0 + ld [rSC], a + ld a, $80 + ld [rSC], a + ld a, [wcf5b] + dec a + ld [wcf5b], a + jr nz, .asm_29d68 + ld a, [wcf5c] + dec a + ld [wcf5c], a + jr z, .asm_29d8d + +.asm_29d68 + ld a, $1 + ld [rSB], a + ld a, $1 + ld [rSC], a + ld a, $81 + ld [rSC], a + call DelayFrame + jr .asm_29d39 + +.asm_29d79 + call Function908 + call DelayFrame + call Function908 + ld c, $32 + call DelayFrames + ld a, $1 + ld [ScriptVar], a + ret + +.asm_29d8d + xor a + ld [ScriptVar], a + ret +; 29d92 + +Special_CheckLinkTimeout: ; 29d92 + ld a, $1 + ld [wcf56], a + ld hl, wcf5b + ld a, $3 + ld [hli], a + xor a + ld [hl], a + call WaitBGMap + ld a, $2 + ld [hVBlank], a + call DelayFrame + call DelayFrame + call Function29e0c + xor a + ld [hVBlank], a + ld a, [ScriptVar] + and a + ret nz + jp Function29f04 +; 29dba + +Function29dba: ; 29dba + ld a, $5 + ld [wcf56], a + ld hl, wcf5b + ld a, $3 + ld [hli], a + xor a + ld [hl], a + call WaitBGMap + ld a, $2 + ld [hVBlank], a + call DelayFrame + call DelayFrame + call Function29e0c + ld a, [ScriptVar] + and a + jr z, .asm_29e08 + ld bc, rIE +.asm_29de0 + dec bc + ld a, b + or c + jr nz, .asm_29de0 + ld a, [wcf51] + cp $5 + jr nz, .asm_29e03 + ld a, $6 + ld [wcf56], a + ld hl, wcf5b + ld a, $1 + ld [hli], a + ld [hl], $32 + call Function29e0c + ld a, [wcf51] + cp $6 + jr z, .asm_29e08 + +.asm_29e03 + xor a + ld [ScriptVar], a + ret + +.asm_29e08 + xor a + ld [hVBlank], a + ret +; 29e0c + +Function29e0c: ; 29e0c + xor a + ld [$ffca], a + ld a, [wcf5b] + ld h, a + ld a, [wcf5c] + ld l, a + push hl + call Function29e3b + pop hl + jr nz, .asm_29e2f + call Function29e47 + call Function29e53 + call Function29e3b + jr nz, .asm_29e2f + call Function29e47 + xor a + jr .asm_29e31 + +.asm_29e2f + ld a, $1 + +.asm_29e31 + ld [ScriptVar], a + ld hl, wcf5b + xor a + ld [hli], a + ld [hl], a + ret +; 29e3b + +Function29e3b: ; 29e3b + call Function87d + ld hl, wcf5b + ld a, [hli] + inc a + ret nz + ld a, [hl] + inc a + ret +; 29e47 + +Function29e47: ; 29e47 + ld b, $a +.asm_29e49 + call DelayFrame + call Function908 + dec b + jr nz, .asm_29e49 + ret +; 29e53 + +Function29e53: ; 29e53 + dec h + srl h + rr l + srl h + rr l + inc h + ld a, h + ld [wcf5b], a + ld a, l + ld [wcf5c], a + ret +; 29e66 + +Special_TryQuickSave: ; 29e66 + ld a, [wd265] + push af + callba Function14ab2 + ld a, $1 + jr nc, .asm_29e75 + xor a + +.asm_29e75 + ld [ScriptVar], a + ld c, $1e + call DelayFrames + pop af + ld [wd265], a + ret +; 29e82 + +Special_CheckBothSelectedSameRoom: ; 29e82 + ld a, [wd265] + call Function29f17 + push af + call Function908 + call DelayFrame + call Function908 + pop af + ld b, a + ld a, [wd265] + cp b + jr nz, .asm_29eaa + ld a, [wd265] + inc a + ld [wLinkMode], a + xor a + ld [hVBlank], a + ld a, $1 + ld [ScriptVar], a + ret + +.asm_29eaa + xor a + ld [ScriptVar], a + ret +; 29eaf + +Special_TimeCapsule: ; 29eaf + ld a, LINK_TIMECAPSULE + ld [wLinkMode], a + call DisableSpriteUpdates + callab LinkCommunications + call EnableSpriteUpdates + xor a + ld [hVBlank], a + ret +; 29ec4 + +Special_TradeCenter: ; 29ec4 + ld a, LINK_TRADECENTER + ld [wLinkMode], a + call DisableSpriteUpdates + callab LinkCommunications + call EnableSpriteUpdates + xor a + ld [hVBlank], a + ret +; 29ed9 + +Special_Colosseum: ; 29ed9 + ld a, LINK_COLOSSEUM + ld [wLinkMode], a + call DisableSpriteUpdates + callab LinkCommunications + call EnableSpriteUpdates + xor a + ld [hVBlank], a + ret +; 29eee + +Special_CloseLink: ; 29eee + xor a + ld [wLinkMode], a + ld c, $3 + call DelayFrames + jp Function29f04 +; 29efa + +Special_FailedLinkToPast: ; 29efa + ld c, $28 + call DelayFrames + ld a, $e + jp Function29f17 +; 29f04 + +Function29f04: ; 29f04 + ld c, $3 + call DelayFrames + ld a, -1 + ld [hLinkPlayerNumber], a + ld a, $2 + ld [rSB], a + xor a + ld [hSerialReceive], a + ld [rSC], a + ret +; 29f17 + +Function29f17: ; 29f17 + add $d0 + ld [wcf56], a + ld [wcf57], a + ld a, $2 + ld [hVBlank], a + call DelayFrame + call DelayFrame +.asm_29f29 + call Function83b + ld a, [wcf51] + ld b, a + and $f0 + cp $d0 + jr z, .asm_29f40 + ld a, [wcf52] + ld b, a + and $f0 + cp $d0 + jr nz, .asm_29f29 + +.asm_29f40 + xor a + ld [hVBlank], a + ld a, b + and $f + ret +; 29f47 + +Special_CableClubCheckWhichChris: ; 29f47 + ld a, [hLinkPlayerNumber] + cp $1 + ld a, $1 + jr z, .yes + dec a + +.yes + ld [ScriptVar], a + ret +; 29f54 + +GFX_29f54: ; 29f54 +INCBIN "gfx/unknown/029f54.2bpp" +; 29fe4 diff --git a/main.asm b/main.asm index 9ec72555b..b0b29b4a3 100644 --- a/main.asm +++ b/main.asm @@ -8349,7 +8349,7 @@ Functionda96: ; da96 call CopyBytes ld a, [CurPartySpecies] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a cp EGG jr z, .owned dec a @@ -25192,4344 +25192,228 @@ Function27a28: ; 27a28 SECTION "bankA", ROMX, BANK[$A] -LinkCommunications: ; 28000 - call WhiteBGMap - ld c, $50 - call DelayFrames - call ClearScreen - call ClearSprites - call UpdateSprites - xor a - ld [hSCX], a - ld [hSCY], a - ld c, $50 - call DelayFrames - call ClearScreen - call UpdateSprites - call LoadStandardFont - call LoadFontsBattleExtra - callba Function16d69a - call Function3200 - hlcoord 3, 8 +INCLUDE "engine/link.asm" + +Function29fe4: ; unreferenced + ld a, $0 + call GetSRAMBank + ld d, $0 ld b, $2 - ld c, $c - ld d, h - ld e, l - callba Function4d35b - hlcoord 4, 10 - ld de, String28419 - call PlaceString - call Function28eff - call Function3200 - ld hl, wcf5d + predef FlagPredef + call CloseSRAM + ld a, c + and a + ret +; 29ff8 + +LoadWildMonData: ; 29ff8 + call _GrassWildmonLookup + jr c, .asm_2a006 + ld hl, wd25a xor a +rept 2 ld [hli], a - ld [hl], $50 - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jp nz, Function28177 +endr + ld [hl], a + jr .asm_2a011 +.asm_2a006 +rept 2 + inc hl +endr + ld de, wd25a + ld bc, $3 + call CopyBytes +.asm_2a011 + call _WaterWildmonLookup + ld a, $0 + jr nc, .asm_2a01b +rept 2 + inc hl +endr + ld a, [hl] +.asm_2a01b + ld [wd25d], a + ret -Function2805d: ; 2805d - call Function28426 - call Function28499 - call Function28434 - xor a - ld [wcf56], a - call Function87d - ld a, [hLinkPlayerNumber] - cp $2 - jr nz, .asm_28091 - ld c, $3 - call DelayFrames - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame +Function2a01f: ; 2a01f + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a + call ByteFill + ld a, e + and a + jr nz, .asm_2a043 + decoord 0, 0 + ld hl, JohtoGrassWildMons + call Function2a052 + ld hl, JohtoWaterWildMons + call Function2a06e + call Function2a0b7 + call Function2a0cf + ret -.asm_28091 - ld de, MUSIC_NONE - call PlayMusic - ld c, $3 - call DelayFrames - xor a - ld [rIF], a - ld a, $8 - ld [rIE], a - ld hl, wd1f3 - ld de, EnemyMonSpecies - ld bc, $11 - call Function75f - ld a, $fe - ld [de], a - ld hl, OverworldMap - ld de, wd26b - ld bc, $1a8 - call Function75f - ld a, $fe - ld [de], a - ld hl, wc608 - ld de, wc6d0 - ld bc, $c8 - call Function75f - xor a - ld [rIF], a - ld a, $1d - ld [rIE], a - call Function287ab - ld hl, wd26b - call Function287ca - push hl - ld bc, NAME_LENGTH - add hl, bc +.asm_2a043 + decoord 0, 0 + ld hl, KantoGrassWildMons + call Function2a052 + ld hl, KantoWaterWildMons + jp Function2a06e +; 2a052 + +Function2a052: ; 2a052 +.asm_2a052 ld a, [hl] - pop hl - and a - jp z, Function28b22 - cp $7 - jp nc, Function28b22 - ld de, OverworldMap - ld bc, $1a2 - call Function2879e - ld de, wc6d0 - ld hl, wc813 - ld c, $2 -.asm_280fe - ld a, [de] - inc de - and a - jr z, .asm_280fe - cp $fd - jr z, .asm_280fe - cp $fe - jr z, .asm_280fe cp $ff - jr z, .asm_2811d + ret z push hl - push bc - ld b, $0 - dec a - ld c, a - add hl, bc - ld a, $fe - ld [hl], a - pop bc - pop hl - jr .asm_280fe - -.asm_2811d - ld hl, wc90f - dec c - jr nz, .asm_280fe - ld hl, OverworldMap - ld de, wd26b - ld bc, NAME_LENGTH - call CopyBytes - ld de, OTPartyCount ld a, [hli] - ld [de], a - inc de -.asm_28135 + ld b, a ld a, [hli] - cp $ff - jr z, .asm_2814e - ld [wd265], a - push hl - push de - callab ConvertMon_1to2 - pop de - pop hl - ld a, [wd265] + ld c, a +rept 3 + inc hl +endr + ld a, $15 + call Function2a088 + jr nc, .asm_2a067 ld [de], a inc de - jr .asm_28135 - -.asm_2814e - ld [de], a - ld hl, wc813 - call Function2868a - ld a, OTPartyMonOT % $100 - ld [wd102], a - ld a, OTPartyMonOT / $100 - ld [wd103], a - ld de, MUSIC_NONE - call PlayMusic - ld a, [hLinkPlayerNumber] - cp $2 - ld c, 66 - call z, DelayFrames - ld de, MUSIC_ROUTE_30 - call PlayMusic - jp Function287e3 -; 28177 - -Function28177: ; 28177 - call Function28426 - call Function28595 - call Function28434 - call Function29dba - ld a, [ScriptVar] - and a - jp z, Function283b2 - ld a, [hLinkPlayerNumber] - cp $2 - jr nz, .asm_281ae - ld c, $3 - call DelayFrames - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame - xor a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a -.asm_281ae - ld de, MUSIC_NONE - call PlayMusic - ld c, $3 - call DelayFrames - xor a - ld [rIF], a - ld a, $8 - ld [rIE], a - ld hl, wd1f3 - ld de, EnemyMonSpecies - ld bc, $11 - call Function75f - ld a, $fe - ld [de], a - ld hl, OverworldMap - ld de, wd26b - ld bc, $1c2 - call Function75f - ld a, $fe - ld [de], a - ld hl, wc608 - ld de, wc6d0 - ld bc, $c8 - call Function75f - ld a, [wLinkMode] - cp LINK_TRADECENTER - jr nz, .asm_281fd - ld hl, wc9f4 - ld de, wcb84 - ld bc, $186 - call Function283f2 +.asm_2a067 + pop hl + ld bc, $2f + add hl, bc + jr .asm_2a052 +; 2a06e -.asm_281fd - xor a - ld [rIF], a - ld a, $1d - ld [rIE], a - ld de, MUSIC_NONE - call PlayMusic - call Function287ab - ld hl, wd26b - call Function287ca - ld de, OverworldMap - ld bc, $1b9 - call Function2879e - ld de, wc6d0 - ld hl, wc813 - ld c, $2 -.asm_28224 - ld a, [de] - inc de - and a - jr z, .asm_28224 - cp $fd - jr z, .asm_28224 - cp $fe - jr z, .asm_28224 +Function2a06e: ; 2a06e +.asm_2a06e + ld a, [hl] cp $ff - jr z, .asm_28243 + ret z push hl - push bc - ld b, $0 - dec a - ld c, a - add hl, bc - ld a, $fe - ld [hl], a - pop bc - pop hl - jr .asm_28224 - -.asm_28243 - ld hl, wc90f - dec c - jr nz, .asm_28224 - ld a, [wLinkMode] - cp LINK_TRADECENTER - jp nz, .asm_282fe - ld hl, wcb84 -.asm_28254 ld a, [hli] - cp $20 - jr nz, .asm_28254 -.asm_28259 + ld b, a ld a, [hli] - cp $fe - jr z, .asm_28259 - cp $20 - jr z, .asm_28259 - dec hl - ld de, wcb84 - ld bc, $190 - call CopyBytes - ld hl, wcb84 - ld bc, $c6 -.asm_28272 - ld a, [hl] - cp $21 - jr nz, .asm_28279 - ld [hl], $fe - -.asm_28279 + ld c, a inc hl - dec bc - ld a, b - or c - jr nz, .asm_28272 - ld de, wcc9e -.asm_28282 - ld a, [de] + ld a, $3 + call Function2a088 + jr nc, .asm_2a081 + ld [de], a inc de - cp $ff - jr z, .asm_28294 - ld hl, wcc4a - dec a - ld b, $0 - ld c, a - add hl, bc - ld [hl], $fe - jr .asm_28282 - -.asm_28294 - ld hl, wcb84 - ld de, wc9f4 - ld b, $6 -.asm_2829c - push bc - ld bc, $21 - call CopyBytes - ld a, $e - add e - ld e, a - ld a, $0 - adc d - ld d, a - pop bc - dec b - jr nz, .asm_2829c - ld de, wc9f4 - ld b, $6 -.asm_282b4 - push bc - ld a, $21 - add e - ld e, a - ld a, $0 - adc d - ld d, a - ld bc, $e - call CopyBytes - pop bc - dec b - jr nz, .asm_282b4 - ld b, $6 - ld de, wc9f4 -.asm_282cc - push bc - push de - callba Function1de5c8 - ld a, c - or a - jr z, .asm_282ee - sub $3 - jr nc, .asm_282e4 - callba Function1df203 - jr .asm_282ee -.asm_282e4 - cp $2 - jr nc, .asm_282ee - callba Function1df220 - -.asm_282ee - pop de - ld hl, $2f - add hl, de - ld d, h - ld e, l - pop bc - dec b - jr nz, .asm_282cc - ld de, wcb0e - xor a - ld [de], a +.asm_2a081 + pop hl + ld bc, 9 + add hl, bc + jr .asm_2a06e +; 2a088 -.asm_282fe - ld hl, OverworldMap - ld de, wd26b - ld bc, NAME_LENGTH - call CopyBytes - ld de, OTPartyCount - ld bc, 8 - call CopyBytes - ld de, wd276 - ld bc, 2 - call CopyBytes - ld de, OTPartyMon1Species - ld bc, $1a4 - call CopyBytes - ld a, OTPartyMonOT % $100 - ld [wd102], a - ld a, OTPartyMonOT / $100 - ld [wd103], a - ld de, MUSIC_NONE - call PlayMusic - ld a, [hLinkPlayerNumber] - cp $2 - ld c, 66 - call z, DelayFrames - ld a, [wLinkMode] - cp LINK_COLOSSEUM - jr nz, .asm_283a9 - ld a, CAL - ld [OtherTrainerClass], a - call ClearScreen - callba Function4d354 - ld hl, Options - ld a, [hl] - push af - and $20 - or $3 - ld [hl], a - ld hl, wd26b - ld de, OTName - ld bc, NAME_LENGTH - call CopyBytes - call Function222a - ld a, [wc2d7] - push af - ld a, $1 - ld [wc2d7], a - ld a, [rIE] - push af - ld a, [rIF] +Function2a088: ; 2a088 + inc hl +.asm_2a089 push af - xor a - ld [rIF], a - ld a, [rIE] - set 1, a - ld [rIE], a - pop af - ld [rIF], a - predef StartBattle - ld a, [rIF] - ld h, a - xor a - ld [rIF], a - pop af - ld [rIE], a - ld a, h - ld [rIF], a - pop af - ld [wc2d7], a + ld a, [wd265] + cp [hl] + jr z, .asm_2a098 +rept 2 + inc hl +endr pop af - ld [Options], a - callba LoadPokemonData - jp Function28b22 + dec a + jr nz, .asm_2a089 + and a + ret -.asm_283a9 - ld de, MUSIC_ROUTE_30 - call PlayMusic - jp Function287e3 -; 283b2 +.asm_2a098 + pop af + jp Function2a09c +; 2a09c -Function283b2: ; 283b2 - ld de, UnknownText_0x283ed - ld b, $a -.asm_283b7 - call DelayFrame - call Function908 - dec b - jr nz, .asm_283b7 - xor a - ld [hld], a - ld [hl], a - ld [hVBlank], a - push de - hlcoord 0, 12 - ld b, $4 - ld c, $12 +Function2a09c: ; 2a09c push de - ld d, h - ld e, l - callba Function4d35b + call GetWorldMapLocation + ld c, a + hlcoord 0, 0 + ld de, SCREEN_WIDTH * SCREEN_HEIGHT +.asm_2a0a7 + ld a, [hli] + cp c + jr z, .asm_2a0b4 + dec de + ld a, e + or d + jr nz, .asm_2a0a7 + ld a, c pop de - pop hl - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - call FadeToWhite - call ClearScreen - ld b, $8 - call GetSGBLayout - call Function3200 + scf ret -; 283ed -UnknownText_0x283ed: ; 0x283ed - ; Too much time has elapsed. Please try again. - text_jump UnknownText_0x1c4183 - db "@" -; 0x283f2 - -Function283f2: ; 283f2 - ld a, $1 - ld [$ffcc], a -.asm_283f6 - ld a, [hl] - ld [hSerialSend], a - call Function78a - push bc - ld b, a - inc hl - ld a, $30 -.asm_28401 - dec a - jr nz, .asm_28401 - ld a, [$ffcc] +.asm_2a0b4 + pop de and a - ld a, b - pop bc - jr z, .asm_28411 - dec hl - xor a - ld [$ffcc], a - jr .asm_283f6 + ret +; 2a0b7 -.asm_28411 +Function2a0b7: ; 2a0b7 + ld a, [wRoamMon1Species] + ld b, a + ld a, [wd265] + cp b + ret nz + ld a, [wRoamMon1MapGroup] + ld b, a + ld a, [wRoamMon1MapNumber] + ld c, a + call Function2a09c + ret nc ld [de], a inc de - dec bc - ld a, b - or c - jr nz, .asm_283f6 ret -; 28419 +; 2a0cf -String28419: ; 28419 - db "PLEASE WAIT!@" -; 28426 +Function2a0cf: ; 2a0cf + ld a, [wRoamMon2Species] + ld b, a + ld a, [wd265] + cp b + ret nz + ld a, [wRoamMon2MapGroup] + ld b, a + ld a, [wRoamMon2MapNumber] + ld c, a + call Function2a09c + ret nc + ld [de], a + inc de + ret +; 2a0e7 -Function28426: ; 28426 - ld hl, OverworldMap - lb bc, 5, SCREEN_WIDTH -.asm_2842c +TryWildEncounter:: ; 2a0e7 +; Try to trigger a wild encounter. + call .EncounterRate + jr nc, .no_battle + call ChooseWildEncounter + jr nz, .no_battle + call CheckRepelEffect + jr nc, .no_battle xor a - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_2842c ret -; 28434 -Function28434: ; 28434 - ld hl, wd1f3 - ld a, $fd - ld b, $7 -.asm_2843b - ld [hli], a - dec b - jr nz, .asm_2843b - ld b, $a -.asm_28441 - call Random - cp $fd - jr nc, .asm_28441 - ld [hli], a - dec b - jr nz, .asm_28441 - ld hl, wc608 - ld a, $fd -rept 3 - ld [hli], a -endr - ld b, $c8 - xor a -.asm_28457 - ld [hli], a - dec b - jr nz, .asm_28457 - ld hl, wc818 - ld de, wc608 + 10 - ld bc, 0 -.asm_28464 - inc c - ld a, c - cp $fd - jr z, .asm_2848c - ld a, b - dec a - jr nz, .asm_2847f - push bc - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - ld b, $d - jr z, .asm_2847a - ld b, $27 - -.asm_2847a - ld a, c - cp b - pop bc - jr z, .asm_28495 - -.asm_2847f - inc hl - ld a, [hl] - cp $fe - jr nz, .asm_28464 - ld a, c - ld [de], a - inc de - ld [hl], $ff - jr .asm_28464 - -.asm_2848c - ld a, $ff - ld [de], a - inc de - lb bc, 1, 0 - jr .asm_28464 - -.asm_28495 - ld a, $ff - ld [de], a - ret -; 28499 - -Function28499: ; 28499 - ld de, OverworldMap - ld a, $fd - ld b, $6 -.asm_284a0 - ld [de], a - inc de - dec b - jr nz, .asm_284a0 - ld hl, PlayerName - ld bc, NAME_LENGTH - call CopyBytes - push de - ld hl, PartyCount - ld a, [hli] - ld [de], a - inc de -.asm_284b5 - ld a, [hli] - cp $ff - jr z, .asm_284ce - ld [wd265], a - push hl - push de - callab ConvertMon_2to1 - pop de - pop hl - ld a, [wd265] - ld [de], a - inc de - jr .asm_284b5 - -.asm_284ce - ld [de], a - pop de - ld hl, $8 - add hl, de - ld d, h - ld e, l - ld hl, PartyMon1Species - ld c, $6 -.asm_284db - push bc - call Function284f6 - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - dec c - jr nz, .asm_284db - ld hl, PartyMonOT - call .asm_284f0 - ld hl, PartyMonNicknames -.asm_284f0 - ld bc, $42 - jp CopyBytes -; 284f6 - -Function284f6: ; 284f6 - ld b, h - ld c, l - push de - push bc - ld a, [hl] - ld [wd265], a - callab ConvertMon_2to1 - pop bc - pop de - ld a, [wd265] - ld [de], a - inc de - ld hl, $22 - add hl, bc - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - inc de - xor a - ld [de], a - inc de - ld hl, $20 - add hl, bc - ld a, [hl] - ld [de], a - inc de - ld a, [bc] - cp $51 - jr z, .asm_28528 - cp $52 - jr nz, .asm_28530 - -.asm_28528 - ld a, $17 - ld [de], a - inc de - ld [de], a - inc de - jr .asm_28544 - -.asm_28530 - push bc - dec a - ld hl, BaseData + 7 ; type - ld bc, BaseData1 - BaseData0 - call AddNTimes - ld bc, 2 - ld a, BANK(BaseData) - call FarCopyBytes - pop bc - -.asm_28544 - push bc - ld hl, $1 - add hl, bc - ld bc, $1a - call CopyBytes - pop bc - - ld hl, $1f - add hl, bc - ld a, [hl] - ld [de], a - ld [CurPartyLevel], a - inc de - - push bc - ld hl, $24 - add hl, bc - ld bc, 8 - call CopyBytes - pop bc - - push de - push bc - - ld a, [bc] - dec a - push bc - ld b, 0 - ld c, a - ld hl, KantoMonSpecials - add hl, bc - ld a, BANK(KantoMonSpecials) - call GetFarByte - ld [BaseSpecialAttack], a - pop bc - - ld hl, $a - add hl, bc - ld c, $5 - ld b, $1 - predef CalcPkmnStatC - - pop bc - pop de - - ld a, [$ffb5] - ld [de], a - inc de - ld a, [$ffb6] - ld [de], a - inc de - ld h, b - ld l, c - ret -; 28595 - -Function28595: ; 28595 - ld de, OverworldMap - ld a, $fd - ld b, $6 -.loop1 - ld [de], a - inc de - dec b - jr nz, .loop1 - ld hl, PlayerName - ld bc, NAME_LENGTH - call CopyBytes - ld hl, PartyCount - ld bc, 8 - call CopyBytes - ld hl, PlayerID - ld bc, 2 - call CopyBytes - ld hl, PartyMon1Species - ld bc, $120 - call CopyBytes - ld hl, PartyMonOT - ld bc, $42 - call CopyBytes - ld hl, PartyMonNicknames - ld bc, $42 - call CopyBytes - ld a, [wLinkMode] - cp LINK_TRADECENTER - ret nz - ld de, wc9f4 - ld a, $20 - call Function28682 - ld a, BANK(sPartyScratch1) - call GetSRAMBank - ld hl, sPartyScratch1 - ld b, PARTY_LENGTH -.loop2 - push bc - ld bc, $21 - call CopyBytes - ld bc, $e - add hl, bc - pop bc - dec b - jr nz, .loop2 - ld hl, sPartyScratch1 - ld b, PARTY_LENGTH -.loop3 - push bc - ld bc, $21 - add hl, bc - ld bc, $e - call CopyBytes - pop bc - dec b - jr nz, .loop3 - ld b, PARTY_LENGTH - ld de, sPartyScratch1 - ld hl, wc9f9 -.loop4 - push bc - push hl - push de - push hl - callba Function1de5c8 - pop de - ld a, c - or a - jr z, .next - sub $3 - jr nc, .skip - callba Function1df1e6 - jr .next - -.skip - cp $2 - jr nc, .next - callba Function1df220 - -.next - pop de - ld hl, SCRATCHMON_STRUCT_LENGTH - add hl, de - ld d, h - ld e, l - pop hl - ld bc, $21 - add hl, bc - pop bc - dec b - jr nz, .loop4 - call CloseSRAM - ld hl, wc9f9 - ld bc, $c6 -.loop5 - ld a, [hl] - cp $fe - jr nz, .skip2 - ld [hl], $21 - -.skip2 - inc hl - dec bc - ld a, b - or c - jr nz, .loop5 - ld hl, wcabf - ld de, wcb13 - ld b, $54 - ld c, $0 -.loop6 - inc c - ld a, [hl] - cp $fe - jr nz, .skip3 - ld [hl], $ff - ld a, c - ld [de], a - inc de - -.skip3 - inc hl - dec b - jr nz, .loop6 - ld a, $ff - ld [de], a - ret -; 28682 - -Function28682: ; 28682 - ld c, $5 -.loop - ld [de], a - inc de - dec c - jr nz, .loop - ret -; 2868a - -Function2868a: ; 2868a - push hl - ld d, h - ld e, l - ld bc, wcbea - ld hl, wcbe8 - ld a, c - ld [hli], a - ld [hl], b - ld hl, OTPartyMon1Species - ld c, $6 -.loop - push bc - call Function286ba - pop bc - dec c - jr nz, .loop - pop hl - lb bc, 1, 8 - add hl, bc - ld de, OTPartyMonOT - ld bc, $42 - call CopyBytes - ld de, OTPartyMonNicknames - ld bc, $42 - jp CopyBytes -; 286ba - -Function286ba: ; 286ba - ld b, h - ld c, l - ld a, [de] - inc de - push bc - push de - ld [wd265], a - callab ConvertMon_1to2 - pop de - pop bc - ld a, [wd265] - ld [bc], a - ld [CurSpecies], a - ld hl, $22 - add hl, bc - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hl], a - inc de - ld hl, $20 - add hl, bc - ld a, [de] - inc de - ld [hl], a - ld hl, wcbe8 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [de] - ld [hli], a - inc de - ld a, [de] - ld [hli], a - inc de - ld a, l - ld [wcbe8], a - ld a, h - ld [wcbe9], a - push bc - ld hl, $1 - add hl, bc - push hl - ld h, d - ld l, e - pop de - push bc - ld a, [hli] - ld b, a - call Function28771 - ld a, b - ld [de], a - inc de - pop bc - ld bc, $19 - call CopyBytes - pop bc - ld d, h - ld e, l - ld hl, $1f - add hl, bc - ld a, [de] - inc de - ld [hl], a - ld [CurPartyLevel], a - push bc - ld hl, $24 - add hl, bc - push hl - ld h, d - ld l, e - pop de - ld bc, 8 - call CopyBytes - pop bc - call GetBaseData - push de - push bc - ld d, h - ld e, l - ld hl, $a - add hl, bc - ld c, $5 - ld b, $1 - predef CalcPkmnStatC - pop bc - pop hl - ld a, [$ffb5] - ld [hli], a - ld a, [$ffb6] - ld [hli], a - push hl - push bc - ld hl, $a - add hl, bc - ld c, $6 - ld b, $1 - predef CalcPkmnStatC - pop bc - pop hl - ld a, [$ffb5] - ld [hli], a - ld a, [$ffb6] - ld [hli], a - push hl - ld hl, $1b - add hl, bc - ld a, $46 - ld [hli], a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - pop hl -rept 2 - inc de -endr - ret -; 28771 - -Function28771: ; 28771 - ld a, b - and a - ret z - push hl - ld hl, .TimeCapsuleAlt -.loop - ld a, [hli] - and a - jr z, .end - cp b - jr z, .found - inc hl - jr .loop - -.found - ld b, [hl] - -.end - pop hl - ret - -.TimeCapsuleAlt ; 28785 -; Pokémon traded from RBY do not have held items, so GSC usually interprets the -; catch rate as an item. However, if the catch rate appears in this table, the -; item associated with the table entry is used instead. - db ITEM_19, LEFTOVERS - db ITEM_2D, BITTER_BERRY - db ITEM_32, GOLD_BERRY - db ITEM_5A, BERRY - db ITEM_64, BERRY - db ITEM_78, BERRY - db ITEM_87, BERRY - db ITEM_BE, BERRY - db ITEM_C3, BERRY - db ITEM_DC, BERRY - db HM_08, BERRY - db $ff, BERRY - db $00 -; 2879e - -Function2879e: ; 2879e -.asm_2879e - ld a, [hli] - cp $fe - jr z, .asm_2879e - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .asm_2879e - ret -; 287ab - -Function287ab: ; 287ab - ld a, [hLinkPlayerNumber] - cp $2 - ret z - ld hl, EnemyMonSpecies - call Function287d8 - ld de, LinkBattleRNs - ld c, $a -.asm_287bb - ld a, [hli] - cp $fe - jr z, .asm_287bb - cp $fd - jr z, .asm_287bb - ld [de], a - inc de - dec c - jr nz, .asm_287bb - ret -; 287ca - -Function287ca: ; 287ca -.asm_287ca - ld a, [hli] - and a - jr z, .asm_287ca - cp $fd - jr z, .asm_287ca - cp $fe - jr z, .asm_287ca - dec hl - ret -; 287d8 - -Function287d8: ; 287d8 -.asm_287d8 - ld a, [hli] - cp $fd - jr z, .asm_287d8 - cp $fe - jr z, .asm_287d8 - dec hl - ret -; 287e3 - -Function287e3: ; 287e3 - call ClearScreen - call Function28ef8 - callba Function16d673 - xor a - ld hl, wcf51 -rept 3 - ld [hli], a -endr - ld [hl], a - ld a, $1 - ld [MenuSelection2], a - inc a - ld [wcf56], a - jp Function2888b -; 28803 - -Function28803: ; 28803 - ld a, $1 - ld [MonType], a - ld a, $c1 - ld [wcfa8], a - ld a, [OTPartyCount] - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $9 - ld [wcfa1], a - ld a, $6 - ld [wcfa2], a - ld a, $1 - ld [wcfaa], a - ld a, $10 - ld [wcfa7], a - ld a, $20 - ld [wcfa5], a - xor a - ld [wcfa6], a - -Function28835: ; 28835 - callba Function16d70c - ld a, d - and a - jp z, Function2891c - bit 0, a - jr z, .asm_2885b - ld a, $1 - ld [wd263], a - callab Function50db9 - ld hl, OTPartyMon1Species - callba Function4d319 - jp Function2891c - -.asm_2885b - bit 6, a - jr z, .asm_28883 - ld a, [MenuSelection2] - ld b, a - ld a, [OTPartyCount] - cp b - jp nz, Function2891c - xor a - ld [MonType], a - call Function1bf7 - push hl - push bc - ld bc, NAME_LENGTH - add hl, bc - ld [hl], $7f - pop bc - pop hl - ld a, [PartyCount] - ld [MenuSelection2], a - jr Function2888b - -.asm_28883 - bit 7, a - jp z, Function2891c - jp Function28ac9 -; 2888b - -Function2888b: ; 2888b - callba Function49856 - xor a - ld [MonType], a - ld a, $c1 - ld [wcfa8], a - ld a, [PartyCount] - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $1 - ld [wcfa1], a - ld a, $6 - ld [wcfa2], a - ld a, $1 - ld [wcfaa], a - ld a, $10 - ld [wcfa7], a - ld a, $20 - ld [wcfa5], a - xor a - ld [wcfa6], a - call Function3200 - -Function288c5: ; 288c5 - callba Function16d70c - ld a, d - and a - jr nz, .asm_288d2 - jp Function2891c - -.asm_288d2 - bit 0, a - jr z, .asm_288d9 - jp Function28926 - -.asm_288d9 - bit 7, a - jr z, .asm_288fe - ld a, [MenuSelection2] - dec a - jp nz, Function2891c - ld a, $1 - ld [MonType], a - call Function1bf7 - push hl - push bc - ld bc, NAME_LENGTH - add hl, bc - ld [hl], $7f - pop bc - pop hl - ld a, $1 - ld [MenuSelection2], a - jp Function28803 - -.asm_288fe - bit 6, a - jr z, Function2891c - ld a, [MenuSelection2] - ld b, a - ld a, [PartyCount] - cp b - jr nz, Function2891c - call Function1bf7 - push hl - push bc - ld bc, NAME_LENGTH - add hl, bc - ld [hl], $7f - pop bc - pop hl - jp Function28ade -; 2891c - -Function2891c: ; 2891c - ld a, [MonType] - and a - jp z, Function288c5 - jp Function28835 -; 28926 - -Function28926: ; 28926 - call LoadTileMapToTempTileMap - ld a, [MenuSelection2] - push af - hlcoord 0, 15 - ld b, $1 - ld c, $12 - call Function28eef - hlcoord 2, 16 - ld de, String28ab4 - call PlaceString - callba Function4d354 - -.asm_28946 - ld a, $7f - ldcoord_a 11, 16 - ld a, $13 - ld [wcfa8], a - ld a, $1 - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $10 - ld [wcfa1], a - ld a, $1 - ld [wcfa2], a - ld a, $1 - ld [MenuSelection2], a - ld [wcfaa], a - ld a, $20 - ld [wcfa7], a - xor a - ld [wcfa5], a - ld [wcfa6], a - call Function1bd3 - bit 4, a - jr nz, .asm_2898d - bit 1, a - jr z, .asm_289cd -.asm_28983 - pop af - ld [MenuSelection2], a - call Call_LoadTempTileMapToTileMap - jp Function2888b - -.asm_2898d - ld a, $7f - ldcoord_a 1, 16 - ld a, $23 - ld [wcfa8], a - ld a, $1 - ld [wcfa3], a - ld a, $1 - ld [wcfa4], a - ld a, $10 - ld [wcfa1], a - ld a, $b - ld [wcfa2], a - ld a, $1 - ld [MenuSelection2], a - ld [wcfaa], a - ld a, $20 - ld [wcfa7], a - xor a - ld [wcfa5], a - ld [wcfa6], a - call Function1bd3 - bit 5, a - jp nz, .asm_28946 - bit 1, a - jr nz, .asm_28983 - jr .asm_289fe - -.asm_289cd - pop af - ld [MenuSelection2], a - ld a, $4 - ld [wd263], a - callab Function50db9 - callba Function4d319 - call Call_LoadTempTileMapToTileMap - hlcoord 6, 1 - lb bc, 6, 1 - ld a, " " - call Function28b77 - hlcoord 17, 1 - lb bc, 6, 1 - ld a, " " - call Function28b77 - jp Function2888b - -.asm_289fe - call Function1bee - pop af - ld [MenuSelection2], a - dec a - ld [DefaultFlypoint], a - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - cp $f - jp z, Function287e3 - ld [wd003], a - call Function28b68 - ld c, $64 - call DelayFrames - callba Functionfb57e - jr c, .asm_28a58 - callba Functionfb5dd - jp nc, Function28b87 - xor a - ld [wcf57], a - ld [wcf52], a - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld hl, UnknownText_0x28aaf - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - jr .asm_28a89 - -.asm_28a58 - xor a - ld [wcf57], a - ld [wcf52], a - ld a, [wd003] - ld hl, OTPartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld hl, UnknownText_0x28ac4 - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - -.asm_28a89 - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - ld a, $1 - ld [wcf56], a - callba Function16d6ce - ld c, $64 - call DelayFrames - jp Function287e3 -; 28aaf - - -UnknownText_0x28aaf: ; 0x28aaf - ; If you trade that #MON, you won't be able to battle. - text_jump UnknownText_0x1c41b1 - db "@" -; 0x28ab4 - -String28ab4: ; 28ab4 - db "STATS TRADE@" - -UnknownText_0x28ac4: ; 0x28ac4 - ; Your friend's @ appears to be abnormal! - text_jump UnknownText_0x1c41e6 - db "@" -; 0x28ac9 - - -Function28ac9: ; 28ac9 - ld a, [MenuSelection2] - cp $1 - jp nz, Function2891c - call Function1bf7 - push hl - push bc - ld bc, NAME_LENGTH - add hl, bc - ld [hl], $7f - pop bc - pop hl - -Function28ade: ; 28ade -.asm_28ade - ld a, $ed - ldcoord_a 9, 17 -.asm_28ae3 - call JoyTextDelay - ld a, [hJoyLast] - and a - jr z, .asm_28ae3 - bit 0, a - jr nz, .asm_28b0b - push af - ld a, " " - ldcoord_a 9, 17 - pop af - bit 6, a - jr z, .asm_28b03 - ld a, [OTPartyCount] - ld [MenuSelection2], a - jp Function28803 - -.asm_28b03 - ld a, $1 - ld [MenuSelection2], a - jp Function2888b - -.asm_28b0b - ld a, $ec - ldcoord_a 9, 17 - ld a, $f - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - cp $f - jr nz, .asm_28ade - -Function28b22: ; 28b22 - call FadeToWhite - call ClearScreen - ld b, $8 - call GetSGBLayout - call Function3200 - xor a - ld [wcfbb], a - xor a - ld [rSB], a - ld [hSerialSend], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ret -; 28b42 - -Function28b42: ; 28b42 - hlcoord 0, 16 - ld a, "┘" - ld bc, 2 * SCREEN_WIDTH - call ByteFill - hlcoord 1, 16 - ld a, " " - ld bc, SCREEN_WIDTH - 2 - call ByteFill - hlcoord 2, 16 - ld de, String_28b61 - jp PlaceString -; 28b61 - -String_28b61: ; 28b61 - db "CANCEL@" -; 28b68 - -Function28b68: ; 28b68 - ld a, [wcf51] - hlcoord 6, 9 - ld bc, SCREEN_WIDTH - call AddNTimes - ld [hl], $ec - ret -; 28b77 - -Function28b77: ; 28b77 -.asm_28b77 - push bc - push hl -.asm_28b79 - ld [hli], a - dec c - jr nz, .asm_28b79 - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_28b77 - ret -; 28b87 - -Function28b87: ; 28b87 - xor a - ld [wcf57], a - ld [wcf52], a - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call Function28eef - callba Function4d354 - ld a, [DefaultFlypoint] - ld hl, PartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - ld de, wd004 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - ld a, [wd003] - ld hl, OTPartySpecies - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ld hl, UnknownText_0x28eb8 - bccoord 1, 14 - call PlaceWholeStringInBoxAtOnce - call LoadPartyMenuDataHeader - hlcoord 10, 7 - ld b, $3 - ld c, $7 - call Function28eef - ld de, String28eab - hlcoord 12, 8 - call PlaceString - ld a, $8 - ld [wcfa1], a - ld a, $b - ld [wcfa2], a - ld a, $1 - ld [wcfa4], a - ld a, $2 - ld [wcfa3], a - xor a - ld [wcfa5], a - ld [wcfa6], a - ld a, $20 - ld [wcfa7], a - ld a, $3 - ld [wcfa8], a - ld a, $1 - ld [MenuSelection2], a - ld [wcfaa], a - callba Function4d354 - call Function1bd3 - push af - call Call_ExitMenu - call Function3200 - pop af - bit 1, a - jr nz, .asm_28c33 - ld a, [MenuSelection2] - dec a - jr z, .asm_28c54 - -.asm_28c33 - ld a, $1 - ld [wcf56], a - hlcoord 0, 12 - ld b, 4 - ld c, 18 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - callba Function16d6ce - jp Function28ea3 - -.asm_28c54 - ld a, $2 - ld [wcf56], a - callba Function16d6ce - ld a, [wcf51] - dec a - jr nz, .asm_28c7b - hlcoord 0, 12 - ld b, 4 - ld c, 18 - call Function28eef - hlcoord 1, 14 - ld de, String28ece - call PlaceString - jp Function28ea3 - -.asm_28c7b - ld hl, sPartyScratch1 - ld a, [DefaultFlypoint] - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - ld a, BANK(sPartyScratch1) - call GetSRAMBank - ld d, h - ld e, l - ld bc, SCRATCHMON_STRUCT_LENGTH - add hl, bc - ld a, [DefaultFlypoint] - ld c, a -.asm_28c96 - inc c - ld a, c - cp $6 - jr z, .asm_28ca6 - push bc - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - pop bc - jr .asm_28c96 - -.asm_28ca6 - ld hl, sPartyScratch1 - ld a, [PartyCount] - dec a - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - push hl - ld hl, wc9f4 - ld a, [wd003] - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - pop de - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - call CloseSRAM - ld hl, PlayerName - ld de, wc6e7 - ld bc, NAME_LENGTH - call CopyBytes - ld a, [DefaultFlypoint] - ld hl, PartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wc6d0], a - push af - ld a, [DefaultFlypoint] - ld hl, PartyMonOT - call SkipNames - ld de, wc6f2 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, PartyMon1ID - ld a, [DefaultFlypoint] - call GetPartyLocation - ld a, [hli] - ld [PlayerScreens], a - ld a, [hl] - ld [EnemyScreens], a - ld hl, PartyMon1DVs - ld a, [DefaultFlypoint] - call GetPartyLocation - ld a, [hli] - ld [wc6fd], a - ld a, [hl] - ld [wc6fe], a - ld a, [DefaultFlypoint] - ld hl, PartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wc701], a - ld hl, wd26b - ld de, wc719 - ld bc, NAME_LENGTH - call CopyBytes - ld a, [wd003] - ld hl, OTPartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wc702], a - ld a, [wd003] - ld hl, OTPartyMonOT - call SkipNames - ld de, wc724 - ld bc, NAME_LENGTH - call CopyBytes - ld hl, OTPartyMon1ID - ld a, [wd003] - call GetPartyLocation - ld a, [hli] - ld [wEnemyWrapCount], a - ld a, [hl] - ld [wPlayerCharging], a - ld hl, OTPartyMon1DVs - ld a, [wd003] - call GetPartyLocation - ld a, [hli] - ld [wEnemyTrappingMove], a - ld a, [hl] - ld [wPlayerWrapCount], a - ld a, [wd003] - ld hl, OTPartyMon1Species - call GetPartyLocation - ld b, h - ld c, l - callba GetCaughtGender - ld a, c - ld [wEnemyCharging], a - ld a, [DefaultFlypoint] - ld [CurPartyMon], a - ld hl, PartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [DefaultFlypoint], a - xor a - ld [wPokemonWithdrawDepositParameter], a - callab Functione039 - ld a, [PartyCount] - dec a - ld [CurPartyMon], a - ld a, $1 - ld [wd1e9], a - ld a, [wd003] - push af - ld hl, OTPartySpecies - ld b, $0 - ld c, a - add hl, bc - ld a, [hl] - ld [wd003], a - ld c, 100 - call DelayFrames - call ClearTileMap - call LoadFontsBattleExtra - ld b, $8 - call GetSGBLayout - ld a, [hLinkPlayerNumber] - cp $1 - jr z, .asm_28de4 - predef Function28f24 - jr .asm_28de9 - -.asm_28de4 - predef Function28f63 - -.asm_28de9 - pop af - ld c, a - ld [CurPartyMon], a - ld hl, OTPartySpecies - ld d, $0 - ld e, a - add hl, de - ld a, [hl] - ld [CurPartySpecies], a - ld hl, OTPartyMon1Species - ld a, c - call GetPartyLocation - ld de, TempMonSpecies - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - predef Functionda96 - ld a, [PartyCount] - dec a - ld [CurPartyMon], a - callab Function421d8 - call ClearScreen - call Function28ef8 - call Function28eff - callba Function4d354 - ld b, $1 - pop af - ld c, a - cp MEW - jr z, .asm_28e49 - ld a, [CurPartySpecies] - cp MEW - jr z, .asm_28e49 - ld b, $2 - ld a, c - cp CELEBI - jr z, .asm_28e49 - ld a, [CurPartySpecies] - cp CELEBI - jr z, .asm_28e49 - ld b, $0 - -.asm_28e49 - ld a, b - ld [wcf56], a - push bc - call Function862 - pop bc - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .asm_28e63 - ld a, b - and a - jr z, .asm_28e63 - ld a, [wcf52] - cp b - jr nz, .asm_28e49 - -.asm_28e63 - callba Function14a58 - callba MobileFn_1060af - callba BackupMobileEventIndex - ld c, 40 - call DelayFrames - hlcoord 0, 12 - ld b, 4 - ld c, 18 - call Function28eef - hlcoord 1, 14 - ld de, String28ebd - call PlaceString - callba Function4d354 - ld c, 50 - call DelayFrames - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jp z, Function2805d - jp Function28177 -; 28ea3 - -Function28ea3: ; 28ea3 - ld c, 100 - call DelayFrames - jp Function287e3 -; 28eab - -String28eab: ; 28eab - db "TRADE" - next "CANCEL@" - -UnknownText_0x28eb8: ; 0x28eb8 - ; Trade @ for @ ? - text_jump UnknownText_0x1c4212 - db "@" -; 0x28ebd - -String28ebd: ; 28ebd - db "Trade completed!@" - -String28ece: ; 28ece - db "Too bad! The trade" - next "was canceled!@" - - -Function28eef: ; 28eef - ld d, h - ld e, l - callba Function16d6ca - ret -; 28ef8 - -Function28ef8: ; 28ef8 - callba Function16d696 - ret -; 28eff - -Function28eff: ; 28eff - callba Function16d6a7 - call SetPalettes - ret -; 28f09 - -Function28f09: ; 28f09 - hlcoord 0, 0 - ld b, 6 - ld c, 18 - call Function28eef - hlcoord 0, 8 - ld b, 6 - ld c, 18 - call Function28eef - callba Functionfb60d - ret -; 28f24 - -Function28f24: ; 28f24 - xor a - ld [wcf66], a - ld hl, wc6e7 - ld de, wc719 - call Function297ff - ld hl, wc6d0 - ld de, wc702 - call Function29814 - ld de, .data_28f3f - jr Function28fa1 - -.data_28f3f - db $1b - db $1 - db $1c - db $21 - db $2d - db $27 - db $23 - db $3 - db $25 - db $28 - db $25 - db $1e - db $29 - db $6 - db $16 - db $1f - db $19 - db $17 - db $22 - db $1f - db $2a - db $e - db $3 - db $24 - db $5 - db $25 - db $2 - db $27 - db $25 - db $1d - db $2c - db $2e - db $1e - db $18 - db $1f - db $2b - -Function28f63: ; 28f63 - xor a - ld [wcf66], a - ld hl, wc719 - ld de, wc6e7 - call Function297ff - ld hl, wc702 - ld de, wc6d0 - call Function29814 - ld de, .data_28f7e - jr Function28fa1 - -.data_28f7e - db $1a - db $17 - db $22 - db $1f - db $2a - db $6 - db $3 - db $24 - db $5 - db $25 - db $2 - db $27 - db $25 - db $1d - db $2c - db $2f - db $1e - db $18 - db $1f - db $1b - db $1 - db $1c - db $22 - db $27 - db $23 - db $3 - db $25 - db $28 - db $25 - db $1e - db $29 - db $e - db $16 - db $1f - db $2b - -Function28fa1: ; 28fa1 - ld hl, BattleEnded - ld [hl], e - inc hl - ld [hl], d - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a - ld hl, VramState - ld a, [hl] - push af - res 0, [hl] - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - call Function28fdb - ld a, [wcf66] - and a - jr nz, .asm_28fca - ld de, MUSIC_EVOLUTION - call PlayMusic2 -.asm_28fca - call Function29082 - jr nc, .asm_28fca - pop af - ld [Options], a - pop af - ld [VramState], a - pop af - ld [hMapAnims], a - ret -; 28fdb - -Function28fdb: ; 28fdb - xor a - ld [wJumptableIndex], a - call WhiteBGMap - call ClearSprites - call ClearTileMap - call DisableLCD - call LoadFontsBattleExtra - callab Function8cf53 - ld a, [hCGB] - and a - jr z, .asm_2900b - ld a, $1 - ld [rVBK], a - ld hl, VTiles0 - ld bc, sScratch - VTiles0 - xor a - call ByteFill - ld a, $0 - ld [rVBK], a - -.asm_2900b - ld hl, VBGMap0 - ld bc, sScratch - VBGMap0 - ld a, " " - call ByteFill - ld hl, TradeGameBoyLZ - ld de, VTiles2 tile $31 - call Decompress - ld hl, TradeArrowGFX - ld de, VTiles1 tile $6d - ld bc, $10 - ld a, BANK(TradeArrowGFX) - call FarCopyBytes - ld hl, TradeArrowGFX + $10 - ld de, VTiles1 tile $6e - ld bc, $10 - ld a, BANK(TradeArrowGFX) - call FarCopyBytes - xor a - ld [hSCX], a - ld [hSCY], a - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - callba Function4d7fd - call EnableLCD - call Function2982b - ld a, [wc6d0] - ld hl, wc6fd - ld de, VTiles0 - call Function29491 - ld a, [wc702] - ld hl, wEnemyTrappingMove - ld de, VTiles0 tile $31 - call Function29491 - ld a, [wc6d0] - ld de, wc6d1 - call Function294a9 - ld a, [wc702] - ld de, wc703 - call Function294a9 - call Function297ed - ret -; 29082 - -Function29082: ; 29082 - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_2909b - call Function290a0 - callab Function8cf69 - ld hl, wcf65 - inc [hl] - call DelayFrame - and a - ret - -.asm_2909b - call LoadStandardFont - scf - ret -; 290a0 - -Function290a0: ; 290a0 - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, JumpTable290af -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 290af - -JumpTable290af: ; 290af - dw Function29114 - dw Function2942e - dw Function29461 - dw Function29348 - dw Function2937e - dw Function29391 - dw Function29129 - dw Function291af - dw Function291c4 - dw Function291d9 - dw Function2925d - dw Function29220 - dw Function2925d - dw Function29229 - dw Function2913c - dw Function2925d - dw Function291e8 - dw Function291fd - dw Function29211 - dw Function29220 - dw Function2925d - dw Function29229 - dw Function29701 - dw Function2973c - dw Function2975c - dw Function2977f - dw Function297a4 - dw Function293a6 - dw Function293b6 - dw Function293d2 - dw Function293de - dw Function293ea - dw Function2940c - dw Function294e7 - dw Function294f0 - dw Function2961b - dw Function2962c - dw Function29879 - dw Function29886 - dw Function29649 - dw Function29660 - dw Function2926d - dw Function29277 - dw Function29123 - dw Function29487 - dw Function294f9 - dw Function29502 - dw Function2950c -; 2910f - -Function2910f: ; 2910f - ld hl, wJumptableIndex - inc [hl] - ret -; 29114 - -Function29114: ; 29114 - ld hl, BattleEnded - ld e, [hl] - inc hl - ld d, [hl] - ld a, [de] - ld [wJumptableIndex], a - inc de - ld [hl], d - dec hl - ld [hl], e - ret -; 29123 - -Function29123: ; 29123 - ld hl, wJumptableIndex - set 7, [hl] - ret -; 29129 - -Function29129: ; 29129 - ld a, $ed - call Function292f6 - ld a, [wc74c] - ld [wd265], a - xor a - ld de, $2c58 - ld b, $0 - jr Function2914e - -Function2913c: ; 2913c - ld a, $ee - call Function292f6 - ld a, [wc74d] - ld [wd265], a - ld a, $2 - lb de, $4c, $94 - ld b, $4 - -Function2914e: ; 2914e - push bc - push de - push bc - push de - push af - call DisableLCD - callab Function8cf53 - ld hl, $9874 - ld bc, $c - ld a, $60 - call ByteFill - pop af - call Function29281 - xor a - ld [hSCX], a - ld a, $7 - ld [hWX], a - ld a, $70 - ld [hWY], a - call EnableLCD - call Function2985a - pop de - ld a, $11 - call Function3b2a - ld hl, $b - add hl, bc - pop bc - ld [hl], b - pop de - ld a, $12 - call Function3b2a - ld hl, $b - add hl, bc - pop bc - ld [hl], b - call WaitBGMap - ld b, $1b - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $d0 - call Functioncf8 - call Function2910f - ld a, $5c - ld [wcf64], a - ret -; 291af - -Function291af: ; 291af - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - cp $50 - ret nz - ld a, $1 - call Function29281 - call Function2910f - ret -; 291c4 - -Function291c4: ; 291c4 - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - cp $a0 - ret nz - ld a, $2 - call Function29281 - call Function2910f - ret -; 291d9 - -Function291d9: ; 291d9 - call Function2981d - ld a, [hSCX] - add $2 - ld [hSCX], a - and a - ret nz - call Function2910f - ret -; 291e8 - -Function291e8: ; 291e8 - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - cp $b0 - ret nz - ld a, $1 - call Function29281 - call Function2910f - ret -; 291fd - -Function291fd: ; 291fd - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - cp $60 - ret nz - xor a - call Function29281 - call Function2910f - ret -; 29211 - -Function29211: ; 29211 - call Function2981d - ld a, [hSCX] - sub $2 - ld [hSCX], a - and a - ret nz - call Function2910f - ret -; 29220 - -Function29220: ; 29220 - ld a, $80 - ld [wcf64], a - call Function2910f - ret -; 29229 - -Function29229: ; 29229 - call WhiteBGMap - call ClearTileMap - call ClearSprites - call DisableLCD - callab Function8cf53 - ld hl, VBGMap0 - ld bc, sScratch - VBGMap0 - ld a, " " - call ByteFill - xor a - ld [hSCX], a - ld a, $90 - ld [hWY], a - call EnableLCD - call Function2982b - call WaitBGMap - call Function297ed - call Function29114 - ret -; 2925d - -Function2925d: ; 2925d - call Function2981d - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_29269 - dec [hl] - ret - -.asm_29269 - call Function2910f - ret -; 2926d - -Function2926d: ; 2926d - call Function29114 - ld de, SFX_GIVE_TRADEMON - call PlaySFX - ret -; 29277 - -Function29277: ; 29277 - call Function29114 - ld de, SFX_GET_TRADEMON - call PlaySFX - ret -; 29281 - -Function29281: ; 29281 - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_2928f -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 2928f - -Jumptable_2928f: ; 2928f - dw Function29297 - dw Function292af - dw Function292be - dw Function29297 -; 29297 - -Function29297: ; 29297 - call Function297cf - hlcoord 9, 3 - ld [hl], $5b - inc hl - ld bc, $a - ld a, $60 - call ByteFill - hlcoord 3, 2 - call Function292ec - ret -; 292af - -Function292af: ; 292af - call Function297cf - hlcoord 0, 3 - ld bc, SCREEN_WIDTH - ld a, $60 - call ByteFill - ret -; 292be - -Function292be: ; 292be - call Function297cf - hlcoord 0, 3 - ld bc, $11 - ld a, $60 - call ByteFill - hlcoord 17, 3 - ld a, $5d - ld [hl], a - ld a, $61 - ld de, SCREEN_WIDTH - ld c, $3 -.asm_292d9 - add hl, de - ld [hl], a - dec c - jr nz, .asm_292d9 - add hl, de - ld a, $5f - ld [hld], a - ld a, $5b - ld [hl], a - hlcoord 10, 6 - call Function292ec - ret -; 292ec - -Function292ec: ; 292ec - ld de, TradeGameBoyTilemap - lb bc, 8, 6 - call Function297db - ret -; 292f6 - -Function292f6: ; 292f6 - push af - call WhiteBGMap - call WaitTop - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, "─" - call ByteFill - hlcoord 0, 1 - ld de, wc736 - call PlaceString - ld hl, wc741 - ld de, 0 -.asm_2931e - ld a, [hli] - cp "@" - jr z, .asm_29326 - dec de - jr .asm_2931e - -.asm_29326 - hlcoord 0, 4 - add hl, de - ld de, wc741 - call PlaceString - hlcoord 7, 2 - ld bc, 6 - pop af - call ByteFill - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - ret -; 29348 - -Function29348: ; 29348 - call ClearTileMap - call WaitTop - ld a, $a0 - ld [hSCX], a - call DelayFrame - hlcoord 8, 2 - ld de, Tilemap_298f7 - lb bc, 3, 12 - call Function297db - call WaitBGMap - ld b, $1b - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - ld de, SFX_POTION - call PlaySFX - call Function2910f - ret -; 2937e - -Function2937e: ; 2937e - ld a, [hSCX] - and a - jr z, .asm_29388 - add $4 - ld [hSCX], a - ret - -.asm_29388 - ld c, $50 - call DelayFrames - call Function29114 - ret -; 29391 - -Function29391: ; 29391 - ld a, [hSCX] - cp $a0 - jr z, .asm_2939c - sub $4 - ld [hSCX], a - ret - -.asm_2939c - call ClearTileMap - xor a - ld [hSCX], a - call Function29114 - ret -; 293a6 - -Function293a6: ; 293a6 - ld a, $8f - ld [hWX], a - ld a, $88 - ld [hSCX], a - ld a, $50 - ld [hWY], a - call Function29114 - ret -; 293b6 - -Function293b6: ; 293b6 - ld a, [hWX] - cp $7 - jr z, .asm_293c7 - sub $4 - ld [hWX], a - ld a, [hSCX] - sub $4 - ld [hSCX], a - ret - -.asm_293c7 - ld a, $7 - ld [hWX], a - xor a - ld [hSCX], a - call Function29114 - ret -; 293d2 - -Function293d2: ; 293d2 - ld a, $7 - ld [hWX], a - ld a, $50 - ld [hWY], a - call Function29114 - ret -; 293de - -Function293de: ; 293de - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - call Function29114 - ret -; 293ea - -Function293ea: ; 293ea - call WaitTop - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call WaitBGMap - ld a, $7 - ld [hWX], a - xor a - ld [hWY], a - call DelayFrame - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call ClearTileMap - call Function2910f - ret -; 2940c - -Function2940c: ; 2940c - ld a, [hWX] - cp $a1 - jr nc, .asm_29417 - add $4 - ld [hWX], a - ret - -.asm_29417 - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - call WaitBGMap - ld a, $7 - ld [hWX], a - ld a, $90 - ld [hWY], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - call Function29114 - ret -; 2942e - -Function2942e: ; 2942e - call Function2951f - ld a, [wc6d0] - ld [CurPartySpecies], a - ld a, [wc6fd] - ld [TempMonDVs], a - ld a, [wc6fe] - ld [TempMonDVs + 1], a - ld b, $1a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - call Function294bb - - ld a, [wc6d0] - call GetCryIndex - jr c, .asm_2945d - ld e, c - ld d, b - call PlayCryHeader -.asm_2945d - - call Function29114 - ret -; 29461 - -Function29461: ; 29461 - call Function29549 - ld a, [wc702] - ld [CurPartySpecies], a - ld a, [wEnemyTrappingMove] - ld [TempMonDVs], a - ld a, [wPlayerWrapCount] - ld [TempMonDVs + 1], a - ld b, $1a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - call Function294c0 - call Function29114 - ret -; 29487 - -Function29487: ; 29487 - callba Function4d81e - call Function29114 - ret -; 29491 - -Function29491: ; 29491 - push de - push af - predef GetUnownLetter - pop af - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - pop de - predef GetFrontpic - ret -; 294a9 - -Function294a9: ; 294a9 - push de - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 - pop de - ld bc, NAME_LENGTH - call CopyBytes - ret -; 294bb - -Function294bb: ; 294bb - ld de, VTiles0 - jr Function294c3 - -Function294c0: ; 294c0 - ld de, VTiles0 tile $31 - -Function294c3: ; 294c3 - call DelayFrame - ld hl, VTiles2 - ld bc, $a31 - call Request2bpp - call WaitTop - call Function297cf - hlcoord 7, 2 - xor a - ld [hFillBox], a - lb bc, 7, 7 - predef FillBox - call WaitBGMap - ret -; 294e7 - -Function294e7: ; 294e7 - ld c, $50 - call DelayFrames - call Function29114 - ret -; 294f0 - -Function294f0: ; 294f0 - ld c, $28 - call DelayFrames - call Function29114 - ret -; 294f9 - -Function294f9: ; 294f9 - ld c, $60 - call DelayFrames - call Function29114 - ret -; 29502 - -Function29502: ; 29502 - call Function29516 - ret nz - ld c, $50 - call DelayFrames - ret -; 2950c - -Function2950c: ; 2950c - call Function29516 - ret nz - ld c, $b4 - call DelayFrames - ret -; 29516 - -Function29516: ; 29516 - call Function29114 - ld a, [wc702] - cp $fd - ret -; 2951f - -Function2951f: ; 2951f - ld de, wc6d0 - ld a, [de] - cp $fd - jr z, Function295a1 - call Function29573 - ld de, wc6d0 - call Function295e3 - ld de, wc6d1 - call Function295ef - ld a, [wc701] - ld de, wc6f2 - call Function295f6 - ld de, PlayerScreens - call Function29611 - call Function295d8 - ret -; 29549 - -Function29549: ; 29549 - ld de, wc702 - ld a, [de] - cp $fd - jr z, Function295a1 - call Function29573 - ld de, wc702 - call Function295e3 - ld de, wc703 - call Function295ef - ld a, [wEnemyCharging] - ld de, wc724 - call Function295f6 - ld de, wEnemyWrapCount - call Function29611 - call Function295d8 - ret -; 29573 - -Function29573: ; 29573 - call WaitTop - call Function297cf - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 3, 0 - ld b, $6 - ld c, $d - call TextBox - hlcoord 4, 0 - ld de, String29591 - call PlaceString - ret -; 29591 - -String29591: ; 29591 - db "─── №." - next "" - next "OT/" - next $73, "№.@" -; 295a1 - -Function295a1: ; 295a1 - call WaitTop - call Function297cf - ld a, VBGMap1 / $100 - ld [hBGMapAddress + 1], a - hlcoord 3, 0 - ld b, $6 - ld c, $d - call TextBox - hlcoord 4, 2 - ld de, String295c2 - call PlaceString - call Function295d8 - ret -; 295c2 - -String295c2: ; 295c2 - db "EGG" - next "OT/?????" - next $73, "№.?????@" -; 295d8 - -Function295d8: ; 295d8 - call WaitBGMap - call WaitTop - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ret -; 295e3 - -Function295e3: ; 295e3 - hlcoord 10, 0 - lb bc, PRINTNUM_LEADINGZEROS | 1, 3 - call PrintNum - ld [hl], $7f - ret -; 295ef - -Function295ef: ; 295ef - hlcoord 4, 2 - call PlaceString - ret -; 295f6 - -Function295f6: ; 295f6 - cp 3 - jr c, .asm_295fb - xor a - -.asm_295fb - push af - hlcoord 7, 4 - call PlaceString - inc bc - pop af - ld hl, Unknown_2960e - ld d, 0 - ld e, a - add hl, de - ld a, [hl] - ld [bc], a - ret -; 2960e - -Unknown_2960e: ; 2960e - db " ", "♂", "♀" -; 29611 - -Function29611: ; 29611 - hlcoord 7, 6 - lb bc, PRINTNUM_LEADINGZEROS | 2, 5 - call PrintNum - ret -; 2961b - -Function2961b: ; 2961b - lb de, $54, $58 - ld a, $e - call Function3b2a - call Function29114 - ld a, $20 - ld [wcf64], a - ret -; 2962c - -Function2962c: ; 2962c - lb de, $54, $58 - ld a, $e - call Function3b2a - ld hl, $b - add hl, bc - ld [hl], $1 - ld hl, $7 - add hl, bc - ld [hl], $dc - call Function29114 - ld a, $38 - ld [wcf64], a - ret -; 29649 - -Function29649: ; 29649 - lb de, $54, $58 - ld a, $f - call Function3b2a - call Function29114 - ld a, $10 - ld [wcf64], a - ld de, SFX_BALL_POOF - call PlaySFX - ret -; 29660 - -Function29660: ; 29660 - ld a, $e4 - call Functioncf8 - lb de, $28, $58 - ld a, $10 - call Function3b2a - call Function29114 - ld a, $40 - ld [wcf64], a - ret -; 29676 - -Function29676: ; 29676 (a:5676) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_29686 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 29686 - -Jumptable_29686: ; 29686 (a:5686) - dw Function2969a - dw Function296a4 - dw Function296af - dw Function296bd - dw Function296cf - dw Function296dd - dw Function296f2 -; 2969a - -Function29694: ; 29694 (a:5694) - ld hl, $b - add hl, bc - inc [hl] - ret - -Function2969a: ; 2969a (a:569a) - call Function29694 - ld hl, $c - add hl, bc - ld [hl], $80 - ret - -Function296a4: ; 296a4 (a:56a4) - ld hl, $c - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - call Function29694 - -Function296af: ; 296af (a:56af) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $94 - jr nc, .asm_296ba - inc [hl] - ret -.asm_296ba - call Function29694 - -Function296bd: ; 296bd (a:56bd) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $4c - jr nc, .asm_296c8 - inc [hl] - ret -.asm_296c8 - ld hl, $ - add hl, bc - ld [hl], $0 - ret - -Function296cf: ; 296cf (a:56cf) - ld hl, $5 - add hl, bc - ld a, [hl] - cp $2c - jr z, .asm_296da - dec [hl] - ret -.asm_296da - call Function29694 - -Function296dd: ; 296dd (a:56dd) - ld hl, $4 - add hl, bc - ld a, [hl] - cp $58 - jr z, .asm_296e8 - dec [hl] - ret -.asm_296e8 - call Function29694 - ld hl, $c - add hl, bc - ld [hl], $80 - ret - -Function296f2: ; 296f2 (a:56f2) - ld hl, $c - add hl, bc - ld a, [hl] - dec [hl] - and a - ret nz - ld hl, $ - add hl, bc - ld [hl], $0 - ret -; 29701 (a:5701) - -Function29701: ; 29701 - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .asm_29725 - ld hl, UnknownText_0x29737 - call PrintText - ld c, $bd - call DelayFrames - ld hl, UnknownText_0x29732 - call PrintText - call Function297c9 - ld c, $80 - call DelayFrames - call Function29114 - ret - -.asm_29725 - ld hl, UnknownText_0x29732 - call PrintText - call Function297c9 - call Function29114 - ret -; 29732 - -UnknownText_0x29732: ; 0x29732 - ; was sent to @ . - text_jump UnknownText_0x1bc6e9 - db "@" -; 0x29737 - -UnknownText_0x29737: ; 0x29737 - ; - text_jump UnknownText_0x1bc701 - db "@" -; 0x2973c - -Function2973c: ; 2973c - ld hl, UnknownText_0x29752 - call PrintText - call Function297c9 - ld hl, UnknownText_0x29757 - call PrintText - call Function297c9 - call Function29114 - ret -; 29752 - -UnknownText_0x29752: ; 0x29752 - ; bids farewell to - text_jump UnknownText_0x1bc703 - db "@" -; 0x29757 - -UnknownText_0x29757: ; 0x29757 - ; . - text_jump UnknownText_0x1bc719 - db "@" -; 0x2975c - -Function2975c: ; 2975c - call WaitTop - hlcoord 0, 10 - ld bc, 8 * SCREEN_WIDTH - ld a, " " - call ByteFill - call WaitBGMap - ld hl, UnknownText_0x2977a - call PrintText - call Function297c9 - call Function29114 - ret -; 2977a - -UnknownText_0x2977a: ; 0x2977a - ; Take good care of @ . - text_jump UnknownText_0x1bc71f - db "@" -; 0x2977f - -Function2977f: ; 2977f - ld hl, UnknownText_0x2979a - call PrintText - call Function297c9 - ld hl, UnknownText_0x2979f - call PrintText - call Function297c9 - ld c, $e - call DelayFrames - call Function29114 - ret -; 2979a - -UnknownText_0x2979a: ; 0x2979a - ; For @ 's @ , - text_jump UnknownText_0x1bc739 - db "@" -; 0x2979f - -UnknownText_0x2979f: ; 0x2979f - ; sends @ . - text_jump UnknownText_0x1bc74c - db "@" -; 0x297a4 - -Function297a4: ; 297a4 - ld hl, UnknownText_0x297bf - call PrintText - call Function297c9 - ld hl, UnknownText_0x297c4 - call PrintText - call Function297c9 - ld c, $e - call DelayFrames - call Function29114 - ret -; 297bf - -UnknownText_0x297bf: ; 0x297bf - ; will trade @ @ - text_jump UnknownText_0x1bc75e - db "@" -; 0x297c4 - -UnknownText_0x297c4: ; 0x297c4 - ; for @ 's @ . - text_jump UnknownText_0x1bc774 - db "@" -; 0x297c9 - -Function297c9: ; 297c9 - ld c, $50 - call DelayFrames - ret -; 297cf - -Function297cf: ; 297cf - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ret -; 297db - -Function297db: ; 297db -.asm_297db - push bc - push hl -.asm_297dd - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_297dd - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_297db - ret -; 297ed - -Function297ed: ; 297ed - ld a, [hSGB] - and a - ld a, $e4 - jr z, .asm_297f6 - ld a, $f0 - -.asm_297f6 - call Functioncf8 - ld a, $e4 - call DmgToCgbBGPals - ret -; 297ff - -Function297ff: ; 297ff - push de - ld de, wc736 - ld bc, NAME_LENGTH - call CopyBytes - pop hl - ld de, wc741 - ld bc, NAME_LENGTH - call CopyBytes - ret -; 29814 - -Function29814: ; 29814 - ld a, [hl] - ld [wc74c], a - ld a, [de] - ld [wc74d], a - ret -; 2981d - -Function2981d: ; 2981d - ld a, [wcf65] - and $7 - ret nz - ld a, [rBGP] - xor $3c - call DmgToCgbBGPals - ret -; 2982b - -Function2982b: ; 2982b - call DelayFrame - ld de, TradeBallGFX - ld hl, VTiles0 tile $62 - lb bc, BANK(TradeBallGFX), $6 - call Request2bpp - ld de, TradePoofGFX - ld hl, VTiles0 tile $68 - lb bc, BANK(TradePoofGFX), $c - call Request2bpp - ld de, TradeCableGFX - ld hl, VTiles0 tile $74 - lb bc, BANK(TradeCableGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], $62 - ret -; 2985a - -Function2985a: ; 2985a - call DelayFrame - ld e, $3 - callab Function8e83f - ld de, TradeBubbleGFX - ld hl, VTiles0 tile $72 - lb bc, BANK(TradeBubbleGFX), $4 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], $62 - ret -; 29879 - -Function29879: ; 29879 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_29882 - dec [hl] - ret - -.asm_29882 - call Function29114 - ret -; 29886 - -Function29886: ; 29886 - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_2988f - dec [hl] - ret - -.asm_2988f - call Function29114 - ret -; 29893 - - -Function29893: ; 29893 -; This function is unreferenced. -; It was meant for use in Japanese versions, so the -; constant used for copy length was changed by accident. - - ld hl, Unknown_298b5 - - ld a, [hli] - ld [wc6d0], a - ld de, wc6e7 - ld c, 13 ; jp: 8 -.asm_2989f - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_2989f - - ld a, [hli] - ld [wc702], a - ld de, wc719 - ld c, 13 ; jp: 8 -.asm_298ae - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_298ae - ret -; 298b5 - -Unknown_298b5: ; 298b5 - db $03, "ゲーフり@@", $23, $01 ; GAME FREAK - db $06, "クりーチャ@", $56, $04 ; Creatures Inc. -; 298c7 - - -TradeGameBoyTilemap: ; 298c7 -; 6x8 - db $31, $32, $32, $32, $32, $33 - db $34, $35, $36, $36, $37, $38 - db $34, $39, $3a, $3a, $3b, $38 - db $3c, $3d, $3e, $3e, $3f, $40 - db $41, $42, $43, $43, $44, $45 - db $46, $47, $43, $48, $49, $4a - db $41, $43, $4b, $4c, $4d, $4e - db $4f, $50, $50, $50, $51, $52 -; 297f7 - -Tilemap_298f7: ; 297f7 -; 12x3 - db $43, $55, $56, $53, $53, $53, $53, $53, $53, $53, $53, $53 - db $43, $57, $58, $54, $54, $54, $54, $54, $54, $54, $54, $54 - db $43, $59, $5a, $43, $43, $43, $43, $43, $43, $43, $43, $43 -; 2991b - -TradeArrowGFX: INCBIN "gfx/trade/arrow.2bpp" -TradeCableGFX: INCBIN "gfx/trade/cable.2bpp" -TradeBubbleGFX: INCBIN "gfx/trade/bubble.2bpp" -TradeGameBoyLZ: INCBIN "gfx/trade/game_boy.2bpp.lz" -TradeBallGFX: INCBIN "gfx/trade/ball.2bpp" -TradePoofGFX: INCBIN "gfx/trade/poof.2bpp" - -Special_CheckTimeCapsuleCompatibility: ; 29bfb -; Checks to see if your Party is compatible with the generation 1 games. Returns the following in ScriptVar: -; 0: Party is okay -; 1: At least one Pokemon was introduced in GS -; 2: At least one Pokemon has a move that was introduced in GS -; 3: At least one Pokemon is holding mail - -; If any party Pokemon was introduced in the generation 2 games, don't let it in. - ld hl, PartySpecies - ld b, PARTY_LENGTH ; 6 -.loop - ld a, [hli] - cp $ff - jr z, .checkitem - cp CHIKORITA ; MEW + 1 ; 151 + 1 - jr nc, .mon_too_new - dec b - jr nz, .loop - -; If any party Pokemon is holding mail, don't let it in. -.checkitem - ld a, [PartyCount] - ld b, a - ld hl, PartyMon1Item -.itemloop - push hl - push bc - ld d, [hl] - callba ItemIsMail - pop bc - pop hl - jr c, .mon_has_mail - ld de, PARTYMON_STRUCT_LENGTH - add hl, de - dec b - jr nz, .itemloop - -; If any party Pokemon has a move that was introduced in the generation 2 games, don't let it in. - ld hl, PartyMon1Moves - ld a, [PartyCount] - ld b, a -.move_loop - ld c, NUM_MOVES -.move_next - ld a, [hli] - cp STRUGGLE + 1 - jr nc, .move_too_new - dec c - jr nz, .move_next - ld de, PartyMon2 - (PartyMon1 + NUM_MOVES) - add hl, de - dec b - jr nz, .move_loop - xor a - jr .done - -.mon_too_new - ld [wd265], a - call GetPokemonName - ld a, $1 - jr .done - -.move_too_new - push bc - ld [wd265], a - call GetMoveName - call CopyName1 - pop bc - call Function29c67 - ld a, $2 - jr .done - -.mon_has_mail - call Function29c67 - ld a, $3 - -.done - ld [ScriptVar], a - ret -; 29c67 - -Function29c67: ; 29c67 - ld a, [PartyCount] - sub b - ld c, a - inc c - ld b, $0 - ld hl, PartyCount - add hl, bc - ld a, [hl] - ld [wd265], a - call GetPokemonName - ret -; 29c7b - -Special_EnterTimeCapsule: ; 29c7b - ld c, $a - call DelayFrames - ld a, $4 - call Function29f17 - ld c, $28 - call DelayFrames - xor a - ld [hVBlank], a - inc a - ld [wLinkMode], a - ret -; 29c92 - -Special_AbortLink: ; 29c92 - ld c, $3 - call DelayFrames - ld a, -1 - ld [hLinkPlayerNumber], a - xor a - ld [rSB], a - ld [hSerialReceive], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - ld c, $3 - call DelayFrames - xor a - ld [rSB], a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - ld c, $3 - call DelayFrames - xor a - ld [rSB], a - ld [hSerialReceive], a - ld [rSC], a - ld c, $3 - call DelayFrames - ld a, -1 - ld [hLinkPlayerNumber], a - ld a, [rIF] - push af - xor a - ld [rIF], a - ld a, $f - ld [rIE], a - pop af - ld [rIF], a - ld hl, wcf5b - xor a - ld [hli], a - ld [hl], a - ld [hVBlank], a - ld [wLinkMode], a - ret -; 29ce8 - -Special_SetBitsForLinkTradeRequest: ; 29ce8 - ld a, $1 - ld [wcf56], a - ld [wd265], a - ret -; 29cf1 - -Special_SetBitsForBattleRequest: ; 29cf1 - ld a, $2 - ld [wcf56], a - ld [wd265], a - ret -; 29cfa - -Special_SetBitsForTimeCapsuleRequest: ; 29cfa - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - xor a - ld [wcf56], a - ld [wd265], a - ret -; 29d11 - -Special_WaitForLinkedFriend: ; 29d11 - ld a, [wcf56] - and a - jr z, .asm_29d2f - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - call DelayFrame - call DelayFrame - call DelayFrame - -.asm_29d2f - ld a, $2 - ld [wcf5c], a - ld a, $ff - ld [wcf5b], a -.asm_29d39 - ld a, [hLinkPlayerNumber] - cp $2 - jr z, .asm_29d79 - cp $1 - jr z, .asm_29d79 - ld a, -1 - ld [hLinkPlayerNumber], a - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld a, $0 - ld [rSC], a - ld a, $80 - ld [rSC], a - ld a, [wcf5b] - dec a - ld [wcf5b], a - jr nz, .asm_29d68 - ld a, [wcf5c] - dec a - ld [wcf5c], a - jr z, .asm_29d8d - -.asm_29d68 - ld a, $1 - ld [rSB], a - ld a, $1 - ld [rSC], a - ld a, $81 - ld [rSC], a - call DelayFrame - jr .asm_29d39 - -.asm_29d79 - call Function908 - call DelayFrame - call Function908 - ld c, $32 - call DelayFrames - ld a, $1 - ld [ScriptVar], a - ret - -.asm_29d8d - xor a - ld [ScriptVar], a - ret -; 29d92 - -Special_CheckLinkTimeout: ; 29d92 - ld a, $1 - ld [wcf56], a - ld hl, wcf5b - ld a, $3 - ld [hli], a - xor a - ld [hl], a - call WaitBGMap - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame - call Function29e0c - xor a - ld [hVBlank], a - ld a, [ScriptVar] - and a - ret nz - jp Function29f04 -; 29dba - -Function29dba: ; 29dba - ld a, $5 - ld [wcf56], a - ld hl, wcf5b - ld a, $3 - ld [hli], a - xor a - ld [hl], a - call WaitBGMap - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame - call Function29e0c - ld a, [ScriptVar] - and a - jr z, .asm_29e08 - ld bc, rIE -.asm_29de0 - dec bc - ld a, b - or c - jr nz, .asm_29de0 - ld a, [wcf51] - cp $5 - jr nz, .asm_29e03 - ld a, $6 - ld [wcf56], a - ld hl, wcf5b - ld a, $1 - ld [hli], a - ld [hl], $32 - call Function29e0c - ld a, [wcf51] - cp $6 - jr z, .asm_29e08 - -.asm_29e03 - xor a - ld [ScriptVar], a - ret - -.asm_29e08 - xor a - ld [hVBlank], a - ret -; 29e0c - -Function29e0c: ; 29e0c - xor a - ld [$ffca], a - ld a, [wcf5b] - ld h, a - ld a, [wcf5c] - ld l, a - push hl - call Function29e3b - pop hl - jr nz, .asm_29e2f - call Function29e47 - call Function29e53 - call Function29e3b - jr nz, .asm_29e2f - call Function29e47 - xor a - jr .asm_29e31 - -.asm_29e2f - ld a, $1 - -.asm_29e31 - ld [ScriptVar], a - ld hl, wcf5b - xor a - ld [hli], a - ld [hl], a - ret -; 29e3b - -Function29e3b: ; 29e3b - call Function87d - ld hl, wcf5b - ld a, [hli] - inc a - ret nz - ld a, [hl] - inc a - ret -; 29e47 - -Function29e47: ; 29e47 - ld b, $a -.asm_29e49 - call DelayFrame - call Function908 - dec b - jr nz, .asm_29e49 - ret -; 29e53 - -Function29e53: ; 29e53 - dec h - srl h - rr l - srl h - rr l - inc h - ld a, h - ld [wcf5b], a - ld a, l - ld [wcf5c], a - ret -; 29e66 - -Special_TryQuickSave: ; 29e66 - ld a, [wd265] - push af - callba Function14ab2 - ld a, $1 - jr nc, .asm_29e75 - xor a - -.asm_29e75 - ld [ScriptVar], a - ld c, $1e - call DelayFrames - pop af - ld [wd265], a - ret -; 29e82 - -Special_CheckBothSelectedSameRoom: ; 29e82 - ld a, [wd265] - call Function29f17 - push af - call Function908 - call DelayFrame - call Function908 - pop af - ld b, a - ld a, [wd265] - cp b - jr nz, .asm_29eaa - ld a, [wd265] - inc a - ld [wLinkMode], a - xor a - ld [hVBlank], a - ld a, $1 - ld [ScriptVar], a - ret - -.asm_29eaa - xor a - ld [ScriptVar], a - ret -; 29eaf - -Special_TimeCapsule: ; 29eaf - ld a, LINK_TIMECAPSULE - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29ec4 - -Special_TradeCenter: ; 29ec4 - ld a, LINK_TRADECENTER - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29ed9 - -Special_Colosseum: ; 29ed9 - ld a, LINK_COLOSSEUM - ld [wLinkMode], a - call DisableSpriteUpdates - callab LinkCommunications - call EnableSpriteUpdates - xor a - ld [hVBlank], a - ret -; 29eee - -Special_CloseLink: ; 29eee - xor a - ld [wLinkMode], a - ld c, $3 - call DelayFrames - jp Function29f04 -; 29efa - -Special_FailedLinkToPast: ; 29efa - ld c, $28 - call DelayFrames - ld a, $e - jp Function29f17 -; 29f04 - -Function29f04: ; 29f04 - ld c, $3 - call DelayFrames - ld a, -1 - ld [hLinkPlayerNumber], a - ld a, $2 - ld [rSB], a - xor a - ld [hSerialReceive], a - ld [rSC], a - ret -; 29f17 - -Function29f17: ; 29f17 - add $d0 - ld [wcf56], a - ld [wcf57], a - ld a, $2 - ld [hVBlank], a - call DelayFrame - call DelayFrame -.asm_29f29 - call Function83b - ld a, [wcf51] - ld b, a - and $f0 - cp $d0 - jr z, .asm_29f40 - ld a, [wcf52] - ld b, a - and $f0 - cp $d0 - jr nz, .asm_29f29 - -.asm_29f40 - xor a - ld [hVBlank], a - ld a, b - and $f - ret -; 29f47 - -Special_CableClubCheckWhichChris: ; 29f47 - ld a, [hLinkPlayerNumber] - cp $1 - ld a, $1 - jr z, .yes - dec a - -.yes - ld [ScriptVar], a - ret -; 29f54 - -GFX_29f54: ; 29f54 -INCBIN "gfx/unknown/029f54.2bpp" -; 29fe4 - -Function29fe4: ; 29fe4 - ld a, $0 - call GetSRAMBank - ld d, $0 - ld b, $2 - predef FlagPredef - call CloseSRAM - ld a, c - and a - ret -; 29ff8 - -LoadWildMonData: ; 29ff8 - call _GrassWildmonLookup - jr c, .asm_2a006 - ld hl, wd25a - xor a -rept 2 - ld [hli], a -endr - ld [hl], a - jr .asm_2a011 -.asm_2a006 -rept 2 - inc hl -endr - ld de, wd25a - ld bc, $3 - call CopyBytes -.asm_2a011 - call _WaterWildmonLookup - ld a, $0 - jr nc, .asm_2a01b -rept 2 - inc hl -endr - ld a, [hl] -.asm_2a01b - ld [wd25d], a - ret - -Function2a01f: ; 2a01f - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - xor a - call ByteFill - ld a, e - and a - jr nz, .asm_2a043 - decoord 0, 0 - ld hl, JohtoGrassWildMons - call Function2a052 - ld hl, JohtoWaterWildMons - call Function2a06e - call Function2a0b7 - call Function2a0cf - ret - -.asm_2a043 - decoord 0, 0 - ld hl, KantoGrassWildMons - call Function2a052 - ld hl, KantoWaterWildMons - jp Function2a06e -; 2a052 - -Function2a052: ; 2a052 -.asm_2a052 - ld a, [hl] - cp $ff - ret z - push hl - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a -rept 3 - inc hl -endr - ld a, $15 - call Function2a088 - jr nc, .asm_2a067 - ld [de], a - inc de - -.asm_2a067 - pop hl - ld bc, $2f - add hl, bc - jr .asm_2a052 -; 2a06e - -Function2a06e: ; 2a06e -.asm_2a06e - ld a, [hl] - cp $ff - ret z - push hl - ld a, [hli] - ld b, a - ld a, [hli] - ld c, a - inc hl - ld a, $3 - call Function2a088 - jr nc, .asm_2a081 - ld [de], a - inc de - -.asm_2a081 - pop hl - ld bc, 9 - add hl, bc - jr .asm_2a06e -; 2a088 - -Function2a088: ; 2a088 - inc hl -.asm_2a089 - push af - ld a, [wd265] - cp [hl] - jr z, .asm_2a098 -rept 2 - inc hl -endr - pop af - dec a - jr nz, .asm_2a089 - and a - ret - -.asm_2a098 - pop af - jp Function2a09c -; 2a09c - -Function2a09c: ; 2a09c - push de - call GetWorldMapLocation - ld c, a - hlcoord 0, 0 - ld de, SCREEN_WIDTH * SCREEN_HEIGHT -.asm_2a0a7 - ld a, [hli] - cp c - jr z, .asm_2a0b4 - dec de - ld a, e - or d - jr nz, .asm_2a0a7 - ld a, c - pop de - scf - ret - -.asm_2a0b4 - pop de - and a - ret -; 2a0b7 - -Function2a0b7: ; 2a0b7 - ld a, [wRoamMon1Species] - ld b, a - ld a, [wd265] - cp b - ret nz - ld a, [wRoamMon1MapGroup] - ld b, a - ld a, [wRoamMon1MapNumber] - ld c, a - call Function2a09c - ret nc - ld [de], a - inc de - ret -; 2a0cf - -Function2a0cf: ; 2a0cf - ld a, [wRoamMon2Species] - ld b, a - ld a, [wd265] - cp b - ret nz - ld a, [wRoamMon2MapGroup] - ld b, a - ld a, [wRoamMon2MapNumber] - ld c, a - call Function2a09c - ret nc - ld [de], a - inc de - ret -; 2a0e7 - -TryWildEncounter:: ; 2a0e7 -; Try to trigger a wild encounter. - call .EncounterRate - jr nc, .no_battle - call ChooseWildEncounter - jr nz, .no_battle - call CheckRepelEffect - jr nc, .no_battle - xor a - ret - -.no_battle - xor a ; BATTLETYPE_NORMAL - ld [TempWildMonSpecies], a - ld [BattleType], a - ld a, 1 - and a - ret -; 2a103 - -.EncounterRate: ; 2a103 - call GetMapEncounterRate - call ApplyMusicEffectOnEncounterRate - call ApplyCleanseTagEffectOnEncounterRate +.no_battle + xor a ; BATTLETYPE_NORMAL + ld [TempWildMonSpecies], a + ld [BattleType], a + ld a, 1 + and a + ret +; 2a103 + +.EncounterRate: ; 2a103 + call GetMapEncounterRate + call ApplyMusicEffectOnEncounterRate + call ApplyCleanseTagEffectOnEncounterRate call Random cp b ret @@ -45998,7 +41882,7 @@ GetUnownLetter: ; 51040 ld [hDividend + 2], a ld a, 10 ld [hDivisor], a - ld b, $4 + ld b, 4 call Divide ; Increment to get 1-26 -- cgit v1.2.3 From ba05bfeafec51b183986ecaacd22c718ec21f56a Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 10 Nov 2015 11:05:26 -0500 Subject: Move some gfx files around, also clock reset fn --- battle/core.asm | 14 +- battle/effect_commands.asm | 10 +- constants/item_constants.asm | 1 + engine/clock_reset.asm | 251 ++++++++++++++ engine/events.asm | 4 +- engine/landmarks.asm | 68 ++-- gfx/frames/map_entry_sign.2bpp | Bin 0 -> 224 bytes gfx/frames/space.2bpp | Bin 0 -> 16 bytes gfx/mobile/overworld_phone_icon.2bpp | 1 + gfx/mobile/phone_tiles.2bpp | Bin 0 -> 304 bytes gfx/unknown/0f8f24.2bpp | 1 - gfx/unknown/0f9204.2bpp | Bin 16 -> 0 bytes gfx/unknown/0f9214.2bpp | Bin 304 -> 0 bytes gfx/unknown/0f9344.2bpp | Bin 224 -> 0 bytes home/time.asm | 11 +- items/item_effects.asm | 4 +- macros/charmap.asm | 3 + main.asm | 624 +++++++++++------------------------ wram.asm | 10 +- 19 files changed, 512 insertions(+), 490 deletions(-) create mode 100755 engine/clock_reset.asm create mode 100644 gfx/frames/map_entry_sign.2bpp create mode 100644 gfx/frames/space.2bpp create mode 100644 gfx/mobile/overworld_phone_icon.2bpp create mode 100644 gfx/mobile/phone_tiles.2bpp delete mode 100644 gfx/unknown/0f8f24.2bpp delete mode 100644 gfx/unknown/0f9204.2bpp delete mode 100644 gfx/unknown/0f9214.2bpp delete mode 100644 gfx/unknown/0f9344.2bpp diff --git a/battle/core.asm b/battle/core.asm index 25025feb7..f57940db6 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -3922,7 +3922,7 @@ TryToRunAwayFromBattle: ; 3d8b3 ld a, [BattleMonItem] ld [wd265], a ld b, a - callab GetItem + callab GetItemHeldEffect ld a, b cp HELD_ESCAPE pop de @@ -4576,9 +4576,9 @@ UseOpponentItem: call RefreshBattleHuds callab GetOpponentItem ld a, [hl] - ld [wd265], a + ld [wNamedObjectIndexBuffer], a call GetItemName - callab Function27192 + callab ConsumeHeldItem ld hl, RecoveredUsingText jp StdBattleTextBox ; 3ddc8 @@ -4741,7 +4741,7 @@ HandleStatBoostingHeldItems: ; 3de97 push bc ld a, [bc] ld b, a - callab GetItem + callab GetItemHeldEffect ld hl, .StatUpItems .loop ld a, [hli] @@ -5595,7 +5595,7 @@ BattleMenu_Run: ; 3e489 CheckAmuletCoin: ; 3e4a8 ld a, [BattleMonItem] ld b, a - callab GetItem + callab GetItemHeldEffect ld a, b cp HELD_AMULET_COIN ret nz @@ -7247,12 +7247,12 @@ BoostStat: ; 3ed7c Function3ed9f: ; 3ed9f - callab Functionfb4f2 + callab LoadBattleFontsHPBar ret ; 3eda6 Function3eda6: ; 3eda6 - callab Functionfb50d + callab LoadHPBar ret ; 3edad diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 1c5d117ca..871518331 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -2996,11 +2996,11 @@ SpeciesItemBoost: ; 353d1 pop hl cp b - jr z, .GetItem + jr z, .GetItemHeldEffect cp c ret nz -.GetItem +.GetItemHeldEffect push hl call GetUserItem ld a, [hl] @@ -9679,7 +9679,7 @@ GetUserItem: ; 37db2 ld hl, EnemyMonItem .go ld b, [hl] - jp GetItem + jp GetItemHeldEffect ; 37dc1 @@ -9692,11 +9692,11 @@ GetOpponentItem: ; 37dc1 ld hl, BattleMonItem .go ld b, [hl] - jp GetItem + jp GetItemHeldEffect ; 37dd0 -GetItem: ; 37dd0 +GetItemHeldEffect: ; 37dd0 ; Return the effect of item b in bc. ld a, b and a diff --git a/constants/item_constants.asm b/constants/item_constants.asm index 41ecfcf60..71cc2ba60 100644 --- a/constants/item_constants.asm +++ b/constants/item_constants.asm @@ -318,6 +318,7 @@ const_value SET 30 const HELD_SP_DEFENSE_UP const HELD_ACCURACY_UP const HELD_EVASION_UP + const HELD_38 const_value SET 40 const HELD_40 diff --git a/engine/clock_reset.asm b/engine/clock_reset.asm new file mode 100755 index 000000000..eedcae836 --- /dev/null +++ b/engine/clock_reset.asm @@ -0,0 +1,251 @@ + +ResetClock_GetWraparoundTime: ; 20000 (8:4000) + push hl + dec a + ld e, a + ld d, 0 + ld hl, .WrapAroundTimes +rept 4 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + inc hl + ld b, [hl] + inc hl + ld c, [hl] + pop hl + ret +; 20015 (8:4015) + +.WrapAroundTimes: ; 20015 + dw Buffer4 + db 7, 4 + + dw Buffer5 + db 24, 12 + + dw Buffer6 + db 60, 15 +; 20021 + +RestartClock: ; 20021 (8:4021) +; If we're here, we had an RTC overflow. + ld hl, .Text_ClockTimeMayBeWrong + call PrintText + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + call LoadPartyMenuDataHeader + call ClearTileMap + ld hl, .Text_SetWithControlPad + call PrintText + call .SetClock + call ExitMenu + pop bc + ld hl, Options + ld [hl], b + ld c, a + ret +; 20047 (8:4047) + +.Text_ClockTimeMayBeWrong: ; 0x20047 + ; The clock's time may be wrong. Please reset the time. + text_jump UnknownText_0x1c40e6 + db "@" +; 0x2004c + +.Text_SetWithControlPad: ; 0x2004c + ; Set with the Control Pad. Confirm: A Button Cancel: B Button + text_jump UnknownText_0x1c411c + db "@" +; 0x20051 + +.SetClock: ; 20051 (8:4051) + ld a, 1 + ld [Buffer1], a ; which digit + ld [Buffer2], a ; wd1eb (aliases: MovementType) + ld a, 8 + ld [Buffer3], a + call UpdateTime + call GetWeekday + ld [Buffer4], a + ld a, [hHours] ; $ff00+$94 + ld [Buffer5], a + ld a, [hMinutes] ; $ff00+$96 + ld [Buffer6], a + +.loop + call .joy_loop + jr nc, .loop + and a + ret nz + call .PrintTime + ld hl, .Text_IsThisOK + call PrintText + call YesNoBox + jr c, .cancel + ld a, [Buffer4] + ld [StringBuffer2], a + ld a, [Buffer5] + ld [StringBuffer2 + 1], a + ld a, [Buffer6] + ld [StringBuffer2 + 2], a + xor a + ld [StringBuffer2 + 3], a + call Function677 + call .PrintTime + ld hl, .Text_ClockReset + call PrintText + call Functiona80 + xor a + ret + +.cancel + ld a, $1 + ret +; 200b0 (8:40b0) + +.Text_IsThisOK: ; 0x200b0 + ; Is this OK? + text_jump UnknownText_0x1c415b + db "@" +; 0x200b5 + +.Text_ClockReset: ; 0x200b5 + ; The clock has been reset. + text_jump UnknownText_0x1c4168 + db "@" +; 0x200ba + +.joy_loop + call Function354b + ld c, a + push af + call .PrintTime + pop af + bit 0, a + jr nz, .press_A + bit 1, a + jr nz, .press_B + bit 6, a + jr nz, .pressed_up + bit 7, a + jr nz, .pressed_down + bit 5, a + jr nz, .pressed_left + bit 4, a + jr nz, .pressed_right + jr .joy_loop + +.press_A + ld a, $0 + scf + ret + +.press_B + ld a, $1 + scf + ret + +.pressed_up + ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) + call ResetClock_GetWraparoundTime + ld a, [de] + inc a + ld [de], a + cp b + jr c, .done_scroll + ld a, $0 + ld [de], a + jr .done_scroll + +.pressed_down + ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) + call ResetClock_GetWraparoundTime + ld a, [de] + dec a + ld [de], a + cp -1 + jr nz, .done_scroll + ld a, b + dec a + ld [de], a + jr .done_scroll + +.pressed_left + ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) + dec [hl] + jr nz, .done_scroll + ld [hl], $3 + jr .done_scroll + +.pressed_right + ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) + inc [hl] + ld a, [hl] + cp $4 + jr c, .done_scroll + ld [hl], $1 + +.done_scroll + xor a + ret + +.PrintTime: ; 2011f (8:411f) + hlcoord 0, 5 + ld b, 5 + ld c, 18 + call TextBox + decoord 1, 8 + ld a, [Buffer4] + ld b, a + callba PrintDayOfWeek + ld a, [Buffer5] + ld b, a + ld a, [Buffer6] + ld c, a + decoord 11, 8 + callba PrintHoursMins + ld a, [Buffer2] ; wd1eb (aliases: MovementType) + lb de, " ", " " + call .PlaceChars + ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) + lb de, "▲", "▼" + call .PlaceChars + ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) + ld [Buffer2], a ; wd1eb (aliases: MovementType) + ret +; 20160 (8:4160) + +.unreferenced: ; 20160 + ld a, [Buffer3] + ld b, a + call GetTileCoord + ret +; 20168 + +.PlaceChars: ; 20168 (8:4168) + push de + call ResetClock_GetWraparoundTime + ld a, [Buffer3] + dec a + ld b, a + call GetTileCoord + pop de + ld [hl], d + ld bc, 2 * SCREEN_WIDTH + add hl, bc + ld [hl], e + ret +; 2017c (8:417c) + +String_2017c: ; 2017c + db "じ@" ; HR +; 2017e + +String_2017e: ; 2017e + db "ふん@" ; MIN +; 20181 diff --git a/engine/events.asm b/engine/events.asm index 2cc307031..344063aab 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -247,7 +247,7 @@ Function967d1: ; 967d1 Function967e1: ; 967e1 callba RefreshMapAppearDisappear callba Functiond4d2 - callba Functionb8098 + callba PlaceMapNameSign ret ; 967f4 @@ -328,7 +328,7 @@ PlayerEvents: ; 9681f jr z, .ok2 xor a - ld [wc2da], a + ld [wLandmarkSignTimer], a .ok2 scf diff --git a/engine/landmarks.asm b/engine/landmarks.asm index e9b1c3668..8fb7035f2 100644 --- a/engine/landmarks.asm +++ b/engine/landmarks.asm @@ -154,52 +154,52 @@ ENDM landmark 148, 132, FastShipName -NewBarkTownName: db "NEW BARK", $1f, "TOWN@" -CherrygroveCityName: db "CHERRYGROVE", $1f, "CITY@" +NewBarkTownName: db "NEW BARK¯TOWN@" +CherrygroveCityName: db "CHERRYGROVE¯CITY@" VioletCityName: db "VIOLET CITY@" AzaleaTownName: db "AZALEA TOWN@" -GoldenrodCityName: db "GOLDENROD", $1f, "CITY@" -EcruteakCityName: db "ECRUTEAK", $1f, "CITY@" -OlivineCityName: db "OLIVINE", $1f, "CITY@" -CianwoodCityName: db "CIANWOOD", $1f, "CITY@" -MahoganyTownName: db "MAHOGANY", $1f, "TOWN@" -BlackthornCityName: db "BLACKTHORN", $1f, "CITY@" -LakeOfRageName: db "LAKE OF", $1f, "RAGE@" +GoldenrodCityName: db "GOLDENROD¯CITY@" +EcruteakCityName: db "ECRUTEAK¯CITY@" +OlivineCityName: db "OLIVINE¯CITY@" +CianwoodCityName: db "CIANWOOD¯CITY@" +MahoganyTownName: db "MAHOGANY¯TOWN@" +BlackthornCityName: db "BLACKTHORN¯CITY@" +LakeOfRageName: db "LAKE OF¯RAGE@" SilverCaveName: db "SILVER CAVE@" -SproutTowerName: db "SPROUT", $1f, "TOWER@" -RuinsOfAlphName: db "RUINS", $1f, "OF ALPH@" +SproutTowerName: db "SPROUT¯TOWER@" +RuinsOfAlphName: db "RUINS¯OF ALPH@" UnionCaveName: db "UNION CAVE@" -SlowpokeWellName: db "SLOWPOKE", $1f, "WELL@" +SlowpokeWellName: db "SLOWPOKE¯WELL@" RadioTowerName: db "RADIO TOWER@" PowerPlantName: db "POWER PLANT@" -NationalParkName: db "NATIONAL", $1f, "PARK@" +NationalParkName: db "NATIONAL¯PARK@" TinTowerName: db "TIN TOWER@" LighthouseName: db "LIGHTHOUSE@" -WhirlIslandsName: db "WHIRL", $1f, "ISLANDS@" +WhirlIslandsName: db "WHIRL¯ISLANDS@" MtMortarName: db "MT.MORTAR@" -DragonsDenName: db "DRAGON'S", $1f, "DEN@" +DragonsDenName: db "DRAGON'S¯DEN@" IcePathName: db "ICE PATH@" NotApplicableName: db "N/A@" PalletTownName: db "PALLET TOWN@" -ViridianCityName: db "VIRIDIAN", $1f, "CITY@" +ViridianCityName: db "VIRIDIAN¯CITY@" PewterCityName: db "PEWTER CITY@" -CeruleanCityName: db "CERULEAN", $1f, "CITY@" -LavenderTownName: db "LAVENDER", $1f, "TOWN@" -VermilionCityName: db "VERMILION", $1f, "CITY@" -CeladonCityName: db "CELADON", $1f, "CITY@" -SaffronCityName: db "SAFFRON", $1f, "CITY@" -FuchsiaCityName: db "FUCHSIA", $1f, "CITY@" -CinnabarIslandName: db "CINNABAR", $1f, "ISLAND@" -IndigoPlateauName: db "INDIGO", $1f, "PLATEAU@" -VictoryRoadName: db "VICTORY", $1f, "ROAD@" +CeruleanCityName: db "CERULEAN¯CITY@" +LavenderTownName: db "LAVENDER¯TOWN@" +VermilionCityName: db "VERMILION¯CITY@" +CeladonCityName: db "CELADON¯CITY@" +SaffronCityName: db "SAFFRON¯CITY@" +FuchsiaCityName: db "FUCHSIA¯CITY@" +CinnabarIslandName: db "CINNABAR¯ISLAND@" +IndigoPlateauName: db "INDIGO¯PLATEAU@" +VictoryRoadName: db "VICTORY¯ROAD@" MtMoonName: db "MT.MOON@" RockTunnelName: db "ROCK TUNNEL@" -LavRadioTowerName: db "LAV", $1f, "RADIO TOWER@" +LavRadioTowerName: db "LAV¯RADIO TOWER@" SilphCoName: db "SILPH CO.@" SafariZoneName: db "SAFARI ZONE@" -SeafoamIslandsName: db "SEAFOAM", $1f, "ISLANDS@" -PokemonMansionName: db "#MON", $1f, "MANSION@" -CeruleanCaveNane: db "CERULEAN", $1f, "CAVE@" +SeafoamIslandsName: db "SEAFOAM¯ISLANDS@" +PokemonMansionName: db "#MON¯MANSION@" +CeruleanCaveNane: db "CERULEAN¯CAVE@" Route1Name: db "ROUTE 1@" Route2Name: db "ROUTE 2@" Route3Name: db "ROUTE 3@" @@ -247,14 +247,14 @@ Route44Name: db "ROUTE 44@" Route45Name: db "ROUTE 45@" Route46Name: db "ROUTE 46@" DarkCaveName: db "DARK CAVE@" -IlexForestName: db "ILEX", $1f, "FOREST@" -BurnedTowerName: db "BURNED", $1f, "TOWER@" +IlexForestName: db "ILEX¯FOREST@" +BurnedTowerName: db "BURNED¯TOWER@" FastShipName: db "FAST SHIP@" -ViridianForestName: db "VIRIDIAN", $1f, "FOREST@" -DiglettsCaveName: db "DIGLETT'S", $1f, "CAVE@" +ViridianForestName: db "VIRIDIAN¯FOREST@" +DiglettsCaveName: db "DIGLETT'S¯CAVE@" TohjoFallsName: db "TOHJO FALLS@" UndergroundName: db "UNDERGROUND@" -BattleTowerName: db "BATTLE", $1f, "TOWER@" +BattleTowerName: db "BATTLE¯TOWER@" SpecialMapName: db "SPECIAL@" diff --git a/gfx/frames/map_entry_sign.2bpp b/gfx/frames/map_entry_sign.2bpp new file mode 100644 index 000000000..a0143875a Binary files /dev/null and b/gfx/frames/map_entry_sign.2bpp differ diff --git a/gfx/frames/space.2bpp b/gfx/frames/space.2bpp new file mode 100644 index 000000000..01d633b27 Binary files /dev/null and b/gfx/frames/space.2bpp differ diff --git a/gfx/mobile/overworld_phone_icon.2bpp b/gfx/mobile/overworld_phone_icon.2bpp new file mode 100644 index 000000000..d19ae7f12 --- /dev/null +++ b/gfx/mobile/overworld_phone_icon.2bpp @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/gfx/mobile/phone_tiles.2bpp b/gfx/mobile/phone_tiles.2bpp new file mode 100644 index 000000000..93b085ee4 Binary files /dev/null and b/gfx/mobile/phone_tiles.2bpp differ diff --git a/gfx/unknown/0f8f24.2bpp b/gfx/unknown/0f8f24.2bpp deleted file mode 100644 index d19ae7f12..000000000 --- a/gfx/unknown/0f8f24.2bpp +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/gfx/unknown/0f9204.2bpp b/gfx/unknown/0f9204.2bpp deleted file mode 100644 index 01d633b27..000000000 Binary files a/gfx/unknown/0f9204.2bpp and /dev/null differ diff --git a/gfx/unknown/0f9214.2bpp b/gfx/unknown/0f9214.2bpp deleted file mode 100644 index 93b085ee4..000000000 Binary files a/gfx/unknown/0f9214.2bpp and /dev/null differ diff --git a/gfx/unknown/0f9344.2bpp b/gfx/unknown/0f9344.2bpp deleted file mode 100644 index a0143875a..000000000 Binary files a/gfx/unknown/0f9344.2bpp and /dev/null differ diff --git a/home/time.asm b/home/time.asm index 173ea573c..be7020bda 100644 --- a/home/time.asm +++ b/home/time.asm @@ -101,8 +101,8 @@ FixDays:: ; 5e8 ; update dl ld [hRTCDayLo], a ; DL -; unknown output - ld a, $40 ; %1000000 +; flag for s0_ac60 + ld a, %01000000 jr .set .daylo @@ -120,8 +120,8 @@ FixDays:: ; 5e8 ; update dl ld [hRTCDayLo], a ; DL -; unknown output - ld a, $20 ; %100000 +; flag for s0_ac60 + ld a, %00100000 .set ; update clock with modded day value @@ -278,6 +278,7 @@ SetClock:: ; 691 Function6c4:: ; 6c4 +; clear s0_ac60 xor a push af ld a, BANK(s0_ac60) @@ -289,6 +290,7 @@ Function6c4:: ; 6c4 ; 6d3 Function6d3:: ; 6d3 +; append flags to s0_ac60 ld hl, s0_ac60 push af ld a, BANK(s0_ac60) @@ -301,6 +303,7 @@ Function6d3:: ; 6d3 ; 6e3 Function6e3:: ; 6e3 +; check s0_ac60 ld a, BANK(s0_ac60) call GetSRAMBank ld a, [s0_ac60] diff --git a/items/item_effects.asm b/items/item_effects.asm index 22877e26e..b3cc62434 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -358,7 +358,7 @@ endr push de ; BUG: callba overwrites a, - ; and GetItem takes b anyway. + ; and GetItemHeldEffect takes b anyway. ; This is probably the reason ; the HELD_CATCH_CHANCE effect @@ -368,7 +368,7 @@ endr ld a, [BattleMonItem] ; ld b, a - callba GetItem + callba GetItemHeldEffect ld a, b cp HELD_CATCH_CHANCE diff --git a/macros/charmap.asm b/macros/charmap.asm index 54b3bf37a..8d02de4be 100644 --- a/macros/charmap.asm +++ b/macros/charmap.asm @@ -2,8 +2,10 @@ charmap "", $00 charmap "", $14 ; + gender charmap "", $15 + charmap "¯", $1f charmap "", $22 charmap "", $24 + charmap "%", $25 charmap "", $38 charmap "", $39 charmap "", $3f @@ -31,6 +33,7 @@ charmap "", $5f ; Actual characters + charmap "▲", $61 charmap "_", $62 charmap "′", $6e charmap "", $6e diff --git a/main.asm b/main.asm index b0b29b4a3..cdfd6b230 100644 --- a/main.asm +++ b/main.asm @@ -75,7 +75,7 @@ Function5ae8: ; 5ae8 ret ; 5b05 -Function5b05: ; 5b05 +PrintDayOfWeek: ; 5b05 push de ld hl, .Days ld a, b @@ -136,7 +136,7 @@ NewGame: ; 5b6b call OakSpeech call InitializeWorld ld a, 1 - ld [wc2d8], a + ld [wPreviousLandmark], a ld a, SPAWN_HOME ld [wd001], a @@ -447,7 +447,7 @@ Continue: ; 5d65 call DelayFrames callba JumpRoamMons callba Function105091 - callba Function140ae + callba Function140ae ; time-related ld a, [wSpawnAfterChampion] cp SPAWN_LANCE jr z, .SpawnAfterE4 @@ -524,9 +524,9 @@ ConfirmContinue: ; 5e34 Function5e48: ; 5e48 call Function6e3 - and $80 + and %10000000 ; Day count exceeded 16383 jr z, .pass - callba Function20021 + callba RestartClock ld a, c and a jr z, .pass @@ -546,7 +546,7 @@ FinishContinueFunction: ; 5e5d ld hl, GameTimerPause set 0, [hl] res 7, [hl] - ld hl, wd83e + ld hl, wEnteredMapFromContinue set 1, [hl] callba OverworldLoop ld a, [wSpawnAfterChampion] @@ -563,7 +563,7 @@ Function5e85: ; 5e85 call Function6e3 and $80 jr z, .asm_5e93 - ld de, $408 + lb de, 4, 8 call Function5eaf ret @@ -16097,10 +16097,12 @@ StartClock:: ; 14089 call GetClock call Function1409b call FixDays - jr nc, .asm_14097 - call Function6d3 + jr nc, .skip_set + ; bit 5: Day count exceeds 139 + ; bit 6: Day count exceeds 255 + call Function6d3 ; set flag on s0_ac60 -.asm_14097 +.skip_set call StartRTC ret ; 1409b @@ -16108,38 +16110,40 @@ StartClock:: ; 14089 Function1409b: ; 1409b ld hl, hRTCDayHi bit 7, [hl] - jr nz, .asm_140a8 + jr nz, .set_bit_7 bit 6, [hl] - jr nz, .asm_140a8 + jr nz, .set_bit_7 xor a ret -.asm_140a8 - ld a, $80 - call Function6d3 +.set_bit_7 + ; Day count exceeds 16383 + ld a, %10000000 + call Function6d3 ; set bit 7 on s0_ac60 ret ; 140ae Function140ae: ; 140ae call Function6e3 ld c, a - and %11000000 - jr nz, .asm_140c8 + and %11000000 ; Day count exceeded 255 or 16383 + jr nz, .time_overflow ld a, c - and %00100000 - jr z, .asm_140eb + and %00100000 ; Day count exceeded 139 + jr z, .dont_update call UpdateTime ld a, [wRTC + 0] ld b, a ld a, [CurDay] cp b - jr c, .asm_140eb + jr c, .dont_update -.asm_140c8 +.time_overflow callba ClearDailyTimers callba Function170923 +; mobile ld a, $5 call GetSRAMBank ld a, [$aa8c] @@ -16151,7 +16155,7 @@ Function140ae: ; 140ae call CloseSRAM ret -.asm_140eb +.dont_update xor a ret ; 140ed @@ -20288,248 +20292,7 @@ INCLUDE "tilesets/data_2.asm" SECTION "bank8", ROMX, BANK[$8] - -Function20000: ; 20000 (8:4000) - push hl - dec a - ld e, a - ld d, 0 - ld hl, Unknown_20015 -rept 4 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - inc hl - ld b, [hl] - inc hl - ld c, [hl] - pop hl - ret -; 20015 (8:4015) - -Unknown_20015: ; 20015 - dw wd1ed - db $07, $04 - - dw wd1ee - db $18, $0c - - dw wd1ef - db $3c, $0f -; 20021 - -Function20021: ; 20021 (8:4021) - ld hl, UnknownText_0x20047 - call PrintText - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - call LoadPartyMenuDataHeader - call ClearTileMap - ld hl, UnknownText_0x2004c - call PrintText - call Function20051 - call ExitMenu - pop bc - ld hl, Options - ld [hl], b - ld c, a - ret -; 20047 (8:4047) - -UnknownText_0x20047: ; 0x20047 - ; The clock's time may be wrong. Please reset the time. - text_jump UnknownText_0x1c40e6 - db "@" -; 0x2004c - -UnknownText_0x2004c: ; 0x2004c - ; Set with the Control Pad. Confirm: A Button Cancel: B Button - text_jump UnknownText_0x1c411c - db "@" -; 0x20051 - -Function20051: ; 20051 (8:4051) - ld a, $1 - ld [Buffer1], a ; wd1ea (aliases: MagikarpLength) - ld [Buffer2], a ; wd1eb (aliases: MovementType) - ld a, $8 - ld [wd1ec], a - call UpdateTime - call GetWeekday - ld [wd1ed], a - ld a, [hHours] ; $ff00+$94 - ld [wd1ee], a - ld a, [hMinutes] ; $ff00+$96 - ld [wd1ef], a -.asm_20071 - call Function200ba - jr nc, .asm_20071 - and a - ret nz - call Function2011f - ld hl, UnknownText_0x200b0 - call PrintText - call YesNoBox - jr c, .asm_200ad - ld a, [wd1ed] - ld [StringBuffer2], a - ld a, [wd1ee] - ld [StringBuffer2 + 1], a - ld a, [wd1ef] - ld [StringBuffer2 + 2], a - xor a - ld [StringBuffer2 + 3], a - call Function677 - call Function2011f - ld hl, UnknownText_0x200b5 - call PrintText - call Functiona80 - xor a - ret -.asm_200ad - ld a, $1 - ret -; 200b0 (8:40b0) - -UnknownText_0x200b0: ; 0x200b0 - ; Is this OK? - text_jump UnknownText_0x1c415b - db "@" -; 0x200b5 - -UnknownText_0x200b5: ; 0x200b5 - ; The clock has been reset. - text_jump UnknownText_0x1c4168 - db "@" -; 0x200ba - -Function200ba: ; 200ba (8:40ba) - call Function354b - ld c, a - push af - call Function2011f - pop af - bit 0, a - jr nz, .asm_200dd - bit 1, a - jr nz, .asm_200e1 - bit 6, a - jr nz, .asm_200e5 - bit 7, a - jr nz, .asm_200f6 - bit 5, a - jr nz, .asm_20108 - bit 4, a - jr nz, .asm_20112 - jr Function200ba -.asm_200dd - ld a, $0 - scf - ret -.asm_200e1 - ld a, $1 - scf - ret -.asm_200e5 - ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) - call Function20000 - ld a, [de] - inc a - ld [de], a - cp b - jr c, .asm_2011d - ld a, $0 - ld [de], a - jr .asm_2011d -.asm_200f6 - ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) - call Function20000 - ld a, [de] - dec a - ld [de], a - cp $ff - jr nz, .asm_2011d - ld a, b - dec a - ld [de], a - jr .asm_2011d -.asm_20108 - ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) - dec [hl] - jr nz, .asm_2011d - ld [hl], $3 - jr .asm_2011d -.asm_20112 - ld hl, Buffer1 ; wd1ea (aliases: MagikarpLength) - inc [hl] - ld a, [hl] - cp $4 - jr c, .asm_2011d - ld [hl], $1 -.asm_2011d - xor a - ret - -Function2011f: ; 2011f (8:411f) - hlcoord 0, 5 - ld b, $5 - ld c, $12 - call TextBox - decoord 1, 8 - ld a, [wd1ed] - ld b, a - callba Function5b05 - ld a, [wd1ee] - ld b, a - ld a, [wd1ef] - ld c, a - decoord 11, 8 - callba Function1dd6bb - ld a, [Buffer2] ; wd1eb (aliases: MovementType) - lb de, $7f, $7f - call Function20168 - ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) - lb de, $61, $ee - call Function20168 - ld a, [Buffer1] ; wd1ea (aliases: MagikarpLength) - ld [Buffer2], a ; wd1eb (aliases: MovementType) - ret -; 20160 (8:4160) - -Function20160: ; 20160 - ld a, [wd1ec] - ld b, a - call GetTileCoord - ret -; 20168 - -Function20168: ; 20168 (8:4168) - push de - call Function20000 - ld a, [wd1ec] - dec a - ld b, a - call GetTileCoord - pop de - ld [hl], d - ld bc, $28 - add hl, bc - ld [hl], e - ret -; 2017c (8:417c) - -String_2017c: ; 2017c - db "じ@" ; HR -; 2017e - -String_2017e: ; 2017e - db "ふん@" ; MIN -; 20181 - +INCLUDE "engine/clock_reset.asm" SECTION "Tileset Data 3", ROMX, BANK[TILESETS_3] @@ -25094,7 +24857,7 @@ Function2715c: ; 2715c jp SetPalettes ; 27192 -Function27192: ; 27192 +ConsumeHeldItem: ; 27192 push hl push de push bc @@ -25113,8 +24876,8 @@ Function27192: ; 27192 push af ld a, [de] ld b, a - callba GetItem - ld hl, Unknown_271de + callba GetItemHeldEffect + ld hl, .ConsumableEffects .loop ld a, [hli] cp b @@ -25151,18 +24914,18 @@ Function27192: ; 27192 ret ; 271de -Unknown_271de: ; 271de +.ConsumableEffects: ; 271de ; Consumable items? db HELD_BERRY - db $02 - db $05 + db HELD_2 + db HELD_5 db HELD_HEAL_POISON db HELD_HEAL_FREEZE db HELD_HEAL_BURN db HELD_HEAL_SLEEP db HELD_HEAL_PARALYZE db HELD_HEAL_STATUS - db $1e + db HELD_30 db HELD_ATTACK_UP db HELD_DEFENSE_UP db HELD_SPEED_UP @@ -25170,8 +24933,8 @@ Unknown_271de: ; 271de db HELD_SP_DEFENSE_UP db HELD_ACCURACY_UP db HELD_EVASION_UP - db $26 - db $47 + db HELD_38 + db HELD_71 db HELD_ESCAPE db HELD_CRITICAL_UP db -1 @@ -25208,30 +24971,27 @@ Function29fe4: ; unreferenced LoadWildMonData: ; 29ff8 call _GrassWildmonLookup - jr c, .asm_2a006 + jr c, .copy ld hl, wd25a xor a -rept 2 ld [hli], a -endr + ld [hli], a ld [hl], a - jr .asm_2a011 -.asm_2a006 -rept 2 + jr .done_copy +.copy + inc hl inc hl -endr ld de, wd25a ld bc, $3 call CopyBytes -.asm_2a011 +.done_copy call _WaterWildmonLookup ld a, $0 - jr nc, .asm_2a01b -rept 2 + jr nc, .no_copy + inc hl inc hl -endr ld a, [hl] -.asm_2a01b +.no_copy ld [wd25d], a ret @@ -25242,7 +25002,7 @@ Function2a01f: ; 2a01f call ByteFill ld a, e and a - jr nz, .asm_2a043 + jr nz, .kanto decoord 0, 0 ld hl, JohtoGrassWildMons call Function2a052 @@ -25252,7 +25012,7 @@ Function2a01f: ; 2a01f call Function2a0cf ret -.asm_2a043 +.kanto decoord 0, 0 ld hl, KantoGrassWildMons call Function2a052 @@ -25261,7 +25021,7 @@ Function2a01f: ; 2a01f ; 2a052 Function2a052: ; 2a052 -.asm_2a052 +.loop ld a, [hl] cp $ff ret z @@ -25275,19 +25035,19 @@ rept 3 endr ld a, $15 call Function2a088 - jr nc, .asm_2a067 + jr nc, .next ld [de], a inc de -.asm_2a067 +.next pop hl ld bc, $2f add hl, bc - jr .asm_2a052 + jr .loop ; 2a06e Function2a06e: ; 2a06e -.asm_2a06e +.loop ld a, [hl] cp $ff ret z @@ -25299,34 +25059,34 @@ Function2a06e: ; 2a06e inc hl ld a, $3 call Function2a088 - jr nc, .asm_2a081 + jr nc, .next ld [de], a inc de -.asm_2a081 +.next pop hl ld bc, 9 add hl, bc - jr .asm_2a06e + jr .loop ; 2a088 Function2a088: ; 2a088 inc hl -.asm_2a089 +.loop push af ld a, [wd265] cp [hl] - jr z, .asm_2a098 + jr z, .found rept 2 inc hl endr pop af dec a - jr nz, .asm_2a089 + jr nz, .loop and a ret -.asm_2a098 +.found pop af jp Function2a09c ; 2a09c @@ -25337,20 +25097,20 @@ Function2a09c: ; 2a09c ld c, a hlcoord 0, 0 ld de, SCREEN_WIDTH * SCREEN_HEIGHT -.asm_2a0a7 +.loop ld a, [hli] cp c - jr z, .asm_2a0b4 + jr z, .found dec de ld a, e or d - jr nz, .asm_2a0a7 + jr nz, .loop ld a, c pop de scf ret -.asm_2a0b4 +.found pop de and a ret @@ -27116,7 +26876,7 @@ Function2c6ac: ; 2c6ac (b:46ac) pop de ret -MysteryGiftGetItem: ; 2c708 (b:4708) +MysteryGiftGetItemHeldEffect: ; 2c708 (b:4708) ld a, c cp $25 ; 37 jr nc, Function2c722 @@ -34150,27 +33910,27 @@ MobileString1: ; 49fcc MobileStrings2: String_0x49fe9: ; 49fe9 - db "めいし", $1f, "つくったり" + db "めいし¯つくったり" next "ほぞんしておける フ,ルダーです@" ; 4a004 String_0x4a004: ; 4a004 db "モバイルたいせんや じぶんのめいしで" - next "つかう あいさつ", $1f, "つくります@" + next "つかう あいさつ¯つくります@" ; 4a026 String_0x4a026: ; 4a026 - db "あなた", $25, "じゅうしょや ねんれいの" - next "せ", $1e, "い", $1f, "かえられます@" + db "あなた%じゅうしょや ねんれいの" + next "せ", $1e, "い¯かえられます@" ; 4a042 String_0x4a042: ; 4a042 db "モバイルセンター", $1d, "せつぞくするとき" - next "ひつような こと", $1f, "きめます@" + next "ひつような こと¯きめます@" ; 4a062 String_0x4a062: ; 4a062 - db "まえ", $25, "がめん ", $1d, "もどります" + db "まえ%がめん ", $1d, "もどります" next "@" ; 4a071 @@ -34378,8 +34138,8 @@ asm_4a19d: ; 4a19d (12:619d) ; 4a1ef (12:61ef) String_4a1ef: ; 4a1ef - db "モバイルセンター", $1f, "えらぶ" - next "ログインパスワード", $1f, "いれる" + db "モバイルセンター¯えらぶ" + next "ログインパスワード¯いれる" next "もどる@" ; 4a20e @@ -34410,13 +34170,13 @@ Function4a239: ; 4a239 (12:6239) ; 4a23d (12:623d) Strings_4a23d: ; 4a23d - db "いつも せつぞく", $1f, "する" - next "モバイルセンター", $1f, "えらびます@" + db "いつも せつぞく¯する" + next "モバイルセンター¯えらびます@" db "モバイルセンター", $1d, "せつぞくするとき" - next "つかうパスワード", $1f, "ほぞんできます@" + next "つかうパスワード¯ほぞんできます@" - db "まえ", $25, "がめん ", $1d, "もどります@" + db "まえ%がめん ", $1d, "もどります@" db "@" ; 4a28a @@ -34838,14 +34598,14 @@ String_4a5f2: ; 4a5f2 Strings_4a5f6: ; 4a5f6 db "めいし や ニュース ", $1d, "のせる@" - db "あなた", $25, "あいさつです@" + db "あなた%あいさつです@" db "モバイル たいせん", $4a, "はじまるとき@" db "あいて", $1d, "みえる あいさつです@" db "モバイル たいせんで かったとき@" db "あいて", $1d, "みえる あいさつです@" db "モバイル たいせんで まけたとき@" db "あいて", $1d, "みえる あいさつです@" - db "まえ", $25, "がめん ", $1d, "もどります@" + db "まえ%がめん ", $1d, "もどります@" db "@" ; 4a680 @@ -38727,8 +38487,8 @@ Function4e307: ; 4e307 (13:6307) push af ld a, $1 ld [rVBK], a ; $ff00+$4f - ld de, GFX_f9204 - lb bc, BANK(GFX_f9204), 1 + ld de, TextBoxSpaceGFX + lb bc, BANK(TextBoxSpaceGFX), 1 ld hl, VTiles2 tile $7f call Get2bpp pop af @@ -52546,7 +52306,7 @@ UnknownText_0x90a6c: ; 90a6c ld a, [hMinutes] ; $ff00+$96 ld c, a decoord 1, 14 - callba Function1dd6bb + callba PrintHoursMins ld hl, TextJump_DSTIsThatOK ret ; 90a83 (24:4a83) @@ -52577,7 +52337,7 @@ UnknownText_0x90aa0: ; 90aa0 ld a, [hMinutes] ld c, a decoord 1, 14 - callba Function1dd6bb + callba PrintHoursMins ld hl, UnknownText_0x90ab7 ret ; 90ab7 @@ -53254,7 +53014,7 @@ Function90f86: ; 90f86 (24:4f86) ld a, [hMinutes] ; $ff00+$96 ld c, a decoord 6, 8 - callba Function1dd6bb + callba PrintHoursMins ld hl, UnknownText_0x90faf bccoord 6, 6 call PlaceWholeStringInBoxAtOnce @@ -57645,42 +57405,43 @@ ReturnFromMapSetupScript:: ; b8000 ld a, [MapNumber] ld c, a call GetWorldMapLocation - ld [wc2d9], a - call Functionb8089 - jr z, .asm_b8024 + ld [wCurrentLandmark], a + call .CheckNationalParkGate + jr z, .nationalparkgate call GetMapPermission - cp $6 - jr nz, .asm_b8029 + cp GATE + jr nz, .not_gate -.asm_b8024 +.nationalparkgate ld a, -1 - ld [wc2d9], a + ld [wCurrentLandmark], a -.asm_b8029 - ld hl, wd83e +.not_gate + ld hl, wEnteredMapFromContinue bit 1, [hl] res 1, [hl] - jr nz, .asm_b8054 + jr nz, .dont_do_map_sign - call Functionb8064 - jr z, .asm_b8054 + call .CheckMovingWithinLandmark + jr z, .dont_do_map_sign + ld a, [wCurrentLandmark] + ld [wPreviousLandmark], a - ld a, [wc2d9] - ld [wc2d8], a - call Functionb8070 - jr z, .asm_b8054 + call .CheckSpecialMap + jr z, .dont_do_map_sign - ld a, $3c - ld [wc2da], a - call Functionb80c6 - call Functionb80d3 +; Display for 60 frames + ld a, 60 + ld [wLandmarkSignTimer], a + call LoadMapNameSignGFX + call InitMapNameFrame callba Function104303 ret -.asm_b8054 - ld a, [wc2d9] - ld [wc2d8], a +.dont_do_map_sign + ld a, [wCurrentLandmark] + ld [wPreviousLandmark], a ld a, $90 ld [rWY], a ld [hWY], a @@ -57689,17 +57450,17 @@ ReturnFromMapSetupScript:: ; b8000 ret ; b8064 -Functionb8064: ; b8064 - ld a, [wc2d9] +.CheckMovingWithinLandmark: ; b8064 + ld a, [wCurrentLandmark] ld c, a - ld a, [wc2d8] + ld a, [wPreviousLandmark] cp c ret z cp $0 ret ; b8070 -Functionb8070: ; b8070 +.CheckSpecialMap: ; b8070 cp -1 ret z cp SPECIAL_MAP @@ -57719,7 +57480,7 @@ Functionb8070: ; b8070 ret ; b8089 -Functionb8089: ; b8089 +.CheckNationalParkGate: ; b8089 ld a, [MapGroup] cp GROUP_ROUTE_35_NATIONAL_PARK_GATE ret nz @@ -57731,26 +57492,27 @@ Functionb8089: ; b8089 ; b8098 -Functionb8098:: ; b8098 (2e:4098) - ld hl, wc2da +PlaceMapNameSign:: ; b8098 (2e:4098) + ld hl, wLandmarkSignTimer ld a, [hl] and a - jr z, .asm_b80bc + jr z, .disappear dec [hl] - cp $3c + cp 60 ret z - cp $3b - jr nz, .asm_b80b3 - call Functionb80d3 - call Functionb80e1 + cp 59 + jr nz, .skip2 + call InitMapNameFrame + call PlaceMapNameCenterAlign callba Function104303 -.asm_b80b3 +.skip2 ld a, $80 ld a, $70 ld [rWY], a ; $ff00+$4a ld [hWY], a ; $ff00+$d2 ret -.asm_b80bc + +.disappear ld a, $90 ld [rWY], a ; $ff00+$4a ld [hWY], a ; $ff00+$d2 @@ -57759,30 +57521,30 @@ Functionb8098:: ; b8098 (2e:4098) ret -Functionb80c6: ; b80c6 - ld de, GFX_f9344 +LoadMapNameSignGFX: ; b80c6 + ld de, MapEntryFrameGFX ld hl, VTiles2 tile $60 - lb bc, BANK(GFX_f9344), $e + lb bc, BANK(MapEntryFrameGFX), $e call Get2bpp ret ; b80d3 -Functionb80d3: ; b80d3 +InitMapNameFrame: ; b80d3 hlcoord 0, 0 - ld b, $2 - ld c, $12 - call Functionb8115 - call Functionb812f + ld b, 2 + ld c, 18 + call InitMapSignAttrMap + call PlaceMapNameFrame ret ; b80e1 -Functionb80e1: ; b80e1 (2e:40e1) - ld a, [wc2d9] +PlaceMapNameCenterAlign: ; b80e1 (2e:40e1) + ld a, [wCurrentLandmark] ld e, a callba GetLandmarkName - call Functionb8101 - ld a, $14 + call .GetNameLength + ld a, SCREEN_WIDTH sub c srl a ld b, $0 @@ -57793,15 +57555,15 @@ Functionb80e1: ; b80e1 (2e:40e1) call PlaceString ret -Functionb8101: ; b8101 (2e:4101) - ld c, $0 +.GetNameLength: ; b8101 (2e:4101) + ld c, 0 push hl ld hl, StringBuffer1 .loop ld a, [hli] - cp $50 + cp "@" jr z, .stop - cp $25 + cp "%" jr z, .loop inc c jr .loop @@ -57810,7 +57572,7 @@ Functionb8101: ; b8101 (2e:4101) ret -Functionb8115: ; b8115 +InitMapSignAttrMap: ; b8115 ld de, AttrMap - TileMap add hl, de rept 2 @@ -57836,34 +57598,34 @@ endr ret ; b812f -Functionb812f: ; b812f +PlaceMapNameFrame: ; b812f hlcoord 0, 0 ld a, $61 ld [hli], a ld a, $62 - call .Fill5Words + call .FillTopBottom ld a, $64 ld [hli], a ld a, $65 ld [hli], a - call .Fill18Bytes + call .FillLeftRight ld a, $6b ld [hli], a ld a, $66 ld [hli], a - call .Fill18Bytes + call .FillLeftRight ld a, $6c ld [hli], a ld a, $67 ld [hli], a ld a, $68 - call .Fill5Words + call .FillTopBottom ld a, $6a ld [hl], a ret ; b815b -.Fill18Bytes: ; b815b +.FillLeftRight: ; b815b ld c, 18 ld a, $6d .loop @@ -57873,7 +57635,7 @@ Functionb812f: ; b812f ret ; b8164 -.Fill5Words: ; b8164 +.FillTopBottom: ; b8164 ld c, 5 jr .enterloop @@ -68976,28 +68738,28 @@ TownMapGFX: ; f8ba0 INCBIN "gfx/misc/town_map.2bpp.lz" ; f8ea4 -GFX_f8ea4: ; f8ea4 +GFX_f8ea4: ; unused INCBIN "gfx/unknown/0f8ea4.2bpp" ; f8f24 -GFX_f8f24: ; f8f24 -INCBIN "gfx/unknown/0f8f24.2bpp" +OverworldPhoneIconGFX: ; f8f24 +INCBIN "gfx/mobile/overworld_phone_icon.2bpp" ; f8f34 -GFX_f8f34: ; f8f34 +GFX_f8f34: ; unused INCBIN "gfx/unknown/0f8f34.2bpp" ; f9204 -GFX_f9204: ; f9204 -INCBIN "gfx/unknown/0f9204.2bpp" +TextBoxSpaceGFX: ; f9204 +INCBIN "gfx/frames/space.2bpp" ; f9214 -GFX_f9214: ; f9214 -INCBIN "gfx/unknown/0f9214.2bpp" +MobilePhoneTilesGFX: ; f9214 +INCBIN "gfx/mobile/phone_tiles.2bpp" ; f9344 -GFX_f9344: ; f9344 -INCBIN "gfx/unknown/0f9344.2bpp" +MapEntryFrameGFX: ; f9344 +INCBIN "gfx/frames/map_entry_sign.2bpp" ; f9424 GFX_f9424: ; f9424 @@ -69055,13 +68817,13 @@ _LoadStandardFont:: ; fb449 ; fb48a _LoadFontsExtra1:: ; fb48a - ld de, GFX_f9214 + ld de, MobilePhoneTilesGFX ld hl, VTiles2 tile $60 - lb bc, BANK(GFX_f9214), 1 + lb bc, BANK(MobilePhoneTilesGFX), 1 call Get1bpp_2 - ld de, GFX_f8f24 + ld de, OverworldPhoneIconGFX ld hl, VTiles2 tile $62 - lb bc, BANK(GFX_f8f24), 1 + lb bc, BANK(OverworldPhoneIconGFX), 1 call Get2bpp_2 ld de, FontExtra + 3 * LEN_2BPP_TILE ld hl, VTiles2 tile $63 @@ -69099,13 +68861,13 @@ LoadFrame: ; fb4cc lb bc, BANK(Frames), TILES_PER_FRAME call Get1bpp_2 ld hl, VTiles2 tile $7f - ld de, GFX_f9204 - lb bc, BANK(GFX_f9204), 1 + ld de, TextBoxSpaceGFX + lb bc, BANK(TextBoxSpaceGFX), 1 call Get1bpp_2 ret ; fb4f2 -Functionfb4f2: ; fb4f2 +LoadBattleFontsHPBar: ; fb4f2 ld de, FontBattleExtra ld hl, VTiles2 tile $60 lb bc, BANK(FontBattleExtra), $c @@ -69116,7 +68878,7 @@ Functionfb4f2: ; fb4f2 call Get2bpp_2 call LoadFrame -Functionfb50d: ; fb50d +LoadHPBar: ; fb50d ld de, EnemyHPBarBorderGFX ld hl, VTiles2 tile $6c lb bc, BANK(EnemyHPBarBorderGFX), 4 @@ -69129,9 +68891,9 @@ Functionfb50d: ; fb50d ld hl, VTiles2 tile $55 lb bc, BANK(ExpBarGFX), 9 call Get2bpp_2 - ld de, GFX_f9214 + 9 * LEN_2BPP_TILE + ld de, MobilePhoneTilesGFX + 9 * LEN_2BPP_TILE ld hl, VTiles2 tile $5e - lb bc, BANK(GFX_f9214), 2 + lb bc, BANK(MobilePhoneTilesGFX), 2 call Get2bpp_2 ret ; fb53e @@ -72022,7 +71784,7 @@ DoMysteryGift: ; 1048ba (41:48ba) call GetMysteryGiftBank ld a, [wc910] ld c, a - callba MysteryGiftGetItem + callba MysteryGiftGetItemHeldEffect ld a, c ld [s0_abe4], a ld [wNamedObjectIndexBuffer], a @@ -73405,10 +73167,10 @@ asm_105726: ; 105726 (41:5726) ; 10572e (41:572e) String_10572e: ; 10572e - db "エーボタン", $1f, "おすと" + db "エーボタン¯おすと" next "つうしん", $4a, "おこなわれるよ!" - next "ビーボタン", $1f, "おすと" - next "つうしん", $1f, "ちゅうし します" + next "ビーボタン¯おすと" + next "つうしん¯ちゅうし します" db "@" ; 10575e @@ -74966,9 +74728,9 @@ Function106463: ; 106463 ; 106464 Function106464:: ; 106464 - ld de, GFX_f9214 + ld de, MobilePhoneTilesGFX ld hl, VTiles2 tile $60 - lb bc, BANK(GFX_f9214), 1 + lb bc, BANK(MobilePhoneTilesGFX), 1 call Get2bpp ld de, GFX_f9424 ld hl, VTiles2 tile $61 @@ -74996,13 +74758,13 @@ Function10649b: ; 10649b ld d, h ld e, l ld hl, VTiles2 tile $79 - ld c, $6 + ld c, 6 ld b, BANK(Frames) call Function1064c3 ld hl, VTiles2 tile $7f - ld de, GFX_f9204 - ld c, $1 - ld b, BANK(GFX_f9204) + ld de, TextBoxSpaceGFX + ld c, 1 + ld b, BANK(TextBoxSpaceGFX) call Function1064c3 ret ; 1064c3 @@ -75059,8 +74821,8 @@ asm_1064ed ; 10650a Function10650a: ; 10650a - ld de, GFX_f9214 + $20 - lb bc, BANK(GFX_f9214), $11 + ld de, MobilePhoneTilesGFX + $20 + lb bc, BANK(MobilePhoneTilesGFX), $11 call Get2bpp ret ; 106514 @@ -75591,30 +75353,32 @@ Function1dd6a9: ; 1dd6a9 ret ; 1dd6bb -Function1dd6bb: ; 1dd6bb (77:56bb) +PrintHoursMins ; 1dd6bb (77:56bb) +; Hours in b, minutes in c ld a, b cp 12 push af - jr c, .asm_1dd6c7 - jr z, .asm_1dd6cc - sub $c - jr .asm_1dd6cc -.asm_1dd6c7 + jr c, .AM + jr z, .PM + sub 12 + jr .PM +.AM or a - jr nz, .asm_1dd6cc - ld a, $c -.asm_1dd6cc + jr nz, .PM + ld a, 12 +.PM ld b, a +; Crazy stuff happening with the stack push bc ld hl, [sp+$1] push de push hl pop de pop hl - ld [hl], $7f + ld [hl], " " lb bc, 1, 2 call PrintNum - ld [hl], $9c + ld [hl], ":" inc hl ld d, h ld e, l @@ -75628,9 +75392,9 @@ Function1dd6bb: ; 1dd6bb (77:56bb) pop bc ld de, String_AM pop af - jr c, .asm_1dd6f7 + jr c, .place_am_pm ld de, String_PM -.asm_1dd6f7 +.place_am_pm inc hl call PlaceString ret diff --git a/wram.asm b/wram.asm index 9b5d557c4..99b5523e8 100644 --- a/wram.asm +++ b/wram.asm @@ -306,9 +306,9 @@ wc2d4:: ds 1 wc2d5:: ds 1 wc2d6:: ds 1 wc2d7:: ds 1 -wc2d8:: ds 1 -wc2d9:: ds 1 -wc2da:: ds 2 +wPreviousLandmark:: ds 1 +wCurrentLandmark:: ds 1 +wLandmarkSignTimer:: ds 2 wLinkMode:: ; c2dc ; 0 not in link battle ; 1 link battle @@ -2193,8 +2193,8 @@ wObjectMasks:: ds NUM_OBJECTS ; d81e VariableSprites:: ; d82e ds $10 -wd83e:: ds 3 - +wEnteredMapFromContinue:: ds 1 ; d83e + ds 2 TimeOfDayPal:: ; d841 ds 1 ds 4 -- cgit v1.2.3 From d13fb46d405eb1cbc78c4f7c8823cfce5cfdbfab Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 10 Nov 2015 16:53:37 -0500 Subject: enum macros/move_anim.asm, resolve battle/anims.asm function labels --- battle/ai/scoring.asm | 2 +- battle/anim_commands.asm | 232 ++--- battle/anim_objects.asm | 16 +- battle/anims.asm | 37 +- battle/bg_effects.asm | 88 +- battle/core.asm | 217 +++-- battle/effect_commands.asm | 17 +- battle/misc.asm | 10 +- constants/animation_constants.asm | 50 - engine/battle_start.asm | 40 +- engine/breeding/egg.asm | 976 +++++++++++++++++++ engine/clock_reset.asm | 8 +- engine/credits.asm | 14 +- engine/link.asm | 4 +- engine/map_objects.asm | 2 +- engine/menu.asm | 14 +- engine/pack.asm | 16 +- engine/phone.asm | 2 +- engine/pokedex.asm | 60 +- engine/radio.asm | 12 +- engine/radio2.asm | 4 +- event/buena.asm | 2 +- event/kurt.asm | 4 +- event/unown.asm | 2 +- home.asm | 6 +- home/menu.asm | 26 +- home/tilemap.asm | 63 +- lib/mobile/main.asm | 22 +- macros/charmap.asm | 1 + macros/move_anim.asm | 146 ++- macros/text.asm | 1 - main.asm | 1890 +++++++++---------------------------- misc/crystal_misc.asm | 22 +- misc/mobile_22.asm | 24 +- misc/mobile_22_2.asm | 6 +- misc/mobile_40.asm | 4 +- misc/mobile_45.asm | 20 +- misc/mobile_46.asm | 40 +- misc/mobile_5b.asm | 2 +- misc/mobile_5c.asm | 52 +- wram.asm | 49 +- 41 files changed, 2126 insertions(+), 2077 deletions(-) create mode 100755 engine/breeding/egg.asm diff --git a/battle/ai/scoring.asm b/battle/ai/scoring.asm index 7dd204978..5445671ac 100644 --- a/battle/ai/scoring.asm +++ b/battle/ai/scoring.asm @@ -2859,7 +2859,7 @@ endr AI_Smart_Stomp: ; 39200 ; 80% chance to encourage this move if the player has used Minimize. - ld a, [wc6fe] + ld a, [wPlayerMinimized] and a ret z diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index 839449d19..7372899f5 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -353,54 +353,54 @@ endr BattleAnimCommands:: ; cc2a4 (33:42a4) - dw BattleAnimCmd_D0 - dw BattleAnimCmd_D1 - dw BattleAnimCmd_D2 - dw BattleAnimCmd_D3 - dw BattleAnimCmd_D4 - dw BattleAnimCmd_D5 - dw BattleAnimCmd_D6 - dw BattleAnimCmd_D7 - dw BattleAnimCmd_D8 - dw BattleAnimCmd_D9 - dw BattleAnimCmd_DA - dw BattleAnimCmd_DB - dw BattleAnimCmd_DC - dw BattleAnimCmd_DD - dw BattleAnimCmd_DE - dw BattleAnimCmd_DF - dw BattleAnimCmd_E0 - dw BattleAnimCmd_E1 - dw BattleAnimCmd_E2 - dw BattleAnimCmd_E3 - dw BattleAnimCmd_E4 - dw BattleAnimCmd_E5 - dw BattleAnimCmd_E6 + dw BattleAnimCmd_Obj + dw BattleAnimCmd_1GFX + dw BattleAnimCmd_2GFX + dw BattleAnimCmd_3GFX + dw BattleAnimCmd_4GFX + dw BattleAnimCmd_5GFX + dw BattleAnimCmd_IncObj + dw BattleAnimCmd_SetObj + dw BattleAnimCmd_IncBGEffect + dw BattleAnimCmd_EnemyFeetObj + dw BattleAnimCmd_PlayerHeadObj + dw BattleAnimCmd_CheckPokeball + dw BattleAnimCmd_Transform + dw BattleAnimCmd_RaiseSub + dw BattleAnimCmd_DropSub + dw BattleAnimCmd_ResetObp0 + dw BattleAnimCmd_Sound + dw BattleAnimCmd_Cry + dw BattleAnimCmd_MinimizeOpp + dw BattleAnimCmd_OAMOn + dw BattleAnimCmd_OAMOff + dw BattleAnimCmd_ClearObjs + dw BattleAnimCmd_BeatUp dw BattleAnimCmd_E7 - dw BattleAnimCmd_E8 - dw BattleAnimCmd_E9 - dw BattleAnimCmd_EA - dw BattleAnimCmd_EB - dw BattleAnimCmd_EC - dw BattleAnimCmd_ED - dw BattleAnimCmd_EE - dw BattleAnimCmd_EF - dw BattleAnimCmd_F0 - dw BattleAnimCmd_F1 - dw BattleAnimCmd_F2 - dw BattleAnimCmd_F3 - dw BattleAnimCmd_F4 + dw BattleAnimCmd_UpdateActorPic + dw BattleAnimCmd_Minimize + dw BattleAnimCmd_EA ; dummy + dw BattleAnimCmd_EB ; dummy + dw BattleAnimCmd_EC ; dummy + dw BattleAnimCmd_ED ; dummy + dw BattleAnimCmd_JumpAnd + dw BattleAnimCmd_JumpUntil + dw BattleAnimCmd_BGEffect + dw BattleAnimCmd_BGP + dw BattleAnimCmd_OBP0 + dw BattleAnimCmd_OBP1 + dw BattleAnimCmd_ClearSprites dw BattleAnimCmd_F5 dw BattleAnimCmd_F6 dw BattleAnimCmd_F7 - dw BattleAnimCmd_F8 - dw BattleAnimCmd_F9 - dw BattleAnimCmd_FA - dw BattleAnimCmd_FB - dw BattleAnimCmd_FC - dw BattleAnimCmd_FD - dw BattleAnimCmd_FE - dw BattleAnimCmd_FF + dw BattleAnimCmd_JumpIf + dw BattleAnimCmd_SetVar + dw BattleAnimCmd_IncVar + dw BattleAnimCmd_JumpVar + dw BattleAnimCmd_Jump + dw BattleAnimCmd_Loop + dw BattleAnimCmd_Call + dw BattleAnimCmd_Ret BattleAnimCmd_EA: @@ -409,7 +409,7 @@ BattleAnimCmd_EC: BattleAnimCmd_ED: ; cc304 (33:4304) ret -BattleAnimCmd_FF: ; cc305 (33:4305) +BattleAnimCmd_Ret: ; cc305 (33:4305) ld hl, BattleAnimFlags res 1, [hl] ld hl, BattleAnimParent @@ -422,7 +422,7 @@ BattleAnimCmd_FF: ; cc305 (33:4305) ld [hl], d ret -BattleAnimCmd_FE: ; cc317 (33:4317) +BattleAnimCmd_Call: ; cc317 (33:4317) call GetBattleAnimByte ld e, a call GetBattleAnimByte @@ -445,7 +445,7 @@ BattleAnimCmd_FE: ; cc317 (33:4317) set 1, [hl] ret -BattleAnimCmd_FC: ; cc339 (33:4339) +BattleAnimCmd_Jump: ; cc339 (33:4339) call GetBattleAnimByte ld e, a call GetBattleAnimByte @@ -456,7 +456,7 @@ BattleAnimCmd_FC: ; cc339 (33:4339) ld [hl], d ret -BattleAnimCmd_FD: ; cc348 (33:4348) +BattleAnimCmd_Loop: ; cc348 (33:4348) call GetBattleAnimByte ld hl, BattleAnimFlags bit 2, [hl] @@ -497,7 +497,7 @@ endr ld [hl], e ret -BattleAnimCmd_EF: ; cc383 (33:4383) +BattleAnimCmd_JumpUntil: ; cc383 (33:4383) ld hl, wKickCounter ld a, [hl] and a @@ -527,17 +527,17 @@ endr ld [hl], e ret -BattleAnimCmd_F9: ; cc3a6 (33:43a6) +BattleAnimCmd_SetVar: ; cc3a6 (33:43a6) call GetBattleAnimByte ld [BattleAnimVar], a ret -BattleAnimCmd_FA: ; cc3ad (33:43ad) +BattleAnimCmd_IncVar: ; cc3ad (33:43ad) ld hl, BattleAnimVar inc [hl] ret -BattleAnimCmd_FB: ; cc3b2 (33:43b2) +BattleAnimCmd_JumpVar: ; cc3b2 (33:43b2) call GetBattleAnimByte ld hl, BattleAnimVar cp [hl] @@ -566,7 +566,7 @@ endr ld [hl], d ret -BattleAnimCmd_F8: ; cc3d6 (33:43d6) +BattleAnimCmd_JumpIf: ; cc3d6 (33:43d6) call GetBattleAnimByte ld hl, wKickCounter cp [hl] @@ -595,7 +595,7 @@ endr ld [hl], d ret -BattleAnimCmd_EE: ; cc3fa (33:43fa) +BattleAnimCmd_JumpAnd: ; cc3fa (33:43fa) call GetBattleAnimByte ld e, a ld a, [wKickCounter] @@ -624,7 +624,7 @@ endr ld [hl], d ret -BattleAnimCmd_D0: ; cc41f (33:441f) +BattleAnimCmd_Obj: ; cc41f (33:441f) call GetBattleAnimByte ld [BattleAnimTemps], a call GetBattleAnimByte @@ -636,7 +636,7 @@ BattleAnimCmd_D0: ; cc41f (33:441f) call Functioncc9a1 ret -BattleAnimCmd_F0: ; cc43b (33:443b) +BattleAnimCmd_BGEffect: ; cc43b (33:443b) call GetBattleAnimByte ld [BattleAnimTemps], a call GetBattleAnimByte @@ -648,23 +648,23 @@ BattleAnimCmd_F0: ; cc43b (33:443b) call Functionccb4f ret -BattleAnimCmd_F1: ; cc457 (33:4457) +BattleAnimCmd_BGP: ; cc457 (33:4457) call GetBattleAnimByte ld [wcfc7], a ret -BattleAnimCmd_F2: ; cc45e (33:445e) +BattleAnimCmd_OBP0: ; cc45e (33:445e) call GetBattleAnimByte ld [wcfc8], a ret -BattleAnimCmd_F3: ; cc465 (33:4465) +BattleAnimCmd_OBP1: ; cc465 (33:4465) call GetBattleAnimByte ld [wcfc9], a ret -BattleAnimCmd_DF: ; cc46c (33:446c) - ld a, [hSGB] ; $ff00+$e7 +BattleAnimCmd_ResetObp0: ; cc46c (33:446c) + ld a, [hSGB] and a ld a, $e0 jr z, .asm_cc475 @@ -673,7 +673,7 @@ BattleAnimCmd_DF: ; cc46c (33:446c) ld [wcfc8], a ret -BattleAnimCmd_E5: ; cc479 (33:4479) +BattleAnimCmd_ClearObjs: ; cc479 (33:4479) ld hl, OTPartyMon3HP ld a, $a0 .asm_cc47e @@ -683,11 +683,11 @@ BattleAnimCmd_E5: ; cc479 (33:4479) jr nz, .asm_cc47e ret -BattleAnimCmd_D1: -BattleAnimCmd_D2: -BattleAnimCmd_D3: -BattleAnimCmd_D4: -BattleAnimCmd_D5: ; cc485 (33:4485) +BattleAnimCmd_1GFX: +BattleAnimCmd_2GFX: +BattleAnimCmd_3GFX: +BattleAnimCmd_4GFX: +BattleAnimCmd_5GFX: ; cc485 (33:4485) ld a, [BattleAnimByte] and $f ld c, a @@ -722,7 +722,7 @@ endr jr nz, .asm_cc492 ret -BattleAnimCmd_D6: ; cc4c0 (33:44c0) +BattleAnimCmd_IncObj: ; cc4c0 (33:44c0) call GetBattleAnimByte ld e, $a ld bc, OTPartyMon3HP @@ -746,7 +746,7 @@ BattleAnimCmd_D6: ; cc4c0 (33:44c0) inc [hl] ret -BattleAnimCmd_D8: ; cc4e3 (33:44e3) +BattleAnimCmd_IncBGEffect: ; cc4e3 (33:44e3) call GetBattleAnimByte ld e, $5 ld bc, ActiveBGEffects @@ -770,7 +770,7 @@ BattleAnimCmd_D8: ; cc4e3 (33:44e3) inc [hl] ret -BattleAnimCmd_D7: ; cc506 (33:4506) +BattleAnimCmd_SetObj: ; cc506 (33:4506) call GetBattleAnimByte ld e, $a ld bc, OTPartyMon3HP @@ -795,7 +795,7 @@ BattleAnimCmd_D7: ; cc506 (33:4506) ld [hl], a ret -BattleAnimCmd_D9: ; cc52c (33:452c) +BattleAnimCmd_EnemyFeetObj: ; cc52c (33:452c) ld hl, w5_d300 .asm_cc52f @@ -851,7 +851,7 @@ Functioncc561: ; cc561 (33:4561) jr nz, Functioncc561 ret -BattleAnimCmd_DA: ; cc57e (33:457e) +BattleAnimCmd_PlayerHeadObj: ; cc57e (33:457e) ld hl, w5_d300 .asm_cc581 @@ -907,7 +907,7 @@ Functioncc5b3: ; cc5b3 (33:45b3) jr nz, Functioncc5b3 ret -BattleAnimCmd_DB: ; cc5d0 (33:45d0) +BattleAnimCmd_CheckPokeball: ; cc5d0 (33:45d0) callab GetPokeBallWobble ld a, c ld [BattleAnimVar], a @@ -916,15 +916,15 @@ BattleAnimCmd_DB: ; cc5d0 (33:45d0) BattleAnimCmd_E7: ; cc5db (33:45db) ret -BattleAnimCmd_DC: ; cc5dc (33:45dc) - ld a, [rSVBK] ; $ff00+$70 +BattleAnimCmd_Transform: ; cc5dc (33:45dc) + ld a, [rSVBK] push af ld a, 1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [CurPartySpecies] ; CurPartySpecies push af - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr z, .player @@ -948,13 +948,13 @@ BattleAnimCmd_DC: ; cc5dc (33:45dc) pop af ld [CurPartySpecies], a ; CurPartySpecies pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret -BattleAnimCmd_E8: ; cc622 (33:4622) +BattleAnimCmd_UpdateActorPic: ; cc622 (33:4622) ld de, VTiles0 tile $00 - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr z, .player @@ -971,12 +971,12 @@ BattleAnimCmd_E8: ; cc622 (33:4622) call Request2bpp ret -BattleAnimCmd_DD: ; cc640 (33:4640) +BattleAnimCmd_RaiseSub: ; cc640 (33:4640) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, 1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a call GetSRAMBank @@ -992,7 +992,7 @@ GetSubstitutePic: ; cc64c or b jr nz, .loop - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr z, .player @@ -1037,7 +1037,7 @@ GetSubstitutePic: ; cc64c .done call CloseSRAM pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret CopyMonsterSpriteTile: ; cc6c6 (33:46c6) @@ -1046,18 +1046,18 @@ CopyMonsterSpriteTile: ; cc6c6 (33:46c6) call FarCopyBytes ret -BattleAnimCmd_E2: ; cc6cf (33:46cf) - ld a, [rSVBK] ; $ff00+$70 +BattleAnimCmd_MinimizeOpp: ; cc6cf (33:46cf) + ld a, [rSVBK] push af ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a call GetSRAMBank call GetMinimizePic call Request2bpp call CloseSRAM pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret GetMinimizePic: ; cc6e7 (33:46e7) @@ -1071,7 +1071,7 @@ GetMinimizePic: ; cc6e7 (33:46e7) or b jr nz, .loop - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr z, .player @@ -1102,11 +1102,11 @@ MinimizePic: ; cc725 INCBIN "gfx/battle/minimize.2bpp" ; cc735 -BattleAnimCmd_E9: ; cc735 (33:4735) - ld a, [rSVBK] ; $ff00+$70 +BattleAnimCmd_Minimize: ; cc735 (33:4735) + ld a, [rSVBK] push af ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a call GetSRAMBank call GetMinimizePic @@ -1114,18 +1114,18 @@ BattleAnimCmd_E9: ; cc735 (33:4735) call Request2bpp call CloseSRAM pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret -BattleAnimCmd_DE: ; cc750 (33:4750) - ld a, [rSVBK] ; $ff00+$70 +BattleAnimCmd_DropSub: ; cc750 (33:4750) + ld a, [rSVBK] push af ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [CurPartySpecies] ; CurPartySpecies push af - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr z, .player @@ -1139,21 +1139,21 @@ BattleAnimCmd_DE: ; cc750 (33:4750) pop af ld [CurPartySpecies], a ; CurPartySpecies pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret -BattleAnimCmd_E6: ; cc776 (33:4776) - ld a, [rSVBK] ; $ff00+$70 +BattleAnimCmd_BeatUp: ; cc776 (33:4776) + ld a, [rSVBK] push af ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [CurPartySpecies] ; CurPartySpecies push af ld a, [wKickCounter] ld [CurPartySpecies], a ; CurPartySpecies - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr z, .player @@ -1175,20 +1175,20 @@ BattleAnimCmd_E6: ; cc776 (33:4776) ld b, $1 call GetSGBLayout pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret -BattleAnimCmd_E3: ; cc7bb (33:47bb) +BattleAnimCmd_OAMOn: ; cc7bb (33:47bb) xor a - ld [hOAMUpdate], a ; $ff00+$d8 + ld [hOAMUpdate], a ret -BattleAnimCmd_E4: ; cc7bf (33:47bf) +BattleAnimCmd_OAMOff: ; cc7bf (33:47bf) ld a, $1 - ld [hOAMUpdate], a ; $ff00+$d8 + ld [hOAMUpdate], a ret -BattleAnimCmd_F4: ; cc7c4 (33:47c4) +BattleAnimCmd_ClearSprites: ; cc7c4 (33:47c4) ld hl, BattleAnimFlags set 3, [hl] ret @@ -1202,7 +1202,7 @@ BattleAnimCmd_F6: ; cc7cb (33:47cb) BattleAnimCmd_F7: ; cc7cc (33:47cc) ret -BattleAnimCmd_E0: ; cc7cd (33:47cd) +BattleAnimCmd_Sound: ; cc7cd (33:47cd) call GetBattleAnimByte ld e, a srl a @@ -1232,7 +1232,7 @@ Datacc7f8: ; cc7f8 ; cc7fc Functioncc7fc: ; cc7fc (33:47fc) - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr nz, .enemy @@ -1244,7 +1244,7 @@ Functioncc7fc: ; cc7fc (33:47fc) xor 1 ret -BattleAnimCmd_E1: ; cc807 (33:4807) +BattleAnimCmd_Cry: ; cc807 (33:4807) call GetBattleAnimByte and 3 ld e, a @@ -1254,12 +1254,12 @@ rept 4 add hl, de endr - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, 1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr nz, .enemy @@ -1316,7 +1316,7 @@ endr .done pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret ; cc871 (33:4871) diff --git a/battle/anim_objects.asm b/battle/anim_objects.asm index 943b550b3..3fc6e7c7d 100644 --- a/battle/anim_objects.asm +++ b/battle/anim_objects.asm @@ -946,14 +946,14 @@ endr Functioncd249: ; cd249 (33:5249) ld hl, Unknown_cd26c - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [CurItem] ; CurItem ld e, a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a .asm_cd25a ld a, [hli] cp $ff @@ -1694,7 +1694,7 @@ Jumptable_cd66d: ; cd66d (33:566d) Functioncd677: ; cd677 (33:5677) call Functionce72c ld a, $42 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a ld a, $58 ld [hLCDStatCustom + 1], a ld a, $5e @@ -1753,7 +1753,7 @@ Functioncd6c6: ; cd6c6 (33:56c6) cp $70 jr c, asm_cd6da xor a - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a ld [hLCDStatCustom + 1], a ld [hLCDStatCustom + 2], a @@ -2839,7 +2839,7 @@ Jumptable_cdcc6: ; cdcc6 (33:5cc6) Functioncdcca: ; cdcca (33:5cca) - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr z, .asm_cdcd9 ld hl, $b @@ -3842,7 +3842,7 @@ Jumptable_ce258: ; ce258 (33:6258) Functionce260: ; ce260 (33:6260) call Functionce72c - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and a jr nz, .asm_ce26c ld a, $f0 @@ -3893,7 +3893,7 @@ Functionce29f: ; ce29f (33:629f) srl a ld e, a ld d, $0 - ld a, [hSGB] ; $ff00+$e7 + ld a, [hSGB] and a jr nz, .asm_ce2b6 ld hl, Unknown_ce2c4 diff --git a/battle/anims.asm b/battle/anims.asm index 51b3448b2..d18cfff43 100644 --- a/battle/anims.asm +++ b/battle/anims.asm @@ -303,10 +303,11 @@ BattleAnim_SweetScent2: ; c929c ; c92c1 BattleAnim_ThrowPokeBall: ; c92c1 - anim_jumpif $0, BattleAnim_ThrowPokeBall_branch_c92f2 - anim_jumpif $1, BattleAnim_ThrowPokeBall_branch_c9347 - anim_jumpif $2, BattleAnim_ThrowPokeBall_branch_c9305 - anim_jumpif $4, BattleAnim_ThrowPokeBall_branch_c9326 + anim_jumpif NO_ITEM, .TheTrainerBlockedTheBall + anim_jumpif MASTER_BALL, .MasterBall + anim_jumpif ULTRA_BALL, .UltraBall + anim_jumpif GREAT_BALL, .GreatBall + ; any other ball anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE anim_sound $1a, SFX_THROW_BALL anim_obj $15, 68, 92, $40 @@ -317,10 +318,10 @@ BattleAnim_ThrowPokeBall: ; c92c1 anim_sound $1, SFX_BALL_POOF anim_obj $1c, 136, 64, $10 anim_wait 16 - anim_jump BattleAnim_ThrowPokeBall_branch_c9392 + anim_jump .Shake ; c92f2 -BattleAnim_ThrowPokeBall_branch_c92f2: ; c92f2 +.TheTrainerBlockedTheBall: ; c92f2 anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_HIT anim_sound $1a, SFX_THROW_BALL anim_obj $16, 64, 92, $20 @@ -330,7 +331,7 @@ BattleAnim_ThrowPokeBall_branch_c92f2: ; c92f2 anim_ret ; c9305 -BattleAnim_ThrowPokeBall_branch_c9305: ; c9305 +.UltraBall: ; c9305 anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE anim_sound $1a, SFX_THROW_BALL anim_obj $15, 68, 92, $40 @@ -341,10 +342,10 @@ BattleAnim_ThrowPokeBall_branch_c9305: ; c9305 anim_sound $1, SFX_BALL_POOF anim_obj $1c, 136, 64, $10 anim_wait 16 - anim_jump BattleAnim_ThrowPokeBall_branch_c9392 + anim_jump .Shake ; c9326 -BattleAnim_ThrowPokeBall_branch_c9326: ; c9326 +.GreatBall: ; c9326 anim_2gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE anim_sound $1a, SFX_THROW_BALL anim_obj $15, 68, 92, $40 @@ -355,10 +356,10 @@ BattleAnim_ThrowPokeBall_branch_c9326: ; c9326 anim_sound $1, SFX_BALL_POOF anim_obj $1c, 136, 64, $10 anim_wait 16 - anim_jump BattleAnim_ThrowPokeBall_branch_c9392 + anim_jump .Shake ; c9347 -BattleAnim_ThrowPokeBall_branch_c9347: ; c9347 +.MasterBall: ; c9347 anim_3gfx ANIM_GFX_POKE_BALL, ANIM_GFX_SMOKE, ANIM_GFX_SPEED anim_sound $1a, SFX_THROW_BALL anim_obj $15, 64, 92, $20 @@ -379,7 +380,7 @@ BattleAnim_ThrowPokeBall_branch_c9347: ; c9347 anim_obj $2b, 136, 56, $36 anim_obj $2b, 136, 56, $37 anim_wait 64 -BattleAnim_ThrowPokeBall_branch_c9392: ; c9392 +.Shake: ; c9392 anim_bgeffect ANIM_BG_RETURN_MON, $0, $0, $0 anim_wait 8 anim_incobj $2 @@ -393,22 +394,22 @@ BattleAnim_ThrowPokeBall_branch_c9392: ; c9392 anim_wait 32 anim_wait 8 anim_setvar $0 -BattleAnim_ThrowPokeBall_branch_c93aa: ; c93aa +.Loop: ; c93aa anim_wait 48 anim_checkpokeball - anim_jumpvar $1, BattleAnim_ThrowPokeBall_branch_c93bc - anim_jumpvar $2, BattleAnim_ThrowPokeBall_branch_c93be + anim_jumpvar $1, .Click + anim_jumpvar $2, .BreakFree anim_incobj $1 anim_sound $1, SFX_BALL_WIGGLE - anim_jump BattleAnim_ThrowPokeBall_branch_c93aa + anim_jump .Loop ; c93bc -BattleAnim_ThrowPokeBall_branch_c93bc: ; c93bc +.Click: ; c93bc anim_clearsprites anim_ret ; c93be -BattleAnim_ThrowPokeBall_branch_c93be: ; c93be +.BreakFree: ; c93be anim_setobj $1, $b anim_sound $1, SFX_BALL_POOF anim_obj $1c, 136, 64, $10 diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm index f7245ce3b..96e51db2f 100644 --- a/battle/bg_effects.asm +++ b/battle/bg_effects.asm @@ -343,14 +343,14 @@ Functionc81c0: ; c81c0 (32:41c0) call ClearBox pop bc xor a - ld [hBGMapThird], a ; $ff00+$d5 + ld [hBGMapThird], a ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Functionc81e3: ; c81e3 (32:41e3) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call EndBattleBGEffect ret @@ -441,13 +441,13 @@ Functionc825a: ; c825a (32:425a) .asm_c8271 call ClearBox ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a pop bc ret Functionc827a: ; c827a (32:427a) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call EndBattleBGEffect ret @@ -507,13 +507,13 @@ Functionc82c7: ; c82c7 (32:42c7) .asm_c82de call ClearBox ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a pop bc ret Functionc82e7: ; c82e7 (32:42e7) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call EndBattleBGEffect ret @@ -595,9 +595,9 @@ Functionc831d: ; c831d (32:431d) jr nz, .asm_c8344 .asm_c8355 xor a - ld [hBGMapThird], a ; $ff00+$d5 + ld [hBGMapThird], a ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Functionc80e5 ld hl, $3 add hl, bc @@ -606,7 +606,7 @@ Functionc831d: ; c831d (32:431d) Functionc8365: ; c8365 (32:4365) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld hl, $3 add hl, bc ld a, [hl] @@ -723,7 +723,7 @@ endr .asm_c841d call Functionc80e5 ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret .asm_c8425 call Functionc843b @@ -731,7 +731,7 @@ endr Functionc842a: ; c842a (32:442a) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld hl, $1 add hl, bc ld [hl], $0 @@ -739,7 +739,7 @@ Functionc842a: ; c842a (32:442a) Functionc8434: ; c8434 (32:4434) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call EndBattleBGEffect ret @@ -902,7 +902,7 @@ Functionc854e: ; c854e (32:454e) call Functionc8f69 Functionc8557: ; c8557 (32:4557) - ld a, [hLCDStatCustom] ; $ff00+$c6 + ld a, [hLCDStatCustom] and a ret z push bc @@ -967,7 +967,7 @@ Functionc85a2: ; c85a2 (32:45a2) call Functionc80e5 call Functionc8eca ld a, $42 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a xor a ld [hLCDStatCustom + 1], a ld a, $5e @@ -1042,7 +1042,7 @@ Functionc8610: ; c8610 (32:4610) call Functionc80e5 call Functionc8eca ld a, $43 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a xor a ld [hLCDStatCustom + 1], a ld a, $5f @@ -1530,7 +1530,7 @@ Functionc88a5: ; c88a5 (32:48a5) sub d ld d, a ld h, LYOverridesBackup / $100 - ld a, [hSCY] ; $ff00+$d0 + ld a, [hSCY] or a jr nz, .asm_c88d0 ld a, [hLCDStatCustom + 1] @@ -1546,7 +1546,7 @@ Functionc88a5: ; c88a5 (32:48a5) ld l, a ld [hl], $0 .asm_c88d6 - ld a, [hSCY] ; $ff00+$d0 + ld a, [hSCY] ld l, a ld a, [hLCDStatCustom + 1] sub l @@ -1953,7 +1953,7 @@ Functionc8ae5: ; c8ae5 (32:4ae5) ret Functionc8b00: ; c8b00 (32:4b00) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jr nz, asm_c8b7a call Functionc80d7 ; ; ; call does not return @@ -1969,7 +1969,7 @@ Functionc8b0e: ; c8b0e (32:4b0e) ld a, $e4 call Functionc8ecb ld a, $47 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a xor a ld [hLCDStatCustom + 1], a ld a, $60 @@ -2266,7 +2266,7 @@ Functionc8cab: ; c8cab (32:4cab) call Functionc80e5 call Functionc8eca ld a, $43 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a xor a ld [hLCDStatCustom + 1], a ld a, $37 @@ -2307,7 +2307,7 @@ Functionc8ce1: ; c8ce1 (32:4ce1) push af call DelayFrame pop af - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a xor $ff inc a ld [OTPartyMon3SpclAtk], a @@ -2318,7 +2318,7 @@ Functionc8cf9: ; c8cf9 (32:4cf9) jr nc, .asm_c8cff xor a .asm_c8cff - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ret Functionc8d02: ; c8d02 (32:4d02) @@ -2326,7 +2326,7 @@ Functionc8d02: ; c8d02 (32:4d02) jr nc, .asm_c8d08 xor a .asm_c8d08 - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret Functionc8d0b: ; c8d0b (32:4d0b) @@ -2373,7 +2373,7 @@ Functionc8d3a: ; c8d3a (32:4d3a) jr nc, .asm_c8d53 ld d, $6 call Functionc905d - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld hl, $3 add hl, bc ld a, [hl] @@ -2382,7 +2382,7 @@ Functionc8d3a: ; c8d3a (32:4d3a) ret .asm_c8d53 xor a - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ret Functionc8d57: ; c8d57 (32:4d57) @@ -2410,7 +2410,7 @@ Functionc8d57: ; c8d57 (32:4d57) ret Functionc8d77: ; c8d77 (32:4d77) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jr nz, asm_c8dd4 push de @@ -2469,7 +2469,7 @@ Functionc8daa: ; c8daa (32:4daa) Functionc8dc9: ; c8dc9 (32:4dc9) call Functionc8f19 ld a, $e4 - ld [rBGP], a ; $ff00+$47 + ld [rBGP], a call EndBattleBGEffect ret asm_c8dd4: ; c8dd4 (32:4dd4) @@ -2563,10 +2563,10 @@ Functionc8e49: ; c8e49 (32:4e49) Functionc8e52: ; c8e52 (32:4e52) ld h, a - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, h push bc push af @@ -2583,17 +2583,17 @@ Functionc8e52: ; c8e52 (32:4e52) call CopyPals pop bc pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret Functionc8e7f: ; c8e7f (32:4e7f) ld h, a - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, h push bc push af @@ -2610,9 +2610,9 @@ Functionc8e7f: ; c8e7f (32:4e7f) call CopyPals pop bc pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret Functionc8eac: ; c8eac (32:4eac) @@ -2660,7 +2660,7 @@ Functionc8ecb: ; c8ecb (32:4ecb) ret Functionc8ede: ; c8ede (32:4ede) - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a call Functionc9038 jr nz, .asm_c8eea ld de, $36 @@ -2675,7 +2675,7 @@ Functionc8ede: ; c8ede (32:4ede) ret Functionc8ef4: ; c8ef4 (32:4ef4) - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a call Functionc9038 jr nz, .asm_c8f00 ld de, $36 @@ -2695,15 +2695,15 @@ Functionc8f0a: ; c8f0a (32:4f0a) ld [hLCDStatCustom + 2], a call Functionc8eca xor a - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a call EndBattleBGEffect ret Functionc8f19: ; c8f19 (32:4f19) xor a - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a ld a, $e4 - ld [rBGP], a ; $ff00+$47 + ld [rBGP], a ld [wcfc7], a ld [wcfc9], a ld [hLCDStatCustom + 1], a @@ -2902,7 +2902,7 @@ Functionc901b: ; c901b (32:501b) Functionc9038: ; c9038 (32:5038) ld hl, $2 add hl, bc - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and $1 xor [hl] ret @@ -2910,7 +2910,7 @@ Functionc9038: ; c9038 (32:5038) Functionc9042: ; c9042 (32:5042) ld hl, $2 add hl, bc - ld a, [hBattleTurn] ; $ff00+$e4 + ld a, [hBattleTurn] and $1 xor [hl] jr nz, .asm_c9053 @@ -2923,7 +2923,7 @@ Functionc9042: ; c9042 (32:5042) ret Functionc9059: ; c9059 (32:5059) - ld a, [hSGB] ; $ff00+$e7 + ld a, [hSGB] and a ret diff --git a/battle/core.asm b/battle/core.asm index f57940db6..39d7d1102 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -174,8 +174,8 @@ Function3c12f: ; 3c12f ld [wPlayerIsSwitching], a ld [wEnemyIsSwitching], a ld [wd264], a - ld [wc73f], a - ld [wc740], a + ld [wPlayerJustGotFrozen], a + ld [wEnemyJustGotFrozen], a ld [CurDamage], a ld [CurDamage + 1], a @@ -1604,19 +1604,21 @@ HandleFutureSight: ; 3ca26 HanleDefrost: ; 3ca8f ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3ca9a - call .asm_3ca9d - jr .asm_3cac9 + jr z, .enemy_first + call .do_player_turn + jr .do_enemy_turn -.asm_3ca9a - call .asm_3cac9 -.asm_3ca9d +.enemy_first + call .do_enemy_turn +.do_player_turn ld a, [BattleMonStatus] bit FRZ, a ret z - ld a, [wc73f] + + ld a, [wPlayerJustGotFrozen] and a ret nz + call BattleRandom cp 10 percent ret nc @@ -1631,11 +1633,11 @@ HanleDefrost: ; 3ca8f ld hl, DefrostedOpponentText jp StdBattleTextBox -.asm_3cac9 +.do_enemy_turn ld a, [EnemyMonStatus] bit FRZ, a ret z - ld a, [wc740] + ld a, [wEnemyJustGotFrozen] and a ret nz call BattleRandom @@ -3654,9 +3656,9 @@ LoadEnemyPkmnToSwitchTo: ; 3d6ca ld hl, EnemyMonHP ld a, [hli] - ld [wc6ea], a + ld [wEnemyHPAtTimeOfPlayerSwitch], a ld a, [hl] - ld [wc6eb], a + ld [wEnemyHPAtTimeOfPlayerSwitch + 1], a ret ; 3d714 @@ -3814,7 +3816,7 @@ endr ld [EnemyProtectCount], a ld [wEnemyRageCounter], a ld [EnemyDisabledMove], a - ld [wc6fa], a + ld [wEnemyMinimized], a ld [wPlayerWrapCount], a ld [wEnemyWrapCount], a ld [EnemyTurnsTaken], a @@ -4317,7 +4319,7 @@ endr ld [PlayerProtectCount], a ld [wPlayerRageCounter], a ld [DisabledMove], a - ld [wc6fe], a + ld [wPlayerMinimized], a ld [wEnemyWrapCount], a ld [wPlayerWrapCount], a ld [PlayerTurnsTaken], a @@ -5166,9 +5168,9 @@ BattleMenu: ; 3e139 ; Auto input: choose "ITEM" ld a, [InputType] or a - jr z, .asm_3e171 + jr z, .skip_dude_pack_select callba _DudeAutoInput_DownA -.asm_3e171 +.skip_dude_pack_select call LoadBattleMenu2 ret c @@ -5242,26 +5244,26 @@ BattleMenu_Pack: ; 3e1c7 callba BattlePack ld a, [wd0ec] and a - jr z, .asm_3e20d - jr .asm_3e209 + jr z, .didnt_use_item + jr .got_item .tutorial callba Function107bb ld a, POKE_BALL ld [CurItem], a call DoItemEffect - jr .asm_3e209 + jr .got_item .contest ld a, PARK_BALL ld [CurItem], a call DoItemEffect -.asm_3e209 +.got_item call Function3e234 ret -.asm_3e20d +.didnt_use_item call ClearPalettes call DelayFrame call Function3ed9f @@ -7862,7 +7864,7 @@ Function3f136: ; 3f136 ld e, a push de ld de, TempMonExp + 2 - call Function3f39c + call CalcExpBar push bc ld hl, TempMonExp + 2 ld a, [wd004] @@ -7950,7 +7952,7 @@ endr push bc ld b, d ld de, TempMonExp + 2 - call Function3f39c + call CalcExpBar ld a, b pop bc ld c, a @@ -7986,7 +7988,7 @@ Function3f22c: ; 3f22c push bc push de hlcoord 17, 11 - call Function3f41c + call PlaceExpBar pop de ld a, $1 ld [hBGMapMode], a @@ -8002,7 +8004,7 @@ Function3f22c: ; 3f22c push bc push de hlcoord 17, 11 - call Function3f41c + call PlaceExpBar pop de ld a, $1 ld [hBGMapMode], a @@ -8030,32 +8032,33 @@ Function3f22c: ; 3f22c SendOutPkmnText: ; 3f26d ld a, [wLinkMode] and a - jr z, .asm_3f27c + jr z, .not_linked ld hl, JumpText_GoPkmn ; If we're in a LinkBattle print just "Go " - ld a, [wd264] ; besides this variable is set. which stands for ??? + ld a, [wd264] ; unless this (unidentified) variable is set and a - jr nz, .asm_3f2ce + jr nz, .skip_to_textbox -.asm_3f27c +.not_linked ; Depending on the HP of the enemy Pkmn, the game prints a different text ld hl, EnemyMonHP ld a, [hli] or [hl] ld hl, JumpText_GoPkmn - jr z, .asm_3f2ce + jr z, .skip_to_textbox + ; compute enemy helth remaining as a percentage xor a ld [hMultiplicand + 0], a ld hl, EnemyMonHP ld a, [hli] - ld [wc6ea], a + ld [wEnemyHPAtTimeOfPlayerSwitch], a ld [hMultiplicand + 1], a ld a, [hl] - ld [wc6eb], a + ld [wEnemyHPAtTimeOfPlayerSwitch + 1], a ld [hMultiplicand + 2], a - ld a, $19 + ld a, 25 ld [hMultiplier], a call Multiply ld hl, EnemyMonMaxHP @@ -8066,22 +8069,25 @@ SendOutPkmnText: ; 3f26d srl a rr b ld a, b - ld b, $4 + ld b, 4 ld [hDivisor], a call Divide + ld a, [hQuotient + 2] ld hl, JumpText_GoPkmn - cp $46 - jr nc, .asm_3f2ce + cp 70 + jr nc, .skip_to_textbox + ld hl, JumpText_DoItPkmn - cp $28 - jr nc, .asm_3f2ce + cp 40 + jr nc, .skip_to_textbox + ld hl, JumpText_GoForItPkmn - cp $a - jr nc, .asm_3f2ce - ld hl, JumpText_YourFoesWeakGetmPkmn + cp 10 + jr nc, .skip_to_textbox -.asm_3f2ce + ld hl, JumpText_YourFoesWeakGetmPkmn +.skip_to_textbox jp BattleTextBox ; 3f2d1 @@ -8130,13 +8136,13 @@ TextJump_BattleMonNickComma: ; 3f2fa start_asm ; 3f2ff -Function3f2ff: ; 3f2ff +WithdrawPkmnText: ; 3f2ff ; Print text to withdraw Pkmn ; depending on HP the message is different push de push bc ld hl, EnemyMonHP + 1 - ld de, wc6eb + ld de, wEnemyHPAtTimeOfPlayerSwitch + 1 ld b, [hl] dec hl ld a, [de] @@ -8147,7 +8153,7 @@ Function3f2ff: ; 3f2ff ld a, [de] sbc b ld [hMultiplicand + 1], a - ld a, $19 + ld a, 25 ld [hMultiplier], a call Multiply ld hl, EnemyMonMaxHP @@ -8158,7 +8164,7 @@ Function3f2ff: ; 3f2ff srl a rr b ld a, b - ld b, $4 + ld b, 4 ld [hDivisor], a call Divide pop bc @@ -8169,11 +8175,11 @@ Function3f2ff: ; 3f2ff ret z ld hl, TextJump_ComeBack - cp $1e + cp 30 ret c ld hl, TextJump_OKComeBack - cp $46 + cp 70 ret c ld hl, TextJump_GoodComeBack @@ -8207,23 +8213,23 @@ TextJump_ComeBack: ; 3f35b ; 3f360 -Function3f360: ; 3f360 - ld hl, wc6f0 +HandleSafariAngerEatingStatus: ; unreferenced + ld hl, wSafariMonEating ld a, [hl] and a - jr z, .asm_3f36d + jr z, .angry dec [hl] ld hl, BattleText_WildPkmnIsEating - jr .asm_3f388 + jr .finish -.asm_3f36d - dec hl +.angry + dec hl ; wSafariMonAngerCount ld a, [hl] and a ret z dec [hl] ld hl, BattleText_WildPkmnIsAngry - jr nz, .asm_3f388 + jr nz, .finish push hl ld a, [EnemyMonSpecies] ld [CurSpecies], a @@ -8232,7 +8238,7 @@ Function3f360: ; 3f360 ld [EnemyMonCatchRate], a pop hl -.asm_3f388 +.finish push hl call Call_LoadTempTileMapToTileMap pop hl @@ -8242,19 +8248,22 @@ Function3f360: ; 3f360 FillInExpBar: ; 3f390 push hl - call Function3f39c + call CalcExpBar pop hl - ld de, $0007 + ld de, 7 add hl, de - jp Function3f41c + jp PlaceExpBar ; 3f39c -Function3f39c: ; 3f39c +CalcExpBar: ; 3f39c +; Calculate the percent exp between this level and the next +; Level in b push de ld d, b push de callab CalcExpAtLevel pop de +; exp at current level gets pushed to the stack ld hl, hMultiplicand ld a, [hli] push af @@ -8262,16 +8271,18 @@ Function3f39c: ; 3f39c push af ld a, [hl] push af +; next level inc d callab CalcExpAtLevel - ld hl, hProduct + 3 +; back up the next level exp, and subtract the two levels + ld hl, hMultiplicand + 2 ld a, [hl] - ld [hPrintNum8], a + ld [hMathBuffer + 2], a pop bc sub b ld [hld], a ld a, [hl] - ld [hPrintNum7], a + ld [hMathBuffer + 1], a pop bc sbc b ld [hld], a @@ -8281,21 +8292,24 @@ Function3f39c: ; 3f39c sbc b ld [hl], a pop de - ld hl, hProduct + 2 + + ld hl, hMultiplicand + 1 ld a, [hli] push af ld a, [hl] push af + +; get the amount of exp remaining to the next level ld a, [de] dec de ld c, a - ld a, [hPrintNum8] + ld a, [hMathBuffer + 2] sub c ld [hld], a ld a, [de] dec de ld b, a - ld a, [hPrintNum7] + ld a, [hMathBuffer + 1] sbc b ld [hld], a ld a, [de] @@ -8305,6 +8319,7 @@ Function3f39c: ; 3f39c ld [hld], a xor a ld [hl], a +; multiply by 64 ld a, $40 ld [hMultiplier], a call Multiply @@ -8312,10 +8327,10 @@ Function3f39c: ; 3f39c ld c, a pop af ld b, a -.asm_3f3f4 +.loop ld a, b and a - jr z, .asm_3f40c + jr z, .done srl b rr c ld hl, hProduct @@ -8326,12 +8341,12 @@ Function3f39c: ; 3f39c rr [hl] inc hl rr [hl] - jr .asm_3f3f4 + jr .loop -.asm_3f40c +.done ld a, c ld [hDivisor], a - ld b, $4 + ld b, 4 call Divide ld a, [hQuotient + 2] ld b, a @@ -8341,49 +8356,49 @@ Function3f39c: ; 3f39c ret ; 3f41c -Function3f41c: ; 3f41c - ld c, $8 -.asm_3f41e +PlaceExpBar: ; 3f41c + ld c, $8 ; number of tiles +.loop1 ld a, b sub $8 - jr c, .asm_3f42c + jr c, .next ld b, a - ld a, $6a + ld a, $6a ; full bar ld [hld], a dec c - jr z, .asm_3f43c - jr .asm_3f41e + jr z, .finish + jr .loop1 -.asm_3f42c +.next add $8 - jr z, .asm_3f434 - add $54 - jr .asm_3f436 + jr z, .loop2 + add $54 ; tile to the left of small exp bar tile + jr .skip -.asm_3f434 - ld a, $62 +.loop2 + ld a, $62 ; empty bar -.asm_3f436 +.skip ld [hld], a - ld a, $62 + ld a, $62 ; empty bar dec c - jr nz, .asm_3f434 + jr nz, .loop2 -.asm_3f43c +.finish ret ; 3f43d GetMonBackpic: ; 3f43d ld a, [PlayerSubStatus4] bit SUBSTATUS_SUBSTITUTE, a - ld hl, BattleAnimCmd_DD - jr nz, Function3f46f ; substitute + ld hl, BattleAnimCmd_RaiseSub + jr nz, GetBackpic_DoAnim ; substitute Function3f447: ; 3f447 - ld a, [wc6fe] + ld a, [wPlayerMinimized] and a - ld hl, BattleAnimCmd_E2 - jr nz, Function3f46f + ld hl, BattleAnimCmd_MinimizeOpp + jr nz, GetBackpic_DoAnim ld a, [CurPartySpecies] push af ld a, [BattleMonSpecies] @@ -8397,7 +8412,7 @@ Function3f447: ; 3f447 ret ; 3f46f -Function3f46f: ; 3f46f +GetBackpic_DoAnim: ; 3f46f ld a, [hBattleTurn] push af xor a @@ -8412,14 +8427,14 @@ Function3f46f: ; 3f46f GetMonFrontpic: ; 3f47c ld a, [EnemySubStatus4] bit SUBSTATUS_SUBSTITUTE, a - ld hl, BattleAnimCmd_DD - jr nz, Function3f4b4 + ld hl, BattleAnimCmd_RaiseSub + jr nz, GetFrontpic_DoAnim Function3f486: ; 3f486 - ld a, [wc6fa] + ld a, [wEnemyMinimized] and a - ld hl, BattleAnimCmd_E2 - jr nz, Function3f4b4 + ld hl, BattleAnimCmd_MinimizeOpp + jr nz, GetFrontpic_DoAnim ld a, [CurPartySpecies] push af @@ -8436,7 +8451,7 @@ Function3f486: ; 3f486 ret ; 3f4b4 -Function3f4b4: ; 3f4b4 +GetFrontpic_DoAnim: ; 3f4b4 ld a, [hBattleTurn] push af call SetEnemyTurn diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 871518331..ed1fb85a1 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -5361,13 +5361,14 @@ BattleCommand_FreezeTarget: ; 36102 callba UseHeldStatusHealingItem ret nz + call OpponentCantMove call EndRechargeOpp - ld hl, wc740 + ld hl, wEnemyJustGotFrozen ld a, [hBattleTurn] and a jr z, .finish - ld hl, wc73f + ld hl, wPlayerJustGotFrozen .finish ld [hl], $1 ret @@ -5582,12 +5583,12 @@ CheckIfStatCanBeRaised: ; 361ef StatUpAnimation: ; 36281 - ld bc, wc6fe + ld bc, wPlayerMinimized ld hl, Function3f447 ld a, [hBattleTurn] and a jr z, .do_player ; 0x3628a $6 - ld bc, wc6fa + ld bc, wEnemyMinimized ld hl, Function3f486 .do_player ld a, BATTLE_VARS_MOVE_ANIM @@ -8338,9 +8339,9 @@ endr jr c, .mimic_anims ld a, [hBattleTurn] and a - ld a, [wc6fe] + ld a, [wPlayerMinimized] jr z, .got_byte - ld a, [wc6fa] + ld a, [wEnemyMinimized] .got_byte and a jr nz, .mimic_anims @@ -9528,11 +9529,11 @@ BattleCommand_MirrorCoat: ; 37c95 BattleCommand_DoubleMinimizeDamage: ; 37ce6 ; doubleminimizedamage - ld hl, wc6fa + ld hl, wEnemyMinimized ld a, [hBattleTurn] and a jr z, .ok - ld hl, wc6fe + ld hl, wPlayerMinimized .ok ld a, [hl] and a diff --git a/battle/misc.asm b/battle/misc.asm index 429e4aae6..d47573df9 100644 --- a/battle/misc.asm +++ b/battle/misc.asm @@ -1,7 +1,7 @@ _DisappearUser: ; fbd54 xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld a, [hBattleTurn] ; $ff00+$e4 + ld [hBGMapMode], a + ld a, [hBattleTurn] and a jr z, .player call GetEnemyFrontpicCoords @@ -21,8 +21,8 @@ _AppearUserLowerSub: ; fbd71 (3e:7d71) AppearUser: ; fbd77 (3e:7d77) xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld a, [hBattleTurn] ; $ff00+$e4 + ld [hBGMapMode], a + ld a, [hBattleTurn] and a jr z, .player call GetEnemyFrontpicCoords @@ -36,7 +36,7 @@ AppearUser: ; fbd77 (3e:7d77) predef FillBox FinishAppearDisappearUser: ; fbd91 (3e:7d91) ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret GetEnemyFrontpicCoords: ; fbd96 (3e:7d96) diff --git a/constants/animation_constants.asm b/constants/animation_constants.asm index 5bc9b7b06..27cb1f319 100644 --- a/constants/animation_constants.asm +++ b/constants/animation_constants.asm @@ -48,53 +48,3 @@ ANIM_BG_WOBBLE_MON EQU $34 const ANIM_MON_UNUSED ; 6 const ANIM_MON_EGG1 ; 7 const ANIM_MON_EGG2 ; 8 - -const_value SET $d0 - const BATTLEANIM_D0 - const BATTLEANIM_D1 - const BATTLEANIM_D2 - const BATTLEANIM_D3 - const BATTLEANIM_D4 - const BATTLEANIM_D5 - const BATTLEANIM_D6 - const BATTLEANIM_D7 - const BATTLEANIM_D8 - const BATTLEANIM_D9 - const BATTLEANIM_DA - const BATTLEANIM_DB - const BATTLEANIM_DC - const BATTLEANIM_DD - const BATTLEANIM_DE - const BATTLEANIM_DF - const BATTLEANIM_E0 - const BATTLEANIM_E1 - const BATTLEANIM_E2 - const BATTLEANIM_E3 - const BATTLEANIM_E4 - const BATTLEANIM_E5 - const BATTLEANIM_E6 - const BATTLEANIM_E7 - const BATTLEANIM_E8 - const BATTLEANIM_E9 - const BATTLEANIM_EA - const BATTLEANIM_EB - const BATTLEANIM_EC - const BATTLEANIM_ED - const BATTLEANIM_EE - const BATTLEANIM_EF - const BATTLEANIM_F0 - const BATTLEANIM_F1 - const BATTLEANIM_F2 - const BATTLEANIM_F3 - const BATTLEANIM_F4 - const BATTLEANIM_F5 - const BATTLEANIM_F6 - const BATTLEANIM_F7 - const BATTLEANIM_F8 - const BATTLEANIM_F9 - const BATTLEANIM_FA - const BATTLEANIM_FB - const BATTLEANIM_FC - const BATTLEANIM_FD - const BATTLEANIM_FE - const BATTLEANIM_FF diff --git a/engine/battle_start.asm b/engine/battle_start.asm index 4b12bb632..181f4135f 100644 --- a/engine/battle_start.asm +++ b/engine/battle_start.asm @@ -254,7 +254,7 @@ StartTrainerBattle_SetUpBGMap: ; 8c3a1 (23:43a1) call StartTrainerBattle_NextScene xor a ld [wcf64], a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret StartTrainerBattle_Flash: ; 8c3ab (23:43ab) @@ -309,10 +309,10 @@ StartTrainerBattle_Flash: ; 8c3ab (23:43ab) StartTrainerBattle_SetUpForWavyOutro: ; 8c3e8 (23:43e8) callba Function5602 ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call StartTrainerBattle_NextScene ld a, $43 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a xor a ld [hLCDStatCustom + 1], a ld a, $90 @@ -365,7 +365,7 @@ StartTrainerBattle_SineWave: ; 8c408 (23:4408) StartTrainerBattle_SetUpForSpinOutro: ; 8c43d (23:443d) callba Function5602 ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call StartTrainerBattle_NextScene xor a ld [wcf64], a @@ -386,7 +386,7 @@ ENDM StartTrainerBattle_SpinToBlack: ; 8c44f (23:444f) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, [wcf64] ld e, a ld d, 0 @@ -400,7 +400,7 @@ endr ld [wcf65], a call .load ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame ld hl, wcf64 @@ -409,12 +409,12 @@ endr .end ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame call DelayFrame xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $20 ld [wJumptableIndex], a ret @@ -508,12 +508,12 @@ endr StartTrainerBattle_SetUpForRandomScatterOutro: ; 8c578 (23:4578) callba Function5602 ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call StartTrainerBattle_NextScene ld a, $10 ld [wcf64], a ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret StartTrainerBattle_SpeckleToBlack: ; 8c58f (23:458f) @@ -533,12 +533,12 @@ StartTrainerBattle_SpeckleToBlack: ; 8c58f (23:458f) .done ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame call DelayFrame xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $20 ld [wJumptableIndex], a ret @@ -580,7 +580,7 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) jp z, .nextscene xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 0, 0, AttrMap ld bc, SCREEN_HEIGHT * SCREEN_WIDTH inc b @@ -636,11 +636,11 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) dec b jr nz, .loop2 - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jr nz, .cgb ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame jr .nextscene @@ -653,10 +653,10 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) jr nz, .daytime ld hl, .nightpals .daytime - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 ; WRAM5 = palettes - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call .copypals push hl ld de, Unkn1Pals + 8 * 7 @@ -667,9 +667,9 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) ld bc, $8 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a call DelayFrame call Function8cf4f @@ -829,7 +829,7 @@ StartTrainerBattle_ZoomToBlack: ; 8c768 (23:4768) inc de ld h, a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call .Copy call WaitBGMap jr .loop diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm new file mode 100755 index 000000000..3b71b0601 --- /dev/null +++ b/engine/breeding/egg.asm @@ -0,0 +1,976 @@ +Function16e1d: ; 16e1d + call Function16ed6 + ld c, $0 + jp nc, .asm_16eb7 + ld a, [wBreedMon1Species] + ld [CurPartySpecies], a + ld a, [wBreedMon1DVs] + ld [TempMonDVs], a + ld a, [wBreedMon1DVs + 1] + ld [TempMonDVs + 1], a + ld a, $3 + ld [MonType], a + predef GetGender + jr c, .asm_16e70 + ld b, $1 + jr nz, .asm_16e48 + inc b + +.asm_16e48 + push bc + ld a, [wBreedMon2Species] + ld [CurPartySpecies], a + ld a, [wBreedMon2DVs] + ld [TempMonDVs], a + ld a, [wBreedMon2DVs + 1] + ld [TempMonDVs + 1], a + ld a, $3 + ld [MonType], a + predef GetGender + pop bc + jr c, .asm_16e70 + ld a, $1 + jr nz, .asm_16e6d + inc a + +.asm_16e6d + cp b + jr nz, .asm_16e89 + +.asm_16e70 + ld c, $0 + ld a, [wBreedMon1Species] + cp DITTO + jr z, .asm_16e82 + ld a, [wBreedMon2Species] + cp DITTO + jr nz, .asm_16eb7 + jr .asm_16e89 + +.asm_16e82 + ld a, [wBreedMon2Species] + cp DITTO + jr z, .asm_16eb7 + +.asm_16e89 + call Function16ebc + ld c, $ff + jp z, .asm_16eb7 + ld a, [wBreedMon2Species] + ld b, a + ld a, [wBreedMon1Species] + cp b + ld c, $fe + jr z, .asm_16e9f + ld c, $80 +.asm_16e9f + ld a, [wBreedMon1ID] + ld b, a + ld a, [wBreedMon2ID] + cp b + jr nz, .asm_16eb7 + ld a, [wBreedMon1ID + 1] + ld b, a + ld a, [wBreedMon2ID + 1] + cp b + jr nz, .asm_16eb7 + ld a, c + sub $4d + ld c, a + +.asm_16eb7 + ld a, c + ld [wd265], a + ret +; 16ebc + + +Function16ebc: ; 16ebc (5:6ebc) + ld a, [wBreedMon1DVs] + and $f + ld b, a + ld a, [wBreedMon2DVs] + and $f + cp b + ret nz + ld a, [wBreedMon1DVs + 1] + and $7 + ld b, a + ld a, [wBreedMon2DVs + 1] + and $7 + cp b + ret +; 16ed6 + +Function16ed6: ; 16ed6 + ld a, [wBreedMon2Species] + ld [CurSpecies], a + call GetBaseData + ld a, [BaseEggGroups] + cp $ff + jr z, .asm_16f3a + ld a, [wBreedMon1Species] + ld [CurSpecies], a + call GetBaseData + ld a, [BaseEggGroups] + cp $ff + jr z, .asm_16f3a + ld a, [wBreedMon2Species] + cp DITTO + jr z, .asm_16f3c + ld [CurSpecies], a + call GetBaseData + ld a, [BaseEggGroups] + push af + and $f + ld b, a + pop af + and $f0 + swap a + ld c, a + ld a, [wBreedMon1Species] + cp DITTO + jr z, .asm_16f3c + ld [CurSpecies], a + push bc + call GetBaseData + pop bc + ld a, [BaseEggGroups] + push af + and $f + ld d, a + pop af + and $f0 + swap a + ld e, a + ld a, d + cp b + jr z, .asm_16f3c + cp c + jr z, .asm_16f3c + ld a, e + cp b + jr z, .asm_16f3c + cp c + jr z, .asm_16f3c + +.asm_16f3a + and a + ret + +.asm_16f3c + scf + ret +; 16f3e + +DoEggStep:: ; 16f3e + ld de, PartySpecies + ld hl, PartyMon1Happiness + ld c, 0 +.loop + ld a, [de] + inc de + cp -1 + ret z + cp EGG + jr nz, .next + dec [hl] + jr nz, .next + ld a, 1 + and a + ret + +.next + push de + ld de, PARTYMON_STRUCT_LENGTH + add hl, de + pop de + jr .loop +; 16f5e + +OverworldHatchEgg:: ; 16f5e + call ResetWindow + call LoadPartyMenuDataHeader + call Function16f70 + call Function2b4d + call RestartMapMusic + jp LoadMoveSprites +; 16f70 + +Function16f70: ; 16f70 (5:6f70) + ld de, PartySpecies + ld hl, PartyMon1Happiness + xor a + ld [CurPartyMon], a + +Function16f7a: ; 16f7a (5:6f7a) + ld a, [de] + inc de + cp -1 + jp z, Function1708a + push de + push hl + cp EGG + jp nz, Function1707d + ld a, [hl] + and a + jp nz, Function1707d + ld [hl], $78 + + push de + + callba Function4dbb8 + callba MobileFn_10608d + ld a, [CurPartyMon] + ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + ld a, [hl] + ld [CurPartySpecies], a + dec a + call SetSeenAndCaughtMon + + ld a, [CurPartySpecies] + cp TOGEPI + jr nz, .nottogepi + ; set the event flag for hatching togepi + ld de, EVENT_TOGEPI_HATCHED + ld b, SET_FLAG + call EventFlagAction +.nottogepi + + pop de + + ld a, [CurPartySpecies] + dec de + ld [de], a + ld [wd265], a + ld [CurSpecies], a + call GetPokemonName + xor a + ld [wd26b], a + call GetBaseData + ld a, [CurPartyMon] + ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + push hl + ld bc, MON_MAXHP + add hl, bc + ld d, h + ld e, l + pop hl + push hl + ld bc, MON_LEVEL + add hl, bc + ld a, [hl] + ld [CurPartyLevel], a + pop hl + push hl + ld bc, MON_STATUS + add hl, bc + xor a + ld [hli], a + ld [hl], a + pop hl + push hl + ld bc, MON_EXP + 2 + add hl, bc + ld b, $0 + predef CalcPkmnStats + pop bc + ld hl, MON_MAXHP + add hl, bc + ld d, h + ld e, l + ld hl, MON_HP + add hl, bc + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + ld hl, MON_ID + add hl, bc + ld a, [PlayerID] + ld [hli], a + ld a, [PlayerID + 1] + ld [hl], a + ld a, [CurPartyMon] + ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) + ld bc, NAME_LENGTH + call AddNTimes + ld d, h + ld e, l + ld hl, PlayerName + call CopyBytes + ld hl, UnknownText_0x1708b + call PrintText + ld a, [CurPartyMon] + ld hl, PartyMonNicknames + ld bc, PKMN_NAME_LENGTH + call AddNTimes + ld d, h + ld e, l + push de + ld hl, UnknownText_0x170ba + call PrintText + call YesNoBox + pop de + jr c, .nonickname + ld a, $1 + ld [wd26b], a + xor a + ld [MonType], a + push de + ld b, $0 + callba Function116c1 + pop hl + ld de, StringBuffer1 + call InitName + jr Function1707d +.nonickname + ld hl, StringBuffer1 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + +Function1707d: ; 1707d (5:707d) + ld hl, CurPartyMon + inc [hl] + pop hl + ld de, PARTYMON_STRUCT_LENGTH + add hl, de + pop de + jp Function16f7a + +Function1708a: ; 1708a (5:708a) + ret +; 1708b (5:708b) + +UnknownText_0x1708b: ; 0x1708b + ; Huh? @ @ + text_jump UnknownText_0x1c0db0 + start_asm +; 0x17090 + +Function17090: ; 17090 + ld hl, VramState + res 0, [hl] + push hl + push de + push bc + ld a, [CurPartySpecies] + push af + call Function1728f + ld hl, UnknownText_0x170b0 + call PrintText + pop af + ld [CurPartySpecies], a + pop bc + pop de + pop hl + ld hl, UnknownText_0x170b5 + ret +; 170b0 (5:70b0) + +UnknownText_0x170b0: ; 0x170b0 + ; + text_jump UnknownText_0x1c0db8 + db "@" +; 0x170b5 + +UnknownText_0x170b5: ; 0x170b5 + ; came out of its EGG!@ @ + text_jump UnknownText_0x1c0dba + db "@" +; 0x170ba + +UnknownText_0x170ba: ; 0x170ba + ; Give a nickname to @ ? + text_jump UnknownText_0x1c0dd8 + db "@" +; 0x170bf + +Function170bf: ; 170bf + call Function17197 + ld d, h + ld e, l + ld b, NUM_MOVES +.loop + ld a, [de] + and a + jr z, .done + ld hl, wEggMonMoves + ld c, NUM_MOVES +.next + ld a, [de] + cp [hl] + jr z, .skip + inc hl + dec c + jr nz, .next + call Function170e4 + jr nc, .skip + call Function17169 + +.skip + inc de + dec b + jr nz, .loop + +.done + ret +; 170e4 + +Function170e4: ; 170e4 +GLOBAL EggMoves + + push bc + ld a, [wEggMonSpecies] + dec a + ld c, a + ld b, 0 + ld hl, EggMovePointers +rept 2 + add hl, bc +endr + ld a, BANK(EggMovePointers) + call GetFarHalfword +.loop + ld a, BANK(EggMoves) + call GetFarByte + cp -1 + jr z, .found_mon + ld b, a + ld a, [de] + cp b + jr z, .done_carry + inc hl + jr .loop + +.found_mon + call Function1720b + ld b, NUM_MOVES +.loop2 + ld a, [de] + cp [hl] + jr z, .found_eggmove + inc hl + dec b + jr z, .inherit_tmhm + jr .loop2 + +.found_eggmove + ld a, [wEggMonSpecies] + dec a + ld c, a + ld b, 0 + ld hl, EvosAttacksPointers +rept 2 + add hl, bc +endr + ld a, BANK(EvosAttacksPointers) + call GetFarHalfword +.loop3 + ld a, BANK(EvosAttacks) + call GetFarByte + inc hl + and a + jr nz, .loop3 +.loop4 + ld a, BANK(EvosAttacks) + call GetFarByte + and a + jr z, .inherit_tmhm + inc hl + ld a, BANK(EvosAttacks) + call GetFarByte + ld b, a + ld a, [de] + cp b + jr z, .done_carry + inc hl + jr .loop4 + +.inherit_tmhm + ld hl, TMHMMoves +.loop5 + ld a, BANK(TMHMMoves) + call GetFarByte + inc hl + and a + jr z, .done + ld b, a + ld a, [de] + cp b + jr nz, .loop5 + ld [wd262], a + predef CanLearnTMHMMove + ld a, c + and a + jr z, .done + +.done_carry + pop bc + scf + ret + +.done + pop bc + and a + ret +; 17169 + +Function17169: ; 17169 + push de + push bc + ld a, [de] + ld b, a + ld hl, wEggMonMoves + ld c, NUM_MOVES +.loop + ld a, [hli] + and a + jr z, .done + dec c + jr nz, .loop + ld de, wEggMonMoves + ld hl, wEggMonMoves + 1 + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + +.done + dec hl + ld [hl], b + ld hl, wEggMonMoves + ld de, wEggMonPP + predef FillPP + pop bc + pop de + ret +; 17197 + +Function17197: ; 17197 + ld hl, wBreedMon2Moves + ld a, [wBreedMon1Species] + cp DITTO + jr z, .ditto1 + ld a, [wBreedMon2Species] + cp DITTO + jr z, .ditto2 + ld a, [wDittoInDaycare] + and a + ret z + ld hl, wBreedMon1Moves + ret + +.ditto1 + ld a, [CurPartySpecies] + push af + ld a, [wBreedMon2Species] + ld [CurPartySpecies], a + ld a, [wBreedMon2DVs] + ld [TempMonDVs], a + ld a, [wBreedMon2DVs + 1] + ld [TempMonDVs + 1], a + ld a, $3 + ld [MonType], a + predef GetGender + jr c, .inherit_mon2_moves + jr nz, .inherit_mon2_moves + jr .inherit_mon1_moves + +.ditto2 + ld a, [CurPartySpecies] + push af + ld a, [wBreedMon1Species] + ld [CurPartySpecies], a + ld a, [wBreedMon1DVs] + ld [TempMonDVs], a + ld a, [wBreedMon1DVs + 1] + ld [TempMonDVs + 1], a + ld a, $3 + ld [MonType], a + predef GetGender + jr c, .inherit_mon1_moves + jr nz, .inherit_mon1_moves + +.inherit_mon2_moves + ld hl, wBreedMon2Moves + pop af + ld [CurPartySpecies], a + ret + +.inherit_mon1_moves + ld hl, wBreedMon1Moves + pop af + ld [CurPartySpecies], a + ret +; 1720b + +Function1720b: ; 1720b + ld hl, wBreedMon1Moves + ld a, [wBreedMon1Species] + cp DITTO + ret z + ld a, [wBreedMon2Species] + cp DITTO + jr z, .ditto + ld a, [wDittoInDaycare] + and a + ret z + +.ditto + ld hl, wBreedMon2Moves + ret +; 17224 + + +Function17224: ; 17224 (5:7224) + push de + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + ld hl, BattleMonDVs + predef GetUnownLetter + pop de + predef_jump GetFrontpic + +Function1723c: ; 1723c (5:723c) + push de + ld [CurPartySpecies], a + ld [CurSpecies], a + call GetBaseData + ld hl, BattleMonDVs + predef GetUnownLetter + pop de + predef_jump Function5108b + +Function17254: ; 17254 (5:7254) + push af + call WaitTop + push hl + push bc + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, " " + call ByteFill + pop bc + pop hl + ld a, b + ld [hBGMapAddress + 1], a + ld a, c + ld [hFillBox], a + lb bc, 7, 7 + predef FillBox + pop af + call Function17363 + call SetPalettes + jp WaitBGMap + +Function1727f: ; 1727f (5:727f) + push hl + push de + push bc + callab Function8cf69 + call DelayFrame + pop bc + pop de + pop hl + ret + +Function1728f: ; 1728f (5:728f) + ld a, [wd265] + ld [wJumptableIndex], a + ld a, [CurSpecies] + push af + ld de, MUSIC_NONE + call PlayMusic + callba Function8000 + call DisableLCD + ld hl, EggHatchGFX + ld de, VTiles0 tile $00 + ld bc, $20 + ld a, BANK(EggHatchGFX) + call FarCopyBytes + callba Function8cf53 + ld de, VTiles2 tile $00 + ld a, [wJumptableIndex] + call Function1723c + ld de, VTiles2 tile $31 + ld a, EGG + call Function17224 + ld de, MUSIC_EVOLUTION + call PlayMusic + call EnableLCD + hlcoord 7, 4 + ld b, $98 + ld c, $31 + ld a, EGG + call Function17254 + ld c, $50 + call DelayFrames + xor a + ld [wcf64], a + ld a, [hSCX] + ld b, a +.asm_172ee + ld hl, wcf64 + ld a, [hl] + inc [hl] + cp $8 + jr nc, .asm_17327 + ld e, [hl] +.asm_172f8 + ld a, $2 + ld [hSCX], a + ld a, $fe + ld [wc3c0], a + call Function1727f + ld c, $2 + call DelayFrames + ld a, $fe + ld [hSCX], a + ld a, $2 + ld [wc3c0], a + call Function1727f + ld c, $2 + call DelayFrames + dec e + jr nz, .asm_172f8 + ld c, $10 + call DelayFrames + call Function1736d + jr .asm_172ee +.asm_17327 + ld de, SFX_EGG_HATCH + call PlaySFX + xor a + ld [hSCX], a + ld [wc3c0], a + call ClearSprites + call Function173b3 + hlcoord 6, 3 + ld b, $98 + ld c, $0 + ld a, [wJumptableIndex] + call Function17254 + call Function17418 + call WaitSFX + ld a, [wJumptableIndex] + ld [CurPartySpecies], a + hlcoord 6, 3 + ld d, $0 + ld e, ANIM_MON_HATCH + predef AnimateFrontpic + pop af + ld [CurSpecies], a + ret + +Function17363: ; 17363 (5:7363) + ld [PlayerHPPal], a + ld b, $b + ld c, $0 + jp GetSGBLayout + +Function1736d: ; 1736d (5:736d) + ld a, [wcf64] + dec a + and $7 + cp $7 + ret z + srl a + ret nc + swap a + srl a + add $4c + ld d, a + ld e, $58 + ld a, $19 + call Function3b2a + ld hl, $3 + add hl, bc + ld [hl], $0 + ld de, SFX_EGG_CRACK + jp PlaySFX +; 17393 (5:7393) + +EggHatchGFX: ; 17393 +INCBIN "gfx/unknown/017393.2bpp" +; 173b3 + +Function173b3: ; 173b3 (5:73b3) + callba Function8cf53 + ld hl, Unknown_173ef +.loop + ld a, [hli] + cp $ff + jr z, .done + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + push hl + push bc + ld a, $1c + call Function3b2a + ld hl, $3 + add hl, bc + ld [hl], $0 + pop de + ld a, e + ld hl, $1 + add hl, bc + add [hl] + ld [hl], a + ld hl, $b + add hl, bc + ld [hl], d + pop hl + jr .loop +.done + ld de, SFX_EGG_HATCH + call PlaySFX + call Function1727f + ret +; 173ef (5:73ef) + +Unknown_173ef: ; 173ef +; Probably OAM. + db $54, $48, $00, $3c + db $5c, $48, $01, $04 + db $54, $50, $00, $30 + db $5c, $50, $01, $10 + db $54, $58, $02, $24 + db $5c, $58, $03, $1c + db $50, $4c, $00, $36 + db $60, $4c, $01, $0a + db $50, $54, $02, $2a + db $60, $54, $03, $16 + db $ff +; 17418 + +Function17418: ; 17418 (5:7418) + ld c, $81 +.asm_1741a + call Function1727f + dec c + jr nz, .asm_1741a + ret + +Special_DayCareMon1: ; 17421 + ld hl, UnknownText_0x17467 + call PrintText + ld a, [wBreedMon1Species] + call PlayCry + ld a, [wDaycareLady] + bit 0, a + jr z, Function1745f + call KeepTextOpen + ld hl, wBreedMon2Nick + call Function1746c + jp PrintText + +Special_DayCareMon2: ; 17440 + ld hl, UnknownText_0x17462 + call PrintText + ld a, [wBreedMon2Species] + call PlayCry + ld a, [wDaycareMan] + bit 0, a + jr z, Function1745f + call KeepTextOpen + ld hl, wBreedMon1Nick + call Function1746c + jp PrintText + +Function1745f: ; 1745f + jp Functiona80 +; 17462 + +UnknownText_0x17462: ; 0x17462 + ; It's @ that was left with the DAY-CARE LADY. + text_jump UnknownText_0x1c0df3 + db "@" +; 0x17467 + +UnknownText_0x17467: ; 0x17467 + ; It's @ that was left with the DAY-CARE MAN. + text_jump UnknownText_0x1c0e24 + db "@" +; 0x1746c + +Function1746c: ; 1746c + push bc + ld de, StringBuffer1 + ld bc, NAME_LENGTH + call CopyBytes + call Function16e1d + pop bc + ld a, [wd265] + ld hl, UnknownText_0x1749c + cp $ff + jr z, .asm_1749b + ld hl, UnknownText_0x174a1 + and a + jr z, .asm_1749b + ld hl, UnknownText_0x174a6 + cp 230 + jr nc, .asm_1749b + cp 70 + ld hl, UnknownText_0x174ab + jr nc, .asm_1749b + ld hl, UnknownText_0x174b0 + +.asm_1749b + ret +; 1749c + +UnknownText_0x1749c: ; 0x1749c + ; It's brimming with energy. + text_jump UnknownText_0x1c0e54 + db "@" +; 0x174a1 + +UnknownText_0x174a1: ; 0x174a1 + ; It has no interest in @ . + text_jump UnknownText_0x1c0e6f + db "@" +; 0x174a6 + +UnknownText_0x174a6: ; 0x174a6 + ; It appears to care for @ . + text_jump UnknownText_0x1c0e8d + db "@" +; 0x174ab + +UnknownText_0x174ab: ; 0x174ab + ; It's friendly with @ . + text_jump UnknownText_0x1c0eac + db "@" +; 0x174b0 + +UnknownText_0x174b0: ; 0x174b0 + ; It shows interest in @ . + text_jump UnknownText_0x1c0ec6 + db "@" +; 0x174b5 + +Function_174b5: ; 174b5 + ld hl, String_174b9 + ret +; 174b9 + +String_174b9: ; 174b9 + db "@" +; 174ba + diff --git a/engine/clock_reset.asm b/engine/clock_reset.asm index eedcae836..3d2ca2708 100755 --- a/engine/clock_reset.asm +++ b/engine/clock_reset.asm @@ -72,9 +72,9 @@ RestartClock: ; 20021 (8:4021) call UpdateTime call GetWeekday ld [Buffer4], a - ld a, [hHours] ; $ff00+$94 + ld a, [hHours] ld [Buffer5], a - ld a, [hMinutes] ; $ff00+$96 + ld a, [hMinutes] ld [Buffer6], a .loop @@ -223,7 +223,7 @@ RestartClock: ; 20021 (8:4021) .unreferenced: ; 20160 ld a, [Buffer3] ld b, a - call GetTileCoord + call Coord2Tile ret ; 20168 @@ -233,7 +233,7 @@ RestartClock: ; 20021 (8:4021) ld a, [Buffer3] dec a ld b, a - call GetTileCoord + call Coord2Tile pop de ld [hl], d ld bc, 2 * SCREEN_WIDTH diff --git a/engine/credits.asm b/engine/credits.asm index 473a851be..f03950d69 100644 --- a/engine/credits.asm +++ b/engine/credits.asm @@ -300,7 +300,7 @@ Function109956: ; 109956 (42:5956) Function10995e: ; 10995e (42:595e) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a jp Function109951 Function109964: ; 109964 (42:5964) @@ -317,13 +317,13 @@ Function109964: ; 109964 (42:5964) Function10997b: ; 10997b (42:597b) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $8 ld [Requested2bpp], a jp Function109951 Function109986: ; 109986 (42:5986) - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $30 jr c, Function109986 ld a, [wcf66] @@ -523,9 +523,9 @@ endr Function109a95: ; 109a95 (42:5a95) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $c - ld [hBGMapAddress], a ; $ff00+$d6 + ld [hBGMapAddress], a ld a, $28 hlcoord 0, 0 ld bc, $168 @@ -558,8 +558,8 @@ Function109a95: ; 109a95 (42:5a95) call ByteFill call Function3200 xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld [hBGMapAddress], a ; $ff00+$d6 + ld [hBGMapMode], a + ld [hBGMapAddress], a hlcoord 0, 0 call Function109aff call Function3200 diff --git a/engine/link.asm b/engine/link.asm index 585b5061a..ce89389f8 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1813,7 +1813,7 @@ Function28b87: ; 28b87 ld a, [hli] ld [wc6fd], a ld a, [hl] - ld [wc6fe], a + ld [wPlayerMinimized], a ld a, [DefaultFlypoint] ld hl, PartyMon1Species call GetPartyLocation @@ -2810,7 +2810,7 @@ Function2942e: ; 2942e ld [CurPartySpecies], a ld a, [wc6fd] ld [TempMonDVs], a - ld a, [wc6fe] + ld a, [wPlayerMinimized] ld [TempMonDVs + 1], a ld b, $1a call GetSGBLayout diff --git a/engine/map_objects.asm b/engine/map_objects.asm index ae661a392..bc1ce4a67 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -2995,7 +2995,7 @@ Function56cd: ; 56cd jr nc, .ok8 ld c, a push bc - call GetTileCoord + call Coord2Tile pop bc ld a, [hl] cp $60 diff --git a/engine/menu.asm b/engine/menu.asm index c1d2949d0..a1ec30b7a 100755 --- a/engine/menu.asm +++ b/engine/menu.asm @@ -1,5 +1,5 @@ Function2400e:: ; 2400e - ld hl, Function1c66 + ld hl, CopyMenuData2 ld a, [wcf94] rst FarCall call Function24085 @@ -10,7 +10,7 @@ Function2400e:: ; 2400e ; 24022 Function24022:: ; 24022 - ld hl, Function1c66 + ld hl, CopyMenuData2 ld a, [wcf94] rst FarCall call Function24085 @@ -22,7 +22,7 @@ Function24022:: ; 24022 ; 2403c Function2403c:: ; 2403c - ld hl, Function1c66 + ld hl, CopyMenuData2 ld a, [wcf94] rst FarCall call Function24085 @@ -126,8 +126,8 @@ Function240db: ; 240db ld e, [hl] inc hl ld d, [hl] - call Function1cc6 - call GetTileCoord + call GetMenuTextStartCoord + call Coord2Tile call Function240d3 ld b, a .asm_240eb @@ -166,7 +166,7 @@ Function240db: ; 240db Function2411a: ; 2411a (9:411a) - call Function1cc6 + call GetMenuTextStartCoord ld a, b ld [wcfa1], a dec c @@ -538,7 +538,7 @@ Function24329: ; 24329 ld b, a ld a, [wcfa2] ld c, a - call GetTileCoord + call Coord2Tile ld a, [wcfa7] swap a and $f diff --git a/engine/pack.asm b/engine/pack.asm index d5878b7dd..9150610e6 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -44,7 +44,7 @@ Jumptable_10030: ; 10030 (4:4030) Function10046: ; 10046 (4:4046) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function10955 ld a, [wcf64] ld [wJumptableIndex], a @@ -113,7 +113,7 @@ Function100d3: ; 100d3 (4:40d3) call ClearPocketList call DrawPocketName xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call WaitBGMap_DrawPackGFX call Function10866 ret @@ -203,7 +203,7 @@ Function10159: ; 10159 ld [Options], a .asm_10179 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function10955 call WaitBGMap_DrawPackGFX call Function10a40 @@ -478,7 +478,7 @@ Function10311: ; 10311 jr z, .NoPokemon call DoItemEffect xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function10955 call WaitBGMap_DrawPackGFX call Function10a40 @@ -634,7 +634,7 @@ Function103fd: ; 103fd pop af ld [Options], a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function10955 call WaitBGMap_DrawPackGFX call Function10a40 @@ -702,7 +702,7 @@ Jumptable_104c3: ; 104c3 (4:44c3) Function104d9: ; 104d9 (4:44d9) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function10955 ld a, [wcf64] ld [wJumptableIndex], a @@ -771,7 +771,7 @@ Function10566: ; 10566 (4:4566) call ClearPocketList call DrawPocketName xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call WaitBGMap_DrawPackGFX ld hl, UnknownText_0x10b0c call Function10889 @@ -915,7 +915,7 @@ Function105dc: ; 105dc (4:45dc) and a jr nz, .asm_1067e xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function10955 call WaitBGMap_DrawPackGFX call Function10a40 diff --git a/engine/phone.asm b/engine/phone.asm index 0ba5cf6e1..32481deaa 100644 --- a/engine/phone.asm +++ b/engine/phone.asm @@ -182,7 +182,7 @@ ChooseRandomCaller: ; 900bf (24:40bf) ; Sample a random number between 0 and 31. ld c, a call Random - ld a, [hRandomAdd] ; $ff00+$e1 + ld a, [hRandomAdd] swap a and $1f ; Compute that number modulo the number of available callers. diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 01ea1c7c2..9a9e01f8a 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -209,7 +209,7 @@ Function40136: ; 40136 (10:4136) Function4013c: ; 4013c (10:413c) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call ClearSprites xor a hlcoord 0, 0, AttrMap @@ -226,7 +226,7 @@ Function4013c: ; 4013c (10:413c) call Function41af7 call Function4074c ld a, $5 - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, [wc7d4] cp $1 ld a, $4a @@ -234,9 +234,9 @@ Function4013c: ; 4013c (10:413c) ld a, $47 .asm_4017b - ld [hWX], a ; $ff00+$d1 + ld [hWX], a xor a - ld [hWY], a ; $ff00+$d2 + ld [hWY], a call WaitBGMap call Function41af7 ld a, $ff @@ -272,7 +272,7 @@ Function401ae: ; 401ae (10:41ae) ret nc call Function41148 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function40b0f call Function41ad7 call Function41af7 @@ -293,9 +293,9 @@ Function401ae: ; 401ae (10:41ae) ld a, $7 ld [wJumptableIndex], a xor a - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, $a7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a call DelayFrame ret @@ -304,9 +304,9 @@ Function401ae: ; 401ae (10:41ae) ld a, $5 ld [wJumptableIndex], a xor a - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, $a7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a call DelayFrame ret @@ -320,7 +320,7 @@ Function40217: ; 40217 (10:4217) xor a ld [wPokedexStatus], a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call ClearSprites call Function41478 call Function407fd @@ -331,7 +331,7 @@ Function40217: ; 40217 (10:4217) call Function40ba0 call WaitBGMap ld a, $a7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a call Function40bb1 ld [CurPartySpecies], a ld a, $4 @@ -392,7 +392,7 @@ Function402aa: ; 402aa (10:42aa) xor a ld [wPokedexStatus], a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function407fd call Function4134f call Function41478 @@ -509,7 +509,7 @@ Function4038d: ; 4038d Function4039d: ; 4039d (10:439d) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call ClearSprites call Function4087c call Function4134f @@ -615,7 +615,7 @@ Function4043a: ; 4043a (10:443a) Function40443: ; 40443 (10:4443) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call ClearSprites call Function408f0 call Function4134f @@ -723,7 +723,7 @@ Function40501: ; 40501 Function4050a: ; 4050a (10:450a) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a xor a hlcoord 0, 0, AttrMap ld bc, $168 @@ -739,11 +739,11 @@ Function4050a: ; 4050a (10:450a) call Function41af7 call Function40962 ld a, $5 - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, $4a - ld [hWX], a ; $ff00+$d1 + ld [hWX], a xor a - ld [hWY], a ; $ff00+$d2 + ld [hWY], a call WaitBGMap call Function41af7 callba Function1de1d1 @@ -768,7 +768,7 @@ Function40562: ; 40562 (10:4562) ret nc call Function41281 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function40b0f call Function41ad7 call Function41af7 @@ -797,9 +797,9 @@ Function40562: ; 40562 (10:4562) ld a, $5 ld [wJumptableIndex], a xor a - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, $a7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ret Function405bd: ; 405bd (10:45bd) @@ -876,14 +876,14 @@ Function40610: ; 40610 (10:4610) .asm_40635 push af xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a pop af call Function40654 call Function41a58 call Function40658 callba Functionfba2e ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame ret @@ -1773,7 +1773,7 @@ String_40ee4: ; 40ee4 Function40f08: ; 40f08 (10:4f08) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 0, 12 ld bc, $412 call Function40ad5 @@ -1781,7 +1781,7 @@ Function40f08: ; 40f08 (10:4f08) hlcoord 1, 14 call PlaceString ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld c, $40 call DelayFrames ld de, SFX_CHANGE_DEX_MODE @@ -1861,7 +1861,7 @@ Function40f84: ; 40f84 Function40fa8: ; 40fa8 (10:4fa8) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 9, 3 ld bc, $408 ld a, $7f @@ -1873,7 +1873,7 @@ Function40fa8: ; 40fa8 (10:4fa8) hlcoord 9, 6 call Function40fcd ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Function40fcd: ; 40fcd (10:4fcd) @@ -2363,16 +2363,16 @@ Function413fe: ; 413fe (10:53fe) jp FillBoxWithByte Function41401: ; 41401 (10:5401) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Unkn1Pals ld bc, $40 xor a call ByteFill pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a Function41415: ; 41415 ld a, $ff diff --git a/engine/radio.asm b/engine/radio.asm index eff95c081..2ee550197 100644 --- a/engine/radio.asm +++ b/engine/radio.asm @@ -1679,15 +1679,15 @@ BuenasPassword1: ; b8f12 (2e:4f12) .PlayPassword: ; b8f22 (2e:4f22) call StartRadioStation - ld a, [hBGMapMode] ; $ff00+$d4 + ld a, [hBGMapMode] push af xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld de, String_b9171 hlcoord 2, 9 call PlaceString pop af - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld hl, UnknownText_0xb9182 ld a, BUENAS_PASSWORD_2 jp NextRadioLine @@ -1951,12 +1951,12 @@ BuenasPassword19: ; b9122 (2e:5122) jp NextRadioLine BuenasPassword20: ; b912a (2e:512a) - ld a, [hBGMapMode] ; $ff00+$d4 + ld a, [hBGMapMode] push af callba NoRadioMusic callba NoRadioName pop af - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld hl, WeeklyFlags res 7, [hl] ld a, BUENAS_PASSWORD @@ -1980,7 +1980,7 @@ BuenasPassword21: ; b9152 (2e:5152) BuenasPasswordCheckTime: ; b9169 (2e:5169) call UpdateTime - ld a, [hHours] ; $ff00+$94 + ld a, [hHours] cp 18 ; 6 PM ret ; b9171 (2e:5171) diff --git a/engine/radio2.asm b/engine/radio2.asm index 039631130..1d07c904c 100644 --- a/engine/radio2.asm +++ b/engine/radio2.asm @@ -371,7 +371,7 @@ NoRadioStation: ; 91888 (24:5888) ld [wc6da], a ld [wc6db], a ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret NoRadioMusic: ; 9189d (24:589d) @@ -383,7 +383,7 @@ NoRadioMusic: ; 9189d (24:589d) NoRadioName: ; 918a9 (24:58a9) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 1, 8 lb bc, 3, 18 call ClearBox diff --git a/event/buena.asm b/event/buena.asm index 0fabb81ac..fdbda9ceb 100644 --- a/event/buena.asm +++ b/event/buena.asm @@ -203,7 +203,7 @@ Function8b09e: ; 8b09e call CopyMenuDataHeader call MenuBox call UpdateSprites - call GetMemTileCoord + call MenuBoxCoord2Tile ld bc, $0015 add hl, bc ld de, .Points_string diff --git a/event/kurt.asm b/event/kurt.asm index 8304634c7..9d87430d3 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -166,7 +166,7 @@ Kurt_SelectQuantity: ; 880c2 db 0, 0, -1, 0 ; XXX .PlaceApricornName: ; 88116 - call GetMemTileCoord + call MenuBoxCoord2Tile ld de, $0015 add hl, de ld d, h @@ -176,7 +176,7 @@ Kurt_SelectQuantity: ; 880c2 ; 88126 PlaceApricornQuantity: ; 88126 - call GetMemTileCoord + call MenuBoxCoord2Tile ld de, $0032 add hl, de ld [hl], "×" diff --git a/event/unown.asm b/event/unown.asm index ef4dc0eaf..2d48dc695 100644 --- a/event/unown.asm +++ b/event/unown.asm @@ -125,7 +125,7 @@ Special_DisplayUnownWords: ; 8ae68 call MenuBox call UpdateSprites call Function321c - call GetMemTileCoord + call MenuBoxCoord2Tile inc hl ld d, $0 ld e, $14 diff --git a/home.asm b/home.asm index 8497891ef..b55d40a6e 100644 --- a/home.asm +++ b/home.asm @@ -1147,7 +1147,7 @@ GetMoveName:: ; 34f8 Function350c:: ; 350c - call Function1c66 + call CopyMenuData2 ld a, [hROMBank] push af @@ -1186,7 +1186,7 @@ Function352f:: ; 352f sub c ld e, a push de - call GetTileCoord + call Coord2Tile pop bc jp TextBox ; 354b @@ -2180,7 +2180,7 @@ Function3f6e:: ; 3f6e ; 3f7c Function3f7c:: ; 3f7c - call GetMemTileCoord + call MenuBoxCoord2Tile call GetMenuBoxDims dec b dec c diff --git a/home/menu.asm b/home/menu.asm index d23f9123c..74ecd7ce3 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -7,11 +7,11 @@ LoadMenuDataHeader:: ret CopyMenuDataHeader:: - ld de, wcf81 - ld bc, 16 + ld de, wMenuDataHeader + ld bc, wMenuDataHeaderEnd - wMenuDataHeader call CopyBytes ld a, [hROMBank] - ld [wcf8a], a + ld [wMenuDataBank], a ret ; 0x1d4b @@ -78,7 +78,7 @@ InterpretMenu2:: call UpdateSprites call Function1c89 call Function321c - call Function1c66 + call CopyMenuData2 ld a, [wMenuData2Flags] bit 7, a jr z, .cancel @@ -103,11 +103,11 @@ GetMenu2:: ; 1dab ret ; 1db8 -Function1db8:: +CopyNameFromMenu:: push hl push bc push af - ld hl, wcf86 + ld hl, wMenuData2Pointer ld a, [hli] ld h, [hl] ld l, a @@ -126,7 +126,7 @@ endr YesNoBox:: ; 1dcf - lb bc, 14, 7 + lb bc, SCREEN_WIDTH - 6, 7 PlaceYesNoBox:: ; 1dd2 jr _YesNoBox @@ -152,11 +152,11 @@ _YesNoBox:: ; 1dd9 .okay ld a, b ld [wMenuBorderLeftCoord], a - add $5 + add 5 ld [wMenuBorderRightCoord], a ld a, c ld [wMenuBorderTopCoord], a - add $4 + add 4 ld [wMenuBorderBottomCoord], a call BackUpTiles @@ -246,7 +246,7 @@ SetUpMenu:: ; 1e70 ret MenuFunc_1e7f:: - call Function1c66 + call CopyMenuData2 call Function1ebd call Function1ea6 call MenuBox @@ -310,7 +310,7 @@ Function1ebd:: ; 1ebd ; 1eda Function1eda:: ; 1eda - call GetMemTileCoord + call MenuBoxCoord2Tile ld bc, $002a add hl, bc .asm_1ee1 @@ -489,7 +489,7 @@ endr ResetTextRelatedRAM:: ; 1fbf ld hl, wcf71 call .bytefill - ld hl, wcf81 + ld hl, wMenuDataHeader call .bytefill ld hl, wMenuData2Flags call .bytefill @@ -527,7 +527,7 @@ Function1ff8:: ; 1ff8 push af and $3 jr z, .nosound - ld hl, wcf81 + ld hl, wMenuFlags bit 3, [hl] jr nz, .nosound call PlayClickSFX diff --git a/home/tilemap.asm b/home/tilemap.asm index 23cdfdd72..3153cea2c 100644 --- a/home/tilemap.asm +++ b/home/tilemap.asm @@ -22,9 +22,9 @@ WriteBackup:: ; 0x1c17 ret RestoreTileBackup:: ; 0x1c23 - call GetMemTileCoord + call MenuBoxCoord2Tile call .copy - call GetMemAttrCoord + call MenuBoxCoord2Attr call .copy ret ; 0x1c30 @@ -56,7 +56,7 @@ RestoreTileBackup:: ; 0x1c23 Function1c47:: ; 0x1c47 ld b, $10 - ld de, wcf81 + ld de, wMenuFlags .loop ld a, [hld] ld [de], a @@ -79,17 +79,17 @@ GetMenuBoxDims:: ; 0x1c53 ret ; 0x1c66 -Function1c66:: ; 1c66 +CopyMenuData2:: ; 1c66 push hl push de push bc push af - ld hl, wcf86 + ld hl, wMenuData2Pointer ld a, [hli] ld h, [hl] ld l, a ld de, wMenuData2Flags - ld bc, $0010 + ld bc, wMenuData2End - wMenuData2Flags call CopyBytes pop af pop bc @@ -111,30 +111,31 @@ Function1c7e:: ; 1c7e ; 1c89 Function1c89:: ; 1c89 - call Function1c66 - ld hl, wcf86 + call CopyMenuData2 + ld hl, wMenuData2Pointer ld e, [hl] inc hl ld d, [hl] - call Function1cc6 - call GetTileCoord + call GetMenuTextStartCoord + call Coord2Tile ; hl now contains the TileMap address where we will start printing text. inc de - ld a, [de] + ld a, [de] ; Number of items inc de ld b, a -.asm_1c9c +.loop push bc call PlaceString inc de - ld bc, $0028 + ld bc, 2 * SCREEN_WIDTH add hl, bc pop bc dec b - jr nz, .asm_1c9c + jr nz, .loop ld a, [wMenuData2Flags] bit 4, a ret z - call GetMemTileCoord + + call MenuBoxCoord2Tile ld a, [de] ld c, a inc de @@ -144,38 +145,40 @@ Function1c89:: ; 1c89 ; 1cbb MenuBox:: ; 1cbb - call GetMemTileCoord + call MenuBoxCoord2Tile call GetMenuBoxDims dec b dec c jp TextBox ; 1cc6 -Function1cc6:: ; 1cc6 +GetMenuTextStartCoord:: ; 1cc6 ld a, [wMenuBorderTopCoord] ld b, a inc b ld a, [wMenuBorderLeftCoord] ld c, a inc c +; bit 6: if not set, leave extra room on top ld a, [wMenuData2Flags] bit 6, a - jr nz, .asm_1cd8 + jr nz, .bit_6_set inc b -.asm_1cd8 +.bit_6_set +; bit 7: if set, leave extra room on the left ld a, [wMenuData2Flags] bit 7, a - jr z, .asm_1ce0 + jr z, .bit_7_clear inc c -.asm_1ce0 +.bit_7_clear ret ; 1ce1 -Function1ce1:: ; 1ce1 - call GetMemTileCoord - lb bc, 0, 21 +ClearMenuBoxInterior:: ; 1ce1 + call MenuBoxCoord2Tile + ld bc, SCREEN_WIDTH + 1 add hl, bc call GetMenuBoxDims dec b @@ -184,8 +187,8 @@ Function1ce1:: ; 1ce1 ret ; 1cf1 -Function1cf1:: ; 1cf1 - call GetMemTileCoord +ClearWholeMenuBox:: ; 1cf1 + call MenuBoxCoord2Tile call GetMenuBoxDims inc c inc b @@ -194,7 +197,7 @@ Function1cf1:: ; 1cf1 ; 1cfd -GetMemTileCoord:: ; 1cfd +MenuBoxCoord2Tile:: ; 1cfd ld a, [wMenuBorderLeftCoord] ld c, a ld a, [wMenuBorderTopCoord] @@ -202,7 +205,7 @@ GetMemTileCoord:: ; 1cfd ; 1d05 -GetTileCoord:: ; 1d05 +Coord2Tile:: ; 1d05 ; Return the address of TileMap(c, b) in hl. xor a ld h, a @@ -226,13 +229,13 @@ endr ret ; 1d19 -GetMemAttrCoord:: ; 1d19 +MenuBoxCoord2Attr:: ; 1d19 ld a, [wMenuBorderLeftCoord] ld c, a ld a, [wMenuBorderTopCoord] ld b, a -GetAttrCoord:: ; 1d21 +Coord2Attr:: ; 1d21 ; Return the address of AttrMap(c, b) in hl. xor a ld h, a diff --git a/lib/mobile/main.asm b/lib/mobile/main.asm index 8e53a4cb6..c41b25d36 100644 --- a/lib/mobile/main.asm +++ b/lib/mobile/main.asm @@ -3487,7 +3487,7 @@ Function111664: ; 111664 (44:5664) Function111686: ; 111686 (44:5686) xor a - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ld c, $ff ld a, [$ff00+c] and $f3 @@ -3552,7 +3552,7 @@ Function1116c5:: ; 1116c5 (44:56c5) jp nz, Function1118bc ld hl, $c808 add hl, de - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld [hl], a ld a, $8 cp l @@ -3724,7 +3724,7 @@ Function1117e7: ; 1117e7 (44:57e7) .asm_111803 ld b, $66 .asm_111805 - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] cp b jr z, .asm_111840 cp $d2 @@ -3791,7 +3791,7 @@ Function11186e: ; 11186e (44:586e) jr nz, Function1118bc xor a ld [hli], a - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld [$c80c], a inc [hl] or a @@ -3810,7 +3810,7 @@ Function111884: ; 111884 (44:5884) jr Function1118bc Function111892: ; 111892 (44:5892) - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld c, a call Function111664 ld hl, $c80a @@ -3842,7 +3842,7 @@ Function1118bc: ; 1118bc (44:58bc) ret Function1118c2: ; 1118c2 (44:58c2) - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld c, a ld b, $0 ld hl, $c812 @@ -4042,7 +4042,7 @@ asm_111a40: ; 111a40 (44:5a40) ld a, $4b Function111a42: ; 111a42 (44:5a42) - ld [rSB], a ; $ff00+$1 + ld [rSB], a jp Function111b2e asm_111a47: ; 111a47 (44:5a47) ld hl, $c815 @@ -4170,7 +4170,7 @@ Function111b21: ; 111b21 (44:5b21) ld e, a ld d, [hl] ld a, [de] - ld [rSB], a ; $ff00+$1 + ld [rSB], a inc de ld a, d ld [hld], a @@ -4180,9 +4180,9 @@ Function111b2e: ; 111b2e (44:5b2e) ld hl, $c822 set 1, [hl] ld a, $3 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ld a, $83 - ld [rSC], a ; $ff00+$2 + ld [rSC], a Function111b3b: ; 111b3b (44:5b3b) ret @@ -4765,7 +4765,7 @@ Function111f07: ; 111f07 (44:5f07) scf ret .asm_111f17 - ld a, [rSC] ; $ff00+$2 + ld a, [rSC] and $80 jr nz, .asm_111f17 di diff --git a/macros/charmap.asm b/macros/charmap.asm index 8d02de4be..e497b13c4 100644 --- a/macros/charmap.asm +++ b/macros/charmap.asm @@ -130,6 +130,7 @@ charmap "'t", $d5 charmap "'v", $d6 + charmap "←", $df charmap "'", $e0 charmap "", $e1 charmap "", $e2 diff --git a/macros/move_anim.asm b/macros/move_anim.asm index f14fea7b7..e8f918a29 100644 --- a/macros/move_anim.asm +++ b/macros/move_anim.asm @@ -5,42 +5,50 @@ endc db \1 endm + enum_start $d0 + + enum anim_obj_command ; d0 anim_obj: macro - db $d0 + db anim_obj_command db \1 ; obj db \2 ; x db \3 ; y db \4 ; param endm + enum anim_1gfx_command ; d1 anim_1gfx: macro - db $d1 + db anim_1gfx_command db \1 ; gfx1 endm + enum anim_2gfx_command ; d2 anim_2gfx: macro - db $d2 + db anim_2gfx_command db \1 ; gfx1 db \2 ; gfx2 endm + enum anim_3gfx_command ; d3 anim_3gfx: macro - db $d3 + db anim_3gfx_command db \1 ; gfx1 db \2 ; gfx2 db \3 ; gfx3 endm + enum anim_4gfx_command ; d4 anim_4gfx: macro - db $d4 + db anim_4gfx_command db \1 ; gfx1 db \2 ; gfx2 db \3 ; gfx3 db \4 ; gfx4 endm + enum anim_5gfx_command ; d5 anim_5gfx: macro - db $d5 + db anim_5gfx_command db \1 ; gfx1 db \2 ; gfx2 db \3 ; gfx3 @@ -48,196 +56,238 @@ anim_5gfx: macro db \5 ; gfx5 endm + enum anim_incobj_command ; d6 anim_incobj: macro - db $d6 + db anim_incobj_command db \1 ; id endm + enum anim_setobj_command ; d7 anim_setobj: macro - db $d7 + db anim_setobj_command db \1 ; id db \2 ; obj endm + enum anim_incbgeffect_command ; d8 anim_incbgeffect: macro - db $d8 + db anim_incbgeffect_command db \1 ; effect endm + enum anim_enemyfeetobj_command ; d9 anim_enemyfeetobj: macro - db $d9 + db anim_enemyfeetobj_command endm + enum anim_playerheadobj_command ; da anim_playerheadobj: macro - db $da + db anim_playerheadobj_command endm + enum anim_checkpokeball_command ; db anim_checkpokeball: macro - db $db + db anim_checkpokeball_command endm + enum anim_transform_command ; dc anim_transform: macro - db $dc + db anim_transform_command endm + enum anim_raisesub_command ; dd anim_raisesub: macro - db $dd + db anim_raisesub_command endm + enum anim_dropsub_command ; de anim_dropsub: macro - db $de + db anim_dropsub_command endm + enum anim_resetobp0_command ; df anim_resetobp0: macro - db $df + db anim_resetobp0_command endm + enum anim_sound_command ; e0 anim_sound: macro - db $e0 + db anim_sound_command db \1 ; tracks db \2 ; id endm + enum anim_cry_command ; e1 anim_cry: macro - db $e1 + db anim_cry_command db \1 ; pitch endm + enum anim_minimizeopp_command ; e2 anim_minimizeopp: macro - db $e2 + db anim_minimizeopp_command endm + enum anim_oamon_command ; e3 anim_oamon: macro - db $e3 + db anim_oamon_command endm + enum anim_oamoff_command ; e4 anim_oamoff: macro - db $e4 + db anim_oamoff_command endm + enum anim_clearobjs_command ; e5 anim_clearobjs: macro - db $e5 + db anim_clearobjs_command endm + enum anim_beatup_command ; e6 anim_beatup: macro - db $e6 + db anim_beatup_command endm + enum anim_0xe7_command ; e7 anim_0xe7: macro - db $e7 + db anim_0xe7_command endm + enum anim_updateactorpic_command ; e8 anim_updateactorpic: macro - db $e8 + db anim_updateactorpic_command endm + enum anim_minimize_command ; e9 anim_minimize: macro - db $e9 + db anim_minimize_command endm + enum anim_0xea_command ; ea anim_0xea: macro - db $ea + db anim_0xea_command endm + enum anim_0xeb_command ; eb anim_0xeb: macro - db $eb + db anim_0xeb_command endm + enum anim_0xec_command ; ec anim_0xec: macro - db $ec + db anim_0xec_command endm + enum anim_0xed_command ; ed anim_0xed: macro - db $ed + db anim_0xed_command endm + enum anim_jumpand_command ; ee anim_jumpand: macro - db $ee + db anim_jumpand_command db \1 ; value dw \2 ; address endm + enum anim_jumpuntil_command ; ef anim_jumpuntil: macro - db $ef + db anim_jumpuntil_command dw \1 ; address endm + enum anim_bgeffect_command ; f0 anim_bgeffect: macro - db $f0 + db anim_bgeffect_command db \1 ; effect db \2 ; unknown db \3 ; unknown db \4 ; unknown endm + enum anim_bgp_command ; f1 anim_bgp: macro - db $f1 + db anim_bgp_command db \1 ; colors endm + enum anim_obp0_command ; f2 anim_obp0: macro - db $f2 + db anim_obp0_command db \1 ; colors endm + enum anim_obp1_command ; f3 anim_obp1: macro - db $f3 + db anim_obp1_command db \1 ; colors endm + enum anim_clearsprites_command ; f4 anim_clearsprites: macro - db $f4 + db anim_clearsprites_command endm + enum anim_0xf5_command ; f5 anim_0xf5: macro - db $f5 + db anim_0xf5_command endm + enum anim_0xf6_command ; f6 anim_0xf6: macro - db $f6 + db anim_0xf6_command endm + enum anim_0xf7_command ; f7 anim_0xf7: macro - db $f7 + db anim_0xf7_command endm + enum anim_jumpif_command ; f8 anim_jumpif: macro - db $f8 + db anim_jumpif_command db \1 ; value dw \2 ; address endm + enum anim_setvar_command ; f9 anim_setvar: macro - db $f9 + db anim_setvar_command db \1 ; value endm + enum anim_incvar_command ; fa anim_incvar: macro - db $fa + db anim_incvar_command endm + enum anim_jumpvar_command ; fb anim_jumpvar: macro - db $fb + db anim_jumpvar_command db \1 ; value dw \2 ; address endm + enum anim_jump_command ; fc anim_jump: macro - db $fc + db anim_jump_command dw \1 ; address endm + enum anim_loop_command ; fd anim_loop: macro - db $fd + db anim_loop_command db \1 ; count dw \2 ; address endm + enum anim_call_command ; fe anim_call: macro - db $fe + db anim_call_command dw \1 ; address endm + enum anim_ret_command ; ff anim_ret: macro - db $ff + db anim_ret_command endm diff --git a/macros/text.asm b/macros/text.asm index d8b6fc717..6af4d109b 100644 --- a/macros/text.asm +++ b/macros/text.asm @@ -11,7 +11,6 @@ prompt EQUS "db $58" ; Prompt the player to end a text box (initiating some oth page EQUS "db $50," ; Start a new Pokedex page. dex EQUS "db $e8, $50" ; End a Pokedex entry. - ; TX_RAM EQU $01 ; TX_FAR EQU $16 enum_start 1 diff --git a/main.asm b/main.asm index cdfd6b230..2928420c3 100644 --- a/main.asm +++ b/main.asm @@ -105,7 +105,7 @@ PrintDayOfWeek: ; 5b05 db "DAY@" ; 5b44 -Function5b44: ; 5b44 +NewGame_ClearTileMapEtc: ; 5b44 xor a ld [hMapAnims], a call ClearTileMap @@ -131,7 +131,7 @@ NewGame: ; 5b6b xor a ld [wc2cc], a call ResetWRAM - call Function5b44 + call NewGame_ClearTileMapEtc call AreYouABoyOrAreYouAGirl call OakSpeech call InitializeWorld @@ -139,7 +139,7 @@ NewGame: ; 5b6b ld [wPreviousLandmark], a ld a, SPAWN_HOME - ld [wd001], a + ld [DefaultSpawnpoint], a ld a, MAPSETUP_WARP ld [hMapEntryMethod], a @@ -648,7 +648,7 @@ MenuData2_0x5f03: ; 5f03 Function5f1c: ; 5f1c - call GetMemTileCoord + call MenuBoxCoord2Tile push hl ld de, $5d add hl, de @@ -888,7 +888,7 @@ Function60e9: ; Unreferenced call InterpretMenu2 ld a, [MenuSelection2] dec a - call Function1db8 + call CopyNameFromMenu call WriteBackup ret ; 60fa @@ -7288,12 +7288,12 @@ Functiond4d2:: ; d4d2 (3:54d2) ld d, a ld a, [wd14f] ld e, a - ld a, [hSCX] ; $ff00+$cf + ld a, [hSCX] add d - ld [hSCX], a ; $ff00+$cf - ld a, [hSCY] ; $ff00+$d0 + ld [hSCX], a + ld a, [hSCY] add e - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret Functiond4e5: ; d4e5 (3:54e5) @@ -9770,7 +9770,7 @@ UnknownText_0xe417: ; 0xe417 Functione41c: ; e41c (3:641c) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call LoadPartyMenuDataHeader call ClearPCItemScreen ld hl, Options @@ -9804,7 +9804,7 @@ Functione443: ; e443 (3:6443) call SetPalettes xor a ld [wcf76], a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function1e5d jr c, .cancel ld a, [wMenuCursorBuffer] @@ -11481,7 +11481,7 @@ Function11e9a: ; 11e9a (4:5e9a) ld [hl], $0 call Function11f84 ld a, $e3 - ld [rLCDC], a ; $ff00+$40 + ld [rLCDC], a call Function11f74 ld b, $8 call GetSGBLayout @@ -11565,14 +11565,14 @@ Function11fc0: ; 11fc0 (4:5fc0) callab Function8cf53 call ClearSprites xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a scf ret Function11feb: ; 11feb (4:5feb) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 1, 1 lb bc, 4, 18 call ClearBox @@ -11583,7 +11583,7 @@ Function11feb: ; 11feb (4:5feb) hlcoord 2, 2 call PlaceString ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Function12008: ; 12008 (4:6008) @@ -17599,9 +17599,9 @@ rept 3 endr inc hl ld a, [hli] - ld [$ffc5], a + ld [hMoneyTemp + 2], a ld a, [hl] - ld [$ffc4], a + ld [hMoneyTemp + 1], a xor a ld [hMoneyTemp], a and a @@ -19063,31 +19063,31 @@ Function16be4: ; 16be4 call GetSGBLayout call SetPalettes -.asm_16c6b +.joy_loop call JoyTextDelay ld a, [hJoyPressed] and B_BUTTON - jr nz, .asm_16c95 + jr nz, .pressed_b ld a, [hJoyPressed] and A_BUTTON - jr nz, .asm_16c82 + jr nz, .pressed_a call Function16ca0 call DelayFrame - jr .asm_16c6b + jr .joy_loop -.asm_16c82 +.pressed_a ld a, [wJumptableIndex] push af callba Function84560 call RestartMapMusic pop af ld [wJumptableIndex], a - jr .asm_16c6b + jr .joy_loop -.asm_16c95 +.pressed_b pop af ld [Options], a pop af @@ -19099,34 +19099,34 @@ Function16be4: ; 16be4 Function16ca0: ; 16ca0 ld a, [hJoyLast] and D_RIGHT - jr nz, .asm_16cb9 + jr nz, .press_right ld a, [hJoyLast] and D_LEFT - jr nz, .asm_16cad + jr nz, .press_left ret -.asm_16cad +.press_left ld hl, wJumptableIndex ld a, [hl] and a - jr nz, .asm_16cb6 + jr nz, .wrap_around_left ld [hl], $1b -.asm_16cb6 +.wrap_around_left dec [hl] - jr .asm_16cc4 + jr .return -.asm_16cb9 +.press_right ld hl, wJumptableIndex ld a, [hl] cp $1a - jr c, .asm_16cc3 + jr c, .wrap_around_right ld [hl], $ff -.asm_16cc3 +.wrap_around_right inc [hl] -.asm_16cc4 +.return call Function16cc8 ret ; 16cc8 @@ -19159,6 +19159,7 @@ Function16cff: ; 16cff push af ld a, $6 ld [rSVBK], a + ld a, BANK(sScratch) call GetSRAMBank ld de, w6_d000 @@ -19168,6 +19169,7 @@ Function16cff: ; 16cff ld c, $31 call Get2bpp call CloseSRAM + pop af ld [rSVBK], a ret @@ -19183,7 +19185,7 @@ Function16d20: ; 16d20 xor a call GetSRAMBank ld hl, sScratch - ld bc, $310 ; 784 + ld bc, $31 tiles xor a call ByteFill ld hl, VTiles2 tile $31 @@ -19205,10 +19207,10 @@ UnownDexDoWhatString: db "Do what?@" UnownDexMenuString: - db $ef, " PRINT" - next $f5, " CANCEL" - next $df, " PREVIOUS" - next $eb, " NEXT" + db "♂ PRINT" + next "♀ CANCEL" + next "← PREVIOUS" + next "→ NEXT" db "@" UnownDexVacantString: @@ -19296,983 +19298,7 @@ PhotoStudio: ; 16dc7 db "@" ; 0x16e1d - -Function16e1d: ; 16e1d - call Function16ed6 - ld c, $0 - jp nc, .asm_16eb7 - ld a, [wBreedMon1Species] - ld [CurPartySpecies], a - ld a, [wBreedMon1DVs] - ld [TempMonDVs], a - ld a, [wBreedMon1DVs + 1] - ld [TempMonDVs + 1], a - ld a, $3 - ld [MonType], a - predef GetGender - jr c, .asm_16e70 - ld b, $1 - jr nz, .asm_16e48 - inc b - -.asm_16e48 - push bc - ld a, [wBreedMon2Species] - ld [CurPartySpecies], a - ld a, [wBreedMon2DVs] - ld [TempMonDVs], a - ld a, [wBreedMon2DVs + 1] - ld [TempMonDVs + 1], a - ld a, $3 - ld [MonType], a - predef GetGender - pop bc - jr c, .asm_16e70 - ld a, $1 - jr nz, .asm_16e6d - inc a - -.asm_16e6d - cp b - jr nz, .asm_16e89 - -.asm_16e70 - ld c, $0 - ld a, [wBreedMon1Species] - cp DITTO - jr z, .asm_16e82 - ld a, [wBreedMon2Species] - cp DITTO - jr nz, .asm_16eb7 - jr .asm_16e89 - -.asm_16e82 - ld a, [wBreedMon2Species] - cp DITTO - jr z, .asm_16eb7 - -.asm_16e89 - call Function16ebc - ld c, $ff - jp z, .asm_16eb7 - ld a, [wBreedMon2Species] - ld b, a - ld a, [wBreedMon1Species] - cp b - ld c, $fe - jr z, .asm_16e9f - ld c, $80 -.asm_16e9f - ld a, [wBreedMon1ID] - ld b, a - ld a, [wBreedMon2ID] - cp b - jr nz, .asm_16eb7 - ld a, [wBreedMon1ID + 1] - ld b, a - ld a, [wBreedMon2ID + 1] - cp b - jr nz, .asm_16eb7 - ld a, c - sub $4d - ld c, a - -.asm_16eb7 - ld a, c - ld [wd265], a - ret -; 16ebc - - -Function16ebc: ; 16ebc (5:6ebc) - ld a, [wBreedMon1DVs] - and $f - ld b, a - ld a, [wBreedMon2DVs] - and $f - cp b - ret nz - ld a, [wBreedMon1DVs + 1] - and $7 - ld b, a - ld a, [wBreedMon2DVs + 1] - and $7 - cp b - ret -; 16ed6 - -Function16ed6: ; 16ed6 - ld a, [wBreedMon2Species] - ld [CurSpecies], a - call GetBaseData - ld a, [BaseEggGroups] - cp $ff - jr z, .asm_16f3a - ld a, [wBreedMon1Species] - ld [CurSpecies], a - call GetBaseData - ld a, [BaseEggGroups] - cp $ff - jr z, .asm_16f3a - ld a, [wBreedMon2Species] - cp DITTO - jr z, .asm_16f3c - ld [CurSpecies], a - call GetBaseData - ld a, [BaseEggGroups] - push af - and $f - ld b, a - pop af - and $f0 - swap a - ld c, a - ld a, [wBreedMon1Species] - cp DITTO - jr z, .asm_16f3c - ld [CurSpecies], a - push bc - call GetBaseData - pop bc - ld a, [BaseEggGroups] - push af - and $f - ld d, a - pop af - and $f0 - swap a - ld e, a - ld a, d - cp b - jr z, .asm_16f3c - cp c - jr z, .asm_16f3c - ld a, e - cp b - jr z, .asm_16f3c - cp c - jr z, .asm_16f3c - -.asm_16f3a - and a - ret - -.asm_16f3c - scf - ret -; 16f3e - -DoEggStep:: ; 16f3e - ld de, PartySpecies - ld hl, PartyMon1Happiness - ld c, 0 -.loop - ld a, [de] - inc de - cp -1 - ret z - cp EGG - jr nz, .next - dec [hl] - jr nz, .next - ld a, 1 - and a - ret - -.next - push de - ld de, PARTYMON_STRUCT_LENGTH - add hl, de - pop de - jr .loop -; 16f5e - -OverworldHatchEgg:: ; 16f5e - call ResetWindow - call LoadPartyMenuDataHeader - call Function16f70 - call Function2b4d - call RestartMapMusic - jp LoadMoveSprites -; 16f70 - -Function16f70: ; 16f70 (5:6f70) - ld de, PartySpecies - ld hl, PartyMon1Happiness - xor a - ld [CurPartyMon], a - -Function16f7a: ; 16f7a (5:6f7a) - ld a, [de] - inc de - cp -1 - jp z, Function1708a - push de - push hl - cp EGG - jp nz, Function1707d - ld a, [hl] - and a - jp nz, Function1707d - ld [hl], $78 - - push de - - callba Function4dbb8 - callba MobileFn_10608d - ld a, [CurPartyMon] - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - ld a, [hl] - ld [CurPartySpecies], a - dec a - call SetSeenAndCaughtMon - - ld a, [CurPartySpecies] - cp TOGEPI - jr nz, .nottogepi - ; set the event flag for hatching togepi - ld de, EVENT_TOGEPI_HATCHED - ld b, SET_FLAG - call EventFlagAction -.nottogepi - - pop de - - ld a, [CurPartySpecies] - dec de - ld [de], a - ld [wd265], a - ld [CurSpecies], a - call GetPokemonName - xor a - ld [wd26b], a - call GetBaseData - ld a, [CurPartyMon] - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - push hl - ld bc, MON_MAXHP - add hl, bc - ld d, h - ld e, l - pop hl - push hl - ld bc, MON_LEVEL - add hl, bc - ld a, [hl] - ld [CurPartyLevel], a - pop hl - push hl - ld bc, MON_STATUS - add hl, bc - xor a - ld [hli], a - ld [hl], a - pop hl - push hl - ld bc, MON_EXP + 2 - add hl, bc - ld b, $0 - predef CalcPkmnStats - pop bc - ld hl, MON_MAXHP - add hl, bc - ld d, h - ld e, l - ld hl, MON_HP - add hl, bc - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - ld hl, MON_ID - add hl, bc - ld a, [PlayerID] - ld [hli], a - ld a, [PlayerID + 1] - ld [hl], a - ld a, [CurPartyMon] - ld hl, PartyMonOT ; wddff (aliases: PartyMonOT) - ld bc, NAME_LENGTH - call AddNTimes - ld d, h - ld e, l - ld hl, PlayerName - call CopyBytes - ld hl, UnknownText_0x1708b - call PrintText - ld a, [CurPartyMon] - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - call AddNTimes - ld d, h - ld e, l - push de - ld hl, UnknownText_0x170ba - call PrintText - call YesNoBox - pop de - jr c, .nonickname - ld a, $1 - ld [wd26b], a - xor a - ld [MonType], a - push de - ld b, $0 - callba Function116c1 - pop hl - ld de, StringBuffer1 - call InitName - jr Function1707d -.nonickname - ld hl, StringBuffer1 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - -Function1707d: ; 1707d (5:707d) - ld hl, CurPartyMon - inc [hl] - pop hl - ld de, PARTYMON_STRUCT_LENGTH - add hl, de - pop de - jp Function16f7a - -Function1708a: ; 1708a (5:708a) - ret -; 1708b (5:708b) - -UnknownText_0x1708b: ; 0x1708b - ; Huh? @ @ - text_jump UnknownText_0x1c0db0 - start_asm -; 0x17090 - -Function17090: ; 17090 - ld hl, VramState - res 0, [hl] - push hl - push de - push bc - ld a, [CurPartySpecies] - push af - call Function1728f - ld hl, UnknownText_0x170b0 - call PrintText - pop af - ld [CurPartySpecies], a - pop bc - pop de - pop hl - ld hl, UnknownText_0x170b5 - ret -; 170b0 (5:70b0) - -UnknownText_0x170b0: ; 0x170b0 - ; - text_jump UnknownText_0x1c0db8 - db "@" -; 0x170b5 - -UnknownText_0x170b5: ; 0x170b5 - ; came out of its EGG!@ @ - text_jump UnknownText_0x1c0dba - db "@" -; 0x170ba - -UnknownText_0x170ba: ; 0x170ba - ; Give a nickname to @ ? - text_jump UnknownText_0x1c0dd8 - db "@" -; 0x170bf - -Function170bf: ; 170bf - call Function17197 - ld d, h - ld e, l - ld b, NUM_MOVES -.loop - ld a, [de] - and a - jr z, .done - ld hl, wEggMonMoves - ld c, NUM_MOVES -.next - ld a, [de] - cp [hl] - jr z, .skip - inc hl - dec c - jr nz, .next - call Function170e4 - jr nc, .skip - call Function17169 - -.skip - inc de - dec b - jr nz, .loop - -.done - ret -; 170e4 - -Function170e4: ; 170e4 -GLOBAL EggMoves - - push bc - ld a, [wEggMonSpecies] - dec a - ld c, a - ld b, 0 - ld hl, EggMovePointers -rept 2 - add hl, bc -endr - ld a, BANK(EggMovePointers) - call GetFarHalfword -.loop - ld a, BANK(EggMoves) - call GetFarByte - cp -1 - jr z, .found_mon - ld b, a - ld a, [de] - cp b - jr z, .done_carry - inc hl - jr .loop - -.found_mon - call Function1720b - ld b, NUM_MOVES -.loop2 - ld a, [de] - cp [hl] - jr z, .found_eggmove - inc hl - dec b - jr z, .inherit_tmhm - jr .loop2 - -.found_eggmove - ld a, [wEggMonSpecies] - dec a - ld c, a - ld b, 0 - ld hl, EvosAttacksPointers -rept 2 - add hl, bc -endr - ld a, BANK(EvosAttacksPointers) - call GetFarHalfword -.loop3 - ld a, BANK(EvosAttacks) - call GetFarByte - inc hl - and a - jr nz, .loop3 -.loop4 - ld a, BANK(EvosAttacks) - call GetFarByte - and a - jr z, .inherit_tmhm - inc hl - ld a, BANK(EvosAttacks) - call GetFarByte - ld b, a - ld a, [de] - cp b - jr z, .done_carry - inc hl - jr .loop4 - -.inherit_tmhm - ld hl, TMHMMoves -.loop5 - ld a, BANK(TMHMMoves) - call GetFarByte - inc hl - and a - jr z, .done - ld b, a - ld a, [de] - cp b - jr nz, .loop5 - ld [wd262], a - predef CanLearnTMHMMove - ld a, c - and a - jr z, .done - -.done_carry - pop bc - scf - ret - -.done - pop bc - and a - ret -; 17169 - -Function17169: ; 17169 - push de - push bc - ld a, [de] - ld b, a - ld hl, wEggMonMoves - ld c, NUM_MOVES -.loop - ld a, [hli] - and a - jr z, .done - dec c - jr nz, .loop - ld de, wEggMonMoves - ld hl, wEggMonMoves + 1 - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - -.done - dec hl - ld [hl], b - ld hl, wEggMonMoves - ld de, wEggMonPP - predef FillPP - pop bc - pop de - ret -; 17197 - -Function17197: ; 17197 - ld hl, wBreedMon2Moves - ld a, [wBreedMon1Species] - cp DITTO - jr z, .ditto1 - ld a, [wBreedMon2Species] - cp DITTO - jr z, .ditto2 - ld a, [wDittoInDaycare] - and a - ret z - ld hl, wBreedMon1Moves - ret - -.ditto1 - ld a, [CurPartySpecies] - push af - ld a, [wBreedMon2Species] - ld [CurPartySpecies], a - ld a, [wBreedMon2DVs] - ld [TempMonDVs], a - ld a, [wBreedMon2DVs + 1] - ld [TempMonDVs + 1], a - ld a, $3 - ld [MonType], a - predef GetGender - jr c, .inherit_mon2_moves - jr nz, .inherit_mon2_moves - jr .inherit_mon1_moves - -.ditto2 - ld a, [CurPartySpecies] - push af - ld a, [wBreedMon1Species] - ld [CurPartySpecies], a - ld a, [wBreedMon1DVs] - ld [TempMonDVs], a - ld a, [wBreedMon1DVs + 1] - ld [TempMonDVs + 1], a - ld a, $3 - ld [MonType], a - predef GetGender - jr c, .inherit_mon1_moves - jr nz, .inherit_mon1_moves - -.inherit_mon2_moves - ld hl, wBreedMon2Moves - pop af - ld [CurPartySpecies], a - ret - -.inherit_mon1_moves - ld hl, wBreedMon1Moves - pop af - ld [CurPartySpecies], a - ret -; 1720b - -Function1720b: ; 1720b - ld hl, wBreedMon1Moves - ld a, [wBreedMon1Species] - cp DITTO - ret z - ld a, [wBreedMon2Species] - cp DITTO - jr z, .ditto - ld a, [wDittoInDaycare] - and a - ret z - -.ditto - ld hl, wBreedMon2Moves - ret -; 17224 - - -Function17224: ; 17224 (5:7224) - push de - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - ld hl, BattleMonDVs - predef GetUnownLetter - pop de - predef_jump GetFrontpic - -Function1723c: ; 1723c (5:723c) - push de - ld [CurPartySpecies], a - ld [CurSpecies], a - call GetBaseData - ld hl, BattleMonDVs - predef GetUnownLetter - pop de - predef_jump Function5108b - -Function17254: ; 17254 (5:7254) - push af - call WaitTop - push hl - push bc - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, " " - call ByteFill - pop bc - pop hl - ld a, b - ld [hBGMapAddress + 1], a - ld a, c - ld [hFillBox], a - lb bc, 7, 7 - predef FillBox - pop af - call Function17363 - call SetPalettes - jp WaitBGMap - -Function1727f: ; 1727f (5:727f) - push hl - push de - push bc - callab Function8cf69 - call DelayFrame - pop bc - pop de - pop hl - ret - -Function1728f: ; 1728f (5:728f) - ld a, [wd265] - ld [wJumptableIndex], a - ld a, [CurSpecies] - push af - ld de, MUSIC_NONE - call PlayMusic - callba Function8000 - call DisableLCD - ld hl, EggHatchGFX - ld de, VTiles0 tile $00 - ld bc, $20 - ld a, BANK(EggHatchGFX) - call FarCopyBytes - callba Function8cf53 - ld de, VTiles2 tile $00 - ld a, [wJumptableIndex] - call Function1723c - ld de, VTiles2 tile $31 - ld a, EGG - call Function17224 - ld de, MUSIC_EVOLUTION - call PlayMusic - call EnableLCD - hlcoord 7, 4 - ld b, $98 - ld c, $31 - ld a, EGG - call Function17254 - ld c, $50 - call DelayFrames - xor a - ld [wcf64], a - ld a, [hSCX] ; $ff00+$cf - ld b, a -.asm_172ee - ld hl, wcf64 - ld a, [hl] - inc [hl] - cp $8 - jr nc, .asm_17327 - ld e, [hl] -.asm_172f8 - ld a, $2 - ld [hSCX], a ; $ff00+$cf - ld a, $fe - ld [wc3c0], a - call Function1727f - ld c, $2 - call DelayFrames - ld a, $fe - ld [hSCX], a ; $ff00+$cf - ld a, $2 - ld [wc3c0], a - call Function1727f - ld c, $2 - call DelayFrames - dec e - jr nz, .asm_172f8 - ld c, $10 - call DelayFrames - call Function1736d - jr .asm_172ee -.asm_17327 - ld de, SFX_EGG_HATCH - call PlaySFX - xor a - ld [hSCX], a ; $ff00+$cf - ld [wc3c0], a - call ClearSprites - call Function173b3 - hlcoord 6, 3 - ld b, $98 - ld c, $0 - ld a, [wJumptableIndex] - call Function17254 - call Function17418 - call WaitSFX - ld a, [wJumptableIndex] - ld [CurPartySpecies], a - hlcoord 6, 3 - ld d, $0 - ld e, ANIM_MON_HATCH - predef AnimateFrontpic - pop af - ld [CurSpecies], a - ret - -Function17363: ; 17363 (5:7363) - ld [PlayerHPPal], a - ld b, $b - ld c, $0 - jp GetSGBLayout - -Function1736d: ; 1736d (5:736d) - ld a, [wcf64] - dec a - and $7 - cp $7 - ret z - srl a - ret nc - swap a - srl a - add $4c - ld d, a - ld e, $58 - ld a, $19 - call Function3b2a - ld hl, $3 - add hl, bc - ld [hl], $0 - ld de, SFX_EGG_CRACK - jp PlaySFX -; 17393 (5:7393) - -EggHatchGFX: ; 17393 -INCBIN "gfx/unknown/017393.2bpp" -; 173b3 - -Function173b3: ; 173b3 (5:73b3) - callba Function8cf53 - ld hl, Unknown_173ef -.loop - ld a, [hli] - cp $ff - jr z, .done - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - push hl - push bc - ld a, $1c - call Function3b2a - ld hl, $3 - add hl, bc - ld [hl], $0 - pop de - ld a, e - ld hl, $1 - add hl, bc - add [hl] - ld [hl], a - ld hl, $b - add hl, bc - ld [hl], d - pop hl - jr .loop -.done - ld de, SFX_EGG_HATCH - call PlaySFX - call Function1727f - ret -; 173ef (5:73ef) - -Unknown_173ef: ; 173ef -; Probably OAM. - db $54, $48, $00, $3c - db $5c, $48, $01, $04 - db $54, $50, $00, $30 - db $5c, $50, $01, $10 - db $54, $58, $02, $24 - db $5c, $58, $03, $1c - db $50, $4c, $00, $36 - db $60, $4c, $01, $0a - db $50, $54, $02, $2a - db $60, $54, $03, $16 - db $ff -; 17418 - -Function17418: ; 17418 (5:7418) - ld c, $81 -.asm_1741a - call Function1727f - dec c - jr nz, .asm_1741a - ret - -Special_DayCareMon1: ; 17421 - ld hl, UnknownText_0x17467 - call PrintText - ld a, [wBreedMon1Species] - call PlayCry - ld a, [wDaycareLady] - bit 0, a - jr z, Function1745f - call KeepTextOpen - ld hl, wBreedMon2Nick - call Function1746c - jp PrintText - -Special_DayCareMon2: ; 17440 - ld hl, UnknownText_0x17462 - call PrintText - ld a, [wBreedMon2Species] - call PlayCry - ld a, [wDaycareMan] - bit 0, a - jr z, Function1745f - call KeepTextOpen - ld hl, wBreedMon1Nick - call Function1746c - jp PrintText - -Function1745f: ; 1745f - jp Functiona80 -; 17462 - -UnknownText_0x17462: ; 0x17462 - ; It's @ that was left with the DAY-CARE LADY. - text_jump UnknownText_0x1c0df3 - db "@" -; 0x17467 - -UnknownText_0x17467: ; 0x17467 - ; It's @ that was left with the DAY-CARE MAN. - text_jump UnknownText_0x1c0e24 - db "@" -; 0x1746c - -Function1746c: ; 1746c - push bc - ld de, StringBuffer1 - ld bc, NAME_LENGTH - call CopyBytes - call Function16e1d - pop bc - ld a, [wd265] - ld hl, UnknownText_0x1749c - cp $ff - jr z, .asm_1749b - ld hl, UnknownText_0x174a1 - and a - jr z, .asm_1749b - ld hl, UnknownText_0x174a6 - cp 230 - jr nc, .asm_1749b - cp 70 - ld hl, UnknownText_0x174ab - jr nc, .asm_1749b - ld hl, UnknownText_0x174b0 - -.asm_1749b - ret -; 1749c - -UnknownText_0x1749c: ; 0x1749c - ; It's brimming with energy. - text_jump UnknownText_0x1c0e54 - db "@" -; 0x174a1 - -UnknownText_0x174a1: ; 0x174a1 - ; It has no interest in @ . - text_jump UnknownText_0x1c0e6f - db "@" -; 0x174a6 - -UnknownText_0x174a6: ; 0x174a6 - ; It appears to care for @ . - text_jump UnknownText_0x1c0e8d - db "@" -; 0x174ab - -UnknownText_0x174ab: ; 0x174ab - ; It's friendly with @ . - text_jump UnknownText_0x1c0eac - db "@" -; 0x174b0 - -UnknownText_0x174b0: ; 0x174b0 - ; It shows interest in @ . - text_jump UnknownText_0x1c0ec6 - db "@" -; 0x174b5 - -Function_174b5: ; 174b5 - ld hl, String_174b9 - ret -; 174b9 - -String_174b9: ; 174b9 - db "@" -; 174ba - +INCLUDE "engine/breeding/egg.asm" SECTION "Tileset Data 1", ROMX, BANK[TILESETS_1] @@ -20326,7 +19352,7 @@ _BackUpTiles:: ; 24374 push de ld b, $10 - ld hl, wcf81 + ld hl, wMenuFlags .loop ld a, [hli] ld [de], a @@ -20337,7 +19363,7 @@ _BackUpTiles:: ; 24374 ; If bit 6 or 7 of the menu flags is set, set bit 0 of the address ; at 7:[wcf71], and draw the menu using the coordinates from the header. ; Otherwise, reset bit 0 of 7:[wcf71]. - ld a, [wcf81] + ld a, [wMenuFlags] bit 6, a jr nz, .bit_6 bit 7, a @@ -20349,9 +19375,9 @@ _BackUpTiles:: ; 24374 ld h, [hl] ld l, a set 0, [hl] - call GetMemTileCoord + call MenuBoxCoord2Tile call .copy - call GetMemAttrCoord + call MenuBoxCoord2Attr call .copy jr .done @@ -20431,7 +19457,7 @@ Function243e8:: ; 243e8 ld a, h ld [wcf72], a call Function1c47 - ld a, [wcf81] + ld a, [wMenuFlags] bit 0, a jr z, .next ld d, h @@ -20526,7 +19552,7 @@ Function2446d:: ; 2446d set 5, [hl] .asm_24492 - ld a, [wcf81] + ld a, [wMenuFlags] bit 4, a jr z, .asm_2449b set 6, [hl] @@ -20604,7 +19630,7 @@ Pokepic:: ; 244e3 ld a, [wMenuBorderLeftCoord] inc a ld c, a - call GetTileCoord + call Coord2Tile ld a, $80 ld [hFillBox], a lb bc, 7, 7 @@ -20616,7 +19642,7 @@ Pokepic:: ; 244e3 PokepicYesOrNo:: ; 24528 ld hl, MenuDataHeader_0x24547 call CopyMenuDataHeader - call Function1ce1 + call ClearMenuBoxInterior call WaitBGMap call ClearSGB xor a @@ -20922,7 +19948,7 @@ Function246fc: ; 246fc ; 24706 Function24706: ; 24706 (9:4706) - call GetMemTileCoord + call MenuBoxCoord2Tile ld de, SCREEN_WIDTH add hl, de ld de, 2 * SCREEN_WIDTH @@ -21076,7 +20102,7 @@ Function247dd: ; 247dd ; 247f0 Function247f0: ; 247f0 - call Function1cf1 + call ClearWholeMenuBox ld a, [wMenuData2Flags] bit 4, a jr z, .asm_2480d @@ -21087,11 +20113,11 @@ Function247f0: ; 247f0 ld b, a ld a, [wMenuBorderRightCoord] ld c, a - call GetTileCoord + call Coord2Tile ld [hl], $61 .asm_2480d - call GetMemTileCoord + call MenuBoxCoord2Tile ld bc, $15 add hl, bc ld a, [wMenuData2Items] @@ -21124,7 +20150,7 @@ Function247f0: ; 247f0 ld b, a ld a, [wMenuBorderRightCoord] ld c, a - call GetTileCoord + call Coord2Tile ld [hl], $ee .asm_24850 @@ -21195,7 +20221,7 @@ Function2488b: ; 2488b ld a, [wMenuBorderLeftCoord] add $0 ld c, a - call GetTileCoord + call Coord2Tile ld [hl], $ec .asm_248b7 @@ -21572,7 +20598,7 @@ Function24af8: ; 24af8 Function24b01: ; 24b01 call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile ld de, $15 add hl, de ld de, Money @@ -21923,7 +20949,7 @@ MonMenuLoop: ; 24d59 ; 24d91 PopulateMonMenu: ; 24d91 - call GetMemTileCoord + call MenuBoxCoord2Tile ld bc, $2a ; 42 add hl, bc ld de, Buffer2 @@ -22113,7 +21139,7 @@ Function24e99: ; 24e99 call UpdateSprites call Function1c89 call WaitBGMap - call Function1c66 + call CopyMenuData2 ld a, [wMenuData2Flags] bit 7, a jr z, .asm_24ed0 @@ -22411,7 +21437,7 @@ Function2500e: ; 2500e Function25072: ; 25072 call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile ld de, $15 add hl, de ld [hl], $f1 @@ -22419,11 +21445,11 @@ Function25072: ; 25072 ld de, wItemQuantityChangeBuffer lb bc, PRINTNUM_LEADINGZEROS | 1, 2 call PrintNum - ld a, [wcf86] + ld a, [wMenuData2Pointer] ld e, a - ld a, [wcf87] + ld a, [wMenuData2Pointer + 1] ld d, a - ld a, [wcf8a] + ld a, [wMenuDataBank] call FarCall_de ret ; 25097 @@ -24370,7 +23396,7 @@ DecoAction_AskWhichSide: ; 26e70 ld hl, MenuDataHeader_0x26eab call GetMenu2 call ExitMenu - call Function1c66 + call CopyMenuData2 jr c, .nope ld a, [MenuSelection2] cp 3 @@ -27182,7 +26208,7 @@ UnknownText_0x2c8ce: ; 0x2c8ce Function2c8d3: ; 2c8d3 (b:48d3) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function2c9e2 ld a, $2 ld [wcfa1], a @@ -27221,7 +26247,7 @@ Function2c915: ; 2c915 (b:4915) dec a ld [wTMHMPocketCursor], a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, [wcfa6] bit 7, a jp nz, Function2c9b1 @@ -28550,20 +27576,20 @@ Function41a7f: ; 41a7f Function41ad7: ; 41ad7 (10:5ad7) ld a, $3 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld c, $4 call DelayFrames ret Function41ae1: ; 41ae1 (10:5ae1) ld a, $4 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld c, $4 call DelayFrames ret Function41aeb: ; 41aeb (10:5aeb) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jr z, .asm_41af3 call Function41ae1 @@ -30772,7 +29798,7 @@ Function48304: ; 48304 (12:4304) call ExitMenu call ExitMenu pop af - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] bit 0, a jr z, .asm_48377 call Function483bb @@ -31292,10 +30318,10 @@ String_4880d: ; 4880d ; 4880e Function4880e: ; 4880e (12:480e) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and A_BUTTON jp nz, Function488b9 - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and B_BUTTON jp nz, Function488b4 ld hl, hJoyLast @@ -31444,7 +30470,7 @@ Function488d3: ; 488d3 (12:48d3) asm_48922: ; 48922 (12:4922) push bc call JoyTextDelay - ld a, [hJoyDown] ; $ff00+$a8 + ld a, [hJoyDown] and a jp z, Function4896e bit 0, a @@ -31667,10 +30693,10 @@ String_48aa1: ; 48aa1 Function48ab5: ; 48ab5 (12:4ab5) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and A_BUTTON jp nz, Function48c0f - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and B_BUTTON jp nz, Function48c0d ld a, d @@ -32195,16 +31221,16 @@ Function48d4a: ; 48d4a (12:4d4a) Function48d94: ; 48d94 (12:4d94) xor a ld [hDividend + 0], a - ld [hDividend + 1], a ; $ff00+$b4 (aliases: hMultiplicand) + ld [hDividend + 1], a ld a, [hli] ld [hDividend + 0], a ld a, [hl] - ld [hDividend + 1], a ; $ff00+$b4 (aliases: hMultiplicand) + ld [hDividend + 1], a ld a, 100 - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) + ld [hDivisor], a ld b, 2 call Divide - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hDivisor] ld c, $a call SimpleDivide sla b @@ -36120,35 +35146,35 @@ EmptyAllSRAMBanks: ; 4cf1f Function4cf45: ; 4cf45 (13:4f45) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jp z, WaitBGMap ; The following is a modified version of Function3246. - ld a, [hBGMapMode] ; $ff00+$d4 + ld a, [hBGMapMode] push af xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, [hMapAnims] push af xor a ld [hMapAnims], a .WaitLY - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $60 jr c, .WaitLY di ld a, 1 ; BANK(VBGMap2) - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a hlcoord 0, 0, AttrMap call Function4cf80 ld a, 0 ; BANK(VBGMap0) - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a hlcoord 0, 0 call Function4cf80 .WaitLY2 - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $60 jr c, .WaitLY2 ei @@ -36156,7 +35182,7 @@ Function4cf45: ; 4cf45 (13:4f45) pop af ld [hMapAnims], a pop af - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Function4cf80: ; 4cf80 (13:4f80) @@ -36190,7 +35216,7 @@ endr ld [hTilesPerCycle], a jr nz, .loop - ld a, [hSPBuffer] ; $ff00+$d9 + ld a, [hSPBuffer] ld l, a ld a, [hSPBuffer + 1] ld h, a @@ -37814,7 +36840,7 @@ Function4de2c: ; 4de2c (13:5e2c) jr .clear_flags .notbreedmon - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] .clear_flags and a ret @@ -37918,7 +36944,7 @@ Function4dee4: ; 4dee4 (13:5ee4) Function4deea: ; 4deea (13:5eea) call Function4df45 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, [CurBaseData] ; wd236 (aliases: BaseDexNo) ld [wd265], a ld [CurSpecies], a @@ -38032,7 +37058,7 @@ Function4dfb6: ; 4dfb6 (13:5fb6) ld [wd265], a ld [CurSpecies], a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function4dfda call Function4e002 call Function4dfed @@ -38191,7 +37217,7 @@ endr sbc [hl] dec hl ld [Buffer2], a ; wd1eb (aliases: MovementType) - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) + ld a, [hQuotient] sbc [hl] ld [Buffer1], a ; wd1ea (aliases: MagikarpLength) ret @@ -38483,16 +37509,16 @@ Function4e307: ; 4e307 (13:6307) push bc push af call DelayFrame - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld de, TextBoxSpaceGFX lb bc, BANK(TextBoxSpaceGFX), 1 ld hl, VTiles2 tile $7f call Get2bpp pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a pop af pop bc pop de @@ -45171,11 +44197,11 @@ Function841c3: ; 841c3 (21:41c3) ld a, $1 ld [wc2d5], a ld a, $88 - ld [rSB], a ; $ff00+$1 + ld [rSB], a ld a, $1 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ld a, $81 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ret Function841e2: ; 841e2 (21:41e2) @@ -45464,7 +44490,7 @@ Function8439f: ; 8439f (21:439f) ret Function843a8: ; 843a8 (21:43a8) - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld [wca88], a ld a, $0 call Function843db @@ -45472,7 +44498,7 @@ Function843a8: ; 843a8 (21:43a8) ret Function843b6: ; 843b6 (21:43b6) - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld [wca89], a xor a ld [wc2d5], a @@ -45497,15 +44523,15 @@ Function843d2: ; 843d2 (21:43d2) ret Function843db: ; 843db (21:43db) - ld [rSB], a ; $ff00+$1 + ld [rSB], a ld a, $1 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ld a, $81 - ld [rSC], a ; $ff00+$2 + ld [rSC], a ret Function843e6: ; 843e6 (21:43e6) - ld a, [rSB] ; $ff00+$1 + ld a, [rSB] ld [wca89], a xor a ld [wc2d5], a @@ -45640,18 +44666,18 @@ Function844bc: ; 844bc (21:44bc) ld [$ffac], a ld [wd003], a call Function8474c - ld a, [rIE] ; $ff00+$ff + ld a, [rIE] push af xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a ld a, $9 - ld [rIE], a ; $ff00+$ff + ld [rIE], a ld hl, hVBlank ld a, [hl] push af ld [hl], $4 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function84817 ld a, $10 call Function84419 @@ -45661,7 +44687,7 @@ Function844bc: ; 844bc (21:44bc) ld c, $c call DelayFrames xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function8486f ld a, $0 call Function84419 @@ -45671,7 +44697,7 @@ Function844bc: ; 844bc (21:44bc) ld c, $c call DelayFrames xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function84893 ld a, $0 call Function84419 @@ -45681,7 +44707,7 @@ Function844bc: ; 844bc (21:44bc) ld c, $c call DelayFrames xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function848b7 ld a, $3 call Function84419 @@ -45691,9 +44717,9 @@ Function844bc: ; 844bc (21:44bc) ld [hVBlank], a call Function84411 xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a pop af - ld [rIE], a ; $ff00+$ff + ld [rIE], a call Function84425 pop af ld [wcf65], a @@ -47102,7 +46128,7 @@ ShowPlayerNamingChoices: ; 88297 call InterpretMenu2 ld a, [MenuSelection2] dec a - call Function1db8 + call CopyNameFromMenu call WriteBackup ret ; 882b5 @@ -47567,7 +46593,7 @@ Function8ca3c: ; 8ca3c (23:4a3c) Function8ca5c: ; 8ca5c (23:4a5c) ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld hl, wJumptableIndex inc [hl] @@ -51737,7 +50763,7 @@ InitClock: ; 90672 (24:4672) ld b, $8 call GetSGBLayout xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call LoadStandardFont ld de, GFX_908fb ld hl, VTiles2 tile $00 @@ -51835,13 +50861,13 @@ InitClock: ; 90672 (24:4672) .ClearScreen: ; 90783 (24:4783) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH xor a call ByteFill ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret SetHour: ; 90795 (24:4795) @@ -51939,7 +50965,7 @@ endr ; 90810 SetMinutes: ; 90810 (24:4810) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and A_BUTTON jr nz, .asm_90857 ld hl, hJoyLast @@ -52301,9 +51327,9 @@ Special_InitialSetDSTFlag: ; 90a54 UnknownText_0x90a6c: ; 90a6c start_asm call UpdateTime - ld a, [hHours] ; $ff00+$94 + ld a, [hHours] ld b, a - ld a, [hMinutes] ; $ff00+$96 + ld a, [hMinutes] ld c, a decoord 1, 14 callba PrintHoursMins @@ -52766,11 +51792,11 @@ Function90da8: ; 90da8 (24:4da8) ret Function90e00: ; 90e00 (24:4e00) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jr z, .asm_90e0e ld a, $2 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld c, $3 call DelayFrames .asm_90e0e @@ -52999,19 +52025,19 @@ Function90f3e: ; 90f3e (24:4f3e) Function90f7b: ; 90f7b (24:4f7b) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Function90f86 ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Function90f86: ; 90f86 (24:4f86) hlcoord 3, 5 lb bc, 5, 14 call ClearBox - ld a, [hHours] ; $ff00+$94 + ld a, [hHours] ld b, a - ld a, [hMinutes] ; $ff00+$96 + ld a, [hMinutes] ld c, a decoord 6, 8 callba PrintHoursMins @@ -53449,7 +52475,7 @@ OutOfServiceAreaText: ; 0x91251 ; 0x91256 Function91256: ; 91256 (24:5256) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and A_BUTTON | B_BUTTON ret z callba HangUp @@ -55327,7 +54353,7 @@ Function9279b: ; 9279b (24:679b) ld a, $e4 call DmgToCgbBGPals lb de, $e4, $e4 - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a jr nz, .asm_927ab lb de, $c0, $e4 @@ -55517,7 +54543,7 @@ Function928c6: ; 928c6 (24:68c6) .asm_928cf call Function92879 xor a - ld [hJoypadSum], a ; $ff00+$a5 + ld [hJoypadSum], a ret Function928d6: ; 928d6 (24:68d6) @@ -55540,7 +54566,7 @@ Function928e6: ; 928e6 (24:68e6) call Function929f6 call Function92879 xor a - ld [hJoypadSum], a ; $ff00+$a5 + ld [hJoypadSum], a Function92900: ; 92900 (24:6900) ld hl, hJoypadSum ; $ffa5 @@ -55562,7 +54588,7 @@ Function92910: ; 92910 (24:6910) call Function929f6 call Function92879 xor a - ld [hJoypadSum], a ; $ff00+$a5 + ld [hJoypadSum], a Function9292a: ; 9292a (24:692a) ld hl, hJoypadSum ; $ffa5 @@ -55584,7 +54610,7 @@ Function9293a: ; 9293a (24:693a) call Function929f6 call Function92879 xor a - ld [hJoypadSum], a ; $ff00+$a5 + ld [hJoypadSum], a ret Function92955: ; 92955 (24:6955) @@ -55607,7 +54633,7 @@ Function9296b: ; 9296b (24:696b) dec [hl] srl a ret z - ld a, [rOBP0] ; $ff00+$48 + ld a, [rOBP0] xor $ff ld e, a ld d, a @@ -57225,14 +56251,14 @@ endr xor $ff inc a ld [hl], a - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret .asm_932a3 ld hl, $b add hl, bc xor a ld [hl], a - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret Function932ac: ; 932ac (24:72ac) @@ -57508,16 +56534,16 @@ PlaceMapNameSign:: ; b8098 (2e:4098) .skip2 ld a, $80 ld a, $70 - ld [rWY], a ; $ff00+$4a - ld [hWY], a ; $ff00+$d2 + ld [rWY], a + ld [hWY], a ret .disappear ld a, $90 - ld [rWY], a ; $ff00+$4a - ld [hWY], a ; $ff00+$d2 + ld [rWY], a + ld [hWY], a xor a - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a ret @@ -57600,32 +56626,44 @@ endr PlaceMapNameFrame: ; b812f hlcoord 0, 0 + ; top left ld a, $61 ld [hli], a + ; top row ld a, $62 call .FillTopBottom + ; top right ld a, $64 ld [hli], a + ; left, first line ld a, $65 ld [hli], a - call .FillLeftRight + ; first line + call .FillMiddle + ; right, first line ld a, $6b ld [hli], a + ; left, second line ld a, $66 ld [hli], a - call .FillLeftRight + ; second line + call .FillMiddle + ; right, second line ld a, $6c ld [hli], a + ; bottom left ld a, $67 ld [hli], a + ; bottom ld a, $68 call .FillTopBottom + ; bottom right ld a, $6a ld [hl], a ret ; b815b -.FillLeftRight: ; b815b +.FillMiddle: ; b815b ld c, 18 ld a, $6d .loop @@ -60022,7 +59060,7 @@ endr call WaitSFX ld a, [wc6e8] ld e, a - ld d, $0 + ld d, 0 ld hl, wc6d0 rept 2 add hl, de @@ -60279,7 +59317,7 @@ String_e04bc: Functione04c1: ; e04c1 (38:44c1) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH ld a, $29 @@ -61344,7 +60382,7 @@ Unknown_e0c26: ; e0c26 ; e0c37 Functione0c37: ; e0c37 (38:4c37) - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a ret z hlcoord 0, 0, AttrMap @@ -61371,16 +60409,16 @@ Functione0c37: ; e0c37 (38:4c37) lb bc, 12, 1 ld a, $1 call Functione04e7 - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e0c93 ld de, Unkn1Pals ld bc, $48 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret ; e0c93 (38:4c93) @@ -62344,14 +61382,14 @@ Functione1e67: ; e1e67 (38:5e67) xor a call ByteFill xor a - ld [hSCY], a ; $ff00+$d0 - ld [hSCX], a ; $ff00+$cf - ld [rWY], a ; $ff00+$4a + ld [hSCY], a + ld [hSCX], a + ld [rWY], a ld [wJumptableIndex], a ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $e3 - ld [rLCDC], a ; $ff00+$40 + ld [rLCDC], a ld a, $e4 call DmgToCgbBGPals ld a, $e0 @@ -62480,7 +61518,7 @@ Functione1f61: ; e1f61 cp $ff ret z ld [wc6fd], a - ld [wc6fe], a + ld [wPlayerMinimized], a ld a, e ld [EnemyScreens], a call Functione2183 @@ -62580,7 +61618,7 @@ Functione2000: ; e2000 ; e2010 Functione2010: ; e2010 - ld hl, wc6fe + ld hl, wPlayerMinimized ld a, [hli] cp [hl] jr nz, .asm_e2066 @@ -62608,7 +61646,7 @@ Functione2010: ; e2010 and a jr nz, .asm_e2044 dec hl - ld a, [wc6fe] + ld a, [wPlayerMinimized] ld [hl], a ld [wc6fd], a ld hl, wc709 @@ -62977,7 +62015,7 @@ Jumptable_e23df: ; e23df (38:63df) Functione23e9: ; e23e9 (38:63e9) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call ClearSprites call Functione2d30 call Functione2a8e @@ -63009,11 +62047,11 @@ Functione241a: ; e241a (38:641a) ret z call Functione2e01 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Functione2c2c call PCMonInfo ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame ret @@ -63040,7 +62078,7 @@ Functione241a: ; e241a (38:641a) Functione245d: ; e245d (38:645d) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call ClearSprites call Functione2def ld [CurPartySpecies], a @@ -63241,7 +62279,7 @@ Functione25dc: ; e25dc (38:65dc) ld a, $f ld [wcb2e], a xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call ClearSprites call Functione2d30 call Functione2a8e @@ -63273,11 +62311,11 @@ Functione2612: ; e2612 (38:6612) ret z call Functione2e01 xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Functione2c2c call PCMonInfo ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame ret @@ -63305,7 +62343,7 @@ Functione2612: ; e2612 (38:6612) Functione2655: ; e2655 (38:6655) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call ClearSprites call Functione2def ld [CurPartySpecies], a @@ -65265,7 +64303,7 @@ Functione35aa: ; e35aa (38:75aa) call Functione35e2 .loop xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call Functione36cf call Functione379c ld hl, Functione35aa_menudataheader @@ -65288,7 +64326,7 @@ Functione35aa: ; e35aa (38:75aa) Functione35e2: ; e35e2 (38:75e2) xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a hlcoord 0, 0 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, " " @@ -65584,7 +64622,7 @@ Functione37e3: ; e37e3 (38:77e3) hlcoord 1, 16 call PlaceString ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret @@ -66494,18 +65532,18 @@ GameFreakLogoScene4: ; e4776 (39:4776) rept 2 add hl, de endr - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [hli] ld [OBPals + 12], a ld a, [hli] ld [OBPals + 13], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret .asm_e47a3 ld hl, $b @@ -66658,14 +65696,14 @@ IntroScene1: ; e495b (39:495b) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap001 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroUnownsGFX ld de, VTiles2 tile $00 call Functione54c2 @@ -66675,10 +65713,10 @@ IntroScene1: ; e495b (39:495b) ld hl, IntroTilemap002 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_365ad ld de, Unkn1Pals ld bc, $80 @@ -66688,14 +65726,14 @@ IntroScene1: ; e495b (39:495b) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -66734,24 +65772,24 @@ IntroScene3: ; e49fd (39:49fd) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap003 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroBackgroundGFX ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap004 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e5edd ld de, Unkn1Pals ld bc, $80 @@ -66761,14 +65799,14 @@ IntroScene3: ; e49fd (39:49fd) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a call Functione5516 call Functione549e xor a @@ -66795,15 +65833,15 @@ IntroScene5: ; e4a7a (39:4a7a) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hBGMapMode], a + ld [hLCDStatCustom], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap005 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroUnownsGFX ld de, VTiles2 tile $00 call Functione54c2 @@ -66813,10 +65851,10 @@ IntroScene5: ; e4a7a (39:4a7a) ld hl, IntroTilemap006 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_365ad ld de, Unkn1Pals ld bc, $80 @@ -66826,14 +65864,14 @@ IntroScene5: ; e4a7a (39:4a7a) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -66890,9 +65928,9 @@ IntroScene7: ; e4b3f (39:4b3f) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap003 ld de, VBGMap0 tile $00 call Functione54fa @@ -66900,7 +65938,7 @@ IntroScene7: ; e4b3f (39:4b3f) ld de, VTiles0 tile $00 call Functione54c2 ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneRunGFX ld de, VTiles0 tile $00 call Functione54de @@ -66910,10 +65948,10 @@ IntroScene7: ; e4b3f (39:4b3f) ld hl, IntroTilemap004 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e5edd ld de, Unkn1Pals ld bc, $80 @@ -66923,14 +65961,14 @@ IntroScene7: ; e4b3f (39:4b3f) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a call Functione5516 callba Function8cf53 ld de, $6cd8 @@ -66975,7 +66013,7 @@ IntroScene8: ; e4bd3 (39:4bd3) IntroScene9: ; e4c04 (39:4c04) ; Set up the next scene (same bg). xor a - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a call ClearSprites hlcoord 0, 0, AttrMap ld bc, $f0 @@ -66988,18 +66026,18 @@ IntroScene9: ; e4c04 (39:4c04) ld a, $3 call ByteFill ld a, $2 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a call DelayFrame call DelayFrame call DelayFrame ld a, $c - ld [hBGMapAddress], a ; $ff00+$d6 + ld [hBGMapAddress], a call DelayFrame call DelayFrame call DelayFrame xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld [hBGMapAddress], a ; $ff00+$d6 + ld [hBGMapMode], a + ld [hBGMapAddress], a ld [wc3c0], a xor a ld [wcf64], a @@ -67045,25 +66083,25 @@ IntroScene11: ; e4c86 (39:4c86) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hBGMapMode], a + ld [hLCDStatCustom], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap007 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroUnownsGFX ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap008 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_365ad ld de, Unkn1Pals ld bc, $80 @@ -67073,14 +66111,14 @@ IntroScene11: ; e4c86 (39:4c86) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -67168,14 +66206,14 @@ IntroScene13: ; e4d6d (39:4d6d) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap003 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneRunGFX ld de, VTiles0 tile $00 call Functione54de @@ -67185,10 +66223,10 @@ IntroScene13: ; e4d6d (39:4d6d) ld hl, IntroTilemap004 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e5edd ld de, Unkn1Pals ld bc, $80 @@ -67198,14 +66236,14 @@ IntroScene13: ; e4d6d (39:4d6d) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 lb de, $6c, $58 ld a, $26 @@ -67223,9 +66261,9 @@ IntroScene13: ; e4d6d (39:4d6d) IntroScene14: ; e4dfa (39:4dfa) ; Suicune runs then jumps. - ld a, [hSCX] ; $ff00+$cf + ld a, [hSCX] sub 10 - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld hl, wcf64 ld a, [hl] inc [hl] @@ -67272,14 +66310,14 @@ IntroScene15: ; e4e40 (39:4e40) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap009 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneJumpGFX ld de, VTiles2 tile $00 call Functione54c2 @@ -67294,10 +66332,10 @@ IntroScene15: ; e4e40 (39:4e40) ld de, VBGMap0 tile $00 call Functione54fa call Functione541b - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e77dd ld de, Unkn1Pals ld bc, $80 @@ -67307,15 +66345,15 @@ IntroScene15: ; e4e40 (39:4e40) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, $90 - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e lb de, $40, $28 @@ -67338,11 +66376,11 @@ IntroScene16: ; e4edc (39:4edc) cp $80 jr nc, .done call Functione5441 - ld a, [hSCY] ; $ff00+$d0 + ld a, [hSCY] and a ret z add 8 - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret .done call NextIntroScene @@ -67354,24 +66392,24 @@ IntroScene17: ; e4ef5 (39:4ef5) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap011 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneCloseGFX ld de, VTiles1 tile $00 call Functione54de ld hl, IntroTilemap012 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e6d6d ld de, Unkn1Pals ld bc, $80 @@ -67381,14 +66419,14 @@ IntroScene17: ; e4ef5 (39:4ef5) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -67404,11 +66442,11 @@ IntroScene18: ; e4f67 (39:4f67) inc [hl] cp $60 jr nc, .done - ld a, [hSCX] ; $ff00+$cf + ld a, [hSCX] cp $60 ret z add 8 - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ret .done call NextIntroScene @@ -67420,14 +66458,14 @@ IntroScene19: ; e4f7e (39:4f7e) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap013 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroSuicuneBackGFX ld de, VTiles2 tile $00 call Functione54c2 @@ -67442,10 +66480,10 @@ IntroScene19: ; e4f7e (39:4f7e) ld de, VBGMap0 tile $00 call Functione54fa call Functione541b - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e77dd ld de, Unkn1Pals ld bc, $80 @@ -67455,15 +66493,15 @@ IntroScene19: ; e4f7e (39:4f7e) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a ld a, $d8 - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 ld hl, wc300 xor a @@ -67492,9 +66530,9 @@ IntroScene20: ; e5019 (39:5019) jr nc, .asm_e5032 cp $28 ret nc - ld a, [hSCY] ; $ff00+$d0 + ld a, [hSCY] inc a - ld [hSCY], a ; $ff00+$d0 + ld [hSCY], a ret .asm_e5032 @@ -67532,7 +66570,7 @@ IntroScene21: ; e505d (39:505d) ld c, $3 call DelayFrames xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld [wcf64], a ld [wcf65], a call NextIntroScene @@ -67596,24 +66634,24 @@ IntroScene26: ; e50bb (39:50bb) call ClearSprites call ClearTileMap xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroTilemap015 ld de, VBGMap0 tile $00 call Functione54fa ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, IntroCrystalUnownsGFX ld de, VTiles2 tile $00 call Functione54c2 ld hl, IntroTilemap017 ld de, VBGMap0 tile $00 call Functione54fa - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_e679d ld de, Unkn1Pals ld bc, $80 @@ -67623,14 +66661,14 @@ IntroScene26: ; e50bb (39:50bb) ld bc, $80 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a xor a - ld [hSCX], a ; $ff00+$cf - ld [hSCY], a ; $ff00+$d0 + ld [hSCX], a + ld [hSCY], a ld a, $7 - ld [hWX], a ; $ff00+$d1 + ld [hWX], a ld a, $90 - ld [hWY], a ; $ff00+$d2 + ld [hWY], a callba Function8cf53 call Functione549e xor a @@ -67697,10 +66735,10 @@ Functione5172: ; e5172 (39:5172) ld a, $0 adc h ld h, a - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld de, BGPals ld b, $8 .asm_e5187 @@ -67716,9 +66754,9 @@ Functione5172: ; e5172 (39:5172) dec b jr nz, .asm_e5187 pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret ; e519c (39:519c) @@ -67827,10 +66865,10 @@ endr .asm_e523e ld c, a ld b, $0 - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push hl push bc ld hl, BGPals @@ -67879,9 +66917,9 @@ endr ld a, d ld [hli], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret ; e5288 (39:5288) @@ -67926,10 +66964,10 @@ rept 3 add a endr ld c, a - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push bc ld de, BGPals ld a, c @@ -67951,9 +66989,9 @@ endr ld bc, $8 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret ; e538d (39:538d) @@ -67986,10 +67024,10 @@ endr add a ld c, a ld b, $0 - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push hl ld hl, Palette_e53db add hl, bc @@ -68013,9 +67051,9 @@ endr ld a, d ld [hli], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret ; e53db (39:53db) @@ -68038,10 +67076,10 @@ endr ; e541b Functione541b: ; e541b (39:541b) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $6 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Unkn1Pals decoord 0, 0 ld b, $12 @@ -68062,7 +67100,7 @@ Functione541b: ; e541b (39:541b) dec b jr nz, .asm_e542a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Functione5441: ; e5441 (39:5441) @@ -68074,7 +67112,7 @@ Functione5441: ; e5441 (39:5441) ret .asm_e544d xor a - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Functione5451: ; e5451 (39:5451) @@ -68095,7 +67133,7 @@ Functione5451: ; e5451 (39:5451) or b jr nz, .asm_e5457 ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Functione546d: ; e546d (39:546d) @@ -68130,31 +67168,31 @@ Unknown_e5496: ; e5496 Functione549e: ; e549e (39:549e) ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a ret Functione54a3: ; e54a3 (39:54a3) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, BGPals ld bc, $80 xor a call ByteFill pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hCGBPalUpdate], a ; $ff00+$e5 + ld [hCGBPalUpdate], a call DelayFrame call DelayFrame ret Functione54c2: ; e54c2 (39:54c2) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $6 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push de ld de, Unkn1Pals call Decompress @@ -68163,14 +67201,14 @@ Functione54c2: ; e54c2 (39:54c2) ld bc, $180 call Request2bpp pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Functione54de: ; e54de (39:54de) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $6 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push de ld de, Unkn1Pals call Decompress @@ -68179,14 +67217,14 @@ Functione54de: ; e54de (39:54de) ld bc, $1ff call Request2bpp pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Functione54fa: ; e54fa (39:54fa) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $6 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a push de ld de, Unkn1Pals call Decompress @@ -68195,29 +67233,29 @@ Functione54fa: ; e54fa (39:54fa) ld bc, $140 call Request2bpp pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Functione5516: ; e5516 (39:5516) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, LYOverrides ld bc, $90 xor a call ByteFill pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $43 - ld [hLCDStatCustom], a ; $ff00+$c6 + ld [hLCDStatCustom], a ret Functione552f: ; e552f (39:552f) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [wcf64] and $1 jr z, .asm_e5548 @@ -68235,9 +67273,9 @@ endr ld bc, $31 call ByteFill ld a, [LYOverrides + 0] - ld [hSCX], a ; $ff00+$cf + ld [hSCX], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret IntroSuicuneRunGFX: ; e555d @@ -70427,7 +69465,7 @@ CheckBalance_MomItem2: ; fd044 ld [hMoneyTemp + 1], a ld a, [hli] ld [hMoneyTemp + 2], a - ld de, wd851 + ld de, wMomsMoney ld bc, hMoneyTemp callba CompareMoney jr nc, .have_enough_money @@ -70448,7 +69486,7 @@ CheckBalance_MomItem2: ; fd044 ld [hl], (2300 % $100) ; $fc .loop ld de, wdc19 - ld bc, wd851 + ld bc, wMomsMoney callba CompareMoney jr z, .exact jr nc, .less_than @@ -70484,10 +69522,10 @@ MomBuysItem_DeductFunds: ; fd0a6 (3f:50a6) ld a, [hli] ld [hMoneyTemp], a ld a, [hli] - ld [$ffc4], a + ld [hMoneyTemp + 1], a ld a, [hli] - ld [$ffc5], a - ld de, wd851 + ld [hMoneyTemp + 2], a + ld de, wMomsMoney ld bc, hMoneyTemp callba TakeMoney ret @@ -70688,7 +69726,7 @@ Function104033: ; 104033 ld hl, w6_d000 call Function10425f ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d000 call Function10419d ret @@ -70704,7 +69742,7 @@ Function10404d: ; 10404d ld hl, w6_d400 call Function104263 ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d400 call Function10419d ret @@ -70724,18 +69762,18 @@ Function104067: ; 104067 call Function10425f call DelayFrame di - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d400 call Function1041ad ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d000 call Function1041ad pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ei ret @@ -70824,18 +69862,18 @@ Function104116: ; 104116 call Function10425f call DelayFrame di - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d400 call Function1041b7 ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, w6_d000 call Function1041b7 pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ei ret ; 104148 @@ -70898,12 +69936,12 @@ Function10419c: ; 10419c Function10419d: ; 10419d (41:419d) call Function10424e ld a, $23 - ld [hDMATransfer], a ; $ff00+$e8 + ld [hDMATransfer], a Function1041a4: ; 104a14 .asm_1041a4 call DelayFrame - ld a, [hDMATransfer] ; $ff00+$e8 + ld a, [hDMATransfer] and a jr nz, .asm_1041a4 ret @@ -70911,7 +69949,7 @@ Function1041a4: ; 104a14 Function1041ad: ; 1041ad (41:41ad) ld a, [hBGMapAddress + 1] ld d, a - ld a, [hBGMapAddress] ; $ff00+$d6 + ld a, [hBGMapAddress] ld e, a ld c, $24 jr Function104209 @@ -70919,7 +69957,7 @@ Function1041ad: ; 1041ad (41:41ad) Function1041b7: ; 1041b7 (41:41b7) ld a, [hBGMapAddress + 1] ld d, a - ld a, [hBGMapAddress] ; $ff00+$d6 + ld a, [hBGMapAddress] ld e, a ld c, $24 jr asm_104205 @@ -71035,14 +70073,14 @@ asm_10420b: Function10424e: ; 10424e (41:424e) ld a, h - ld [rHDMA1], a ; $ff00+$51 + ld [rHDMA1], a ld a, l - ld [rHDMA2], a ; $ff00+$52 + ld [rHDMA2], a ld a, [hBGMapAddress + 1] and $1f - ld [rHDMA3], a ; $ff00+$53 - ld a, [hBGMapAddress] ; $ff00+$d6 - ld [rHDMA4], a ; $ff00+$54 + ld [rHDMA3], a + ld a, [hBGMapAddress] + ld [rHDMA4], a ret Function10425f: ; 10425f (41:425f) @@ -71211,13 +70249,13 @@ Function104309: decoord 0, 0, AttrMap call Function10433a ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld c, $8 ld hl, w6_d000 + $80 ld de, VBGMap1 tile $00 call Function104209 ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld c, $8 ld hl, w6_d000 ld de, VBGMap1 tile $00 @@ -71509,19 +70547,19 @@ Function104770: ; 104770 (41:4770) ld [wd153], a xor a ld [wd152], a - ld [hSCY], a ; $ff00+$d0 - ld [hSCX], a ; $ff00+$cf + ld [hSCY], a + ld [hSCX], a callba Function5958 - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a xor a lb bc, 4, 0 ld hl, VBGMap0 tile $00 call ByteFill pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld a, $60 lb bc, 4, 0 ld hl, VBGMap0 tile $00 @@ -71531,12 +70569,12 @@ Function104770: ; 104770 (41:4770) Function1047a3: ; 1047a3 (41:47a3) decoord 0, 0 call Function1047b4 - ld a, [hCGB] ; $ff00+$e6 + ld a, [hCGB] and a ret z decoord 0, 0, AttrMap ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a Function1047b4: ; 1047b4 (41:47b4) ld hl, VBGMap0 tile $00 @@ -71556,7 +70594,7 @@ Function1047b4: ; 1047b4 (41:47b4) dec b jr nz, .asm_1047bb ld a, $0 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ret LoadGraphics: ; 1047cf @@ -71565,7 +70603,7 @@ LoadGraphics: ; 1047cf xor a ld [hMapAnims], a xor a - ld [hTileAnimFrame], a ; $ff00+$df + ld [hTileAnimFrame], a callba RefreshSprites call LoadFontsExtra callba Function106594 @@ -71710,14 +70748,14 @@ DoMysteryGift: ; 1048ba (41:48ba) ld [wca01], a ld a, $14 ld [wca02], a - ld a, [rIE] ; $ff00+$ff + ld a, [rIE] push af call Function104a95 ld d, a xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a pop af - ld [rIE], a ; $ff00+$ff + ld [rIE], a push de call ClearTileMap call EnableLCD @@ -71812,7 +70850,7 @@ Function1049c2: ; 1049c2 (41:49c2) Function1049c5: ; 1049c5 (41:49c5) call PrintText ld a, $e3 - ld [rLCDC], a ; $ff00+$40 + ld [rLCDC], a ret ; 1049cd (41:49cd) @@ -71954,10 +70992,10 @@ Function104a95: ; 104a95 (41:4a95) jp nz, Function104bd0 jr asm_104b0a .asm_104ac8 - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $90 jr c, .asm_104ac8 - ld c, $56 + ld c, rRP % $100 ld a, $c0 ld [$ff00+c], a ld b, $f0 @@ -71965,19 +71003,19 @@ Function104a95: ; 104a95 (41:4a95) push bc call Function105038 ld b, $2 - ld c, $56 + ld c, rRP % $100 .asm_104add ld a, [$ff00+c] and b ld b, a - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $90 jr nc, .asm_104add .asm_104ae6 ld a, [$ff00+c] and b ld b, a - ld a, [rLY] ; $ff00+$44 + ld a, [rLY] cp $90 jr c, .asm_104ae6 ld a, b @@ -71986,7 +71024,7 @@ Function104a95: ; 104a95 (41:4a95) jr z, .asm_104a9f or a jr nz, .asm_104a9f - ld a, [$ffc4] + ld a, [hMoneyTemp + 1] bit 1, a jr z, .asm_104ad5 ld a, $10 @@ -72129,10 +71167,10 @@ Function104bd0: ; 104bd0 (41:4bd0) push af call Function104da0 xor a - ld [rIF], a ; $ff00+$f - ld a, [rIE] ; $ff00+$ff + ld [rIF], a + ld a, [rIE] or $1 - ld [rIE], a ; $ff00+$ff + ld [rIE], a ei call DelayFrame pop af @@ -72254,10 +71292,10 @@ Function104d1c: ; 104d1c (41:4d1c) push af call Function104da0 xor a - ld [rIF], a ; $ff00+$f - ld a, [rIE] ; $ff00+$ff + ld [rIF], a + ld a, [rIE] or $1 - ld [rIE], a ; $ff00+$ff + ld [rIE], a ei call DelayFrame pop af @@ -72298,9 +71336,9 @@ Function104d56: ; 104d56 (41:4d56) Function104d5e: ; 104d5e (41:4d5e) call Function104d74 ld a, $4 - ld [rIE], a ; $ff00+$ff + ld [rIE], a xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a call Function104d96 xor a ld b, a @@ -72313,25 +71351,25 @@ Function104d5e: ; 104d5e (41:4d5e) Function104d74: ; 104d74 (41:4d74) xor a - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ld a, $fe - ld [rTMA], a ; $ff00+$6 - ld [rTIMA], a ; $ff00+$5 + ld [rTMA], a + ld [rTIMA], a ld a, $2 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a or $4 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ret Function104d86: ; 104d86 (41:4d86) xor a - ld [rTAC], a ; $ff00+$7 - ld [rTMA], a ; $ff00+$6 - ld [rTIMA], a ; $ff00+$5 + ld [rTAC], a + ld [rTMA], a + ld [rTIMA], a ld a, $2 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a or $4 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ret Function104d96: ; 104d96 (41:4d96) @@ -72345,14 +71383,14 @@ Function104da0: ; 104da0 (41:4da0) xor a call Function104e8c ld a, $2 - ld [rTAC], a ; $ff00+$7 + ld [rTAC], a ret Function104da9: ; 104da9 (41:4da9) inc d ret z xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt ld a, [$ff00+c] bit 1, a @@ -72364,7 +71402,7 @@ Function104db7: ; 104db7 (41:4db7) inc d ret z xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt ld a, [$ff00+c] bit 1, a @@ -72379,7 +71417,7 @@ Function104dc5: ; 104dc5 (41:4dc5) dec d ret z xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt jr .asm_104dc8 @@ -72390,7 +71428,7 @@ Function104dd1: ; 104dd1 (41:4dd1) dec d ret z xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt jr .asm_104dd4 @@ -72402,8 +71440,8 @@ Function104ddd: ; 104ddd (41:4ddd) .asm_104de4 call Function105038 ld b, $2 - ld c, $56 - ld a, [$ffc4] + ld c, rRP % $100 + ld a, [hMoneyTemp + 1] bit 1, a jr z, .asm_104df6 ld a, $10 @@ -72417,7 +71455,7 @@ Function104ddd: ; 104ddd (41:4ddd) jr nz, .asm_104de4 Function104dfe: ; 104dfe (41:4dfe) - ld c, $56 + ld c, rRP % $100 ld d, $0 ld e, d call Function104db7 @@ -72487,15 +71525,15 @@ Function104e46: ; 104e46 (41:4e46) ret Function104e8c: ; 104e8c (41:4e8c) - ld [rRP], a ; $ff00+$56 + ld [rRP], a ld a, $ff ld [hPrintNum10], a ret Function104e93: ; 104e93 (41:4e93) xor a - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) - ld [hMathBuffer], a ; $ff00+$b8 + ld [hDivisor], a + ld [hMathBuffer], a push hl push bc ld c, $56 @@ -72511,9 +71549,9 @@ Function104e93: ; 104e93 (41:4e93) pop bc pop hl call Function104ed6 - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) - ld [hQuotient], a ; $ff00+$b4 (aliases: hMultiplicand) - ld a, [hMathBuffer] ; $ff00+$b8 + ld a, [hDivisor] + ld [hQuotient], a + ld a, [hMathBuffer] ld [$ffb5], a push hl ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) @@ -72522,10 +71560,10 @@ Function104e93: ; 104e93 (41:4e93) ld hl, hPrintNum10 ld b, $1 call Function104faf - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hQuotient] + ld [hDivisor], a ld a, [$ffb5] - ld [hMathBuffer], a ; $ff00+$b8 + ld [hMathBuffer], a pop hl ret @@ -72541,7 +71579,7 @@ Function104ed6: ; 104ed6 (41:4ed6) cpl ld b, a ld a, $f4 - ld [rTMA], a ; $ff00+$6 + ld [rTMA], a .asm_104eee inc b jr z, .asm_104f2e @@ -72549,18 +71587,18 @@ Function104ed6: ; 104ed6 (41:4ed6) ld [$ffb6], a ld a, [hli] ld e, a - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hDivisor] add e - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) - ld a, [hMathBuffer] ; $ff00+$b8 + ld [hDivisor], a + ld a, [hMathBuffer] adc $0 - ld [hMathBuffer], a ; $ff00+$b8 + ld [hMathBuffer], a .asm_104f02 xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt ld a, $c1 - ld [rRP], a ; $ff00+$56 + ld [rRP], a ld d, $1 ld a, e rlca @@ -72568,15 +71606,15 @@ Function104ed6: ; 104ed6 (41:4ed6) jr nc, .asm_104f13 inc d .asm_104f13 - ld a, [rTIMA] ; $ff00+$5 + ld a, [rTIMA] cp $f8 jr c, .asm_104f13 ld a, $c0 - ld [rRP], a ; $ff00+$56 + ld [rRP], a dec d jr z, .asm_104f25 xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt .asm_104f25 ld a, [$ffb6] @@ -72586,9 +71624,9 @@ Function104ed6: ; 104ed6 (41:4ed6) jr .asm_104f02 .asm_104f2e ld a, $fe - ld [rTMA], a ; $ff00+$6 + ld [rTMA], a xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a halt ld d, $5 call Function104dc5 @@ -72616,8 +71654,8 @@ Function104f50: ; 104f50 (41:4f50) Function104f57: ; 104f57 (41:4f57) xor a - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) - ld [hMathBuffer], a ; $ff00+$b8 + ld [hDivisor], a + ld [hMathBuffer], a push bc push hl ld hl, hQuotient ; $ffb4 (aliases: hMultiplicand) @@ -72630,13 +71668,13 @@ Function104f57: ; 104f57 (41:4f57) pop af cp b jp c, Function104f50 - ld a, [hQuotient] ; $ff00+$b4 (aliases: hMultiplicand) + ld a, [hQuotient] cp $5a jp nz, Function104f50 call Function104faf - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hDivisor] ld d, a - ld a, [hMathBuffer] ; $ff00+$b8 + ld a, [hMathBuffer] ld e, a push hl push de @@ -72661,13 +71699,13 @@ Function104f57: ; 104f57 (41:4f57) pop de pop hl ld a, d - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) + ld [hDivisor], a ld a, e - ld [hMathBuffer], a ; $ff00+$b8 + ld [hMathBuffer], a ret Function104faf: ; 104faf (41:4faf) - ld c, $56 + ld c, rRP % $100 ld d, $0 call Function104db7 jp z, Function104f42 @@ -72681,7 +71719,7 @@ Function104faf: ; 104faf (41:4faf) cpl ld b, a xor a - ld [$ffc5], a + ld [hMoneyTemp + 2], a call Function104d86 .asm_104fd2 inc b @@ -72704,10 +71742,10 @@ Function104faf: ; 104faf (41:4faf) bit 1, a jr nz, .asm_104fe5 .asm_104fed - ld a, [$ffc5] + ld a, [hMoneyTemp + 2] ld d, a - ld a, [rTIMA] ; $ff00+$5 - ld [$ffc5], a + ld a, [rTIMA] + ld [hMoneyTemp + 2], a sub d cp $12 jr c, .asm_104ffd @@ -72727,17 +71765,17 @@ Function104faf: ; 104faf (41:4faf) .asm_10500b ld a, e ld [hli], a - ld a, [hDivisor] ; $ff00+$b7 (aliases: hMultiplier) + ld a, [hDivisor] add e - ld [hDivisor], a ; $ff00+$b7 (aliases: hMultiplier) - ld a, [hMathBuffer] ; $ff00+$b8 + ld [hDivisor], a + ld a, [hMathBuffer] adc $0 - ld [hMathBuffer], a ; $ff00+$b8 + ld [hMathBuffer], a jr .asm_104fd2 .asm_10501a call Function104d74 xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a ld d, $0 call Function104da9 jp z, Function104f42 @@ -72755,18 +71793,18 @@ Function105033: ; 105033 (41:5033) Function105038: ; 105038 (41:5038) ld a, $20 - ld [rJOYP], a ; $ff00+$0 + ld [rJOYP], a rept 2 - ld a, [rJOYP] ; $ff00+$0 + ld a, [rJOYP] endr cpl and $f swap a ld b, a ld a, $10 - ld [rJOYP], a ; $ff00+$0 + ld [rJOYP], a rept 6 - ld a, [rJOYP] ; $ff00+$0 + ld a, [rJOYP] endr cpl and $f @@ -72775,11 +71813,11 @@ endr ld a, [hMoneyTemp] xor c and c - ld [$ffc4], a + ld [hMoneyTemp + 1], a ld a, c ld [hMoneyTemp], a ld a, $30 - ld [rJOYP], a ; $ff00+$0 + ld [rJOYP], a ret Function105069: ; 105069 (41:5069) @@ -73091,14 +72129,14 @@ Function105688: ; 105688 (41:5688) call Function1050fb ld a, $24 ld [wca02], a - ld a, [rIE] ; $ff00+$ff + ld a, [rIE] push af call Function104c2d ld d, a xor a - ld [rIF], a ; $ff00+$f + ld [rIF], a pop af - ld [rIE], a ; $ff00+$ff + ld [rIE], a ld a, d cp $10 jp z, Function105712 @@ -73162,7 +72200,7 @@ Function10571a: ; 10571a (41:571a) asm_105726: ; 105726 (41:5726) call PrintText ld a, $e3 - ld [rLCDC], a ; $ff00+$40 + ld [rLCDC], a ret ; 10572e (41:572e) diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm index 978a0fc14..c23f4566c 100644 --- a/misc/crystal_misc.asm +++ b/misc/crystal_misc.asm @@ -144,14 +144,14 @@ Function17a751: ; 17a751 (5e:6751) ret Function17a770: ; 17a770 (5e:6770) - ld a, [hOAMUpdate] ; $ff00+$d8 + ld a, [hOAMUpdate] push af ld a, $1 - ld [hOAMUpdate], a ; $ff00+$d8 + ld [hOAMUpdate], a call HideSprites call Function17a9cb pop af - ld [hOAMUpdate], a ; $ff00+$d8 + ld [hOAMUpdate], a ret Function17a781: ; 17a781 (5e:6781) @@ -251,7 +251,7 @@ Function17a7ff: ; 17a7ff (5e:67ff) Function17a81a: ; 17a81a (5e:681a) call IsSFXPlaying ret nc - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and $3 ret z call ExitMenu @@ -269,7 +269,7 @@ Function17a83c: ; 17a83c (5e:683c) ld a, [hJoyLast] and $f0 ld c, a - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] and $b or c ld c, a @@ -741,10 +741,10 @@ Unknown_17aaf7: ; 17aaf7 ; 17aba0 Function17aba0: ; 17aba0 (5e:6ba0) - ld a, [rVBK] ; $ff00+$4f + ld a, [rVBK] push af ld a, $1 - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, VTiles5 tile $00 ld de, GFX_17afa5 @@ -752,7 +752,7 @@ Function17aba0: ; 17aba0 (5e:6ba0) call Get2bpp pop af - ld [rVBK], a ; $ff00+$4f + ld [rVBK], a ld hl, VTiles0 tile $00 ld de, GFX_17afa5 + $4c0 @@ -766,10 +766,10 @@ Function17aba0: ; 17aba0 (5e:6ba0) ret Function17abcf: ; 17abcf (5e:6bcf) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, BANK(Unkn1Pals) - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_17ac55 ld de, Unkn1Pals ; $d000 @@ -793,7 +793,7 @@ Function17abcf: ; 17abcf (5e:6bcf) call FarCopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Function17ac0c: ; 17ac0c (5e:6c0c) diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index c11ca8a14..ef75aa5b9 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -816,16 +816,16 @@ endr Function895c7: ; 895c7 (22:55c7) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, 5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_895de ld de, wd030 ld bc, 8 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret ; 895de (22:55de) @@ -2147,10 +2147,10 @@ Function89cdf: ; 89cdf (22:5cdf) Function89d0d: ; 89d0d (22:5d0d) call Function8923c - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld c, $8 ld de, Unkn1Pals .asm_89d1c @@ -2166,7 +2166,7 @@ Function89d0d: ; 89d0d (22:5d0d) ld bc, $8 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call SetPalettes callba Function845db call Function89240 @@ -2377,16 +2377,16 @@ Function89e6f: ; 89e6f (22:5e6f) jp Function89e36 Function89e9a: ; 89e9a (22:5e9a) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_89eb1 ld de, wd028 ld bc, $8 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret ; 89eb1 (22:5eb1) @@ -3383,10 +3383,10 @@ Function8a5a3: ; 8a5a3 (22:65a3) ret Function8a5b6: ; 8a5b6 (22:65b6) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_8a5e5 ld de, wd020 ld bc, $18 @@ -3400,7 +3400,7 @@ Function8a5b6: ; 8a5b6 (22:65b6) ld bc, $8 call CopyBytes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret ; 8a5e5 (22:65e5) diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index 6502d9043..c1f671bf2 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -252,7 +252,7 @@ Function8b45c: ; 8b45c (22:745c) call Function8b4fd call Function89c44 ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a pop bc call Function8b3dd jr nc, .asm_8b46e @@ -809,9 +809,9 @@ Function8b7bd: ; 8b7bd ld a, [wd032] and a jr z, .asm_8b7e0 - ld a, [wcf81] + ld a, [wMenuFlags] set 3, a - ld [wcf81], a + ld [wMenuFlags], a .asm_8b7e0 ld a, [wd0e3] diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 7b7bc68f7..d3705e725 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -1825,7 +1825,7 @@ Function100b45: ; 100b45 ; 100b7a Function100b7a: ; 100b7a - ld hl, Function1c66 + ld hl, CopyMenuData2 ld a, [wcf94] rst FarCall callba Function24085 @@ -2088,7 +2088,7 @@ Function100d67: ; 100d67 call UpdateSprites call Function1c89 call WaitBGMap - call Function1c66 + call CopyMenuData2 call Function1c10 ld hl, wcfa5 set 6, [hl] diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index c250da03f..c555ed848 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -7667,10 +7667,10 @@ Function11765d: ; 11765d (45:765d) Function11766b: ; 11766b (45:766b) call Function117699 - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call Function1176ee ld a, $5 call GetSRAMBank @@ -7683,7 +7683,7 @@ Function11766b: ; 11766b (45:766b) call CopyBytes call CloseSRAM pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Function117699: ; 117699 (45:7699) @@ -7973,11 +7973,11 @@ Function1178aa: ; 1178aa (45:78aa) ld hl, MenuDataHeader_1179b5 call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile ld hl, MenuDataHeader_1179bd call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile callba Function104061 hlcoord 16, 8 ld de, String_1179c5 @@ -7993,7 +7993,7 @@ Function1178aa: ; 1178aa (45:78aa) jp Function117a0a Function1178e8: ; 1178e8 (45:78e8) - ld a, [hJoyPressed] ; $ff00+$a7 + ld a, [hJoyPressed] cp $2 jr z, .asm_117939 cp $1 @@ -8076,7 +8076,7 @@ Function117984: ; 117984 (45:7984) ld hl, MenuDataHeader_1179b5 call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile callba Function104061 hlcoord 1, 14 ld de, String_1179e1 @@ -8236,7 +8236,7 @@ Function117b14: ld hl, Data117cbc call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile jp Function117cdd Function117b28: @@ -8248,7 +8248,7 @@ Function117b31: ld hl, Data117cc4 call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile hlcoord 16, 8 ld de, YesNo117ccc call PlaceString @@ -8386,7 +8386,7 @@ Function117c4a: ld hl, Data117cbc call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile callba Function104061 ld hl, MobileStadiumSuccessText call PrintText diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 9e22761b4..ee80a1388 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -311,10 +311,10 @@ Function118284: ; 118284 ld [wcd34], a ld a, $5 ld [wc3f0], a - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $3 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a .asm_11829d call JoyTextDelay call Function118473 @@ -334,7 +334,7 @@ Function118284: ; 118284 cp [hl] jr nz, .asm_11829d pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call Function118452 ret ; 1182d5 (46:42d5) @@ -1038,7 +1038,7 @@ Function11878d: ; 11878d (46:478d) and $1 jr z, .asm_1187a7 ld a, $3 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a .asm_1187a7 jp Function119e2e .asm_1187aa @@ -1066,7 +1066,7 @@ Function11878d: ; 11878d (46:478d) jr nz, .asm_118803 set 0, [hl] ld a, $6 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld de, Unkn1Pals ld bc, $1000 ld a, [hl] @@ -1111,7 +1111,7 @@ Function118821: ; 118821 (46:4821) jr c, .asm_11884a cp $4 jr z, .asm_11884a - ld a, [hJoyDown] ; $ff00+$a8 + ld a, [hJoyDown] cp $5 jr nz, .asm_11884a ld a, $a @@ -1285,7 +1285,7 @@ Function118936: ld hl, MenuDataHeader_119cf7 call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile call Function321c hlcoord 16, 8, AttrMap ld a, $40 @@ -4092,10 +4092,10 @@ String_119d8c: ; 119d93 Function119d93: ; 119d93 (46:5d93) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [wcd4f] ld c, 10 call SimpleMultiply @@ -4122,7 +4122,7 @@ Function119d93: ; 119d93 (46:5d93) dec a jr nz, .asm_119daf pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a and a ret .asm_119dc6 @@ -4130,18 +4130,18 @@ Function119d93: ; 119d93 (46:5d93) ld a, $4 ld [wcf66], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a scf ret Function119dd1: ; 119dd1 (46:5dd1) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, [wcd4f] cp 70 / 10 jr nc, .asm_119e08 ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, PartyMon1Level ld bc, PARTYMON_STRUCT_LENGTH ld de, PartySpecies @@ -4169,7 +4169,7 @@ Function119dd1: ; 119dd1 (46:5dd1) jr nz, .asm_119deb .asm_119e08 pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a and a ret .asm_119e0d @@ -4184,7 +4184,7 @@ Function119dd1: ; 119dd1 (46:5dd1) ld a, $a ld [wcf66], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a scf ret ; 119e2b (46:5e2b) @@ -4333,15 +4333,15 @@ Function119ec2: ; 119ec2 (46:5ec2) ret Function119ed8: ; 119ed8 (46:5ed8) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] ld [wcd8c], a ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call Function119eee ld a, [wcd8c] - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $1 - ld [hBGMapMode], a ; $ff00+$d4 + ld [hBGMapMode], a ret Function119eee: ; 119eee (46:5eee) @@ -4740,7 +4740,7 @@ Function11a207: ; 11a207 ld hl, MenuDataHeader_11a2de call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile call Function321c hlcoord 16, 8 ld de, String_11a2cf diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 698858b2e..4a14c61bf 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -1163,7 +1163,7 @@ Function16d77a: ; 16d77a ld b, a ld a, [wcfa2] ld c, a - call GetTileCoord + call Coord2Tile ld a, [wcfa7] swap a and $f diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index d82b84e82..85681221a 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -673,7 +673,7 @@ Function170737: ; 170737 (5c:4737) Function17073e: ; 17073e (5c:473e) call Random - ld a, [hRandomAdd] ; $ff00+$e1 + ld a, [hRandomAdd] and $7 cp $6 jr c, .asm_17074b @@ -842,28 +842,28 @@ Function17081d: ; 17081d (5c:481d) Function170868: ; 170868 (5c:4868) ld a, BANK(sbe47) call GetSRAMBank - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $3 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [wd000 + $800] ld [sbe47], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call CloseSRAM ret Function170881: ; 170881 (5c:4881) ld a, BANK(sbe47) call GetSRAMBank - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $3 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [sbe47] ld [wd000 + $800], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call CloseSRAM ret @@ -1032,14 +1032,14 @@ String_1709a4: ; 1709a4 db "なぞナゾ@@" Function1709aa: ; 1709aa (5c:49aa) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, BANK(w3_d090) - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, [w3_d090] ld [ScriptVar], a pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Function1709bb: ; 1709bb (5c:49bb) @@ -1575,13 +1575,13 @@ Function1719c8: ; 1719c8 (5c:59c8) Function1719d6: ; 1719d6 (5c:59d6) callba Function1183cb call Function1719ed - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a call Function171a11 pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Function1719ed: ; 1719ed (5c:59ed) @@ -1656,13 +1656,13 @@ Function171a5d: ; 171a5d (5c:5a5d) ld [wc302], a ld a, $a call Function3e32 - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a callba Function118452 pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld a, $a ld [wcd49], a ret @@ -1700,13 +1700,13 @@ Function171ad7: ; 171ad7 (5c:5ad7) jp Function171c66 Function171aec: ; 171aec (5c:5aec) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $1 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a callba Function118452 pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a hlcoord 2, 6 ld a, $8 .asm_171b01 @@ -1860,7 +1860,7 @@ Function171beb: ; 171beb (5c:5beb) ld hl, MenuDataHeader_171c6b call LoadMenuDataHeader call MenuBox - call GetMemTileCoord + call MenuBoxCoord2Tile callba Function104061 hlcoord 1, 14 ld de, String_171c73 @@ -1952,10 +1952,10 @@ Function171c87: ; 171c87 (5c:5c87) ret Function171ccd: ; 171ccd (5c:5ccd) - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_171d71 ld de, Unkn1Pals ld bc, $40 @@ -1967,7 +1967,7 @@ Function171ccd: ; 171ccd (5c:5ccd) ld [hl], a call SetPalettes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret Function171cf0: ; 171cf0 (5c:5cf0) @@ -2115,10 +2115,10 @@ Function172e78: ; 172e78 (5c:6e78) ; 172eb9 (5c:6eb9) Function172eb9: - ld a, [rSVBK] ; $ff00+$70 + ld a, [rSVBK] push af ld a, $5 - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ld hl, Palette_172edf ld de, Unkn1Pals ld bc, $40 @@ -2129,7 +2129,7 @@ Function172eb9: call CopyBytes call SetPalettes pop af - ld [rSVBK], a ; $ff00+$70 + ld [rSVBK], a ret ; 172edf (5c:6edf) diff --git a/wram.asm b/wram.asm index 99b5523e8..6dfe85168 100644 --- a/wram.asm +++ b/wram.asm @@ -724,12 +724,13 @@ wc6e9:: CurEnemyMoveNum:: ; c6e9 ds 1 +wEnemyHPAtTimeOfPlayerSwitch:: wc6ea:: ds 1 wc6eb:: ds 1 wPayDayMoney:: ds 3 ; c6ec - ds 1 - +wSafariMonAngerCount:: ds 1 +wSafariMonEating:: wc6f0:: ds 2 wEnemyBackupDVs:: ; used when enemy is transformed wc6f2:: ds 2 @@ -749,14 +750,14 @@ wc6f9:: LastPlayerCounterMove:: ; c6f9 ds 1 -wc6fa:: ds 1 +wEnemyMinimized:: ds 1 ; c6fa AlreadyFailed:: ; c6fb ds 1 wc6fc:: ds 1 wc6fd:: ds 1 -wc6fe:: ds 1 +wPlayerMinimized:: ds 1 ; c6fe wc6ff:: PlayerScreens:: ; c6ff ; bit @@ -870,8 +871,8 @@ wWildMonPP:: wc739:: ds 4 wc73d:: ds 1 wc73e:: ds 1 -wc73f:: ds 1 -wc740:: ds 1 +wPlayerJustGotFrozen:: ds 1 +wEnemyJustGotFrozen:: ds 1 wc741:: wBattleEnd:: ; c741 @@ -1241,6 +1242,7 @@ Requested1bppSource:: ; cf6d Requested1bppDest:: ; cf6f ds 2 +; something to do with menu wcf71:: ds 1 wcf72:: ds 1 wcf73:: ds 1 @@ -1252,21 +1254,31 @@ wcf76:: ds 1 wcf77:: ds 1 wcf78:: ds 9 -; menu data header buffer (ds 16) -wcf81:: ds 1 - -; dw related to tilemap +; menu data header +wMenuDataHeader:: ; cf81 +wMenuFlags:: ds 1 wMenuBorderTopCoord:: ds 1 wMenuBorderLeftCoord:: ds 1 wMenuBorderBottomCoord:: ds 1 wMenuBorderRightCoord:: ds 1 - -wcf86:: ds 1 -wcf87:: ds 1 +wMenuData2Pointer:: ds 2 wMenuCursorBuffer:: ds 2 -wcf8a:: ds 7 ; menu data 2 bank? +; end menu data header +wMenuDataBank:: ds 1 ; menu data bank? + ds 6 +wMenuDataHeaderEnd:: + +wMenuData2:: +wMenuData2Flags:: ds 1 ; cf91 +; bit 7: When set, start printing text one tile to the right of the border +; bit 6: When set, start printing text one tile below the border +; bit 5: ???? +; bit 4: ???? +; bit 3: ???? +; bit 2: ???? +; bit 1: ???? +; bit 0: ???? -wMenuData2Flags:: ds 1 wMenuData2Items:: ds 1 wcf93:: ds 1 wcf94:: ds 1 @@ -1276,12 +1288,14 @@ wcf97:: ds 1 ; addr hi wcf98:: ds 3 wcf9b:: ds 3 wcf9e:: ds 3 +wMenuData2End:: wcfa1:: ds 1 + wcfa2:: ds 1 wcfa3:: ds 1 wcfa4:: ds 1 -wcfa5:: ds 1 -wcfa6:: ds 1 +wcfa5:: ds 1 ; dynamic menu flags? +wcfa6:: ds 1 ; dynamic menu flags? wcfa7:: ds 1 wcfa8:: ds 1 MenuSelection2:: ds 1 @@ -1389,6 +1403,7 @@ SECTION "WRAM 1", WRAMX, BANK [1] MiscBuffer0:: wd000:: ds 1 MiscBuffer1:: +DefaultSpawnpoint:: wd001:: ds 1 wd002:: MiscBuffer2:: -- cgit v1.2.3 From b1e63485d8747ef4946b56a5d0c07c4fdfaf7186 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 10 Nov 2015 18:17:04 -0500 Subject: Resolve s1 addresses in battle/core.asm --- battle/core.asm | 123 ++++++++++++++++++++++++++++++-------------------------- sram.asm | 12 ++++-- 2 files changed, 73 insertions(+), 62 deletions(-) diff --git a/battle/core.asm b/battle/core.asm index 39d7d1102..fdc1287f8 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -8831,43 +8831,47 @@ Function3f77c: ; 3f77c callba CheckMobileBattleError jp c, Function3f80f call Function3f830 - jr nz, .asm_3f797 + jr nz, .proceed ld hl, wcd2a bit 4, [hl] - jr z, .asm_3f797 + jr z, .proceed callba Function2b930 -.asm_3f797 +.proceed ld a, [wBattleResult] and $f cp $1 - jr c, .asm_3f7ad - jr z, .asm_3f7b8 + jr c, .victory + jr z, .loss callba MobileFn_106107 ld de, .Draw - jr .asm_3f7c3 + jr .store_result -.asm_3f7ad +.victory callba MobileFn_1060fb ld de, .Win - jr .asm_3f7c3 + jr .store_result -.asm_3f7b8 +.loss callba MobileFn_106101 ld de, .Lose - jr .asm_3f7c3 + jr .store_result -.asm_3f7c3 +.store_result hlcoord 6, 8 call PlaceString callba BackupMobileEventIndex - ld c, $c8 + ld c, 200 call DelayFrames + ld a, BANK(sLinkBattleStats) call GetSRAMBank + call Function3fa42 call Function3f85f + call CloseSRAM + call Function3f830 jr z, .asm_3f7ee call Functiona80 @@ -8875,7 +8879,7 @@ Function3f77c: ; 3f77c ret .asm_3f7ee - ld c, $c8 + ld c, 200 call DelayFrames call ClearTileMap ret @@ -9178,16 +9182,16 @@ GetRoamMonSpecies: ; 3fa31 Function3fa42: ; 3fa42 ld hl, wd276 ld de, StringBuffer1 - ld bc, $0002 + ld bc, 2 call CopyBytes ld hl, wd26b - ld bc, $000a + ld bc, 10 call CopyBytes - ld hl, $b254 + ld hl, s1_b254 call Function3faa0 - ld hl, $b266 - ld d, $5 -.asm_3fa62 + ld hl, s1_b266 + ld d, 5 +.loop push hl rept 2 inc hl @@ -9197,38 +9201,38 @@ rept 2 dec hl endr and a - jr z, .asm_3fa85 + jr z, .copy push de - ld bc, $000c + ld bc, 12 ld de, StringBuffer1 call CompareLong pop de pop hl - jr c, .asm_3fa99 - ld bc, $0012 + jr c, .done + ld bc, 18 add hl, bc dec d - jr nz, .asm_3fa62 + jr nz, .loop ld bc, -18 add hl, bc push hl -.asm_3fa85 +.copy ld d, h ld e, l ld hl, StringBuffer1 - ld bc, $000c + ld bc, 12 call CopyBytes - ld b, $6 + ld b, 6 xor a -.asm_3fa93 +.loop2 ld [de], a inc de dec b - jr nz, .asm_3fa93 + jr nz, .loop2 pop hl -.asm_3fa99 +.done call Function3faa0 call Function3fac8 ret @@ -9238,13 +9242,13 @@ Function3faa0: ; 3faa0 ld a, [wBattleResult] and $f cp $1 - ld bc, $000d - jr c, .asm_3fab4 - ld bc, $000f - jr z, .asm_3fab4 - ld bc, $0011 + ld bc, 13 + jr c, .okay + ld bc, 15 + jr z, .okay + ld bc, 17 -.asm_3fab4 +.okay add hl, bc call Function3fabe ret nc @@ -9268,9 +9272,9 @@ Function3fabe: ; 3fabe Function3fac8: ; 3fac8 ld b, $5 - ld hl, $b277 + ld hl, s1_b277 ld de, DefaultFlypoint -.asm_3fad0 +.loop push bc push de push hl @@ -9286,14 +9290,14 @@ Function3fac8: ; 3fac8 ld a, c ld [de], a inc de - ld bc, $0012 + ld bc, 18 add hl, bc pop bc dec b - jr nz, .asm_3fad0 + jr nz, .loop ld b, $0 ld c, $1 -.asm_3faed +.loop2 ld a, b rept 2 add b @@ -9318,45 +9322,45 @@ endr ld c, $3 call StringCmp pop bc - jr z, .asm_3fb10 - jr nc, .asm_3fb1f + jr z, .equal + jr nc, .done -.asm_3fb10 +.equal inc c ld a, c cp $5 - jr nz, .asm_3faed + jr nz, .loop2 inc b ld c, b inc c ld a, b cp $4 - jr nz, .asm_3faed + jr nz, .loop2 ret -.asm_3fb1f +.done push bc ld a, b - ld bc, $0012 - ld hl, $b266 + ld bc, 18 + ld hl, s1_b266 call AddNTimes push hl ld de, DefaultFlypoint - ld bc, $0012 + ld bc, 18 call CopyBytes pop hl pop bc push hl ld a, c - ld bc, $0012 - ld hl, $b266 + ld bc, 18 + ld hl, s1_b266 call AddNTimes pop de push hl - ld bc, $0012 + ld bc, 18 call CopyBytes ld hl, DefaultFlypoint - ld bc, $0012 + ld bc, 18 pop de call CopyBytes ret @@ -9374,10 +9378,10 @@ Function3fb54: ; 3fb54 ld a, [hld] adc b ld b, a - jr nc, .asm_3fb63 + jr nc, .okay inc e -.asm_3fb63 +.okay ld a, [hld] add c ld c, a @@ -9439,14 +9443,17 @@ Function3fbd6: ; 3fbd6 push af ld a, $6 ld [rSVBK], a + ld hl, w6_d000 - ld bc, $400 - ld a, $7f + ld bc, w6_d400 - w6_d000 + ld a, " " call ByteFill + ld de, w6_d000 ld hl, VBGMap0 lb bc, BANK(Function3fbd6), $40 call Request2bpp + pop af ld [rSVBK], a ret diff --git a/sram.asm b/sram.asm index 67a4b73e9..ae8f6e062 100644 --- a/sram.asm +++ b/sram.asm @@ -81,13 +81,17 @@ s1_ad0f:: ds 1 box sBox ; b160 - ds $100 + ds $f4 +s1_b254:: ds $c sLinkBattleStats:: ; b260 sLinkBattleWins:: ds 2 -sLinkBattleLosses:: ds 2 -sLinkBattleDraws:: ds 2 - ds 90 +sLinkBattleLosses:: ds 2 ; b262 +sLinkBattleDraws:: ds 2 ; b264 +s1_b266:: + ds 17 +s1_b277:: + ds 73 sLinkBattleStatsEnd:: sHallOfFame:: ; b2c0 -- cgit v1.2.3 From 8fb01de917b040e4e5d7f392c5b01f33a1341033 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 10 Nov 2015 19:51:13 -0500 Subject: No more DefaultFlypoint --- battle/ai/items.asm | 2 +- battle/core.asm | 152 +++++++++++++++--------------- battle/effect_commands.asm | 24 ++--- engine/link.asm | 22 ++--- engine/party_menu.asm | 2 +- event/kurt.asm | 8 +- items/item_effects.asm | 16 ++-- main.asm | 226 ++++++++++++++++++++++----------------------- misc/mobile_22.asm | 26 +++--- misc/mobile_22_2.asm | 6 +- misc/mobile_40.asm | 10 +- misc/mobile_45.asm | 2 +- misc/mobile_46.asm | 20 ++-- misc/mobile_5b.asm | 18 ++-- wram.asm | 9 -- 15 files changed, 267 insertions(+), 276 deletions(-) diff --git a/battle/ai/items.asm b/battle/ai/items.asm index 56a95ac4d..7c11e70b2 100644 --- a/battle/ai/items.asm +++ b/battle/ai/items.asm @@ -725,7 +725,7 @@ AI_Switch: ; 3846c call PrintText .skiptext - ld a, $1 + ld a, 1 ld [wd264], a callab NewEnemyMonStatus callab ResetEnemyStatLevels diff --git a/battle/core.asm b/battle/core.asm index fdc1287f8..66250ed45 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -240,7 +240,7 @@ Function3c12f: ; 3c12f MobileFn_3c1bf: mobile ld a, $5 call GetSRAMBank - ld hl, $a89b + ld hl, $a89b ; s5_a89b inc [hl] jr nz, .finish dec hl @@ -2145,7 +2145,7 @@ HandleEnemyMonFaint: ; 3cd55 ld hl, BattleMonHP ld a, [hli] or [hl] - jr nz, .asm_3cdba + jr nz, .player_mon_not_fainted call AskUseNextPokemon jr nc, .dont_flee @@ -2155,7 +2155,7 @@ HandleEnemyMonFaint: ; 3cd55 ret .dont_flee - call Function3d227 + call ForcePlayerMonChoice call CheckMobileBattleError jp c, WildFled_EnemyFled_LinkBattleCanceled @@ -2165,7 +2165,7 @@ HandleEnemyMonFaint: ; 3cd55 jp z, WildFled_EnemyFled_LinkBattleCanceled jr Function3cdca -.asm_3cdba +.player_mon_not_fainted ld a, $1 ld [wd0ec], a call Function3cf4a @@ -2178,17 +2178,17 @@ HandleEnemyMonFaint: ; 3cd55 Function3cdca: ; 3cdca ld a, [hLinkPlayerNumber] cp $1 - jr z, .asm_3cde6 + jr z, .player_1 call ClearSprites hlcoord 1, 0 lb bc, 4, 10 call ClearBox - call Function3d2b3 + call PlayerPartyMonEntrance ld a, $1 call EnemyPartyMonEntrance - jr .asm_3cdfc + jr .done -.asm_3cde6 +.player_1 ld a, [CurPartyMon] push af ld a, $1 @@ -2197,9 +2197,9 @@ Function3cdca: ; 3cdca call LoadTileMapToTempTileMap pop af ld [CurPartyMon], a - call Function3d2b3 + call PlayerPartyMonEntrance -.asm_3cdfc +.done xor a ld [wd0ec], a ret @@ -2209,7 +2209,7 @@ Function3ce01: ; 3ce01 call UpdateBattleMonInParty ld a, [wBattleMode] dec a - jr z, .asm_3ce16 + jr z, .wild ld a, [CurOTMon] ld hl, OTPartyMon1HP call GetPartyLocation @@ -2217,7 +2217,7 @@ Function3ce01: ; 3ce01 ld [hli], a ld [hl], a -.asm_3ce16 +.wild ld hl, PlayerSubStatus3 res SUBSTATUS_IN_LOOP, [hl] xor a @@ -2228,25 +2228,25 @@ Function3ce01: ; 3ce01 call BreakAttraction ld a, [wBattleMode] dec a - jr z, .asm_3ce2f - jr .asm_3ce37 + jr z, .wild2 + jr .trainer -.asm_3ce2f +.wild2 call StopDangerSound ld a, $1 ld [wc6fd], a -.asm_3ce37 +.trainer ld hl, BattleMonHP ld a, [hli] or [hl] - jr nz, .asm_3ce47 + jr nz, .player_mon_did_not_faint ld a, [wc6f7] and a - jr nz, .asm_3ce47 - call Function3d1aa + jr nz, .player_mon_did_not_faint + call PlayerMonFaintHappinessMod -.asm_3ce47 +.player_mon_did_not_faint call CheckPlayerPartyForFitPkmn ld a, d and a @@ -2260,16 +2260,16 @@ Function3ce01: ; 3ce01 and $c0 ld [wBattleResult], a call DoOthersShareExperience - jr z, .asm_3ce72 + jr z, .skip_exp ld hl, EnemyMonBaseStats ld b, $7 -.asm_3ce6c +.loop srl [hl] inc hl dec b - jr nz, .asm_3ce6c + jr nz, .loop -.asm_3ce72 +.skip_exp ld hl, EnemyMonBaseStats ld de, wc720 ld bc, EnemyMonEnd - EnemyMonBaseStats @@ -2777,7 +2777,7 @@ HandlePlayerMonFaint: ; 3d14e call z, FaintEnemyPokemon ld a, $1 ld [wc6f7], a - call Function3d1aa + call PlayerMonFaintHappinessMod call CheckPlayerPartyForFitPkmn ld a, d and a @@ -2800,13 +2800,13 @@ HandlePlayerMonFaint: ; 3d14e .notfainted call AskUseNextPokemon - jr nc, .asm_3d190 + jr nc, .switch ld a, $1 ld [BattleEnded], a ret -.asm_3d190 - call Function3d227 +.switch + call ForcePlayerMonChoice call CheckMobileBattleError jp c, WildFled_EnemyFled_LinkBattleCanceled ld a, c @@ -2819,7 +2819,7 @@ HandlePlayerMonFaint: ; 3d14e jp Function3cdca ; 3d1aa -Function3d1aa: ; 3d1aa +PlayerMonFaintHappinessMod: ; 3d1aa ld a, [CurBattleMon] ld c, a ld hl, wBattleParticipantsNotFainted @@ -2841,10 +2841,10 @@ Function3d1aa: ; 3d1aa ld b, a ld a, [EnemyMonLevel] cp b - jr c, .asm_3d1dc + jr c, .got_param ld c, HAPPINESS_BEATENBYSTRONGFOE -.asm_3d1dc +.got_param ld a, [CurBattleMon] ld [CurPartyMon], a callab ChangeHappiness @@ -2855,7 +2855,7 @@ Function3d1aa: ; 3d1aa ld a, [wc6f7] and a ret z - ret + ret ; ?????????? ; 3d1f8 AskUseNextPokemon: ; 3d1f8 @@ -2887,7 +2887,7 @@ AskUseNextPokemon: ; 3d1f8 jp TryToRunAwayFromBattle ; 3d227 -Function3d227: ; 3d227 +ForcePlayerMonChoice: ; 3d227 call EmptyBattleTextBox call LoadPartyMenuDataHeader call Function3d2f7 @@ -2903,16 +2903,16 @@ Function3d227: ; 3d227 xor a ld [wd0ec], a call CheckMobileBattleError - jr c, .asm_3d251 + jr c, .enemy_fainted_mobile_error ld hl, EnemyMonHP ld a, [hli] or [hl] - jr nz, .asm_3d26c + jr nz, .send_out_pokemon -.asm_3d251 +.enemy_fainted_mobile_error call ClearSprites call WhiteBGMap - call Function3eda6 + call _LoadHPBar call ExitMenu call LoadTileMapToTempTileMap call WaitBGMap @@ -2922,7 +2922,7 @@ Function3d227: ; 3d227 ld c, a ret -.asm_3d26c +.send_out_pokemon call ClearSprites ld a, [CurBattleMon] ld [LastPlayerMon], a @@ -2933,7 +2933,7 @@ Function3d227: ; 3d227 call ResetPlayerStatLevels call ClearPalettes call DelayFrame - call Function3eda6 + call _LoadHPBar call WriteBackup call ClearSGB call SetPalettes @@ -2951,7 +2951,7 @@ Function3d227: ; 3d227 ret ; 3d2b3 -Function3d2b3: ; 3d2b3 +PlayerPartyMonEntrance: ; 3d2b3 ld a, [CurBattleMon] ld [LastPlayerMon], a ld a, [CurPartyMon] @@ -3306,13 +3306,13 @@ Function3d4ae: ; 3d4ae ; 3d4c3 -Function3d4c3: ; 3d4c3 +ForceEnemySwitch: ; 3d4c3 call ResetEnemyBattleVars ld a, [wEnemySwitchMonIndex] dec a ld b, a call LoadEnemyPkmnToSwitchTo - call Function3d7a0 + call ClearEnemyMonBox call NewEnemyMonStatus call ResetEnemyStatLevels call Function_SetEnemyPkmnAndSendOutAnimation @@ -3323,11 +3323,11 @@ Function3d4c3: ; 3d4c3 EnemySwitch: ; 3d4e1 - call Function3d714 + call CheckWhetherToAskSwitch jr nc, EnemySwitch_SetMode ; Shift Mode call ResetEnemyBattleVars - call Function3d533 + call CheckWhetherSwitchmonIsPredetermined jr c, .skip call FindPkmnInOTPartyToSwitchIntoBattle .skip @@ -3335,7 +3335,7 @@ EnemySwitch: ; 3d4e1 call LoadEnemyPkmnToSwitchTo call OfferSwitch push af - call Function3d7a0 + call ClearEnemyMonBox call Function_BattleTextEnemySentOut call Function_SetEnemyPkmnAndSendOutAnimation pop af @@ -3353,7 +3353,7 @@ EnemySwitch: ; 3d4e1 EnemySwitch_SetMode: ; 3d517 call ResetEnemyBattleVars - call Function3d533 + call CheckWhetherSwitchmonIsPredetermined jr c, .skip call FindPkmnInOTPartyToSwitchIntoBattle .skip @@ -3361,12 +3361,12 @@ EnemySwitch_SetMode: ; 3d517 call LoadEnemyPkmnToSwitchTo ld a, 1 ld [wEnemyIsSwitching], a - call Function3d7a0 + call ClearEnemyMonBox call Function_BattleTextEnemySentOut jp Function_SetEnemyPkmnAndSendOutAnimation ; 3d533 -Function3d533: ; 3d533 +CheckWhetherSwitchmonIsPredetermined: ; 3d533 ; returns carry if: ??? ld a, [wLinkMode] and a @@ -3662,19 +3662,19 @@ LoadEnemyPkmnToSwitchTo: ; 3d6ca ret ; 3d714 -Function3d714: ; 3d714 +CheckWhetherToAskSwitch: ; 3d714 ld a, [wd264] dec a - jp z, .asm_3d749 + jp z, .return_nc ld a, [PartyCount] dec a - jp z, .asm_3d749 + jp z, .return_nc ld a, [wLinkMode] and a - jp nz, .asm_3d749 + jp nz, .return_nc ld a, [Options] bit BATTLE_SHIFT, a - jr nz, .asm_3d749 + jr nz, .return_nc ld a, [CurPartyMon] push af ld a, [CurBattleMon] @@ -3683,11 +3683,11 @@ Function3d714: ; 3d714 pop bc ld a, b ld [CurPartyMon], a - jr c, .asm_3d749 + jr c, .return_nc scf ret -.asm_3d749 +.return_nc and a ret ; 3d74b @@ -3712,7 +3712,7 @@ OfferSwitch: ; 3d74b ld [CurBattleMon], a call ClearPalettes call DelayFrame - call Function3eda6 + call _LoadHPBar pop af ld [CurPartyMon], a xor a @@ -3724,7 +3724,7 @@ OfferSwitch: ; 3d74b .canceled_switch call ClearPalettes call DelayFrame - call Function3eda6 + call _LoadHPBar .said_no pop af @@ -3733,7 +3733,7 @@ OfferSwitch: ; 3d74b ret ; 3d7a0 -Function3d7a0: ; 3d7a0 +ClearEnemyMonBox: ; 3d7a0 xor a ld [hBGMapMode], a call ExitMenu @@ -5266,7 +5266,7 @@ BattleMenu_Pack: ; 3e1c7 .didnt_use_item call ClearPalettes call DelayFrame - call Function3ed9f + call _LoadBattleFontsHPBar call GetMonBackpic call GetMonFrontpic call ExitMenu @@ -5295,7 +5295,7 @@ Function3e234: ; 3e234 .asm_3e24a xor a ld [hBGMapMode], a - call Function3ed9f + call _LoadBattleFontsHPBar call ClearSprites ld a, [BattleType] cp BATTLETYPE_TUTORIAL @@ -5369,7 +5369,7 @@ Function3e299: call ClearSprites call ClearPalettes call DelayFrame - call Function3eda6 + call _LoadHPBar call WriteBackup call LoadTileMapToTempTileMap call ClearSGB @@ -5452,7 +5452,7 @@ Function3e358: ; 3e358 call ClearPalettes call DelayFrame call ClearSprites - call Function3eda6 + call _LoadHPBar call WriteBackup call ClearSGB call SetPalettes @@ -7248,12 +7248,12 @@ BoostStat: ; 3ed7c ; 3ed9f -Function3ed9f: ; 3ed9f +_LoadBattleFontsHPBar: ; 3ed9f callab LoadBattleFontsHPBar ret ; 3eda6 -Function3eda6: ; 3eda6 +_LoadHPBar: ; 3eda6 callab LoadHPBar ret ; 3edad @@ -7842,11 +7842,11 @@ Function3f136: ; 3f136 ld hl, CurPartyMon ld a, [CurBattleMon] cp [hl] - jp nz, .asm_3f219 + jp nz, .finish ld a, [BattleMonLevel] cp MAX_LEVEL - jp nc, .asm_3f219 + jp nc, .finish ld a, [hProduct + 3] ld [wd004], a @@ -7855,7 +7855,7 @@ Function3f136: ; 3f136 ld [wd003], a push af xor a - ld [DefaultFlypoint], a + ld [wd002], a xor a ; PARTYMON ld [MonType], a predef CopyPkmnToTempMon @@ -7964,7 +7964,7 @@ endr pop af ld [hProduct + 3], a -.asm_3f219 +.finish pop bc ret ; 3f21b @@ -8957,7 +8957,7 @@ Function3f85f: ; 3f85f push hl ld h, d ld l, e - ld de, DefaultFlypoint + ld de, wd002 ld bc, $000a call CopyBytes ld a, $50 @@ -8965,7 +8965,7 @@ Function3f85f: ; 3f85f inc de ld bc, $0006 call CopyBytes - ld de, DefaultFlypoint + ld de, wd002 pop hl call PlaceString pop hl @@ -9273,7 +9273,7 @@ Function3fabe: ; 3fabe Function3fac8: ; 3fac8 ld b, $5 ld hl, s1_b277 - ld de, DefaultFlypoint + ld de, wd002 .loop push bc push de @@ -9304,7 +9304,7 @@ rept 2 endr ld e, a ld d, $0 - ld hl, DefaultFlypoint + ld hl, wd002 add hl, de push hl ld a, c @@ -9313,7 +9313,7 @@ rept 2 endr ld e, a ld d, $0 - ld hl, DefaultFlypoint + ld hl, wd002 add hl, de ld d, h ld e, l @@ -9345,7 +9345,7 @@ endr ld hl, s1_b266 call AddNTimes push hl - ld de, DefaultFlypoint + ld de, wd002 ld bc, 18 call CopyBytes pop hl @@ -9359,7 +9359,7 @@ endr push hl ld bc, 18 call CopyBytes - ld hl, DefaultFlypoint + ld hl, wd002 ld bc, 18 pop de call CopyBytes @@ -9404,7 +9404,7 @@ Function3fb6c: ; 3fb6c lb bc, 3, 7 call ClearBox call LoadStandardFont - call Function3ed9f + call _LoadBattleFontsHPBar call Function3fbd6 xor a ld [hMapAnims], a diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index ed1fb85a1..5bfb92712 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -3109,7 +3109,7 @@ BattleCommand_BeatUp: ; 35461 call DelayFrames xor a ld [PlayerRolloutCount], a - ld [DefaultFlypoint], a + ld [wd002], a ld [wc72d], a jr .got_mon @@ -3118,10 +3118,10 @@ BattleCommand_BeatUp: ; 35461 ld b, a ld a, [PartyCount] sub b - ld [DefaultFlypoint], a + ld [wd002], a .got_mon - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, PartyMonNicknames call GetNick ld a, MON_HP @@ -3129,7 +3129,7 @@ BattleCommand_BeatUp: ; 35461 ld a, [hli] or [hl] jp z, .beatup_fail ; fainted - ld a, [DefaultFlypoint] + ld a, [wd002] ld c, a ld a, [CurBattleMon] cp [hl] @@ -3177,7 +3177,7 @@ BattleCommand_BeatUp: ; 35461 xor a ld [EnemyRolloutCount], a - ld [DefaultFlypoint], a + ld [wd002], a ld [wc72d], a jr .enemy_continue @@ -3186,7 +3186,7 @@ BattleCommand_BeatUp: ; 35461 ld b, a ld a, [OTPartyCount] sub b - ld [DefaultFlypoint], a + ld [wd002], a .enemy_continue ld a, [wBattleMode] dec a @@ -3200,7 +3200,7 @@ BattleCommand_BeatUp: ; 35461 and a jr nz, .link_or_tower - ld a, [DefaultFlypoint] + ld a, [wd002] ld c, a ld b, 0 ld hl, OTPartySpecies @@ -3211,7 +3211,7 @@ BattleCommand_BeatUp: ; 35461 jr .got_enemy_nick .link_or_tower - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, OTPartyMonNicknames ld bc, NAME_LENGTH call AddNTimes @@ -3223,7 +3223,7 @@ BattleCommand_BeatUp: ; 35461 ld a, [hli] or [hl] jp z, .beatup_fail - ld a, [DefaultFlypoint] + ld a, [wd002] ld b, a ld a, [CurOTMon] cp b @@ -3304,7 +3304,7 @@ GetBeatupMonLocation: ; 355bd ld hl, OTPartyMon1Species .asm_355cc - ld a, [DefaultFlypoint] + ld a, [wd002] add hl, bc call GetPartyLocation pop bc @@ -6665,7 +6665,7 @@ BattleCommand_ForceSwitch: ; 3680f ld a, d inc a ld [wEnemySwitchMonIndex], a - callab Function3d4c3 + callab ForceEnemySwitch ld hl, DraggedOutText call StdBattleTextBox @@ -8960,7 +8960,7 @@ BattleCommand_BatonPass: ; 379c9 ; Return to battle scene call ClearPalettes - callba Function3ed9f + callba _LoadBattleFontsHPBar call WriteBackup call ClearSprites hlcoord 1, 0 diff --git a/engine/link.asm b/engine/link.asm index ce89389f8..41e6abfa2 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1452,7 +1452,7 @@ Function28926: ; 28926 pop af ld [MenuSelection2], a dec a - ld [DefaultFlypoint], a + ld [wd002], a ld [wcf56], a callba Function16d6ce ld a, [wcf51] @@ -1653,7 +1653,7 @@ Function28b87: ; 28b87 ld c, $12 call Function28eef callba Function4d354 - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, PartySpecies ld c, a ld b, $0 @@ -1745,7 +1745,7 @@ Function28b87: ; 28b87 .asm_28c7b ld hl, sPartyScratch1 - ld a, [DefaultFlypoint] + ld a, [wd002] ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes ld a, BANK(sPartyScratch1) @@ -1754,7 +1754,7 @@ Function28b87: ; 28b87 ld e, l ld bc, SCRATCHMON_STRUCT_LENGTH add hl, bc - ld a, [DefaultFlypoint] + ld a, [wd002] ld c, a .asm_28c96 inc c @@ -1786,7 +1786,7 @@ Function28b87: ; 28b87 ld de, wc6e7 ld bc, NAME_LENGTH call CopyBytes - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, PartySpecies ld b, $0 ld c, a @@ -1794,27 +1794,27 @@ Function28b87: ; 28b87 ld a, [hl] ld [wc6d0], a push af - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, PartyMonOT call SkipNames ld de, wc6f2 ld bc, NAME_LENGTH call CopyBytes ld hl, PartyMon1ID - ld a, [DefaultFlypoint] + ld a, [wd002] call GetPartyLocation ld a, [hli] ld [PlayerScreens], a ld a, [hl] ld [EnemyScreens], a ld hl, PartyMon1DVs - ld a, [DefaultFlypoint] + ld a, [wd002] call GetPartyLocation ld a, [hli] ld [wc6fd], a ld a, [hl] ld [wPlayerMinimized], a - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, PartyMon1Species call GetPartyLocation ld b, h @@ -1861,14 +1861,14 @@ Function28b87: ; 28b87 callba GetCaughtGender ld a, c ld [wEnemyCharging], a - ld a, [DefaultFlypoint] + ld a, [wd002] ld [CurPartyMon], a ld hl, PartySpecies ld b, $0 ld c, a add hl, bc ld a, [hl] - ld [DefaultFlypoint], a + ld [wd002], a xor a ld [wPokemonWithdrawDepositParameter], a callab Functione039 diff --git a/engine/party_menu.asm b/engine/party_menu.asm index b0997e821..6c27cb73e 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -539,7 +539,7 @@ Function50307: ; 50307 call PlaceString ld b, $3 ld c, $0 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [hl] .asm_5033b push hl diff --git a/event/kurt.asm b/event/kurt.asm index 9d87430d3..63e5d4284 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -233,7 +233,7 @@ Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161 xor a ld [ItemCountBuffer], a ld a, -1 - ld [MiscBuffer2], a + ld [wd002], a ; Search for [CurItem] in the bag. .loop1 @@ -253,7 +253,7 @@ Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161 ; Increment the result counter and store the bag index of the match. ld d, $0 push hl - ld hl, MiscBuffer2 + ld hl, wd002 add hl, de inc e ld a, [ItemCountBuffer] @@ -271,7 +271,7 @@ Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161 jr z, .done dec a jr z, .OnlyOne - ld hl, MiscBuffer2 + ld hl, wd002 .loop2 ld a, [hl] @@ -316,7 +316,7 @@ Kurt_GiveUpSelectedQuantityOfSelectedApricorn: ; 88161 jr nz, .loop2 .OnlyOne - ld hl, MiscBuffer2 + ld hl, wd002 .loop4 ld a, [hl] cp -1 diff --git a/items/item_effects.asm b/items/item_effects.asm index b3cc62434..15332f0d8 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -2372,7 +2372,7 @@ PokeFlute: ; f50c .asm_f512 xor a - ld [MiscBuffer2], a + ld [wd002], a ld b, $ff ^ SLP @@ -2395,7 +2395,7 @@ PokeFlute: ; f50c and b ld [hl], a - ld a, [MiscBuffer2] + ld a, [wd002] and a ld hl, UnknownText_0xf56c jp z, PrintText @@ -2420,7 +2420,7 @@ PokeFlute: ; f50c and SLP jr z, .asm_f564 ld a, 1 - ld [MiscBuffer2], a + ld [wd002], a .asm_f564 pop af and b @@ -2521,7 +2521,7 @@ MaxEther: Elixer: Mysteryberry: ; f5bf ld a, [CurItem] - ld [MiscBuffer2], a + ld [wd002], a .loop ; Party Screen opens to choose on which Pkmn to use the Item @@ -2530,14 +2530,14 @@ Mysteryberry: ; f5bf jp c, Functionf6e0 .loop2 - ld a, [MiscBuffer2] + ld a, [wd002] cp MAX_ELIXER jp z, Elixer_RestorePPofAllMoves cp ELIXER jp z, Elixer_RestorePPofAllMoves ld hl, TextJump_RaiseThePPOfWhichMove - ld a, [MiscBuffer2] + ld a, [wd002] cp PP_UP jr z, .ppup ld hl, TextJump_RestoreThePPOfWhichMove @@ -2568,7 +2568,7 @@ Mysteryberry: ; f5bf call CopyName1 pop hl - ld a, [MiscBuffer2] + ld a, [wd002] cp PP_UP jp nz, Functionf6a7 @@ -2722,7 +2722,7 @@ RestorePP: ; f6e8 cp b jr nc, .dont_restore - ld a, [MiscBuffer2] + ld a, [wd002] cp MAX_ELIXER jr z, .restore_all cp MAX_ETHER diff --git a/main.asm b/main.asm index 2928420c3..6e4ea7eb6 100644 --- a/main.asm +++ b/main.asm @@ -8693,7 +8693,7 @@ Functiondd21: ; dd21 call WaitSFX call Functione698 ld a, b - ld [DefaultFlypoint], a + ld [wd002], a ld a, e ld [CurPartyLevel], a xor a @@ -8709,7 +8709,7 @@ Functiondd42: ; dd42 call WaitSFX call Functione6b3 ld a, b - ld [DefaultFlypoint], a + ld [wd002], a ld a, e ld [CurPartyLevel], a ld a, PC_DEPOSIT @@ -13543,7 +13543,7 @@ Function12cf5: ; 12cf5 Function12cfe: ; 12cfe (4:6cfe) - ld de, DefaultFlypoint + ld de, wd002 callba Function11e75 ld hl, PlayerName ld de, wd023 @@ -13563,7 +13563,7 @@ Function12cfe: ; 12cfe (4:6cfe) call AddNTimes ld d, h ld e, l - ld hl, DefaultFlypoint + ld hl, wd002 ld bc, SCRATCHMON_STRUCT_LENGTH ld a, BANK(sPartyScratch1) call GetSRAMBank @@ -15098,7 +15098,7 @@ _BugContestJudging: ; 1369d call GetPokemonName ld hl, BugContest_SecondPlaceText call PrintText - ld a, [DefaultFlypoint] + ld a, [wd002] call LoadContestantName ld a, [wd003] ld [wd265], a @@ -15330,7 +15330,7 @@ Function13819: ; 13819 ; 13833 Function13833: ; 13833 - ld hl, DefaultFlypoint + ld hl, wd002 ld b, 12 xor a .loop @@ -15350,11 +15350,11 @@ Function1383e: ; 1383e ld de, wd00a ld bc, 4 call CopyBytes - ld hl, DefaultFlypoint + ld hl, wd002 ld de, EndFlypoint ld bc, 4 call CopyBytes - ld hl, DefaultFlypoint + ld hl, wd002 call Function138a0 jr .done @@ -17274,7 +17274,7 @@ ReadMart: ; 15bbb inc de cp -1 jr nz, .CopyMart - ld hl, DefaultFlypoint + ld hl, wd002 ld de, CurMart + 1 .ReadMartItem ld a, [de] @@ -17680,7 +17680,7 @@ Function15e30: ; 15e30 ld a, [wcf77] ld c, a ld b, 0 - ld hl, DefaultFlypoint + ld hl, wd002 rept 3 add hl, bc endr @@ -20462,7 +20462,7 @@ Function249d1: ; 249d1 (9:49d1) Function24a40: ; 24a40 (9:4a40) call Function24a5c - ld de, DefaultFlypoint + ld de, wd002 call Function24a80 call CopyBytes ret @@ -20471,7 +20471,7 @@ Function24a4d: ; 24a4d (9:4a4d) call Function24a5c ld d, h ld e, l - ld hl, DefaultFlypoint + ld hl, wd002 call Function24a80 call CopyBytes ret @@ -22191,7 +22191,7 @@ Rate: ; 0x26616 ld hl, PokedexSeen ld b, EndPokedexSeen - PokedexSeen call CountSetBits - ld [DefaultFlypoint], a + ld [wd002], a ld hl, PokedexCaught ld b, EndPokedexCaught - PokedexCaught call CountSetBits @@ -22213,7 +22213,7 @@ Rate: ; 0x26616 ClearOakRatingBuffers: ; 0x26647 ld hl, StringBuffer3 - ld de, DefaultFlypoint + ld de, wd002 call ClearOakRatingBuffer ld hl, StringBuffer4 ld de, wd003 @@ -22513,7 +22513,7 @@ Function26806: ; 26806 ld a, $7 call Function26830 ld hl, StringBuffer2 - ld de, DefaultFlypoint + ld de, wd002 ld bc, $d call CopyBytes ret @@ -22573,7 +22573,7 @@ Jumptable_26855: ; 26855 Function2686c: ; 2686c xor a - ld hl, DefaultFlypoint + ld hl, wd002 ld [hli], a ld a, -1 ld bc, $10 @@ -22603,7 +22603,7 @@ CheckAllDecorationFlags: ; 2687a ; 26891 Function26891: ; 26891 - ld hl, DefaultFlypoint + ld hl, wd002 inc [hl] ld e, [hl] ld d, $0 @@ -22619,7 +22619,7 @@ Function2689b: ; 2689b pop hl call CheckAllDecorationFlags pop bc - ld a, [DefaultFlypoint] + ld a, [wd002] and a ret z ld a, c @@ -22757,7 +22757,7 @@ Function26959: ; 26959 ; 2695b Function2695b: ; 2695b - ld a, [DefaultFlypoint] + ld a, [wd002] and a jr z, .empty cp 8 @@ -22775,7 +22775,7 @@ Function2695b: ; 2695b ret .beyond_eight - ld hl, DefaultFlypoint + ld hl, wd002 ld e, [hl] dec [hl] ld d, 0 @@ -23875,7 +23875,7 @@ Function2715c: ; 2715c .continue callba GetMonFrontpic - callba Function3ed9f + callba _LoadBattleFontsHPBar call ClearSGB call WriteBackup call LoadPartyMenuDataHeader @@ -26804,7 +26804,7 @@ FindFirstAliveMon: ; 2ee2f ld a, [hl] ld [BattleMonLevel], a predef Predef_StartBattle - callba Function3ed9f + callba _LoadBattleFontsHPBar ld a, 1 ld [hBGMapMode], a call ClearSprites @@ -28147,7 +28147,7 @@ FillMoves: ; 424e1 ld a, [Buffer1] and a jr z, .CheckMove - ld a, [DefaultFlypoint] + ld a, [wd002] cp b jr nc, .GetMove @@ -29407,7 +29407,7 @@ Function48000: ; 48000 ld [wd476], a ld [wd477], a ld [wd478], a - ld [DefaultFlypoint], a + ld [wd002], a ld [wd003], a ; could have done "ld a, [wd479] \ and -4", saved four operations ld a, [wd479] @@ -29423,7 +29423,7 @@ Function48000: ; 48000 Function4802f: ; 4802f (12:402f) xor a set 6, a - ld [DefaultFlypoint], a + ld [wd002], a ld hl, wd003 set 0, [hl] ld a, c @@ -29453,7 +29453,7 @@ Function4802f: ; 4802f (12:402f) call Request1bpp call Function4a3a7 call WhiteBGMap - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_4808a call Function48689 @@ -29503,7 +29503,7 @@ Function4802f: ; 4802f (12:402f) hlcoord 2, 12 ld de, String_4849e call PlaceString - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_48113 ld a, [PlayerGender] @@ -29552,7 +29552,7 @@ asm_4815f: ; 4815f (12:415f) bit 0, a jp nz, Function4820d ld b, a - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_48177 ld hl, wd479 @@ -29589,7 +29589,7 @@ Function48187: ; 48187 (12:4187) call PlaceString pop de .asm_481ad - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_481c1 bit 0, d @@ -29640,7 +29640,7 @@ Function4820d: ; 4820d (12:420d) ld hl, MenuSelection2 ld a, [hl] push af - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_4821f pop af @@ -29658,7 +29658,7 @@ Function4820d: ; 4820d (12:420d) jp z, Function488d3 ld a, $2 call Function1ff8 - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_4825c jr .asm_4825c @@ -29917,7 +29917,7 @@ Function4840c: ; 4840c (12:440c) pop bc ld hl, MenuSelection2 ld [hl], b - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_48437 ld b, $9 @@ -30110,7 +30110,7 @@ Function48689: ; 48689 (12:4689) Function486bf: ; 486bf (12:46bf) ld hl, wcfa1 - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_486ce ld a, $4 @@ -30122,7 +30122,7 @@ Function486bf: ; 486bf (12:46bf) .asm_486d1 ld a, $1 ld [hli], a - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr nz, .asm_486e7 call Function48725 @@ -30158,7 +30158,7 @@ Function486bf: ; 486bf (12:46bf) add $40 add $80 push af - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_4871a pop af @@ -30477,10 +30477,10 @@ asm_48922: ; 48922 (12:4922) jp nz, Function4896e bit 1, a jp nz, Function4896e - ld a, [DefaultFlypoint] + ld a, [wd002] and %11001111 res 7, a - ld [DefaultFlypoint], a + ld [wd002], a pop bc inc b ld a, b @@ -30531,10 +30531,10 @@ asm_48972: ; 48972 (12:4972) jr z, .asm_48994 cp $f jr nz, .asm_48988 - ld a, [DefaultFlypoint] + ld a, [wd002] set 7, a and $cf - ld [DefaultFlypoint], a + ld [wd002], a .asm_48988 hlcoord 11, 10 ld b, $0 @@ -30780,7 +30780,7 @@ Function48ab5: ; 48ab5 (12:4ab5) jr nz, .asm_48b9d hlcoord 11, 10 call Function489ea - ld a, [DefaultFlypoint] + ld a, [wd002] bit 7, a jr nz, .asm_48b51 .asm_48b51 @@ -30931,7 +30931,7 @@ Function48c0f: ; 48c0f (12:4c0f) ret Function48c11: ; 48c11 (12:4c11) - ld a, [DefaultFlypoint] + ld a, [wd002] bit 7, a jr z, .asm_48c20 ld a, d @@ -30941,30 +30941,30 @@ Function48c11: ; 48c11 (12:4c11) .asm_48c1e ld [hl], $7f .asm_48c20 - ld a, [DefaultFlypoint] + ld a, [wd002] swap a and $3 inc a cp b jr nz, .asm_48c40 - ld a, [DefaultFlypoint] + ld a, [wd002] bit 7, a jr z, .asm_48c3a res 7, a - ld [DefaultFlypoint], a + ld [wd002], a xor a jr .asm_48c40 .asm_48c3a set 7, a - ld [DefaultFlypoint], a + ld [wd002], a xor a .asm_48c40 swap a ld b, a - ld a, [DefaultFlypoint] + ld a, [wd002] and $cf or b - ld [DefaultFlypoint], a + ld [wd002], a ret Function48c4d: ; 48c4d (12:4c4d) @@ -31661,7 +31661,7 @@ Function4942f: ; 4942f ld bc, 4 * SCREEN_WIDTH ld a, $7 call ByteFill - ld a, [DefaultFlypoint] + ld a, [wd002] bit 6, a jr z, .asm_49464 call Function49480 @@ -34171,7 +34171,7 @@ Function4a927: ; 4a927 Function4a94e: ; 4a94e call FadeToMenu ld a, -1 - ld hl, DefaultFlypoint + ld hl, wd002 ld bc, 3 call ByteFill xor a @@ -34205,7 +34205,7 @@ Function4a94e: ; 4a94e .asm_4a990 call Function2b3c - ld hl, DefaultFlypoint + ld hl, wd002 ld a, -1 ld bc, 3 call ByteFill @@ -34238,7 +34238,7 @@ UnknownText_0x4a9be: ; 0x4a9be ; 0x4a9c3 Function4a9c3: ; 4a9c3 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, $ff cp [hl] jr z, .asm_4a9d5 @@ -34257,7 +34257,7 @@ Function4a9c3: ; 4a9c3 ; 4a9d7 Function4a9d7: ; 4a9d7 - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, PartyMonNicknames call GetNick ld h, d @@ -34340,7 +34340,7 @@ Function4aa6e: ; 4aa6e ; 4aa7a Function4aa7a: ; 4aa7a - ld hl, DefaultFlypoint + ld hl, wd002 ld d, $3 .loop ld e, PARTY_LENGTH @@ -34395,7 +34395,7 @@ Function4aa7a: ; 4aa7a ; 4aab6 Function4aab6: ; 4aab6 - ld hl, DefaultFlypoint + ld hl, wd002 ld d, $3 .loop ld a, [hli] @@ -34540,7 +34540,7 @@ Function4ab1a: ; 4ab1a Function4ab99: ; 4ab99 bit 1, a jr z, .asm_4aba6 - ld a, [DefaultFlypoint] + ld a, [wd002] cp $ff jr z, .asm_4aba6 scf @@ -34771,7 +34771,7 @@ Function4acaa: ; 4acaa Function4ad17: ; 4ad17 call Function4adb2 jr z, .asm_4ad4a - ld hl, DefaultFlypoint + ld hl, wd002 ld a, $ff cp [hl] jr z, .asm_4ad39 @@ -34863,7 +34863,7 @@ String_4ada7: ; 4ada7 ; 4adb2 Function4adb2: ; 4adb2 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [CurPartyMon] cp [hl] ret z @@ -34878,20 +34878,20 @@ Function4adb2: ; 4adb2 ; 4adc2 Function4adc2: ; 4adc2 - ld a, [DefaultFlypoint] + ld a, [wd002] cp $ff jr nz, .asm_4ade5 ld a, [wd003] cp $ff jr nz, .asm_4addd ld a, [wd004] - ld [DefaultFlypoint], a + ld [wd002], a ld a, $ff ld [wd004], a jr .asm_4ade5 .asm_4addd - ld [DefaultFlypoint], a + ld [wd002], a ld a, $ff ld [wd003], a @@ -38650,7 +38650,7 @@ PlacePartyMonMobileBattleSelection: ; 50307 call PlaceString ld b, $3 ld c, $0 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [hl] .loop2 push hl @@ -40548,7 +40548,7 @@ _SwitchPartyMons: ld bc, PARTYMON_STRUCT_LENGTH call AddNTimes push hl - ld de, MiscBuffer2 + ld de, wd002 ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld a, [Buffer3] @@ -40560,14 +40560,14 @@ _SwitchPartyMons: ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes pop de - ld hl, MiscBuffer2 + ld hl, wd002 ld bc, PARTYMON_STRUCT_LENGTH call CopyBytes ld a, [Buffer2] ; wd1eb (aliases: MovementType) ld hl, PartyMonOT call SkipNames push hl - call .CopyNameToMiscBuffer2 + call .CopyNameTowd002 ld a, [Buffer3] ld hl, PartyMonOT call SkipNames @@ -40575,13 +40575,13 @@ _SwitchPartyMons: push hl call .CopyName pop de - ld hl, MiscBuffer2 + ld hl, wd002 call .CopyName ld hl, PartyMonNicknames ld a, [Buffer2] ; wd1eb (aliases: MovementType) call SkipNames push hl - call .CopyNameToMiscBuffer2 + call .CopyNameTowd002 ld hl, PartyMonNicknames ld a, [Buffer3] call SkipNames @@ -40589,14 +40589,14 @@ _SwitchPartyMons: push hl call .CopyName pop de - ld hl, MiscBuffer2 + ld hl, wd002 call .CopyName ld hl, sPartyScratch1 ld a, [Buffer2] ; wd1eb (aliases: MovementType) ld bc, SCRATCHMON_STRUCT_LENGTH call AddNTimes push hl - ld de, MiscBuffer2 + ld de, wd002 ld bc, SCRATCHMON_STRUCT_LENGTH ld a, BANK(sPartyScratch1) call GetSRAMBank @@ -40610,7 +40610,7 @@ _SwitchPartyMons: ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes pop de - ld hl, MiscBuffer2 + ld hl, wd002 ld bc, SCRATCHMON_STRUCT_LENGTH call CopyBytes call CloseSRAM @@ -40619,8 +40619,8 @@ _SwitchPartyMons: pop hl ret -.CopyNameToMiscBuffer2: ; 51036 (14:5036) - ld de, MiscBuffer2 +.CopyNameTowd002: ; 51036 (14:5036) + ld de, wd002 .CopyName: ; 51039 (14:5039) ld bc, NAME_LENGTH @@ -42449,7 +42449,7 @@ ColorTest: ; 818ac ; 818f4 Function818f4: ; 818f4 - ld a, [DefaultFlypoint] + ld a, [wd002] and a jr nz, Function81911 ld hl, PokemonPalettes @@ -42745,7 +42745,7 @@ endr Function81ac3: ; 81ac3 ; Looping back around the pic set. - ld a, [DefaultFlypoint] + ld a, [wd002] and a jr nz, .asm_81acc ld a, NUM_POKEMON ; CELEBI @@ -42794,7 +42794,7 @@ Function81adb: ; 81adb ld de, wd265 lb bc, PRINTNUM_LEADINGZEROS | 1, 3 call PrintNum - ld a, [DefaultFlypoint] + ld a, [wd002] and a jr nz, .asm_81b7a ld a, $1 @@ -43031,7 +43031,7 @@ endr ret .asm_81ce5 - ld a, [DefaultFlypoint] + ld a, [wd002] and a ret nz ld a, [wd003] @@ -45270,7 +45270,7 @@ Function848ed: ; 848ed (21:48ed) ld bc, $372 add hl, bc ld bc, $b - ld a, [DefaultFlypoint] + ld a, [wd002] call AddNTimes ld e, l ld d, h @@ -45288,13 +45288,13 @@ Function848ed: ; 848ed (21:48ed) ld bc, $35 add hl, bc ld bc, $20 - ld a, [DefaultFlypoint] + ld a, [wd002] call AddNTimes ld a, [hl] pop hl call Function383d .ok2 - ld hl, DefaultFlypoint + ld hl, wd002 inc [hl] pop de pop hl @@ -45321,7 +45321,7 @@ Function8498a: ; 8498a (21:498a) ld bc, $2b add hl, bc ld bc, $20 - ld a, [DefaultFlypoint] + ld a, [wd002] call AddNTimes ld de, TempMonDVs ld a, [hli] @@ -45329,7 +45329,7 @@ Function8498a: ; 8498a (21:498a) inc de ld a, [hli] ld [de], a - ld a, [DefaultFlypoint] + ld a, [wd002] ld [CurPartyMon], a ld a, $3 ld [MonType], a @@ -51160,7 +51160,7 @@ Special_SetDayOfWeek: ; 90913 lb bc, BANK(GFX_9090b), 1 call Request1bpp xor a - ld [DefaultFlypoint], a + ld [wd002], a .asm_90936 hlcoord 0, 12 lb bc, 4, 18 @@ -51191,7 +51191,7 @@ Special_SetDayOfWeek: ; 90913 call PrintText call YesNoBox jr c, .asm_90936 - ld a, [DefaultFlypoint] + ld a, [wd002] ld [StringBuffer2], a call Function663 call LoadStandardFont @@ -53251,7 +53251,7 @@ _FlyMap: ; 91af3 jr .exit .pressedA - ld a, [DefaultFlypoint] + ld a, [wd002] ld l, a ld h, 0 add hl, hl @@ -53260,7 +53260,7 @@ _FlyMap: ; 91af3 ld a, [hl] .exit - ld [DefaultFlypoint], a + ld [wd002], a pop af ld [hInMenu], a call WhiteBGMap @@ -53270,7 +53270,7 @@ _FlyMap: ; 91af3 ld [hBGMapAddress], a ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a - ld a, [DefaultFlypoint] + ld a, [wd002] ld e, a ret ; 91b73 @@ -53290,7 +53290,7 @@ FlyMapScroll: ; 91b73 ret .ScrollNext - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [hl] cp d jr nz, .NotAtEndYet @@ -53305,7 +53305,7 @@ FlyMapScroll: ; 91b73 jr .Finally .ScrollPrev - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [hl] cp e jr nz, .NotAtStartYet @@ -53384,7 +53384,7 @@ TownMapBubble: ; 91bb5 .Name ; We need the map location of the default flypoint - ld a, [DefaultFlypoint] + ld a, [wd002] ld l, a ld h, 0 add hl, hl ; two bytes per flypoint @@ -53401,7 +53401,7 @@ TownMapBubble: ; 91bb5 ; 91c17 GetMapCursorCoordinates: ; 91c17 - ld a, [DefaultFlypoint] + ld a, [wd002] ld l, a ld h, $0 add hl, hl @@ -53534,7 +53534,7 @@ FlyMap: ; 91c90 ; Start from New Bark Town ld a, FLY_NEW_BARK - ld [DefaultFlypoint], a + ld [wd002], a ; Flypoints begin at New Bark Town... ld [StartFlypoint], a @@ -53578,7 +53578,7 @@ FlyMap: ; 91c90 ; Because Indigo Plateau is the first flypoint the player ; visits, it's made the default flypoint - ld [DefaultFlypoint], a + ld [wd002], a ; Fill out the map call FillKantoMap @@ -53592,7 +53592,7 @@ FlyMap: ; 91c90 ; Start from New Bark Town ld a, FLY_NEW_BARK - ld [DefaultFlypoint], a + ld [wd002], a ; Flypoints begin at New Bark Town... ld [StartFlypoint], a @@ -53620,12 +53620,12 @@ FlyMap: ; 91c90 ; 91d11 Function91d11: ; 91d11 - ld a, [DefaultFlypoint] + ld a, [wd002] push af ld a, [wd003] push af ld a, e - ld [DefaultFlypoint], a + ld [wd002], a call ClearSprites xor a ld [hBGMapMode], a @@ -53682,7 +53682,7 @@ Function91d11: ; 91d11 pop af ld [wd003], a pop af - ld [DefaultFlypoint], a + ld [wd002], a ret ; 91d9b @@ -53807,7 +53807,7 @@ Function91e5a: ; 91e5a call Function91ea9 ret c - ld a, [DefaultFlypoint] + ld a, [wd002] ld e, a callba GetLandmarkCoords ld c, e @@ -53863,7 +53863,7 @@ Unknown_91e9c: ; 91e9c ; 91ea9 Function91ea9: ; 91ea9 - ld a, [DefaultFlypoint] + ld a, [wd002] cp FAST_SHIP jr z, .johto cp KANTO_LANDMARK @@ -53894,7 +53894,7 @@ Function91ea9: ; 91ea9 ; 91ed0 Function91ed0: ; 91ed0 - ld a, [DefaultFlypoint] + ld a, [wd002] cp FAST_SHIP jr z, .asm_91ede callba GetPlayerIcon @@ -54129,7 +54129,7 @@ INCBIN "gfx/unknown/092301.2bpp" Function92311: ; 92311 xor a - ld [DefaultFlypoint], a + ld [wd002], a call WhiteBGMap call ClearTileMap call ClearSprites @@ -54183,7 +54183,7 @@ Function92311: ; 92311 jr .asm_9239f .pressedA - ld a, [DefaultFlypoint] + ld a, [wd002] ld l, a ld h, 0 add hl, hl @@ -54192,7 +54192,7 @@ Function92311: ; 92311 ld a, [hl] .asm_9239f - ld [DefaultFlypoint], a + ld [wd002], a pop af ld [hInMenu], a call WhiteBGMap @@ -54202,7 +54202,7 @@ Function92311: ; 92311 ld [hBGMapAddress], a ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a - ld a, [DefaultFlypoint] + ld a, [wd002] ld e, a ret ; 923b8 @@ -54218,7 +54218,7 @@ Function923b8: ; 923b8 ret .asm_923c6 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [hl] cp FLY_INDIGO jr c, .asm_923d0 @@ -54228,7 +54228,7 @@ Function923b8: ; 923b8 jr .asm_923dd .asm_923d3 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [hl] and a jr nz, .asm_923dc @@ -54237,7 +54237,7 @@ Function923b8: ; 923b8 dec [hl] .asm_923dd - ld a, [DefaultFlypoint] + ld a, [wd002] cp KANTO_FLYPOINT jr c, .johto @@ -61021,13 +61021,13 @@ Unknown_e14b5: ; e14b5 Functione14d9: ; e14d9 call Functione1481 - ld [DefaultFlypoint], a + ld [wd002], a xor a call Functione1463 ld a, [hli] ld b, [hl] ld c, a - ld a, [DefaultFlypoint] + ld a, [wd002] cp $e0 jr z, .asm_e14f2 ld hl, Unknown_e150f @@ -61049,7 +61049,7 @@ Functione14d9: ; e14d9 add c ld [de], a inc de - ld a, [DefaultFlypoint] + ld a, [wd002] add [hl] ld [de], a inc hl @@ -64180,7 +64180,7 @@ Functione3363: ; e3363 (38:7363) ld bc, $b ld a, [CurPartyMon] call AddNTimes - ld de, DefaultFlypoint + ld de, wd002 ld bc, $b call CopyBytes ret @@ -64540,7 +64540,7 @@ Functione36f9: ; e36f9 (38:76f9) .asm_e3745 ld b, $4 - ld de, DefaultFlypoint + ld de, wd002 callba Function116c1 call ClearTileMap call LoadStandardFont @@ -64550,13 +64550,13 @@ Functione36f9: ; e36f9 (38:76f9) call GetBoxName ld e, l ld d, h - ld hl, DefaultFlypoint + ld hl, wd002 ld c, $8 call InitString ld a, [MenuSelection] dec a call GetBoxName - ld de, DefaultFlypoint + ld de, wd002 call CopyName2 ret ; e3778 (38:7778) @@ -68032,7 +68032,7 @@ endr ; fb5dd Functionfb5dd: ; fb5dd - ld a, [DefaultFlypoint] + ld a, [wd002] ld d, a ld a, [PartyCount] ld b, a diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index ef75aa5b9..86251d84f 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -38,7 +38,7 @@ Function89174: ; 89174 (22:5174) ret Function8917a: ; 8917a (22:517a) - ld hl, DefaultFlypoint + ld hl, wd002 ld bc, $32 xor a call ByteFill @@ -484,7 +484,7 @@ Function8939a: ; 8939a push bc ld hl, 0 add hl, bc - ld de, DefaultFlypoint + ld de, wd002 ld c, 6 call Function89193 pop bc @@ -1365,8 +1365,8 @@ Function898aa: ; 898aa Function898be: ; 898be push bc - ld de, DefaultFlypoint - ld hl, DefaultFlypoint + ld de, wd002 + ld hl, wd002 call Function89331 jr nc, .asm_898cd ld de, String_89116 @@ -3106,7 +3106,7 @@ Function8a383: ; 8a383 (22:6383) Function8a3a2: ; 8a3a2 (22:63a2) ld a, [MenuSelection2] dec a - ld hl, DefaultFlypoint + ld hl, wd002 ld e, a ld d, $0 add hl, de @@ -3141,7 +3141,7 @@ Function8a3df: ; 8a3df (22:63df) ld hl, $a603 call Function89b45 call CloseSRAM - ld hl, DefaultFlypoint + ld hl, wd002 jr c, .asm_8a3f8 ld de, Unknown_8a408 call Function8a400 @@ -3620,7 +3620,7 @@ Function8a765: ; 8a765 (22:6765) push bc ld hl, $0 add hl, bc - ld de, DefaultFlypoint + ld de, wd002 ld c, $6 call Function89185 pop bc @@ -3641,7 +3641,7 @@ Function8a765: ; 8a765 (22:6765) Function8a78c: ; 8a78c (22:678c) call Function891fe - ld de, DefaultFlypoint + ld de, wd002 ld b, $5 callba Function116c1 call OpenSRAMBank4 @@ -3651,7 +3651,7 @@ Function8a78c: ; 8a78c (22:678c) add hl, bc ld d, h ld e, l - ld hl, DefaultFlypoint + ld hl, wd002 call InitName call CloseSRAM call DelayFrame @@ -3701,7 +3701,7 @@ Function8a7cb: ; 8a7cb (22:67cb) Function8a818: ; 8a818 (22:6818) call Function89a23 - ld hl, DefaultFlypoint + ld hl, wd002 call Function89331 jr c, .asm_8a875 ld hl, wd008 @@ -3716,7 +3716,7 @@ Function8a818: ; 8a818 (22:6818) add hl, bc ld d, h ld e, l - ld hl, DefaultFlypoint + ld hl, wd002 ld c, $6 call Function89193 pop bc @@ -3851,7 +3851,7 @@ Function8a930: ; 8a930 (22:6930) push bc ld h, b ld l, c - ld de, DefaultFlypoint + ld de, wd002 ld bc, $25 call CopyBytes pop de @@ -3865,7 +3865,7 @@ Function8a930: ; 8a930 (22:6930) ld bc, $25 call CopyBytes pop de - ld hl, DefaultFlypoint + ld hl, wd002 ld bc, $25 call CopyBytes ld de, SFX_SWITCH_POKEMON diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index c1f671bf2..0abe8637c 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -887,7 +887,7 @@ Function8b84b: ; 8b84b Function8b855: ; 8b855 ld a, $28 - ld hl, DefaultFlypoint + ld hl, wd002 ld [hli], a ld c, $28 xor a @@ -1061,7 +1061,7 @@ Function8b960: ; 8b960 (22:7960) ret Function8b99f: ; 8b99f (22:799f) - ld hl, DefaultFlypoint + ld hl, wd002 dec a ld c, a ld b, $0 @@ -1135,7 +1135,7 @@ Function8b9e9: ; 8b9e9 (22:79e9) scf .asm_8ba0c push af - ld hl, DefaultFlypoint + ld hl, wd002 .asm_8ba10 ld a, [de] inc de diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index d3705e725..4b6f31d16 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -5573,7 +5573,7 @@ Function10250c: ; 10250c ld [wd003], a ld a, [wcd4c] dec a - ld [DefaultFlypoint], a + ld [wd002], a call Function102b9c call Function102bdc jr c, .asm_10256d @@ -6003,7 +6003,7 @@ Function102814: ; 102814 ld [wcd52], a ld a, [wcd4c] dec a - ld [DefaultFlypoint], a + ld [wd002], a ld a, [wcd4d] dec a ld [wd003], a @@ -6679,7 +6679,7 @@ Function102cee: ; 102cee ld a, [wJumptableIndex] dec a call Function102d34 - ld de, DefaultFlypoint + ld de, wd002 ld bc, $002f call CopyBytes ld a, [wJumptableIndex] @@ -6705,7 +6705,7 @@ Function102cee: ; 102cee call Function102d34 ld d, h ld e, l - ld hl, DefaultFlypoint + ld hl, wd002 ld bc, $002f call CopyBytes ret @@ -8068,7 +8068,7 @@ endr callba Script_reloadmappart callba Function4a94e jr c, .asm_103870 - ld hl, DefaultFlypoint + ld hl, wd002 ld de, wdc5c ld bc, $0003 call CopyBytes diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index c555ed848..193baee00 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -8373,7 +8373,7 @@ Function117bb6: ld [rSVBK], a ld a, $7 call GetSRAMBank - ld hl, DefaultFlypoint + ld hl, wd002 ld de, $b000 ld bc, $1000 call CopyBytes diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index ee80a1388..185431a67 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -1580,7 +1580,7 @@ Function118b24: ; 118b24 (46:4b24) ; 118b42 (46:4b42) Function118b42: ; 118b42 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, l ld [wcd51], a ld a, h @@ -1780,7 +1780,7 @@ Function118ded: ; 118ded ; 118e06 Function118e06: ; 118e06 - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [wcd38] and a jr z, .asm_118e1d @@ -2110,7 +2110,7 @@ Function119009: Function119054: ; 119054 ld a, $6 call GetSRAMBank - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [wcd4f] ld e, a ld a, [wcd50] @@ -2126,7 +2126,7 @@ Function119054: ; 119054 jr z, .asm_11908a ld a, $6 ld [rSVBK], a - ld hl, DefaultFlypoint + ld hl, wd002 ld a, [Unkn1Pals] ld c, a ld a, [wd001] @@ -2198,7 +2198,7 @@ Function1190ec: ; 1190ec ld c, a ld a, [wd001] ld b, a - ld hl, DefaultFlypoint + ld hl, wd002 ld de, $a000 call Function119192 ret c @@ -2211,7 +2211,7 @@ Function1190ec: ; 1190ec ld c, a ld a, [wd001] ld b, a - ld hl, DefaultFlypoint + ld hl, wd002 call Function119192 ret c @@ -2729,7 +2729,7 @@ Function119451: ; 119451 (46:5451) ld a, b ld [wcd49], a call Function1196cd - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, wd003 Function119471: ; 119471 (46:5471) @@ -3146,7 +3146,7 @@ Function1196de: ; 1196de (46:56de) ; 1196f2 (46:56f2) Function1196f2: ; 1196f2 - ld hl, DefaultFlypoint + ld hl, wd002 .asm_1196f5 call Function118b9a ret nc @@ -3314,7 +3314,7 @@ Function1197bf: ; 1197bf ; 1197c9 Function1197c9: ; 1197c9 - ld hl, DefaultFlypoint + ld hl, wd002 call Function118e39 ld a, $9 ld [wcd3c], a @@ -3326,7 +3326,7 @@ Function1197dc: call Function119ed8 ret c call DelayFrame - ld hl, DefaultFlypoint + ld hl, wd002 ld de, wcc60 ld bc, $0080 call CopyBytes diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 4a14c61bf..133e8d43b 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -25,17 +25,17 @@ Function16c031: ; 16c031 xor a ld [wJumptableIndex], a ld [wcf64], a - ld [DefaultFlypoint], a + ld [wd002], a ld [wd003], a .asm_16c03e call DelayFrame callba Function10635c - ld a, [DefaultFlypoint] + ld a, [wd002] ld hl, Jumptable_16c05c rst JumpTable call Function16cb2e call Function16cbae - ld a, [DefaultFlypoint] + ld a, [wd002] cp $ff jr nz, .asm_16c03e ret @@ -60,7 +60,7 @@ Function16c074: ; 16c074 ld a, [wcf64] and a ret z - ld [DefaultFlypoint], a + ld [wd002], a xor a ld [wd003], a ret @@ -69,7 +69,7 @@ Function16c074: ; 16c074 Function16c081: ; 16c081 push af ld a, $ff - ld [DefaultFlypoint], a + ld [wd002], a pop af ret ; 16c089 @@ -81,7 +81,7 @@ Function16c089: ; 16c089 xor a ld [hWY], a call Function16c0fa - ld a, [DefaultFlypoint] + ld a, [wd002] ld [wcf64], a ret ; 16c09e @@ -144,16 +144,16 @@ Function16c0ec: ; 16c0ec call ClearScreen push af ld a, $ff - ld [DefaultFlypoint], a + ld [wd002], a pop af ret ; 16c0fa Function16c0fa: ; 16c0fa push af - ld a, [DefaultFlypoint] + ld a, [wd002] inc a - ld [DefaultFlypoint], a + ld [wd002], a xor a ld [wd003], a pop af diff --git a/wram.asm b/wram.asm index 6dfe85168..0354baa8b 100644 --- a/wram.asm +++ b/wram.asm @@ -1400,47 +1400,38 @@ wDaysSince:: ds 1 SECTION "WRAM 1", WRAMX, BANK [1] -MiscBuffer0:: wd000:: ds 1 -MiscBuffer1:: DefaultSpawnpoint:: wd001:: ds 1 wd002:: -MiscBuffer2:: PhoneScriptBank:: -DefaultFlypoint:: ; d002 LuckyNumberDigit1Buffer:: wCurrentRadioLine:: wMovementBufferCount:: ds 1 wd003:: -MiscBuffer3:: LuckyNumberDigit2Buffer:: PhoneCallerLo:: wNextRadioLine:: wMovementBufferPerson:: ds 1 wd004:: -MiscBuffer4:: LuckyNumberDigit3Buffer:: PhoneCallerHi:: wRadioTextDelay:: ds 1 wd005:: -MiscBuffer5:: LuckyNumberDigit4Buffer:: StartFlypoint:: ; d005 wNumRadioLinesPrinted:: ds 1 wd006:: -MiscBuffer6:: LuckyNumberDigit5Buffer:: EndFlypoint:: ; d006 wOaksPkmnTalkSegmentCounter:: ds 1 wd007:: -MiscBuffer7:: MovementBuffer:: ; d007 ds 1 -- cgit v1.2.3 From 03f0815679bdd27241d7c212d2667ec30764b820 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 10 Nov 2015 20:18:49 -0500 Subject: found the sliding animation at the start of battle --- battle/core.asm | 20 ++++----- battle/sliding_intro.asm | 107 ++++++++++++++++++++++++++++++++++++++++++++++ main.asm | 109 +---------------------------------------------- misc/mobile_40.asm | 2 +- 4 files changed, 119 insertions(+), 119 deletions(-) create mode 100755 battle/sliding_intro.asm diff --git a/battle/core.asm b/battle/core.asm index 66250ed45..37b8a4c2e 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -8473,7 +8473,7 @@ StartBattle: ; 3f4c1 ld a, [TimeOfDayPal] push af - call Function3f4dd + call BattleIntro call Function3c000 call Function3f69e pop af @@ -8489,7 +8489,7 @@ Function3f4d9: ; 3f4d9 ; 3f4dd -Function3f4dd: ; 3f4dd +BattleIntro: ; 3f4dd callba MobileFn_106050 ; mobile call LoadTrainerOrWildMonPic xor a @@ -8508,7 +8508,7 @@ Function3f4dd: ; 3f4dd call GetSGBLayout ld hl, rLCDC res 6, [hl] - call Function3fb6c + call InitBattleDisplay call BattleStartMessage ld hl, rLCDC set 6, [hl] @@ -9393,8 +9393,8 @@ Function3fb54: ; 3fb54 ret ; 3fb6c -Function3fb6c: ; 3fb6c - call Function3fbf8 +InitBattleDisplay: ; 3fb6c + call .InitBackPic hlcoord 0, 12 ld b, 4 ld c, 18 @@ -9405,7 +9405,7 @@ Function3fb6c: ; 3fb6c call ClearBox call LoadStandardFont call _LoadBattleFontsHPBar - call Function3fbd6 + call .BlankBGMap xor a ld [hMapAnims], a ld [hSCY], a @@ -9415,7 +9415,7 @@ Function3fb6c: ; 3fb6c call WaitBGMap xor a ld [hBGMapMode], a - callba Function4e980 + callba SlideBattlePics ld a, $1 ld [hBGMapMode], a ld a, $31 @@ -9438,7 +9438,7 @@ Function3fb6c: ; 3fb6c ret ; 3fbd6 -Function3fbd6: ; 3fbd6 +.BlankBGMap: ; 3fbd6 ld a, [rSVBK] push af ld a, $6 @@ -9451,7 +9451,7 @@ Function3fbd6: ; 3fbd6 ld de, w6_d000 ld hl, VBGMap0 - lb bc, BANK(Function3fbd6), $40 + lb bc, BANK(.BlankBGMap), $40 call Request2bpp pop af @@ -9459,7 +9459,7 @@ Function3fbd6: ; 3fbd6 ret ; 3fbf8 -Function3fbf8: ; 3fbf8 +.InitBackPic: ; 3fbf8 call GetTrainerBackpic call CopyBackpic ret diff --git a/battle/sliding_intro.asm b/battle/sliding_intro.asm new file mode 100755 index 000000000..e13e8bd05 --- /dev/null +++ b/battle/sliding_intro.asm @@ -0,0 +1,107 @@ +SlideBattlePics: ; 4e980 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + call .subfunction1 + ld a, rSCX - $ff00 + ld [hLCDStatCustom], a + call .subfunction2 + xor a + ld [hLCDStatCustom], a + pop af + ld [rSVBK], a + ret +; 4e998 + +.subfunction1: ; 4e998 + call .subfunction4 + ld a, $90 + ld [hSCX], a + ld a, %11100100 + call DmgToCgbBGPals + lb de, %11100100, %11100100 + call DmgToCgbObjPals + ret +; 4e9ab + +.subfunction2: ; 4e9ab + ld d, $90 + ld e, $72 + ld a, $48 + inc a +.loop1 + push af +.loop2 + ld a, [rLY] + cp $60 + jr c, .loop2 + ld a, d + ld [hSCX], a + call .subfunction5 +rept 2 + inc e +endr +rept 2 + dec d +endr + pop af + push af + cp $1 + jr z, .skip1 + push de + call .subfunction3 + pop de + +.skip1 + call DelayFrame + pop af + dec a + jr nz, .loop1 + ret +; 4e9d6 + +.subfunction3: ; 4e9d6 + ld hl, Sprites + 1 + ld c, $12 ; 18 + ld de, $4 +.loop3 +rept 2 + dec [hl] +endr + add hl, de + dec c + jr nz, .loop3 + ret +; 4e9e5 + +.subfunction4: ; 4e9e5 + ld hl, LYOverrides + ld a, $90 + ld bc, SCREEN_HEIGHT_PX + call ByteFill + ret +; 4e9f1 + +.subfunction5: ; 4e9f1 + ld hl, LYOverrides + ld a, d + ld c, $3e ; 62 +.loop4 + ld [hli], a + dec c + jr nz, .loop4 + ld a, e + ld c, $22 ; 34 +.loop5 + ld [hli], a + dec c + jr nz, .loop5 + xor a + ld c, $30 ; 48 +.loop6 + ld [hli], a + dec c + jr nz, .loop6 + ret +; 4ea0a diff --git a/main.asm b/main.asm index 6e4ea7eb6..d2df2606e 100644 --- a/main.asm +++ b/main.asm @@ -37911,114 +37911,7 @@ FemaleTrainersEnd: ; 4e980 -Function4e980: ; 4e980 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - call Function4e998 - ld a, rSCX - $ff00 - ld [hLCDStatCustom], a - call Function4e9ab - xor a - ld [hLCDStatCustom], a - pop af - ld [rSVBK], a - ret -; 4e998 - -Function4e998: ; 4e998 - call Function4e9e5 - ld a, $90 - ld [hSCX], a - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - ret -; 4e9ab - -Function4e9ab: ; 4e9ab - ld d, $90 - ld e, $72 - ld a, $48 - inc a -.asm_4e9b2 - push af -.asm_4e9b3 - ld a, [rLY] - cp $60 - jr c, .asm_4e9b3 - ld a, d - ld [hSCX], a - call Function4e9f1 -rept 2 - inc e -endr -rept 2 - dec d -endr - pop af - push af - cp $1 - jr z, .asm_4e9ce - push de - call Function4e9d6 - pop de - -.asm_4e9ce - call DelayFrame - pop af - dec a - jr nz, .asm_4e9b2 - ret -; 4e9d6 - -Function4e9d6: ; 4e9d6 - ld hl, Sprites + 1 - ld c, $12 - ld de, $4 -.asm_4e9de -rept 2 - dec [hl] -endr - add hl, de - dec c - jr nz, .asm_4e9de - ret -; 4e9e5 - -Function4e9e5: ; 4e9e5 - ld hl, LYOverrides - ld a, $90 - ld bc, SCREEN_HEIGHT_PX - call ByteFill - ret -; 4e9f1 - -Function4e9f1: ; 4e9f1 - ld hl, LYOverrides - ld a, d - ld c, $3e -.asm_4e9f7 - ld [hli], a - dec c - jr nz, .asm_4e9f7 - ld a, e - ld c, $22 -.asm_4e9fe - ld [hli], a - dec c - jr nz, .asm_4e9fe - xor a - ld c, $30 -.asm_4ea05 - ld [hli], a - dec c - jr nz, .asm_4ea05 - ret -; 4ea0a - +INCLUDE "battle/sliding_intro.asm" Function4ea0a: ; 4ea0a diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 4b6f31d16..c24c51405 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -4039,7 +4039,7 @@ Function101a21: ; 101a21 ld [hl], a ld a, $1 ld [wc2d7], a - callba Function3f4dd + callba BattleIntro callba Function3c000 callba Function3f759 xor a -- cgit v1.2.3 From 4b35fa05829eb5257186699d8a8e44362905468c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Tue, 10 Nov 2015 23:23:28 -0500 Subject: Added w3 and w5 labels for misc/mobile_40.asm --- battle/core.asm | 75 +-- engine/breeding/egg.asm | 2 +- engine/clock_reset.asm | 2 +- engine/diploma.asm | 2 +- home.asm | 2 +- home/copy2.asm | 2 + home/joypad.asm | 16 +- items/item_effects.asm | 6 +- main.asm | 1224 +++-------------------------------------------- misc/mobile_40.asm | 175 +++---- misc/mobile_41.asm | 1094 ++++++++++++++++++++++++++++++++++++++++++ wram.asm | 22 +- 12 files changed, 1331 insertions(+), 1291 deletions(-) create mode 100755 misc/mobile_41.asm diff --git a/battle/core.asm b/battle/core.asm index 37b8a4c2e..cce4daf74 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -3,7 +3,7 @@ BattleCore: ; Core components of the battle engine. -Function3c000: ; 3c000 +SendOutFirstMons: ; 3c000 xor a ld [wBattleParticipantsNotFainted], a ld [wc6fc], a @@ -2506,7 +2506,7 @@ WinTrainerBattle: ; 3cfa4 .mobile call Function3ebd8 - ld c, $28 + ld c, 40 call DelayFrames ld c, $4 callba Function4ea0a @@ -2514,12 +2514,12 @@ WinTrainerBattle: ; 3cfa4 .battle_tower call Function3ebd8 - ld c, $28 + ld c, 40 call DelayFrames call EmptyBattleTextBox ld c, $3 callba BattleTowerText - call Functiona80 + call WaitPressAorB_BlinkCursor ld hl, wPayDayMoney ld a, [hli] or [hl] @@ -3135,7 +3135,7 @@ LostBattle: ; 3d38e call EmptyBattleTextBox ld c, 2 callba BattleTowerText - call Functiona80 + call WaitPressAorB_BlinkCursor call ClearTileMap call WhiteBGMap ret @@ -7713,7 +7713,7 @@ endr predef PrintTempMonStats ld c, $1e call DelayFrames - call Functiona80 + call WaitPressAorB_BlinkCursor call Call_LoadTempTileMapToTileMap xor a ; PARTYMON ld [MonType], a @@ -8474,8 +8474,8 @@ StartBattle: ; 3f4c1 ld a, [TimeOfDayPal] push af call BattleIntro - call Function3c000 - call Function3f69e + call SendOutFirstMons + call ExitBattle pop af ld [TimeOfDayPal], a scf @@ -8483,8 +8483,9 @@ StartBattle: ; 3f4c1 ; 3f4d9 -Function3f4d9: ; 3f4d9 - call Function3c000 +_SendOutFirstMons: ; 3f4d9 +; unreferenced + call SendOutFirstMons ret ; 3f4dd @@ -8716,9 +8717,9 @@ Function3f662: ; 3f662 ; 3f69e -Function3f69e: ; 3f69e +ExitBattle: ; 3f69e call Function3f6a5 - call Function3f6d0 + call CleanUpBattleRAM ret ; 3f6a5 @@ -8726,7 +8727,7 @@ Function3f6a5: ; 3f6a5 ld a, [wLinkMode] and a jr z, .not_linked - call Function3f759 + call ShowLinkBattleParticipantsAfterEnd ld c, 150 call DelayFrames call Function3f77c @@ -8736,7 +8737,7 @@ Function3f6a5: ; 3f6a5 ld a, [wBattleResult] and $f ret nz - call Function3f71d + call CheckPayDay xor a ld [wd1e9], a predef Function421e6 @@ -8744,7 +8745,7 @@ Function3f6a5: ; 3f6a5 ret ; 3f6d0 -Function3f6d0: ; 3f6d0 +CleanUpBattleRAM: ; 3f6d0 call Function3f998 xor a ld [Danger], a @@ -8777,7 +8778,7 @@ Function3f6d0: ; 3f6d0 ret ; 3f71d -Function3f71d: ; 3f71d +CheckPayDay: ; 3f71d ld hl, wPayDayMoney ld a, [hli] or [hl] @@ -8786,21 +8787,21 @@ Function3f71d: ; 3f71d ret z ld a, [wc73d] and a - jr z, .asm_3f73d + jr z, .okay ld hl, wPayDayMoney + 2 sla [hl] dec hl rl [hl] dec hl rl [hl] - jr nc, .asm_3f73d + jr nc, .okay ld a, $ff rept 2 ld [hli], a endr ld [hl], a -.asm_3f73d +.okay ld hl, wPayDayMoney + 2 ld de, Money + 2 call Function3d0be @@ -8814,7 +8815,7 @@ endr ret ; 3f759 -Function3f759: ; 3f759 +ShowLinkBattleParticipantsAfterEnd: ; 3f759 callba MobileFn_1060df callba BackupMobileEventIndex ld a, [CurOTMon] @@ -8829,13 +8830,15 @@ Function3f759: ; 3f759 Function3f77c: ; 3f77c callba CheckMobileBattleError - jp c, Function3f80f - call Function3f830 + jp c, .Mobile_InvalidBattle + call IsMobileBattle2 jr nz, .proceed + ld hl, wcd2a bit 4, [hl] jr z, .proceed - callba Function2b930 + + callba DetermineLinkBattleResult .proceed ld a, [wBattleResult] @@ -8843,17 +8846,17 @@ Function3f77c: ; 3f77c cp $1 jr c, .victory jr z, .loss - callba MobileFn_106107 + callba MobileFn_SaveBattleResult_Draw ld de, .Draw jr .store_result .victory - callba MobileFn_1060fb + callba MobileFn_SaveBattleResult_Win ld de, .Win jr .store_result .loss - callba MobileFn_106101 + callba MobileFn_SaveBattleResult_Lose ld de, .Lose jr .store_result @@ -8872,13 +8875,13 @@ Function3f77c: ; 3f77c call CloseSRAM - call Function3f830 - jr z, .asm_3f7ee - call Functiona80 + call IsMobileBattle2 + jr z, .mobile + call WaitPressAorB_BlinkCursor call ClearTileMap ret -.asm_3f7ee +.mobile ld c, 200 call DelayFrames call ClearTileMap @@ -8894,11 +8897,11 @@ Function3f77c: ; 3f77c ; 3f80f -Function3f80f: ; 3f80f +.Mobile_InvalidBattle: ; 3f80f hlcoord 6, 8 ld de, .Invalid call PlaceString - ld c, $c8 + ld c, 200 call DelayFrames call ClearTileMap ret @@ -8909,7 +8912,7 @@ Function3f80f: ; 3f80f ; 3f830 -Function3f830: ; 3f830 +IsMobileBattle2: ; 3f830 ld a, [wLinkMode] cp LINK_MOBILE ret @@ -8919,7 +8922,9 @@ Function3f830: ; 3f830 Function3f836: ; 3f836 ld a, BANK(sLinkBattleStats) call GetSRAMBank + call Function3f85f + call CloseSRAM hlcoord 0, 0, AttrMap xor a @@ -8931,7 +8936,7 @@ Function3f836: ; 3f836 call SetPalettes ld c, $8 call DelayFrames - call Functiona80 + call WaitPressAorB_BlinkCursor ret ; 3f85f @@ -9634,7 +9639,7 @@ BattleStartMessage: ; 3fc8b pop hl call StdBattleTextBox - call Function3f830 + call IsMobileBattle2 ret nz ld c, $2 diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index 3b71b0601..2a2fac5e7 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -894,7 +894,7 @@ Special_DayCareMon2: ; 17440 jp PrintText Function1745f: ; 1745f - jp Functiona80 + jp WaitPressAorB_BlinkCursor ; 17462 UnknownText_0x17462: ; 0x17462 diff --git a/engine/clock_reset.asm b/engine/clock_reset.asm index 3d2ca2708..d9d8f3567 100755 --- a/engine/clock_reset.asm +++ b/engine/clock_reset.asm @@ -99,7 +99,7 @@ RestartClock: ; 20021 (8:4021) call .PrintTime ld hl, .Text_ClockReset call PrintText - call Functiona80 + call WaitPressAorB_BlinkCursor xor a ret diff --git a/engine/diploma.asm b/engine/diploma.asm index eff2ff5f1..86a9a6ceb 100644 --- a/engine/diploma.asm +++ b/engine/diploma.asm @@ -1,7 +1,7 @@ Function1dd702: ; 1dd702 call Function1dd709 - call Functiona80 + call WaitPressAorB_BlinkCursor ret ; 1dd709 diff --git a/home.asm b/home.asm index b55d40a6e..74ae8dc30 100644 --- a/home.asm +++ b/home.asm @@ -1623,7 +1623,7 @@ PrintWinLossText:: ; 3718 call GetMapScriptHeaderBank call FarPrintText call WaitBGMap - call Functiona80 + call WaitPressAorB_BlinkCursor ret ; 3741 diff --git a/home/copy2.asm b/home/copy2.asm index ca83ff44b..538be572f 100644 --- a/home/copy2.asm +++ b/home/copy2.asm @@ -98,7 +98,9 @@ FarCopyWRAM:: ; 306b push af ld a, [hBuffer] ld [rSVBK], a + call CopyBytes + pop af ld [rSVBK], a ret diff --git a/home/joypad.asm b/home/joypad.asm index eb482112e..8dccedf6c 100644 --- a/home/joypad.asm +++ b/home/joypad.asm @@ -355,7 +355,7 @@ JoyTextDelay:: ; a57 ret ; a80 -Functiona80:: ; a80 +WaitPressAorB_BlinkCursor:: ; a80 ld a, [hMapObjectIndexBuffer] push af ld a, [hObjectStructIndexBuffer] @@ -368,7 +368,7 @@ Functiona80:: ; a80 .loop push hl hlcoord 18, 17 - call Functionb06 + call BlinkCursor pop hl call JoyTextDelay @@ -383,7 +383,7 @@ Functiona80:: ; a80 ret ; aa5 -Functionaa5:: ; aa5 +SimpleWaitPressAorB:: ; aa5 .loop call JoyTextDelay ld a, [hJoyLast] @@ -451,14 +451,14 @@ KeepTextOpen:: ; aaf ret ; b06 -Functionb06:: ; b06 +BlinkCursor:: ; b06 push bc ld a, [hl] ld b, a ld a, "▼" cp b pop bc - jr nz, .asm_b27 + jr nz, .place_arrow ld a, [hMapObjectIndexBuffer] dec a ld [hMapObjectIndexBuffer], a @@ -475,7 +475,7 @@ Functionb06:: ; b06 ld [hObjectStructIndexBuffer], a ret -.asm_b27 +.place_arrow ld a, [hMapObjectIndexBuffer] and a ret z @@ -488,9 +488,9 @@ Functionb06:: ; b06 dec a ld [hObjectStructIndexBuffer], a ret nz - ld a, $6 + ld a, 6 ld [hObjectStructIndexBuffer], a - ld a, $ee + ld a, "▼" ld [hl], a ret ; b40 diff --git a/items/item_effects.asm b/items/item_effects.asm index 15332f0d8..e7fcaa35d 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -1438,7 +1438,7 @@ RareCandy: ; ef14 ld bc, $0004 predef PrintTempMonStats - call Functiona80 + call WaitPressAorB_BlinkCursor xor a ; PARTYMON ld [MonType], a @@ -1921,7 +1921,7 @@ Functionf279: ; f279 (3:7279) ld [hBGMapMode], a ld c, $32 call DelayFrames - jp Functiona80 + jp WaitPressAorB_BlinkCursor Functionf299: ; f299 (3:7299) call WontHaveAnyEffectMessage @@ -2943,7 +2943,7 @@ Functionf789: ; f789 ld hl, UsedItemText call PrintText call Play_SFX_FULL_HEAL - call Functiona80 + call WaitPressAorB_BlinkCursor ; fallthrough ; f795 diff --git a/main.asm b/main.asm index d2df2606e..bc08350dc 100644 --- a/main.asm +++ b/main.asm @@ -5486,7 +5486,7 @@ dig_incave jr nz, .failescaperope ld hl, UnknownText_0xcc26 call MenuTextBox - call Functiona80 + call WaitPressAorB_BlinkCursor call WriteBackup .failescaperope @@ -25054,60 +25054,60 @@ SwarmWaterWildMons: ; 0x2b92f INCLUDE "data/wild/swarm_water.asm" -Function2b930: ; 2b930 +DetermineLinkBattleResult: ; 2b930 callba UpdateEnemyMonInParty ld hl, PartyMon1HP - call Function2b995 + call .CountMonsRemaining push bc ld hl, OTPartyMon1HP - call Function2b995 + call .CountMonsRemaining ld a, c pop bc cp c - jr z, .asm_2b94c - jr c, .asm_2b97f - jr .asm_2b976 + jr z, .even_number_of_mons_remaining + jr c, .defeat + jr .victory -.asm_2b94c - call Function2b9e1 - jr z, .asm_2b98a +.even_number_of_mons_remaining + call .BothSides_CheckNumberMonsAtFullHealth + jr z, .drawn ld a, e cp $1 - jr z, .asm_2b976 + jr z, .victory cp $2 - jr z, .asm_2b97f + jr z, .defeat ld hl, PartyMon1HP - call Function2b9a6 + call .CalcPercentHPRemaining push de ld hl, OTPartyMon1HP - call Function2b9a6 + call .CalcPercentHPRemaining pop hl ld a, d cp h - jr c, .asm_2b976 - jr z, .asm_2b970 - jr .asm_2b97f + jr c, .victory + jr z, .compare_lo + jr .defeat -.asm_2b970 +.compare_lo ld a, e cp l - jr z, .asm_2b98a - jr nc, .asm_2b97f + jr z, .drawn + jr nc, .defeat -.asm_2b976 +.victory ld a, [wBattleResult] and $f0 ld [wBattleResult], a ret -.asm_2b97f +.defeat ld a, [wBattleResult] and $f0 add $1 ld [wBattleResult], a ret -.asm_2b98a +.drawn ld a, [wBattleResult] and $f0 add $2 @@ -25115,30 +25115,30 @@ Function2b930: ; 2b930 ret ; 2b995 -Function2b995: ; 2b995 - ld c, $0 - ld b, $3 - ld de, $2f -.asm_2b99c +.CountMonsRemaining: ; 2b995 + ld c, 0 + ld b, 3 + ld de, PARTYMON_STRUCT_LENGTH - 1 +.loop ld a, [hli] or [hl] - jr nz, .asm_2b9a1 + jr nz, .not_fainted inc c -.asm_2b9a1 +.not_fainted add hl, de dec b - jr nz, .asm_2b99c + jr nz, .loop ret ; 2b9a6 -Function2b9a6: ; 2b9a6 +.CalcPercentHPRemaining: ; 2b9a6 ld de, 0 ld c, $3 -.asm_2b9ab +.loop2 ld a, [hli] or [hl] - jr z, .asm_2b9d7 + jr z, .next dec hl xor a ld [hDividend + 0], a @@ -25166,45 +25166,45 @@ Function2b9a6: ; 2b9a6 ld d, a dec hl -.asm_2b9d7 +.next push de ld de, $2f add hl, de pop de dec c - jr nz, .asm_2b9ab + jr nz, .loop2 ret ; 2b9e1 -Function2b9e1: ; 2b9e1 +.BothSides_CheckNumberMonsAtFullHealth: ; 2b9e1 ld hl, PartyMon1HP - call Function2ba01 - jr nz, .asm_2b9f2 + call .CheckFaintedOrFullHealth + jr nz, .finish ; we have a pokemon that's neither fainted nor at full health ld hl, OTPartyMon1HP - call Function2ba01 + call .CheckFaintedOrFullHealth ld e, $1 ret -.asm_2b9f2 +.finish ld hl, OTPartyMon1HP - call Function2ba01 + call .CheckFaintedOrFullHealth ld e, $0 - ret nz + ret nz ; we both have pokemon that are neither fainted nor at full health ld e, $2 ld a, $1 and a ret ; 2ba01 -Function2ba01: ; 2ba01 - ld d, $3 -.asm_2ba03 +.CheckFaintedOrFullHealth: ; 2ba01 + ld d, 3 +.loop3 ld a, [hli] ld b, a ld a, [hli] ld c, a or b - jr z, .asm_2ba10 + jr z, .fainted_or_full_health ld a, [hli] cp b ret nz @@ -25212,13 +25212,13 @@ Function2ba01: ; 2ba01 cp c ret nz -.asm_2ba10 +.fainted_or_full_health push de - ld de, $2e + ld de, PARTYMON_STRUCT_LENGTH - 2 add hl, de pop de dec d - jr nz, .asm_2ba03 + jr nz, .loop3 ret ; 2ba1a @@ -32049,7 +32049,7 @@ endr Function49811: ; 49811 ld hl, Palette_49826 - ld de, wd010 + ld de, Unkn1Pals + $10 ld bc, $30 ld a, $5 call FarCopyWRAM @@ -37922,22 +37922,26 @@ Function4ea0a: ; 4ea0a pop af dec a ld bc, $c - ld hl, wdc1a + ld hl, w5_dc1a call AddNTimes ld de, wcd53 ld bc, $c - ld a, $5 + ld a, $5 ; BANK(w5_dc1a) call FarCopyWRAM + ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a + ld bc, wcd53 decoord 1, 14 callba Function11c0c6 + pop af ld [rSVBK], a - ld c, $b4 + + ld c, 180 call DelayFrames ret ; 4ea44 @@ -50747,7 +50751,7 @@ InitClock: ; 90672 (24:4672) call Function658 ld hl, OakText_ResponseToSetTime call PrintText - call Functiona80 + call WaitPressAorB_BlinkCursor pop af ld [hInMenu], a ret @@ -54592,7 +54596,7 @@ Function929a4: ; 929a4 (24:69a4) Function929d9: ; 929d9 (24:69d9) call Function9304c - call Functiona80 + call WaitPressAorB_BlinkCursor call Function930e9 jr c, .asm_929ea ld a, $0 @@ -58976,7 +58980,7 @@ endr .TabulateTheResult: ; e0314 call Functione0637 - call Functiona80 + call WaitPressAorB_BlinkCursor call .Increment ret ; e031e @@ -60725,7 +60729,7 @@ Functione1376: ; e1376 ld de, SFX_1ST_PLACE call PlaySFX call WaitSFX - call Functionaa5 + call SimpleWaitPressAorB ld a, $1 ld [wd0ec], a @@ -61493,7 +61497,7 @@ Functione1fcc: ; e1fcc jr .asm_e1fd5 .asm_e1ff9 - call Functiona80 + call WaitPressAorB_BlinkCursor ld hl, wJumptableIndex inc [hl] @@ -68214,11 +68218,11 @@ Functionfb877: ; fb877 xor a ld [wPokedexStatus], a callba Function41a7f - call Functiona80 + call WaitPressAorB_BlinkCursor ld a, $1 ld [wPokedexStatus], a callba Function4424d - call Functiona80 + call WaitPressAorB_BlinkCursor pop af ld [wPokedexStatus], a call MaxVolume @@ -72680,1103 +72684,7 @@ UpdateUsedMoves: ; 105ed0 ret ; 105ef6 - - -SECTION "bank41_2", ROMX, BANK[$41] - -Mobile_HallOfFame2:: mobile ; 0x105ef6 - ld a, $5 - call GetSRAMBank - ld hl, GameTimeHours - ld de, $a001 - ld bc, 4 - call CopyBytes - ld hl, $a010 - ld de, $a005 - ld bc, 4 - call CopyBytes - ld hl, $a039 - ld de, $a009 - ld bc, 4 - call CopyBytes - ld hl, $a01b - ld de, $a00d - ld bc, 3 - call CopyBytes - call Function106162 - call CloseSRAM - ret -; 105f33 - -MagikarpLength_Mobile: mobile ; 105f33 - ld a, $5 - call GetSRAMBank - ld de, Buffer1 - ld hl, $a07b - ld a, [de] - cp [hl] - jr z, .asm_105f47 - jr nc, .asm_105f4f - jr .asm_105f55 - -.asm_105f47 - inc hl - inc de - ld a, [de] - cp [hl] - dec hl - dec de - jr c, .asm_105f55 - -.asm_105f4f - ld a, [de] - inc de - ld [hli], a - ld a, [de] - dec de - ld [hl], a - -.asm_105f55 - ld hl, $a07d - ld a, [hli] - or [hl] - dec hl - jr z, .asm_105f6d - ld a, [de] - cp [hl] - jr z, .asm_105f65 - jr c, .asm_105f6d - jr .asm_105f72 - -.asm_105f65 - inc hl - inc de - ld a, [de] - cp [hl] - jr nc, .asm_105f72 - dec hl - dec de - -.asm_105f6d - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - -.asm_105f72 - call Function106162 - call CloseSRAM - ret -; 105f79 - -MobileFn_105f79: mobile ; 105f79 - ld a, $5 - call GetSRAMBank - ld a, [hProduct] - ld hl, $a07f - cp [hl] - jr z, .asm_105f8b - jr nc, .asm_105f92 - jr .asm_105f98 - -.asm_105f8b - inc hl - ld a, [hMultiplicand] - cp [hl] - jr c, .asm_105f98 - dec hl - -.asm_105f92 - ld a, [hProduct] - ld [hli], a - ld a, [hMultiplicand] - ld [hl], a - -.asm_105f98 - call Function106162 - call CloseSRAM - ret -; 105f9f - -MobileFn_105f9f: mobile ; 105f9f - ld a, $5 - call GetSRAMBank - ld hl, $a070 - inc [hl] - jr nz, .asm_105fae - dec hl - inc [hl] - inc hl - -.asm_105fae - dec hl - ld a, [$a071] - cp [hl] - jr z, .asm_105fb9 - jr c, .asm_105fc1 - jr .asm_105fc9 - -.asm_105fb9 - inc hl - ld a, [$a072] - cp [hl] - jr nc, .asm_105fc9 - dec hl - -.asm_105fc1 - ld a, [hli] - ld [$a071], a - ld a, [hl] - ld [$a072], a - -.asm_105fc9 - call Function106162 - call CloseSRAM - ret -; 105fd0 - -MobileFn_105fd0: mobile ; 105fd0 - ld a, $5 - call GetSRAMBank - ld hl, $a06f - xor a - ld [hli], a - ld [hl], a - call Function106162 - call CloseSRAM - ret -; 105fe3 - -MobileFn_105fe3: mobile ; 105fe3 - ld a, $5 - call GetSRAMBank - ld hl, $a076 - ld a, e - add [hl] - ld [hld], a - ld a, d - adc [hl] - ld [hld], a - jr nc, .asm_106001 - inc [hl] - jr nz, .asm_106001 - dec hl - inc [hl] - jr nz, .asm_106001 - ld a, $ff -rept 3 - ld [hli], a -endr - ld [hl], a - -.asm_106001 - call Function106162 - call CloseSRAM - ret -; 106008 - -MobileFn_106008: mobile ; 106008 - ld a, $5 - call GetSRAMBank - ld hl, $a07a - ld a, [bc] - dec bc - add [hl] - ld [hld], a - ld a, [bc] - dec bc - adc [hl] - ld [hld], a - ld a, [bc] - adc [hl] - ld [hld], a - jr nc, .asm_106027 - inc [hl] - jr nz, .asm_106027 - ld a, $ff -rept 3 - ld [hli], a -endr - ld [hl], a - -.asm_106027 - call Function106162 - call CloseSRAM - ret -; 10602e - -MobileFn_10602e: mobile ; 10602e (41:602e) - ld hl, $a010 - jp Function106117 - -MobileFn_106035: mobile ; 106035 - ld a, $5 - call GetSRAMBank - ld a, [$aa8d] - and a - call CloseSRAM - ret nz - ld hl, $a014 - jp Function106123 - -MobileFn_106049: mobile ; 106049 - ld hl, $a018 - jp Function10611d - -MobileFn_106050: mobile ; 106050 - ld a, [BattleType] - cp BATTLETYPE_TUTORIAL - ret z - ld hl, $a01b - jp Function10611d - -MobileFn_10605d: mobile ; 10605d - ld a, [BattleType] - cp BATTLETYPE_TUTORIAL - ret z - ld hl, $a01e - jp Function10611d - -MobileFn_10606a: mobile ; 10606a - ld hl, $a021 - jp Function10611d - -MobileFn_106071: mobile ; 106071 - ld hl, $a024 - jp Function10611d - -Mobile_HallOfFame:: mobile ; 0x106078 - ld hl, $a027 - jp Function10611d - -MobileFn_10607f: mobile ; 10607f (41:607f) - ld hl, $a02a - jp Function10611d - -MobileFn_106086: mobile ; 106086 - ld hl, $a02d - jp Function10611d - -MobileFn_10608d: mobile ; 10608d (41:608d) - ld hl, $a030 - jp Function10611d - -MobileFn_106094: mobile ; 106094 - ld hl, $a033 - jp Function10611d - -MobileFn_10609b: mobile ; 10609b - ld hl, $a036 - jp Function10611d - -Mobile_HealParty: mobile ; 1060a2 - ld hl, $a039 - jp Function10611d - -MobileFn_1060a9: mobile ; 1060a9 (41:60a9) - ld hl, $a03c - jr Function10611d - -MobileFn_1060af: mobile ; 1060af - ld hl, $a03f - jr Function10611d - -MobileFn_1060b5: mobile ; 1060b5 - ld hl, $a042 - jr Function10611d - -MobileFn_1060bb: mobile ; 1060bb - ld hl, $a045 - jr Function10611d - -MobileFn_1060c1: mobile ; 1060c1 - ld hl, $a048 - jr Function10611d - -MobileFn_1060c7: mobile ; 1060c7 - ld hl, $a04b - jr Function10611d - -MobileFn_1060cd: mobile ; 1060cd - ld hl, $a04e - jr Function106123 - -MobileFn_1060d3: mobile ; 1060d3 - ld hl, $a051 - jr Function10611d - -MobileFn_1060d9: mobile ; 1060df - ld hl, $a054 - jr Function10611d - -MobileFn_1060df: mobile ; 1060df - ld hl, $a057 - jr Function10611d - -MobileFn_1060e5: mobile ; 1060e5 - ld a, [hBattleTurn] - and a - ret nz - ld hl, $a05a - jr Function10611d - -MobileFn_1060ef: mobile ; 1060ef - ld hl, $a05d - jr Function10611d - -MobileFn_1060f5: mobile ; 1060f5 - ld hl, $a060 - jr Function10611d - -MobileFn_1060fb: mobile ; 1060fb - ld hl, $a063 - jr Function10611d - -MobileFn_106101: mobile ; 106101 - ld hl, $a066 - jr Function10611d -; 106107 - -MobileFn_106107: mobile ; 106107 - ld hl, $a069 - jr Function10611d -; 10610d - -MobileFn_10610d: mobile ; 10610d - ld a, [hBattleTurn] - and a - ret nz - ld hl, $a06c - jr Function10611d -; 106117 - -Function106117: ; 106117 - push bc - ld bc, 3 - jr Function10612d -; 10611d - -Function10611d: ; 10611d - push bc - ld bc, 2 - jr Function10612d -; 106123 - -Function106123: ; 106123 - push bc - ld bc, 1 - jr Function10612d -; 106129 - -Function106129: ; 106129 - push bc - ld bc, 0 - -Function10612d: ; 10612d - ld a, $5 - call GetSRAMBank - push hl - push de - ld e, c - inc e -.asm_106136 - ld a, [hli] - inc a - jr nz, .asm_10613d - dec e - jr nz, .asm_106136 - -.asm_10613d - pop de - pop hl - jr z, .asm_10614d - add hl, bc -.asm_106142 - inc [hl] - jr nz, .asm_10614d - ld a, c - and a - jr z, .asm_10614d - dec hl - dec c - jr .asm_106142 - -.asm_10614d - call Function106162 - call CloseSRAM - pop bc - ret -; 106155 - -MobileFn_106155: mobile ; 106155 - ld a, $5 - call GetSRAMBank - call Function106162 - call CloseSRAM - ret -; 106162 - -Function106162: ; 106162 - push de - call Function10616e - ld hl, $a081 ; s5_a081 - ld [hl], d - inc hl - ld [hl], e - pop de - ret -; 10616e - -Function10616e: ; 10616e - push bc - ld hl, $a001 ; s5_a001 - ld bc, $80 - xor a - ld de, 0 -.asm_106179 - ld a, e - add [hl] - ld e, a - jr nc, .asm_10617f - inc d - -.asm_10617f - inc hl - dec bc - ld a, b - or c - jr nz, .asm_106179 - pop bc - ret -; 106187 - - -BackupMobileEventIndex: ; 106187 - ld a, BANK(sMobileEventIndex) - call GetSRAMBank - ld a, [sMobileEventIndex] - push af - ld a, BANK(sMobileEventIndexBackup) - call GetSRAMBank - pop af - ld [sMobileEventIndexBackup], a - call CloseSRAM - ret -; 10619d - - -RestoreMobileEventIndex: ; 10619d (41:619d) - ld a, BANK(sMobileEventIndexBackup) - call GetSRAMBank - ld a, [sMobileEventIndexBackup] - push af - ld a, BANK(sMobileEventIndex) - call GetSRAMBank - pop af - ld [sMobileEventIndex], a - call CloseSRAM - ret -; 1061b3 (41:61b3) - -Function1061b3: ; 1061b3 - call Function10616e - ld hl, $a081 ; s5_a081 - ld a, d - cp [hl] - ret nz - inc hl - ld a, e - cp [hl] - ret -; 1061c0 - -DeleteMobileEventIndex: ; 1061c0 (41:61c0) - ld a, BANK(sMobileEventIndex) - call GetSRAMBank - xor a - ld [sMobileEventIndex], a - call CloseSRAM - ret -; 1061cd (41:61cd) - -Function1061cd: ; unreferenced - ld hl, $a001 - ld bc, $82 - xor a - call ByteFill - ld hl, $a07d - ld a, $3 - ld [hli], a - ld [hl], $e8 - call Function106162 - ld hl, $a001 - ld de, $a084 - ld bc, $82 - call CopyBytes - ret -; 1061ef - - -_MobilePrintNum:: ; 1061ef -; Supports signed 31-bit integers (up to 10 digits) -; b: Bits 0-4 = # bytes -; Bit 7 = set if negative -; c: Number of digits -; de: highest byte of number to convert -; hl: where to print the converted string - push bc - xor a - ld [hPrintNum1], a - ld [hPrintNum2], a - ld [hPrintNum3], a - ld a, b - and $f - cp $1 - jr z, .one_byte - cp $2 - jr z, .two_bytes - cp $3 - jr z, .three_bytes -; four bytes - ld a, [de] - ld [hPrintNum1], a - inc de - -.three_bytes - ld a, [de] - ld [hPrintNum2], a - inc de - -.two_bytes - ld a, [de] - ld [hPrintNum3], a - inc de - -.one_byte - ld a, [de] - ld [hPrintNum4], a - inc de - - push de - xor a - ld [hPrintNum9], a - ld a, b - ld [hPrintNum10], a - ld a, c - cp 2 - jr z, .two_digits - ld de, ._2 - cp 3 - jr z, .three_to_nine_digits - ld de, ._3 - cp 4 - jr z, .three_to_nine_digits - ld de, ._4 - cp 5 - jr z, .three_to_nine_digits - ld de, ._5 - cp 6 - jr z, .three_to_nine_digits - ld de, ._6 - cp 7 - jr z, .three_to_nine_digits - ld de, ._7 - cp 8 - jr z, .three_to_nine_digits - ld de, ._8 - cp 9 - jr z, .three_to_nine_digits - ld de, ._9 - -.three_to_nine_digits -rept 3 - inc de -endr -rept 2 - dec a -endr - -.digit_loop - push af - call .Function1062b2 - call .Function1062ff -rept 4 - inc de -endr - pop af - dec a - jr nz, .digit_loop - -.two_digits - ld c, 0 - ld a, [hPrintNum4] -.mod_ten_loop - cp 10 - jr c, .simple_divide_done - sub 10 - inc c - jr .mod_ten_loop - -.simple_divide_done - ld b, a - ld a, [hPrintNum9] - or c - ld [hPrintNum9], a - jr nz, .create_digit - call .LoadMinusTenIfNegative - jr .done - -.create_digit - ld a, "0" - add c - ld [hl], a - -.done - call .Function1062ff - ld a, "0" - add b - ld [hli], a - pop de - pop bc - ret -; 106292 - -._9 dd 1000000000 -._8 dd 100000000 -._7 dd 10000000 -._6 dd 1000000 -._5 dd 100000 -._4 dd 10000 -._3 dd 1000 -._2 dd 100 -; 1062b2 - -.Function1062b2: ; 1062b2 - ld c, $0 -.asm_1062b4 - ld a, [de] - dec de - ld b, a - ld a, [hPrintNum4] - sub b - ld [hPrintNum8], a - ld a, [de] - dec de - ld b, a - ld a, [hPrintNum3] - sbc b - ld [hPrintNum7], a - ld a, [de] - dec de - ld b, a - ld a, [hPrintNum2] - sbc b - ld [hPrintNum6], a - ld a, [de] -rept 3 - inc de -endr - ld b, a - ld a, [hPrintNum1] - sbc b - ld [hPrintNum5], a - jr c, .asm_1062eb - ld a, [hPrintNum5] - ld [hPrintNum1], a - ld a, [hPrintNum6] - ld [hPrintNum2], a - ld a, [hPrintNum7] - ld [hPrintNum3], a - ld a, [hPrintNum8] - ld [hPrintNum4], a - inc c - jr .asm_1062b4 - -.asm_1062eb - ld a, [hPrintNum9] - or c - jr z, .LoadMinusTenIfNegative - ld a, -10 - add c - ld [hl], a - ld [hPrintNum9], a - ret - -.LoadMinusTenIfNegative: - ld a, [hPrintNum10] - bit 7, a - ret z - - ld [hl], -10 - ret -; 1062ff - -.Function1062ff: ; 1062ff - ld a, [hPrintNum10] - bit 7, a - jr nz, .asm_10630d - bit 6, a - jr z, .asm_10630d - ld a, [hPrintNum9] - and a - ret z - -.asm_10630d - inc hl - ret -; 10630f - -Function10630f: ; 10630f - xor a - ld [ScriptVar], a - ret -; 106314 - -MobileFn_106314: mobile ; 106314 - ld a, $4 - call GetSRAMBank - ld a, c - cpl - ld [$b000], a - call CloseSRAM - ld a, $7 - call GetSRAMBank - ld a, c - ld [$a800], a - call CloseSRAM - ret -; 10632f - -Function10632f: ; 10632f - or a - mobile - - ld a, $4 - call GetSRAMBank - ld a, [$b000] - cpl - ld b, a - call CloseSRAM - ld a, $7 - call GetSRAMBank - ld a, [$a800] - ld c, a - call CloseSRAM - ld a, c - cp b - jr nz, .asm_106359 - and a - jr z, .asm_106359 - and $8f - cp c - jr nz, .asm_106359 - ld c, a - scf - ret - -.asm_106359 - xor a - ld c, a - ret -; 10635c - -Function10635c: ; 10635c - ld a, [wcd25] - bit 7, a - ret nz - ld a, [wcd25] - ld hl, Jumptable_10636a - rst JumpTable - ret -; 10636a - -Jumptable_10636a: ; 10636a - dw Function10637c - dw Function106392 - dw Function1063cc - dw Function1063d8 - dw Function1063e5 - dw Function1063f3 - dw Function106403 - dw Function106442 - dw Function106453 -; 10637c - -Function10637c: ; 10637c - ld de, wcd30 - ld hl, $41 - ld bc, $41 - ld a, $40 - call Function3e32 - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 106392 - -Function106392: ; 106392 - xor a - ld [wcf64], a - ld a, [wc821] - bit 1, a - jr nz, .asm_1063a2 - bit 0, a - jr z, .asm_1063bf - ret - -.asm_1063a2 - call Function10632f - ld a, c - and a - jr nz, .asm_1063b4 - ld a, $b - ld [wcf64], a - ld a, $7 - ld [wcd25], a - ret - -.asm_1063b4 - ld a, $7 - ld [wcf64], a - ld a, $7 - ld [wcd25], a - ret - -.asm_1063bf - ld a, $1 - ld [wcf64], a - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 1063cc - -Function1063cc: ; 1063cc - ld a, $78 - ld [wcd42], a - ld a, [wcd25] - inc a - ld [wcd25], a - -Function1063d8: ; 1063d8 - ld hl, wcd42 - dec [hl] - ret nz - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 1063e5 - -Function1063e5: ; 1063e5 - ld a, [wcf64] - cp $3 - ret nz - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 1063f3 - -Function1063f3: ; 1063f3 - ld de, wcd31 - ld a, $32 - call Function3e32 - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 106403 - -Function106403: ; 106403 - ld a, [wc821] - bit 1, a - jr nz, .asm_106426 - bit 0, a - jr z, .asm_10640f - ret - -.asm_10640f - ld a, [wcd31] - and $80 - ld c, a - ld a, [wcd30] - or c - inc a - ld c, a - call MobileFn_106314 - ld a, [wcd25] - inc a - ld [wcd25], a - ret - -.asm_106426 - call Function10632f - ld a, c - and a - jr z, .asm_106435 - ld a, [wcd25] - inc a - ld [wcd25], a - ret - -.asm_106435 - ld c, $0 - call MobileFn_106314 - ld a, [wcd25] - inc a - ld [wcd25], a - ret -; 106442 - -Function106442: ; 106442 - ld a, $36 - call Function3e32 - xor a - ld [hMobile], a - ld [$ffc9], a - ld a, [wcd25] - inc a - ld [wcd25], a - -Function106453: ; 106453 - ld a, [wcd25] - set 7, a - ld [wcd25], a - nop - ld a, $4 - ld [wcf64], a - ret -; 106462 - -Function106462: ; 106462 - ret -; 106463 - -Function106463: ; 106463 - ret -; 106464 - -Function106464:: ; 106464 - ld de, MobilePhoneTilesGFX - ld hl, VTiles2 tile $60 - lb bc, BANK(MobilePhoneTilesGFX), 1 - call Get2bpp - ld de, GFX_f9424 - ld hl, VTiles2 tile $61 - lb bc, BANK(GFX_f9424), 1 - call Get2bpp - ld de, GFX_106514 - ld hl, VTiles2 tile $62 - ld c, 9 - ld b, BANK(GFX_106514) - call Get2bpp - ld de, $40b0 - ld hl, VTiles2 tile $6b - ld b, $f ; XXX no graphics at 0f:40b0 - call Get2bpp - callba LoadFrame - ret -; 10649b - -Function10649b: ; 10649b - ld a, [TextBoxFrame] - and $7 - ld bc, $30 - ld hl, Frames - call AddNTimes - ld d, h - ld e, l - ld hl, VTiles2 tile $79 - ld c, 6 - ld b, BANK(Frames) - call Function1064c3 - ld hl, VTiles2 tile $7f - ld de, TextBoxSpaceGFX - ld c, 1 - ld b, BANK(TextBoxSpaceGFX) - call Function1064c3 - ret -; 1064c3 - -Function1064c3: ; 1064c3 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push bc - push hl - ld hl, Function3f88 - ld a, b - rst FarCall - pop hl - pop bc - pop af - ld [rSVBK], a - jr asm_1064ed - -Function1064d8: ; 1064d8 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push bc - push hl - ld hl, Function3f9f - ld a, b - rst FarCall - pop hl - pop bc - pop af - ld [rSVBK], a - jr asm_1064ed - -asm_1064ed - ld de, w6_d000 - ld b, $0 - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - call Get2bpp - pop af - ld [rVBK], a - pop af - ld [rSVBK], a - ret -; 10650a - -Function10650a: ; 10650a - ld de, MobilePhoneTilesGFX + $20 - lb bc, BANK(MobilePhoneTilesGFX), $11 - call Get2bpp - ret -; 106514 - -GFX_106514: -INCBIN "gfx/unknown/106514.2bpp" - - -Function106594:: ; 106594 - ld de, GFX_1065ad - ld hl, VTiles1 - lb bc, BANK(GFX_1065ad), $80 - call Get2bpp - ld de, GFX_1065ad + $800 - ld hl, VTiles2 tile $7f - lb bc, BANK(GFX_1065ad), 1 - call Get2bpp - ret -; 1065ad - -GFX_1065ad: -INCBIN "gfx/unknown/1065ad.2bpp" - +INCLUDE "misc/mobile_41.asm" INCLUDE "misc/mobile_42.asm" diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index c24c51405..7589725da 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -6,15 +6,18 @@ Function100000: ; 100000 push af ld a, $1 ld [rSVBK], a + call Function100022 call Function1000ba call Function100675 call Function100057 call Function10016f call Function100276 + push bc call Function100301 pop bc + pop af ld [rSVBK], a ret @@ -313,11 +316,14 @@ Function10020b: ; 10020b callba Function106464 call HideSprites call DelayFrame + ld a, [rSVBK] push af ld a, $1 ld [rSVBK], a + callba Function17f555 + pop af ld [rSVBK], a ret @@ -400,7 +406,7 @@ Function1002c9: ; 1002c9 ld hl, wcd2a bit 0, [hl] ret z - callba Function3f6d0 + callba CleanUpBattleRAM callba LoadPokemonData ret ; 1002dc @@ -537,7 +543,7 @@ Function100393: ; 100393 Function10039c: ; 10039c ld hl, wcc60 - ld de, wd000 + ld de, w3_d000 ld bc, $0054 ld a, $3 call FarCopyWRAM @@ -545,7 +551,7 @@ Function10039c: ; 10039c ; 1003ab Function1003ab: ; 1003ab - ld hl, wd000 + ld hl, w3_d000 ld de, wcc60 ld bc, $0054 ld a, $3 @@ -555,7 +561,7 @@ Function1003ab: ; 1003ab Function1003ba: ; 1003ba ld hl, wccb4 - ld de, $d080 + ld de, w3_d080 ld bc, $0054 ld a, $3 call FarCopyWRAM @@ -563,7 +569,7 @@ Function1003ba: ; 1003ba ; 1003c9 Function1003c9: ; 1003c9 - ld hl, $d080 + ld hl, w3_d080 ld de, wccb4 ld bc, $0054 ld a, $3 @@ -1501,7 +1507,7 @@ Function100902: ; 100902 ld de, SFX_4_NOTE_DITTY call PlaySFX callba Function104061 - ld c, $78 + ld c, 120 call DelayFrames ret ; 10095a @@ -1515,10 +1521,10 @@ Function100902: ; 100902 Function100970: ; 100970 hlcoord 0, 0 - ld de, wdc00 + ld de, w3_dc00 call Function1009a5 hlcoord 0, 0, AttrMap - ld de, $dd68 + ld de, w3_dd68 call Function1009a5 call Function1009d2 call Function1009ae @@ -1526,12 +1532,12 @@ Function100970: ; 100970 ; 100989 Function100989: ; 100989 - ld hl, wdc00 + ld hl, w3_dc00 decoord 0, 0 call Function1009a5 call Function1009ae callba Function104061 - ld hl, $dd68 + ld hl, w3_dd68 decoord 0, 0, AttrMap call Function1009a5 ret @@ -1549,23 +1555,25 @@ Function1009ae: ; 1009ae push af ld a, $3 ld [rSVBK], a - ld hl, $d800 + + ld hl, w3_d800 decoord 0, 0, AttrMap - ld c, $14 - ld b, $12 -.asm_1009bf + ld c, SCREEN_WIDTH + ld b, SCREEN_HEIGHT +.loop_row push bc -.asm_1009c0 +.loop_col ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_1009c0 - ld bc, $000c + jr nz, .loop_col + ld bc, 12 add hl, bc pop bc dec b - jr nz, .asm_1009bf + jr nz, .loop_row + pop af ld [rSVBK], a ret @@ -1576,16 +1584,20 @@ Function1009d2: ; 1009d2 push af ld a, $3 ld [rSVBK], a + ld a, [rVBK] push af ld a, $1 ld [rVBK], a - ld hl, $d800 + + ld hl, w3_d800 ld de, VBGMap0 lb bc, $3, $24 call Get2bpp + pop af ld [rVBK], a + pop af ld [rSVBK], a ret @@ -1613,7 +1625,7 @@ Function100a09: ; 100a09 ld [wd431], a callba Function4000 ld a, [wLinkMode] - cp $4 + cp LINK_MOBILE jr nz, .asm_100a2a call Function100a87 @@ -2538,7 +2550,7 @@ Function101050: ; 101050 call Function10107d ld a, [OTPartyCount] rept 2 - ld hl, $c608 + ld hl, wc608 endr ld bc, $01b3 call Function1010de @@ -2548,7 +2560,7 @@ endr ld [hl], d ld a, $7 call GetSRAMBank - ld hl, $c608 + ld hl, wc608 ld de, $a001 ld bc, $01b5 call CopyBytes @@ -2558,28 +2570,28 @@ endr Function10107d: ; 10107d xor a - ld hl, $c608 + ld hl, wc608 ld bc, $01b5 call ByteFill ld hl, wd26b - ld de, $c608 + ld de, wc608 ld bc, $000b call CopyBytes ld hl, wd271 ld a, [hli] - ld [$c608 + 11], a + ld [wc608 + 11], a ld a, [hl] - ld [$c608 + 12], a + ld [wc608 + 12], a ld hl, OTPartyMonNicknames - ld de, $c608 + 13 + ld de, wc608 + 13 ld bc, $000b call Function1010cd ld hl, OTPartyMonOT - ld de, $c656 + 1 + ld de, wc656 + 1 ld bc, $000b call Function1010cd ld hl, OTPartyMon1Species - ld de, $c68a + 15 + ld de, wc68a + 15 ld bc, $0030 call Function1010cd ld a, $50 @@ -2707,9 +2719,9 @@ Function101181: ; 101181 ld bc, $000b asm_101184: - ld a, $c608 % $100 + ld a, wc608 % $100 ld [StringBuffer2], a - ld a, $c608 / $100 + ld a, wc608 / $100 ld [StringBuffer2 + 1], a ld a, c ld [StringBuffer2 + 2], a @@ -2751,7 +2763,7 @@ asm_101184: call Function1011df ld d, h ld e, l - ld hl, $c608 + ld hl, wc608 call CopyBytes ret ; 1011df @@ -3368,11 +3380,11 @@ Function10158a: ; 10158a ; 10159d Function10159d: ; 10159d - ld de, $c608 + ld de, wc608 callba Function100edf - ld de, $c608 + ld de, wc608 ld a, $5 - ld hl, $d800 + ld hl, w5_d800 call Function10174c ld a, $0 ld [wcd26], a @@ -3383,11 +3395,11 @@ Function10159d: ; 10159d ; 1015be Function1015be: ; 1015be - ld de, $c608 + ld de, wc608 callba Function100eed - ld de, $c608 + ld de, wc608 ld a, $5 - ld hl, $d800 + ld hl, w5_d800 call Function10174c ld a, $0 ld [wcd26], a @@ -3398,11 +3410,11 @@ Function1015be: ; 1015be ; 1015df Function1015df: ; 1015df - ld de, $c608 + ld de, wc608 callba Function100ef4 - ld de, $c608 + ld de, wc608 ld a, $5 - ld hl, $d800 + ld hl, w5_d800 call Function10174c ld a, $0 ld [wcd26], a @@ -3413,12 +3425,12 @@ Function1015df: ; 1015df ; 101600 Function101600: ; 101600 - ld hl, $d800 - ld de, $c608 + ld hl, w5_d800 + ld de, wc608 ld bc, $01e0 ld a, $5 call FarCopyWRAM - ld de, $c608 + ld de, wc608 callba Function100ee6 ld a, [wcd25] inc a @@ -3443,14 +3455,14 @@ Function10162a: ; 10162a ; 101635 Function101635: ; 101635 - ld de, $c608 + ld de, wc608 ld bc, $01e0 call FarCopyWRAM ret ; 10163f Function10163f: ; 10163f - ld hl, $c608 + ld hl, wc608 ld bc, $01e0 call FarCopyWRAM ret @@ -3458,34 +3470,34 @@ Function10163f: ; 10163f Function101649: ; 101649 ld a, $5 - ld hl, $d800 + ld hl, w5_d800 call Function101635 ld a, $5 - ld de, wda00 + ld de, w5_da00 call Function10163f ret ; 10165a Function10165a: ; 10165a ld a, $5 - ld hl, wda00 + ld hl, w5_da00 call Function101635 ret ; 101663 Function101663: ; 101663 ld a, $5 - ld hl, $d800 + ld hl, w5_d800 call Function101635 ld a, $5 - ld de, wdc00 + ld de, w5_dc00 call Function10163f ret ; 101674 Function101674: ; 101674 ; unreferenced ld a, $5 - ld hl, wdc00 + ld hl, w5_dc00 call Function101635 ret ; 10167d @@ -4008,16 +4020,19 @@ Function1019ee: ; 1019ee push af ld a, $5 ld [rSVBK], a - ld bc, wdc0d - ld de, wdc11 + + ld bc, w5_dc0d + ld de, w5_dc11 callba Function4e929 + pop af ld [rSVBK], a + ld a, c ld [OtherTrainerClass], a ld hl, wd26b - ld de, $c656 - ld bc, $000b + ld de, wc656 + ld bc, NAME_LENGTH call CopyBytes ld a, [wcd2f] and a @@ -4040,8 +4055,8 @@ Function101a21: ; 101a21 ld a, $1 ld [wc2d7], a callba BattleIntro - callba Function3c000 - callba Function3f759 + callba SendOutFirstMons + callba ShowLinkBattleParticipantsAfterEnd xor a ld [wc2d7], a ld a, $ff @@ -4057,7 +4072,7 @@ Function101a4f: ; 101a4f callba Function3f77c xor a ld [wc2d7], a - callba Function3f6d0 + callba CleanUpBattleRAM callba LoadPokemonData call Function1013c0 ld a, [wcd25] @@ -4940,10 +4955,10 @@ Function1020ea: ; 1020ea bit 2, [hl] jr nz, .asm_102110 call Function10218d - ld hl, $c608 + ld hl, wc608 bit 4, [hl] jr z, .asm_102110 - ld hl, $c608 + ld hl, wc608 bit 2, [hl] jr nz, .asm_102110 call Function102112 @@ -4963,7 +4978,7 @@ Function102112: ; 102112 ld c, $28 .asm_10211c push hl - ld de, $c60f + ld de, wc60f ld b, $1f .asm_102122 ld a, [de] @@ -5022,7 +5037,7 @@ Function102142: ; 102142 ; 102180 Function102180: ; 102180 - ld hl, $c608 + 1 + ld hl, wc608 + 1 ld de, StringBuffer2 ld bc, $000b call CopyBytes @@ -5031,18 +5046,18 @@ Function102180: ; 102180 Function10218d: ; 10218d ld hl, wdc00 - ld de, $c608 + ld de, wc608 ld bc, $0026 ld a, $5 call FarCopyWRAM - ld de, $c608 + 1 + ld de, wc608 + 1 ret ; 10219f Function10219f: ; 10219f call FadeToMenu call Function10218d - ld de, $c608 + 1 + ld de, wc608 + 1 callba Function8ac4e call JoyWaitAorB call PlayClickSFX @@ -5053,7 +5068,7 @@ Function10219f: ; 10219f Function1021b8: ; 1021b8 call FadeToMenu call Function10218d - ld de, $c60f + ld de, wc60f callba Function8ac70 ld a, c ld [StringBuffer1], a @@ -6336,7 +6351,7 @@ Function102a3b: ; 102a3b ld a, [wcd30] ld [wc74e], a ld hl, PlayerName - ld de, $c6e7 + ld de, wc6e7 ld bc, $000b call CopyBytes ld a, [wcd4c] @@ -6346,12 +6361,12 @@ Function102a3b: ; 102a3b ld hl, PartySpecies add hl, bc ld a, [hl] - ld [$c6d0], a + ld [wc6d0], a ld a, [wcd4c] dec a ld hl, PartyMonOT call SkipNames - ld de, $c6f2 + ld de, wc6f2 ld bc, $000b call CopyBytes ld a, [wcd4c] @@ -6359,7 +6374,7 @@ Function102a3b: ; 102a3b ld hl, PartyMon1ID call GetPartyLocation ld a, [hli] - ld [$c6ff], a + ld [wc6ff], a ld a, [hl] ld [wc700], a ld a, [wcd4c] @@ -6367,9 +6382,9 @@ Function102a3b: ; 102a3b ld hl, PartyMon1DVs call GetPartyLocation ld a, [hli] - ld [$c6fd], a + ld [wc6fd], a ld a, [hl] - ld [$c6fe], a + ld [wc6fe], a ld a, [wcd4c] dec a ld hl, PartyMon1Species @@ -6606,11 +6621,11 @@ Function102c48: ; 102c48 ld a, $0 call GetSRAMBank ld hl, $a600 - ld de, $c608 + ld de, wc608 ld bc, $002f call Function102c71 call CloseSRAM - ld hl, $c608 + ld hl, wc608 ld de, wda00 ld bc, $01e0 ld a, $5 @@ -6644,12 +6659,12 @@ Function102c87: ; 102c87 ld [wcf64], a ld a, $0 ld hl, $a600 - ld de, $c608 + ld de, wc608 ld bc, $011a call Function102d3e call Function102cee ld a, $0 - ld hl, $c608 + ld hl, wc608 ld de, $a600 ld bc, $011a call Function102d3e @@ -6659,12 +6674,12 @@ Function102c87: ; 102c87 ld [wcf64], a ld a, $5 ld hl, wda00 - ld de, $c608 + ld de, wc608 ld bc, $011a call FarCopyWRAM call Function102cee ld a, $5 - ld hl, $c608 + ld hl, wc608 ld de, wda00 ld bc, $011a call FarCopyWRAM @@ -6712,7 +6727,7 @@ Function102cee: ; 102cee ; 102d34 Function102d34: ; 102d34 - ld hl, $c608 + ld hl, wc608 ld bc, $002f call AddNTimes ret diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm new file mode 100755 index 000000000..825ee9497 --- /dev/null +++ b/misc/mobile_41.asm @@ -0,0 +1,1094 @@ +SECTION "bank41_2", ROMX, BANK[$41] + +Mobile_HallOfFame2:: mobile ; 0x105ef6 + ld a, $5 + call GetSRAMBank + ld hl, GameTimeHours + ld de, $a001 + ld bc, 4 + call CopyBytes + ld hl, $a010 + ld de, $a005 + ld bc, 4 + call CopyBytes + ld hl, $a039 + ld de, $a009 + ld bc, 4 + call CopyBytes + ld hl, $a01b + ld de, $a00d + ld bc, 3 + call CopyBytes + call Function106162 + call CloseSRAM + ret +; 105f33 + +MagikarpLength_Mobile: mobile ; 105f33 + ld a, $5 + call GetSRAMBank + ld de, Buffer1 + ld hl, $a07b + ld a, [de] + cp [hl] + jr z, .asm_105f47 + jr nc, .asm_105f4f + jr .asm_105f55 + +.asm_105f47 + inc hl + inc de + ld a, [de] + cp [hl] + dec hl + dec de + jr c, .asm_105f55 + +.asm_105f4f + ld a, [de] + inc de + ld [hli], a + ld a, [de] + dec de + ld [hl], a + +.asm_105f55 + ld hl, $a07d + ld a, [hli] + or [hl] + dec hl + jr z, .asm_105f6d + ld a, [de] + cp [hl] + jr z, .asm_105f65 + jr c, .asm_105f6d + jr .asm_105f72 + +.asm_105f65 + inc hl + inc de + ld a, [de] + cp [hl] + jr nc, .asm_105f72 + dec hl + dec de + +.asm_105f6d + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a + +.asm_105f72 + call Function106162 + call CloseSRAM + ret +; 105f79 + +MobileFn_105f79: mobile ; 105f79 + ld a, $5 + call GetSRAMBank + ld a, [hProduct] + ld hl, $a07f + cp [hl] + jr z, .asm_105f8b + jr nc, .asm_105f92 + jr .asm_105f98 + +.asm_105f8b + inc hl + ld a, [hMultiplicand] + cp [hl] + jr c, .asm_105f98 + dec hl + +.asm_105f92 + ld a, [hProduct] + ld [hli], a + ld a, [hMultiplicand] + ld [hl], a + +.asm_105f98 + call Function106162 + call CloseSRAM + ret +; 105f9f + +MobileFn_105f9f: mobile ; 105f9f + ld a, $5 + call GetSRAMBank + ld hl, $a070 + inc [hl] + jr nz, .asm_105fae + dec hl + inc [hl] + inc hl + +.asm_105fae + dec hl + ld a, [$a071] + cp [hl] + jr z, .asm_105fb9 + jr c, .asm_105fc1 + jr .asm_105fc9 + +.asm_105fb9 + inc hl + ld a, [$a072] + cp [hl] + jr nc, .asm_105fc9 + dec hl + +.asm_105fc1 + ld a, [hli] + ld [$a071], a + ld a, [hl] + ld [$a072], a + +.asm_105fc9 + call Function106162 + call CloseSRAM + ret +; 105fd0 + +MobileFn_105fd0: mobile ; 105fd0 + ld a, $5 + call GetSRAMBank + ld hl, $a06f + xor a + ld [hli], a + ld [hl], a + call Function106162 + call CloseSRAM + ret +; 105fe3 + +MobileFn_105fe3: mobile ; 105fe3 + ld a, $5 + call GetSRAMBank + ld hl, $a076 + ld a, e + add [hl] + ld [hld], a + ld a, d + adc [hl] + ld [hld], a + jr nc, .asm_106001 + inc [hl] + jr nz, .asm_106001 + dec hl + inc [hl] + jr nz, .asm_106001 + ld a, $ff +rept 3 + ld [hli], a +endr + ld [hl], a + +.asm_106001 + call Function106162 + call CloseSRAM + ret +; 106008 + +MobileFn_106008: mobile ; 106008 + ld a, $5 + call GetSRAMBank + ld hl, $a07a + ld a, [bc] + dec bc + add [hl] + ld [hld], a + ld a, [bc] + dec bc + adc [hl] + ld [hld], a + ld a, [bc] + adc [hl] + ld [hld], a + jr nc, .asm_106027 + inc [hl] + jr nz, .asm_106027 + ld a, $ff +rept 3 + ld [hli], a +endr + ld [hl], a + +.asm_106027 + call Function106162 + call CloseSRAM + ret +; 10602e + +MobileFn_10602e: mobile ; 10602e (41:602e) + ld hl, $a010 + jp MobileFn_106117 + +MobileFn_106035: mobile ; 106035 + ld a, $5 + call GetSRAMBank + ld a, [$aa8d] + and a + call CloseSRAM + ret nz + ld hl, $a014 + jp Function106123 + +MobileFn_106049: mobile ; 106049 + ld hl, $a018 + jp Function10611d + +MobileFn_106050: mobile ; 106050 + ld a, [BattleType] + cp BATTLETYPE_TUTORIAL + ret z + ld hl, $a01b + jp Function10611d + +MobileFn_10605d: mobile ; 10605d + ld a, [BattleType] + cp BATTLETYPE_TUTORIAL + ret z + ld hl, $a01e + jp Function10611d + +MobileFn_10606a: mobile ; 10606a + ld hl, $a021 + jp Function10611d + +MobileFn_106071: mobile ; 106071 + ld hl, $a024 + jp Function10611d + +Mobile_HallOfFame:: mobile ; 0x106078 + ld hl, $a027 + jp Function10611d + +MobileFn_10607f: mobile ; 10607f (41:607f) + ld hl, $a02a + jp Function10611d + +MobileFn_106086: mobile ; 106086 + ld hl, $a02d + jp Function10611d + +MobileFn_10608d: mobile ; 10608d (41:608d) + ld hl, $a030 + jp Function10611d + +MobileFn_106094: mobile ; 106094 + ld hl, $a033 + jp Function10611d + +MobileFn_10609b: mobile ; 10609b + ld hl, $a036 + jp Function10611d + +Mobile_HealParty: mobile ; 1060a2 + ld hl, $a039 + jp Function10611d + +MobileFn_1060a9: mobile ; 1060a9 (41:60a9) + ld hl, $a03c + jr Function10611d + +MobileFn_1060af: mobile ; 1060af + ld hl, $a03f + jr Function10611d + +MobileFn_1060b5: mobile ; 1060b5 + ld hl, $a042 + jr Function10611d + +MobileFn_1060bb: mobile ; 1060bb + ld hl, $a045 + jr Function10611d + +MobileFn_1060c1: mobile ; 1060c1 + ld hl, $a048 + jr Function10611d + +MobileFn_1060c7: mobile ; 1060c7 + ld hl, $a04b + jr Function10611d + +MobileFn_1060cd: mobile ; 1060cd + ld hl, $a04e + jr Function106123 + +MobileFn_1060d3: mobile ; 1060d3 + ld hl, $a051 + jr Function10611d + +MobileFn_1060d9: mobile ; 1060df + ld hl, $a054 + jr Function10611d + +MobileFn_1060df: mobile ; 1060df + ld hl, $a057 + jr Function10611d + +MobileFn_1060e5: mobile ; 1060e5 + ld a, [hBattleTurn] + and a + ret nz + ld hl, $a05a + jr Function10611d + +MobileFn_1060ef: mobile ; 1060ef + ld hl, $a05d + jr Function10611d + +MobileFn_1060f5: mobile ; 1060f5 + ld hl, $a060 + jr Function10611d + +MobileFn_SaveBattleResult_Win: mobile ; win + ld hl, $a063 + jr Function10611d + +MobileFn_SaveBattleResult_Lose: mobile ; lose + ld hl, $a066 + jr Function10611d +; 106107 + +MobileFn_SaveBattleResult_Draw: mobile ; draw + ld hl, $a069 + jr Function10611d +; 10610d + +MobileFn_10610d: mobile ; 10610d + ld a, [hBattleTurn] + and a + ret nz + ld hl, $a06c + jr Function10611d +; 106117 + +MobileFn_106117: ; 106117 + push bc + ld bc, 3 + jr Function10612d +; 10611d + +Function10611d: ; 10611d + push bc + ld bc, 2 + jr Function10612d +; 106123 + +Function106123: ; 106123 + push bc + ld bc, 1 + jr Function10612d +; 106129 + +Function106129: ; 106129 + push bc + ld bc, 0 + +Function10612d: ; 10612d + ld a, $5 + call GetSRAMBank + push hl + push de + ld e, c + inc e +.asm_106136 + ld a, [hli] + inc a + jr nz, .asm_10613d + dec e + jr nz, .asm_106136 + +.asm_10613d + pop de + pop hl + jr z, .asm_10614d + add hl, bc +.asm_106142 + inc [hl] + jr nz, .asm_10614d + ld a, c + and a + jr z, .asm_10614d + dec hl + dec c + jr .asm_106142 + +.asm_10614d + call Function106162 + call CloseSRAM + pop bc + ret +; 106155 + +MobileFn_106155: mobile ; 106155 + ld a, $5 + call GetSRAMBank + call Function106162 + call CloseSRAM + ret +; 106162 + +Function106162: ; 106162 + push de + call Function10616e + ld hl, $a081 ; s5_a081 + ld [hl], d + inc hl + ld [hl], e + pop de + ret +; 10616e + +Function10616e: ; 10616e + push bc + ld hl, $a001 ; s5_a001 + ld bc, $80 + xor a + ld de, 0 +.asm_106179 + ld a, e + add [hl] + ld e, a + jr nc, .asm_10617f + inc d + +.asm_10617f + inc hl + dec bc + ld a, b + or c + jr nz, .asm_106179 + pop bc + ret +; 106187 + + +BackupMobileEventIndex: ; 106187 + ld a, BANK(sMobileEventIndex) + call GetSRAMBank + ld a, [sMobileEventIndex] + push af + ld a, BANK(sMobileEventIndexBackup) + call GetSRAMBank + pop af + ld [sMobileEventIndexBackup], a + call CloseSRAM + ret +; 10619d + + +RestoreMobileEventIndex: ; 10619d (41:619d) + ld a, BANK(sMobileEventIndexBackup) + call GetSRAMBank + ld a, [sMobileEventIndexBackup] + push af + ld a, BANK(sMobileEventIndex) + call GetSRAMBank + pop af + ld [sMobileEventIndex], a + call CloseSRAM + ret +; 1061b3 (41:61b3) + +Function1061b3: ; 1061b3 + call Function10616e + ld hl, $a081 ; s5_a081 + ld a, d + cp [hl] + ret nz + inc hl + ld a, e + cp [hl] + ret +; 1061c0 + +DeleteMobileEventIndex: ; 1061c0 (41:61c0) + ld a, BANK(sMobileEventIndex) + call GetSRAMBank + xor a + ld [sMobileEventIndex], a + call CloseSRAM + ret +; 1061cd (41:61cd) + +Function1061cd: ; unreferenced + ld hl, $a001 + ld bc, $82 + xor a + call ByteFill + ld hl, $a07d + ld a, $3 + ld [hli], a + ld [hl], $e8 + call Function106162 + ld hl, $a001 + ld de, $a084 + ld bc, $82 + call CopyBytes + ret +; 1061ef + + +_MobilePrintNum:: ; 1061ef +; Supports signed 31-bit integers (up to 10 digits) +; b: Bits 0-4 = # bytes +; Bit 7 = set if negative +; c: Number of digits +; de: highest byte of number to convert +; hl: where to print the converted string + push bc + xor a + ld [hPrintNum1], a + ld [hPrintNum2], a + ld [hPrintNum3], a + ld a, b + and $f + cp $1 + jr z, .one_byte + cp $2 + jr z, .two_bytes + cp $3 + jr z, .three_bytes +; four bytes + ld a, [de] + ld [hPrintNum1], a + inc de + +.three_bytes + ld a, [de] + ld [hPrintNum2], a + inc de + +.two_bytes + ld a, [de] + ld [hPrintNum3], a + inc de + +.one_byte + ld a, [de] + ld [hPrintNum4], a + inc de + + push de + xor a + ld [hPrintNum9], a + ld a, b + ld [hPrintNum10], a + ld a, c + cp 2 + jr z, .two_digits + ld de, ._2 + cp 3 + jr z, .three_to_nine_digits + ld de, ._3 + cp 4 + jr z, .three_to_nine_digits + ld de, ._4 + cp 5 + jr z, .three_to_nine_digits + ld de, ._5 + cp 6 + jr z, .three_to_nine_digits + ld de, ._6 + cp 7 + jr z, .three_to_nine_digits + ld de, ._7 + cp 8 + jr z, .three_to_nine_digits + ld de, ._8 + cp 9 + jr z, .three_to_nine_digits + ld de, ._9 + +.three_to_nine_digits +rept 3 + inc de +endr +rept 2 + dec a +endr + +.digit_loop + push af + call .Function1062b2 + call .Function1062ff +rept 4 + inc de +endr + pop af + dec a + jr nz, .digit_loop + +.two_digits + ld c, 0 + ld a, [hPrintNum4] +.mod_ten_loop + cp 10 + jr c, .simple_divide_done + sub 10 + inc c + jr .mod_ten_loop + +.simple_divide_done + ld b, a + ld a, [hPrintNum9] + or c + ld [hPrintNum9], a + jr nz, .create_digit + call .LoadMinusTenIfNegative + jr .done + +.create_digit + ld a, "0" + add c + ld [hl], a + +.done + call .Function1062ff + ld a, "0" + add b + ld [hli], a + pop de + pop bc + ret +; 106292 + +._9 dd 1000000000 +._8 dd 100000000 +._7 dd 10000000 +._6 dd 1000000 +._5 dd 100000 +._4 dd 10000 +._3 dd 1000 +._2 dd 100 +; 1062b2 + +.Function1062b2: ; 1062b2 + ld c, $0 +.asm_1062b4 + ld a, [de] + dec de + ld b, a + ld a, [hPrintNum4] + sub b + ld [hPrintNum8], a + ld a, [de] + dec de + ld b, a + ld a, [hPrintNum3] + sbc b + ld [hPrintNum7], a + ld a, [de] + dec de + ld b, a + ld a, [hPrintNum2] + sbc b + ld [hPrintNum6], a + ld a, [de] +rept 3 + inc de +endr + ld b, a + ld a, [hPrintNum1] + sbc b + ld [hPrintNum5], a + jr c, .asm_1062eb + ld a, [hPrintNum5] + ld [hPrintNum1], a + ld a, [hPrintNum6] + ld [hPrintNum2], a + ld a, [hPrintNum7] + ld [hPrintNum3], a + ld a, [hPrintNum8] + ld [hPrintNum4], a + inc c + jr .asm_1062b4 + +.asm_1062eb + ld a, [hPrintNum9] + or c + jr z, .LoadMinusTenIfNegative + ld a, -10 + add c + ld [hl], a + ld [hPrintNum9], a + ret + +.LoadMinusTenIfNegative: + ld a, [hPrintNum10] + bit 7, a + ret z + + ld [hl], -10 + ret +; 1062ff + +.Function1062ff: ; 1062ff + ld a, [hPrintNum10] + bit 7, a + jr nz, .asm_10630d + bit 6, a + jr z, .asm_10630d + ld a, [hPrintNum9] + and a + ret z + +.asm_10630d + inc hl + ret +; 10630f + +Function10630f: ; 10630f + xor a + ld [ScriptVar], a + ret +; 106314 + +MobileFn_106314: mobile ; 106314 + ld a, $4 + call GetSRAMBank + ld a, c + cpl + ld [$b000], a + call CloseSRAM + ld a, $7 + call GetSRAMBank + ld a, c + ld [$a800], a + call CloseSRAM + ret +; 10632f + +Function10632f: ; 10632f + or a + mobile + + ld a, $4 + call GetSRAMBank + ld a, [$b000] + cpl + ld b, a + call CloseSRAM + ld a, $7 + call GetSRAMBank + ld a, [$a800] + ld c, a + call CloseSRAM + ld a, c + cp b + jr nz, .asm_106359 + and a + jr z, .asm_106359 + and $8f + cp c + jr nz, .asm_106359 + ld c, a + scf + ret + +.asm_106359 + xor a + ld c, a + ret +; 10635c + +Function10635c: ; 10635c + ld a, [wcd25] + bit 7, a + ret nz + ld a, [wcd25] + ld hl, Jumptable_10636a + rst JumpTable + ret +; 10636a + +Jumptable_10636a: ; 10636a + dw Function10637c + dw Function106392 + dw Function1063cc + dw Function1063d8 + dw Function1063e5 + dw Function1063f3 + dw Function106403 + dw Function106442 + dw Function106453 +; 10637c + +Function10637c: ; 10637c + ld de, wcd30 + ld hl, $41 + ld bc, $41 + ld a, $40 + call Function3e32 + ld a, [wcd25] + inc a + ld [wcd25], a + ret +; 106392 + +Function106392: ; 106392 + xor a + ld [wcf64], a + ld a, [wc821] + bit 1, a + jr nz, .asm_1063a2 + bit 0, a + jr z, .asm_1063bf + ret + +.asm_1063a2 + call Function10632f + ld a, c + and a + jr nz, .asm_1063b4 + ld a, $b + ld [wcf64], a + ld a, $7 + ld [wcd25], a + ret + +.asm_1063b4 + ld a, $7 + ld [wcf64], a + ld a, $7 + ld [wcd25], a + ret + +.asm_1063bf + ld a, $1 + ld [wcf64], a + ld a, [wcd25] + inc a + ld [wcd25], a + ret +; 1063cc + +Function1063cc: ; 1063cc + ld a, $78 + ld [wcd42], a + ld a, [wcd25] + inc a + ld [wcd25], a + +Function1063d8: ; 1063d8 + ld hl, wcd42 + dec [hl] + ret nz + ld a, [wcd25] + inc a + ld [wcd25], a + ret +; 1063e5 + +Function1063e5: ; 1063e5 + ld a, [wcf64] + cp $3 + ret nz + ld a, [wcd25] + inc a + ld [wcd25], a + ret +; 1063f3 + +Function1063f3: ; 1063f3 + ld de, wcd31 + ld a, $32 + call Function3e32 + ld a, [wcd25] + inc a + ld [wcd25], a + ret +; 106403 + +Function106403: ; 106403 + ld a, [wc821] + bit 1, a + jr nz, .asm_106426 + bit 0, a + jr z, .asm_10640f + ret + +.asm_10640f + ld a, [wcd31] + and $80 + ld c, a + ld a, [wcd30] + or c + inc a + ld c, a + call MobileFn_106314 + ld a, [wcd25] + inc a + ld [wcd25], a + ret + +.asm_106426 + call Function10632f + ld a, c + and a + jr z, .asm_106435 + ld a, [wcd25] + inc a + ld [wcd25], a + ret + +.asm_106435 + ld c, $0 + call MobileFn_106314 + ld a, [wcd25] + inc a + ld [wcd25], a + ret +; 106442 + +Function106442: ; 106442 + ld a, $36 + call Function3e32 + xor a + ld [hMobile], a + ld [$ffc9], a + ld a, [wcd25] + inc a + ld [wcd25], a + +Function106453: ; 106453 + ld a, [wcd25] + set 7, a + ld [wcd25], a + nop + ld a, $4 + ld [wcf64], a + ret +; 106462 + +Function106462: ; 106462 + ret +; 106463 + +Function106463: ; 106463 + ret +; 106464 + +Function106464:: ; 106464 + ld de, MobilePhoneTilesGFX + ld hl, VTiles2 tile $60 + lb bc, BANK(MobilePhoneTilesGFX), 1 + call Get2bpp + ld de, GFX_f9424 + ld hl, VTiles2 tile $61 + lb bc, BANK(GFX_f9424), 1 + call Get2bpp + ld de, GFX_106514 + ld hl, VTiles2 tile $62 + ld c, 9 + ld b, BANK(GFX_106514) + call Get2bpp + ld de, $40b0 + ld hl, VTiles2 tile $6b + ld b, $f ; XXX no graphics at 0f:40b0 + call Get2bpp + callba LoadFrame + ret +; 10649b + +Function10649b: ; 10649b + ld a, [TextBoxFrame] + and $7 + ld bc, $30 + ld hl, Frames + call AddNTimes + ld d, h + ld e, l + ld hl, VTiles2 tile $79 + ld c, 6 + ld b, BANK(Frames) + call Function1064c3 + ld hl, VTiles2 tile $7f + ld de, TextBoxSpaceGFX + ld c, 1 + ld b, BANK(TextBoxSpaceGFX) + call Function1064c3 + ret +; 1064c3 + +Function1064c3: ; 1064c3 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push bc + push hl + ld hl, Function3f88 + ld a, b + rst FarCall + pop hl + pop bc + pop af + ld [rSVBK], a + jr asm_1064ed + +Function1064d8: ; 1064d8 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push bc + push hl + ld hl, Function3f9f + ld a, b + rst FarCall + pop hl + pop bc + pop af + ld [rSVBK], a + jr asm_1064ed + +asm_1064ed + ld de, w6_d000 + ld b, $0 + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + call Get2bpp + pop af + ld [rVBK], a + pop af + ld [rSVBK], a + ret +; 10650a + +Function10650a: ; 10650a + ld de, MobilePhoneTilesGFX + $20 + lb bc, BANK(MobilePhoneTilesGFX), $11 + call Get2bpp + ret +; 106514 + +GFX_106514: +INCBIN "gfx/unknown/106514.2bpp" + + +Function106594:: ; 106594 + ld de, GFX_1065ad + ld hl, VTiles1 + lb bc, BANK(GFX_1065ad), $80 + call Get2bpp + ld de, GFX_1065ad + $800 + ld hl, VTiles2 tile $7f + lb bc, BANK(GFX_1065ad), 1 + call Get2bpp + ret +; 1065ad + +GFX_1065ad: +INCBIN "gfx/unknown/1065ad.2bpp" diff --git a/wram.asm b/wram.asm index 0354baa8b..82df3c467 100644 --- a/wram.asm +++ b/wram.asm @@ -757,6 +757,7 @@ AlreadyFailed:: ; c6fb wc6fc:: ds 1 wc6fd:: ds 1 +wc6fe:: wPlayerMinimized:: ds 1 ; c6fe wc6ff:: PlayerScreens:: ; c6ff @@ -2741,7 +2742,9 @@ wPokeAnimStructEnd:: SECTION "WRAM 3", WRAMX, BANK [3] w3_d000:: ; d000 - ds $90 + ds $80 +w3_d080:: + ds $10 w3_d090:: ds $70 @@ -2753,7 +2756,9 @@ BT_TrainerTextIndex:: ds $600 wBTChoiceOfLvlGroup:: -w3_d800:: ds 1 +w3_d800:: ds $400 +w3_dc00:: ds $168 +w3_dd68:: SECTION "GBC Video", WRAMX, BANK [5] @@ -2819,7 +2824,18 @@ BattleAnimTemps:: ; d419 w5_d422:: ds $32 wBattleAnimEnd:: ds $e - +; d462 + +SECTION "WRAM 5 MOBILE", WRAMX [$d800], BANK [5] +w5_d800:: ds $200 +w5_da00:: ds $200 +w5_dc00:: ds $d +w5_dc0d:: ds 4 +w5_dc11:: ds 9 +w5_dc1a:: ds $c +w5_dc26:: ds $c +w5_dc32:: ds $c +w5_dc3e:: ds $c SECTION "WRAM 6", WRAMX, BANK [6] -- cgit v1.2.3 From b522b0f165b6aae278ca9b4b18bada606d4ae737 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 11 Nov 2015 14:12:46 -0500 Subject: engine/mart.asm --- battle/core.asm | 13 +- constants/misc_constants.asm | 37 ++ engine/color.asm | 2 +- engine/mart.asm | 1000 ++++++++++++++++++++++++++++ engine/pack.asm | 20 +- engine/scripting.asm | 2 +- event/buena.asm | 2 +- event/kurt.asm | 2 +- gfx/misc/cut_grass.2bpp | Bin 0 -> 64 bytes gfx/misc/cut_tree.2bpp | Bin 0 -> 64 bytes gfx/unknown/08c98c.2bpp | Bin 64 -> 0 bytes gfx/unknown/08c9cc.2bpp | Bin 64 -> 0 bytes home.asm | 24 +- home/map.asm | 4 +- home/window.asm | 2 +- hram.asm | 2 + main.asm | 1480 ++++++++---------------------------------- misc/mobile_22_2.asm | 2 +- misc/mobile_40.asm | 16 +- misc/mobile_45.asm | 86 +-- misc/mobile_46.asm | 108 +-- wram.asm | 49 +- 22 files changed, 1491 insertions(+), 1360 deletions(-) create mode 100755 engine/mart.asm create mode 100644 gfx/misc/cut_grass.2bpp create mode 100644 gfx/misc/cut_tree.2bpp delete mode 100644 gfx/unknown/08c98c.2bpp delete mode 100644 gfx/unknown/08c9cc.2bpp diff --git a/battle/core.asm b/battle/core.asm index cce4daf74..ab7e31f08 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -7389,6 +7389,7 @@ FinishBattleAnim: ; 3ee27 GiveExperiencePoints: ; 3ee3b ; Give experience. +; Don't give experience if linked or in the Battle Tower. ld a, [wLinkMode] and a ret nz @@ -7499,20 +7500,20 @@ endr jr z, .no_boost .boosted - call DoubleExp + call BoostExp ld a, $1 .no_boost ld [StringBuffer2 + 2], a ld a, [wBattleMode] dec a - call nz, DoubleExp + call nz, BoostExp push bc ld a, MON_ITEM call GetPartyParamLocation ld a, [hl] cp LUCKY_EGG - call z, DoubleExp + call z, BoostExp ld a, [hQuotient + 2] ld [StringBuffer2 + 1], a ld a, [hQuotient + 1] @@ -7796,14 +7797,18 @@ Function3f0d4: ; 3f0d4 ret ; 3f106 -DoubleExp: ; 3f106 +BoostExp: ; 3f106 +; Multiply experience by 1.5x push bc +; load experience value ld a, [hProduct + 2] ld b, a ld a, [hProduct + 3] ld c, a +; halve it srl b rr c +; add it back to the whole exp value add c ld [hProduct + 3], a ld a, [hProduct + 2] diff --git a/constants/misc_constants.asm b/constants/misc_constants.asm index 19f2edf6d..108eda873 100644 --- a/constants/misc_constants.asm +++ b/constants/misc_constants.asm @@ -187,3 +187,40 @@ NUM_JOHTO_BADGES EQU const_value const EARTHBADGE NUM_KANTO_BADGES EQU const_value NUM_BADGES EQU NUM_JOHTO_BADGES + NUM_KANTO_BADGES + + const_def + const JUMPTABLE_8D24B_FUNCTION_00 + const JUMPTABLE_8D24B_FUNCTION_01 + const JUMPTABLE_8D24B_FUNCTION_02 + const JUMPTABLE_8D24B_FUNCTION_03 + const JUMPTABLE_8D24B_FUNCTION_04 + const JUMPTABLE_8D24B_FUNCTION_05 + const JUMPTABLE_8D24B_FUNCTION_06 + const JUMPTABLE_8D24B_FUNCTION_07 + const JUMPTABLE_8D24B_FUNCTION_08 + const JUMPTABLE_8D24B_FUNCTION_09 + const JUMPTABLE_8D24B_FUNCTION_0A + const JUMPTABLE_8D24B_FUNCTION_0B + const JUMPTABLE_8D24B_FUNCTION_0C + const JUMPTABLE_8D24B_FUNCTION_0D + const JUMPTABLE_8D24B_FUNCTION_0E + const JUMPTABLE_8D24B_FUNCTION_0F + const JUMPTABLE_8D24B_FUNCTION_10 + const JUMPTABLE_8D24B_FUNCTION_11 + const JUMPTABLE_8D24B_FUNCTION_12 + const JUMPTABLE_8D24B_FUNCTION_13 + const JUMPTABLE_8D24B_FUNCTION_14 + const JUMPTABLE_8D24B_FUNCTION_15 + const JUMPTABLE_8D24B_FUNCTION_16 + const JUMPTABLE_8D24B_FUNCTION_17 + const JUMPTABLE_8D24B_FUNCTION_18 + const JUMPTABLE_8D24B_FUNCTION_19 + const JUMPTABLE_8D24B_FUNCTION_1A + const JUMPTABLE_8D24B_FUNCTION_1B + const JUMPTABLE_8D24B_FUNCTION_1C + const JUMPTABLE_8D24B_FUNCTION_1D + const JUMPTABLE_8D24B_FUNCTION_1E + const JUMPTABLE_8D24B_FUNCTION_1F + const JUMPTABLE_8D24B_FUNCTION_20 + const JUMPTABLE_8D24B_FUNCTION_21 + const JUMPTABLE_8D24B_FUNCTION_22 diff --git a/engine/color.asm b/engine/color.asm index 69582a87a..5254fb80a 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -319,7 +319,7 @@ Function8bec: ; 8bec ld a, [EnemySafeguardCount] and $3 call Function9663 - call Function323d + call LoadDETile ret ; 8c1d diff --git a/engine/mart.asm b/engine/mart.asm new file mode 100755 index 000000000..1d01c4228 --- /dev/null +++ b/engine/mart.asm @@ -0,0 +1,1000 @@ + const_def + const MARTTEXT_HOW_MANY + const MARTTEXT_COSTS_THIS_MUCH + const MARTTEXT_NOT_ENOUGH_MONEY + const MARTTEXT_BAG_FULL + const MARTTEXT_HERE_YOU_GO + const MARTTEXT_SOLD_OUT + +OpenMartDialog:: ; 15a45 + call GetMart + ld a, c + ld [EngineBuffer1], a + call LoadMartPointer + ld a, [EngineBuffer1] + ld hl, .dialogs + rst JumpTable + ret +; 15a57 + +.dialogs + dw MartDialog + dw HerbShop + dw BargainShop + dw Pharmacist + dw RooftopSale +; 15a61 + +MartDialog: ; 15a61 + ld a, 0 + ld [EngineBuffer1], a + xor a + ld [MovementAnimation], a + call StandardMart + ret +; 15a6e + +HerbShop: ; 15a6e + call FarReadMart + call LoadPartyMenuDataHeader + ld hl, Text_HerbShop_Intro + call MartTextBox + call BuyMenu + ld hl, Text_HerbShop_ComeAgain + call MartTextBox + ret +; 15a84 + +BargainShop: ; 15a84 + ld b, BANK(BargainShopData) + ld de, BargainShopData + call LoadMartPointer + call ReadMart + call LoadPartyMenuDataHeader + ld hl, Text_BargainShop_Intro + call MartTextBox + call BuyMenu + ld hl, wBargainShopFlags + ld a, [hli] + or [hl] + jr z, .skip_set + ld hl, DailyFlags + set 6, [hl] + +.skip_set + ld hl, Text_BargainShop_ComeAgain + call MartTextBox + ret +; 15aae + +Pharmacist: ; 15aae + call FarReadMart + call LoadPartyMenuDataHeader + ld hl, UnknownText_0x15e90 + call MartTextBox + call BuyMenu + ld hl, UnknownText_0x15eae + call MartTextBox + ret +; 15ac4 + +RooftopSale: ; 15ac4 + ld b, BANK(RooftopSaleData1) + ld de, RooftopSaleData1 + ld hl, StatusFlags + bit 6, [hl] ; hall of fame + jr z, .ok + ld b, BANK(RooftopSaleData2) + ld de, RooftopSaleData2 + +.ok + call LoadMartPointer + call ReadMart + call LoadPartyMenuDataHeader + ld hl, Text_Mart_HowMayIHelpYou + call MartTextBox + call BuyMenu + ld hl, Text_Mart_ComeAgain + call MartTextBox + ret +; 15aee + +RooftopSaleData1: ; 15aee + db 5 + dbw POKE_BALL, 150 + dbw GREAT_BALL, 500 + dbw SUPER_POTION, 500 + dbw FULL_HEAL, 500 + dbw REVIVE, 1200 + db -1 +RooftopSaleData2: ; 15aff + db 5 + dbw HYPER_POTION, 1000 + dbw FULL_RESTORE, 2000 + dbw FULL_HEAL, 500 + dbw ULTRA_BALL, 1000 + dbw PROTEIN, 7800 + db -1 +; 15b10 + +LoadMartPointer: ; 15b10 + ld a, b + ld [MartPointerBank], a + ld a, e + ld [MartPointer], a + ld a, d + ld [MartPointer + 1], a + ld hl, CurMart + xor a + ld bc, 16 + call ByteFill + xor a + ld [MovementAnimation], a + ld [wBargainShopFlags], a + ld [FacingDirection], a + ret +; 15b31 + +GetMart: ; 15b31 + ld a, e + cp (MartsEnd - Marts) / 2 + jr c, .IsAMart + ld b, $5 + ld de, DefaultMart + ret + +.IsAMart + ld hl, Marts +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ld b, $5 + ret +; 15b47 + +StandardMart: ; 15b47 +.loop + ld a, [MovementAnimation] + ld hl, .MartFunctions + rst JumpTable + ld [MovementAnimation], a + cp $ff + jr nz, .loop + ret + +.MartFunctions + dw .HowMayIHelpYou + dw .TopMenu + dw .Buy + dw .Sell + dw .Quit + dw .AnythingElse +; 15b62 + +.HowMayIHelpYou: ; 15b62 + call LoadPartyMenuDataHeader + ld hl, Text_Mart_HowMayIHelpYou + call PrintText + ld a, $1 ; top menu + ret +; 15b6e + +.TopMenu: ; 15b6e + ld hl, MenuDataHeader_0x15f88 + call CopyMenuDataHeader + call InterpretMenu2 + jr c, .quit + ld a, [MenuSelection2] + cp $1 + jr z, .buy + cp $2 + jr z, .sell +.quit + ld a, $4 ; Come again! + ret +.buy + ld a, $2 ; buy + ret +.sell + ld a, $3 ; sell + ret +; 15b8d + +.Buy: ; 15b8d + call ExitMenu + call FarReadMart + call BuyMenu + and a + ld a, $5 ; Anything else? + ret +; 15b9a + +.Sell: ; 15b9a + call ExitMenu + call SellMenu + ld a, $5 ; Anything else? + ret +; 15ba3 + +.Quit: ; 15ba3 + call ExitMenu + ld hl, Text_Mart_ComeAgain + call MartTextBox + ld a, $ff ; exit + ret +; 15baf + +.AnythingElse: ; 15baf + call LoadPartyMenuDataHeader + ld hl, Text_Mart_AnythingElse + call PrintText + ld a, $1 ; top menu + ret +; 15bbb + +FarReadMart: ; 15bbb + ld hl, MartPointer + ld a, [hli] + ld h, [hl] + ld l, a + ld de, CurMart +.CopyMart + ld a, [MartPointerBank] + call GetFarByte + ld [de], a + inc hl + inc de + cp -1 + jr nz, .CopyMart + ld hl, wMartItem1BCD + ld de, CurMart + 1 +.ReadMartItem + ld a, [de] + inc de + cp -1 + jr z, .done + push de + call GetMartItemPrice + pop de + jr .ReadMartItem + +.done + ret +; 15be5 + +GetMartItemPrice: ; 15be5 +; Return the price of item a in BCD at hl and in tiles at StringBuffer1. + push hl + ld [CurItem], a + callba GetItemPrice + pop hl + +GetMartPrice: ; 15bf0 +; Return price de in BCD at hl and in tiles at StringBuffer1. + push hl + ld a, d + ld [StringBuffer2], a + ld a, e + ld [StringBuffer2 + 1], a + ld hl, StringBuffer1 + ld de, StringBuffer2 + lb bc, PRINTNUM_LEADINGZEROS | 2, 6 ; 6 digits + call PrintNum + pop hl + + ld de, StringBuffer1 + ld c, 6 / 2 ; 6 digits +.loop + call .CharToNybble + swap a + ld b, a + call .CharToNybble + or b + ld [hli], a + dec c + jr nz, .loop + ret +; 15c1a + +.CharToNybble ; 15c1a + ld a, [de] + inc de + cp " " + jr nz, .not_space + ld a, "0" + +.not_space + sub "0" + ret +; 15c25 + +ReadMart: ; 15c25 +; Load the mart pointer. Mart data is local (no need for bank). + ld hl, MartPointer + ld a, [hli] + ld h, [hl] + ld l, a + push hl +; set hl to the first item + inc hl + ld bc, wMartItem1BCD + ld de, CurMart + 1 +.loop +; copy the item to CurMart + (ItemIndex) + ld a, [hli] + ld [de], a + inc de +; -1 is the terminator + cp -1 + jr z, .done + + push de +; copy the price to de + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a +; convert the price to 3-byte BCD at [bc] + push hl + ld h, b + ld l, c + call GetMartPrice + ld b, h + ld c, l + pop hl + + pop de + jr .loop + +.done + pop hl + ld a, [hl] + ld [CurMart], a + ret +; 15c51 + +BargainShopData: ; 15c51 + db 5 + dbw NUGGET, 4500 + dbw PEARL, 650 + dbw BIG_PEARL, 3500 + dbw STARDUST, 900 + dbw STAR_PIECE, 4600 + db -1 +; 15c62 + + +BuyMenu: ; 15c62 + call FadeToMenu + callba Function8000 + xor a + ld [wd045 + 1], a + ld a, 1 + ld [wd045], a +.loop + call BuyMenuLoop ; menu loop + jr nc, .loop + call Function2b3c + ret +; 15c7d + +LoadBuyMenuText: ; 15c7d +; load text from a nested table +; which table is in EngineBuffer1 +; which entry is in register a + push af + call GetMartDialogGroup ; gets a pointer from GetMartDialogGroup.MartTextFunctionPointers + ld a, [hli] + ld h, [hl] + ld l, a + pop af + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + call PrintText + ret +; 15c91 + +MartAskPurchaseQuantity: ; 15c91 + call GetMartDialogGroup ; gets a pointer from GetMartDialogGroup.MartTextFunctionPointers +rept 2 + inc hl +endr + ld a, [hl] + and a + jp z, StandardMartAskPurchaseQuantity + cp 1 + jp z, BargainShopAskPurchaseQuantity + jp RooftopSaleAskPurchaseQuantity +; 15ca3 + +GetMartDialogGroup: ; 15ca3 + ld a, [EngineBuffer1] + ld e, a + ld d, 0 + ld hl, .MartTextFunctionPointers +rept 3 + add hl, de +endr + ret +; 15cb0 + +.MartTextFunctionPointers ; 15cb0 + dwb .StandardMartPointers, 0 + dwb .HerbShopPointers, 0 + dwb .BargainShopPointers, 1 + dwb .PharmacyPointers, 0 + dwb .StandardMartPointers, 2 +; 15cbf + +.StandardMartPointers: ; 15cbf + dw Text_Mart_HowMany + dw Text_Mart_CostsThisMuch + dw Text_Mart_InsufficientFunds + dw Text_Mart_BagFull + dw Text_Mart_HereYouGo + dw BuyMenuLoop + +.HerbShopPointers: ; 15ccb + dw Text_HerbShop_HowMany + dw Text_HerbShop_CostsThisMuch + dw Text_HerbShop_InsufficientFunds + dw Text_HerbShop_BagFull + dw Text_HerbShop_HereYouGo + dw BuyMenuLoop + +.BargainShopPointers: ; 15cd7 + dw BuyMenuLoop + dw Text_BargainShop_CostsThisMuch + dw Text_BargainShop_InsufficientFunds + dw Text_BargainShop_BagFull + dw Text_BargainShop_HereYouGo + dw Text_BargainShop_SoldOut + +.PharmacyPointers: ; 15ce3 + dw Text_Pharmacy_HowMany + dw Text_Pharmacy_CostsThisMuch + dw Text_Pharmacy_InsufficientFunds + dw Text_Pharmacy_BagFull + dw Text_Pharmacy_HereYouGo + dw BuyMenuLoop +; 15cef + + +BuyMenuLoop: ; 15cef + callba Function24ae8 + call UpdateSprites + ld hl, MenuDataHeader_0x15e18 + call CopyMenuDataHeader + ld a, [wd045] + ld [wMenuCursorBuffer], a + ld a, [wd045 + 1] + ld [wd0e4], a + call HandleScrollingMenu + ld a, [wd0e4] + ld [wd045 + 1], a + ld a, [MenuSelection2] + ld [wd045], a + call SpeechTextBox + ld a, [wcf73] + cp B_BUTTON + jr z, .set_carry + cp A_BUTTON + jr z, .useless_pointer + +.useless_pointer + call MartAskPurchaseQuantity + jr c, .cancel + call Function15d97 + jr c, .cancel + ld de, Money + ld bc, hMoneyTemp + ld a, $3 ; useless load + call CompareMoney + jr c, .insufficient_funds + ld hl, NumItems + call ReceiveItem + jr nc, .insufficient_bag_space + ld a, [wMartItemID] + ld e, a + ld d, $0 + ld b, SET_FLAG + ld hl, wBargainShopFlags + call FlagAction + call PlayTransactionSound + ld de, Money + ld bc, hMoneyTemp + call TakeMoney + ld a, MARTTEXT_HERE_YOU_GO + call LoadBuyMenuText + call JoyWaitAorB + +.cancel + call SpeechTextBox + and a + ret + +.set_carry + scf + ret + +.insufficient_bag_space + ld a, MARTTEXT_BAG_FULL + call LoadBuyMenuText + call JoyWaitAorB + and a + ret + +.insufficient_funds + ld a, MARTTEXT_NOT_ENOUGH_MONEY + call LoadBuyMenuText + call JoyWaitAorB + and a + ret +; 15d83 + +StandardMartAskPurchaseQuantity: + ld a, 99 + ld [wItemQuantityBuffer], a + ld a, MARTTEXT_HOW_MANY + call LoadBuyMenuText + callba Function24fc9 + call ExitMenu + ret +; 15d97 + +Function15d97: ; 15d97 + predef PartyMonItemName + ld a, MARTTEXT_COSTS_THIS_MUCH + call LoadBuyMenuText + call YesNoBox + ret +; 15da5 + +BargainShopAskPurchaseQuantity: + ld a, 1 + ld [wItemQuantityChangeBuffer], a + ld a, [wMartItemID] + ld e, a + ld d, $0 + ld b, CHECK_FLAG + ld hl, wBargainShopFlags + call FlagAction + ld a, c + and a + jr nz, .SoldOut + ld a, [wMartItemID] + ld e, a + ld d, $0 + ld hl, MartPointer + ld a, [hli] + ld h, [hl] + ld l, a + inc hl +rept 3 + add hl, de +endr + inc hl + ld a, [hli] + ld [hMoneyTemp + 2], a + ld a, [hl] + ld [hMoneyTemp + 1], a + xor a + ld [hMoneyTemp], a + and a + ret + +.SoldOut + ld a, MARTTEXT_SOLD_OUT + call LoadBuyMenuText + call JoyWaitAorB + scf + ret +; 15de2 + +RooftopSaleAskPurchaseQuantity: + ld a, MARTTEXT_HOW_MANY + call LoadBuyMenuText + call .GetSalePrice + ld a, 99 + ld [wItemQuantityBuffer], a + callba Function24fcf + call ExitMenu + ret +; 15df9 + +.GetSalePrice: ; 15df9 + ld a, [wMartItemID] + ld e, a + ld d, 0 + ld hl, MartPointer + ld a, [hli] + ld h, [hl] + ld l, a + inc hl +rept 3 + add hl, de +endr + inc hl + ld e, [hl] + inc hl + ld d, [hl] + ret +; 15e0e + + +Text_Mart_HowMany: ; 0x15e0e + ; How many? + text_jump UnknownText_0x1c4bfd + db "@" +; 0x15e13 + +Text_Mart_CostsThisMuch: ; 0x15e13 + ; @ (S) will be ¥@ . + text_jump UnknownText_0x1c4c08 + db "@" +; 0x15e18 + +MenuDataHeader_0x15e18: ; 0x15e18 + db $40 ; flags + db 03, 01 ; start coords + db 11, 19 ; end coords + dw MenuData2_0x15e20 + db 1 ; default option +; 0x15e20 + +MenuData2_0x15e20: ; 0x15e20 + db $30 ; flags + db 4, 8 ; rows, columns + db 1 ; horizontal spacing + dbw 0, OBPals + 8 * 6 + dba PlaceMenuItemName + dba .PrintBCDPrices + dba Function244c3 +; 15e30 + +.PrintBCDPrices: ; 15e30 + ld a, [wcf77] + ld c, a + ld b, 0 + ld hl, wMartItem1BCD +rept 3 + add hl, bc +endr + push de + ld d, h + ld e, l + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + ld c, PRINTNUM_LEADINGZEROS | PRINTNUM_MONEY | 3 + call PrintBCDNumber + ret +; 15e4a (5:5e4a) + +Text_HerbShop_Intro: ; 0x15e4a + ; Hello, dear. I sell inexpensive herbal medicine. They're good, but a trifle bitter. Your #MON may not like them. Hehehehe… + text_jump UnknownText_0x1c4c28 + db "@" +; 0x15e4f + +Text_HerbShop_HowMany: ; 0x15e4f + ; How many? + text_jump UnknownText_0x1c4ca3 + db "@" +; 0x15e54 + +Text_HerbShop_CostsThisMuch: ; 0x15e54 + ; @ (S) will be ¥@ . + text_jump UnknownText_0x1c4cae + db "@" +; 0x15e59 + +Text_HerbShop_HereYouGo: ; 0x15e59 + ; Thank you, dear. Hehehehe… + text_jump UnknownText_0x1c4cce + db "@" +; 0x15e5e + +Text_HerbShop_BagFull: ; 0x15e5e + ; Oh? Your PACK is full, dear. + text_jump UnknownText_0x1c4cea + db "@" +; 0x15e63 + +Text_HerbShop_InsufficientFunds: ; 0x15e63 + ; Hehehe… You don't have the money. + text_jump UnknownText_0x1c4d08 + db "@" +; 0x15e68 + +Text_HerbShop_ComeAgain: ; 0x15e68 + ; Come again, dear. Hehehehe… + text_jump UnknownText_0x1c4d2a + db "@" +; 0x15e6d + +Text_BargainShop_Intro: ; 0x15e6d + ; Hiya! Care to see some bargains? I sell rare items that nobody else carries--but only one of each item. + text_jump UnknownText_0x1c4d47 + db "@" +; 0x15e72 + +Text_BargainShop_CostsThisMuch: ; 0x15e72 + ; costs ¥@ . Want it? + text_jump UnknownText_0x1c4db0 + db "@" +; 0x15e77 + +Text_BargainShop_HereYouGo: ; 0x15e77 + ; Thanks. + text_jump UnknownText_0x1c4dcd + db "@" +; 0x15e7c + +Text_BargainShop_BagFull: ; 0x15e7c + ; Uh-oh, your PACK is chock-full. + text_jump UnknownText_0x1c4dd6 + db "@" +; 0x15e81 + +Text_BargainShop_SoldOut: ; 0x15e81 + ; You bought that already. I'm all sold out of it. + text_jump UnknownText_0x1c4df7 + db "@" +; 0x15e86 + +Text_BargainShop_InsufficientFunds: ; 0x15e86 + ; Uh-oh, you're short on funds. + text_jump UnknownText_0x1c4e28 + db "@" +; 0x15e8b + +Text_BargainShop_ComeAgain: ; 0x15e8b + ; Come by again sometime. + text_jump UnknownText_0x1c4e46 + db "@" +; 0x15e90 + +UnknownText_0x15e90: ; 0x15e90 + ; What's up? Need some medicine? + text_jump UnknownText_0x1c4e5f + db "@" +; 0x15e95 + +Text_Pharmacy_HowMany: ; 0x15e95 + ; How many? + text_jump UnknownText_0x1c4e7e + db "@" +; 0x15e9a + +Text_Pharmacy_CostsThisMuch: ; 0x15e9a + ; @ (S) will cost ¥@ . + text_jump UnknownText_0x1c4e89 + db "@" +; 0x15e9f + +Text_Pharmacy_HereYouGo: ; 0x15e9f + ; Thanks much! + text_jump UnknownText_0x1c4eab + db "@" +; 0x15ea4 + +Text_Pharmacy_BagFull: ; 0x15ea4 + ; You don't have any more space. + text_jump UnknownText_0x1c4eb9 + db "@" +; 0x15ea9 + +Text_Pharmacy_InsufficientFunds: ; 0x15ea9 + ; Huh? That's not enough money. + text_jump UnknownText_0x1c4ed8 + db "@" +; 0x15eae + +UnknownText_0x15eae: ; 0x15eae + ; All right. See you around. + text_jump UnknownText_0x1c4ef6 + db "@" +; 0x15eb3 + + +SellMenu: ; 15eb3 + call DisableSpriteUpdates + callba Function106a5 +.asm_15ebc + callba Function106be + ld a, [wcf66] + and a + jp z, Function15ece + call Function15ee0 + jr .asm_15ebc +; 15ece + +Function15ece: ; 15ece + call Function2b74 + and a + ret +; 15ed3 + +Function15ed3: ; unreferenced + ld hl, UnknownText_0x15edb + call MenuTextBoxBackup + and a + ret +; 15edb + +UnknownText_0x15edb: ; 0x15edb + ; You don't have anything to sell. + text_jump UnknownText_0x1c4f12 + db "@" +; 0x15ee0 + + +Function15ee0: ; 15ee0 + callba CheckItemMenu + ld a, [wItemAttributeParamBuffer] + ld hl, .jumptable + rst JumpTable + ret +; 15eee + +.jumptable: ; 15eee + dw .try_sell + dw .cant_buy + dw .cant_buy + dw .cant_buy + dw .try_sell + dw .try_sell + dw .try_sell +; 15efc + +.cant_buy: ; 15efc + ret +; 15efd + + +.try_sell: ; 15efd + callba _CheckTossableItem + ld a, [wItemAttributeParamBuffer] + and a + jr z, .okay_to_sell + ld hl, TextMart_CantBuyFromYou + call PrintText + and a + ret + +.okay_to_sell + ld hl, Text_Mart_SellHowMany + call PrintText + callba Function24af8 + callba Function24fe1 + call ExitMenu + jr c, .declined + hlcoord 1, 14 + lb bc, 3, 18 + call ClearBox + ld hl, Text_Mart_ICanPayThisMuch + call PrintTextBoxText + call YesNoBox + jr c, .declined + ld de, Money + ld bc, hMoneyTemp + call GiveMoney + ld a, [wMartItemID] + ld hl, NumItems + call TossItem + predef PartyMonItemName + hlcoord 1, 14 + lb bc, 3, 18 + call ClearBox + ld hl, Text_Mart_SoldForAmount + call PrintTextBoxText + call PlayTransactionSound + callba Function24af0 + call JoyWaitAorB + +.declined + call ExitMenu + and a + ret +; 15f73 + +Text_Mart_SellHowMany: ; 0x15f73 + ; How many? + text_jump UnknownText_0x1c4f33 + db "@" +; 0x15f78 + +Text_Mart_ICanPayThisMuch: ; 0x15f78 + ; I can pay you ¥@ . Is that OK? + text_jump UnknownText_0x1c4f3e + db "@" +; 0x15f7d + +DummyString ; 15f7d + db "!ダミー!@" + +Text_Mart_HowMayIHelpYou: ; 0x15f83 + ; Welcome! How may I help you? + text_jump UnknownText_0x1c4f62 + db "@" +; 0x15f88 + +MenuDataHeader_0x15f88: ; 0x15f88 + db $40 ; flags + db 00, 00 ; start coords + db 08, 07 ; end coords + dw MenuData2_0x15f90 + db 1 ; default option +; 0x15f90 + +MenuData2_0x15f90: ; 0x15f90 + db $80 ; flags + db 3 ; items + db "BUY@" + db "SELL@" + db "QUIT@" +; 0x15f96 + +Text_Mart_HereYouGo: ; 0x15fa0 + ; Here you are. Thank you! + text_jump UnknownText_0x1c4f80 + db "@" +; 0x15fa5 + +Text_Mart_InsufficientFunds: ; 0x15fa5 + ; You don't have enough money. + text_jump UnknownText_0x1c4f9a + db "@" +; 0x15faa + +Text_Mart_BagFull: ; 0x15faa + ; You can't carry any more items. + text_jump UnknownText_0x1c4fb7 + db "@" +; 0x15faf + +TextMart_CantBuyFromYou: ; 0x15faf + ; Sorry, I can't buy that from you. + text_jump UnknownText_0x1c4fd7 + db "@" +; 0x15fb4 + +Text_Mart_ComeAgain: ; 0x15fb4 + ; Please come again! + text_jump UnknownText_0x1c4ff9 + db "@" +; 0x15fb9 + +Text_Mart_AnythingElse: ; 0x15fb9 + text_jump UnknownText_0x1c500d + db "@" +; 0x15fbe + +Text_Mart_SoldForAmount: ; 0x15fbe + text_jump UnknownText_0x1c502e + db "@" +; 0x15fc3 + +PlayTransactionSound: ; 15fc3 + call WaitSFX + ld de, SFX_TRANSACTION + call PlaySFX + ret +; 15fcd + +MartTextBox: ; 15fcd + call MenuTextBox + call JoyWaitAorB + call ExitMenu + ret +; 15fd7 diff --git a/engine/pack.asm b/engine/pack.asm index 9150610e6..aa20184b9 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -67,7 +67,7 @@ Function10067: ; 10067 (4:4067) ld [wMenuCursorBuffer], a ld a, [wd0df] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0df], a ld a, [MenuSelection2] @@ -95,7 +95,7 @@ Function100a6: ; 100a6 (4:40a6) ld [wMenuCursorBuffer], a ld a, [wd0e0] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0e0], a ld a, [MenuSelection2] @@ -225,7 +225,7 @@ Function10198: ; 10198 (4:4198) ld [wMenuCursorBuffer], a ld a, [wd0e1] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0e1], a ld a, [MenuSelection2] @@ -725,7 +725,7 @@ Function104fa: ; 104fa (4:44fa) ld [wMenuCursorBuffer], a ld a, [wd0df] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0df], a ld a, [MenuSelection2] @@ -753,7 +753,7 @@ Function10539: ; 10539 (4:4539) ld [wMenuCursorBuffer], a ld a, [wd0e0] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0e0], a ld a, [MenuSelection2] @@ -804,7 +804,7 @@ Function105a6: ; 105a6 (4:45a6) ld [wMenuCursorBuffer], a ld a, [wd0e1] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0e1], a ld a, [MenuSelection2] @@ -1010,7 +1010,7 @@ Jumptable_106d1: ; 106d1 (4:46d1) ld [wMenuCursorBuffer], a ld a, [wd0df] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0df], a ld a, [MenuSelection2] @@ -1026,7 +1026,7 @@ Jumptable_106d1: ; 106d1 (4:46d1) ld [wMenuCursorBuffer], a ld a, [wd0e0] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0e0], a ld a, [MenuSelection2] @@ -1051,7 +1051,7 @@ Jumptable_106d1: ; 106d1 (4:46d1) ld [wMenuCursorBuffer], a ld a, [wd0e1] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0e1], a ld a, [MenuSelection2] @@ -1237,7 +1237,7 @@ Function1085a: ; 1085a (4:485a) call InitPocket pop hl call CopyMenuDataHeader - call Function350c + call HandleScrollingMenu ret Function10866: ; 10866 (4:4866) diff --git a/engine/scripting.asm b/engine/scripting.asm index 703f67e07..57674bd81 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2970,7 +2970,7 @@ Script_reloadmappart:: ; 0x97ae3 xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch call Function2914 callba Function104061 call UpdateSprites diff --git a/event/buena.asm b/event/buena.asm index fdbda9ceb..3662f110d 100644 --- a/event/buena.asm +++ b/event/buena.asm @@ -252,7 +252,7 @@ Function8b0e2: ; 8b0e2 ld [hBGMapMode], a call Function352f call UpdateSprites - call Function350c + call HandleScrollingMenu ld a, [MenuSelection] ld c, a ld a, [MenuSelection2] diff --git a/event/kurt.asm b/event/kurt.asm index 63e5d4284..5e3433964 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -67,7 +67,7 @@ Kurt_SelectApricorn: ; 88055 ld [hBGMapMode], a call Function352f call UpdateSprites - call Function350c + call HandleScrollingMenu ld a, [wcf73] cp $2 jr z, .nope diff --git a/gfx/misc/cut_grass.2bpp b/gfx/misc/cut_grass.2bpp new file mode 100644 index 000000000..1c8a3f9a8 Binary files /dev/null and b/gfx/misc/cut_grass.2bpp differ diff --git a/gfx/misc/cut_tree.2bpp b/gfx/misc/cut_tree.2bpp new file mode 100644 index 000000000..aa8078f31 Binary files /dev/null and b/gfx/misc/cut_tree.2bpp differ diff --git a/gfx/unknown/08c98c.2bpp b/gfx/unknown/08c98c.2bpp deleted file mode 100644 index aa8078f31..000000000 Binary files a/gfx/unknown/08c98c.2bpp and /dev/null differ diff --git a/gfx/unknown/08c9cc.2bpp b/gfx/unknown/08c9cc.2bpp deleted file mode 100644 index 1c8a3f9a8..000000000 Binary files a/gfx/unknown/08c9cc.2bpp and /dev/null differ diff --git a/home.asm b/home.asm index 74ae8dc30..a5bb83a97 100644 --- a/home.asm +++ b/home.asm @@ -561,7 +561,7 @@ Function3200:: ; 0x3200 ; 0x3218 -Function3218:: ; 3218 +IsCGB:: ; 3218 ld a, [hCGB] and a ret @@ -579,9 +579,10 @@ Function321c:: ; 321c ld a, 1 ld [hBGMapMode], a - jr Function323d + jr LoadDETile .dmg +; WaitBGMap ld a, 1 ld [hBGMapMode], a ld c, 4 @@ -594,16 +595,16 @@ Function3238:: ; 3238 and a jr z, WaitBGMap -Function323d:: ; 323d - jr Function3246 +LoadDETile:: ; 323d + jr .LoadDETile ; 323f -Function323f:: ; 323f +.unreferenced_323f ; 323f callba Function104000 ret ; 3246 -Function3246:: ; 3246 +.LoadDETile ; 3246 ld a, [hBGMapMode] push af xor a @@ -623,11 +624,11 @@ Function3246:: ; 3246 ld a, 1 ; BANK(VTiles3) ld [rVBK], a hlcoord 0, 0, AttrMap - call Function327b + call .StackPointerMagic ld a, 0 ; BANK(VTiles0) ld [rVBK], a hlcoord 0, 0 - call Function327b + call .StackPointerMagic .wait2 ld a, [rLY] @@ -642,7 +643,7 @@ Function3246:: ; 3246 ret ; 327b -Function327b:: ; 327b +.StackPointerMagic ; 327b ; Copy all tiles to VBGMap ld [hSPBuffer], sp ld sp, hl @@ -1146,7 +1147,7 @@ GetMoveName:: ; 34f8 ; 350c -Function350c:: ; 350c +HandleScrollingMenu:: ; 350c call CopyMenuData2 ld a, [hROMBank] push af @@ -1891,7 +1892,7 @@ PrintBCDNumber:: ; 38bb bit 5, b jr z, .loop bit 7, b - jr nz, .loop + jr nz, .loop ; skip currency symbol ld [hl], "¥" inc hl .loop @@ -1941,6 +1942,7 @@ PrintBCDDigit:: ; 38f2 add a, "0" ld [hli], a jp PrintLetterDelay + .zeroDigit bit 7, b ; either printing leading zeroes or already reached a nonzero digit? jr z, .outputDigit ; if so, print a zero digit diff --git a/home/map.asm b/home/map.asm index df7f943b2..fe16910f2 100644 --- a/home/map.asm +++ b/home/map.asm @@ -95,7 +95,7 @@ GetMapTrigger:: ; 2147 ret ; 2173 -Function2173:: ; 2173 +OverworldTextModeSwitch:: ; 2173 call LoadMapPart call FarCallSwapTextboxPalettes ret @@ -2038,7 +2038,7 @@ Function2bae:: ; 2bae ld c, a call SwitchToAnyMapBank callba Function8c001 - call Function2173 + call OverworldTextModeSwitch call Function2821 ld a, 9 call SkipMusic diff --git a/home/window.asm b/home/window.asm index 886799bea..bc03e6ce4 100644 --- a/home/window.asm +++ b/home/window.asm @@ -35,7 +35,7 @@ Function2de2:: ; 2de2 call ResetTextRelatedRAM xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch call Function2e20 xor a ld [hBGMapMode], a diff --git a/hram.asm b/hram.asm index d5ca2737b..34d6510ff 100644 --- a/hram.asm +++ b/hram.asm @@ -72,6 +72,8 @@ hMoneyTemp EQU $ffc3 hLCDStatCustom EQU $ffc6 +hFFC9 EQU $ffc9 + hLinkPlayerNumber EQU $ffcb hSerialSend EQU $ffcd diff --git a/main.asm b/main.asm index bc08350dc..26370edaf 100644 --- a/main.asm +++ b/main.asm @@ -1077,6 +1077,7 @@ Function6219: ; 6219 push af ld a, $5 ld [rSVBK], a + call TitleScreen call DelayFrame .loop @@ -1085,8 +1086,10 @@ Function6219: ; 6219 call ClearSprites call WhiteBGMap + pop af ld [rSVBK], a + ld hl, rLCDC res 2, [hl] call ClearScreen @@ -1507,7 +1510,7 @@ Function6473: ; 6473 ld [hBGMapMode], a ld a, $90 ld [hWY], a - call Function2173 + call OverworldTextModeSwitch ld a, VBGMap1 / $100 call Function64b9 call Function2e20 @@ -1566,6 +1569,7 @@ Function64db: ; 64db push af ld a, $6 ld [rSVBK], a + ld a, $60 ld hl, w6_d000 lb bc, 4, 0 @@ -1581,6 +1585,7 @@ Function64db: ; 64db ld a, $3f ld [hDMATransfer], a call DelayFrame + pop af ld [rSVBK], a ret @@ -4789,12 +4794,12 @@ CutDownTreeOrGrass: ; c810 ld [hl], a xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch call UpdateSprites call DelayFrame ld a, [wd1ef] ld e, a - callba Function8c940 + callba OWCutAnimation call BufferScreen call Function2914 call UpdateSprites @@ -5905,10 +5910,10 @@ DisappearWhirlpool: ; ce1d ld [hl], a xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch ld a, [wd1ef] ld e, a - callba Function8c7d4 + callba PlayWhirlpoolSound call BufferScreen call Function2914 ret @@ -12147,7 +12152,7 @@ Unknown_1241c: ; 1241c ; 12434 Function12434: ; 12434 - call Function3218 + call IsCGB jr nz, .asm_1243e ld a, $e0 ld [rOBP1], a @@ -12176,7 +12181,7 @@ Function12459: ; 12459 .asm_1245b push bc call Function12469 - ld c, $a + ld c, 10 call DelayFrames pop bc dec c @@ -12185,7 +12190,7 @@ Function12459: ; 12459 ; 12469 Function12469: ; 12469 - call Function3218 + call IsCGB jr nz, .asm_12475 ld a, [rOBP1] xor $28 @@ -12197,6 +12202,7 @@ Function12469: ; 12469 push af ld a, $5 ld [rSVBK], a + ld hl, OBPals + 8 * 6 ld a, [hli] ld e, a @@ -12225,6 +12231,7 @@ endr ld [hld], a ld a, e ld [hl], a + pop af ld [rSVBK], a ld a, $1 @@ -14772,7 +14779,7 @@ Function134dd: ; 134dd call UpdateSprites xor a ld [wd0e4], a - call Function350c + call HandleScrollingMenu call WriteBackup ld a, [wcf73] cp $2 @@ -16513,7 +16520,7 @@ Function156d9: ; 156d9 call Function15704 and a jr nz, .asm_156f9 - call Function2173 + call OverworldTextModeSwitch call Function321c call UpdateSprites call Function156b8 @@ -16917,7 +16924,7 @@ Function15985: ; 0x15985 ld [wMenuCursorBuffer], a ld a, [wd0dd] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [wd0dd], a ld a, [MenuSelection2] @@ -17031,988 +17038,7 @@ UnknownText_0x15a40: ; 0x15a40 ; 0x15a45 -OpenMartDialog:: ; 15a45 - call GetMart - ld a, c - ld [EngineBuffer1], a - call LoadMartPointer - ld a, [EngineBuffer1] - ld hl, .dialogs - rst JumpTable - ret -; 15a57 - -.dialogs - dw MartDialog - dw HerbShop - dw BargainShop - dw Pharmacist - dw RooftopSale -; 15a61 - -MartDialog: ; 15a61 - ld a, 0 - ld [EngineBuffer1], a - xor a - ld [MovementAnimation], a - call StandardMart - ret -; 15a6e - -HerbShop: ; 15a6e - call ReadMart - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15e4a - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15e68 - call Function15fcd - ret -; 15a84 - -BargainShop: ; 15a84 - ld b, BANK(BargainShopData) - ld de, BargainShopData - call LoadMartPointer - call Function15c25 - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15e6d - call Function15fcd - call Function15c62 - ld hl, WalkingDirection - ld a, [hli] - or [hl] - jr z, .asm_15aa7 - ld hl, DailyFlags - set 6, [hl] - -.asm_15aa7 - ld hl, UnknownText_0x15e8b - call Function15fcd - ret -; 15aae - -Pharmacist: ; 15aae - call ReadMart - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15e90 - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15eae - call Function15fcd - ret -; 15ac4 - -RooftopSale: ; 15ac4 - ld b, BANK(RooftopSaleData1) - ld de, RooftopSaleData1 - ld hl, StatusFlags - bit 6, [hl] ; hall of fame - jr z, .ok - ld b, BANK(RooftopSaleData2) - ld de, RooftopSaleData2 - -.ok - call LoadMartPointer - call Function15c25 - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15f83 - call Function15fcd - call Function15c62 - ld hl, UnknownText_0x15fb4 - call Function15fcd - ret -; 15aee - -RooftopSaleData1: ; 15aee - db 5 - dbw POKE_BALL, 150 - dbw GREAT_BALL, 500 - dbw SUPER_POTION, 500 - dbw FULL_HEAL, 500 - dbw REVIVE, 1200 - db -1 -RooftopSaleData2: ; 15aff - db 5 - dbw HYPER_POTION, 1000 - dbw FULL_RESTORE, 2000 - dbw FULL_HEAL, 500 - dbw ULTRA_BALL, 1000 - dbw PROTEIN, 7800 - db -1 -; 15b10 - -LoadMartPointer: ; 15b10 - ld a, b - ld [MartPointerBank], a - ld a, e - ld [MartPointer], a - ld a, d - ld [MartPointer + 1], a - ld hl, CurMart - xor a - ld bc, 16 - call ByteFill - xor a - ld [MovementAnimation], a - ld [WalkingDirection], a - ld [FacingDirection], a - ret -; 15b31 - -GetMart: ; 15b31 - ld a, e - cp (MartsEnd - Marts) / 2 - jr c, .IsAMart - ld b, $5 - ld de, DefaultMart - ret - -.IsAMart - ld hl, Marts -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld b, $5 - ret -; 15b47 - -StandardMart: ; 15b47 -.loop - ld a, [MovementAnimation] - ld hl, .MartFunctions - rst JumpTable - ld [MovementAnimation], a - cp $ff - jr nz, .loop - ret - -.MartFunctions - dw .HowMayIHelpYou - dw .TopMenu - dw .Buy - dw .Sell - dw .Quit - dw .AnythingElse -; 15b62 - -.HowMayIHelpYou: ; 15b62 - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15f83 - call PrintText - ld a, $1 - ret -; 15b6e - -.TopMenu: ; 15b6e - ld hl, MenuDataHeader_0x15f88 - call CopyMenuDataHeader - call InterpretMenu2 - jr c, .quit - ld a, [MenuSelection2] - cp $1 - jr z, .buy - cp $2 - jr z, .sell -.quit - ld a, $4 - ret -.buy - ld a, $2 - ret -.sell - ld a, $3 - ret -; 15b8d - -.Buy: ; 15b8d - call ExitMenu - call ReadMart - call Function15c62 - and a - ld a, $5 - ret -; 15b9a - -.Sell: ; 15b9a - call ExitMenu - call Function15eb3 - ld a, $5 - ret -; 15ba3 - -.Quit: ; 15ba3 - call ExitMenu - ld hl, UnknownText_0x15fb4 - call Function15fcd - ld a, $ff - ret -; 15baf - -.AnythingElse: ; 15baf - call LoadPartyMenuDataHeader - ld hl, UnknownText_0x15fb9 - call PrintText - ld a, $1 - ret -; 15bbb - -ReadMart: ; 15bbb - ld hl, MartPointer - ld a, [hli] - ld h, [hl] - ld l, a - ld de, CurMart -.CopyMart - ld a, [MartPointerBank] - call GetFarByte - ld [de], a - inc hl - inc de - cp -1 - jr nz, .CopyMart - ld hl, wd002 - ld de, CurMart + 1 -.ReadMartItem - ld a, [de] - inc de - cp -1 - jr z, .done - push de - call GetMartItemPrice - pop de - jr .ReadMartItem - -.done - ret -; 15be5 - -GetMartItemPrice: ; 15be5 -; Return the price of item a in BCD at hl and in tiles at StringBuffer1. - push hl - ld [CurItem], a - callba GetItemPrice - pop hl - -GetMartPrice: ; 15bf0 -; Return price de in BCD at hl and in tiles at StringBuffer1. - push hl - ld a, d - ld [StringBuffer2], a - ld a, e - ld [StringBuffer2 + 1], a - ld hl, StringBuffer1 - ld de, StringBuffer2 - lb bc, PRINTNUM_LEADINGZEROS | 2, 6 ; 6 digits - call PrintNum - pop hl - - ld de, StringBuffer1 - ld c, 6 / 2 ; 6 digits -.loop - call .TileToNum - swap a - ld b, a - call .TileToNum - or b - ld [hli], a - dec c - jr nz, .loop - ret -; 15c1a - -.TileToNum ; 15c1a - ld a, [de] - inc de - cp " " - jr nz, .asm_15c22 - ld a, "0" - -.asm_15c22 - sub "0" - ret -; 15c25 - -Function15c25: ; 15c25 - ld hl, MartPointer - ld a, [hli] - ld h, [hl] - ld l, a - push hl - inc hl - ld bc, wd002 - ld de, CurMart + 1 -.loop - ld a, [hli] - ld [de], a - inc de - cp -1 - jr z, .done - - push de - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push hl - ld h, b - ld l, c - call GetMartPrice - ld b, h - ld c, l - pop hl - pop de - jr .loop - -.done - pop hl - ld a, [hl] - ld [CurMart], a - ret -; 15c51 - -BargainShopData: ; 15c51 - db 5 - dbw NUGGET, 4500 - dbw PEARL, 650 - dbw BIG_PEARL, 3500 - dbw STARDUST, 900 - dbw STAR_PIECE, 4600 - db -1 -; 15c62 - - -Function15c62: ; 15c62 - call FadeToMenu - callba Function8000 - xor a - ld [WalkingY], a - ld a, 1 - ld [WalkingX], a -.asm_15c74 - call Function15cef - jr nc, .asm_15c74 - call Function2b3c - ret -; 15c7d - -Function15c7d: ; 15c7d - push af - call Function15ca3 - ld a, [hli] - ld h, [hl] - ld l, a - pop af - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - call PrintText - ret -; 15c91 - -Function15c91: ; 15c91 - call Function15ca3 -rept 2 - inc hl -endr - ld a, [hl] - and a - jp z, Function15d83 - cp 1 - jp z, Function15da5 - jp Function15de2 -; 15ca3 - -Function15ca3: ; 15ca3 - ld a, [EngineBuffer1] - ld e, a - ld d, 0 - ld hl, .data_15cb0 -rept 3 - add hl, de -endr - ret -; 15cb0 - -.data_15cb0 ; 15cb0 - dwb Unknown_15cbf, 0 - dwb Unknown_15ccb, 0 - dwb Unknown_15cd7, 1 - dwb Unknown_15ce3, 0 - dwb Unknown_15cbf, 2 -; 15cbf - -Unknown_15cbf: ; 15cbf - dw UnknownText_0x15e0e - dw UnknownText_0x15e13 - dw UnknownText_0x15fa5 - dw UnknownText_0x15faa - dw UnknownText_0x15fa0 - dw Function15cef - -Unknown_15ccb: ; 15ccb - dw UnknownText_0x15e4f - dw UnknownText_0x15e54 - dw UnknownText_0x15e63 - dw UnknownText_0x15e5e - dw UnknownText_0x15e59 - dw Function15cef - -Unknown_15cd7: ; 15cd7 - dw Function15cef - dw UnknownText_0x15e72 - dw UnknownText_0x15e86 - dw UnknownText_0x15e7c - dw UnknownText_0x15e77 - dw UnknownText_0x15e81 - -Unknown_15ce3: ; 15ce3 - dw UnknownText_0x15e95 - dw UnknownText_0x15e9a - dw UnknownText_0x15ea9 - dw UnknownText_0x15ea4 - dw UnknownText_0x15e9f - dw Function15cef -; 15cef - - -Function15cef: ; 15cef - callba Function24ae8 - call UpdateSprites - ld hl, MenuDataHeader_0x15e18 - call CopyMenuDataHeader - ld a, [WalkingX] - ld [wMenuCursorBuffer], a - ld a, [WalkingY] - ld [wd0e4], a - call Function350c - ld a, [wd0e4] - ld [WalkingY], a - ld a, [MenuSelection2] - ld [WalkingX], a - call SpeechTextBox - ld a, [wcf73] - cp $2 - jr z, .asm_15d6d - cp $1 - jr z, .asm_15d27 - -.asm_15d27 - call Function15c91 - jr c, .asm_15d68 - call Function15d97 - jr c, .asm_15d68 - ld de, Money - ld bc, hMoneyTemp - ld a, $3 - call CompareMoney - jr c, .asm_15d79 - ld hl, NumItems - call ReceiveItem - jr nc, .asm_15d6f - ld a, [wd107] - ld e, a - ld d, $0 - ld b, $1 - ld hl, WalkingDirection - call FlagAction - call Function15fc3 - ld de, Money - ld bc, hMoneyTemp - call TakeMoney - ld a, $4 - call Function15c7d - call JoyWaitAorB - -.asm_15d68 - call SpeechTextBox - and a - ret - -.asm_15d6d - scf - ret - -.asm_15d6f - ld a, $3 - call Function15c7d - call JoyWaitAorB - and a - ret - -.asm_15d79 - ld a, $2 - call Function15c7d - call JoyWaitAorB - and a - ret -; 15d83 - -Function15d83: ; 15d83 - ld a, $63 - ld [wItemQuantityBuffer], a - ld a, $0 - call Function15c7d - callba Function24fc9 - call ExitMenu - ret -; 15d97 - -Function15d97: ; 15d97 - predef PartyMonItemName - ld a, $1 - call Function15c7d - call YesNoBox - ret -; 15da5 - -Function15da5: ; 15da5 - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld a, [wd107] - ld e, a - ld d, $0 - ld b, $2 - ld hl, WalkingDirection - call FlagAction - ld a, c - and a - jr nz, .asm_15dd8 - ld a, [wd107] - ld e, a - ld d, $0 - ld hl, wd040 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl -rept 3 - add hl, de -endr - inc hl - ld a, [hli] - ld [hMoneyTemp + 2], a - ld a, [hl] - ld [hMoneyTemp + 1], a - xor a - ld [hMoneyTemp], a - and a - ret - -.asm_15dd8 - ld a, $5 - call Function15c7d - call JoyWaitAorB - scf - ret -; 15de2 - -Function15de2: ; 15de2 - ld a, $0 - call Function15c7d - call Function15df9 - ld a, $63 - ld [wItemQuantityBuffer], a - callba Function24fcf - call ExitMenu - ret -; 15df9 - -Function15df9: ; 15df9 - ld a, [wd107] - ld e, a - ld d, 0 - ld hl, wd040 - ld a, [hli] - ld h, [hl] - ld l, a - inc hl -rept 3 - add hl, de -endr - inc hl - ld e, [hl] - inc hl - ld d, [hl] - ret -; 15e0e - - -UnknownText_0x15e0e: ; 0x15e0e - ; How many? - text_jump UnknownText_0x1c4bfd - db "@" -; 0x15e13 - -UnknownText_0x15e13: ; 0x15e13 - ; @ (S) will be ¥@ . - text_jump UnknownText_0x1c4c08 - db "@" -; 0x15e18 - -MenuDataHeader_0x15e18: ; 0x15e18 - db $40 ; flags - db 03, 01 ; start coords - db 11, 19 ; end coords - dw MenuData2_0x15e20 - db 1 ; default option -; 0x15e20 - -MenuData2_0x15e20: ; 0x15e20 - db $30 ; flags - db 4, 8 ; rows, columns - db 1 ; horizontal spacing - dbw 0, OBPals + 8 * 6 - dba PlaceMenuItemName - dba Function15e30 - dba Function244c3 -; 15e30 - -Function15e30: ; 15e30 - ld a, [wcf77] - ld c, a - ld b, 0 - ld hl, wd002 -rept 3 - add hl, bc -endr - push de - ld d, h - ld e, l - pop hl - ld bc, $14 - add hl, bc - ld c, $a3 - call PrintBCDNumber - ret -; 15e4a (5:5e4a) - -UnknownText_0x15e4a: ; 0x15e4a - ; Hello, dear. I sell inexpensive herbal medicine. They're good, but a trifle bitter. Your #MON may not like them. Hehehehe… - text_jump UnknownText_0x1c4c28 - db "@" -; 0x15e4f - -UnknownText_0x15e4f: ; 0x15e4f - ; How many? - text_jump UnknownText_0x1c4ca3 - db "@" -; 0x15e54 - -UnknownText_0x15e54: ; 0x15e54 - ; @ (S) will be ¥@ . - text_jump UnknownText_0x1c4cae - db "@" -; 0x15e59 - -UnknownText_0x15e59: ; 0x15e59 - ; Thank you, dear. Hehehehe… - text_jump UnknownText_0x1c4cce - db "@" -; 0x15e5e - -UnknownText_0x15e5e: ; 0x15e5e - ; Oh? Your PACK is full, dear. - text_jump UnknownText_0x1c4cea - db "@" -; 0x15e63 - -UnknownText_0x15e63: ; 0x15e63 - ; Hehehe… You don't have the money. - text_jump UnknownText_0x1c4d08 - db "@" -; 0x15e68 - -UnknownText_0x15e68: ; 0x15e68 - ; Come again, dear. Hehehehe… - text_jump UnknownText_0x1c4d2a - db "@" -; 0x15e6d - -UnknownText_0x15e6d: ; 0x15e6d - ; Hiya! Care to see some bargains? I sell rare items that nobody else carries--but only one of each item. - text_jump UnknownText_0x1c4d47 - db "@" -; 0x15e72 - -UnknownText_0x15e72: ; 0x15e72 - ; costs ¥@ . Want it? - text_jump UnknownText_0x1c4db0 - db "@" -; 0x15e77 - -UnknownText_0x15e77: ; 0x15e77 - ; Thanks. - text_jump UnknownText_0x1c4dcd - db "@" -; 0x15e7c - -UnknownText_0x15e7c: ; 0x15e7c - ; Uh-oh, your PACK is chock-full. - text_jump UnknownText_0x1c4dd6 - db "@" -; 0x15e81 - -UnknownText_0x15e81: ; 0x15e81 - ; You bought that already. I'm all sold out of it. - text_jump UnknownText_0x1c4df7 - db "@" -; 0x15e86 - -UnknownText_0x15e86: ; 0x15e86 - ; Uh-oh, you're short on funds. - text_jump UnknownText_0x1c4e28 - db "@" -; 0x15e8b - -UnknownText_0x15e8b: ; 0x15e8b - ; Come by again sometime. - text_jump UnknownText_0x1c4e46 - db "@" -; 0x15e90 - -UnknownText_0x15e90: ; 0x15e90 - ; What's up? Need some medicine? - text_jump UnknownText_0x1c4e5f - db "@" -; 0x15e95 - -UnknownText_0x15e95: ; 0x15e95 - ; How many? - text_jump UnknownText_0x1c4e7e - db "@" -; 0x15e9a - -UnknownText_0x15e9a: ; 0x15e9a - ; @ (S) will cost ¥@ . - text_jump UnknownText_0x1c4e89 - db "@" -; 0x15e9f - -UnknownText_0x15e9f: ; 0x15e9f - ; Thanks much! - text_jump UnknownText_0x1c4eab - db "@" -; 0x15ea4 - -UnknownText_0x15ea4: ; 0x15ea4 - ; You don't have any more space. - text_jump UnknownText_0x1c4eb9 - db "@" -; 0x15ea9 - -UnknownText_0x15ea9: ; 0x15ea9 - ; Huh? That's not enough money. - text_jump UnknownText_0x1c4ed8 - db "@" -; 0x15eae - -UnknownText_0x15eae: ; 0x15eae - ; All right. See you around. - text_jump UnknownText_0x1c4ef6 - db "@" -; 0x15eb3 - - -Function15eb3: ; 15eb3 - call DisableSpriteUpdates - callba Function106a5 -.asm_15ebc - callba Function106be - ld a, [wcf66] - and a - jp z, Function15ece - call Function15ee0 - jr .asm_15ebc -; 15ece - -Function15ece: ; 15ece - call Function2b74 - and a - ret -; 15ed3 - -Function15ed3: ; unreferenced - ld hl, UnknownText_0x15edb - call MenuTextBoxBackup - and a - ret -; 15edb - -UnknownText_0x15edb: ; 0x15edb - ; You don't have anything to sell. - text_jump UnknownText_0x1c4f12 - db "@" -; 0x15ee0 - - -Function15ee0: ; 15ee0 - callba CheckItemMenu - ld a, [wItemAttributeParamBuffer] - ld hl, .jumptable - rst JumpTable - ret -; 15eee - -.jumptable: ; 15eee - dw .maybe_use - dw .no_use - dw .no_use - dw .no_use - dw .maybe_use - dw .maybe_use - dw .maybe_use -; 15efc - -.no_use: ; 15efc - ret -; 15efd - - -.maybe_use: ; 15efd - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr z, .asm_15f11 - ld hl, UnknownText_0x15faf - call PrintText - and a - ret - -.asm_15f11 - ld hl, UnknownText_0x15f73 - call PrintText - callba Function24af8 - callba Function24fe1 - call ExitMenu - jr c, .asm_15f6e - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x15f78 - call PrintTextBoxText - call YesNoBox - jr c, .asm_15f6e - ld de, Money - ld bc, hMoneyTemp - call GiveMoney - ld a, [wd107] - ld hl, NumItems - call TossItem - predef PartyMonItemName - hlcoord 1, 14 - lb bc, 3, 18 - call ClearBox - ld hl, UnknownText_0x15fbe - call PrintTextBoxText - call Function15fc3 - callba Function24af0 - call JoyWaitAorB - -.asm_15f6e - call ExitMenu - and a - ret -; 15f73 - -UnknownText_0x15f73: ; 0x15f73 - ; How many? - text_jump UnknownText_0x1c4f33 - db "@" -; 0x15f78 - -UnknownText_0x15f78: ; 0x15f78 - ; I can pay you ¥@ . Is that OK? - text_jump UnknownText_0x1c4f3e - db "@" -; 0x15f7d - -String15f7d: ; 15f7d - db "!ダミー!@" - -UnknownText_0x15f83: ; 0x15f83 - ; Welcome! How may I help you? - text_jump UnknownText_0x1c4f62 - db "@" -; 0x15f88 - -MenuDataHeader_0x15f88: ; 0x15f88 - db $40 ; flags - db 00, 00 ; start coords - db 08, 07 ; end coords - dw MenuData2_0x15f90 - db 1 ; default option -; 0x15f90 - -MenuData2_0x15f90: ; 0x15f90 - db $80 ; flags - db 3 ; items - db "BUY@" - db "SELL@" - db "QUIT@" -; 0x15f96 - -UnknownText_0x15fa0: ; 0x15fa0 - ; Here you are. Thank you! - text_jump UnknownText_0x1c4f80 - db "@" -; 0x15fa5 - -UnknownText_0x15fa5: ; 0x15fa5 - ; You don't have enough money. - text_jump UnknownText_0x1c4f9a - db "@" -; 0x15faa - -UnknownText_0x15faa: ; 0x15faa - ; You can't carry any more items. - text_jump UnknownText_0x1c4fb7 - db "@" -; 0x15faf - -UnknownText_0x15faf: ; 0x15faf - ; Sorry, I can't buy that from you. - text_jump UnknownText_0x1c4fd7 - db "@" -; 0x15fb4 - -UnknownText_0x15fb4: ; 0x15fb4 - ; Please come again! - text_jump UnknownText_0x1c4ff9 - db "@" -; 0x15fb9 - -UnknownText_0x15fb9: ; 0x15fb9 - text_jump UnknownText_0x1c500d - db "@" -; 0x15fbe - -UnknownText_0x15fbe: ; 0x15fbe - text_jump UnknownText_0x1c502e - db "@" -; 0x15fc3 - -Function15fc3: ; 15fc3 - call WaitSFX - ld de, SFX_TRANSACTION - call PlaySFX - ret -; 15fcd - -Function15fcd: ; 15fcd - call MenuTextBox - call JoyWaitAorB - call ExitMenu - ret -; 15fd7 +INCLUDE "engine/mart.asm" GiveMoney:: ; 15fd7 ld a, $3 @@ -18666,7 +17692,7 @@ Function16949: ; 16949 call PrintText ld de, SFX_GET_EGG_FROM_DAYCARE_LADY call PlaySFX - ld c, $78 + ld c, 120 call DelayFrames ld hl, UnknownText_0x1699d jr .asm_1697f @@ -19444,10 +18470,12 @@ _BackUpTiles:: ; 24374 Function243e8:: ; 243e8 xor a ld [hBGMapMode], a + ld a, [rSVBK] push af ld a, $7 ld [rSVBK], a + call Function1c7e ld a, l or h @@ -19468,10 +18496,10 @@ Function243e8:: ; 243e8 call Function1c7e ld a, h or l - jr z, .next2 + jr z, .done call Function1c47 -.next2 +.done pop af ld [rSVBK], a ld hl, wcf78 @@ -19491,7 +18519,7 @@ Function24423: ; 24423 ld bc, SCREEN_WIDTH * SCREEN_HEIGHT call CopyBytes call CloseSRAM - call Function2173 + call OverworldTextModeSwitch xor a call GetSRAMBank ld hl, sScratch @@ -19647,7 +18675,7 @@ PokepicYesOrNo:: ; 24528 call ClearSGB xor a ld [hBGMapMode], a - call Function2173 + call OverworldTextModeSwitch call Function321c call UpdateSprites call LoadStandardFont @@ -20497,7 +19525,7 @@ Function24a6c: ; 24a6c (9:4a6c) dec a cpl .asm_24a76 - ld hl, $ + ld hl, 0 call AddNTimes ld b, h ld c, l @@ -22789,7 +21817,7 @@ Function2695b: ; 2695b call Function352f xor a ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wcf73] cp 2 jr z, .no_action_2 @@ -27577,14 +26605,14 @@ Function41a7f: ; 41a7f Function41ad7: ; 41ad7 (10:5ad7) ld a, $3 ld [hBGMapMode], a - ld c, $4 + ld c, 4 call DelayFrames ret Function41ae1: ; 41ae1 (10:5ae1) ld a, $4 ld [hBGMapMode], a - ld c, $4 + ld c, 4 call DelayFrames ret @@ -28548,7 +27576,7 @@ Function441cf: ; 441cf xor a ld [wc7db], a call Function44207 - ld c, $20 + ld c, 32 call DelayFrames ret ; 441fc @@ -29206,7 +28234,7 @@ Function44806: ; 0x44806 ld [wMenuCursorBuffer], a ld a, [OBPals + 8 * 6] ld [wd0e4], a - call Function350c + call HandleScrollingMenu ld a, [wd0e4] ld [OBPals + 8 * 6], a ld a, [MenuSelection2] @@ -29465,7 +28493,7 @@ Function4802f: ; 4802f (12:402f) ld [MusicFadeIDLo], a ld a, MUSIC_MOBILE_ADAPTER_MENU / $100 ld [MusicFadeIDHi], a - ld c, $14 + ld c, 20 call DelayFrames ld b, $1 call Function4930f @@ -29672,7 +28700,7 @@ Function4820d: ; 4820d (12:420d) hlcoord 1, 16 call PlaceString call WaitBGMap - ld c, $30 + ld c, 48 call DelayFrames .asm_4825c @@ -29783,7 +28811,7 @@ Function48304: ; 48304 (12:4304) ld [wd0e4], a callba Function104148 .asm_48348 - call Function350c + call HandleScrollingMenu ld de, $629 call Function48383 jr c, .asm_48348 @@ -30084,7 +29112,7 @@ Wakayama: db "わかやまけん@" ; Wakayama ; 48689 Function48689: ; 48689 (12:4689) - ld c, $7 + ld c, 7 call DelayFrames ld b, $1 call Function4930f @@ -30266,7 +29294,7 @@ Function4876f: ; 4876f (12:476f) .asm_487b7 hlcoord 11, 6 call Function487ec - ld c, $a + ld c, 10 call DelayFrames ld a, [wd473] push af @@ -30496,7 +29524,7 @@ asm_48922: ; 48922 (12:4922) ld a, b cp $4 jr nz, asm_48972 - ld c, $a + ld c, 10 call DelayFrames jr asm_48972 ; 4895a (12:495a) @@ -31299,7 +30327,7 @@ Function48e14: ; 48e14 (12:4e14) ld [MusicFadeIDLo], a ld a, $0 ld [MusicFadeIDHi], a - ld c, $8 + ld c, 8 call DelayFrames call WhiteBGMap call Function48000 @@ -32139,7 +31167,7 @@ Special_CelebiShrineEvent: ; 4989a ld [wc3b5], a callba Function8cf7a call Function49935 - ld c, $2 + ld c, 2 call DelayFrames pop de pop bc @@ -32356,7 +31384,7 @@ endr ld e, [hl] inc hl ld d, [hl] - ld hl, $ + ld hl, 0 .asm_49b61 srl a jr nc, .asm_49b66 @@ -32832,7 +31860,7 @@ Function49f0a: ; 49f0a call WhiteBGMap Function49f16: ; 49f16 call Function4a071 - ld c, $c + ld c, 12 call DelayFrames hlcoord 4, 0 ld b, $a @@ -33020,7 +32048,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) call CopyBytes call CloseSRAM callba Function150b9 - ld c, $2 + ld c, 2 call DelayFrames ld c, $1 call Function4802f @@ -33031,7 +32059,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) jr nz, .asm_4a0f9 callba Function1509a .asm_4a0f9 - ld c, $5 + ld c, 5 call DelayFrames jr asm_4a111 @@ -33078,7 +32106,7 @@ Function4a13b: ; 4a13b (12:613b) call Function4a3a7 call Function4a492 call Function4a373 - ld c, $a + ld c, 10 call DelayFrames Function4a149: ; 4a149 (12:6149) @@ -33496,7 +32524,7 @@ Function4a4c4: ; 4a4c4 (12:64c4) call Function4a492 call Function4a680 call WhiteBGMap - ld c, $14 + ld c, 20 call DelayFrames hlcoord 2, 0 ld b, $a @@ -33685,7 +32713,7 @@ Function4a6c5: ; 4a6c5 (12:66c5) ld [MusicFadeIDLo], a ld a, d ld [MusicFadeIDHi], a - ld c, $16 + ld c, 22 call DelayFrames ret @@ -34349,7 +33377,7 @@ Function4aa7a: ; 4aa7a push hl cp -1 jr z, .done - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 inc a ld d, a .inner_loop @@ -34950,7 +33978,7 @@ Function4ae1f: ; 4ae1f call BackUpTiles call InterpretMenu2 push af - ld c, $f + ld c, 15 call DelayFrames call Function4ae5e pop af @@ -35569,7 +34597,7 @@ ClockResetPassword: ; 4d41e and D_PAD jr z, .loop2 call .dpadinput - ld c, $3 + ld c, 3 call DelayFrames jr .loop @@ -43453,7 +42481,7 @@ TilesetColorTest: ld [wcf66], a ld [hMapAnims], a call ClearSprites - call Function2173 + call OverworldTextModeSwitch call Function3200 xor a ld [hBGMapMode], a @@ -43607,7 +42635,7 @@ Function82236: ; 82236 ld [rSVBK], a ld a, $2 ld [hBGMapMode], a - ld c, $3 + ld c, 3 call DelayFrames ld a, $1 ld [hBGMapMode], a @@ -44135,7 +43163,7 @@ endr ret Function84219: ; 84219 (21:4219) - ld hl, $ + ld hl, 0 ld bc, $4 ld de, wca82 call Function8423c @@ -44513,7 +43541,7 @@ Function8442c: ; 8442c call Function843f0 jr c, .asm_8449d call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44581,7 +43609,7 @@ Function844bc: ; 844bc (21:44bc) call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44591,7 +43619,7 @@ Function844bc: ; 844bc (21:44bc) call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44601,7 +43629,7 @@ Function844bc: ; 844bc (21:44bc) call Function84559 jr c, .asm_84545 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44756,7 +43784,7 @@ Function8461a: ; 8461a call Function843f0 jr c, .asm_84671 call Function84411 - ld c, $c + ld c, 12 call DelayFrames xor a ld [hBGMapMode], a @@ -44808,7 +43836,7 @@ Function84688: ; 84688 call Function843f0 jr c, .asm_846e2 call Function84411 - ld c, $c + ld c, 12 call DelayFrames call LoadTileMapToTempTileMap xor a @@ -45369,7 +44397,7 @@ RedCredits:: ; 86455 ld [VramState], a ld [hMapAnims], a callba Function4e8c2 - ld c, $8 + ld c, 8 call DelayFrames call DisableSpriteUpdates ld a, SPAWN_RED @@ -45439,7 +44467,7 @@ Function864c3: ; 864c3 ld a, $4 ld [MusicFade], a call FadeToWhite - ld c, $8 + ld c, 8 call DelayFrames ret ; 8650c @@ -46276,7 +45304,7 @@ Function8c7c9: ; unreferenced ret ; 8c7d4 -Function8c7d4: ; 8c7d4 +PlayWhirlpoolSound: ; 8c7d4 call WaitSFX ld de, SFX_SURF call PlaySFX @@ -46299,9 +45327,9 @@ BlindingFlash: ; 8c7e1 ShakeHeadbuttTree: ; 8c80a callba Function8cf53 - ld de, GFX_8c9cc + ld de, CutGrassGFX ld hl, VTiles1 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld de, HeadbuttTreeGFX ld hl, VTiles1 tile $04 @@ -46335,7 +45363,7 @@ ShakeHeadbuttTree: ; 8c80a jr .loop .done - call Function2173 + call OverworldTextModeSwitch call WaitBGMap xor a ld [hBGMapMode], a @@ -46389,57 +45417,56 @@ TreeRelativeLocationTable: ; 8c938 dwcoord 8 - 2, 8 ; DOWN dwcoord 8 + 2, 8 ; UP ; 8c940 -; 8c940 -Function8c940: ; 8c940 +OWCutAnimation: ; 8c940 ld a, e and $1 ld [wJumptableIndex], a - call Function8c96d + call .LoadCutGFX call WaitSFX ld de, SFX_PLACE_PUZZLE_PIECE_DOWN call PlaySFX -.asm_8c952 +.loop ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_8c96c + jr nz, .finish ld a, $90 ld [wc3b5], a callab Function8cf7a - call Function8ca0c + call OWCutJumptable call DelayFrame - jr .asm_8c952 + jr .loop -.asm_8c96c +.finish ret ; 8c96d -Function8c96d: ; 8c96d - callab Function8cf53 - ld de, GFX_8c9cc +.LoadCutGFX: ; 8c96d + callab Function8cf53 ; pointless to farcall + ld de, CutGrassGFX ld hl, VTiles1 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld de, CutTreeGFX - ld hl, VTiles1 + $40 + ld hl, VTiles1 tile $4 lb bc, BANK(CutTreeGFX), 4 call Request2bpp ret ; 8c98c CutTreeGFX: ; c898c -INCBIN "gfx/unknown/08c98c.2bpp" +INCBIN "gfx/misc/cut_tree.2bpp" ; c89cc -GFX_8c9cc: ; 8c9cc -INCBIN "gfx/unknown/08c9cc.2bpp" +CutGrassGFX: ; 8c9cc +INCBIN "gfx/misc/cut_grass.2bpp" ; 8ca0c -Function8ca0c: ; 8ca0c +OWCutJumptable: ; 8ca0c ld a, [wJumptableIndex] ld e, a ld d, 0 - ld hl, Jumptable_8ca1b + ld hl, .jumptable rept 2 add hl, de endr @@ -46450,7 +45477,7 @@ endr ; 8ca1b -Jumptable_8ca1b: ; 8ca1b (23:4a1b) +.jumptable: ; 8ca1b (23:4a1b) dw Function8ca23 dw Function8ca3c dw Function8ca5c @@ -46525,7 +45552,7 @@ Function8ca73: ; 8ca73 (23:4a73) ret Function8ca8e: ; 8ca8e (23:4a8e) - ld de, $ + ld de, 0 ld a, [wd197] bit 0, a jr z, .asm_8ca9a @@ -46681,9 +45708,9 @@ endr Function8cb9b: ; 8cb9b (23:4b9b) callab Function8cf53 - ld de, GFX_8c9cc + ld de, CutGrassGFX ld hl, VTiles1 tile $00 - lb bc, BANK(GFX_8c9cc), 4 + lb bc, BANK(CutGrassGFX), 4 call Request2bpp ld a, [CurPartyMon] ld hl, PartySpecies @@ -47265,18 +46292,18 @@ Function8cf69: ; 8cf69 ; 8cf7a Function8cf7a: ; 8cf7a - ld hl, wPartyMonMenuIconAnims - ld e, 10 ; Do this first loop 10 times + ld hl, wc314 + ld e, 10 ; There are 10 structs here. .loop ld a, [hl] and a - jr z, .next ; Done with this iteration + jr z, .next ; This struct is deinitialized. ld c, l ld b, h push hl push de - call Function8d24b + call Function8d24b ; Uses a massive jumptable call LoadBouncingMonIcon pop de pop hl @@ -47287,13 +46314,14 @@ Function8cf7a: ; 8cf7a add hl, bc dec e jr nz, .loop + ld a, [wc3b5] ld l, a ld h, Sprites / $0100 .loop2 ; Clear (Sprites + [wc3b5] --> SpritesEnd) ld a, l - cp SpritesEnd % $0100 + cp SpritesEnd % $100 jr nc, .done xor a ld [hli], a @@ -47304,7 +46332,7 @@ Function8cf7a: ; 8cf7a ; 8cfa8 Function8cfa8: ; 8cfa8 (23:4fa8) - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, 10 .loop @@ -47315,7 +46343,7 @@ Function8cfa8: ; 8cfa8 (23:4fa8) ld b, h push hl push de - call Function8d24b + call Function8d24b ; Uses a massive jumptable call LoadBouncingMonIcon pop de pop hl @@ -47329,10 +46357,11 @@ Function8cfa8: ; 8cfa8 (23:4fa8) ld a, [wc3b5] ld l, a - ld h, Sprites / $100 -.loop2 + ld h, (Sprites + $40) / $100 + +.loop2 ; Clear (Sprites + [wc3b5] --> Sprites + $40) ld a, l - cp 4 * 16 + cp (Sprites + $40) % $100 jr nc, .done xor a ld [hli], a @@ -47342,10 +46371,11 @@ Function8cfa8: ; 8cfa8 (23:4fa8) ret Function8cfd6:: ; 8cfd6 +; Find if there's any room in the wc314 array, which is 10x16 push de push af - ld hl, wPartyMonMenuIconAnims - ld e, 2 * 4 + 2 ; 4 tiles for each frame, then one frame each for mail and item + ld hl, wc314 + ld e, 10 .loop ld a, [hl] and a @@ -47354,14 +46384,19 @@ Function8cfd6:: ; 8cfd6 add hl, bc dec e jr nz, .loop +; We've reached the end. There is no more room here. +; Return carry. pop af pop de scf ret .found +; Back up the structure address to bc. ld c, l ld b, h +; Value [wc3b4] is initially set to -1. Set it to +; the number of objects loaded into this array. ld hl, wc3b4 inc [hl] ld a, [hl] @@ -47370,6 +46405,7 @@ Function8cfd6:: ; 8cfd6 inc [hl] .initialized +; Get row a of Unknown_8d1c4, copy the pointer into de pop af ld e, a ld d, 0 @@ -47379,28 +46415,34 @@ rept 3 endr ld e, l ld d, h +; Set hl to the first field (field 0) in the current structure. ld hl, 0 add hl, bc +; Load the index. ld a, [wc3b4] ld [hli], a -; read from the table +; Copy the table entry to the next two fields. ld a, [de] ld [hli], a inc de ld a, [de] ld [hli], a inc de +; Look up the third field from the table in the wc300 array (10x2). +; Take the value and load it in ld a, [de] - call Function8d109 + call LookUpInwDict_c300 ld [hli], a pop de - +; Set hl to field 4. Kinda pointless, because we're presumably already here. ld hl, $4 add hl, bc +; Load the original value of de into here. ld a, e ld [hli], a ld a, d ld [hli], a +; load 0 into the next four fields xor a rept 2 ld [hli], a @@ -47409,21 +46451,25 @@ endr rept 2 ld [hli], a endr +; load -1 into the next field dec a ld [hli], a +; load 0 into the last five fields xor a rept 4 ld [hli], a endr ld [hl], a +; back up the address of the first field to wc3b8 ld a, c ld [wc3b8], a ld a, b - ld [wc3b9], a + ld [wc3b8 + 1], a ret ; 8d036 Function8d036: ; 8d036 +; Clear the index field of the struct in bc. ld hl, 0 add hl, bc ld [hl], $0 @@ -47432,9 +46478,10 @@ Function8d036: ; 8d036 Function8d03d: ; 8d03d (23:503d) - ld hl, wPartyMonMenuIconAnims +; Clear the index field of every struct in the wc314 array. + ld hl, wc314 ld bc, $10 - ld e, $a + ld e, 10 xor a .loop ld [hl], a @@ -47448,9 +46495,9 @@ LoadBouncingMonIcon: ; 8d04c ; Populate Sprites with the bouncing mon icons call Function8d0ec call Function8d132 - cp $fd + cp EGG jr z, .done - cp $fc + cp NUM_POKEMON + 1 jr z, .almost call Function8d1a2 ld a, [wc3ba] @@ -47585,12 +46632,13 @@ Function8d0ec: ; 8d0ec ret ; 8d109 -Function8d109: ; 8d109 +LookUpInwDict_c300: ; 8d109 +; a = wDict_c300[a] if a in wDict_c300 else 0 push hl push bc - ld hl, wc300 + ld hl, wDict_c300 ld b, a - ld c, $a + ld c, 10 .loop ld a, [hli] cp b @@ -47748,56 +46796,56 @@ endr ; 8d1c4 Unknown_8d1c4: ; 8d1c4 - db $01, $01, $00 ; 00 - db $07, $04, $00 ; 01 - db $08, $05, $05 ; 02 - db $0a, $06, $00 ; 03 - db $0b, $07, $06 ; 04 - db $0c, $08, $06 ; 05 - db $0d, $09, $07 ; 06 - db $0e, $0a, $07 ; 07 - db $10, $0b, $07 ; 08 - db $08, $0c, $05 ; 09 - db $11, $00, $00 ; 0a - db $12, $0d, $08 ; 0b - db $12, $0e, $08 ; 0c - db $12, $0f, $08 ; 0d - db $13, $10, $00 ; 0e - db $15, $00, $00 ; 0f - db $16, $11, $00 ; 10 - db $17, $12, $00 ; 11 - db $18, $12, $00 ; 12 - db $19, $13, $00 ; 13 - db $1a, $14, $00 ; 14 - db $1b, $00, $00 ; 15 - db $1d, $15, $00 ; 16 - db $1e, $00, $00 ; 17 - db $1d, $17, $00 ; 18 - db $1f, $00, $00 ; 19 - db $24, $19, $00 ; 1a - db $25, $00, $00 ; 1b - db $20, $13, $00 ; 1c - db $26, $1a, $00 ; 1d - db $2d, $00, $00 ; 1e - db $2e, $00, $00 ; 1f - db $2f, $00, $00 ; 20 - db $30, $00, $00 ; 21 - db $31, $00, $00 ; 22 - db $32, $1b, $00 ; 23 - db $33, $1c, $00 ; 24 - db $34, $00, $00 ; 25 - db $35, $1d, $00 ; 26 - db $37, $1e, $00 ; 27 - db $38, $1e, $00 ; 28 - db $39, $20, $00 ; 29 - db $3f, $21, $00 ; 2a - db $3e, $22, $00 ; 2b - db $40, $00, $00 ; 2c + db $01, JUMPTABLE_8D24B_FUNCTION_01, $00 ; 00 + db $07, JUMPTABLE_8D24B_FUNCTION_04, $00 ; 01 + db $08, JUMPTABLE_8D24B_FUNCTION_05, $05 ; 02 + db $0a, JUMPTABLE_8D24B_FUNCTION_06, $00 ; 03 + db $0b, JUMPTABLE_8D24B_FUNCTION_07, $06 ; 04 + db $0c, JUMPTABLE_8D24B_FUNCTION_08, $06 ; 05 + db $0d, JUMPTABLE_8D24B_FUNCTION_09, $07 ; 06 + db $0e, JUMPTABLE_8D24B_FUNCTION_0A, $07 ; 07 + db $10, JUMPTABLE_8D24B_FUNCTION_0B, $07 ; 08 + db $08, JUMPTABLE_8D24B_FUNCTION_0C, $05 ; 09 + db $11, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0a + db $12, JUMPTABLE_8D24B_FUNCTION_0D, $08 ; 0b + db $12, JUMPTABLE_8D24B_FUNCTION_0E, $08 ; 0c + db $12, JUMPTABLE_8D24B_FUNCTION_0F, $08 ; 0d + db $13, JUMPTABLE_8D24B_FUNCTION_10, $00 ; 0e + db $15, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 0f + db $16, JUMPTABLE_8D24B_FUNCTION_11, $00 ; 10 + db $17, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 11 + db $18, JUMPTABLE_8D24B_FUNCTION_12, $00 ; 12 + db $19, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 13 + db $1a, JUMPTABLE_8D24B_FUNCTION_14, $00 ; 14 + db $1b, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 15 + db $1d, JUMPTABLE_8D24B_FUNCTION_15, $00 ; 16 + db $1e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 17 + db $1d, JUMPTABLE_8D24B_FUNCTION_17, $00 ; 18 + db $1f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 19 + db $24, JUMPTABLE_8D24B_FUNCTION_19, $00 ; 1a + db $25, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1b + db $20, JUMPTABLE_8D24B_FUNCTION_13, $00 ; 1c + db $26, JUMPTABLE_8D24B_FUNCTION_1A, $00 ; 1d + db $2d, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1e + db $2e, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 1f + db $2f, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 20 + db $30, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 21 + db $31, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 22 + db $32, JUMPTABLE_8D24B_FUNCTION_1B, $00 ; 23 + db $33, JUMPTABLE_8D24B_FUNCTION_1C, $00 ; 24 + db $34, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 25 + db $35, JUMPTABLE_8D24B_FUNCTION_1D, $00 ; 26 + db $37, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 27 + db $38, JUMPTABLE_8D24B_FUNCTION_1E, $00 ; 28 + db $39, JUMPTABLE_8D24B_FUNCTION_20, $00 ; 29 + db $3f, JUMPTABLE_8D24B_FUNCTION_21, $00 ; 2a + db $3e, JUMPTABLE_8D24B_FUNCTION_22, $00 ; 2b + db $40, JUMPTABLE_8D24B_FUNCTION_00, $00 ; 2c ; 8d24b Function8d24b: ; 8d24b - ld hl, $2 + ld hl, $2 ; field 2, see the second column in the above table add hl, bc ld e, [hl] ld d, 0 @@ -47855,7 +46903,7 @@ endr .one: ; 8d2a2 (23:52a2) ld a, [MenuSelection2] - ld hl, $ + ld hl, 0 add hl, bc cp [hl] jr z, .two @@ -47906,7 +46954,7 @@ endr .three: ; 8d2ea (23:52ea) ld a, [MenuSelection2] - ld hl, $ + ld hl, 0 add hl, bc cp [hl] jr z, .asm_8d2fb @@ -50354,6 +49402,7 @@ Function8e908: ; 8e908 (23:6908) ld [CurIcon], a call Function8e9db ld a, [hObjectStructIndexBuffer] +; and $f \ swap a rept 4 add a endr @@ -50544,7 +49593,7 @@ GetGFXUnlessMobile: ; 8ea3f ; 8ea4a Function8ea4a: ; 8ea4a - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 ld a, [MenuSelection2] ld d, a @@ -50578,7 +49627,7 @@ Function8ea4a: ; 8ea4a ; 8ea71 Function8ea71: ; 8ea71 - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 .loop ld a, [hl] @@ -50600,7 +49649,7 @@ Function8ea71: ; 8ea71 ; 8ea8c (23:6a8c) Function8ea8c: ; 8ea8c - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld e, $6 ld a, [wd0e3] ld d, a @@ -50699,7 +49748,7 @@ InitClock: ; 90672 (24:4672) ld [hl], $2 hlcoord 4, 9 call DisplayHourOClock - ld c, $a + ld c, 10 call DelayFrames .SetHourLoop @@ -51076,7 +50125,7 @@ Special_SetDayOfWeek: ; 90913 hlcoord 10, 5 call Function909de call Function321c - ld c, $a + ld c, 10 call DelayFrames .asm_9096a call JoyTextDelay @@ -51694,7 +50743,7 @@ Function90e00: ; 90e00 (24:4e00) jr z, .asm_90e0e ld a, $2 ld [hBGMapMode], a - ld c, $3 + ld c, 3 call DelayFrames .asm_90e0e call WaitBGMap @@ -52771,7 +51820,7 @@ Function91492: ; 91492 Function914ab: ; 914ab (24:54ab) - ld hl, wPartyMonMenuIconAnims + 16 + ld hl, wc314 + 16 ld bc, $90 xor a call ByteFill @@ -54785,7 +53834,7 @@ Function92a98: ; 92a98 (24:6a98) ret Function92af9: ; 92af9 (24:6af9) - ld hl, $ + ld hl, 0 add hl, bc ld [hl], $0 ld hl, $3 @@ -55878,7 +54927,7 @@ Function930e9: ; 930e9 (24:70e9) jr nz, .asm_930fd ld hl, UnknownText_9311a call PrintText - ld c, $3c + ld c, 60 call DelayFrames jr .asm_93118 .asm_930fd @@ -56087,7 +55136,7 @@ Function93233: ; 93233 (24:7233) jr nz, .asm_93247 ld a, $2 ld [wcf64], a - ld hl, $ + ld hl, 0 add hl, bc ld [hl], $0 ret @@ -56203,7 +55252,7 @@ Function932e0: ; 932e0 (24:72e0) jr z, .asm_932f1 cp $5 ret nz - ld hl, $ + ld hl, 0 add hl, bc ld [hl], $0 ret @@ -56237,7 +55286,7 @@ Function932fc: ; 932fc (24:72fc) Function93316: ; 93316 push bc - ld c, $10 + ld c, 16 call DelayFrames pop bc ret @@ -58348,7 +57397,7 @@ Functioncbce5: ; cbce5 .asm_cbcf7 call DmgToCgbBGPals - ld c, $4 + ld c, 4 call DelayFrames callba _UpdateTimePals ret @@ -58361,6 +57410,7 @@ Functioncbce5: ; cbce5 ld hl, BGPals ld c, $20 .asm_cbd12 +; RGB 31, 21, 28 ld a, $bc ld [hli], a ld a, $7e @@ -58371,7 +57421,7 @@ Functioncbce5: ; cbce5 ld [rSVBK], a ld a, $1 ld [hCGBPalUpdate], a - ld c, $4 + ld c, 4 call DelayFrames callba _UpdateTimePals ret @@ -58857,13 +57907,13 @@ endr ld [hl], $f5 ld a, $1 ld [hBGMapMode], a - ld c, $14 + ld c, 20 call DelayFrames hlcoord 2, 0 call Functione03c1 ld a, $1 ld [hBGMapMode], a - ld c, $14 + ld c, 20 call DelayFrames hlcoord 2, 6 call Functione03c1 @@ -58880,7 +57930,7 @@ endr ld de, SFX_KINESIS call PlaySFX call Functione0849 - ld c, $4 + ld c, 4 call DelayFrames ld hl, wcf66 ld a, [hl] @@ -58895,10 +57945,10 @@ endr .loop2 push af call Functione0849 - ld c, $4 + ld c, 4 call DelayFrames call ClearSprites - ld c, $4 + ld c, 4 call DelayFrames pop af dec a @@ -59821,7 +58871,7 @@ Functione07eb: ; e07eb .asm_e0804 call Functione049c - ld c, $2 + ld c, 2 call DelayFrames pop bc dec c @@ -61699,7 +60749,7 @@ Functione2128: ; e2128 ld [hli], a inc a ld [hl], a - ld c, $3 + ld c, 3 call DelayFrames ret ; e2142 @@ -61712,7 +60762,7 @@ Functione2142: ; e2142 add hl, bc ld [hli], a ld [hl], a - ld c, $3 + ld c, 3 call DelayFrames ret ; e2152 @@ -61771,38 +60821,41 @@ Functione2183: ; e2183 Functione21a1: ; e21a1 (38:61a1) ld a, [wJumptableIndex] cp $7 - jr nc, .asm_e21c8 + jr nc, .quit call JoyTextDelay ld hl, hJoypadPressed ; $ffa3 ld a, [hl] and A_BUTTON - jr nz, .asm_e21cf + jr nz, .pressed_a ld a, [hl] and D_LEFT - jr nz, .asm_e21d9 + jr nz, .pressed_left ld a, [hl] and D_RIGHT - jr nz, .asm_e21e9 + jr nz, .pressed_right ld a, [hl] and D_UP - jr nz, .asm_e21fa + jr nz, .pressed_up ld a, [hl] and D_DOWN - jr nz, .asm_e220d + jr nz, .pressed_down ret -.asm_e21c8 - ld hl, $ + +.quit + ld hl, 0 add hl, bc ld [hl], $0 ret -.asm_e21cf + +.pressed_a ld hl, $c add hl, bc ld a, [hl] inc a ld [wcf64], a ret -.asm_e21d9 + +.pressed_left ld hl, $6 add hl, bc ld a, [hl] @@ -61814,7 +60867,8 @@ Functione21a1: ; e21a1 (38:61a1) add hl, bc dec [hl] ret -.asm_e21e9 + +.pressed_right ld hl, $6 add hl, bc ld a, [hl] @@ -61826,7 +60880,8 @@ Functione21a1: ; e21a1 (38:61a1) add hl, bc inc [hl] ret -.asm_e21fa + +.pressed_up ld hl, $7 add hl, bc ld a, [hl] @@ -61840,7 +60895,8 @@ Functione21a1: ; e21a1 (38:61a1) sub $9 ld [hl], a ret -.asm_e220d + +.pressed_down ld hl, $7 add hl, bc ld a, [hl] @@ -64210,7 +63266,7 @@ Functione35aa: ; e35aa (38:75aa) hlcoord 0, 4 lb bc, 8, 9 call TextBox - call Function350c + call HandleScrollingMenu ld a, [wcf73] cp $2 jr z, .done @@ -64576,7 +63632,7 @@ _OptionsMenu: ; e41d0 .asm_e422a call Functione455c - ld c, $3 + ld c, 3 call DelayFrames jr .asm_e4217 @@ -65135,30 +64191,30 @@ Functione4579: ; e4579 call DelayFrames callab Copyright call WaitBGMap - ld c, $64 + ld c, 100 call DelayFrames call ClearTileMap callba GBCOnlyScreen call Functione45e8 -.asm_e45c0 +.joy_loop call JoyTextDelay ld a, [hJoyLast] and BUTTONS - jr nz, .asm_e45de + jr nz, .pressed_button ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_e45e3 - call Functione4670 + jr nz, .finish + call PlaceGameFreakPresents callba Function8cf69 call DelayFrame - jr .asm_e45c0 + jr .joy_loop -.asm_e45de +.pressed_button call Functione465e scf ret -.asm_e45e3 +.finish call Functione465e and a ret @@ -65219,16 +64275,16 @@ Functione465e: ; e465e callba Function8cf53 call ClearTileMap call ClearSprites - ld c, $10 + ld c, 16 call DelayFrames ret ; e4670 -Functione4670: ; e4670 +PlaceGameFreakPresents: ; e4670 ld a, [wJumptableIndex] ld e, a ld d, 0 - ld hl, Jumptable_e467f + ld hl, .jumptable rept 2 add hl, de endr @@ -65238,38 +64294,38 @@ endr jp [hl] ; e467f -Jumptable_e467f: ; e467f - dw Functione468c - dw Functione468d - dw Functione46ba - dw Functione46dd +.jumptable: ; e467f + dw PlaceGameFreakPresents_0 + dw PlaceGameFreakPresents_1 + dw PlaceGameFreakPresents_2 + dw PlaceGameFreakPresents_3 ; e4687 -Functione4687: ; e4687 +PlaceGameFreakPresents_AdvanceIndex: ; e4687 ld hl, wJumptableIndex inc [hl] ret ; e468c -Functione468c: ; e468c +PlaceGameFreakPresents_0: ; e468c ret ; e468d -Functione468d: ; e468d +PlaceGameFreakPresents_1: ; e468d ld hl, wcf65 ld a, [hl] cp $20 - jr nc, .asm_e4697 + jr nc, .PlaceGameFreak inc [hl] ret -.asm_e4697 +.PlaceGameFreak ld [hl], 0 ld hl, .GAME_FREAK decoord 5, 10 ld bc, .end - .GAME_FREAK call CopyBytes - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex ld de, SFX_GAME_FREAK_PRESENTS call PlaySFX ret @@ -65282,21 +64338,21 @@ Functione468d: ; e468d db "@" ; e46ba -Functione46ba: ; e46ba +PlaceGameFreakPresents_2: ; e46ba ld hl, wcf65 ld a, [hl] cp $40 - jr nc, .asm_e46c4 + jr nc, .place_presents inc [hl] ret -.asm_e46c4 +.place_presents ld [hl], 0 ld hl, .presents decoord 7,11 ld bc, .end - .presents call CopyBytes - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex ret ; e46d6 @@ -65306,15 +64362,15 @@ Functione46ba: ; e46ba db "@" ; e46dd -Functione46dd: ; e46dd +PlaceGameFreakPresents_3: ; e46dd ld hl, wcf65 ld a, [hl] cp $80 - jr nc, .asm_e46e7 + jr nc, .finish inc [hl] ret -.asm_e46e7 +.finish ld hl, wJumptableIndex set 7, [hl] ret @@ -65446,7 +64502,7 @@ endr ld hl, $b add hl, bc inc [hl] - call Functione4687 + call PlaceGameFreakPresents_AdvanceIndex GameFreakLogoScene5: ; e47ab (39:47ab) ret @@ -66464,7 +65520,7 @@ IntroScene20: ; e5019 (39:5019) IntroScene21: ; e505d (39:505d) ; Suicune gets more distant and turns black. call Functione5451 - ld c, $3 + ld c, 3 call DelayFrames xor a ld [hBGMapMode], a @@ -66977,11 +66033,11 @@ Functione541b: ; e541b (39:541b) push af ld a, $6 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, w6_d000 decoord 0, 0 - ld b, $12 + ld b, SCREEN_HEIGHT .asm_e542a - ld c, $14 + ld c, SCREEN_WIDTH .asm_e542c ld a, [hli] ld [de], a @@ -67091,10 +66147,10 @@ Functione54c2: ; e54c2 (39:54c2) ld a, $6 ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $180 call Request2bpp pop af @@ -67107,10 +66163,10 @@ Functione54de: ; e54de (39:54de) ld a, $6 ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $1ff call Request2bpp pop af @@ -67123,10 +66179,10 @@ Functione54fa: ; e54fa (39:54fa) ld a, $6 ld [rSVBK], a push de - ld de, Unkn1Pals + ld de, w6_d000 call Decompress pop hl - ld de, Unkn1Pals + ld de, w6_d000 ld bc, $140 call Request2bpp pop af @@ -69715,7 +68771,7 @@ Function1040da: ; 1040da ld [rVBK], a ld a, $3 ld [rSVBK], a - ld de, $d800 + ld de, w3_d800 ld a, [hBGMapAddress + 1] ld [rHDMA1], a ld a, [hBGMapAddress] @@ -69740,7 +68796,7 @@ Function104101: ; 104101 ld [rVBK], a ld a, $3 ld [rSVBK], a - ld hl, $d800 + ld hl, w3_d800 call Function10419d ret ; 104110 @@ -70434,7 +69490,7 @@ LoadMapTimeOfDay: ; 104750 ld [wc2ce], a callba Function8c0e5 callba Function8c001 - call Function2173 + call OverworldTextModeSwitch call Function104770 call Function1047a3 ret @@ -72040,7 +71096,7 @@ Function105688: ; 105688 (41:5688) cp $6c jp nz, Function10571a call Function1056eb - ld c, $3c + ld c, 60 call DelayFrames call Function105777 ld hl, Text_10575e @@ -72078,7 +71134,7 @@ endr dec c ret z push bc - ld c, $4 + ld c, 4 call DelayFrames pop bc jr .asm_1056ed diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index 0abe8637c..c04f933fe 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -828,7 +828,7 @@ Function8b7bd: ; 8b7bd call Function8b75d call UpdateSprites call Function89209 - call Function350c + call HandleScrollingMenu call Function8920f ld a, [wcf73] cp $2 diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 7589725da..5f41f9332 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -86,7 +86,7 @@ Function100082: ; 100082 ld [hMapAnims], a ld [hLCDStatCustom], a ld a, $1 - ld [$ffc9], a + ld [hFFC9], a ld [hMobile], a ei ret @@ -95,7 +95,7 @@ Function100082: ; 100082 Function1000a4: ; 1000a4 di xor a - ld [$ffc9], a + ld [hFFC9], a ld [hMobile], a xor a ld [hVBlank], a @@ -168,7 +168,7 @@ Function1000fa: ; 1000fa and $13 ld [rIE], a xor a - ld [$ffc9], a + ld [hFFC9], a ld [hMobile], a ei ld a, [wLinkMode] @@ -176,7 +176,7 @@ Function1000fa: ; 1000fa xor a ld [wLinkMode], a ld a, $4 - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a callba Function11619d ld hl, wcd29 set 6, [hl] @@ -4393,7 +4393,7 @@ Function101cc2: ; 101cc2 ; unreferenced Function101cc8: ; 101cc8 ld a, $1 - ld [wPartyMonMenuIconAnims], a + ld [wc314], a ld a, $1 ld [wc30d], a ld hl, wcd29 @@ -4406,7 +4406,7 @@ Function101cc8: ; 101cc8 Function101cdf: ; 101cdf ld a, $6 - ld [wPartyMonMenuIconAnims], a + ld [wc314], a ld a, $1 ld [wc30d], a ld hl, wcd29 @@ -4419,7 +4419,7 @@ Function101cdf: ; 101cdf Function101cf6: ; 101cf6 ld a, $b - ld [wPartyMonMenuIconAnims + 1], a + ld [wc314 + 1], a ld a, [wcd25] inc a ld [wcd25], a @@ -4428,7 +4428,7 @@ Function101cf6: ; 101cf6 Function101d03: ; 101d03 ld a, $e - ld [wPartyMonMenuIconAnims + 1], a + ld [wc314 + 1], a ld a, [wcd25] inc a ld [wcd25], a diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 193baee00..3055ca988 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -5588,14 +5588,14 @@ INCBIN "gfx/unknown/11601a.2bpp" Function11615a: ; 11615a xor a ld [wc30d], a - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld [wc310], a ld [wc311], a ld [wc312], a ld [wc313], a - ld [wPartyMonMenuIconAnims], a - ld [wPartyMonMenuIconAnims + 1], a - ld [wPartyMonMenuIconAnims + 4], a + ld [wc314], a + ld [wc314 + 1], a + ld [wc314 + 4], a ld [wc3f6], a ld [wc3f8], a ld [wc3f2], a @@ -5617,7 +5617,7 @@ Function11619d: ; 11619d ld a, [wc30d] and a ret z - ld a, [wPartyMonMenuIconAnims + 5] + ld a, [wc314 + 5] cp $2 jr c, .asm_1161b4 ld a, $a0 @@ -5631,7 +5631,7 @@ Function11619d: ; 11619d ; 1161b8 Function1161b8: ; 1161b8 - ld a, [wPartyMonMenuIconAnims + 5] + ld a, [wc314 + 5] ld e, a ld d, 0 ld hl, Jumptable_1161c7 @@ -5758,9 +5758,9 @@ Function1161d5: ; 1161d5 ld [wc2a9], a ld a, d ld [wc2aa], a - ld a, [wPartyMonMenuIconAnims + 5] + ld a, [wc314 + 5] inc a - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ret ; 11628c @@ -5774,15 +5774,15 @@ MenuDataHeader_11628c: ; 11628c Function116294: ; 116294 callba Function170d02 - ld a, [wPartyMonMenuIconAnims + 5] + ld a, [wc314 + 5] inc a - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld a, [rSVBK] push af ld a, $5 ld [rSVBK], a ld hl, wd030 - ld de, wPartyMonMenuIconAnims + 12 + ld de, wc314 + 12 ld bc, $0010 call CopyBytes ld hl, Palette_11734e @@ -5799,9 +5799,9 @@ Function116294: ; 116294 Function1162cb: ; 1162cb callba Function170cc6 - ld a, [wPartyMonMenuIconAnims + 5] + ld a, [wc314 + 5] inc a - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld a, [rSVBK] push af ld a, $5 @@ -5838,7 +5838,7 @@ Function1162f2: ; 1162f2 ld c, a ld a, [wc30f] ld b, a - ld a, [wPartyMonMenuIconAnims + 4] + ld a, [wc314 + 4] ld e, a ld a, [hli] sub e @@ -5939,7 +5939,7 @@ Function11636e: ; 11636e xor a ld [wc2aa], a xor a - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld [wc30d], a ret ; 1163c0 @@ -5961,7 +5961,7 @@ Function1163c0: ; 1163c0 push af ld a, $5 ld [rSVBK], a - ld hl, wPartyMonMenuIconAnims + 12 + ld hl, wc314 + 12 ld de, wd030 ld bc, $0010 call CopyBytes @@ -5997,7 +5997,7 @@ Function1163c0: ; 1163c0 .asm_116439 xor a - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld [wc30d], a ret ; 116441 @@ -6014,14 +6014,14 @@ Function116441: ; 116441 xor a ld [wc2aa], a xor a - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld [wc30d], a ret ; 116468 Function116468: ; 116468 call Function116567 - ld a, [wPartyMonMenuIconAnims] + ld a, [wc314] cp $d jr nz, .asm_1164a8 ld hl, wc30e @@ -6213,7 +6213,7 @@ Function116567: ; 116567 ; 11659d Function11659d: ; 11659d - ld a, [wPartyMonMenuIconAnims] + ld a, [wc314] cp $12 ret nc ld e, a @@ -6289,7 +6289,7 @@ Function116600: call Function116780 ret c ld a, $2 - ld [wPartyMonMenuIconAnims], a + ld [wc314], a ret ; 116615 @@ -6332,24 +6332,24 @@ Function116640: call Function116780 ret c ld a, $7 - ld [wPartyMonMenuIconAnims], a + ld [wc314], a ret ; 116655 Function116655: ; 116655 xor a - ld [wPartyMonMenuIconAnims + 3], a + ld [wc314 + 3], a call Function11678e Function11665c: - ld hl, wPartyMonMenuIconAnims + 3 + ld hl, wc314 + 3 ld a, $1 xor [hl] ld [hl], a add $4 ld c, a call Function11679c - ld a, [wPartyMonMenuIconAnims + 3] + ld a, [wc314 + 3] and a jr nz, .asm_116673 ld a, $48 @@ -6378,7 +6378,7 @@ Function11668d: call Function116780 ret c ld a, $c - ld [wPartyMonMenuIconAnims], a + ld [wc314], a ret ; 11669f @@ -6393,9 +6393,9 @@ Function1166a2: ld [wc30f], a ld [wc3f3], a ld a, $ff - ld [wPartyMonMenuIconAnims + 2], a + ld [wc314 + 2], a xor a - ld [wPartyMonMenuIconAnims + 3], a + ld [wc314 + 3], a ld a, $0 ld c, a call Function11679c @@ -6417,25 +6417,25 @@ Function1166d6: cp $48 jr nz, .asm_1166e4 xor a - ld [wPartyMonMenuIconAnims + 2], a + ld [wc314 + 2], a .asm_1166e4 ld a, [wc311] cp $ff ret nz ld a, $4 - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a xor a - ld [wPartyMonMenuIconAnims], a + ld [wc314], a ret ; 1166f4 Function1166f4: ; 1166f4 ld [wc30e], a ld a, b - ld [wPartyMonMenuIconAnims + 2], a + ld [wc314 + 2], a xor a - ld [wPartyMonMenuIconAnims + 3], a + ld [wc314 + 3], a ld hl, wc30f .asm_116702 call Random @@ -6460,9 +6460,9 @@ Function1166f4: ; 1166f4 Function11671f: ; 11671f ld [wc30f], a ld a, b - ld [wPartyMonMenuIconAnims + 3], a + ld [wc314 + 3], a xor a - ld [wPartyMonMenuIconAnims + 2], a + ld [wc314 + 2], a ld hl, wc30e .asm_11672d call Random @@ -6482,11 +6482,11 @@ Function11671f: ; 11671f Function116747: ; 116747 ld hl, wc30e - ld a, [wPartyMonMenuIconAnims + 2] + ld a, [wc314 + 2] add [hl] ld [hl], a ld hl, wc30f - ld a, [wPartyMonMenuIconAnims + 3] + ld a, [wc314 + 3] add [hl] ld [hl], a ret @@ -6518,7 +6518,7 @@ Function116758: ; 116758 ld a, $4 .asm_11677a - ld [wPartyMonMenuIconAnims + 4], a + ld [wc314 + 4], a ret ; 11677e @@ -6526,11 +6526,11 @@ Function11677e: ; 11677e ld a, $0 Function116780: - ld hl, wPartyMonMenuIconAnims + 1 + ld hl, wc314 + 1 cp [hl] jr z, .asm_11678c ld a, [hl] - ld [wPartyMonMenuIconAnims], a + ld [wc314], a scf ret @@ -6540,15 +6540,15 @@ Function116780: ; 11678e Function11678e: ; 11678e - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 ld a, [hl] - ld [wPartyMonMenuIconAnims + 1], a + ld [wc314 + 1], a inc [hl] ret ; 116797 Function116797: ; 116797 - ld hl, wPartyMonMenuIconAnims + ld hl, wc314 inc [hl] ret ; 11679c diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 185431a67..b869e2f8f 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -467,7 +467,7 @@ Function1183cb: ; 1183cb ld [wcd66], a ld [wcd67], a ld [wcd68], a - ld [wPartyMonMenuIconAnims + 6], a + ld [wc314 + 6], a ld [wcd89], a ld [wcd8a], a ld [wcd8b], a @@ -1056,7 +1056,7 @@ Function11878d: ; 11878d (46:478d) ld a, $a call Function3e32 ld a, [wc3f0] - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld a, [wcd34] ld [wcf66], a ret @@ -1100,13 +1100,13 @@ Function118805: ; 118805 (46:4805) ld a, $a call Function3e32 ld a, [wc3f0] - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld a, [wcd34] ld [wcf66], a ret Function118821: ; 118821 (46:4821) - ld a, [wPartyMonMenuIconAnims + 5] + ld a, [wc314 + 5] cp $3 jr c, .asm_11884a cp $4 @@ -1119,7 +1119,7 @@ Function118821: ; 118821 (46:4821) ld a, $a ld [wc300], a ld a, [wc3f0] - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld a, [wcd34] ld [wcf66], a scf @@ -1198,7 +1198,7 @@ Function118896: ; 118896 ; 1188b0 Function1188b0: ; 1188b0 (46:48b0) - ld de, wPartyMonMenuIconAnims + 48 + 2 + ld de, wc314 + 48 + 2 ld a, $c jp Function119e2b @@ -1230,7 +1230,7 @@ Function1188c8: ; 1188c8 (46:48c8) jp Function119e2b Function1188e7: ; 1188e7 (46:48e7) - ld de, wPartyMonMenuIconAnims + 48 + 2 + ld de, wc314 + 48 + 2 ld a, $5 call GetSRAMBank ld a, [$aa4a] @@ -1250,7 +1250,7 @@ Function1188e7: ; 1188e7 (46:48e7) Function118903: ; 118903 (46:4903) ld a, [wc3f0] - ld [wPartyMonMenuIconAnims + 5], a + ld [wc314 + 5], a ld c, $1 callba Function115e18 ld a, $8 @@ -1279,7 +1279,7 @@ Function118922: ; 118922 call Function119e2e Function118936: - ld a, [wPartyMonMenuIconAnims + 6] + ld a, [wc314 + 6] and a ret nz ld hl, MenuDataHeader_119cf7 @@ -1562,7 +1562,7 @@ Function118b10: jp Function119e2b Function118b24: ; 118b24 (46:4b24) - ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld hl, wc314 + 48 + 2 ld a, $8 ld [hli], a ld a, $c7 @@ -1575,7 +1575,7 @@ Function118b24: ; 118b24 (46:4b24) call Function119ec2 ld a, $80 ld [wcd89], a - ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld hl, wc314 + 48 + 2 ret ; 118b42 (46:4b42) @@ -1910,22 +1910,22 @@ Function118ec6: ; 118ec6 call Function118440 call SpeechTextBox ld hl, $d80e - ld de, wPartyMonMenuIconAnims + 12 + ld de, wc314 + 12 ld bc, $0026 call CopyBytes xor a - ld [wPartyMonMenuIconAnims + 11], a + ld [wc314 + 11], a ld a, $20 - ld [wPartyMonMenuIconAnims + 7], a + ld [wc314 + 7], a ld a, $c3 - ld [wPartyMonMenuIconAnims + 8], a + ld [wc314 + 8], a hlcoord 1, 14 ld a, l - ld [wPartyMonMenuIconAnims + 9], a + ld [wc314 + 9], a ld a, h - ld [wPartyMonMenuIconAnims + 10], a + ld [wc314 + 10], a ld a, $2 - ld [wPartyMonMenuIconAnims + 6], a + ld [wc314 + 6], a ld a, $1d ld [wcd3c], a ld a, $24 @@ -1998,7 +1998,7 @@ Function118f68: ld a, [wcc60] and a jr z, .asm_118fba - ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld hl, wc314 + 48 + 2 ld a, $c608 % $100 ld [hli], a ld a, $c608 / $100 @@ -2019,7 +2019,7 @@ Function118f68: call Function119ec2 ld a, $40 ld [wcd89], a - ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld hl, wc314 + 48 + 2 ld de, $de00 ld bc, $0200 ld a, $2c @@ -2079,7 +2079,7 @@ Function119009: ld de, wcc60 call Function1191ad ret c - ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld hl, wc314 + 48 + 2 ld a, $8 ld [hli], a ld a, $c6 @@ -2100,7 +2100,7 @@ Function119009: call Function119ec2 ld a, $40 ld [wcd89], a - ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld hl, wc314 + 48 + 2 ld de, Unkn1Pals ld bc, $1000 ld a, $2c @@ -2627,7 +2627,7 @@ Function1193a0: ld a, $8 ld [wcd3c], a call Function119ed8 - ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld hl, wc314 + 48 + 2 ld a, wd000 % $100 ld [hli], a ld a, wd000 / $100 @@ -2648,7 +2648,7 @@ Function1193a0: call Function119ec2 ld a, $40 ld [wcd89], a - ld hl, wPartyMonMenuIconAnims + 48 + 2 + ld hl, wc314 + 48 + 2 ld de, $de00 ld bc, $0200 ld a, $2c @@ -3450,7 +3450,7 @@ Function1198ee: ; 1198ee call Function119e2e Function1198f7: - ld a, [wPartyMonMenuIconAnims + 6] + ld a, [wc314 + 6] and a ret nz ld hl, $c608 + 2 @@ -3996,7 +3996,7 @@ Function119ca2: call Function119e2e Function119cab: - ld a, [wPartyMonMenuIconAnims + 6] + ld a, [wc314 + 6] and a ret nz ld a, $80 @@ -4033,7 +4033,7 @@ Function119cc3: ; 119cc3 call Function119e2e Function119cdf: - ld a, [wPartyMonMenuIconAnims + 6] + ld a, [wc314 + 6] and a ret nz ld a, $f @@ -4479,7 +4479,7 @@ Function119f98: ; 119f98 ld a, $1 ld [wc30d], a ld a, $1 - ld [wPartyMonMenuIconAnims], a + ld [wc314], a callba Function104061 and a ret @@ -4661,7 +4661,7 @@ Function11a16d: ; 11a16d call Function11a63c call Function11a1e6 hlcoord 4, 2 - ld de, wPartyMonMenuIconAnims + 48 + 2 + ld de, wc314 + 48 + 2 call PlaceString call Function11a5f5 xor a @@ -4715,7 +4715,7 @@ Function11a1d6: ; 11a1d6 Function11a1e6: ; 11a1e6 ld hl, String_11a706 - ld de, wPartyMonMenuIconAnims + 48 + 2 + ld de, wc314 + 48 + 2 call Function11a1ff ld hl, wcd85 call Function11a1ff @@ -5541,7 +5541,7 @@ endr ; 11a8fa Function11a8fa: ; 11a8fa - ld a, [wPartyMonMenuIconAnims + 6] + ld a, [wc314 + 6] ld e, a ld d, 0 ld hl, Jumptable_11a909 @@ -5565,14 +5565,14 @@ Function11a90f: ; 11a90f ld [rSVBK], a call SpeechTextBox ld a, $50 - ld hl, wPartyMonMenuIconAnims + 12 + ld hl, wc314 + 12 ld bc, $008c call ByteFill - ld a, [wPartyMonMenuIconAnims + 7] + ld a, [wc314 + 7] ld l, a - ld a, [wPartyMonMenuIconAnims + 8] + ld a, [wc314 + 8] ld h, a - ld de, wPartyMonMenuIconAnims + 12 + ld de, wc314 + 12 .asm_11a92c ld a, [hli] cp $57 @@ -5603,17 +5603,17 @@ Function11a90f: ; 11a90f .asm_11a94f xor a - ld [wPartyMonMenuIconAnims + 11], a + ld [wc314 + 11], a ld a, $20 - ld [wPartyMonMenuIconAnims + 7], a + ld [wc314 + 7], a ld a, $c3 - ld [wPartyMonMenuIconAnims + 8], a + ld [wc314 + 8], a hlcoord 1, 14 ld a, l - ld [wPartyMonMenuIconAnims + 9], a + ld [wc314 + 9], a ld a, h - ld [wPartyMonMenuIconAnims + 10], a - ld hl, wPartyMonMenuIconAnims + 6 + ld [wc314 + 10], a + ld hl, wc314 + 6 inc [hl] ld a, $3 ld [rSVBK], a @@ -5623,7 +5623,7 @@ Function11a970: ; 11a971 Function11a971: ; 11a971 - ld hl, wPartyMonMenuIconAnims + 11 + ld hl, wc314 + 11 ld a, [hJoyDown] and a jr nz, .asm_11a97f @@ -5638,34 +5638,34 @@ Function11a971: ; 11a971 and $7 ld [hl], a ld hl, wcd8d - ld a, [wPartyMonMenuIconAnims + 7] + ld a, [wc314 + 7] ld e, a - ld a, [wPartyMonMenuIconAnims + 8] + ld a, [wc314 + 8] ld d, a ld a, [de] inc de ld [hli], a ld a, e - ld [wPartyMonMenuIconAnims + 7], a + ld [wc314 + 7], a ld a, d - ld [wPartyMonMenuIconAnims + 8], a + ld [wc314 + 8], a ld a, $50 ld [hl], a - ld a, [wPartyMonMenuIconAnims + 9] + ld a, [wc314 + 9] ld l, a - ld a, [wPartyMonMenuIconAnims + 10] + ld a, [wc314 + 10] ld h, a ld de, wcd8d call PlaceString ld a, c - ld [wPartyMonMenuIconAnims + 9], a + ld [wc314 + 9], a ld a, b - ld [wPartyMonMenuIconAnims + 10], a + ld [wc314 + 10], a ld a, [wcd8d] cp $50 jr nz, .asm_11a9bf xor a - ld [wPartyMonMenuIconAnims + 6], a + ld [wc314 + 6], a .asm_11a9bf ret @@ -5673,11 +5673,11 @@ Function11a971: ; 11a971 Function11a9c0: ; 11a9c0 ld a, l - ld [wPartyMonMenuIconAnims + 7], a + ld [wc314 + 7], a ld a, h - ld [wPartyMonMenuIconAnims + 8], a + ld [wc314 + 8], a ld a, $1 - ld [wPartyMonMenuIconAnims + 6], a + ld [wc314 + 6], a ret ; 11a9ce diff --git a/wram.asm b/wram.asm index 82df3c467..fb8e50725 100644 --- a/wram.asm +++ b/wram.asm @@ -355,6 +355,11 @@ TilePermissions:: ; c2fe ds 1 ds 1 + +SECTION "PARTY ICONS", WRAM0 [$c300] +; wc300 - wc313 is a 10x2 dictionary. +wDict_c300:: ds 10 * 2 + ds wDict_c300 - @ wc300:: ds 1 wc301:: ds 1 wc302:: ds 1 @@ -374,11 +379,22 @@ wc310:: ds 1 wc311:: ds 1 wc312:: ds 1 wc313:: ds 1 -wPartyMonMenuIconAnims:: ds 96 ; c314 -wc374:: ds 48 ; c374 -wc3a4:: ds 8 ; c3b4 -wc3ac:: ds 8 ; c3bc -wc3b4:: ds 1 ; c3b4 +; wPartyMonMenuIconAnims:: +; Field 0: Index +; Fields 1-3: Loaded from Unknown_8d1c4 +wc314:: ds 16 ; c314 +wc324:: ds 16 ; c324 +wc334:: ds 16 ; c334 +wc344:: ds 16 ; c344 +wc354:: ds 16 ; c354 +wc364:: ds 16 ; c364 +wc374:: ds 16 ; c374 +wc384:: ds 16 ; c384 +wc394:: ds 16 ; c394 +wc3a4:: ds 8 ; c3a4 +wc3ac:: ds 8 ; c3ac +; wPartyMonMenuIconAnimsEnd:: +wc3b4:: ds 1 ; something to do with wc314 wc3b5:: ds 1 CurIcon:: ; c3b6 @@ -386,8 +402,7 @@ CurIcon:: ; c3b6 wc3b7:: ds 1 -wc3b8:: ds 1 -wc3b9:: ds 1 +wc3b8:: dw wc3ba:: ds 1 wc3bb:: ds 1 wc3bc:: ds 1 @@ -1409,6 +1424,7 @@ PhoneScriptBank:: LuckyNumberDigit1Buffer:: wCurrentRadioLine:: wMovementBufferCount:: +wMartItem1BCD:: ds 1 wd003:: LuckyNumberDigit2Buffer:: @@ -1425,6 +1441,7 @@ wd005:: LuckyNumberDigit4Buffer:: StartFlypoint:: ; d005 wNumRadioLinesPrinted:: +wMartItem2BCD:: ds 1 wd006:: LuckyNumberDigit5Buffer:: @@ -1436,8 +1453,10 @@ wd007:: MovementBuffer:: ; d007 ds 1 +wMartItem3BCD:: wd008:: ds 2 wd00a:: ds 1 +wMartItem4BCD:: wd00b:: ds 1 wRadioText:: ds 2 * SCREEN_WIDTH @@ -1446,19 +1465,26 @@ wRadioTextEnd:: wd00c:: ds 1 wd00d:: ds 1 +wMartItem5BCD:: wd00e:: ds 1 wd00f:: ds 1 wd010:: ds 1 +wMartItem6BCD:: wd011:: ds 1 wd012:: ds 1 wd013:: ds 1 +wMartItem7BCD:: wd014:: ds 2 wd016:: ds 1 +wMartItem8BCD:: wd017:: ds 1 wd018:: ds 1 wd019:: ds 1 -wd01a:: ds 5 +wMartItem9BCD:: +wd01a:: ds 3 +wMartItem10BCD:: ds 2 wd01f:: ds 1 +wMartItemBCDEnd:: wd020:: ds 3 wd023:: ds 5 wd028:: ds 2 @@ -1502,6 +1528,7 @@ MovementAnimation:: ; d042 wTempTrainerClass:: WalkingDirection:: ; d043 +wBargainShopFlags:: ds 1 wTempTrainerID:: @@ -1509,7 +1536,8 @@ FacingDirection:: ; d044 ds 1 wSeenTextPointer:: -WalkingX:: ; d045 +WalkingX:: +wd045:: ; d045 ds 1 WalkingY:: ; d046 ds 1 @@ -1588,7 +1616,7 @@ CurMart:: ; d0f0 ds 1 wd0f1:: ds 1 wd0f2:: ds 14 - +CurMartEnd:: wd100:: ds 1 wd101:: ds 1 @@ -1601,6 +1629,7 @@ CurItem:: ; d106 ds 1 ItemCountBuffer:: ; d107 +wMartItemID:: wd107:: ds 1 CurPartySpecies:: ; d108 -- cgit v1.2.3 From 91068077f05afbbfd6571ceadada2c03ac7c8038 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 11 Nov 2015 16:11:08 -0500 Subject: Further split bank 4 --- battle/core.asm | 14 +- battle/effect_commands.asm | 6 +- constants/script_constants.asm | 2 +- engine/breeding/egg.asm | 4 +- engine/clock_reset.asm | 2 +- engine/events.asm | 2 +- engine/evolution_animation.asm | 2 +- engine/healmachineanim.asm | 266 ++ engine/link.asm | 2 +- engine/mart.asm | 34 +- engine/namingscreen.asm | 959 +++++++ engine/save.asm | 2 +- engine/scripting.asm | 8 +- engine/selectmenu.asm | 191 ++ engine/specials.asm | 2 +- engine/startmenu.asm | 1970 ++++++++++++++ engine/tmhm.asm | 113 + event/bug_contest_2.asm | 136 + event/bug_contest_judging.asm | 480 ++++ event/elevator.asm | 287 ++ event/forced_movement.asm | 68 + event/itemball.asm | 54 + event/itemfinder.asm | 58 + event/kurt.asm | 2 +- event/mom.asm | 6 +- event/move_deleter.asm | 2 +- event/whiteout.asm | 84 + home.asm | 4 +- home/map.asm | 2 +- home/menu.asm | 2 +- items/item_effects.asm | 4 +- macros/charmap.asm | 2 + main.asm | 5479 ++------------------------------------ maps/Route35NationalParkgate.asm | 4 +- maps/Route36NationalParkgate.asm | 4 +- misc/crystal_misc.asm | 2 +- misc/mobile_22.asm | 10 +- misc/mobile_40.asm | 4 +- misc/mobile_5b.asm | 4 +- unknown/013a47.asm | 230 ++ wram.asm | 6 +- 41 files changed, 5261 insertions(+), 5252 deletions(-) create mode 100755 engine/healmachineanim.asm create mode 100755 engine/namingscreen.asm create mode 100755 engine/selectmenu.asm create mode 100755 engine/startmenu.asm create mode 100755 engine/tmhm.asm create mode 100755 event/bug_contest_2.asm create mode 100755 event/bug_contest_judging.asm create mode 100755 event/elevator.asm create mode 100755 event/forced_movement.asm create mode 100755 event/itemball.asm create mode 100755 event/itemfinder.asm create mode 100755 event/whiteout.asm create mode 100755 unknown/013a47.asm diff --git a/battle/core.asm b/battle/core.asm index ab7e31f08..0a6e9e0f5 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2889,7 +2889,7 @@ AskUseNextPokemon: ; 3d1f8 ForcePlayerMonChoice: ; 3d227 call EmptyBattleTextBox - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function3d2f7 call ForcePickPartyMonInBattle ld a, [wLinkMode] @@ -2996,7 +2996,7 @@ IsMobileBattle: ; 3d2f1 Function3d2f7: ; 3d2f7 call WhiteBGMap -Function3d2fa: ; 3d2fa +Function3d2fa: ; switch to fullscreen menu? callba Function5004f callba Function50405 callba Function8e85 @@ -3415,7 +3415,7 @@ ResetEnemyBattleVars: ; 3d557 ld a, $8 call Function3d490 call EmptyBattleTextBox - jp LoadPartyMenuDataHeader + jp LoadStandardMenuDataHeader ; 3d57a ResetBattleParticipants: ; 3d57a @@ -5233,7 +5233,7 @@ BattleMenu_Pack: ; 3e1c7 and a jp nz, ItemsCantBeUsed - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld a, [BattleType] cp BATTLETYPE_TUTORIAL @@ -5328,10 +5328,10 @@ Function3e234: ; 3e234 ; 3e28d BattleMenu_PKMN: ; 3e28d - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader Function3e290: call ExitMenu - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call WhiteBGMap Function3e299: call Function3d2fa @@ -5467,7 +5467,7 @@ PlayerSwitch: ; 3e3ad ld a, [wLinkMode] and a jr z, .not_linked - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function3e8e4 call WriteBackup diff --git a/battle/effect_commands.asm b/battle/effect_commands.asm index 5bfb92712..38a00bb73 100644 --- a/battle/effect_commands.asm +++ b/battle/effect_commands.asm @@ -8953,7 +8953,7 @@ BattleCommand_BatonPass: ; 379c9 call DelayFrames ; Transition into switchmon menu - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Function3d2f7 callba ForcePickSwitchMonInBattle @@ -9027,7 +9027,7 @@ BatonPass_LinkPlayerSwitch: ; 37a67 ld a, 1 ld [wd0ec], a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, Function3e8e4 call CallBattleCore call WriteBackup @@ -9043,7 +9043,7 @@ BatonPass_LinkEnemySwitch: ; 37a82 and a ret z - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, Function3e8e4 call CallBattleCore diff --git a/constants/script_constants.asm b/constants/script_constants.asm index 5cda66d02..c734867ea 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -45,7 +45,7 @@ const_value SET -1 const PLAYEREVENT_4 const PLAYEREVENT_WARP const PLAYEREVENT_FALL - const PLAYEREVENT_7 + const PLAYEREVENT_WHITEOUT const PLAYEREVENT_HATCH const PLAYEREVENT_9 NUM_PLAYER_EVENTS EQU const_value diff --git a/engine/breeding/egg.asm b/engine/breeding/egg.asm index 2a2fac5e7..7c4d8ba62 100755 --- a/engine/breeding/egg.asm +++ b/engine/breeding/egg.asm @@ -190,7 +190,7 @@ DoEggStep:: ; 16f3e OverworldHatchEgg:: ; 16f5e call ResetWindow - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function16f70 call Function2b4d call RestartMapMusic @@ -324,7 +324,7 @@ Function16f7a: ; 16f7a (5:6f7a) ld [MonType], a push de ld b, $0 - callba Function116c1 + callba NamingScreen pop hl ld de, StringBuffer1 call InitName diff --git a/engine/clock_reset.asm b/engine/clock_reset.asm index d9d8f3567..e51db6249 100755 --- a/engine/clock_reset.asm +++ b/engine/clock_reset.asm @@ -38,7 +38,7 @@ RestartClock: ; 20021 (8:4021) ld a, [hl] push af set NO_TEXT_SCROLL, [hl] - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call ClearTileMap ld hl, .Text_SetWithControlPad call PrintText diff --git a/engine/events.asm b/engine/events.asm index 344063aab..ff2f55dbe 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -1078,7 +1078,7 @@ PlayerEventScriptPointers: ; 96c0c dba UnknownScript_0x96c4d ; 4 dba WarpToNewMapScript ; 5 dba FallIntoMapScript ; 6 - dba UnknownScript_0x124c8 ; 7 + dba Script_OverworldWhiteout ; 7 dba HatchEggScript ; 8 dba UnknownScript_0x96c4f ; 9 dba Invalid_0x96c2d ; 10 diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm index 37f51932d..85bc8c5a8 100755 --- a/engine/evolution_animation.asm +++ b/engine/evolution_animation.asm @@ -161,7 +161,7 @@ Function4e703: ; 4e703 Function4e708: ; 4e708 call GetBaseData hlcoord 7, 2 - jp Function3786 + jp PrepMonFrontpic ; 4e711 Function4e711: ; 4e711 diff --git a/engine/healmachineanim.asm b/engine/healmachineanim.asm new file mode 100755 index 000000000..174d1ae5a --- /dev/null +++ b/engine/healmachineanim.asm @@ -0,0 +1,266 @@ +HealMachineAnim: ; 12324 + ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon. + ld a, [PartyCount] + and a + ret z + ; The location of the healing machine relative to the player is stored in ScriptVar. + ; 0: Up and left (Pokemon Center) + ; 1: Left (Elm's Lab) + ; 2: Up (Hall of Fame) + ld a, [ScriptVar] + ld [Buffer1], a + ld a, [rOBP1] + ld [Buffer2], a + call .DoJumptableFunctions + ld a, [Buffer2] + call Functiond24 + ret +; 1233e + +.DoJumptableFunctions: ; 1233e + xor a + ld [wd1ec], a +.jumpable_loop + ld a, [Buffer1] + ld e, a + ld d, 0 + ld hl, .Pointers +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wd1ec] + ld e, a + inc a + ld [wd1ec], a + add hl, de + ld a, [hl] + cp 5 + jr z, .finish + ld hl, .Jumptable + rst JumpTable + jr .jumpable_loop + +.finish + ret +; 12365 + +.Pointers: ; 12365 + dw .Pokecenter + dw .ElmLab + dw .HallOfFame +; 1236b + +.Pokecenter: ; 1236b + db 0, 1, 3, 5 +.ElmLab: ; 1236f + db 0, 1, 3, 5 +.HallOfFame: ; 12373 + db 0, 2, 4, 5 +; 12377 + +.Jumptable: ; 12377 + dw .LoadGFX + dw .PC_LoadBallsOntoMachine + dw .HOF_LoadBallsOntoMachine + dw .PlayHealMusic + dw .HOF_PlaySFX + dw .dummy_5 ; never encountered +; 12383 + +.LoadGFX: ; 12383 + call .LoadPalettes + ld de, .HealMachineGFX + ld hl, VTiles0 tile $7c + lb bc, BANK(.HealMachineGFX), $2 + call Request2bpp + ret +; 12393 + +.PC_LoadBallsOntoMachine: ; 12393 + ld hl, Sprites + $80 + ld de, .PC_ElmsLab_TileMap + call .PlaceHealingMachineTile + call .PlaceHealingMachineTile + jr .LoadBallsOntoMachine + +.HOF_LoadBallsOntoMachine: ; 123a1 + ld hl, Sprites + $80 + ld de, .HOF_TileMap + +.LoadBallsOntoMachine: ; 123a7 + ld a, [PartyCount] + ld b, a +.party_loop + call .PlaceHealingMachineTile + push de + ld de, SFX_SECOND_PART_OF_ITEMFINDER + call PlaySFX + pop de + ld c, 30 + call DelayFrames + dec b + jr nz, .party_loop + ret +; 123bf + +.PlayHealMusic: ; 123bf + ld de, MUSIC_HEAL + call PlayMusic + jp .FlashPalettes8Times +; 123c8 + +.HOF_PlaySFX: ; 123c8 + ld de, SFX_GAME_FREAK_LOGO_GS + call PlaySFX + call .FlashPalettes8Times + call WaitSFX + ld de, SFX_BOOT_PC + call PlaySFX + ret +; 123db + +.dummy_5: ; 123db + ret +; 123dc + +.PC_ElmsLab_TileMap: ; 123dc + db $20, $22, $7c, $16 + db $20, $26, $7c, $16 + db $26, $20, $7d, $16 + db $26, $28, $7d, $36 + db $2b, $20, $7d, $16 + db $2b, $28, $7d, $36 + db $30, $20, $7d, $16 + db $30, $28, $7d, $36 +; 123fc + +.HealMachineGFX: ; 123fc +INCBIN "gfx/unknown/0123fc.2bpp" +; 1241c + +.HOF_TileMap: ; 1241c + db $3c, $51, $7d, $16 + db $3c, $56, $7d, $16 + db $3b, $4d, $7d, $16 + db $3b, $5a, $7d, $16 + db $39, $49, $7d, $16 + db $39, $5d, $7d, $16 +; 12434 + +.LoadPalettes: ; 12434 + call IsCGB + jr nz, .cgb + ld a, %11100000 + ld [rOBP1], a + ret + +.cgb + ld hl, .palettes + ld de, OBPals + 8 * 6 + ld bc, 8 + ld a, $5 + call FarCopyWRAM + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 12451 + +.palettes: ; 12451 + RGB 31, 31, 31 + RGB 31, 19, 10 + RGB 31, 07, 01 + RGB 00, 00, 00 +; 12459 + +.FlashPalettes8Times: ; 12459 + ld c, $8 +.palette_loop + push bc + call .FlashPalettes + ld c, 10 + call DelayFrames + pop bc + dec c + jr nz, .palette_loop + ret +; 12469 + +.FlashPalettes: ; 12469 + call IsCGB + jr nz, .go + ld a, [rOBP1] + xor %00101000 + ld [rOBP1], a + ret + +.go + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + + ld hl, OBPals + 8 * 6 + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + push de + ld c, $3 +.palette_loop_2 + ld a, [hli] + ld e, a + ld a, [hld] + ld d, a + dec hl + ld a, d + ld [hld], a + ld a, e + ld [hli], a +rept 3 + inc hl +endr + dec c + jr nz, .palette_loop_2 + pop de + dec hl + ld a, d + ld [hld], a + ld a, e + ld [hl], a + + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ret +; 124a3 + +.PlaceHealingMachineTile: ; 124a3 + push bc + ld a, [Buffer1] + lb bc, $10, $20 + cp $1 ; ElmsLab + jr z, .okay + lb bc, $00, $00 + +.okay + ld a, [de] + add c + inc de + ld [hli], a + ld a, [de] + add b + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + pop bc + ret +; 124c1 diff --git a/engine/link.asm b/engine/link.asm index 41e6abfa2..38ac235fb 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1676,7 +1676,7 @@ Function28b87: ; 28b87 ld hl, UnknownText_0x28eb8 bccoord 1, 14 call PlaceWholeStringInBoxAtOnce - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader hlcoord 10, 7 ld b, $3 ld c, $7 diff --git a/engine/mart.asm b/engine/mart.asm index 1d01c4228..2c3dac0e7 100755 --- a/engine/mart.asm +++ b/engine/mart.asm @@ -36,7 +36,7 @@ MartDialog: ; 15a61 HerbShop: ; 15a6e call FarReadMart - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, Text_HerbShop_Intro call MartTextBox call BuyMenu @@ -50,7 +50,7 @@ BargainShop: ; 15a84 ld de, BargainShopData call LoadMartPointer call ReadMart - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, Text_BargainShop_Intro call MartTextBox call BuyMenu @@ -69,7 +69,7 @@ BargainShop: ; 15a84 Pharmacist: ; 15aae call FarReadMart - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, UnknownText_0x15e90 call MartTextBox call BuyMenu @@ -90,7 +90,7 @@ RooftopSale: ; 15ac4 .ok call LoadMartPointer call ReadMart - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, Text_Mart_HowMayIHelpYou call MartTextBox call BuyMenu @@ -175,7 +175,7 @@ StandardMart: ; 15b47 ; 15b62 .HowMayIHelpYou: ; 15b62 - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, Text_Mart_HowMayIHelpYou call PrintText ld a, $1 ; top menu @@ -183,7 +183,7 @@ StandardMart: ; 15b47 ; 15b6e .TopMenu: ; 15b6e - ld hl, MenuDataHeader_0x15f88 + ld hl, MenuDataHeader_BuySell call CopyMenuDataHeader call InterpretMenu2 jr c, .quit @@ -228,7 +228,7 @@ StandardMart: ; 15b47 ; 15baf .AnythingElse: ; 15baf - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, Text_Mart_AnythingElse call PrintText ld a, $1 ; top menu @@ -472,7 +472,7 @@ endr BuyMenuLoop: ; 15cef callba Function24ae8 call UpdateSprites - ld hl, MenuDataHeader_0x15e18 + ld hl, MenuDataHeader_Buy call CopyMenuDataHeader ld a, [wd045] ld [wMenuCursorBuffer], a @@ -643,19 +643,19 @@ Text_Mart_CostsThisMuch: ; 0x15e13 db "@" ; 0x15e18 -MenuDataHeader_0x15e18: ; 0x15e18 +MenuDataHeader_Buy: ; 0x15e18 db $40 ; flags db 03, 01 ; start coords db 11, 19 ; end coords - dw MenuData2_0x15e20 + dw .menudata2 db 1 ; default option ; 0x15e20 -MenuData2_0x15e20: ; 0x15e20 - db $30 ; flags +.menudata2: ; 0x15e20 + db $30 ; pointers db 4, 8 ; rows, columns db 1 ; horizontal spacing - dbw 0, OBPals + 8 * 6 + dbw 0, CurMart dba PlaceMenuItemName dba .PrintBCDPrices dba Function244c3 @@ -929,16 +929,16 @@ Text_Mart_HowMayIHelpYou: ; 0x15f83 db "@" ; 0x15f88 -MenuDataHeader_0x15f88: ; 0x15f88 +MenuDataHeader_BuySell: ; 0x15f88 db $40 ; flags db 00, 00 ; start coords db 08, 07 ; end coords - dw MenuData2_0x15f90 + dw .menudata2 db 1 ; default option ; 0x15f90 -MenuData2_0x15f90: ; 0x15f90 - db $80 ; flags +.menudata2: ; 0x15f90 + db $80 ; strings db 3 ; items db "BUY@" db "SELL@" diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm new file mode 100755 index 000000000..4618f4e20 --- /dev/null +++ b/engine/namingscreen.asm @@ -0,0 +1,959 @@ +_NamingScreen: ; 0x116b7 + call DisableSpriteUpdates + call NamingScreen + call Function2b74 + ret +; 0x116c1 + +NamingScreen: ; 116c1 + ld hl, wc6d0 + ld [hl], e + inc hl + ld [hl], d + ld hl, wc6d4 + ld [hl], b + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + ld a, [hMapAnims] + push af + xor a + ld [hMapAnims], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call Function116f8 + call DelayFrame +.asm_116e5 + call Function11915 + jr nc, .asm_116e5 + pop af + ld [hInMenu], a + pop af + ld [hMapAnims], a + pop af + ld [Options], a + call ClearJoypad + ret +; 116f8 + +Function116f8: ; 116f8 + call WhiteBGMap + ld b, $8 + call GetSGBLayout + call DisableLCD + call Function11c51 + call Function118a8 + ld a, $e3 + ld [rLCDC], a + call Function1171d + call WaitBGMap + call WaitTop + call SetPalettes + call Function11be0 + ret +; 1171d + +Function1171d: ; 1171d + ld a, [wc6d4] + and 7 + ld e, a + ld d, 0 + ld hl, Jumptable_1172e +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 1172e + + +Jumptable_1172e: ; 1172e (4:572e) + dw Function1173e + dw Function1178d + dw Function117ae + dw Function117d1 + dw Function117f5 + dw Function1182c + dw Function1173e + dw Function1173e + + +Function1173e: ; 1173e (4:573e) + ld a, [CurPartySpecies] + ld [wd265], a + ld hl, Function8e83f + ld a, BANK(Function8e83f) + ld e, $1 + rst FarCall ; ; indirect jump to Function8e83f (8e83f (23:683f)) + ld a, [CurPartySpecies] + ld [wd265], a + call GetPokemonName + hlcoord 5, 2 + call PlaceString + ld l, c + ld h, b + ld de, Strings_11780 + call PlaceString + inc de + hlcoord 5, 4 + call PlaceString + callba GetGender + jr c, .asm_1177c + ld a, $ef + jr nz, .asm_11778 + ld a, $f5 +.asm_11778 + hlcoord 1, 2 + ld [hl], a +.asm_1177c + call Function1187b + ret +; 11780 (4:5780) + +Strings_11780: ; 11780 + db "'S@" + db "NICKNAME?@" +; 1178d + +Function1178d: ; 1178d (4:578d) + callba GetPlayerIcon + call Function11847 + hlcoord 5, 2 + ld de, String_117a3 + call PlaceString + call Function11882 + ret +; 117a3 (4:57a3) + +String_117a3: ; 117a3 + db "YOUR NAME?@" +; 117ae + +Function117ae: ; 117ae (4:57ae) + ld de, SilverSpriteGFX + ld b, BANK(SilverSpriteGFX) + call Function11847 + hlcoord 5, 2 + ld de, String_117c3 + call PlaceString + call Function11882 + ret +; 117c3 (4:57c3) + +String_117c3: ; 117c3 + db "RIVAL'S NAME?@" +; 117d1 + +Function117d1: ; 117d1 (4:57d1) + ld de, MomSpriteGFX + ld b, BANK(MomSpriteGFX) + call Function11847 + hlcoord 5, 2 + ld de, String_117e6 + call PlaceString + call Function11882 + ret +; 117e6 (4:57e6) + +String_117e6: ; 117e6 + db "MOTHER'S NAME?@" +; 117f5 + +Function117f5: ; 117f5 (4:57f5) + ld de, PokeBallSpriteGFX + ld hl, VTiles0 tile $00 + lb bc, BANK(PokeBallSpriteGFX), $4 + call Request2bpp + xor a + ld hl, wc300 + ld [hli], a + ld [hl], a + ld de, $2420 + ld a, $a + call Function3b2a + ld hl, $1 + add hl, bc + ld [hl], $0 + hlcoord 5, 2 + ld de, String_11822 + call PlaceString + call Function11889 + ret +; 11822 (4:5822) + +String_11822: ; 11822 + db "BOX NAME?@" +; 1182c + +Function1182c: ; 1182c (4:582c) + hlcoord 3, 2 + ld de, String_11839 + call PlaceString + call Function11882 + ret +; 11839 (4:5839) + +String_11839: ; 11839 + db "おともだち の なまえは?@" +; 11847 + +Function11847: ; 11847 (4:5847) + push de + ld hl, VTiles0 tile $00 + ld c, $4 + push bc + call Request2bpp + pop bc + ld hl, $c0 + add hl, de + ld e, l + ld d, h + ld hl, VTiles0 tile $04 + call Request2bpp + xor a + ld hl, wc300 + ld [hli], a + ld [hl], a + pop de + ld b, $a + ld a, d + cp $7a + jr nz, .asm_11873 + ld a, e + cp $40 + jr nz, .asm_11873 + ld b, $1e +.asm_11873 + ld a, b + ld de, $2420 + call Function3b2a + ret + +Function1187b: ; 1187b (4:587b) + ld a, $a + hlcoord 5, 6 + jr Function11890 + +Function11882: ; 11882 (4:5882) + ld a, $7 + hlcoord 5, 6 + jr Function11890 + +Function11889: ; 11889 (4:5889) + ld a, $8 + hlcoord 5, 4 + jr Function11890 + +Function11890: ; 11890 (4:5890) + ld [wc6d3], a + ld a, l + ld [wc6d8], a + ld a, h + ld [wc6d9], a + ret + + +Function1189c: ; 1189c + push bc + push af + ld a, [wc6d4] + sub $3 + ld b, a + pop af + dec b + pop bc + ret +; 118a8 + +Function118a8: ; 118a8 + call WaitTop + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $60 + call ByteFill + hlcoord 1, 1 + lb bc, 6, 18 + call Function1189c + jr nz, .asm_118c4 + lb bc, 4, 18 + +.asm_118c4 + call ClearBox + ld de, NameInputUpper +Function118ca: ; 118ca + call Function1189c + jr nz, .asm_118d5 + ld hl, BoxNameInputLower - NameInputLower + add hl, de + ld d, h + ld e, l + +.asm_118d5 + push de + hlcoord 1, 8 + lb bc, 7, 18 + call Function1189c + jr nz, .asm_118e7 + hlcoord 1, 6 + lb bc, 9, 18 + +.asm_118e7 + call ClearBox + hlcoord 1, 16 + lb bc, 1, 18 + call ClearBox + pop de + hlcoord 2, 8 + ld b, $5 + call Function1189c + jr nz, .asm_11903 + hlcoord 2, 6 + ld b, $6 + +.asm_11903 + ld c, $11 +.asm_11905 + ld a, [de] + ld [hli], a + inc de + dec c + jr nz, .asm_11905 + push de + ld de, $17 + add hl, de + pop de + dec b + jr nz, .asm_11903 + ret +; 11915 + +Function11915: ; 11915 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_11930 + call Function11968 + callba Function8cf62 + call Function11940 + call DelayFrame + and a + ret + +.asm_11930 + callab Function8cf53 + call ClearSprites + xor a + ld [hSCX], a + ld [hSCY], a + scf + ret +; 11940 + +Function11940: ; 11940 + xor a + ld [hBGMapMode], a + hlcoord 1, 5 + call Function1189c + jr nz, .asm_1194e + hlcoord 1, 3 + +.asm_1194e + lb bc, 1, 18 + call ClearBox + ld hl, wc6d0 + ld e, [hl] + inc hl + ld d, [hl] + ld hl, wc6d8 + ld a, [hli] + ld h, [hl] + ld l, a + call PlaceString + ld a, $1 + ld [hBGMapMode], a + ret +; 11968 + +Function11968: ; 11968 + ld a, [wJumptableIndex] + ld e, a + ld d, $0 + ld hl, Jumptable_11977 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 11977 + + +Jumptable_11977: ; 11977 (4:5977) + dw Function1197b + dw Function119a1 + + +Function1197b: ; 1197b (4:597b) + lb de, $50, $18 + call Function1189c + jr nz, .asm_11985 + ld d, $40 +.asm_11985 + ld a, $2 + call Function3b2a + ld a, c + ld [wc6d5], a + ld a, b + ld [wc6d6], a + ld hl, $1 + add hl, bc + ld a, [hl] + ld hl, $e + add hl, bc + ld [hl], a + ld hl, wJumptableIndex + inc [hl] + ret + +Function119a1: ; 119a1 (4:59a1) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and A_BUTTON + jr nz, .a + ld a, [hl] + and B_BUTTON + jr nz, .b + ld a, [hl] + and START + jr nz, .start + ld a, [hl] + and SELECT + jr nz, .select + ret + +.a + call Function11a0b + cp $1 + jr z, .select + cp $2 + jr z, .b + cp $3 + jr z, .asm_119eb + call Function11c11 + call Function11b14 + ret nc + +.start + ld hl, wc6d5 + ld c, [hl] + inc hl + ld b, [hl] + ld hl, $c + add hl, bc + ld [hl], $8 + ld hl, $d + add hl, bc + ld [hl], $4 + call Function1189c + ret nz + inc [hl] + ret + +.b + call Function11bbc + ret + +.asm_119eb + call Function11bf7 + ld hl, wJumptableIndex + set 7, [hl] + ret + +.select + ld hl, wcf64 + ld a, [hl] + xor 1 + ld [hl], a + jr z, .asm_11a04 + ld de, NameInputLower + call Function118ca + ret + +.asm_11a04 + ld de, NameInputUpper + call Function118ca + ret + +Function11a0b: ; 11a0b (4:5a0b) + ld hl, wc6d5 + ld c, [hl] + inc hl + ld b, [hl] + +Function11a11: ; 11a11 (4:5a11) + ld hl, $d + add hl, bc + ld a, [hl] + push bc + ld b, $4 + call Function1189c + jr nz, .asm_11a1f + inc b +.asm_11a1f + cp b + pop bc + jr nz, .asm_11a39 + ld hl, $c + add hl, bc + ld a, [hl] + cp $3 + jr c, .asm_11a33 + cp $6 + jr c, .asm_11a36 + ld a, $3 + ret +.asm_11a33 + ld a, $1 + ret +.asm_11a36 + ld a, $2 + ret +.asm_11a39 + xor a + ret + +Function11a3b: ; 11a3b (4:5a3b) + call Function11a8b + ld hl, $d + add hl, bc + ld a, [hl] + ld e, a + swap e + ld hl, $7 + add hl, bc + ld [hl], e + ld d, $4 + call Function1189c + jr nz, .asm_11a53 + inc d +.asm_11a53 + cp d + ld de, Unknown_11a79 + ld a, $0 + jr nz, .asm_11a60 + ld de, Unknown_11a82 + ld a, $1 +.asm_11a60 + ld hl, $e + add hl, bc + add [hl] + ld hl, $1 + add hl, bc + ld [hl], a + ld hl, $c + add hl, bc + ld l, [hl] + ld h, $0 + add hl, de + ld a, [hl] + ld hl, $6 + add hl, bc + ld [hl], a + ret +; 11a79 (4:5a79) + +Unknown_11a79: ; 11a79 + db $00, $10, $20, $30, $40, $50, $60, $70, $80 +Unknown_11a82: ; 11a82 + db $00, $00, $00, $30, $30, $30, $60, $60, $60 +; 11a8b + +Function11a8b: ; 11a8b (4:5a8b) + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .up + ld a, [hl] + and D_DOWN + jr nz, .down + ld a, [hl] + and D_LEFT + jr nz, .left + ld a, [hl] + and D_RIGHT + jr nz, .right + ret +.right + call Function11a11 + and a + jr nz, .asm_11ab7 + ld hl, $c + add hl, bc + ld a, [hl] + cp $8 + jr nc, .asm_11ab4 + inc [hl] + ret +.asm_11ab4 + ld [hl], $0 + ret +.asm_11ab7 + cp $3 + jr nz, .asm_11abc + xor a +.asm_11abc + ld e, a + add a + add e + ld hl, $c + add hl, bc + ld [hl], a + ret +.left + call Function11a11 + and a + jr nz, .asm_11ad8 + ld hl, $c + add hl, bc + ld a, [hl] + and a + jr z, .asm_11ad5 + dec [hl] + ret +.asm_11ad5 + ld [hl], $8 + ret +.asm_11ad8 + cp $1 + jr nz, .asm_11ade + ld a, $4 +.asm_11ade +rept 2 + dec a +endr + ld e, a + add a + add e + ld hl, $c + add hl, bc + ld [hl], a + ret +.down + ld hl, $d + add hl, bc + ld a, [hl] + call Function1189c + jr nz, .asm_11af9 + cp $5 + jr nc, .asm_11aff + inc [hl] + ret +.asm_11af9 + cp $4 + jr nc, .asm_11aff + inc [hl] + ret +.asm_11aff + ld [hl], $0 + ret +.up + ld hl, $d + add hl, bc + ld a, [hl] + and a + jr z, .asm_11b0c + dec [hl] + ret +.asm_11b0c + ld [hl], $4 + call Function1189c + ret nz + inc [hl] + ret + +Function11b14: ; 11b14 (4:5b14) + ld a, [wc6d7] + +Function11b17: ; 11b17 (4:5b17) + ld a, [wc6d3] + ld c, a + ld a, [wc6d2] + cp c + ret nc + + ld a, [wc6d7] + +Function11b23: ; 11b23 + call Function11bd0 + ld [hl], a + +Function11b27: ; 11b27 + ld hl, wc6d2 + inc [hl] + call Function11bd0 + ld a, [hl] + cp $50 + jr z, .asm_11b37 + ld [hl], $f2 + and a + ret +.asm_11b37 + scf + ret +; 11b39 (4:5b39) + +Function11b39: ; 11b39 + ld a, [wc6d2] + and a + ret z + push hl + ld hl, wc6d2 + dec [hl] + call Function11bd0 + ld c, [hl] + pop hl + +.asm_11b48 + ld a, [hli] + cp $ff + jr z, Function11b27 + cp c + jr z, .asm_11b53 + inc hl + jr .asm_11b48 + +.asm_11b53 + ld a, [hl] + jr Function11b23 +; 11b56 + +Dakutens: ; Dummied out + db "かが", "きぎ", "くぐ", "けげ", "こご" + db "さざ", "しじ", "すず", "せぜ", "そぞ" + db "ただ", "ちぢ", "つづ", "てで", "とど" + db "はば", "ひび", "ふぶ", "へべ", "ほぼ" + db "カガ", "キギ", "クグ", "ケゲ", "コゴ" + db "サザ", "シジ", "スズ", "セゼ", "ソゾ" + db "タダ", "チヂ", "ツヅ", "テデ", "トド" + db "ハバ", "ヒビ", "フブ", "へべ", "ホボ" + db $ff + +Handakutens: ; Dummied out + db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ" + db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ" + db $ff +; 11bbc + +Function11bbc: ; 11bbc (4:5bbc) + ld hl, wc6d2 + ld a, [hl] + and a + ret z + dec [hl] + call Function11bd0 + ld [hl], $f2 + inc hl + ld a, [hl] + cp $f2 + ret nz + ld [hl], $eb + ret + +Function11bd0: ; 11bd0 (4:5bd0) + push af + ld hl, wc6d0 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wc6d2] + ld e, a + ld d, 0 + add hl, de + pop af + ret +; 11be0 + +Function11be0: ; 11be0 +; load $f2, ($eb * [wc6d3]), $50 into the dw address at wc6d0 + ld hl, wc6d0 + ld a, [hli] + ld h, [hl] + ld l, a + ld [hl], "·" + inc hl + ld a, [wc6d3] + dec a + ld c, a + ld a, "→" +.loop + ld [hli], a + dec c + jr nz, .loop + ld [hl], "@" + ret +; 11bf7 + + +Function11bf7: ; 11bf7 (4:5bf7) + ld hl, wc6d0 + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wc6d3] + ld c, a +.asm_11c01 + ld a, [hl] + cp $eb + jr z, .asm_11c0a + cp $f2 + jr nz, .asm_11c0c +.asm_11c0a + ld [hl], $50 +.asm_11c0c + inc hl + dec c + jr nz, .asm_11c01 + ret + +Function11c11: ; 11c11 (4:5c11) + ld hl, wc6d5 + ld c, [hl] + inc hl + ld b, [hl] + ld hl, $6 + add hl, bc + ld a, [hl] + ld hl, $4 + add hl, bc + add [hl] + sub $8 + srl a + srl a + srl a + ld e, a + ld hl, $7 + add hl, bc + ld a, [hl] + ld hl, $5 + add hl, bc + add [hl] + sub $10 + srl a + srl a + srl a + ld d, a + hlcoord 0, 0 + ld bc, $14 +.asm_11c43 + ld a, d + and a + jr z, .asm_11c4b + add hl, bc + dec d + jr .asm_11c43 +.asm_11c4b + add hl, de + ld a, [hl] + ld [wc6d7], a + ret + + +Function11c51: ; 11c51 + call ClearSprites + callab Function8cf53 + call LoadStandardFont + call LoadFontsExtra + + ld de, GFX_11e65 + ld hl, VTiles1 tile $6b + lb bc, BANK(GFX_11e65), 1 + call Get1bpp + + ld de, GFX_11e6d + ld hl, VTiles1 tile $72 + lb bc, BANK(GFX_11e6d), 1 + call Get1bpp + + ld de, VTiles2 tile $60 + ld hl, GFX_11cb7 + ld bc, $10 + ld a, BANK(GFX_11cb7) + call FarCopyBytes + + ld de, VTiles0 tile $7e + ld hl, GFX_11cc7 + ld bc, $20 + ld a, BANK(GFX_11cc7) + call FarCopyBytes + + ld a, $5 + ld hl, wc312 + ld [hli], a + ld [hl], $7e + xor a + ld [hSCY], a + ld [wc3bf], a + ld [hSCX], a + ld [wc3c0], a + ld [wJumptableIndex], a + ld [wcf64], a + ld [hBGMapMode], a + ld [wc6d2], a + ld a, $7 + ld [hWX], a + ret +; 11cb7 + +GFX_11cb7: ; 11cb7 +INCBIN "gfx/unknown/011cb7.2bpp" +; 11cc7 + +GFX_11cc7: ; 11cc7 +INCBIN "gfx/unknown/011cc7.2bpp" +; 11ce7 + +NameInputLower: + db "a b c d e f g h i" + db "j k l m n o p q r" + db "s t u v w x y z " + db "× ( ) : ; [ ] " + db "UPPER DEL END " +BoxNameInputLower: + db "a b c d e f g h i" + db "j k l m n o p q r" + db "s t u v w x y z " + db "é 'd 'l 'm 'r 's 't 'v 0" + db "1 2 3 4 5 6 7 8 9" + db "UPPER DEL END " +NameInputUpper: ; Unreferenced? + db "A B C D E F G H I" + db "J K L M N O P Q R" + db "S T U V W X Y Z " + db "- ? ! / . , " + db "lower DEL END " +BoxNameInputUpper: + db "A B C D E F G H I" + db "J K L M N O P Q R" + db "S T U V W X Y Z " + db "× ( ) : ; [ ] " + db "- ? ! ♂ ♀ / . , &" + db "lower DEL END " +; 11e5d + +GFX_11e5d: ; ???? +INCBIN "gfx/unknown/011e5d.2bpp" +; 11e6d + +GFX_11e65: +INCBIN "gfx/unknown/011e65.2bpp" +; 11e6d + +GFX_11e6d: ; 11e6d +INCBIN "gfx/unknown/011e6d.2bpp" +; 11e75 diff --git a/engine/save.asm b/engine/save.asm index a4afa2a05..de11a8133 100644 --- a/engine/save.asm +++ b/engine/save.asm @@ -1,5 +1,5 @@ Function14a1a: ; 14a1a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Function5e9a call SpeechTextBox call UpdateSprites diff --git a/engine/scripting.asm b/engine/scripting.asm index 57674bd81..f94436f67 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1560,8 +1560,8 @@ Script_returnafterbattle: ; 0x97459 and $3f cp $1 jr nz, .notblackedout ; 0x97466 $8 - ld b, BANK(UnknownScript_0x124c1) - ld hl, UnknownScript_0x124c1 + ld b, BANK(Script_BattleWhiteout) + ld hl, Script_BattleWhiteout jp ScriptJump .notblackedout @@ -2884,9 +2884,9 @@ Script_blackoutmod: ; 0x97a78 ; map_id (MapIdParam) call GetScriptByte - ld [wdcb2], a + ld [wLastSpawnMapGroup], a call GetScriptByte - ld [wdcb3], a + ld [wLastSpawnMapNumber], a ret ; 0x97a85 diff --git a/engine/selectmenu.asm b/engine/selectmenu.asm new file mode 100755 index 000000000..e73f397a5 --- /dev/null +++ b/engine/selectmenu.asm @@ -0,0 +1,191 @@ +SelectMenu:: ; 13327 + + call CheckRegisteredItem + jr c, .NotRegistered + jp UseRegisteredItem + +.NotRegistered + call LoadFont + ld b, BANK(ItemMayBeRegisteredText) + ld hl, ItemMayBeRegisteredText + call MapTextbox + call CloseText + jp LoadMoveSprites +; 13340 + + +ItemMayBeRegisteredText: ; 13340 + text_jump UnknownText_0x1c1cf3 + db "@" +; 13345 + + +CheckRegisteredItem: ; 13345 + + ld a, [WhichRegisteredItem] + and a + jr z, .NoRegisteredItem + and REGISTERED_POCKET + rlca + rlca + ld hl, .Pockets + rst JumpTable + ret + +.Pockets + dw .CheckItem + dw .CheckBall + dw .CheckKeyItem + dw .CheckTMHM + +.CheckItem + ld hl, NumItems + call .CheckRegisteredNo + jr c, .NoRegisteredItem + inc hl + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + call .IsSameItem + jr c, .NoRegisteredItem + and a + ret + +.CheckKeyItem + ld a, [RegisteredItem] + ld hl, KeyItems + ld de, 1 + call IsInArray + jr nc, .NoRegisteredItem + ld a, [RegisteredItem] + ld [CurItem], a + and a + ret + +.CheckBall + ld hl, NumBalls + call .CheckRegisteredNo + jr nc, .NoRegisteredItem + inc hl + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + call .IsSameItem + jr c, .NoRegisteredItem + ret + +.CheckTMHM + jr .NoRegisteredItem + +.NoRegisteredItem + xor a + ld [WhichRegisteredItem], a + ld [RegisteredItem], a + scf + ret +; 133a6 + + +.CheckRegisteredNo ; 133a6 + ld a, [WhichRegisteredItem] + and REGISTERED_NUMBER + dec a + cp [hl] + jr nc, .NotEnoughItems + ld [wd107], a + and a + ret + +.NotEnoughItems + scf + ret +; 133b6 + + +.IsSameItem ; 133b6 + ld a, [RegisteredItem] + cp [hl] + jr nz, .NotSameItem + ld [CurItem], a + and a + ret + +.NotSameItem + scf + ret +; 133c3 + + +UseRegisteredItem: ; 133c3 + + callba CheckItemMenu + ld a, [wItemAttributeParamBuffer] + ld hl, .SwitchTo + rst JumpTable + ret + +.SwitchTo + dw .CantUse + dw .NoFunction + dw .NoFunction + dw .NoFunction + dw .Current + dw .Party + dw .Overworld +; 133df + +.NoFunction ; 133df + call LoadFont + call CantUseItem + call LoadMoveSprites + and a + ret +; 133ea + +.Current ; 133ea + call LoadFont + call DoItemEffect + call LoadMoveSprites + and a + ret +; 133f5 + +.Party ; 133f5 + call ResetWindow + call FadeToMenu + call DoItemEffect + call Function2b3c + call LoadMoveSprites + and a + ret +; 13406 + +.Overworld ; 13406 + call ResetWindow + ld a, 1 + ld [wd0ef], a + call DoItemEffect + xor a + ld [wd0ef], a + ld a, [wd0ec] + cp 1 + jr nz, ._cantuse + scf + ld a, HMENURETURN_SCRIPT + ld [hMenuReturn], a + ret +; 13422 + +.CantUse ; 13422 + call ResetWindow + +._cantuse + call CantUseItem + call LoadMoveSprites + and a + ret +; 1342d diff --git a/engine/specials.asm b/engine/specials.asm index 005ee2487..c1e9ff95b 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -42,7 +42,7 @@ SpecialsPointers:: ; c029 ; Map Events add_special BugContestJudging add_special CheckPartyFullAfterContest - add_special CheckFirstMonFainted + add_special ContestDropOffMons add_special ContestReturnMons add_special Special_GiveParkBalls add_special Special_CheckMagikarpLength diff --git a/engine/startmenu.asm b/engine/startmenu.asm new file mode 100755 index 000000000..b7287be83 --- /dev/null +++ b/engine/startmenu.asm @@ -0,0 +1,1970 @@ +StartMenu:: ; 125cd + + call ResetTextRelatedRAM + + ld de, SFX_MENU + call PlaySFX + + callba Function6454 + + ld hl, StatusFlags2 + bit 2, [hl] ; bug catching contest + ld hl, .MenuDataHeader + jr z, .GotMenuData + ld hl, .ContestMenuDataHeader +.GotMenuData + + call LoadMenuDataHeader + call .SetUpMenuItems + ld a, [wd0d2] + ld [wMenuCursorBuffer], a + call .DrawMenuAccount_ + call MenuFunc_1e7f + call .DrawBugContestStatusBox + call Function2e31 + call Function2e20 + callba Function64bf + call .DrawBugContestStatus + call UpdateTimePals + jr .Select + +.Reopen + call UpdateSprites + call UpdateTimePals + call .SetUpMenuItems + ld a, [wd0d2] + ld [wMenuCursorBuffer], a + +.Select + call .GetInput + jr c, .Exit + call .DrawMenuAccount + ld a, [wMenuCursorBuffer] + ld [wd0d2], a + call PlayClickSFX + call Function1bee + call .OpenMenu + +; Menu items have different return functions. +; For example, saving exits the menu. + ld hl, .MenuReturns + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.MenuReturns + dw .Reopen + dw .Exit + dw .ExitMenuCallFuncLoadMoveSprites + dw .ExitMenuRunScriptLoadMoveSprites + dw .ExitMenuRunScript + dw .ReturnEnd + dw .ReturnRedraw + +.Exit + ld a, [hOAMUpdate] + push af + ld a, 1 + ld [hOAMUpdate], a + call LoadFontsExtra + pop af + ld [hOAMUpdate], a +.ReturnEnd + call ExitMenu +.ReturnEnd2 + call LoadMoveSprites + call UpdateTimePals + ret + +.GetInput +; Return carry on exit, and no-carry on selection. + xor a + ld [hBGMapMode], a + call .DrawMenuAccount + call SetUpMenu + ld a, $ff + ld [MenuSelection], a +.loop + call .PrintMenuAccount + call Function1f1a + ld a, [wcf73] + cp B_BUTTON + jr z, .b + cp A_BUTTON + jr z, .a + jr .loop +.a + call PlayClickSFX + and a + ret +.b + scf + ret +; 12691 + +.ExitMenuRunScript ; 12691 + call ExitMenu + ld a, HMENURETURN_SCRIPT + ld [hMenuReturn], a + ret +; 12699 + +.ExitMenuRunScriptLoadMoveSprites ; 12699 + call ExitMenu + ld a, HMENURETURN_SCRIPT + ld [hMenuReturn], a + jr .ReturnEnd2 +; 126a2 + +.ExitMenuCallFuncLoadMoveSprites ; 126a2 + call ExitMenu + ld hl, wQueuedScriptAddr + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [wQueuedScriptBank] + rst FarCall + jr .ReturnEnd2 +; 126b1 + +.ReturnRedraw ; 126b1 + call .Clear + jp .Reopen +; 126b7 + +.Clear ; 126b7 + call WhiteBGMap + call Call_ExitMenu + call Function2bae + call .DrawMenuAccount_ + call MenuFunc_1e7f + call .DrawBugContestStatus + call UpdateSprites + call Functiond90 + call Function2b5c + ret +; 126d3 + + +.MenuDataHeader + db $40 ; tile backup + db 0, 10 ; start coords + db 17, 19 ; end coords + dw .MenuData + db 1 ; default selection + +.ContestMenuDataHeader + db $40 ; tile backup + db 2, 10 ; start coords + db 17, 19 ; end coords + dw .MenuData + db 1 ; default selection + +.MenuData + db %10101000 ; x padding, wrap around, start can close + dn 0, 0 ; rows, columns + dw MenuItemsList + dw .MenuString + dw .Items + +.Items + dw StartMenu_Pokedex, .PokedexString, .PokedexDesc + dw StartMenu_Pokemon, .PartyString, .PartyDesc + dw StartMenu_Pack, .PackString, .PackDesc + dw StartMenu_Status, .StatusString, .StatusDesc + dw StartMenu_Save, .SaveString, .SaveDesc + dw StartMenu_Option, .OptionString, .OptionDesc + dw StartMenu_Exit, .ExitString, .ExitDesc + dw StartMenu_Pokegear, .PokegearString, .PokegearDesc + dw StartMenu_Quit, .QuitString, .QuitDesc + +.PokedexString db "#DEX@" +.PartyString db "#MON@" +.PackString db "PACK@" +.StatusString db "@" +.SaveString db "SAVE@" +.OptionString db "OPTION@" +.ExitString db "EXIT@" +.PokegearString db $24, "GEAR@" +.QuitString db "QUIT@" + +.PokedexDesc db "#MON" + next "database@" + +.PartyDesc db "Party ", $4a + next "status@" + +.PackDesc db "Contains" + next "items@" + +.PokegearDesc db "Trainer's" + next "key device@" + +.StatusDesc db "Your own" + next "status@" + +.SaveDesc db "Save your" + next "progress@" + +.OptionDesc db "Change" + next "settings@" + +.ExitDesc db "Close this" + next "menu@" + +.QuitDesc db "Quit and" + next "be judged.@" + + +.OpenMenu ; 127e5 + ld a, [MenuSelection] + call .GetMenuAccountTextPointer + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 127ef + +.MenuString ; 127ef + push de + ld a, [MenuSelection] + call .GetMenuAccountTextPointer +rept 2 + inc hl +endr + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + call PlaceString + ret +; 12800 + +.MenuDesc ; 12800 + push de + ld a, [MenuSelection] + cp $ff + jr z, .none + call .GetMenuAccountTextPointer +rept 4 + inc hl +endr + ld a, [hli] + ld d, [hl] + ld e, a + pop hl + call PlaceString + ret +.none + pop de + ret +; 12819 + + +.GetMenuAccountTextPointer ; 12819 + ld e, a + ld d, 0 + ld hl, wcf97 + ld a, [hli] + ld h, [hl] + ld l, a +rept 6 + add hl, de +endr + ret +; 12829 + + +.SetUpMenuItems ; 12829 + xor a + ld [wcf76], a + call .FillMenuList + + ld hl, StatusFlags + bit 0, [hl] + jr z, .no_pokedex + ld a, 0 ; pokedex + call .AppendMenuList +.no_pokedex + + ld a, [PartyCount] + and a + jr z, .no_pokemon + ld a, 1 ; pokemon + call .AppendMenuList +.no_pokemon + + ld a, [wLinkMode] + and a + jr nz, .no_pack + ld hl, StatusFlags2 + bit 2, [hl] ; bug catching contest + jr nz, .no_pack + ld a, 2 ; pack + call .AppendMenuList +.no_pack + + ld hl, wPokegearFlags + bit 7, [hl] + jr z, .no_pokegear + ld a, 7 ; pokegear + call .AppendMenuList +.no_pokegear + + ld a, 3 ; status + call .AppendMenuList + + ld a, [wLinkMode] + and a + jr nz, .no_save + ld hl, StatusFlags2 + bit 2, [hl] ; bug catching contest + ld a, 8 ; quit + jr nz, .write + ld a, 4 ; save +.write + call .AppendMenuList +.no_save + + ld a, 5 ; option + call .AppendMenuList + ld a, 6 ; exit + call .AppendMenuList + ld a, c + ld [MenuItemsList], a + ret +; 1288d + + +.FillMenuList ; 1288d + xor a + ld hl, MenuItemsList + ld [hli], a + ld a, -1 + ld bc, MenuItemsListEnd - (MenuItemsList + 1) + call ByteFill + ld de, MenuItemsList + 1 + ld c, 0 + ret +; 128a0 + +.AppendMenuList ; 128a0 + ld [de], a + inc de + inc c + ret +; 128a4 + +.DrawMenuAccount_ ; 128a4 + jp .DrawMenuAccount +; 128a7 + +.PrintMenuAccount ; 128a7 + call .IsMenuAccountOn + ret z + call .DrawMenuAccount + decoord 0, 14 + jp .MenuDesc +; 128b4 + +.DrawMenuAccount ; 128b4 + call .IsMenuAccountOn + ret z + hlcoord 0, 13 + lb bc, 5, 10 + call ClearBox + hlcoord 0, 13 + ld b, 3 + ld c, 8 + jp TextBoxPalette +; 128cb + +.IsMenuAccountOn ; 128cb + ld a, [Options2] + and 1 + ret +; 128d1 + +.DrawBugContestStatusBox ; 128d1 + ld hl, StatusFlags2 + bit 2, [hl] ; bug catching contest + ret z + callba Function24bdc + ret +; 128de + +.DrawBugContestStatus ; 128de + ld hl, StatusFlags2 + bit 2, [hl] ; bug catching contest + jr nz, .contest + ret +.contest + callba Function24be7 + ret +; 128ed + + +StartMenu_Exit: ; 128ed +; Exit the menu. + + ld a, 1 + ret +; 128f0 + + +StartMenu_Quit: ; 128f0 +; Retire from the bug catching contest. + + ld hl, .EndTheContestText + call Function12cf5 + jr c, .DontEndContest + ld a, BANK(BugCatchingContestReturnToGateScript) + ld hl, BugCatchingContestReturnToGateScript + call FarQueueScript + ld a, 4 + ret + +.DontEndContest + ld a, 0 + ret + +.EndTheContestText + text_jump UnknownText_0x1c1a6c + db "@" +; 1290b + + +StartMenu_Save: ; 1290b +; Save the game. + + call BufferScreen + callba Function14a1a + jr nc, .asm_12919 + ld a, 0 + ret +.asm_12919 + ld a, 1 + ret +; 1291c + + +StartMenu_Option: ; 1291c +; Game options. + + call FadeToMenu + callba OptionsMenu + ld a, 6 + ret +; 12928 + + +StartMenu_Status: ; 12928 +; Player status. + + call FadeToMenu + callba Function25105 + call Function2b3c + ld a, 0 + ret +; 12937 + + +StartMenu_Pokedex: ; 12937 + + ld a, [PartyCount] + and a + jr z, .asm_12949 + + call FadeToMenu + callba Pokedex + call Function2b3c + +.asm_12949 + ld a, 0 + ret +; 1294c + + +StartMenu_Pokegear: ; 1294c + + call FadeToMenu + callba Function90b8d + call Function2b3c + ld a, 0 + ret +; 1295b + + +StartMenu_Pack: ; 1295b + + call FadeToMenu + callba Pack + ld a, [wcf66] + and a + jr nz, .asm_12970 + call Function2b3c + ld a, 0 + ret +.asm_12970 + call Function2b4d + ld a, 4 + ret +; 12976 + + +StartMenu_Pokemon: ; 12976 + + ld a, [PartyCount] + and a + jr z, .return + + call FadeToMenu + +.choosemenu + xor a + ld [PartyMenuActionText], a ; Choose a POKéMON. + call WhiteBGMap + +.menu + callba Function5004f + callba Function50405 + callba Function503e0 + +.menunoreload + callba WritePartyMenuTilemap + callba PrintPartyMenuText + call WaitBGMap + call SetPalettes ; load regular palettes? + call DelayFrame + callba PartyMenuSelect + jr c, .return ; if cancelled or pressed B + + call PokemonActionSubmenu + cp 3 + jr z, .menu + cp 0 + jr z, .choosemenu + cp 1 + jr z, .menunoreload + cp 2 + jr z, .quit + +.return + call Function2b3c + ld a, 0 + ret + +.quit + ld a, b + push af + call Function2b4d + pop af + ret +; 129d5 + +Function129d5: ; 129d5 + ld a, [NumItems] + and a + ret nz + ld a, [NumKeyItems] + and a + ret nz + ld a, [NumBalls] + and a + ret nz + ld hl, TMsHMs + ld b, NUM_TMS + NUM_HMS +.asm_129e9 + ld a, [hli] + and a + jr nz, .asm_129f2 + dec b + jr nz, .asm_129e9 + scf + ret +.asm_129f2 + and a + ret + +Function129f4: ; 129f4 + push de + call PartyMonItemName + callba _CheckTossableItem + ld a, [wItemAttributeParamBuffer] + and a + jr nz, .asm_12a3f + ld hl, UnknownText_0x12a45 + call MenuTextBox + callba Function24fbf + push af + call WriteBackup + call ExitMenu + pop af + jr c, .asm_12a42 + ld hl, UnknownText_0x12a4a + call MenuTextBox + call YesNoBox + push af + call ExitMenu + pop af + jr c, .asm_12a42 + pop hl + ld a, [wd107] + call TossItem + call PartyMonItemName + ld hl, UnknownText_0x12a4f + call MenuTextBox + call ExitMenu + and a + ret +.asm_12a3f + call Function12a54 +.asm_12a42 + pop hl + scf + ret +; 12a45 (4:6a45) + +UnknownText_0x12a45: ; 0x12a45 + ; Toss out how many @ (S)? + text_jump UnknownText_0x1c1a90 + db "@" +; 0x12a4a + +UnknownText_0x12a4a: ; 0x12a4a + ; Throw away @ @ (S)? + text_jump UnknownText_0x1c1aad + db "@" +; 0x12a4f + +UnknownText_0x12a4f: ; 0x12a4f + ; Discarded @ (S). + text_jump UnknownText_0x1c1aca + db "@" +; 0x12a54 + +Function12a54: ; 12a54 (4:6a54) + ld hl, UnknownText_0x12a5b + call MenuTextBoxBackup + ret +; 12a5b (4:6a5b) + +UnknownText_0x12a5b: ; 0x12a5b + ; That's too impor- tant to toss out! + text_jump UnknownText_0x1c1adf + db "@" +; 0x12a60 + +CantUseItem: ; 12a60 + ld hl, CantUseItemText + call Function2012 + ret +; 12a67 + +CantUseItemText: ; 12a67 + text_jump UnknownText_0x1c1b03 + db "@" +; 12a6c + + +PartyMonItemName: ; 12a6c + ld a, [CurItem] + ld [wd265], a + call GetItemName + call CopyName1 + ret +; 12a79 + + +CancelPokemonAction: ; 12a79 + callba Function50405 + callba Function8ea71 + ld a, 1 + ret +; 12a88 + + +PokemonActionSubmenu: ; 12a88 + hlcoord 1, 15 + lb bc, 2, 18 + call ClearBox + callba MonSubmenu + call GetCurNick + ld a, [MenuSelection] + ld hl, .Actions + ld de, 3 + call IsInArray + jr nc, .nothing + + inc hl + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.nothing + ld a, 0 + ret + +.Actions + dbw MONMENU_CUT, MonMenu_Cut ; Cut + dbw MONMENU_FLY, MonMenu_Fly ; Fly + dbw MONMENU_SURF, MonMenu_Surf ; Surf + dbw MONMENU_STRENGTH, MonMenu_Strength ; Strength + dbw MONMENU_FLASH, MonMenu_Flash ; Flash + dbw MONMENU_WHIRLPOOL, MonMenu_Whirlpool ; Whirlpool + dbw MONMENU_DIG, MonMenu_Dig ; Dig + dbw MONMENU_TELEPORT, MonMenu_Teleport ; Teleport + dbw MONMENU_SOFTBOILED, MonMenu_Softboiled_MilkDrink ; Softboiled + dbw MONMENU_MILKDRINK, MonMenu_Softboiled_MilkDrink ; MilkDrink + dbw MONMENU_HEADBUTT, MonMenu_Headbutt ; Headbutt + dbw MONMENU_WATERFALL, MonMenu_Waterfall ; Waterfall + dbw MONMENU_ROCKSMASH, MonMenu_RockSmash ; RockSmash + dbw MONMENU_SWEETSCENT, MonMenu_SweetScent ; SweetScent + dbw MONMENU_STATS, OpenPartyStats + dbw MONMENU_SWITCH, SwitchPartyMons + dbw MONMENU_ITEM, GiveTakePartyMonItem + dbw MONMENU_CANCEL, CancelPokemonAction + dbw MONMENU_MOVE, ManagePokemonMoves ; move + dbw MONMENU_MAIL, MonMailAction ; mail +; 12aec + + +SwitchPartyMons: ; 12aec + +; Don't try if there's nothing to switch! + ld a, [PartyCount] + cp 2 + jr c, .DontSwitch + + ld a, [CurPartyMon] + inc a + ld [wd0e3], a + + callba Function8ea8c + callba Function5042d + + ld a, 4 + ld [PartyMenuActionText], a + callba WritePartyMenuTilemap + callba PrintPartyMenuText + + hlcoord 0, 1 + ld bc, 20 * 2 + ld a, [wd0e3] + dec a + call AddNTimes + ld [hl], "▷" + call WaitBGMap + call SetPalettes + call DelayFrame + + callba PartyMenuSelect + bit 1, b + jr c, .DontSwitch + + callba _SwitchPartyMons + + xor a + ld [PartyMenuActionText], a + + callba Function5004f + callba Function50405 + callba Function503e0 + + ld a, 1 + ret + +.DontSwitch + xor a + ld [PartyMenuActionText], a + call CancelPokemonAction + ret +; 12b60 + + +GiveTakePartyMonItem: ; 12b60 + +; Eggs can't hold items! + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_12ba6 + + ld hl, GiveTakeItemMenuData + call LoadMenuDataHeader + call InterpretMenu2 + call ExitMenu + jr c, .asm_12ba6 + + call GetCurNick + ld hl, StringBuffer1 + ld de, wd050 + ld bc, $b + call CopyBytes + ld a, [MenuSelection2] + cp 1 + jr nz, .asm_12ba0 + + call LoadStandardMenuDataHeader + call ClearPalettes + call Function12ba9 + call ClearPalettes + call LoadFontsBattleExtra + call ExitMenu + ld a, 0 + ret + +.asm_12ba0 + call TakePartyItem + ld a, 3 + ret + +.asm_12ba6 + ld a, 3 + ret +; 12ba9 + + +Function12ba9: ; 12ba9 + + callba Function106a5 + +.loop + callba Function106be + + ld a, [wcf66] + and a + jr z, .quit + + ld a, [wcf65] + cp 2 + jr z, .next + + call CheckTossableItem + ld a, [wItemAttributeParamBuffer] + and a + jr nz, .next + + call Function12bd9 + jr .quit + +.next + ld hl, CantBeHeldText + call MenuTextBoxBackup + jr .loop + +.quit + ret +; 12bd9 + + +Function12bd9: ; 12bd9 + + call SpeechTextBox + call PartyMonItemName + call GetPartyItemLocation + ld a, [hl] + and a + jr z, .asm_12bf4 + + push hl + ld d, a + callba ItemIsMail + pop hl + jr c, .asm_12c01 + ld a, [hl] + jr .asm_12c08 + +.asm_12bf4 + call Function12cea + ld hl, MadeHoldText + call MenuTextBoxBackup + call GivePartyItem + ret + +.asm_12c01 + ld hl, PleaseRemoveMailText + call MenuTextBoxBackup + ret + +.asm_12c08 + ld [wd265], a + call GetItemName + ld hl, SwitchAlreadyHoldingText + call Function12cf5 + jr c, .asm_12c4b + + call Function12cea + ld a, [wd265] + push af + ld a, [CurItem] + ld [wd265], a + pop af + ld [CurItem], a + call Function12cdf + jr nc, .asm_12c3c + + ld hl, TookAndMadeHoldText + call MenuTextBoxBackup + ld a, [wd265] + ld [CurItem], a + call GivePartyItem + ret + +.asm_12c3c + ld a, [wd265] + ld [CurItem], a + call Function12cdf + ld hl, ItemStorageIsFullText + call MenuTextBoxBackup + +.asm_12c4b + ret +; 12c4c + + +GivePartyItem: ; 12c4c + + call GetPartyItemLocation + ld a, [CurItem] + ld [hl], a + ld d, a + callba ItemIsMail + jr nc, .asm_12c5f + call Function12cfe + +.asm_12c5f + ret +; 12c60 + + +TakePartyItem: ; 12c60 + + call SpeechTextBox + call GetPartyItemLocation + ld a, [hl] + and a + jr z, .asm_12c8c + + ld [CurItem], a + call Function12cdf + jr nc, .asm_12c94 + + callba ItemIsMail + call GetPartyItemLocation + ld a, [hl] + ld [wd265], a + ld [hl], NO_ITEM + call GetItemName + ld hl, TookFromText + call MenuTextBoxBackup + jr .asm_12c9a + +.asm_12c8c + ld hl, IsntHoldingAnythingText + call MenuTextBoxBackup + jr .asm_12c9a + +.asm_12c94 + ld hl, ItemStorageIsFullText + call MenuTextBoxBackup + +.asm_12c9a + ret +; 12c9b + + +GiveTakeItemMenuData: ; 12c9b + db %01010000 + db 12, 12 ; start coords + db 17, 19 ; end coords + dw .Items + db 1 ; default option + +.Items + db %10000000 ; x padding + db 2 ; # items + db "GIVE@" + db "TAKE@" +; 12caf + + +TookAndMadeHoldText: ; 12caf + text_jump UnknownText_0x1c1b2c + db "@" +; 12cb4 + +MadeHoldText: ; 12cb4 + text_jump UnknownText_0x1c1b57 + db "@" +; 12cb9 + +PleaseRemoveMailText: ; 12cb9 + text_jump UnknownText_0x1c1b6f + db "@" +; 12cbe + +IsntHoldingAnythingText: ; 12cbe + text_jump UnknownText_0x1c1b8e + db "@" +; 12cc3 + +ItemStorageIsFullText: ; 12cc3 + text_jump UnknownText_0x1c1baa + db "@" +; 12cc8 + +TookFromText: ; 12cc8 + text_jump UnknownText_0x1c1bc4 + db "@" +; 12ccd + +SwitchAlreadyHoldingText: ; 12ccd + text_jump UnknownText_0x1c1bdc + db "@" +; 12cd2 + +CantBeHeldText: ; 12cd2 + text_jump UnknownText_0x1c1c09 + db "@" +; 12cd7 + + +GetPartyItemLocation: ; 12cd7 + push af + ld a, MON_ITEM + call GetPartyParamLocation + pop af + ret +; 12cdf + + +Function12cdf: ; 12cdf + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld hl, NumItems + jp ReceiveItem +; 12cea + + +Function12cea: ; 12cea (4:6cea) + ld a, $1 + ld [wItemQuantityChangeBuffer], a + ld hl, NumItems + jp TossItem + +Function12cf5: ; 12cf5 + call MenuTextBox + call YesNoBox + jp ExitMenu +; 12cfe + + +Function12cfe: ; 12cfe (4:6cfe) + ld de, wd002 + callba Function11e75 + ld hl, PlayerName + ld de, wd023 + ld bc, $a + call CopyBytes + ld hl, PlayerID + ld bc, $2 + call CopyBytes + ld a, [CurPartySpecies] + ld [de], a + inc de + ld a, [CurItem] + ld [de], a + ld a, [CurPartyMon] + ld hl, sPartyScratch1 + ld bc, SCRATCHMON_STRUCT_LENGTH + call AddNTimes + ld d, h + ld e, l + ld hl, wd002 + ld bc, SCRATCHMON_STRUCT_LENGTH + ld a, BANK(sPartyScratch1) + call GetSRAMBank + call CopyBytes + call CloseSRAM + ret + +MonMailAction: ; 12d45 +; If in the time capsule or trade center, +; selecting the mail only allows you to +; read the mail. + ld a, [wLinkMode] + cp LINK_TIMECAPSULE + jr z, .read + cp LINK_TRADECENTER + jr z, .read + +; Show the READ/TAKE/QUIT menu. + ld hl, .MenuDataHeader + call LoadMenuDataHeader + call InterpretMenu2 + call ExitMenu + +; Interpret the menu. + jp c, .done + ld a, [MenuSelection2] + cp $1 + jr z, .read + cp $2 + jr z, .take + jp .done + +.read + callba ReadPartyMonMail + ld a, $0 + ret + +.take + ld hl, .sendmailtopctext + call Function12cf5 + jr c, .RemoveMailToBag + ld a, [CurPartyMon] + ld b, a + callba Function4456e + jr c, .MailboxFull + ld hl, .sentmailtopctext + call MenuTextBoxBackup + jr .done + +.MailboxFull + ld hl, .mailboxfulltext + call MenuTextBoxBackup + jr .done + +.RemoveMailToBag + ld hl, .mailwilllosemessagetext + call Function12cf5 + jr c, .done + call GetPartyItemLocation + ld a, [hl] + ld [CurItem], a + call Function12cdf + jr nc, .BagIsFull + call GetPartyItemLocation + ld [hl], $0 + call GetCurNick + ld hl, .tookmailfrommontext + call MenuTextBoxBackup + jr .done + +.BagIsFull + ld hl, .bagfulltext + call MenuTextBoxBackup + jr .done + +.done + ld a, $3 + ret +; 12dc9 + + +.MenuDataHeader: ; 0x12dc9 + db $40 ; flags + db 10, 12 ; start coords + db 17, 19 ; end coords + dw .MenuData2 + db 1 ; default option +; 0x12dd1 + +.MenuData2: ; 0x12dd1 + db $80 ; flags + db 3 ; items + db "READ@" + db "TAKE@" + db "QUIT@" +; 0x12de2 + + +.mailwilllosemessagetext: ; 0x12de2 +; The MAIL will lose its message. OK? + text_jump UnknownText_0x1c1c22 + db "@" +; 0x12de7 + +.tookmailfrommontext: ; 0x12de7 +; MAIL detached from . + text_jump UnknownText_0x1c1c47 + db "@" +; 0x12dec + +.bagfulltext: ; 0x12dec +; There's no space for removing MAIL. + text_jump UnknownText_0x1c1c62 + db "@" +; 0x12df1 + +.sendmailtopctext: ; 0x12df1 +; Send the removed MAIL to your PC? + text_jump UnknownText_0x1c1c86 + db "@" +; 0x12df6 + +.mailboxfulltext: ; 0x12df6 +; Your PC's MAILBOX is full. + text_jump UnknownText_0x1c1ca9 + db "@" +; 0x12dfb + +.sentmailtopctext: ; 0x12dfb +; The MAIL was sent to your PC. + text_jump UnknownText_0x1c1cc4 + db "@" +; 0x12e00 + + +OpenPartyStats: ; 12e00 + call LoadStandardMenuDataHeader + call ClearSprites +; PartyMon + xor a + ld [MonType], a + call LowVolume + predef StatsScreenInit + call MaxVolume + call Call_ExitMenu + ld a, 0 + ret +; 12e1b + + +MonMenu_Cut: ; 12e1b + callba CutFunction + ld a, [wd0ec] + cp $1 + jr nz, .asm_12e2d + ld b, $4 + ld a, $2 + ret + +.asm_12e2d + ld a, $3 + ret +; 12e30 + + +MonMenu_Fly: ; 12e30 + callba FlyFunction + ld a, [wd0ec] + cp $2 + jr z, .asm_12e4c + cp $0 + jr z, .asm_12e4f + callba MobileFn_1060b5 + ld b, $4 + ld a, $2 + ret + +.asm_12e4c + ld a, $3 + ret + +.asm_12e4f + ld a, $0 + ret + +.asm_12e52 + ld a, $1 + ret +; 12e55 + +MonMenu_Flash: ; 12e55 + callba Functionc8ac + ld a, [wd0ec] + cp $1 + jr nz, .asm_12e67 + ld b, $4 + ld a, $2 + ret + +.asm_12e67 + ld a, $3 + ret +; 12e6a + +MonMenu_Strength: ; 12e6a + callba StrengthFunction + ld a, [wd0ec] + cp $1 + jr nz, .asm_12e7c + ld b, $4 + ld a, $2 + ret + +.asm_12e7c + ld a, $3 + ret +; 12e7f + +MonMenu_Whirlpool: ; 12e7f + callba WhirlpoolFunction + ld a, [wd0ec] + cp $1 + jr nz, .asm_12e91 + ld b, $4 + ld a, $2 + ret + +.asm_12e91 + ld a, $3 + ret +; 12e94 + +MonMenu_Waterfall: ; 12e94 + callba Functioncade + ld a, [wd0ec] + cp $1 + jr nz, .asm_12ea6 + ld b, $4 + ld a, $2 + ret + +.asm_12ea6 + ld a, $3 + ret +; 12ea9 + +MonMenu_Teleport: ; 12ea9 + callba TeleportFunction + ld a, [wd0ec] + and a + jr z, .asm_12eba + ld b, $4 + ld a, $2 + ret + +.asm_12eba + ld a, $3 + ret +; 12ebd + +MonMenu_Surf: ; 12ebd + callba SurfFunction + ld a, [wd0ec] + and a + jr z, .asm_12ece + ld b, $4 + ld a, $2 + ret + +.asm_12ece + ld a, $3 + ret +; 12ed1 + +MonMenu_Dig: ; 12ed1 + callba DigFunction + ld a, [wd0ec] + cp $1 + jr nz, .asm_12ee3 + ld b, $4 + ld a, $2 + ret + +.asm_12ee3 + ld a, $3 + ret +; 12ee6 + +MonMenu_Softboiled_MilkDrink: ; 12ee6 + call Function12f05 + jr nc, .asm_12ef3 + callba Functionf3df + jr .asm_12ef9 + +.asm_12ef3 + ld hl, UnknownText_0x12f00 + call PrintText + +.asm_12ef9 + xor a + ld [PartyMenuActionText], a + ld a, $3 + ret +; 12f00 + +UnknownText_0x12f00: ; 0x12f00 + ; Not enough HP! + text_jump UnknownText_0x1c1ce3 + db "@" +; 0x12f05 + +Function12f05: ; 12f05 + ld a, MON_MAXHP + call GetPartyParamLocation + ld a, [hli] + ld [hDividend + 0], a + ld a, [hl] + ld [hDividend + 1], a + ld a, $5 + ld [hDivisor], a + ld b, $2 + call Divide + ld a, MON_HP + 1 + call GetPartyParamLocation + ld a, [hQuotient + 2] + sub [hl] + dec hl + ld a, [hQuotient + 1] + sbc [hl] + ret +; 12f26 + +MonMenu_Headbutt: ; 12f26 + callba HeadbuttFunction + ld a, [wd0ec] + cp $1 + jr nz, .asm_12f38 + ld b, $4 + ld a, $2 + ret + +.asm_12f38 + ld a, $3 + ret +; 12f3b + +MonMenu_RockSmash: ; 12f3b + callba RockSmashFunction + ld a, [wd0ec] + cp $1 + jr nz, .asm_12f4d + ld b, $4 + ld a, $2 + ret + +.asm_12f4d + ld a, $3 + ret +; 12f50 + +MonMenu_SweetScent: ; 12f50 + callba DoMovementFunctionc + ld b, $4 + ld a, $2 + ret +; 12f5b + +Function12f5b: ; 12f5b + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + call LoadFontsBattleExtra + call Function12f73 + pop bc + ld a, b + ld [Options], a + push af + call WhiteBGMap + pop af + ret +; 12f73 + +Function12f73: ; 12f73 + call SetUpMoveScreenBG + ld de, Unknown_12fb2 + call Function1bb1 + call Function131ef + ld hl, wcfa5 + set 6, [hl] + jr Function12f93 + +Function12f86: ; 12f86 + call Function1bd3 + bit 1, a + jp nz, Function12f9f + bit 0, a + jp nz, Function12f9c + +Function12f93: ; 12f93 + call PrepareToPlaceMoveData + call PlaceMoveData + jp Function12f86 +; 12f9c + +Function12f9c: ; 12f9c + and a + jr Function12fa0 + +Function12f9f: ; 12f9f + scf + +Function12fa0: ; 12fa0 + push af + xor a + ld [wd0e3], a + ld hl, wcfa5 + res 6, [hl] + call ClearSprites + call ClearTileMap + pop af + ret +; 12fb2 + +Unknown_12fb2: ; 12fb2 + db $03, $01, $03, $01, $40, $00, $20, $c3 +; 12fba + +ManagePokemonMoves: ; 12fba + ld a, [CurPartySpecies] + cp EGG + jr z, .egg + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + call MoveScreenLoop + pop af + ld [Options], a + call WhiteBGMap + +.egg + ld a, $0 + ret +; 12fd5 + +MoveScreenLoop: ; 12fd5 + ld a, [CurPartyMon] + inc a + ld [wd0d8], a + call SetUpMoveScreenBG + call Function132d3 + ld de, Unknown_13163 + call Function1bb1 +.loop + call Function131ef + ld hl, wcfa5 + set 6, [hl] + jr .skip_joy + +.joy_loop + call Function1bd3 + bit 1, a + jp nz, .b_button + bit 0, a + jp nz, .a_button + bit 4, a + jp nz, .d_right + bit 5, a + jp nz, .d_left + +.skip_joy + call PrepareToPlaceMoveData + ld a, [wMoveSwapBuffer] + and a + jr nz, .moving_move + call PlaceMoveData + jp .joy_loop + +.moving_move + ld a, " " + hlcoord 1, 11 + ld bc, 5 + call ByteFill + hlcoord 1, 12 + lb bc, 5, SCREEN_WIDTH - 2 + call ClearBox + hlcoord 1, 12 + ld de, String_1316b + call PlaceString + jp .joy_loop +.b_button: ; 13038 + call PlayClickSFX + call WaitSFX + ld a, [wMoveSwapBuffer] + and a + jp z, .exit + + ld a, [wMoveSwapBuffer] + ld [MenuSelection2], a + xor a + ld [wMoveSwapBuffer], a + hlcoord 1, 2 + lb bc, 8, SCREEN_WIDTH - 2 + call ClearBox + jp .loop +; 1305b + +.d_right: ; 1305b + ld a, [wMoveSwapBuffer] + and a + jp nz, .joy_loop + + ld a, [CurPartyMon] + ld b, a + push bc + call .cycle_right + pop bc + ld a, [CurPartyMon] + cp b + jp z, .joy_loop + jp MoveScreenLoop + +.d_left: ; 13075 + ld a, [wMoveSwapBuffer] + and a + jp nz, .joy_loop + ld a, [CurPartyMon] + ld b, a + push bc + call .cycle_left + pop bc + ld a, [CurPartyMon] + cp b + jp z, .joy_loop + jp MoveScreenLoop + +.cycle_right + ld a, [CurPartyMon] + inc a + ld [CurPartyMon], a + ld c, a + ld b, 0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + cp -1 + jr z, .cycle_left + cp EGG + ret nz + jr .cycle_right + +.cycle_left + ld a, [CurPartyMon] + and a + ret z +.cycle_left_loop + ld a, [CurPartyMon] + dec a + ld [CurPartyMon], a + ld c, a + ld b, 0 + ld hl, PartySpecies + add hl, bc + ld a, [hl] + cp EGG + ret nz + ld a, [CurPartyMon] + and a + jr z, .cycle_right + jr .cycle_left_loop +; 130c6 + +.a_button: ; 130c6 + call PlayClickSFX + call WaitSFX + ld a, [wMoveSwapBuffer] + and a + jr nz, .place_move + ld a, [MenuSelection2] + ld [wMoveSwapBuffer], a + call Function1bee + jp .moving_move + +.place_move + ld hl, PartyMon1Moves + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + push hl + call .copy_move + pop hl + ld bc, $15 + add hl, bc + call .copy_move + ld a, [wBattleMode] + jr z, .swap_moves + ld hl, BattleMonMoves + ld bc, $20 + ld a, [CurPartyMon] + call AddNTimes + push hl + call .copy_move + pop hl + ld bc, 6 + add hl, bc + call .copy_move + +.swap_moves + ld de, SFX_SWITCH_POKEMON + call PlaySFX + call WaitSFX + ld de, SFX_SWITCH_POKEMON + call PlaySFX + call WaitSFX + hlcoord 1, 2 + lb bc, 8, 18 + call ClearBox + hlcoord 10, 10 + lb bc, 1, 9 + call ClearBox + jp .loop +; 1313a + +.copy_move: ; 1313a + push hl + ld a, [MenuSelection2] + dec a + ld c, a + ld b, $0 + add hl, bc + ld d, h + ld e, l + pop hl + ld a, [wMoveSwapBuffer] + dec a + ld c, a + ld b, $0 + add hl, bc + ld a, [de] + ld b, [hl] + ld [hl], a + ld a, b + ld [de], a + ret +; 13154 + +.exit: ; 13154 + xor a + ld [wMoveSwapBuffer], a + ld hl, wcfa5 + res 6, [hl] + call ClearSprites + jp ClearTileMap +; 13163 + +Unknown_13163: ; 13163 + db $03, $01, $03, $01, $40, $00, $20, $f3 +; 1316b + +String_1316b: ; 1316b + db "Where?@" +; 13172 + +SetUpMoveScreenBG: ; 13172 + call WhiteBGMap + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + callba Functionfb571 + callba InefficientlyClear121BytesAtwc300 + ld a, [CurPartyMon] + ld e, a + ld d, $0 + ld hl, PartySpecies + add hl, de + ld a, [hl] + ld [wd265], a + ld e, $2 + callba Function8e83f + hlcoord 0, 1 + ld b, 9 + ld c, 18 + call TextBox + hlcoord 0, 11 + ld b, 5 + ld c, 18 + call TextBox + hlcoord 2, 0 + lb bc, 2, 3 + call ClearBox + xor a + ld [MonType], a + ld hl, PartyMonNicknames + ld a, [CurPartyMon] + call GetNick + hlcoord 5, 1 + call PlaceString + push bc + callba CopyPkmnToTempMon + pop hl + call PrintLevel + ld hl, PlayerHPPal + call SetHPPal + ld b, $e + call GetSGBLayout + hlcoord 16, 0 + lb bc, 1, 3 + jp ClearBox +; 131ef + +Function131ef: ; 131ef + xor a + ld [hBGMapMode], a + ld [wMoveSwapBuffer], a + ld [MonType], a + predef CopyPkmnToTempMon + ld hl, TempMonMoves + ld de, wListMoves_MoveIndicesBuffer + ld bc, NUM_MOVES + call CopyBytes + ld a, SCREEN_WIDTH * 2 + ld [Buffer1], a + hlcoord 2, 3 + predef ListMoves + hlcoord 10, 4 + predef Function50c50 + call WaitBGMap + call SetPalettes + ld a, [wd0eb] + inc a + ld [wcfa3], a + hlcoord 0, 11 + ld b, 5 + ld c, 18 + jp TextBox +; 13235 + +PrepareToPlaceMoveData: ; 13235 + ld hl, PartyMon1Moves + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld a, [MenuSelection2] + dec a + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [CurMove], a + hlcoord 1, 12 + lb bc, 5, 18 + jp ClearBox +; 13256 + +PlaceMoveData: ; 13256 + xor a + ld [hBGMapMode], a + hlcoord 0, 10 + ld de, String_132ba + call PlaceString + hlcoord 0, 11 + ld de, String_132c2 + call PlaceString + hlcoord 12, 12 + ld de, String_132ca + call PlaceString + ld a, [CurMove] + ld b, a + hlcoord 2, 12 + predef PrintMoveType + ld a, [CurMove] + dec a + ld hl, Moves + MOVE_POWER + ld bc, MOVE_LENGTH + call AddNTimes + ld a, BANK(Moves) + call GetFarByte + hlcoord 16, 12 + cp 2 + jr c, .no_power + ld [wd265], a + ld de, wd265 + lb bc, 1, 3 + call PrintNum + jr .description + +.no_power + ld de, String_132cf + call PlaceString + +.description + hlcoord 1, 14 + predef PrintMoveDesc + ld a, $1 + ld [hBGMapMode], a + ret +; 132ba + +String_132ba: ; 132ba + db "┌─────┐@" +; 132c2 +String_132c2: ; 132c2 + db "│TYPE/└@" +; 132ca +String_132ca: ; 132ca + db "ATK/@" +; 132cf +String_132cf: ; 132cf + db "---@" +; 132d3 + +Function132d3: ; 132d3 + call Function132da + call Function132fe + ret +; 132da + +Function132da: ; 132da + ld a, [CurPartyMon] + and a + ret z + ld c, a + ld e, a + ld d, 0 + ld hl, PartyCount + add hl, de +.loop + ld a, [hl] + and a + jr z, .prev + cp EGG + jr z, .prev + cp NUM_POKEMON + 1 + jr c, .legal + +.prev + dec hl + dec c + jr nz, .loop + ret + +.legal + hlcoord 16, 0 + ld [hl], "◀" + ret +; 132fe + +Function132fe: ; 132fe + ld a, [CurPartyMon] + inc a + ld c, a + ld a, [PartyCount] + cp c + ret z + ld e, c + ld d, 0 + ld hl, PartySpecies + add hl, de +.loop + ld a, [hl] + cp -1 + ret z + and a + jr z, .next + cp EGG + jr z, .next + cp NUM_POKEMON + 1 + jr c, .legal + +.next + inc hl + jr .loop + +.legal + hlcoord 18, 0 + ld [hl], "▶" + ret +; 13327 diff --git a/engine/tmhm.asm b/engine/tmhm.asm new file mode 100755 index 000000000..b66131ac9 --- /dev/null +++ b/engine/tmhm.asm @@ -0,0 +1,113 @@ +CanLearnTMHMMove: ; 11639 + ld a, [CurPartySpecies] + ld [CurSpecies], a + call GetBaseData + ld hl, BaseTMHM + push hl + + ld a, [wd262] + ld b, a + ld c, 0 + ld hl, TMHMMoves +.loop + ld a, [hli] + and a + jr z, .end + cp b + jr z, .asm_11659 + inc c + jr .loop + +.asm_11659 + pop hl + ld b, CHECK_FLAG + push de + ld d, 0 + predef FlagPredef + pop de + ret + +.end + pop hl + ld c, 0 + ret +; 1166a + +GetTMHMMove: ; 1166a + ld a, [wd265] + dec a + ld hl, TMHMMoves + ld b, 0 + ld c, a + add hl, bc + ld a, [hl] + ld [wd265], a + ret +; 1167a + +TMHMMoves: ; 1167a + db DYNAMICPUNCH + db HEADBUTT + db CURSE + db ROLLOUT + db ROAR + db TOXIC + db ZAP_CANNON + db ROCK_SMASH + db PSYCH_UP + db HIDDEN_POWER + db SUNNY_DAY + db SWEET_SCENT + db SNORE + db BLIZZARD + db HYPER_BEAM + db ICY_WIND + db PROTECT + db RAIN_DANCE + db GIGA_DRAIN + db ENDURE + db FRUSTRATION + db SOLARBEAM + db IRON_TAIL + db DRAGONBREATH + db THUNDER + db EARTHQUAKE + db RETURN + db DIG + db PSYCHIC_M + db SHADOW_BALL + db MUD_SLAP + db DOUBLE_TEAM + db ICE_PUNCH + db SWAGGER + db SLEEP_TALK + db SLUDGE_BOMB + db SANDSTORM + db FIRE_BLAST + db SWIFT + db DEFENSE_CURL + db THUNDERPUNCH + db DREAM_EATER + db DETECT + db REST + db ATTRACT + db THIEF + db STEEL_WING + db FIRE_PUNCH + db FURY_CUTTER + db NIGHTMARE + db CUT + db FLY + db SURF + db STRENGTH + db FLASH + db WHIRLPOOL + db WATERFALL + +; Move tutor + db FLAMETHROWER + db THUNDERBOLT + db ICE_BEAM + + db 0 ; end +; 116b7 diff --git a/event/bug_contest_2.asm b/event/bug_contest_2.asm new file mode 100755 index 000000000..4aa4390eb --- /dev/null +++ b/event/bug_contest_2.asm @@ -0,0 +1,136 @@ +Special_SelectRandomBugContestContestants: ; 139a8 +; Select five random people to participate in the current contest. + +; First we have to make sure that any old data is cleared away. + ld c, 10 ; Number of people to choose from. + ld hl, BugCatchingContestantEventFlagTable +.loop1 + push bc + push hl + ld e, [hl] + inc hl + ld d, [hl] + ld b, RESET_FLAG + call EventFlagAction + pop hl +rept 2 + inc hl +endr + pop bc + dec c + jr nz, .loop1 + +; Now that that's out of the way, we can get on to the good stuff. + ld c, 5 +.loop2 + push bc +.next +; Choose a flag at uniform random to be set. + call Random + cp $fa ; 250 + jr nc, .next + ld c, $19 ; 25 + call SimpleDivide + ld e, b + ld d, 0 + ld hl, BugCatchingContestantEventFlagTable +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + push de +; If we've already set it, it doesn't count. + ld b, CHECK_FLAG + call EventFlagAction + pop de + ld a, c + and a + jr nz, .next +; Set the flag. This will cause that sprite to not be visible in the contest. + ld b, SET_FLAG + call EventFlagAction + pop bc +; Check if we're done. If so, return. Otherwise, choose the next victim. + dec c + jr nz, .loop2 + ret +; 139ed + +Special_CheckBugContestContestantFlag: ; 139ed +; Checks the flag of the Bug Catching Contestant whose index is loaded in a. + +; Bug: If a >= 10 when this is called, it will read beyond the table. + + ld hl, BugCatchingContestantEventFlagTable + ld e, a + ld d, 0 +rept 2 + add hl, de +endr + ld e, [hl] + inc hl + ld d, [hl] + ld b, CHECK_FLAG + call EventFlagAction + ret +; 139fe + +BugCatchingContestantEventFlagTable: ; 139fe + dw EVENT_BUG_CATCHING_CONTESTANT_1A + dw EVENT_BUG_CATCHING_CONTESTANT_2A + dw EVENT_BUG_CATCHING_CONTESTANT_3A + dw EVENT_BUG_CATCHING_CONTESTANT_4A + dw EVENT_BUG_CATCHING_CONTESTANT_5A + dw EVENT_BUG_CATCHING_CONTESTANT_6A + dw EVENT_BUG_CATCHING_CONTESTANT_7A + dw EVENT_BUG_CATCHING_CONTESTANT_8A + dw EVENT_BUG_CATCHING_CONTESTANT_9A + dw EVENT_BUG_CATCHING_CONTESTANT_10A +; 13a12 + +ContestDropOffMons: ; 13a12 + ld hl, PartyMon1HP + ld a, [hli] + or [hl] + jr z, .fainted +; Mask the rest of your party by setting the count to 1... + ld hl, PartyCount + ld a, 1 + ld [hli], a + inc hl +; ... backing up the second mon index somewhere... + ld a, [hl] + ld [wBugContestSecondPartySpecies], a +; ... and replacing it with the terminator byte + ld [hl], $ff + xor a + ld [ScriptVar], a + ret + +.fainted + ld a, $1 + ld [ScriptVar], a + ret +; 13a31 + +ContestReturnMons: ; 13a31 +; Restore the species of the second mon. + ld hl, PartySpecies + 1 + ld a, [wBugContestSecondPartySpecies] + ld [hl], a +; Restore the party count, which must be recomputed. + ld b, $1 +.loop + ld a, [hli] + cp $ff + jr z, .done + inc b + jr .loop + +.done + ld a, b + ld [PartyCount], a + ret +; 13a47 diff --git a/event/bug_contest_judging.asm b/event/bug_contest_judging.asm new file mode 100755 index 000000000..25b3805ee --- /dev/null +++ b/event/bug_contest_judging.asm @@ -0,0 +1,480 @@ +_BugContestJudging: ; 1369d + call ContestScore + callba MobileFn_105f79 + call Function13819 + ld a, [wd00a] + call LoadContestantName + ld a, [wd00b] + ld [wd265], a + call GetPokemonName + ld hl, BugContest_ThirdPlaceText + call PrintText + ld a, [EndFlypoint] + call LoadContestantName + ld a, [MovementBuffer] + ld [wd265], a + call GetPokemonName + ld hl, BugContest_SecondPlaceText + call PrintText + ld a, [wd002] + call LoadContestantName + ld a, [wd003] + ld [wd265], a + call GetPokemonName + ld hl, BugContest_FirstPlaceText + call PrintText + jp Function13807 +; 136eb + +BugContest_FirstPlaceText: ; 0x136eb + text_jump ContestJudging_FirstPlaceText + start_asm +BugContest_FirstPlace: ; 136f0 + ld de, SFX_1ST_PLACE + call PlaySFX + call WaitSFX + ld hl, BugContest_FirstPlaceScoreText + ret +; 136fd + +BugContest_FirstPlaceScoreText: ; 0x136fd + ; The winning score was @ points! + text_jump ContestJudging_FirstPlaceScoreText + db "@" +; 0x13702 + +BugContest_SecondPlaceText: ; 0x13702 + ; Placing second was @ , who caught a @ !@ @ + text_jump ContestJudging_SecondPlaceText + start_asm +BugContest_SecondPlace: ; 13707 + ld de, SFX_2ND_PLACE + call PlaySFX + call WaitSFX + ld hl, BugContest_SecondPlaceScoreText + ret +; 13714 + +BugContest_SecondPlaceScoreText: ; 0x13714 + ; The score was @ points! + text_jump ContestJudging_SecondPlaceScoreText + db "@" +; 0x13719 + +BugContest_ThirdPlaceText: ; 0x13719 + ; Placing third was @ , who caught a @ !@ @ + text_jump ContestJudging_ThirdPlaceText + start_asm +; 0x1371e + +BugContest_ThirdPlace: ; 1371e + ld de, SFX_3RD_PLACE + call PlaySFX + call WaitSFX + ld hl, BugContest_ThirdPlaceScoreText + ret +; 1372b + +BugContest_ThirdPlaceScoreText: ; 0x1372b + ; The score was @ points! + text_jump ContestJudging_ThirdPlaceScoreText + db "@" +; 0x13730 + +LoadContestantName: ; 13730 + +; If a = 0, get your name. + dec a + jr z, .done +; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a. + ld c, a + ld b, 0 + ld hl, BugContestantPointers +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a +; Copy the Trainer Class to c. + ld a, [hli] + ld c, a +; Save hl and bc for later. + push hl + push bc +; Get the Trainer Class name and copy it into wd016. + callab GetTrainerClassName + ld hl, StringBuffer1 + ld de, wd016 + ld bc, TRAINER_CLASS_NAME_LENGTH + call CopyBytes + ld hl, wd016 +; Delete the trailing terminator and replace it with a space. +.next + ld a, [hli] + cp "@" + jr nz, .next + dec hl + ld [hl], " " + inc hl + ld d, h + ld e, l +; Restore the Trainer Class ID and Trainer ID pointer. Save de for later. + pop bc + pop hl + push de +; Get the name of the trainer with class c and ID b. + ld a, [hl] + ld b, a + callab GetTrainerName +; Append the name to wd016. + ld hl, StringBuffer1 + pop de + ld bc, NAME_LENGTH - 1 + jp CopyBytes + +.done + ld hl, PlayerName + ld de, wd016 + ld bc, NAME_LENGTH + jp CopyBytes +; 13783 + +BugContestantPointers: ; 13783 + dw BugContestant_BugCatcherDon ; This reverts back to the player + dw BugContestant_BugCatcherDon + dw BugContestant_BugCatcherEd + dw BugContestant_CooltrainerMNick + dw BugContestant_PokefanMWilliam + dw BugContestant_BugCatcherBenny + dw BugContestant_CamperBarry + dw BugContestant_PicnickerCindy + dw BugContestant_BugCatcherJosh + dw BugContestant_YoungsterSamuel + dw BugContestant_SchoolboyKipp +; 13799 + +BugContestant_BugCatcherDon: + db BUG_CATCHER, DON + dbw KAKUNA, 300 + dbw METAPOD, 285 + dbw CATERPIE, 226 + +BugContestant_BugCatcherEd: + db BUG_CATCHER, ED + dbw BUTTERFREE, 286 + dbw BUTTERFREE, 251 + dbw CATERPIE, 237 + +BugContestant_CooltrainerMNick: + db COOLTRAINERM, NICK + dbw SCYTHER, 357 + dbw BUTTERFREE, 349 + dbw PINSIR, 368 + +BugContestant_PokefanMWilliam: + db POKEFANM, WILLIAM + dbw PINSIR, 332 + dbw BUTTERFREE, 324 + dbw VENONAT, 321 + +BugContestant_BugCatcherBenny: + db BUG_CATCHER, BUG_CATCHER_BENNY + dbw BUTTERFREE, 318 + dbw WEEDLE, 295 + dbw CATERPIE, 285 + +BugContestant_CamperBarry: + db CAMPER, BARRY + dbw PINSIR, 366 + dbw VENONAT, 329 + dbw KAKUNA, 314 + +BugContestant_PicnickerCindy: + db PICNICKER, CINDY + dbw BUTTERFREE, 341 + dbw METAPOD, 301 + dbw CATERPIE, 264 + +BugContestant_BugCatcherJosh: + db BUG_CATCHER, JOSH + dbw SCYTHER, 326 + dbw BUTTERFREE, 292 + dbw METAPOD, 282 + +BugContestant_YoungsterSamuel: + db YOUNGSTER, SAMUEL + dbw WEEDLE, 270 + dbw PINSIR, 282 + dbw CATERPIE, 251 + +BugContestant_SchoolboyKipp: + db SCHOOLBOY, KIPP + dbw VENONAT, 267 + dbw PARAS, 254 + dbw KAKUNA, 259 +; 13807 + +Function13807: ; 13807 + ld hl, wd00a + ld de, -4 + ld b, 3 +.loop + ld a, [hl] + cp 1 + jr z, .done + add hl, de + dec b + jr nz, .loop + +.done + ret +; 13819 + +Function13819: ; 13819 + call Function13833 + call Function138b0 + ld hl, wd00e + ld a, 1 + ld [hli], a + ld a, [wContestMon] + ld [hli], a + ld a, [hProduct] + ld [hli], a + ld a, [hMultiplicand] + ld [hl], a + call Function1383e + ret +; 13833 + +Function13833: ; 13833 + ld hl, wd002 + ld b, 12 + xor a +.loop + ld [hli], a + dec b + jr nz, .loop + ret +; 1383e + +Function1383e: ; 1383e + ld de, wd010 + ld hl, wd004 + ld c, 2 + call StringCmp + jr c, .next + ld hl, EndFlypoint + ld de, wd00a + ld bc, 4 + call CopyBytes + ld hl, wd002 + ld de, EndFlypoint + ld bc, 4 + call CopyBytes + ld hl, wd002 + call Function138a0 + jr .done + +.next + ld de, wd010 + ld hl, wd008 + ld c, 2 + call StringCmp + jr c, .next2 + ld hl, EndFlypoint + ld de, wd00a + ld bc, 4 + call CopyBytes + ld hl, EndFlypoint + call Function138a0 + jr .done + +.next2 + ld de, wd010 + ld hl, wd00c + ld c, 2 + call StringCmp + jr c, .done + ld hl, wd00a + call Function138a0 + +.done + ret +; 138a0 + +Function138a0: ; 138a0 + ld de, wd00e + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hl], a + ret +; 138b0 + +Function138b0: ; 138b0 + ld e, 0 +.loop + push de + call Special_CheckBugContestContestantFlag + pop de + jr nz, .done + ld a, e +rept 2 + inc a +endr + ld [wd00e], a + dec a + ld c, a + ld b, 0 + ld hl, BugContestantPointers +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a +rept 2 + inc hl +endr +.loop2 + call Random + and 3 + cp 3 + jr z, .loop2 + ld c, a + ld b, 0 +rept 3 + add hl, bc +endr + ld a, [hli] + ld [wd00f], a + ld a, [hli] + ld h, [hl] + ld l, a + call Random + and 7 + ld c, a + ld b, 0 + add hl, bc + ld a, h + ld [wd010], a + ld a, l + ld [wd011], a + push de + call Function1383e + pop de + +.done + inc e + ld a, e + cp 10 + jr nz, .loop + ret +; 13900 + +ContestScore: ; 13900 +; Determine the player's score in the Bug Catching Contest. + + xor a + ld [hProduct], a + ld [hMultiplicand], a + + ld a, [wContestMonSpecies] ; Species + and a + jr z, .done + + ; Tally the following: + + ; Max HP * 4 + ld a, [wContestMonMaxHP + 1] + call .AddContestStat + ld a, [wContestMonMaxHP + 1] + call .AddContestStat + ld a, [wContestMonMaxHP + 1] + call .AddContestStat + ld a, [wContestMonMaxHP + 1] + call .AddContestStat + + ; Stats + ld a, [wContestMonAttack + 1] + call .AddContestStat + ld a, [wContestMonDefense + 1] + call .AddContestStat + ld a, [wContestMonSpeed + 1] + call .AddContestStat + ld a, [wContestMonSpclAtk + 1] + call .AddContestStat + ld a, [wContestMonSpclDef + 1] + call .AddContestStat + + ; DVs + ld a, [wContestMonDVs + 0] + ld b, a + and 2 +rept 2 + add a +endr + ld c, a + + swap b + ld a, b + and 2 + add a + add c + ld d, a + + ld a, [wContestMonDVs + 1] + ld b, a + and 2 + ld c, a + + swap b + ld a, b + and 2 + srl a +rept 2 + add c +endr +rept 2 + add d +endr + + call .AddContestStat + + ; Remaining HP / 8 + ld a, [wContestMonHP + 1] + srl a + srl a + srl a + call .AddContestStat + + ; Whether it's holding an item + ld a, [wContestMonItem] + and a + jr z, .done + + ld a, 1 + call .AddContestStat + +.done + ret +; 1397f + +.AddContestStat: ; 1397f + ld hl, hMultiplicand + add [hl] + ld [hl], a + ret nc + dec hl + inc [hl] + ret +; 13988 diff --git a/event/elevator.asm b/event/elevator.asm new file mode 100755 index 000000000..42a844cae --- /dev/null +++ b/event/elevator.asm @@ -0,0 +1,287 @@ +Elevator:: ; 1342d + call Function1344a + call Function1347d + jr c, .asm_13448 + ld [wd041], a + call Function134dd + jr c, .asm_13448 + ld hl, wd041 + cp [hl] + jr z, .asm_13448 + call Function134c0 + and a + ret + +.asm_13448 + scf + ret +; 1344a + +Function1344a: ; 1344a + ld a, b + ld [EngineBuffer1], a + ld a, e + ld [wd03f], a + ld a, d + ld [wd040], a + call Function1345a + ret +; 1345a + +Function1345a: ; 1345a + ld de, OBPals + 8 * 6 + ld bc, 4 + ld hl, wd03f + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [EngineBuffer1] + call GetFarByte + inc hl + ld [de], a + inc de +.asm_1346f + ld a, [EngineBuffer1] + call GetFarByte + ld [de], a + inc de + add hl, bc + cp $ff + jr nz, .asm_1346f + ret +; 1347d + +Function1347d: ; 1347d + ld hl, wd03f + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [EngineBuffer1] + call GetFarByte + ld c, a + inc hl + ld a, [BackupMapGroup] + ld d, a + ld a, [BackupMapNumber] + ld e, a + ld b, $0 +.asm_13495 + ld a, [EngineBuffer1] + call GetFarByte + cp $ff + jr z, .asm_134be +rept 2 + inc hl +endr + ld a, [EngineBuffer1] + call GetFarByte + inc hl + cp d + jr nz, .asm_134b7 + ld a, [EngineBuffer1] + call GetFarByte + inc hl + cp e + jr nz, .asm_134b8 + jr .asm_134bb + +.asm_134b7 + inc hl + +.asm_134b8 + inc b + jr .asm_13495 + +.asm_134bb + xor a + ld a, b + ret + +.asm_134be + scf + ret +; 134c0 + +Function134c0: ; 134c0 + push af + ld hl, wd03f + ld a, [hli] + ld h, [hl] + ld l, a + inc hl + pop af + ld bc, 4 + call AddNTimes + inc hl + ld de, wdcac + ld a, [EngineBuffer1] + ld bc, 3 + call FarCopyBytes + ret +; 134dd + +Function134dd: ; 134dd + call LoadStandardMenuDataHeader + ld hl, Elevator_WhichFloorText + call PrintText + call Elevator_GetCurrentFloorText + ld hl, Elevator_MenuDataHeader + call CopyMenuDataHeader + call Function352f + call UpdateSprites + xor a + ld [wd0e4], a + call HandleScrollingMenu + call WriteBackup + ld a, [wcf73] + cp $2 + jr z, .asm_1350b + xor a + ld a, [wcf77] + ret + +.asm_1350b + scf + ret +; 1350d + +Elevator_WhichFloorText: ; 0x1350d + ; Which floor? + text_jump UnknownText_0x1bd2bc + db "@" +; 0x13512 + + +Elevator_GetCurrentFloorText: ; 13512 + ld hl, Options + ld a, [hl] + push af + set NO_TEXT_SCROLL, [hl] + hlcoord 0, 0 + ld b, 4 + ld c, 8 + call TextBox + hlcoord 1, 2 + ld de, Elevator_CurrentFloorText + call PlaceString + hlcoord 4, 4 + call Elevator_GetCurrentFloorString + pop af + ld [Options], a + ret +; 13537 + +Elevator_CurrentFloorText: ; 13537 + db "Now on:@" +; 1353f + + +Elevator_GetCurrentFloorString: ; 1353f + push hl + ld a, [wd041] + ld e, a + ld d, 0 + ld hl, wd0f1 + add hl, de + ld a, [hl] + pop de + call GetFloorString + ret +; 13550 + +Elevator_MenuDataHeader: ; 0x13550 + db $40 ; flags + db 01, 12 ; start coords + db 09, 18 ; end coords + dw Elevator_MenuData2 + db 1 ; default option +; 0x13558 + +Elevator_MenuData2: ; 0x13558 + db $10 ; flags + db 4, 0 ; rows, columns + db 1 ; horizontal spacing + dbw 0, OBPals + 8 * 6 + dba GetElevatorFlorStrings + dba NULL + dba NULL +; 13568 + +GetElevatorFlorStrings: ; 13568 + ld a, [MenuSelection] + +GetFloorString: ; 1356b + push de + call FloorToString + ld d, h + ld e, l + pop hl + jp PlaceString +; 13575 + +FloorToString: ; 13575 + push de + ld e, a + ld d, 0 + ld hl, .floors +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + pop de + ret +; 13583 + +.floors + dw .b4f + dw .b3f + dw .b2f + dw .b1f + dw ._1f + dw ._2f + dw ._3f + dw ._4f + dw ._5f + dw ._6f + dw ._7f + dw ._8f + dw ._9f + dw ._10f + dw ._11f + dw .roof + +.b4f + db "B4F@" +.b3f + db "B3F@" +.b2f + db "B2F@" +.b1f + db "B1F@" +._1f + db "1F@" +._2f + db "2F@" +._3f + db "3F@" +._4f + db "4F@" +._5f + db "5F@" +._6f + db "6F@" +._7f + db "7F@" +._8f + db "8F@" +._9f + db "9F@" +._10f + db "10F@" +._11f + db "11F@" +.roof + db "ROOF@" +; 135db diff --git a/event/forced_movement.asm b/event/forced_movement.asm new file mode 100755 index 000000000..89a776d60 --- /dev/null +++ b/event/forced_movement.asm @@ -0,0 +1,68 @@ +Script_ForcedMovement:: ; 0x1253d + checkcode VAR_FACING + if_equal DOWN, .down + if_equal UP, .up + if_equal LEFT, .left + if_equal RIGHT, .right + end +; 0x12550 + +.up: ; 0x12550 + applymovement PLAYER, .MovementData_up + end +; 0x12555 + +.down: ; 0x12555 + applymovement PLAYER, .MovementData_down + end +; 0x1255a + +.right: ; 0x1255a + applymovement PLAYER, .MovementData_right + end +; 0x1255f + +.left: ; 0x1255f + applymovement PLAYER, .MovementData_left + end +; 0x12564 + +.MovementData_up: ; 0x12564 + step_wait5 + big_step_down + turn_in_down + step_wait5 + big_step_down + turn_head_down + step_end +; 0x1256b + +.MovementData_down: ; 0x1256b + step_wait5 + big_step_down + turn_in_up + step_wait5 + big_step_down + turn_head_up + step_end +; 0x12572 + +.MovementData_right: ; 0x12572 + step_wait5 + big_step_down + turn_in_left + step_wait5 + big_step_down + turn_head_left + step_end +; 0x12579 + +.MovementData_left: ; 0x12579 + step_wait5 + big_step_down + turn_in_right + step_wait5 + big_step_down + turn_head_right + step_end +; 0x12580 diff --git a/event/itemball.asm b/event/itemball.asm new file mode 100755 index 000000000..0e74cbd27 --- /dev/null +++ b/event/itemball.asm @@ -0,0 +1,54 @@ +FindItemInBallScript:: ; 0x122ce + callasm .TryReceiveItem + iffalse .no_room + disappear LAST_TALKED + loadfont + writetext .text_found + playsound SFX_ITEM + pause 60 + itemnotify + loadmovesprites + end +; 0x122e3 + +.no_room: ; 0x122e3 + loadfont + writetext .text_found + closetext + writetext .text_bag_full + closetext + loadmovesprites + end +; 0x122ee + +.text_found: ; 0x122ee + ; found @ ! + text_jump UnknownText_0x1c0a1c + db "@" +; 0x122f3 + +.text_bag_full: ; 0x122f3 + ; But can't carry any more items. + text_jump UnknownText_0x1c0a2c + db "@" +; 0x122f8 + +.TryReceiveItem: ; 122f8 + xor a + ld [ScriptVar], a + ld a, [EngineBuffer1] + ld [wd265], a + call GetItemName + ld hl, StringBuffer3 + call CopyName2 + ld a, [EngineBuffer1] + ld [CurItem], a + ld a, [CurFruit] + ld [wItemQuantityChangeBuffer], a + ld hl, NumItems + call ReceiveItem + ret nc + ld a, $1 + ld [ScriptVar], a + ret +; 12324 diff --git a/event/itemfinder.asm b/event/itemfinder.asm new file mode 100755 index 000000000..23de57058 --- /dev/null +++ b/event/itemfinder.asm @@ -0,0 +1,58 @@ +ItemFinder: ; 12580 + callba CheckForSignpostItems + jr c, .found_something + ld hl, .Script_FoundNothing + jr .resume + +.found_something + ld hl, .Script_FoundSomething + +.resume + call QueueScript + ld a, $1 + ld [wd0ec], a + ret +; 12599 + +.ItemfinderSound: ; 12599 + ld c, $4 +.sfx_loop + push bc + ld de, SFX_SECOND_PART_OF_ITEMFINDER + call WaitPlaySFX + ld de, SFX_TRANSACTION + call WaitPlaySFX + pop bc + dec c + jr nz, .sfx_loop + ret +; 125ad + +.Script_FoundSomething: ; 0x125ad + reloadmappart + special UpdateTimePals + callasm .ItemfinderSound + writetext .Text_FoundSomething + loadmovesprites + end +; 0x125ba + +.Script_FoundNothing: ; 0x125ba + reloadmappart + special UpdateTimePals + writetext .Text_FoundNothing + loadmovesprites + end +; 0x125c3 + +.Text_FoundSomething: ; 0x125c3 + ; Yes! ITEMFINDER indicates there's an item nearby. + text_jump UnknownText_0x1c0a77 + db "@" +; 0x125c8 + +.Text_FoundNothing: ; 0x125c8 + ; Nope! ITEMFINDER isn't responding. + text_jump UnknownText_0x1c0aa9 + db "@" +; 0x125cd diff --git a/event/kurt.asm b/event/kurt.asm index 5e3433964..8f9dd4fd6 100644 --- a/event/kurt.asm +++ b/event/kurt.asm @@ -23,7 +23,7 @@ UnknownText_0x88013: ; 0x88013 ; 0x88018 Special_SelectApricornForKurt: ; 88018 - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld c, $1 xor a ld [wd0e4], a diff --git a/event/mom.asm b/event/mom.asm index 801787c52..987f4bf0c 100644 --- a/event/mom.asm +++ b/event/mom.asm @@ -103,7 +103,7 @@ endr .AccessBankOfMom: ; 162a8 ld hl, UnknownText_0x1665d call PrintText - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, MenuDataHeader_0x166b5 call CopyMenuDataHeader call InterpretMenu2 @@ -148,7 +148,7 @@ endr ld [hl], a ld a, $5 ld [wcf64], a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function16517 call Function1656b call Function16571 @@ -216,7 +216,7 @@ endr ld [hl], a ld a, $5 ld [wcf64], a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function16512 call Function1656b call Function16571 diff --git a/event/move_deleter.asm b/event/move_deleter.asm index 0cd677dbe..617e3b86d 100644 --- a/event/move_deleter.asm +++ b/event/move_deleter.asm @@ -19,7 +19,7 @@ MoveDeletion: jr z, .asm_2c5ca ld hl, UnknownText_0x2c5ea call PrintText - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Function12f5b push af call Function2b74 diff --git a/event/whiteout.asm b/event/whiteout.asm new file mode 100755 index 000000000..6cf6976cf --- /dev/null +++ b/event/whiteout.asm @@ -0,0 +1,84 @@ +Script_BattleWhiteout:: ; 0x124c1 + callasm BattleBGMap + jump Script_Whiteout +; 0x124c8 + +Script_OverworldWhiteout:: ; 0x124c8 + refreshscreen $0 + callasm OverworldBGMap + +Script_Whiteout: ; 0x124ce + writetext .WhitedOutText + closetext + special FadeBlackBGMap + pause 40 + special HealParty + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue .bug_contest + callasm HalveMoney + callasm GetWhiteoutSpawn + farscall Script_AbortBugContest + special WarpToSpawnPoint + newloadmap MAPSETUP_WARP + resetfuncs + +.bug_contest + jumpstd bugcontestresultswarp +; 0x124f5 + +.WhitedOutText: ; 0x124f5 + ; is out of useable #MON! whited out! + text_jump UnknownText_0x1c0a4e + db "@" +; 0x124fa + +OverworldBGMap: ; 124fa + call ClearPalettes + call ClearScreen + call Function3200 + call HideSprites + call Function4f0 + ret +; 1250a + +BattleBGMap: ; 1250a + ld b, $0 + call GetSGBLayout + call SetPalettes + ret +; 12513 + +HalveMoney: ; 12513 + +; Empty function... + callba MobileFn_1060c7 + +; Halve the player's money. + ld hl, Money + ld a, [hl] + srl a + ld [hli], a + ld a, [hl] + rra + ld [hli], a + ld a, [hl] + rra + ld [hl], a + ret +; 12527 + + +GetWhiteoutSpawn: ; 12527 + ld a, [wLastSpawnMapGroup] + ld d, a + ld a, [wLastSpawnMapNumber] + ld e, a + callba IsSpawnPoint + ld a, c + jr c, .yes + xor a ; SPAWN_HOME + +.yes + ld [wd001], a + ret +; 1253d diff --git a/home.asm b/home.asm index a5bb83a97..290b9aeb5 100644 --- a/home.asm +++ b/home.asm @@ -1711,11 +1711,11 @@ DrawBattleHPBar:: ; 3750 ; 3786 -Function3786:: ; 3786 +PrepMonFrontpic:: ; 3786 ld a, $1 ld [wc2c6], a -Function378b:: ; 378b +_PrepMonFrontpic:: ; 378b ld a, [CurPartySpecies] call IsAPokemon jr c, .not_pokemon diff --git a/home/map.asm b/home/map.asm index fe16910f2..bb73f4e03 100644 --- a/home/map.asm +++ b/home/map.asm @@ -1963,7 +1963,7 @@ CheckStandingOnXYTrigger:: ; 2ae7 FadeToMenu:: ; 2b29 xor a ld [hBGMapMode], a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba FadeBlackBGMap call ClearSprites call DisableSpriteUpdates diff --git a/home/menu.asm b/home/menu.asm index 74ecd7ce3..30497a44c 100644 --- a/home/menu.asm +++ b/home/menu.asm @@ -52,7 +52,7 @@ MenuTextBoxBackup:: ; 1d67 ret ; 1d6e -LoadPartyMenuDataHeader:: ; 1d6e +LoadStandardMenuDataHeader:: ; 1d6e ld hl, MenuDataHeader_0x1d75 call LoadMenuDataHeader ret diff --git a/items/item_effects.asm b/items/item_effects.asm index e7fcaa35d..f47e2669e 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -603,7 +603,7 @@ endr xor a ; PARTYMON ld [MonType], a ld b, 0 - callba Function116c1 + callba NamingScreen call FadeToWhite @@ -656,7 +656,7 @@ endr ld [MonType], a ld de, wd050 ld b, $0 - callba Function116c1 + callba NamingScreen ld a, BANK(sBoxMonNicknames) call GetSRAMBank diff --git a/macros/charmap.asm b/macros/charmap.asm index e497b13c4..73446d8e7 100644 --- a/macros/charmap.asm +++ b/macros/charmap.asm @@ -42,6 +42,8 @@ charmap "", $70 charmap "", $71 charmap "◀", $71 + charmap "<``>", $72 + charmap "<''>", $73 charmap "", $73 charmap "№", $74 charmap "…", $75 diff --git a/main.asm b/main.asm index 26370edaf..b58e05282 100644 --- a/main.asm +++ b/main.asm @@ -415,7 +415,7 @@ Continue: ; 5d65 callba TryLoadSaveFile jr c, .FailToLoad callba Function150b9 - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function5e85 ld a, $1 ld [hBGMapMode], a @@ -740,7 +740,7 @@ OakSpeech: ; 0x5f99 ld [CurPartySpecies], a ld a, POKEMON_PROF ld [TrainerClass], a - call Function619c + call Intro_PrepTrainerPic ld b, $1c call GetSGBLayout @@ -757,7 +757,7 @@ OakSpeech: ; 0x5f99 call GetBaseData hlcoord 6, 4 - call Function3786 + call PrepMonFrontpic xor a ld [TempMonDVs], a @@ -778,7 +778,7 @@ OakSpeech: ; 0x5f99 ld [CurPartySpecies], a ld a, POKEMON_PROF ld [TrainerClass], a - call Function619c + call Intro_PrepTrainerPic ld b, $1c call GetSGBLayout @@ -811,10 +811,10 @@ OakText1: ; 0x6045 OakText2: ; 0x604a text_jump _OakText2 start_asm - ld a,WOOPER + ld a, WOOPER call PlayCry call WaitSFX - ld hl,OakText3 + ld hl, OakText3 ret OakText3: ; 0x605b @@ -851,7 +851,7 @@ NamePlayer: ; 0x6074 .NewName ld b, 1 ld de, PlayerName - callba Function116c1 + callba NamingScreen call FadeToWhite call ClearTileMap @@ -997,7 +997,7 @@ Intro_WipeInFrontpic: ; 6182 jr .loop ; 619c -Function619c: ; 619c +Intro_PrepTrainerPic: ; 619c ld de, VTiles2 callba GetTrainerPic xor a @@ -5218,7 +5218,7 @@ FlyFunction: ; ca3b .outdoors xor a ld [hMapAnims], a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call ClearSprites callba _FlyMap ld a, e @@ -5265,7 +5265,7 @@ FlyFunction: ; ca3b callasm HideSprites special UpdateTimePals callasm Function8caed - farscall UnknownScript_0x122c1 + farscall Script_AbortBugContest special WarpToSpawnPoint callasm DelayLoadingNewSprites writecode VAR_MOVEMENT, $0 @@ -5534,7 +5534,7 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c loadmovesprites playsound SFX_WARP_TO applymovement PLAYER, MovementData_0xcc59 - farscall UnknownScript_0x122c1 + farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 newloadmap MAPSETUP_05 @@ -5632,7 +5632,7 @@ Script_UsedTeleport: ; 0xccbb loadmovesprites playsound SFX_WARP_TO applymovement PLAYER, MovementData_0xcce1 - farscall UnknownScript_0x122c1 + farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 newloadmap MAPSETUP_04 @@ -9735,12 +9735,12 @@ TextJump_WasSentToBillsPC: ; 0xe3d9 InitNickname: ; e3de push de - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call DisableSpriteUpdates pop de push de ld b, $0 - callba Function116c1 + callba NamingScreen pop hl ld de, StringBuffer1 call InitName @@ -9776,7 +9776,7 @@ UnknownText_0xe417: ; 0xe417 Functione41c: ; e41c (3:641c) xor a ld [hBGMapMode], a - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call ClearPCItemScreen ld hl, Options ld a, [hl] @@ -9872,7 +9872,7 @@ Functione4cb: ; e4cb ; e4cd Functione4cd: ; e4cd - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Function44781 jr nc, .asm_e4e0 ld hl, UnknownText_0xe4f9 @@ -9899,7 +9899,7 @@ UnknownText_0xe4f9: ; 0xe4f9 ; 0xe4fe Functione4fe: ; e4fe (3:64fe) - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Functione2391 call Function222a call ClearPCItemScreen @@ -9975,7 +9975,7 @@ CheckCurPartyMonFainted: ; e538 Functione559: ; e559 (3:6559) - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Functione2583 call Function222a call ClearPCItemScreen @@ -10362,143 +10362,19 @@ UnknownText_0xfa06: ; 0xfa06 SECTION "bank4", ROMX, BANK[$4] - INCLUDE "engine/pack.asm" INCLUDE "engine/time.asm" -CanLearnTMHMMove: ; 11639 - ld a, [CurPartySpecies] - ld [CurSpecies], a - call GetBaseData - ld hl, BaseTMHM - push hl - - ld a, [wd262] - ld b, a - ld c, 0 - ld hl, TMHMMoves -.loop - ld a, [hli] - and a - jr z, .end - cp b - jr z, .asm_11659 - inc c - jr .loop - -.asm_11659 - pop hl - ld b, CHECK_FLAG - push de - ld d, 0 - predef FlagPredef - pop de - ret - -.end - pop hl - ld c, 0 - ret -; 1166a - -GetTMHMMove: ; 1166a - ld a, [wd265] - dec a - ld hl, TMHMMoves - ld b, 0 - ld c, a - add hl, bc - ld a, [hl] - ld [wd265], a - ret -; 1167a - -TMHMMoves: ; 1167a - db DYNAMICPUNCH - db HEADBUTT - db CURSE - db ROLLOUT - db ROAR - db TOXIC - db ZAP_CANNON - db ROCK_SMASH - db PSYCH_UP - db HIDDEN_POWER - db SUNNY_DAY - db SWEET_SCENT - db SNORE - db BLIZZARD - db HYPER_BEAM - db ICY_WIND - db PROTECT - db RAIN_DANCE - db GIGA_DRAIN - db ENDURE - db FRUSTRATION - db SOLARBEAM - db IRON_TAIL - db DRAGONBREATH - db THUNDER - db EARTHQUAKE - db RETURN - db DIG - db PSYCHIC_M - db SHADOW_BALL - db MUD_SLAP - db DOUBLE_TEAM - db ICE_PUNCH - db SWAGGER - db SLEEP_TALK - db SLUDGE_BOMB - db SANDSTORM - db FIRE_BLAST - db SWIFT - db DEFENSE_CURL - db THUNDERPUNCH - db DREAM_EATER - db DETECT - db REST - db ATTRACT - db THIEF - db STEEL_WING - db FIRE_PUNCH - db FURY_CUTTER - db NIGHTMARE - db CUT - db FLY - db SURF - db STRENGTH - db FLASH - db WHIRLPOOL - db WATERFALL - -; Move tutor - db FLAMETHROWER - db THUNDERBOLT - db ICE_BEAM - - db 0 ; end -; 116b7 +INCLUDE "engine/tmhm.asm" -_NamingScreen: ; 0x116b7 - call DisableSpriteUpdates - call Function116c1 - call Function2b74 - ret -; 0x116c1 +INCLUDE "engine/namingscreen.asm" -Function116c1: ; 116c1 +Function11e75: ; 11e75 (4:5e75) ld hl, wc6d0 ld [hl], e inc hl ld [hl], d - ld hl, wc6d4 - ld [hl], b - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] ld a, [hMapAnims] push af xor a @@ -10507,327 +10383,119 @@ Function116c1: ; 116c1 push af ld a, $1 ld [hInMenu], a - call Function116f8 + call Function11e9a call DelayFrame -.asm_116e5 - call Function11915 - jr nc, .asm_116e5 +.asm_11e8e + call Function11fc0 + jr nc, .asm_11e8e pop af ld [hInMenu], a pop af ld [hMapAnims], a - pop af - ld [Options], a - call ClearJoypad ret -; 116f8 -Function116f8: ; 116f8 +Function11e9a: ; 11e9a (4:5e9a) call WhiteBGMap - ld b, $8 - call GetSGBLayout call DisableLCD call Function11c51 - call Function118a8 - ld a, $e3 - ld [rLCDC], a - call Function1171d - call WaitBGMap - call WaitTop - call SetPalettes - call Function11be0 - ret -; 1171d - -Function1171d: ; 1171d - ld a, [wc6d4] - and 7 - ld e, a - ld d, 0 - ld hl, Jumptable_1172e -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 1172e - - -Jumptable_1172e: ; 1172e (4:572e) - dw Function1173e - dw Function1178d - dw Function117ae - dw Function117d1 - dw Function117f5 - dw Function1182c - dw Function1173e - dw Function1173e - - -Function1173e: ; 1173e (4:573e) - ld a, [CurPartySpecies] - ld [wd265], a - ld hl, Function8e83f - ld a, BANK(Function8e83f) - ld e, $1 - rst FarCall ; ; indirect jump to Function8e83f (8e83f (23:683f)) - ld a, [CurPartySpecies] - ld [wd265], a - call GetPokemonName - hlcoord 5, 2 - call PlaceString - ld l, c - ld h, b - ld de, Strings_11780 - call PlaceString - inc de - hlcoord 5, 4 - call PlaceString - callba GetGender - jr c, .asm_1177c - ld a, $ef - jr nz, .asm_11778 - ld a, $f5 -.asm_11778 - hlcoord 1, 2 - ld [hl], a -.asm_1177c - call Function1187b - ret -; 11780 (4:5780) - -Strings_11780: ; 11780 - db "'S@" - db "NICKNAME?@" -; 1178d - -Function1178d: ; 1178d (4:578d) - callba GetPlayerIcon - call Function11847 - hlcoord 5, 2 - ld de, String_117a3 - call PlaceString - call Function11882 - ret -; 117a3 (4:57a3) - -String_117a3: ; 117a3 - db "YOUR NAME?@" -; 117ae - -Function117ae: ; 117ae (4:57ae) - ld de, SilverSpriteGFX - ld b, BANK(SilverSpriteGFX) - call Function11847 - hlcoord 5, 2 - ld de, String_117c3 - call PlaceString - call Function11882 - ret -; 117c3 (4:57c3) - -String_117c3: ; 117c3 - db "RIVAL'S NAME?@" -; 117d1 - -Function117d1: ; 117d1 (4:57d1) - ld de, MomSpriteGFX - ld b, BANK(MomSpriteGFX) - call Function11847 - hlcoord 5, 2 - ld de, String_117e6 - call PlaceString - call Function11882 - ret -; 117e6 (4:57e6) - -String_117e6: ; 117e6 - db "MOTHER'S NAME?@" -; 117f5 - -Function117f5: ; 117f5 (4:57f5) - ld de, PokeBallSpriteGFX - ld hl, VTiles0 tile $00 - lb bc, BANK(PokeBallSpriteGFX), $4 - call Request2bpp + ld de, VTiles0 tile $00 + ld hl, GFX_11ef4 + ld bc, $80 + ld a, BANK(GFX_11ef4) + call FarCopyBytes xor a ld hl, wc300 ld [hli], a ld [hl], a - ld de, $2420 - ld a, $a + ld de, $1810 + ld a, $0 call Function3b2a - ld hl, $1 + ld hl, $2 add hl, bc ld [hl], $0 - hlcoord 5, 2 - ld de, String_11822 - call PlaceString - call Function11889 - ret -; 11822 (4:5822) - -String_11822: ; 11822 - db "BOX NAME?@" -; 1182c - -Function1182c: ; 1182c (4:582c) - hlcoord 3, 2 - ld de, String_11839 - call PlaceString - call Function11882 - ret -; 11839 (4:5839) - -String_11839: ; 11839 - db "おともだち の なまえは?@" -; 11847 - -Function11847: ; 11847 (4:5847) - push de - ld hl, VTiles0 tile $00 - ld c, $4 - push bc - call Request2bpp - pop bc - ld hl, $c0 + call Function11f84 + ld a, $e3 + ld [rLCDC], a + call Function11f74 + ld b, $8 + call GetSGBLayout + call WaitBGMap + call WaitTop + ld a, %11100100 + call DmgToCgbBGPals + ld a, %11100100 + call Functioncf8 + call Function11be0 + ld hl, wc6d0 + ld e, [hl] + inc hl + ld d, [hl] + ld hl, $10 add hl, de - ld e, l - ld d, h - ld hl, VTiles0 tile $04 - call Request2bpp - xor a - ld hl, wc300 - ld [hli], a - ld [hl], a - pop de - ld b, $a - ld a, d - cp $7a - jr nz, .asm_11873 - ld a, e - cp $40 - jr nz, .asm_11873 - ld b, $1e -.asm_11873 - ld a, b - ld de, $2420 - call Function3b2a + ld [hl], $4e ret +; 11ef4 (4:5ef4) -Function1187b: ; 1187b (4:587b) - ld a, $a - hlcoord 5, 6 - jr Function11890 - -Function11882: ; 11882 (4:5882) - ld a, $7 - hlcoord 5, 6 - jr Function11890 - -Function11889: ; 11889 (4:5889) - ld a, $8 - hlcoord 5, 4 - jr Function11890 +GFX_11ef4: ; 11ef4 +INCBIN "gfx/unknown/011ef4.2bpp" +; 11f74 -Function11890: ; 11890 (4:5890) +Function11f74: ; 11f74 (4:5f74) + ld a, $21 ld [wc6d3], a - ld a, l - ld [wc6d8], a - ld a, h - ld [wc6d9], a ret +; 11f7a (4:5f7a) +String_11f7a: ; dummied out + db "メールを かいてね@" +; 11f84 -Function1189c: ; 1189c - push bc - push af - ld a, [wc6d4] - sub $3 - ld b, a - pop af - dec b - pop bc - ret -; 118a8 - -Function118a8: ; 118a8 +Function11f84: ; 11f84 (4:5f84) call WaitTop hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld bc, 6 * SCREEN_WIDTH ld a, $60 call ByteFill + hlcoord 0, 6 + ld bc, 12 * SCREEN_WIDTH + ld a, " " + call ByteFill hlcoord 1, 1 - lb bc, 6, 18 - call Function1189c - jr nz, .asm_118c4 - lb bc, 4, 18 - -.asm_118c4 - call ClearBox - ld de, NameInputUpper -Function118ca: ; 118ca - call Function1189c - jr nz, .asm_118d5 - ld hl, BoxNameInputLower - NameInputLower - add hl, de - ld d, h - ld e, l - -.asm_118d5 - push de - hlcoord 1, 8 - lb bc, 7, 18 - call Function1189c - jr nz, .asm_118e7 - hlcoord 1, 6 - lb bc, 9, 18 - -.asm_118e7 - call ClearBox - hlcoord 1, 16 - lb bc, 1, 18 + lb bc, 4, SCREEN_WIDTH - 2 call ClearBox - pop de - hlcoord 2, 8 - ld b, $5 - call Function1189c - jr nz, .asm_11903 - hlcoord 2, 6 - ld b, $6 + ld de, String_121dd -.asm_11903 - ld c, $11 -.asm_11905 +Function11fa9: ; 11fa9 (4:5fa9) + hlcoord 1, 7 + ld b, 6 +.next + ld c, SCREEN_WIDTH - 1 +.loop ld a, [de] ld [hli], a inc de dec c - jr nz, .asm_11905 + jr nz, .loop push de - ld de, $17 + ld de, 21 add hl, de pop de dec b - jr nz, .asm_11903 + jr nz, .next ret -; 11915 -Function11915: ; 11915 +Function11fc0: ; 11fc0 (4:5fc0) call JoyTextDelay ld a, [wJumptableIndex] bit 7, a - jr nz, .asm_11930 - call Function11968 + jr nz, .asm_11fdb + call Function12008 callba Function8cf62 - call Function11940 + call Function11feb call DelayFrame and a ret - -.asm_11930 +.asm_11fdb callab Function8cf53 call ClearSprites xor a @@ -10835,38 +10503,28 @@ Function11915: ; 11915 ld [hSCY], a scf ret -; 11940 -Function11940: ; 11940 +Function11feb: ; 11feb (4:5feb) xor a ld [hBGMapMode], a - hlcoord 1, 5 - call Function1189c - jr nz, .asm_1194e - hlcoord 1, 3 - -.asm_1194e - lb bc, 1, 18 + hlcoord 1, 1 + lb bc, 4, 18 call ClearBox ld hl, wc6d0 ld e, [hl] inc hl ld d, [hl] - ld hl, wc6d8 - ld a, [hli] - ld h, [hl] - ld l, a + hlcoord 2, 2 call PlaceString ld a, $1 ld [hBGMapMode], a ret -; 11968 -Function11968: ; 11968 +Function12008: ; 12008 (4:6008) ld a, [wJumptableIndex] ld e, a - ld d, $0 - ld hl, Jumptable_11977 + ld d, 0 + ld hl, Jumptable_12017 rept 2 add hl, de endr @@ -10874,21 +10532,15 @@ endr ld h, [hl] ld l, a jp [hl] -; 11977 - -Jumptable_11977: ; 11977 (4:5977) - dw Function1197b - dw Function119a1 +Jumptable_12017: ; 12017 (4:6017) + dw Function1201b + dw Function1203a -Function1197b: ; 1197b (4:597b) - lb de, $50, $18 - call Function1189c - jr nz, .asm_11985 - ld d, $40 -.asm_11985 - ld a, $2 +Function1201b: ; 1201b (4:601b) + lb de, $48, $10 + ld a, $9 call Function3b2a ld a, c ld [wc6d5], a @@ -10904,7 +10556,7 @@ Function1197b: ; 1197b (4:597b) inc [hl] ret -Function119a1: ; 119a1 (4:59a1) +Function1203a: ; 1203a (4:603a) ld hl, hJoyPressed ; $ffa7 ld a, [hl] and A_BUTTON @@ -10921,16 +10573,26 @@ Function119a1: ; 119a1 (4:59a1) ret .a - call Function11a0b + call Function12185 cp $1 jr z, .select cp $2 jr z, .b cp $3 - jr z, .asm_119eb + jr z, .asm_120a1 call Function11c11 - call Function11b14 - ret nc + call Function121ac + jr c, .start + ld hl, wc6d2 + ld a, [hl] + cp $10 + ret nz + inc [hl] + call Function11bd0 + ld [hl], $f2 + dec hl + ld [hl], $4e + ret .start ld hl, wc6d5 @@ -10939,20 +10601,26 @@ Function119a1: ; 119a1 (4:59a1) ld b, [hl] ld hl, $c add hl, bc - ld [hl], $8 + ld [hl], $9 ld hl, $d add hl, bc - ld [hl], $4 - call Function1189c - ret nz - inc [hl] + ld [hl], $5 ret .b call Function11bbc + ld hl, wc6d2 + ld a, [hl] + cp $10 + ret nz + dec [hl] + call Function11bd0 + ld [hl], $f2 + inc hl + ld [hl], $4e ret -.asm_119eb +.asm_120a1 call Function11bf7 ld hl, wJumptableIndex set 7, [hl] @@ -10961,58 +10629,19 @@ Function119a1: ; 119a1 (4:59a1) .select ld hl, wcf64 ld a, [hl] - xor 1 + xor $1 ld [hl], a - jr z, .asm_11a04 - ld de, NameInputLower - call Function118ca - ret - -.asm_11a04 - ld de, NameInputUpper - call Function118ca - ret - -Function11a0b: ; 11a0b (4:5a0b) - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - -Function11a11: ; 11a11 (4:5a11) - ld hl, $d - add hl, bc - ld a, [hl] - push bc - ld b, $4 - call Function1189c - jr nz, .asm_11a1f - inc b -.asm_11a1f - cp b - pop bc - jr nz, .asm_11a39 - ld hl, $c - add hl, bc - ld a, [hl] - cp $3 - jr c, .asm_11a33 - cp $6 - jr c, .asm_11a36 - ld a, $3 - ret -.asm_11a33 - ld a, $1 - ret -.asm_11a36 - ld a, $2 + jr nz, .asm_120ba + ld de, String_121dd + call Function11fa9 ret -.asm_11a39 - xor a +.asm_120ba + ld de, String_1224f + call Function11fa9 ret -Function11a3b: ; 11a3b (4:5a3b) - call Function11a8b +Function120c1: ; 120c1 (4:60c1) + call Function1210c ld hl, $d add hl, bc ld a, [hl] @@ -11021,18 +10650,13 @@ Function11a3b: ; 11a3b (4:5a3b) ld hl, $7 add hl, bc ld [hl], e - ld d, $4 - call Function1189c - jr nz, .asm_11a53 - inc d -.asm_11a53 - cp d - ld de, Unknown_11a79 + cp $5 + ld de, Unknown_120f8 ld a, $0 - jr nz, .asm_11a60 - ld de, Unknown_11a82 + jr nz, .asm_120df + ld de, Unknown_12102 ld a, $1 -.asm_11a60 +.asm_120df ld hl, $e add hl, bc add [hl] @@ -11049,15 +10673,15 @@ Function11a3b: ; 11a3b (4:5a3b) add hl, bc ld [hl], a ret -; 11a79 (4:5a79) +; 120f8 (4:60f8) -Unknown_11a79: ; 11a79 - db $00, $10, $20, $30, $40, $50, $60, $70, $80 -Unknown_11a82: ; 11a82 - db $00, $00, $00, $30, $30, $30, $60, $60, $60 -; 11a8b +Unknown_120f8: ; 120f8 + db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90 +Unknown_12102: ; 12102 + db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60 +; 1210c -Function11a8b: ; 11a8b (4:5a8b) +Function1210c: ; 1210c (4:610c) ld hl, hJoyLast ld a, [hl] and D_UP @@ -11073,24 +10697,24 @@ Function11a8b: ; 11a8b (4:5a8b) jr nz, .right ret .right - call Function11a11 + call Function1218b and a - jr nz, .asm_11ab7 + jr nz, .asm_12138 ld hl, $c add hl, bc ld a, [hl] - cp $8 - jr nc, .asm_11ab4 + cp $9 + jr nc, .asm_12135 inc [hl] ret -.asm_11ab4 +.asm_12135 ld [hl], $0 ret -.asm_11ab7 +.asm_12138 cp $3 - jr nz, .asm_11abc + jr nz, .asm_1213d xor a -.asm_11abc +.asm_1213d ld e, a add a add e @@ -11099,24 +10723,24 @@ Function11a8b: ; 11a8b (4:5a8b) ld [hl], a ret .left - call Function11a11 + call Function1218b and a - jr nz, .asm_11ad8 + jr nz, .asm_12159 ld hl, $c add hl, bc ld a, [hl] and a - jr z, .asm_11ad5 + jr z, .asm_12156 dec [hl] ret -.asm_11ad5 - ld [hl], $8 +.asm_12156 + ld [hl], $9 ret -.asm_11ad8 +.asm_12159 cp $1 - jr nz, .asm_11ade + jr nz, .asm_1215f ld a, $4 -.asm_11ade +.asm_1215f rept 2 dec a endr @@ -11131,18 +10755,11 @@ endr ld hl, $d add hl, bc ld a, [hl] - call Function1189c - jr nz, .asm_11af9 cp $5 - jr nc, .asm_11aff - inc [hl] - ret -.asm_11af9 - cp $4 - jr nc, .asm_11aff + jr nc, .asm_12175 inc [hl] ret -.asm_11aff +.asm_12175 ld [hl], $0 ret .up @@ -11150,3790 +10767,120 @@ endr add hl, bc ld a, [hl] and a - jr z, .asm_11b0c + jr z, .asm_12182 dec [hl] ret -.asm_11b0c - ld [hl], $4 - call Function1189c - ret nz - inc [hl] +.asm_12182 + ld [hl], $5 ret -Function11b14: ; 11b14 (4:5b14) - ld a, [wc6d7] - -Function11b17: ; 11b17 (4:5b17) - ld a, [wc6d3] - ld c, a - ld a, [wc6d2] - cp c - ret nc - - ld a, [wc6d7] - -Function11b23: ; 11b23 - call Function11bd0 - ld [hl], a +Function12185: ; 12185 (4:6185) + ld hl, wc6d5 + ld c, [hl] + inc hl + ld b, [hl] -Function11b27: ; 11b27 - ld hl, wc6d2 - inc [hl] - call Function11bd0 +Function1218b: ; 1218b (4:618b) + ld hl, $d + add hl, bc ld a, [hl] - cp $50 - jr z, .asm_11b37 - ld [hl], $f2 - and a + cp $5 + jr nz, .asm_121aa + ld hl, $c + add hl, bc + ld a, [hl] + cp $3 + jr c, .asm_121a4 + cp $6 + jr c, .asm_121a7 + ld a, $3 ret -.asm_11b37 - scf +.asm_121a4 + ld a, $1 + ret +.asm_121a7 + ld a, $2 + ret +.asm_121aa + xor a ret -; 11b39 (4:5b39) -Function11b39: ; 11b39 +Function121ac: ; 121ac (4:61ac) + ld a, [wc6d7] + jp Function11b17 +; 121b2 (4:61b2) + +Function121b2: ; unreferenced ld a, [wc6d2] and a ret z + cp $11 + jr nz, .asm_121c3 + push hl + ld hl, wc6d2 +rept 2 + dec [hl] +endr + jr .asm_121c8 + +.asm_121c3 push hl ld hl, wc6d2 dec [hl] + +.asm_121c8 call Function11bd0 ld c, [hl] pop hl - -.asm_11b48 +.asm_121cd ld a, [hli] cp $ff - jr z, Function11b27 + jp z, Function11b27 cp c - jr z, .asm_11b53 + jr z, .asm_121d9 inc hl - jr .asm_11b48 - -.asm_11b53 - ld a, [hl] - jr Function11b23 -; 11b56 - -Dakutens: ; Dummied out - db "かが", "きぎ", "くぐ", "けげ", "こご" - db "さざ", "しじ", "すず", "せぜ", "そぞ" - db "ただ", "ちぢ", "つづ", "てで", "とど" - db "はば", "ひび", "ふぶ", "へべ", "ほぼ" - db "カガ", "キギ", "クグ", "ケゲ", "コゴ" - db "サザ", "シジ", "スズ", "セゼ", "ソゾ" - db "タダ", "チヂ", "ツヅ", "テデ", "トド" - db "ハバ", "ヒビ", "フブ", "へべ", "ホボ" - db $ff - -Handakutens: ; Dummied out - db "はぱ", "ひぴ", "ふぷ", "へぺ", "ほぽ" - db "ハパ", "ヒピ", "フプ", "へぺ", "ホポ" - db $ff -; 11bbc + jr .asm_121cd -Function11bbc: ; 11bbc (4:5bbc) - ld hl, wc6d2 - ld a, [hl] - and a - ret z - dec [hl] - call Function11bd0 - ld [hl], $f2 - inc hl +.asm_121d9 ld a, [hl] - cp $f2 - ret nz - ld [hl], $eb - ret + jp Function11b23 +; 121dd -Function11bd0: ; 11bd0 (4:5bd0) - push af - ld hl, wc6d0 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wc6d2] - ld e, a - ld d, 0 - add hl, de - pop af - ret -; 11be0 - -Function11be0: ; 11be0 -; load $f2, ($eb * [wc6d3]), $50 into the dw address at wc6d0 - ld hl, wc6d0 - ld a, [hli] - ld h, [hl] - ld l, a - ld [hl], "·" - inc hl - ld a, [wc6d3] - dec a - ld c, a - ld a, "→" -.loop - ld [hli], a - dec c - jr nz, .loop - ld [hl], "@" - ret -; 11bf7 - - -Function11bf7: ; 11bf7 (4:5bf7) - ld hl, wc6d0 - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wc6d3] - ld c, a -.asm_11c01 - ld a, [hl] - cp $eb - jr z, .asm_11c0a - cp $f2 - jr nz, .asm_11c0c -.asm_11c0a - ld [hl], $50 -.asm_11c0c - inc hl - dec c - jr nz, .asm_11c01 - ret - -Function11c11: ; 11c11 (4:5c11) - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - ld hl, $6 - add hl, bc - ld a, [hl] - ld hl, $4 - add hl, bc - add [hl] - sub $8 - srl a - srl a - srl a - ld e, a - ld hl, $7 - add hl, bc - ld a, [hl] - ld hl, $5 - add hl, bc - add [hl] - sub $10 - srl a - srl a - srl a - ld d, a - hlcoord 0, 0 - ld bc, $14 -.asm_11c43 - ld a, d - and a - jr z, .asm_11c4b - add hl, bc - dec d - jr .asm_11c43 -.asm_11c4b - add hl, de - ld a, [hl] - ld [wc6d7], a - ret - - -Function11c51: ; 11c51 - call ClearSprites - callab Function8cf53 - call LoadStandardFont - call LoadFontsExtra - - ld de, GFX_11e65 - ld hl, VTiles1 tile $6b - lb bc, BANK(GFX_11e65), 1 - call Get1bpp - - ld de, GFX_11e6d - ld hl, VTiles1 tile $72 - lb bc, BANK(GFX_11e6d), 1 - call Get1bpp - - ld de, VTiles2 tile $60 - ld hl, GFX_11cb7 - ld bc, $10 - ld a, BANK(GFX_11cb7) - call FarCopyBytes - - ld de, VTiles0 tile $7e - ld hl, GFX_11cc7 - ld bc, $20 - ld a, BANK(GFX_11cc7) - call FarCopyBytes - - ld a, $5 - ld hl, wc312 - ld [hli], a - ld [hl], $7e - xor a - ld [hSCY], a - ld [wc3bf], a - ld [hSCX], a - ld [wc3c0], a - ld [wJumptableIndex], a - ld [wcf64], a - ld [hBGMapMode], a - ld [wc6d2], a - ld a, $7 - ld [hWX], a - ret -; 11cb7 - -GFX_11cb7: ; 11cb7 -INCBIN "gfx/unknown/011cb7.2bpp" -; 11cc7 - -GFX_11cc7: ; 11cc7 -INCBIN "gfx/unknown/011cc7.2bpp" -; 11ce7 - -NameInputLower: - db "a b c d e f g h i" - db "j k l m n o p q r" - db "s t u v w x y z " - db "× ( ) : ; [ ] " - db "UPPER DEL END " -BoxNameInputLower: - db "a b c d e f g h i" - db "j k l m n o p q r" - db "s t u v w x y z " - db "é 'd 'l 'm 'r 's 't 'v 0" - db "1 2 3 4 5 6 7 8 9" - db "UPPER DEL END " -NameInputUpper: ; Unreferenced? - db "A B C D E F G H I" - db "J K L M N O P Q R" - db "S T U V W X Y Z " - db "- ? ! / . , " - db "lower DEL END " -BoxNameInputUpper: - db "A B C D E F G H I" - db "J K L M N O P Q R" - db "S T U V W X Y Z " - db "× ( ) : ; [ ] " - db "- ? ! ♂ ♀ / . , &" - db "lower DEL END " -; 11e5d - -GFX_11e5d: ; ???? -INCBIN "gfx/unknown/011e5d.2bpp" -; 11e6d - -GFX_11e65: -INCBIN "gfx/unknown/011e65.2bpp" -; 11e6d - -GFX_11e6d: ; 11e6d -INCBIN "gfx/unknown/011e6d.2bpp" -; 11e75 - -Function11e75: ; 11e75 (4:5e75) - ld hl, wc6d0 - ld [hl], e - inc hl - ld [hl], d - ld a, [hMapAnims] - push af - xor a - ld [hMapAnims], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call Function11e9a - call DelayFrame -.asm_11e8e - call Function11fc0 - jr nc, .asm_11e8e - pop af - ld [hInMenu], a - pop af - ld [hMapAnims], a - ret - -Function11e9a: ; 11e9a (4:5e9a) - call WhiteBGMap - call DisableLCD - call Function11c51 - ld de, VTiles0 tile $00 - ld hl, GFX_11ef4 - ld bc, $80 - ld a, BANK(GFX_11ef4) - call FarCopyBytes - xor a - ld hl, wc300 - ld [hli], a - ld [hl], a - ld de, $1810 - ld a, $0 - call Function3b2a - ld hl, $2 - add hl, bc - ld [hl], $0 - call Function11f84 - ld a, $e3 - ld [rLCDC], a - call Function11f74 - ld b, $8 - call GetSGBLayout - call WaitBGMap - call WaitTop - ld a, %11100100 - call DmgToCgbBGPals - ld a, %11100100 - call Functioncf8 - call Function11be0 - ld hl, wc6d0 - ld e, [hl] - inc hl - ld d, [hl] - ld hl, $10 - add hl, de - ld [hl], $4e - ret -; 11ef4 (4:5ef4) - -GFX_11ef4: ; 11ef4 -INCBIN "gfx/unknown/011ef4.2bpp" -; 11f74 - -Function11f74: ; 11f74 (4:5f74) - ld a, $21 - ld [wc6d3], a - ret -; 11f7a (4:5f7a) - -String_11f7a: ; dummied out - db "メールを かいてね@" -; 11f84 - -Function11f84: ; 11f84 (4:5f84) - call WaitTop - hlcoord 0, 0 - ld bc, 6 * SCREEN_WIDTH - ld a, $60 - call ByteFill - hlcoord 0, 6 - ld bc, 12 * SCREEN_WIDTH - ld a, " " - call ByteFill - hlcoord 1, 1 - lb bc, 4, SCREEN_WIDTH - 2 - call ClearBox - ld de, String_121dd - -Function11fa9: ; 11fa9 (4:5fa9) - hlcoord 1, 7 - ld b, 6 -.next - ld c, SCREEN_WIDTH - 1 -.loop - ld a, [de] - ld [hli], a - inc de - dec c - jr nz, .loop - push de - ld de, 21 - add hl, de - pop de - dec b - jr nz, .next - ret - -Function11fc0: ; 11fc0 (4:5fc0) - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_11fdb - call Function12008 - callba Function8cf62 - call Function11feb - call DelayFrame - and a - ret -.asm_11fdb - callab Function8cf53 - call ClearSprites - xor a - ld [hSCX], a - ld [hSCY], a - scf - ret - -Function11feb: ; 11feb (4:5feb) - xor a - ld [hBGMapMode], a - hlcoord 1, 1 - lb bc, 4, 18 - call ClearBox - ld hl, wc6d0 - ld e, [hl] - inc hl - ld d, [hl] - hlcoord 2, 2 - call PlaceString - ld a, $1 - ld [hBGMapMode], a - ret - -Function12008: ; 12008 (4:6008) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_12017 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_12017: ; 12017 (4:6017) - dw Function1201b - dw Function1203a - - -Function1201b: ; 1201b (4:601b) - lb de, $48, $10 - ld a, $9 - call Function3b2a - ld a, c - ld [wc6d5], a - ld a, b - ld [wc6d6], a - ld hl, $1 - add hl, bc - ld a, [hl] - ld hl, $e - add hl, bc - ld [hl], a - ld hl, wJumptableIndex - inc [hl] - ret - -Function1203a: ; 1203a (4:603a) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and A_BUTTON - jr nz, .a - ld a, [hl] - and B_BUTTON - jr nz, .b - ld a, [hl] - and START - jr nz, .start - ld a, [hl] - and SELECT - jr nz, .select - ret - -.a - call Function12185 - cp $1 - jr z, .select - cp $2 - jr z, .b - cp $3 - jr z, .asm_120a1 - call Function11c11 - call Function121ac - jr c, .start - ld hl, wc6d2 - ld a, [hl] - cp $10 - ret nz - inc [hl] - call Function11bd0 - ld [hl], $f2 - dec hl - ld [hl], $4e - ret - -.start - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - ld hl, $c - add hl, bc - ld [hl], $9 - ld hl, $d - add hl, bc - ld [hl], $5 - ret - -.b - call Function11bbc - ld hl, wc6d2 - ld a, [hl] - cp $10 - ret nz - dec [hl] - call Function11bd0 - ld [hl], $f2 - inc hl - ld [hl], $4e - ret - -.asm_120a1 - call Function11bf7 - ld hl, wJumptableIndex - set 7, [hl] - ret - -.select - ld hl, wcf64 - ld a, [hl] - xor $1 - ld [hl], a - jr nz, .asm_120ba - ld de, String_121dd - call Function11fa9 - ret -.asm_120ba - ld de, String_1224f - call Function11fa9 - ret - -Function120c1: ; 120c1 (4:60c1) - call Function1210c - ld hl, $d - add hl, bc - ld a, [hl] - ld e, a - swap e - ld hl, $7 - add hl, bc - ld [hl], e - cp $5 - ld de, Unknown_120f8 - ld a, $0 - jr nz, .asm_120df - ld de, Unknown_12102 - ld a, $1 -.asm_120df - ld hl, $e - add hl, bc - add [hl] - ld hl, $1 - add hl, bc - ld [hl], a - ld hl, $c - add hl, bc - ld l, [hl] - ld h, $0 - add hl, de - ld a, [hl] - ld hl, $6 - add hl, bc - ld [hl], a - ret -; 120f8 (4:60f8) - -Unknown_120f8: ; 120f8 - db $00, $10, $20, $30, $40, $50, $60, $70, $80, $90 -Unknown_12102: ; 12102 - db $00, $00, $00, $30, $30, $30, $60, $60, $60, $60 -; 1210c - -Function1210c: ; 1210c (4:610c) - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .up - ld a, [hl] - and D_DOWN - jr nz, .down - ld a, [hl] - and D_LEFT - jr nz, .left - ld a, [hl] - and D_RIGHT - jr nz, .right - ret -.right - call Function1218b - and a - jr nz, .asm_12138 - ld hl, $c - add hl, bc - ld a, [hl] - cp $9 - jr nc, .asm_12135 - inc [hl] - ret -.asm_12135 - ld [hl], $0 - ret -.asm_12138 - cp $3 - jr nz, .asm_1213d - xor a -.asm_1213d - ld e, a - add a - add e - ld hl, $c - add hl, bc - ld [hl], a - ret -.left - call Function1218b - and a - jr nz, .asm_12159 - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_12156 - dec [hl] - ret -.asm_12156 - ld [hl], $9 - ret -.asm_12159 - cp $1 - jr nz, .asm_1215f - ld a, $4 -.asm_1215f -rept 2 - dec a -endr - ld e, a - add a - add e - ld hl, $c - add hl, bc - ld [hl], a - ret -.down - ld hl, $d - add hl, bc - ld a, [hl] - cp $5 - jr nc, .asm_12175 - inc [hl] - ret -.asm_12175 - ld [hl], $0 - ret -.up - ld hl, $d - add hl, bc - ld a, [hl] - and a - jr z, .asm_12182 - dec [hl] - ret -.asm_12182 - ld [hl], $5 - ret - -Function12185: ; 12185 (4:6185) - ld hl, wc6d5 - ld c, [hl] - inc hl - ld b, [hl] - -Function1218b: ; 1218b (4:618b) - ld hl, $d - add hl, bc - ld a, [hl] - cp $5 - jr nz, .asm_121aa - ld hl, $c - add hl, bc - ld a, [hl] - cp $3 - jr c, .asm_121a4 - cp $6 - jr c, .asm_121a7 - ld a, $3 - ret -.asm_121a4 - ld a, $1 - ret -.asm_121a7 - ld a, $2 - ret -.asm_121aa - xor a - ret - -Function121ac: ; 121ac (4:61ac) - ld a, [wc6d7] - jp Function11b17 -; 121b2 (4:61b2) - -Function121b2: ; unreferenced - ld a, [wc6d2] - and a - ret z - cp $11 - jr nz, .asm_121c3 - push hl - ld hl, wc6d2 -rept 2 - dec [hl] -endr - jr .asm_121c8 - -.asm_121c3 - push hl - ld hl, wc6d2 - dec [hl] - -.asm_121c8 - call Function11bd0 - ld c, [hl] - pop hl -.asm_121cd - ld a, [hli] - cp $ff - jp z, Function11b27 - cp c - jr z, .asm_121d9 - inc hl - jr .asm_121cd - -.asm_121d9 - ld a, [hl] - jp Function11b23 -; 121dd - -String_121dd: ; 122dd - db "A B C D E F G H I J" - db "K L M N O P Q R S T" - db "U V W X Y Z , ? !" - db "1 2 3 4 5 6 7 8 9 0" - db "ゅ ょ ", $70, " ", $71, " é ♂ ♀ ¥ … ×" - db "lower DEL END " -; 1224f - -String_1224f: ; 1224f - db "a b c d e f g h i j" - db "k l m n o p q r s t" - db "u v w x y z . - /" - db "'d 'l 'm 'r 's 't 'v & ( )" - db $72, " ", $73, " [ ] ' : ; " - db "UPPER DEL END " -; 122c1 - -UnknownScript_0x122c1: ; 0x122c1 - checkflag ENGINE_BUG_CONTEST_TIMER - iffalse .script_122cd - setflag ENGINE_DAILY_BUG_CONTEST - special ContestReturnMons -.script_122cd - end -; 0x122ce - -FindItemInBallScript:: ; 0x122ce - callasm Function122f8 - iffalse NoRoomForItemInBallScript - disappear LAST_TALKED - loadfont - writetext UnknownText_0x122ee - playsound SFX_ITEM - pause 60 - itemnotify - loadmovesprites - end -; 0x122e3 - -NoRoomForItemInBallScript: ; 0x122e3 - loadfont - writetext UnknownText_0x122ee - closetext - writetext UnknownText_0x122f3 - closetext - loadmovesprites - end -; 0x122ee - -UnknownText_0x122ee: ; 0x122ee - ; found @ ! - text_jump UnknownText_0x1c0a1c - db "@" -; 0x122f3 - -UnknownText_0x122f3: ; 0x122f3 - ; But can't carry any more items. - text_jump UnknownText_0x1c0a2c - db "@" -; 0x122f8 - -Function122f8: ; 122f8 - xor a - ld [ScriptVar], a - ld a, [EngineBuffer1] - ld [wd265], a - call GetItemName - ld hl, StringBuffer3 - call CopyName2 - ld a, [EngineBuffer1] - ld [CurItem], a - ld a, [CurFruit] - ld [wItemQuantityChangeBuffer], a - ld hl, NumItems - call ReceiveItem - ret nc - ld a, $1 - ld [ScriptVar], a - ret -; 12324 - -HealMachineAnim: ; 12324 - ; If you have no Pokemon, don't change the buffer. This can lead to some glitchy effects if you have no Pokemon. - ld a, [PartyCount] - and a - ret z - ; The location of the healing machine relative to the player is stored in ScriptVar. - ; 0: Up and left (Pokemon Center) - ; 1: Left (Elm's Lab) - ; 2: Up (Hall of Fame) - ld a, [ScriptVar] - ld [Buffer1], a - ld a, [rOBP1] - ld [Buffer2], a - call Function1233e - ld a, [Buffer2] - call Functiond24 - ret -; 1233e - -Function1233e: ; 1233e - xor a - ld [wd1ec], a -.asm_12342 - ld a, [Buffer1] - ld e, a - ld d, 0 - ld hl, Unknown_12365 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wd1ec] - ld e, a - inc a - ld [wd1ec], a - add hl, de - ld a, [hl] - cp 5 - jr z, .asm_12364 - ld hl, Jumptable_12377 - rst JumpTable - jr .asm_12342 - -.asm_12364 - ret -; 12365 - -Unknown_12365: ; 12365 - dw Unknown_1236b - dw Unknown_1236f - dw Unknown_12373 -; 1236b - -Unknown_1236b: ; 1236b - db 0, 1, 3, 5 -Unknown_1236f: ; 1236f - db 0, 1, 3, 5 -Unknown_12373: ; 12373 - db 0, 2, 4, 5 -; 12377 - -Jumptable_12377: ; 12377 - dw Function12383 - dw Function12393 - dw Function123a1 - dw Function123bf - dw Function123c8 - dw Function123db -; 12383 - -Function12383: ; 12383 - call Function12434 - ld de, GFX_123fc - ld hl, VTiles0 tile $7c - lb bc, BANK(GFX_123fc), $2 - call Request2bpp - ret -; 12393 - -Function12393: ; 12393 - ld hl, Sprites + $80 - ld de, Unknown_123dc - call Function124a3 - call Function124a3 - jr Function123a7 - -Function123a1: ; 123a1 - ld hl, Sprites + $80 - ld de, Unknown_1241c - -Function123a7: ; 123a7 - ld a, [PartyCount] - ld b, a -.asm_123ab - call Function124a3 - push de - ld de, SFX_SECOND_PART_OF_ITEMFINDER - call PlaySFX - pop de - ld c, 30 - call DelayFrames - dec b - jr nz, .asm_123ab - ret -; 123bf - -Function123bf: ; 123bf - ld de, MUSIC_HEAL - call PlayMusic - jp Function12459 -; 123c8 - -Function123c8: ; 123c8 - ld de, SFX_GAME_FREAK_LOGO_GS - call PlaySFX - call Function12459 - call WaitSFX - ld de, SFX_BOOT_PC - call PlaySFX - ret -; 123db - -Function123db: ; 123db - ret -; 123dc - -Unknown_123dc: ; 123dc - db $20, $22, $7c, $16 - db $20, $26, $7c, $16 - db $26, $20, $7d, $16 - db $26, $28, $7d, $36 - db $2b, $20, $7d, $16 - db $2b, $28, $7d, $36 - db $30, $20, $7d, $16 - db $30, $28, $7d, $36 -; 123fc - -GFX_123fc: ; 123fc -INCBIN "gfx/unknown/0123fc.2bpp" -; 1241c - -Unknown_1241c: ; 1241c - db $3c, $51, $7d, $16 - db $3c, $56, $7d, $16 - db $3b, $4d, $7d, $16 - db $3b, $5a, $7d, $16 - db $39, $49, $7d, $16 - db $39, $5d, $7d, $16 -; 12434 - -Function12434: ; 12434 - call IsCGB - jr nz, .asm_1243e - ld a, $e0 - ld [rOBP1], a - ret - -.asm_1243e - ld hl, Palette_12451 - ld de, OBPals + 8 * 6 - ld bc, 8 - ld a, $5 - call FarCopyWRAM - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 12451 - -Palette_12451: ; 12451 - RGB 31, 31, 31 - RGB 31, 19, 10 - RGB 31, 07, 01 - RGB 00, 00, 00 -; 12459 - -Function12459: ; 12459 - ld c, $8 -.asm_1245b - push bc - call Function12469 - ld c, 10 - call DelayFrames - pop bc - dec c - jr nz, .asm_1245b - ret -; 12469 - -Function12469: ; 12469 - call IsCGB - jr nz, .asm_12475 - ld a, [rOBP1] - xor $28 - ld [rOBP1], a - ret - -.asm_12475 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - - ld hl, OBPals + 8 * 6 - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - push de - ld c, $3 -.asm_12486 - ld a, [hli] - ld e, a - ld a, [hld] - ld d, a - dec hl - ld a, d - ld [hld], a - ld a, e - ld [hli], a -rept 3 - inc hl -endr - dec c - jr nz, .asm_12486 - pop de - dec hl - ld a, d - ld [hld], a - ld a, e - ld [hl], a - - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ret -; 124a3 - -Function124a3: ; 124a3 - push bc - ld a, [Buffer1] - lb bc, $10, $20 - cp $1 - jr z, .asm_124b1 - lb bc, $00, $00 - -.asm_124b1 - ld a, [de] - add c - inc de - ld [hli], a - ld a, [de] - add b - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - pop bc - ret -; 124c1 - -UnknownScript_0x124c1:: ; 0x124c1 - callasm Function1250a - jump UnknownScript_0x124ce -; 0x124c8 - -UnknownScript_0x124c8:: ; 0x124c8 - refreshscreen $0 - callasm Function124fa - -UnknownScript_0x124ce: ; 0x124ce - writetext UnknownText_0x124f5 - closetext - special FadeBlackBGMap - pause 40 - special HealParty - checkflag ENGINE_BUG_CONTEST_TIMER - iftrue .script_64f2 - callasm HalveMoney - callasm Function12527 - farscall UnknownScript_0x122c1 - special WarpToSpawnPoint - newloadmap MAPSETUP_WARP - resetfuncs - -.script_64f2 - jumpstd bugcontestresultswarp -; 0x124f5 - -UnknownText_0x124f5: ; 0x124f5 - ; is out of useable #MON! whited out! - text_jump UnknownText_0x1c0a4e - db "@" -; 0x124fa - -Function124fa: ; 124fa - call ClearPalettes - call ClearScreen - call Function3200 - call HideSprites - call Function4f0 - ret -; 1250a - -Function1250a: ; 1250a - ld b, $0 - call GetSGBLayout - call SetPalettes - ret -; 12513 - -HalveMoney: ; 12513 - -; Empty function... - callba MobileFn_1060c7 - -; Halve the player's money. - ld hl, Money - ld a, [hl] - srl a - ld [hli], a - ld a, [hl] - rra - ld [hli], a - ld a, [hl] - rra - ld [hl], a - ret -; 12527 - - -Function12527: ; 12527 - ld a, [wdcb2] - ld d, a - ld a, [wdcb3] - ld e, a - callba IsSpawnPoint - ld a, c - jr c, .yes - xor a - -.yes - ld [wd001], a - ret -; 1253d - -Script_ForcedMovement:: ; 0x1253d - checkcode VAR_FACING - if_equal DOWN, UnknownScript_0x12555 - if_equal UP, UnknownScript_0x12550 - if_equal LEFT, UnknownScript_0x1255f - if_equal RIGHT, UnknownScript_0x1255a - end -; 0x12550 - -UnknownScript_0x12550: ; 0x12550 - applymovement PLAYER, MovementData_0x12564 - end -; 0x12555 - -UnknownScript_0x12555: ; 0x12555 - applymovement PLAYER, MovementData_0x1256b - end -; 0x1255a - -UnknownScript_0x1255a: ; 0x1255a - applymovement PLAYER, MovementData_0x12572 - end -; 0x1255f - -UnknownScript_0x1255f: ; 0x1255f - applymovement PLAYER, MovementData_0x12579 - end -; 0x12564 - -MovementData_0x12564: ; 0x12564 - step_wait5 - big_step_down - turn_in_down - step_wait5 - big_step_down - turn_head_down - step_end -; 0x1256b - -MovementData_0x1256b: ; 0x1256b - step_wait5 - big_step_down - turn_in_up - step_wait5 - big_step_down - turn_head_up - step_end -; 0x12572 - -MovementData_0x12572: ; 0x12572 - step_wait5 - big_step_down - turn_in_left - step_wait5 - big_step_down - turn_head_left - step_end -; 0x12579 - -MovementData_0x12579: ; 0x12579 - step_wait5 - big_step_down - turn_in_right - step_wait5 - big_step_down - turn_head_right - step_end -; 0x12580 - - -ItemFinder: ; 12580 - callba CheckForSignpostItems - jr c, .asm_1258d - ld hl, UnknownScript_0x125ba - jr .asm_12590 - -.asm_1258d - ld hl, UnknownScript_0x125ad - -.asm_12590 - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 12599 - -Function12599: ; 12599 - ld c, $4 -.asm_1259b - push bc - ld de, SFX_SECOND_PART_OF_ITEMFINDER - call WaitPlaySFX - ld de, SFX_TRANSACTION - call WaitPlaySFX - pop bc - dec c - jr nz, .asm_1259b - ret -; 125ad - -UnknownScript_0x125ad: ; 0x125ad - reloadmappart - special UpdateTimePals - callasm Function12599 - writetext UnknownText_0x125c3 - loadmovesprites - end -; 0x125ba - -UnknownScript_0x125ba: ; 0x125ba - reloadmappart - special UpdateTimePals - writetext UnknownText_0x125c8 - loadmovesprites - end -; 0x125c3 - -UnknownText_0x125c3: ; 0x125c3 - ; Yes! ITEMFINDER indicates there's an item nearby. - text_jump UnknownText_0x1c0a77 - db "@" -; 0x125c8 - -UnknownText_0x125c8: ; 0x125c8 - ; Nope! ITEMFINDER isn't responding. - text_jump UnknownText_0x1c0aa9 - db "@" -; 0x125cd - - -StartMenu:: ; 125cd - - call ResetTextRelatedRAM - - ld de, SFX_MENU - call PlaySFX - - callba Function6454 - - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - ld hl, .MenuDataHeader - jr z, .GotMenuData - ld hl, .ContestMenuDataHeader -.GotMenuData - - call LoadMenuDataHeader - call .SetUpMenuItems - ld a, [wd0d2] - ld [wMenuCursorBuffer], a - call .DrawMenuAccount_ - call MenuFunc_1e7f - call .DrawBugContestStatusBox - call Function2e31 - call Function2e20 - callba Function64bf - call .DrawBugContestStatus - call UpdateTimePals - jr .Select - -.Reopen - call UpdateSprites - call UpdateTimePals - call .SetUpMenuItems - ld a, [wd0d2] - ld [wMenuCursorBuffer], a - -.Select - call .GetInput - jr c, .Exit - call .DrawMenuAccount - ld a, [wMenuCursorBuffer] - ld [wd0d2], a - call PlayClickSFX - call Function1bee - call .OpenMenu - -; Menu items have different return functions. -; For example, saving exits the menu. - ld hl, .MenuReturns - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.MenuReturns - dw .Reopen - dw .Exit - dw .ExitMenuCallFuncLoadMoveSprites - dw .ExitMenuRunScriptLoadMoveSprites - dw .ExitMenuRunScript - dw .ReturnEnd - dw .ReturnRedraw - -.Exit - ld a, [hOAMUpdate] - push af - ld a, 1 - ld [hOAMUpdate], a - call LoadFontsExtra - pop af - ld [hOAMUpdate], a -.ReturnEnd - call ExitMenu -.ReturnEnd2 - call LoadMoveSprites - call UpdateTimePals - ret - -.GetInput -; Return carry on exit, and no-carry on selection. - xor a - ld [hBGMapMode], a - call .DrawMenuAccount - call SetUpMenu - ld a, $ff - ld [MenuSelection], a -.loop - call .PrintMenuAccount - call Function1f1a - ld a, [wcf73] - cp B_BUTTON - jr z, .b - cp A_BUTTON - jr z, .a - jr .loop -.a - call PlayClickSFX - and a - ret -.b - scf - ret -; 12691 - -.ExitMenuRunScript ; 12691 - call ExitMenu - ld a, HMENURETURN_SCRIPT - ld [hMenuReturn], a - ret -; 12699 - -.ExitMenuRunScriptLoadMoveSprites ; 12699 - call ExitMenu - ld a, HMENURETURN_SCRIPT - ld [hMenuReturn], a - jr .ReturnEnd2 -; 126a2 - -.ExitMenuCallFuncLoadMoveSprites ; 126a2 - call ExitMenu - ld hl, wQueuedScriptAddr - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [wQueuedScriptBank] - rst FarCall - jr .ReturnEnd2 -; 126b1 - -.ReturnRedraw ; 126b1 - call .Clear - jp .Reopen -; 126b7 - -.Clear ; 126b7 - call WhiteBGMap - call Call_ExitMenu - call Function2bae - call .DrawMenuAccount_ - call MenuFunc_1e7f - call .DrawBugContestStatus - call UpdateSprites - call Functiond90 - call Function2b5c - ret -; 126d3 - - -.MenuDataHeader - db $40 ; tile backup - db 0, 10 ; start coords - db 17, 19 ; end coords - dw .MenuData - db 1 ; default selection - -.ContestMenuDataHeader - db $40 ; tile backup - db 2, 10 ; start coords - db 17, 19 ; end coords - dw .MenuData - db 1 ; default selection - -.MenuData - db %10101000 ; x padding, wrap around, start can close - dn 0, 0 ; rows, columns - dw MenuItemsList - dw .MenuString - dw .Items - -.Items - dw StartMenu_Pokedex, .PokedexString, .PokedexDesc - dw StartMenu_Pokemon, .PartyString, .PartyDesc - dw StartMenu_Pack, .PackString, .PackDesc - dw StartMenu_Status, .StatusString, .StatusDesc - dw StartMenu_Save, .SaveString, .SaveDesc - dw StartMenu_Option, .OptionString, .OptionDesc - dw StartMenu_Exit, .ExitString, .ExitDesc - dw StartMenu_Pokegear, .PokegearString, .PokegearDesc - dw StartMenu_Quit, .QuitString, .QuitDesc - -.PokedexString db "#DEX@" -.PartyString db "#MON@" -.PackString db "PACK@" -.StatusString db "@" -.SaveString db "SAVE@" -.OptionString db "OPTION@" -.ExitString db "EXIT@" -.PokegearString db $24, "GEAR@" -.QuitString db "QUIT@" - -.PokedexDesc db "#MON" - next "database@" - -.PartyDesc db "Party ", $4a - next "status@" - -.PackDesc db "Contains" - next "items@" - -.PokegearDesc db "Trainer's" - next "key device@" - -.StatusDesc db "Your own" - next "status@" - -.SaveDesc db "Save your" - next "progress@" - -.OptionDesc db "Change" - next "settings@" - -.ExitDesc db "Close this" - next "menu@" - -.QuitDesc db "Quit and" - next "be judged.@" - - -.OpenMenu ; 127e5 - ld a, [MenuSelection] - call .GetMenuAccountTextPointer - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 127ef - -.MenuString ; 127ef - push de - ld a, [MenuSelection] - call .GetMenuAccountTextPointer -rept 2 - inc hl -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - call PlaceString - ret -; 12800 - -.MenuDesc ; 12800 - push de - ld a, [MenuSelection] - cp $ff - jr z, .none - call .GetMenuAccountTextPointer -rept 4 - inc hl -endr - ld a, [hli] - ld d, [hl] - ld e, a - pop hl - call PlaceString - ret -.none - pop de - ret -; 12819 - - -.GetMenuAccountTextPointer ; 12819 - ld e, a - ld d, 0 - ld hl, wcf97 - ld a, [hli] - ld h, [hl] - ld l, a -rept 6 - add hl, de -endr - ret -; 12829 - - -.SetUpMenuItems ; 12829 - xor a - ld [wcf76], a - call .FillMenuList - - ld hl, StatusFlags - bit 0, [hl] - jr z, .no_pokedex - ld a, 0 ; pokedex - call .AppendMenuList -.no_pokedex - - ld a, [PartyCount] - and a - jr z, .no_pokemon - ld a, 1 ; pokemon - call .AppendMenuList -.no_pokemon - - ld a, [wLinkMode] - and a - jr nz, .no_pack - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - jr nz, .no_pack - ld a, 2 ; pack - call .AppendMenuList -.no_pack - - ld hl, wPokegearFlags - bit 7, [hl] - jr z, .no_pokegear - ld a, 7 ; pokegear - call .AppendMenuList -.no_pokegear - - ld a, 3 ; status - call .AppendMenuList - - ld a, [wLinkMode] - and a - jr nz, .no_save - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - ld a, 8 ; quit - jr nz, .write - ld a, 4 ; save -.write - call .AppendMenuList -.no_save - - ld a, 5 ; option - call .AppendMenuList - ld a, 6 ; exit - call .AppendMenuList - ld a, c - ld [MenuItemsList], a - ret -; 1288d - - -.FillMenuList ; 1288d - xor a - ld hl, MenuItemsList - ld [hli], a - ld a, -1 - ld bc, MenuItemsListEnd - (MenuItemsList + 1) - call ByteFill - ld de, MenuItemsList + 1 - ld c, 0 - ret -; 128a0 - -.AppendMenuList ; 128a0 - ld [de], a - inc de - inc c - ret -; 128a4 - -.DrawMenuAccount_ ; 128a4 - jp .DrawMenuAccount -; 128a7 - -.PrintMenuAccount ; 128a7 - call .IsMenuAccountOn - ret z - call .DrawMenuAccount - decoord 0, 14 - jp .MenuDesc -; 128b4 - -.DrawMenuAccount ; 128b4 - call .IsMenuAccountOn - ret z - hlcoord 0, 13 - lb bc, 5, 10 - call ClearBox - hlcoord 0, 13 - ld b, 3 - ld c, 8 - jp TextBoxPalette -; 128cb - -.IsMenuAccountOn ; 128cb - ld a, [Options2] - and 1 - ret -; 128d1 - -.DrawBugContestStatusBox ; 128d1 - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - ret z - callba Function24bdc - ret -; 128de - -.DrawBugContestStatus ; 128de - ld hl, StatusFlags2 - bit 2, [hl] ; bug catching contest - jr nz, .contest - ret -.contest - callba Function24be7 - ret -; 128ed - - -StartMenu_Exit: ; 128ed -; Exit the menu. - - ld a, 1 - ret -; 128f0 - - -StartMenu_Quit: ; 128f0 -; Retire from the bug catching contest. - - ld hl, .EndTheContestText - call Function12cf5 - jr c, .DontEndContest - ld a, BANK(BugCatchingContestReturnToGateScript) - ld hl, BugCatchingContestReturnToGateScript - call FarQueueScript - ld a, 4 - ret - -.DontEndContest - ld a, 0 - ret - -.EndTheContestText - text_jump UnknownText_0x1c1a6c - db "@" -; 1290b - - -StartMenu_Save: ; 1290b -; Save the game. - - call BufferScreen - callba Function14a1a - jr nc, .asm_12919 - ld a, 0 - ret -.asm_12919 - ld a, 1 - ret -; 1291c - - -StartMenu_Option: ; 1291c -; Game options. - - call FadeToMenu - callba OptionsMenu - ld a, 6 - ret -; 12928 - - -StartMenu_Status: ; 12928 -; Player status. - - call FadeToMenu - callba Function25105 - call Function2b3c - ld a, 0 - ret -; 12937 - - -StartMenu_Pokedex: ; 12937 - - ld a, [PartyCount] - and a - jr z, .asm_12949 - - call FadeToMenu - callba Pokedex - call Function2b3c - -.asm_12949 - ld a, 0 - ret -; 1294c - - -StartMenu_Pokegear: ; 1294c - - call FadeToMenu - callba Function90b8d - call Function2b3c - ld a, 0 - ret -; 1295b - - -StartMenu_Pack: ; 1295b - - call FadeToMenu - callba Pack - ld a, [wcf66] - and a - jr nz, .asm_12970 - call Function2b3c - ld a, 0 - ret -.asm_12970 - call Function2b4d - ld a, 4 - ret -; 12976 - - -StartMenu_Pokemon: ; 12976 - - ld a, [PartyCount] - and a - jr z, .return - - call FadeToMenu - -.choosemenu - xor a - ld [PartyMenuActionText], a ; Choose a POKéMON. - call WhiteBGMap - -.menu - callba Function5004f - callba Function50405 - callba Function503e0 - -.menunoreload - callba WritePartyMenuTilemap - callba PrintPartyMenuText - call WaitBGMap - call SetPalettes ; load regular palettes? - call DelayFrame - callba PartyMenuSelect - jr c, .return ; if cancelled or pressed B - - call PokemonActionSubmenu - cp 3 - jr z, .menu - cp 0 - jr z, .choosemenu - cp 1 - jr z, .menunoreload - cp 2 - jr z, .quit - -.return - call Function2b3c - ld a, 0 - ret - -.quit - ld a, b - push af - call Function2b4d - pop af - ret -; 129d5 - -Function129d5: ; 129d5 - ld a, [NumItems] - and a - ret nz - ld a, [NumKeyItems] - and a - ret nz - ld a, [NumBalls] - and a - ret nz - ld hl, TMsHMs - ld b, NUM_TMS + NUM_HMS -.asm_129e9 - ld a, [hli] - and a - jr nz, .asm_129f2 - dec b - jr nz, .asm_129e9 - scf - ret -.asm_129f2 - and a - ret - -Function129f4: ; 129f4 - push de - call PartyMonItemName - callba _CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr nz, .asm_12a3f - ld hl, UnknownText_0x12a45 - call MenuTextBox - callba Function24fbf - push af - call WriteBackup - call ExitMenu - pop af - jr c, .asm_12a42 - ld hl, UnknownText_0x12a4a - call MenuTextBox - call YesNoBox - push af - call ExitMenu - pop af - jr c, .asm_12a42 - pop hl - ld a, [wd107] - call TossItem - call PartyMonItemName - ld hl, UnknownText_0x12a4f - call MenuTextBox - call ExitMenu - and a - ret -.asm_12a3f - call Function12a54 -.asm_12a42 - pop hl - scf - ret -; 12a45 (4:6a45) - -UnknownText_0x12a45: ; 0x12a45 - ; Toss out how many @ (S)? - text_jump UnknownText_0x1c1a90 - db "@" -; 0x12a4a - -UnknownText_0x12a4a: ; 0x12a4a - ; Throw away @ @ (S)? - text_jump UnknownText_0x1c1aad - db "@" -; 0x12a4f - -UnknownText_0x12a4f: ; 0x12a4f - ; Discarded @ (S). - text_jump UnknownText_0x1c1aca - db "@" -; 0x12a54 - -Function12a54: ; 12a54 (4:6a54) - ld hl, UnknownText_0x12a5b - call MenuTextBoxBackup - ret -; 12a5b (4:6a5b) - -UnknownText_0x12a5b: ; 0x12a5b - ; That's too impor- tant to toss out! - text_jump UnknownText_0x1c1adf - db "@" -; 0x12a60 - -CantUseItem: ; 12a60 - ld hl, CantUseItemText - call Function2012 - ret -; 12a67 - -CantUseItemText: ; 12a67 - text_jump UnknownText_0x1c1b03 - db "@" -; 12a6c - - -PartyMonItemName: ; 12a6c - ld a, [CurItem] - ld [wd265], a - call GetItemName - call CopyName1 - ret -; 12a79 - - -CancelPokemonAction: ; 12a79 - callba Function50405 - callba Function8ea71 - ld a, 1 - ret -; 12a88 - - -PokemonActionSubmenu: ; 12a88 - hlcoord 1, 15 - lb bc, 2, 18 - call ClearBox - callba MonSubmenu - call GetCurNick - ld a, [MenuSelection] - ld hl, .Actions - ld de, 3 - call IsInArray - jr nc, .nothing - - inc hl - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.nothing - ld a, 0 - ret - -.Actions - dbw MONMENU_CUT, MonMenu_Cut ; Cut - dbw MONMENU_FLY, MonMenu_Fly ; Fly - dbw MONMENU_SURF, MonMenu_Surf ; Surf - dbw MONMENU_STRENGTH, MonMenu_Strength ; Strength - dbw MONMENU_FLASH, MonMenu_Flash ; Flash - dbw MONMENU_WHIRLPOOL, MonMenu_Whirlpool ; Whirlpool - dbw MONMENU_DIG, MonMenu_Dig ; Dig - dbw MONMENU_TELEPORT, MonMenu_Teleport ; Teleport - dbw MONMENU_SOFTBOILED, MonMenu_Softboiled_MilkDrink ; Softboiled - dbw MONMENU_MILKDRINK, MonMenu_Softboiled_MilkDrink ; MilkDrink - dbw MONMENU_HEADBUTT, MonMenu_Headbutt ; Headbutt - dbw MONMENU_WATERFALL, MonMenu_Waterfall ; Waterfall - dbw MONMENU_ROCKSMASH, MonMenu_RockSmash ; RockSmash - dbw MONMENU_SWEETSCENT, MonMenu_SweetScent ; SweetScent - dbw MONMENU_STATS, OpenPartyStats - dbw MONMENU_SWITCH, SwitchPartyMons - dbw MONMENU_ITEM, GiveTakePartyMonItem - dbw MONMENU_CANCEL, CancelPokemonAction - dbw MONMENU_MOVE, ManagePokemonMoves ; move - dbw MONMENU_MAIL, MonMailAction ; mail -; 12aec - - -SwitchPartyMons: ; 12aec - -; Don't try if there's nothing to switch! - ld a, [PartyCount] - cp 2 - jr c, .DontSwitch - - ld a, [CurPartyMon] - inc a - ld [wd0e3], a - - callba Function8ea8c - callba Function5042d - - ld a, 4 - ld [PartyMenuActionText], a - callba WritePartyMenuTilemap - callba PrintPartyMenuText - - hlcoord 0, 1 - ld bc, 20 * 2 - ld a, [wd0e3] - dec a - call AddNTimes - ld [hl], "▷" - call WaitBGMap - call SetPalettes - call DelayFrame - - callba PartyMenuSelect - bit 1, b - jr c, .DontSwitch - - callba _SwitchPartyMons - - xor a - ld [PartyMenuActionText], a - - callba Function5004f - callba Function50405 - callba Function503e0 - - ld a, 1 - ret - -.DontSwitch - xor a - ld [PartyMenuActionText], a - call CancelPokemonAction - ret -; 12b60 - - -GiveTakePartyMonItem: ; 12b60 - -; Eggs can't hold items! - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_12ba6 - - ld hl, GiveTakeItemMenuData - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - jr c, .asm_12ba6 - - call GetCurNick - ld hl, StringBuffer1 - ld de, wd050 - ld bc, $b - call CopyBytes - ld a, [MenuSelection2] - cp 1 - jr nz, .asm_12ba0 - - call LoadPartyMenuDataHeader - call ClearPalettes - call Function12ba9 - call ClearPalettes - call LoadFontsBattleExtra - call ExitMenu - ld a, 0 - ret - -.asm_12ba0 - call TakePartyItem - ld a, 3 - ret - -.asm_12ba6 - ld a, 3 - ret -; 12ba9 - - -Function12ba9: ; 12ba9 - - callba Function106a5 - -.loop - callba Function106be - - ld a, [wcf66] - and a - jr z, .quit - - ld a, [wcf65] - cp 2 - jr z, .next - - call CheckTossableItem - ld a, [wItemAttributeParamBuffer] - and a - jr nz, .next - - call Function12bd9 - jr .quit - -.next - ld hl, CantBeHeldText - call MenuTextBoxBackup - jr .loop - -.quit - ret -; 12bd9 - - -Function12bd9: ; 12bd9 - - call SpeechTextBox - call PartyMonItemName - call GetPartyItemLocation - ld a, [hl] - and a - jr z, .asm_12bf4 - - push hl - ld d, a - callba ItemIsMail - pop hl - jr c, .asm_12c01 - ld a, [hl] - jr .asm_12c08 - -.asm_12bf4 - call Function12cea - ld hl, MadeHoldText - call MenuTextBoxBackup - call GivePartyItem - ret - -.asm_12c01 - ld hl, PleaseRemoveMailText - call MenuTextBoxBackup - ret - -.asm_12c08 - ld [wd265], a - call GetItemName - ld hl, SwitchAlreadyHoldingText - call Function12cf5 - jr c, .asm_12c4b - - call Function12cea - ld a, [wd265] - push af - ld a, [CurItem] - ld [wd265], a - pop af - ld [CurItem], a - call Function12cdf - jr nc, .asm_12c3c - - ld hl, TookAndMadeHoldText - call MenuTextBoxBackup - ld a, [wd265] - ld [CurItem], a - call GivePartyItem - ret - -.asm_12c3c - ld a, [wd265] - ld [CurItem], a - call Function12cdf - ld hl, ItemStorageIsFullText - call MenuTextBoxBackup - -.asm_12c4b - ret -; 12c4c - - -GivePartyItem: ; 12c4c - - call GetPartyItemLocation - ld a, [CurItem] - ld [hl], a - ld d, a - callba ItemIsMail - jr nc, .asm_12c5f - call Function12cfe - -.asm_12c5f - ret -; 12c60 - - -TakePartyItem: ; 12c60 - - call SpeechTextBox - call GetPartyItemLocation - ld a, [hl] - and a - jr z, .asm_12c8c - - ld [CurItem], a - call Function12cdf - jr nc, .asm_12c94 - - callba ItemIsMail - call GetPartyItemLocation - ld a, [hl] - ld [wd265], a - ld [hl], NO_ITEM - call GetItemName - ld hl, TookFromText - call MenuTextBoxBackup - jr .asm_12c9a - -.asm_12c8c - ld hl, IsntHoldingAnythingText - call MenuTextBoxBackup - jr .asm_12c9a - -.asm_12c94 - ld hl, ItemStorageIsFullText - call MenuTextBoxBackup - -.asm_12c9a - ret -; 12c9b - - -GiveTakeItemMenuData: ; 12c9b - db %01010000 - db 12, 12 ; start coords - db 17, 19 ; end coords - dw .Items - db 1 ; default option - -.Items - db %10000000 ; x padding - db 2 ; # items - db "GIVE@" - db "TAKE@" -; 12caf - - -TookAndMadeHoldText: ; 12caf - text_jump UnknownText_0x1c1b2c - db "@" -; 12cb4 - -MadeHoldText: ; 12cb4 - text_jump UnknownText_0x1c1b57 - db "@" -; 12cb9 - -PleaseRemoveMailText: ; 12cb9 - text_jump UnknownText_0x1c1b6f - db "@" -; 12cbe - -IsntHoldingAnythingText: ; 12cbe - text_jump UnknownText_0x1c1b8e - db "@" -; 12cc3 - -ItemStorageIsFullText: ; 12cc3 - text_jump UnknownText_0x1c1baa - db "@" -; 12cc8 - -TookFromText: ; 12cc8 - text_jump UnknownText_0x1c1bc4 - db "@" -; 12ccd - -SwitchAlreadyHoldingText: ; 12ccd - text_jump UnknownText_0x1c1bdc - db "@" -; 12cd2 - -CantBeHeldText: ; 12cd2 - text_jump UnknownText_0x1c1c09 - db "@" -; 12cd7 - - -GetPartyItemLocation: ; 12cd7 - push af - ld a, MON_ITEM - call GetPartyParamLocation - pop af - ret -; 12cdf - - -Function12cdf: ; 12cdf - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld hl, NumItems - jp ReceiveItem -; 12cea - - -Function12cea: ; 12cea (4:6cea) - ld a, $1 - ld [wItemQuantityChangeBuffer], a - ld hl, NumItems - jp TossItem - -Function12cf5: ; 12cf5 - call MenuTextBox - call YesNoBox - jp ExitMenu -; 12cfe - - -Function12cfe: ; 12cfe (4:6cfe) - ld de, wd002 - callba Function11e75 - ld hl, PlayerName - ld de, wd023 - ld bc, $a - call CopyBytes - ld hl, PlayerID - ld bc, $2 - call CopyBytes - ld a, [CurPartySpecies] - ld [de], a - inc de - ld a, [CurItem] - ld [de], a - ld a, [CurPartyMon] - ld hl, sPartyScratch1 - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - ld d, h - ld e, l - ld hl, wd002 - ld bc, SCRATCHMON_STRUCT_LENGTH - ld a, BANK(sPartyScratch1) - call GetSRAMBank - call CopyBytes - call CloseSRAM - ret - -MonMailAction: ; 12d45 -; If in the time capsule or trade center, -; selecting the mail only allows you to -; read the mail. - ld a, [wLinkMode] - cp LINK_TIMECAPSULE - jr z, .read - cp LINK_TRADECENTER - jr z, .read - -; Show the READ/TAKE/QUIT menu. - ld hl, .MenuDataHeader - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - -; Interpret the menu. - jp c, .done - ld a, [MenuSelection2] - cp $1 - jr z, .read - cp $2 - jr z, .take - jp .done - -.read - callba ReadPartyMonMail - ld a, $0 - ret - -.take - ld hl, .sendmailtopctext - call Function12cf5 - jr c, .RemoveMailToBag - ld a, [CurPartyMon] - ld b, a - callba Function4456e - jr c, .MailboxFull - ld hl, .sentmailtopctext - call MenuTextBoxBackup - jr .done - -.MailboxFull - ld hl, .mailboxfulltext - call MenuTextBoxBackup - jr .done - -.RemoveMailToBag - ld hl, .mailwilllosemessagetext - call Function12cf5 - jr c, .done - call GetPartyItemLocation - ld a, [hl] - ld [CurItem], a - call Function12cdf - jr nc, .BagIsFull - call GetPartyItemLocation - ld [hl], $0 - call GetCurNick - ld hl, .tookmailfrommontext - call MenuTextBoxBackup - jr .done - -.BagIsFull - ld hl, .bagfulltext - call MenuTextBoxBackup - jr .done - -.done - ld a, $3 - ret -; 12dc9 - - -.MenuDataHeader: ; 0x12dc9 - db $40 ; flags - db 10, 12 ; start coords - db 17, 19 ; end coords - dw .MenuData2 - db 1 ; default option -; 0x12dd1 - -.MenuData2: ; 0x12dd1 - db $80 ; flags - db 3 ; items - db "READ@" - db "TAKE@" - db "QUIT@" -; 0x12de2 - - -.mailwilllosemessagetext: ; 0x12de2 -; The MAIL will lose its message. OK? - text_jump UnknownText_0x1c1c22 - db "@" -; 0x12de7 - -.tookmailfrommontext: ; 0x12de7 -; MAIL detached from . - text_jump UnknownText_0x1c1c47 - db "@" -; 0x12dec - -.bagfulltext: ; 0x12dec -; There's no space for removing MAIL. - text_jump UnknownText_0x1c1c62 - db "@" -; 0x12df1 - -.sendmailtopctext: ; 0x12df1 -; Send the removed MAIL to your PC? - text_jump UnknownText_0x1c1c86 - db "@" -; 0x12df6 - -.mailboxfulltext: ; 0x12df6 -; Your PC's MAILBOX is full. - text_jump UnknownText_0x1c1ca9 - db "@" -; 0x12dfb - -.sentmailtopctext: ; 0x12dfb -; The MAIL was sent to your PC. - text_jump UnknownText_0x1c1cc4 - db "@" -; 0x12e00 - - -OpenPartyStats: ; 12e00 - call LoadPartyMenuDataHeader - call ClearSprites -; PartyMon - xor a - ld [MonType], a - call LowVolume - predef StatsScreenInit - call MaxVolume - call Call_ExitMenu - ld a, 0 - ret -; 12e1b - - -MonMenu_Cut: ; 12e1b - callba CutFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12e2d - ld b, $4 - ld a, $2 - ret - -.asm_12e2d - ld a, $3 - ret -; 12e30 - - -MonMenu_Fly: ; 12e30 - callba FlyFunction - ld a, [wd0ec] - cp $2 - jr z, .asm_12e4c - cp $0 - jr z, .asm_12e4f - callba MobileFn_1060b5 - ld b, $4 - ld a, $2 - ret - -.asm_12e4c - ld a, $3 - ret - -.asm_12e4f - ld a, $0 - ret - -.asm_12e52 - ld a, $1 - ret -; 12e55 - -MonMenu_Flash: ; 12e55 - callba Functionc8ac - ld a, [wd0ec] - cp $1 - jr nz, .asm_12e67 - ld b, $4 - ld a, $2 - ret - -.asm_12e67 - ld a, $3 - ret -; 12e6a - -MonMenu_Strength: ; 12e6a - callba StrengthFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12e7c - ld b, $4 - ld a, $2 - ret - -.asm_12e7c - ld a, $3 - ret -; 12e7f - -MonMenu_Whirlpool: ; 12e7f - callba WhirlpoolFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12e91 - ld b, $4 - ld a, $2 - ret - -.asm_12e91 - ld a, $3 - ret -; 12e94 - -MonMenu_Waterfall: ; 12e94 - callba Functioncade - ld a, [wd0ec] - cp $1 - jr nz, .asm_12ea6 - ld b, $4 - ld a, $2 - ret - -.asm_12ea6 - ld a, $3 - ret -; 12ea9 - -MonMenu_Teleport: ; 12ea9 - callba TeleportFunction - ld a, [wd0ec] - and a - jr z, .asm_12eba - ld b, $4 - ld a, $2 - ret - -.asm_12eba - ld a, $3 - ret -; 12ebd - -MonMenu_Surf: ; 12ebd - callba SurfFunction - ld a, [wd0ec] - and a - jr z, .asm_12ece - ld b, $4 - ld a, $2 - ret - -.asm_12ece - ld a, $3 - ret -; 12ed1 - -MonMenu_Dig: ; 12ed1 - callba DigFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12ee3 - ld b, $4 - ld a, $2 - ret - -.asm_12ee3 - ld a, $3 - ret -; 12ee6 - -MonMenu_Softboiled_MilkDrink: ; 12ee6 - call Function12f05 - jr nc, .asm_12ef3 - callba Functionf3df - jr .asm_12ef9 - -.asm_12ef3 - ld hl, UnknownText_0x12f00 - call PrintText - -.asm_12ef9 - xor a - ld [PartyMenuActionText], a - ld a, $3 - ret -; 12f00 - -UnknownText_0x12f00: ; 0x12f00 - ; Not enough HP! - text_jump UnknownText_0x1c1ce3 - db "@" -; 0x12f05 - -Function12f05: ; 12f05 - ld a, MON_MAXHP - call GetPartyParamLocation - ld a, [hli] - ld [hDividend + 0], a - ld a, [hl] - ld [hDividend + 1], a - ld a, $5 - ld [hDivisor], a - ld b, $2 - call Divide - ld a, MON_HP + 1 - call GetPartyParamLocation - ld a, [hQuotient + 2] - sub [hl] - dec hl - ld a, [hQuotient + 1] - sbc [hl] - ret -; 12f26 - -MonMenu_Headbutt: ; 12f26 - callba HeadbuttFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12f38 - ld b, $4 - ld a, $2 - ret - -.asm_12f38 - ld a, $3 - ret -; 12f3b - -MonMenu_RockSmash: ; 12f3b - callba RockSmashFunction - ld a, [wd0ec] - cp $1 - jr nz, .asm_12f4d - ld b, $4 - ld a, $2 - ret - -.asm_12f4d - ld a, $3 - ret -; 12f50 - -MonMenu_SweetScent: ; 12f50 - callba DoMovementFunctionc - ld b, $4 - ld a, $2 - ret -; 12f5b - -Function12f5b: ; 12f5b - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - call LoadFontsBattleExtra - call Function12f73 - pop bc - ld a, b - ld [Options], a - push af - call WhiteBGMap - pop af - ret -; 12f73 - -Function12f73: ; 12f73 - call SetUpMoveScreenBG - ld de, Unknown_12fb2 - call Function1bb1 - call Function131ef - ld hl, wcfa5 - set 6, [hl] - jr Function12f93 - -Function12f86: ; 12f86 - call Function1bd3 - bit 1, a - jp nz, Function12f9f - bit 0, a - jp nz, Function12f9c - -Function12f93: ; 12f93 - call PrepareToPlaceMoveData - call PlaceMoveData - jp Function12f86 -; 12f9c - -Function12f9c: ; 12f9c - and a - jr Function12fa0 - -Function12f9f: ; 12f9f - scf - -Function12fa0: ; 12fa0 - push af - xor a - ld [wd0e3], a - ld hl, wcfa5 - res 6, [hl] - call ClearSprites - call ClearTileMap - pop af - ret -; 12fb2 - -Unknown_12fb2: ; 12fb2 - db $03, $01, $03, $01, $40, $00, $20, $c3 -; 12fba - -ManagePokemonMoves: ; 12fba - ld a, [CurPartySpecies] - cp EGG - jr z, .egg - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - call MoveScreenLoop - pop af - ld [Options], a - call WhiteBGMap - -.egg - ld a, $0 - ret -; 12fd5 - -MoveScreenLoop: ; 12fd5 - ld a, [CurPartyMon] - inc a - ld [wd0d8], a - call SetUpMoveScreenBG - call Function132d3 - ld de, Unknown_13163 - call Function1bb1 -.loop - call Function131ef - ld hl, wcfa5 - set 6, [hl] - jr .skip_joy - -.joy_loop - call Function1bd3 - bit 1, a - jp nz, .b_button - bit 0, a - jp nz, .a_button - bit 4, a - jp nz, .d_right - bit 5, a - jp nz, .d_left - -.skip_joy - call PrepareToPlaceMoveData - ld a, [wMoveSwapBuffer] - and a - jr nz, .moving_move - call PlaceMoveData - jp .joy_loop - -.moving_move - ld a, " " - hlcoord 1, 11 - ld bc, 5 - call ByteFill - hlcoord 1, 12 - lb bc, 5, SCREEN_WIDTH - 2 - call ClearBox - hlcoord 1, 12 - ld de, String_1316b - call PlaceString - jp .joy_loop -.b_button: ; 13038 - call PlayClickSFX - call WaitSFX - ld a, [wMoveSwapBuffer] - and a - jp z, .exit - - ld a, [wMoveSwapBuffer] - ld [MenuSelection2], a - xor a - ld [wMoveSwapBuffer], a - hlcoord 1, 2 - lb bc, 8, SCREEN_WIDTH - 2 - call ClearBox - jp .loop -; 1305b - -.d_right: ; 1305b - ld a, [wMoveSwapBuffer] - and a - jp nz, .joy_loop - - ld a, [CurPartyMon] - ld b, a - push bc - call .cycle_right - pop bc - ld a, [CurPartyMon] - cp b - jp z, .joy_loop - jp MoveScreenLoop - -.d_left: ; 13075 - ld a, [wMoveSwapBuffer] - and a - jp nz, .joy_loop - ld a, [CurPartyMon] - ld b, a - push bc - call .cycle_left - pop bc - ld a, [CurPartyMon] - cp b - jp z, .joy_loop - jp MoveScreenLoop - -.cycle_right - ld a, [CurPartyMon] - inc a - ld [CurPartyMon], a - ld c, a - ld b, 0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - cp -1 - jr z, .cycle_left - cp EGG - ret nz - jr .cycle_right - -.cycle_left - ld a, [CurPartyMon] - and a - ret z -.cycle_left_loop - ld a, [CurPartyMon] - dec a - ld [CurPartyMon], a - ld c, a - ld b, 0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - cp EGG - ret nz - ld a, [CurPartyMon] - and a - jr z, .cycle_right - jr .cycle_left_loop -; 130c6 - -.a_button: ; 130c6 - call PlayClickSFX - call WaitSFX - ld a, [wMoveSwapBuffer] - and a - jr nz, .place_move - ld a, [MenuSelection2] - ld [wMoveSwapBuffer], a - call Function1bee - jp .moving_move - -.place_move - ld hl, PartyMon1Moves - ld bc, PARTYMON_STRUCT_LENGTH - ld a, [CurPartyMon] - call AddNTimes - push hl - call .copy_move - pop hl - ld bc, $15 - add hl, bc - call .copy_move - ld a, [wBattleMode] - jr z, .swap_moves - ld hl, BattleMonMoves - ld bc, $20 - ld a, [CurPartyMon] - call AddNTimes - push hl - call .copy_move - pop hl - ld bc, 6 - add hl, bc - call .copy_move - -.swap_moves - ld de, SFX_SWITCH_POKEMON - call PlaySFX - call WaitSFX - ld de, SFX_SWITCH_POKEMON - call PlaySFX - call WaitSFX - hlcoord 1, 2 - lb bc, 8, 18 - call ClearBox - hlcoord 10, 10 - lb bc, 1, 9 - call ClearBox - jp .loop -; 1313a - -.copy_move: ; 1313a - push hl - ld a, [MenuSelection2] - dec a - ld c, a - ld b, $0 - add hl, bc - ld d, h - ld e, l - pop hl - ld a, [wMoveSwapBuffer] - dec a - ld c, a - ld b, $0 - add hl, bc - ld a, [de] - ld b, [hl] - ld [hl], a - ld a, b - ld [de], a - ret -; 13154 - -.exit: ; 13154 - xor a - ld [wMoveSwapBuffer], a - ld hl, wcfa5 - res 6, [hl] - call ClearSprites - jp ClearTileMap -; 13163 - -Unknown_13163: ; 13163 - db $03, $01, $03, $01, $40, $00, $20, $f3 -; 1316b - -String_1316b: ; 1316b - db "Where?@" -; 13172 - -SetUpMoveScreenBG: ; 13172 - call WhiteBGMap - call ClearTileMap - call ClearSprites - xor a - ld [hBGMapMode], a - callba Functionfb571 - callba InefficientlyClear121BytesAtwc300 - ld a, [CurPartyMon] - ld e, a - ld d, $0 - ld hl, PartySpecies - add hl, de - ld a, [hl] - ld [wd265], a - ld e, $2 - callba Function8e83f - hlcoord 0, 1 - ld b, 9 - ld c, 18 - call TextBox - hlcoord 0, 11 - ld b, 5 - ld c, 18 - call TextBox - hlcoord 2, 0 - lb bc, 2, 3 - call ClearBox - xor a - ld [MonType], a - ld hl, PartyMonNicknames - ld a, [CurPartyMon] - call GetNick - hlcoord 5, 1 - call PlaceString - push bc - callba CopyPkmnToTempMon - pop hl - call PrintLevel - ld hl, PlayerHPPal - call SetHPPal - ld b, $e - call GetSGBLayout - hlcoord 16, 0 - lb bc, 1, 3 - jp ClearBox -; 131ef - -Function131ef: ; 131ef - xor a - ld [hBGMapMode], a - ld [wMoveSwapBuffer], a - ld [MonType], a - predef CopyPkmnToTempMon - ld hl, TempMonMoves - ld de, wListMoves_MoveIndicesBuffer - ld bc, NUM_MOVES - call CopyBytes - ld a, SCREEN_WIDTH * 2 - ld [Buffer1], a - hlcoord 2, 3 - predef ListMoves - hlcoord 10, 4 - predef Function50c50 - call WaitBGMap - call SetPalettes - ld a, [wd0eb] - inc a - ld [wcfa3], a - hlcoord 0, 11 - ld b, 5 - ld c, 18 - jp TextBox -; 13235 - -PrepareToPlaceMoveData: ; 13235 - ld hl, PartyMon1Moves - ld bc, PARTYMON_STRUCT_LENGTH - ld a, [CurPartyMon] - call AddNTimes - ld a, [MenuSelection2] - dec a - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [CurMove], a - hlcoord 1, 12 - lb bc, 5, 18 - jp ClearBox -; 13256 - -PlaceMoveData: ; 13256 - xor a - ld [hBGMapMode], a - hlcoord 0, 10 - ld de, String_132ba - call PlaceString - hlcoord 0, 11 - ld de, String_132c2 - call PlaceString - hlcoord 12, 12 - ld de, String_132ca - call PlaceString - ld a, [CurMove] - ld b, a - hlcoord 2, 12 - predef PrintMoveType - ld a, [CurMove] - dec a - ld hl, Moves + MOVE_POWER - ld bc, MOVE_LENGTH - call AddNTimes - ld a, BANK(Moves) - call GetFarByte - hlcoord 16, 12 - cp 2 - jr c, .no_power - ld [wd265], a - ld de, wd265 - lb bc, 1, 3 - call PrintNum - jr .description - -.no_power - ld de, String_132cf - call PlaceString - -.description - hlcoord 1, 14 - predef PrintMoveDesc - ld a, $1 - ld [hBGMapMode], a - ret -; 132ba - -String_132ba: ; 132ba - db "┌─────┐@" -; 132c2 -String_132c2: ; 132c2 - db "│TYPE/└@" -; 132ca -String_132ca: ; 132ca - db "ATK/@" -; 132cf -String_132cf: ; 132cf - db "---@" -; 132d3 - -Function132d3: ; 132d3 - call Function132da - call Function132fe - ret -; 132da - -Function132da: ; 132da - ld a, [CurPartyMon] - and a - ret z - ld c, a - ld e, a - ld d, 0 - ld hl, PartyCount - add hl, de -.loop - ld a, [hl] - and a - jr z, .prev - cp EGG - jr z, .prev - cp NUM_POKEMON + 1 - jr c, .legal - -.prev - dec hl - dec c - jr nz, .loop - ret - -.legal - hlcoord 16, 0 - ld [hl], "◀" - ret -; 132fe - -Function132fe: ; 132fe - ld a, [CurPartyMon] - inc a - ld c, a - ld a, [PartyCount] - cp c - ret z - ld e, c - ld d, 0 - ld hl, PartySpecies - add hl, de -.loop - ld a, [hl] - cp -1 - ret z - and a - jr z, .next - cp EGG - jr z, .next - cp NUM_POKEMON + 1 - jr c, .legal - -.next - inc hl - jr .loop - -.legal - hlcoord 18, 0 - ld [hl], "▶" - ret -; 13327 - - -SelectMenu:: ; 13327 - - call CheckRegisteredItem - jr c, .NotRegistered - jp UseRegisteredItem - -.NotRegistered - call LoadFont - ld b, BANK(ItemMayBeRegisteredText) - ld hl, ItemMayBeRegisteredText - call MapTextbox - call CloseText - jp LoadMoveSprites -; 13340 - - -ItemMayBeRegisteredText: ; 13340 - text_jump UnknownText_0x1c1cf3 - db "@" -; 13345 - - -CheckRegisteredItem: ; 13345 - - ld a, [WhichRegisteredItem] - and a - jr z, .NoRegisteredItem - and REGISTERED_POCKET - rlca - rlca - ld hl, .Pockets - rst JumpTable - ret - -.Pockets - dw .CheckItem - dw .CheckBall - dw .CheckKeyItem - dw .CheckTMHM - -.CheckItem - ld hl, NumItems - call .CheckRegisteredNo - jr c, .NoRegisteredItem - inc hl - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - call .IsSameItem - jr c, .NoRegisteredItem - and a - ret - -.CheckKeyItem - ld a, [RegisteredItem] - ld hl, KeyItems - ld de, 1 - call IsInArray - jr nc, .NoRegisteredItem - ld a, [RegisteredItem] - ld [CurItem], a - and a - ret - -.CheckBall - ld hl, NumBalls - call .CheckRegisteredNo - jr nc, .NoRegisteredItem - inc hl - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - call .IsSameItem - jr c, .NoRegisteredItem - ret - -.CheckTMHM - jr .NoRegisteredItem - -.NoRegisteredItem - xor a - ld [WhichRegisteredItem], a - ld [RegisteredItem], a - scf - ret -; 133a6 - - -.CheckRegisteredNo ; 133a6 - ld a, [WhichRegisteredItem] - and REGISTERED_NUMBER - dec a - cp [hl] - jr nc, .NotEnoughItems - ld [wd107], a - and a - ret - -.NotEnoughItems - scf - ret -; 133b6 - - -.IsSameItem ; 133b6 - ld a, [RegisteredItem] - cp [hl] - jr nz, .NotSameItem - ld [CurItem], a - and a - ret - -.NotSameItem - scf - ret -; 133c3 - - -UseRegisteredItem: ; 133c3 - - callba CheckItemMenu - ld a, [wItemAttributeParamBuffer] - ld hl, .SwitchTo - rst JumpTable - ret - -.SwitchTo - dw .CantUse - dw .NoFunction - dw .NoFunction - dw .NoFunction - dw .Current - dw .Party - dw .Overworld -; 133df - -.NoFunction ; 133df - call LoadFont - call CantUseItem - call LoadMoveSprites - and a - ret -; 133ea - -.Current ; 133ea - call LoadFont - call DoItemEffect - call LoadMoveSprites - and a - ret -; 133f5 - -.Party ; 133f5 - call ResetWindow - call FadeToMenu - call DoItemEffect - call Function2b3c - call LoadMoveSprites - and a - ret -; 13406 - -.Overworld ; 13406 - call ResetWindow - ld a, 1 - ld [wd0ef], a - call DoItemEffect - xor a - ld [wd0ef], a - ld a, [wd0ec] - cp 1 - jr nz, ._cantuse - scf - ld a, HMENURETURN_SCRIPT - ld [hMenuReturn], a - ret -; 13422 - -.CantUse ; 13422 - call ResetWindow - -._cantuse - call CantUseItem - call LoadMoveSprites - and a - ret -; 1342d - - -Elevator:: ; 1342d - call Function1344a - call Function1347d - jr c, .asm_13448 - ld [wd041], a - call Function134dd - jr c, .asm_13448 - ld hl, wd041 - cp [hl] - jr z, .asm_13448 - call Function134c0 - and a - ret - -.asm_13448 - scf - ret -; 1344a - -Function1344a: ; 1344a - ld a, b - ld [EngineBuffer1], a - ld a, e - ld [wd03f], a - ld a, d - ld [wd040], a - call Function1345a - ret -; 1345a - -Function1345a: ; 1345a - ld de, OBPals + 8 * 6 - ld bc, 4 - ld hl, wd03f - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [EngineBuffer1] - call GetFarByte - inc hl - ld [de], a - inc de -.asm_1346f - ld a, [EngineBuffer1] - call GetFarByte - ld [de], a - inc de - add hl, bc - cp $ff - jr nz, .asm_1346f - ret -; 1347d - -Function1347d: ; 1347d - ld hl, wd03f - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [EngineBuffer1] - call GetFarByte - ld c, a - inc hl - ld a, [BackupMapGroup] - ld d, a - ld a, [BackupMapNumber] - ld e, a - ld b, $0 -.asm_13495 - ld a, [EngineBuffer1] - call GetFarByte - cp $ff - jr z, .asm_134be -rept 2 - inc hl -endr - ld a, [EngineBuffer1] - call GetFarByte - inc hl - cp d - jr nz, .asm_134b7 - ld a, [EngineBuffer1] - call GetFarByte - inc hl - cp e - jr nz, .asm_134b8 - jr .asm_134bb - -.asm_134b7 - inc hl - -.asm_134b8 - inc b - jr .asm_13495 - -.asm_134bb - xor a - ld a, b - ret - -.asm_134be - scf - ret -; 134c0 - -Function134c0: ; 134c0 - push af - ld hl, wd03f - ld a, [hli] - ld h, [hl] - ld l, a - inc hl - pop af - ld bc, 4 - call AddNTimes - inc hl - ld de, wdcac - ld a, [EngineBuffer1] - ld bc, 3 - call FarCopyBytes - ret -; 134dd - -Function134dd: ; 134dd - call LoadPartyMenuDataHeader - ld hl, Elevator_WhichFloorText - call PrintText - call Elevator_GetCurrentFloorText - ld hl, Elevator_MenuDataHeader - call CopyMenuDataHeader - call Function352f - call UpdateSprites - xor a - ld [wd0e4], a - call HandleScrollingMenu - call WriteBackup - ld a, [wcf73] - cp $2 - jr z, .asm_1350b - xor a - ld a, [wcf77] - ret - -.asm_1350b - scf - ret -; 1350d - -Elevator_WhichFloorText: ; 0x1350d - ; Which floor? - text_jump UnknownText_0x1bd2bc - db "@" -; 0x13512 - - -Elevator_GetCurrentFloorText: ; 13512 - ld hl, Options - ld a, [hl] - push af - set NO_TEXT_SCROLL, [hl] - hlcoord 0, 0 - ld b, 4 - ld c, 8 - call TextBox - hlcoord 1, 2 - ld de, Elevator_CurrentFloorText - call PlaceString - hlcoord 4, 4 - call Elevator_GetCurrentFloorString - pop af - ld [Options], a - ret -; 13537 - -Elevator_CurrentFloorText: ; 13537 - db "Now on:@" -; 1353f - - -Elevator_GetCurrentFloorString: ; 1353f - push hl - ld a, [wd041] - ld e, a - ld d, 0 - ld hl, wd0f1 - add hl, de - ld a, [hl] - pop de - call GetFloorString - ret -; 13550 - -Elevator_MenuDataHeader: ; 0x13550 - db $40 ; flags - db 01, 12 ; start coords - db 09, 18 ; end coords - dw Elevator_MenuData2 - db 1 ; default option -; 0x13558 - -Elevator_MenuData2: ; 0x13558 - db $10 ; flags - db 4, 0 ; rows, columns - db 1 ; horizontal spacing - dbw 0, OBPals + 8 * 6 - dba GetElevatorFlorStrings - dba NULL - dba NULL -; 13568 - -GetElevatorFlorStrings: ; 13568 - ld a, [MenuSelection] +String_121dd: ; 122dd + db "A B C D E F G H I J" + db "K L M N O P Q R S T" + db "U V W X Y Z , ? !" + db "1 2 3 4 5 6 7 8 9 0" + db " é ♂ ♀ ¥ … ×" + db "lower DEL END " +; 1224f -GetFloorString: ; 1356b - push de - call FloorToString - ld d, h - ld e, l - pop hl - jp PlaceString -; 13575 +String_1224f: ; 1224f + db "a b c d e f g h i j" + db "k l m n o p q r s t" + db "u v w x y z . - /" + db "'d 'l 'm 'r 's 't 'v & ( )" + db "<``> <''> [ ] ' : ; " + db "UPPER DEL END " +; 122c1 -FloorToString: ; 13575 - push de - ld e, a - ld d, 0 - ld hl, .floors -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - pop de - ret -; 13583 - -.floors - dw .b4f - dw .b3f - dw .b2f - dw .b1f - dw ._1f - dw ._2f - dw ._3f - dw ._4f - dw ._5f - dw ._6f - dw ._7f - dw ._8f - dw ._9f - dw ._10f - dw ._11f - dw .roof - -.b4f - db "B4F@" -.b3f - db "B3F@" -.b2f - db "B2F@" -.b1f - db "B1F@" -._1f - db "1F@" -._2f - db "2F@" -._3f - db "3F@" -._4f - db "4F@" -._5f - db "5F@" -._6f - db "6F@" -._7f - db "7F@" -._8f - db "8F@" -._9f - db "9F@" -._10f - db "10F@" -._11f - db "11F@" -.roof - db "ROOF@" -; 135db +Script_AbortBugContest: ; 0x122c1 + checkflag ENGINE_BUG_CONTEST_TIMER + iffalse .finish + setflag ENGINE_DAILY_BUG_CONTEST + special ContestReturnMons +.finish + end +; 0x122ce +INCLUDE "event/itemball.asm" +INCLUDE "engine/healmachineanim.asm" +INCLUDE "event/whiteout.asm" +INCLUDE "event/forced_movement.asm" +INCLUDE "event/itemfinder.asm" +INCLUDE "engine/startmenu.asm" +INCLUDE "engine/selectmenu.asm" +INCLUDE "event/elevator.asm" Special_GiveParkBalls: ; 135db xor a @@ -14987,13 +10934,13 @@ UnknownText_0x13614: ; 0x13614 RepelWoreOffScript:: ; 0x13619 loadfont - writetext UnknownText_0x13620 + writetext .text closetext loadmovesprites end ; 0x13620 -UnknownText_0x13620: ; 0x13620 +.text: ; 0x13620 ; REPEL's effect wore off. text_jump UnknownText_0x1bd308 db "@" @@ -15003,32 +10950,32 @@ SignpostItemScript:: ; 0x13625 loadfont copybytetovar Unkn2Pals itemtotext 0, 0 - writetext UnknownText_0x13645 - giveitem -1 - iffalse UnknownScript_0x1363e + writetext .found_text + giveitem ITEM_FROM_MEM + iffalse .bag_full callasm SetMemEvent specialsound itemnotify - jump UnknownScript_0x13643 + jump .finish ; 0x1363e -UnknownScript_0x1363e: ; 0x1363e +.bag_full: ; 0x1363e keeptextopen - writetext UnknownText_0x1364a + writetext .no_room_text closetext -UnknownScript_0x13643: ; 13643 +.finish: ; 13643 loadmovesprites end ; 0x13645 -UnknownText_0x13645: ; 0x13645 +.found_text: ; 0x13645 ; found @ ! text_jump UnknownText_0x1bd321 db "@" ; 0x1364a -UnknownText_0x1364a: ; 0x1364a +.no_room_text: ; 0x1364a ; But has no space left… text_jump UnknownText_0x1bd331 db "@" @@ -15053,12 +11000,12 @@ CheckFacingTileForStd:: ; 1365b jr nc, .notintable ld a, jumpstd_command - ld [wd03f], a + ld [wJumpStdScriptBuffer], a inc hl ld a, [hli] - ld [wd03f + 1], a + ld [wJumpStdScriptBuffer + 1], a ld a, [hli] - ld [wd03f + 2], a + ld [wJumpStdScriptBuffer + 2], a ld a, BANK(Script_JumpStdFromRAM) ld hl, Script_JumpStdFromRAM call CallScript @@ -15083,490 +11030,10 @@ CheckFacingTileForStd:: ; 1365b ; 1369a Script_JumpStdFromRAM: ; 0x1369a - jump wd03f + jump wJumpStdScriptBuffer ; 0x1369d - -_BugContestJudging: ; 1369d - call ContestScore - callba MobileFn_105f79 - call Function13819 - ld a, [wd00a] - call LoadContestantName - ld a, [wd00b] - ld [wd265], a - call GetPokemonName - ld hl, BugContest_ThirdPlaceText - call PrintText - ld a, [EndFlypoint] - call LoadContestantName - ld a, [MovementBuffer] - ld [wd265], a - call GetPokemonName - ld hl, BugContest_SecondPlaceText - call PrintText - ld a, [wd002] - call LoadContestantName - ld a, [wd003] - ld [wd265], a - call GetPokemonName - ld hl, BugContest_FirstPlaceText - call PrintText - jp Function13807 -; 136eb - -BugContest_FirstPlaceText: ; 0x136eb - text_jump ContestJudging_FirstPlaceText - start_asm -BugContest_FirstPlace: ; 136f0 - ld de, SFX_1ST_PLACE - call PlaySFX - call WaitSFX - ld hl, BugContest_FirstPlaceScoreText - ret -; 136fd - -BugContest_FirstPlaceScoreText: ; 0x136fd - ; The winning score was @ points! - text_jump ContestJudging_FirstPlaceScoreText - db "@" -; 0x13702 - -BugContest_SecondPlaceText: ; 0x13702 - ; Placing second was @ , who caught a @ !@ @ - text_jump ContestJudging_SecondPlaceText - start_asm -BugContest_SecondPlace: ; 13707 - ld de, SFX_2ND_PLACE - call PlaySFX - call WaitSFX - ld hl, BugContest_SecondPlaceScoreText - ret -; 13714 - -BugContest_SecondPlaceScoreText: ; 0x13714 - ; The score was @ points! - text_jump ContestJudging_SecondPlaceScoreText - db "@" -; 0x13719 - -BugContest_ThirdPlaceText: ; 0x13719 - ; Placing third was @ , who caught a @ !@ @ - text_jump ContestJudging_ThirdPlaceText - start_asm -; 0x1371e - -BugContest_ThirdPlace: ; 1371e - ld de, SFX_3RD_PLACE - call PlaySFX - call WaitSFX - ld hl, BugContest_ThirdPlaceScoreText - ret -; 1372b - -BugContest_ThirdPlaceScoreText: ; 0x1372b - ; The score was @ points! - text_jump ContestJudging_ThirdPlaceScoreText - db "@" -; 0x13730 - -LoadContestantName: ; 13730 - -; If a = 0, get your name. - dec a - jr z, .done -; Find the pointer for the trainer class of the Bug Catching Contestant whose ID is in a. - ld c, a - ld b, 0 - ld hl, BugContestantPointers -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a -; Copy the Trainer Class to c. - ld a, [hli] - ld c, a -; Save hl and bc for later. - push hl - push bc -; Get the Trainer Class name and copy it into wd016. - callab GetTrainerClassName - ld hl, StringBuffer1 - ld de, wd016 - ld bc, TRAINER_CLASS_NAME_LENGTH - call CopyBytes - ld hl, wd016 -; Delete the trailing terminator and replace it with a space. -.next - ld a, [hli] - cp "@" - jr nz, .next - dec hl - ld [hl], " " - inc hl - ld d, h - ld e, l -; Restore the Trainer Class ID and Trainer ID pointer. Save de for later. - pop bc - pop hl - push de -; Get the name of the trainer with class c and ID b. - ld a, [hl] - ld b, a - callab GetTrainerName -; Append the name to wd016. - ld hl, StringBuffer1 - pop de - ld bc, NAME_LENGTH - 1 - jp CopyBytes - -.done - ld hl, PlayerName - ld de, wd016 - ld bc, NAME_LENGTH - jp CopyBytes -; 13783 - -BugContestantPointers: ; 13783 - dw BugContestant_BugCatcherDon ; This reverts back to the player - dw BugContestant_BugCatcherDon - dw BugContestant_BugCatcherEd - dw BugContestant_CooltrainerMNick - dw BugContestant_PokefanMWilliam - dw BugContestant_BugCatcherBenny - dw BugContestant_CamperBarry - dw BugContestant_PicnickerCindy - dw BugContestant_BugCatcherJosh - dw BugContestant_YoungsterSamuel - dw BugContestant_SchoolboyKipp -; 13799 - -BugContestant_BugCatcherDon: - db BUG_CATCHER, DON - dbw KAKUNA, 300 - dbw METAPOD, 285 - dbw CATERPIE, 226 - -BugContestant_BugCatcherEd: - db BUG_CATCHER, ED - dbw BUTTERFREE, 286 - dbw BUTTERFREE, 251 - dbw CATERPIE, 237 - -BugContestant_CooltrainerMNick: - db COOLTRAINERM, NICK - dbw SCYTHER, 357 - dbw BUTTERFREE, 349 - dbw PINSIR, 368 - -BugContestant_PokefanMWilliam: - db POKEFANM, WILLIAM - dbw PINSIR, 332 - dbw BUTTERFREE, 324 - dbw VENONAT, 321 - -BugContestant_BugCatcherBenny: - db BUG_CATCHER, BUG_CATCHER_BENNY - dbw BUTTERFREE, 318 - dbw WEEDLE, 295 - dbw CATERPIE, 285 - -BugContestant_CamperBarry: - db CAMPER, BARRY - dbw PINSIR, 366 - dbw VENONAT, 329 - dbw KAKUNA, 314 - -BugContestant_PicnickerCindy: - db PICNICKER, CINDY - dbw BUTTERFREE, 341 - dbw METAPOD, 301 - dbw CATERPIE, 264 - -BugContestant_BugCatcherJosh: - db BUG_CATCHER, JOSH - dbw SCYTHER, 326 - dbw BUTTERFREE, 292 - dbw METAPOD, 282 - -BugContestant_YoungsterSamuel: - db YOUNGSTER, SAMUEL - dbw WEEDLE, 270 - dbw PINSIR, 282 - dbw CATERPIE, 251 - -BugContestant_SchoolboyKipp: - db SCHOOLBOY, KIPP - dbw VENONAT, 267 - dbw PARAS, 254 - dbw KAKUNA, 259 -; 13807 - -Function13807: ; 13807 - ld hl, wd00a - ld de, -4 - ld b, 3 -.loop - ld a, [hl] - cp 1 - jr z, .done - add hl, de - dec b - jr nz, .loop - -.done - ret -; 13819 - -Function13819: ; 13819 - call Function13833 - call Function138b0 - ld hl, wd00e - ld a, 1 - ld [hli], a - ld a, [wContestMon] - ld [hli], a - ld a, [hProduct] - ld [hli], a - ld a, [hMultiplicand] - ld [hl], a - call Function1383e - ret -; 13833 - -Function13833: ; 13833 - ld hl, wd002 - ld b, 12 - xor a -.loop - ld [hli], a - dec b - jr nz, .loop - ret -; 1383e - -Function1383e: ; 1383e - ld de, wd010 - ld hl, wd004 - ld c, 2 - call StringCmp - jr c, .next - ld hl, EndFlypoint - ld de, wd00a - ld bc, 4 - call CopyBytes - ld hl, wd002 - ld de, EndFlypoint - ld bc, 4 - call CopyBytes - ld hl, wd002 - call Function138a0 - jr .done - -.next - ld de, wd010 - ld hl, wd008 - ld c, 2 - call StringCmp - jr c, .next2 - ld hl, EndFlypoint - ld de, wd00a - ld bc, 4 - call CopyBytes - ld hl, EndFlypoint - call Function138a0 - jr .done - -.next2 - ld de, wd010 - ld hl, wd00c - ld c, 2 - call StringCmp - jr c, .done - ld hl, wd00a - call Function138a0 - -.done - ret -; 138a0 - -Function138a0: ; 138a0 - ld de, wd00e - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hl], a - ret -; 138b0 - -Function138b0: ; 138b0 - ld e, 0 -.loop - push de - call Special_CheckBugContestContestantFlag - pop de - jr nz, .done - ld a, e -rept 2 - inc a -endr - ld [wd00e], a - dec a - ld c, a - ld b, 0 - ld hl, BugContestantPointers -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a -rept 2 - inc hl -endr -.loop2 - call Random - and 3 - cp 3 - jr z, .loop2 - ld c, a - ld b, 0 -rept 3 - add hl, bc -endr - ld a, [hli] - ld [wd00f], a - ld a, [hli] - ld h, [hl] - ld l, a - call Random - and 7 - ld c, a - ld b, 0 - add hl, bc - ld a, h - ld [wd010], a - ld a, l - ld [wd011], a - push de - call Function1383e - pop de - -.done - inc e - ld a, e - cp 10 - jr nz, .loop - ret -; 13900 - -ContestScore: ; 13900 -; Determine the player's score in the Bug Catching Contest. - - xor a - ld [hProduct], a - ld [hMultiplicand], a - - ld a, [wContestMonSpecies] ; Species - and a - jr z, .done - - ; Tally the following: - - ; Max HP * 4 - ld a, [wContestMonMaxHP + 1] - call .AddContestStat - ld a, [wContestMonMaxHP + 1] - call .AddContestStat - ld a, [wContestMonMaxHP + 1] - call .AddContestStat - ld a, [wContestMonMaxHP + 1] - call .AddContestStat - - ; Stats - ld a, [wContestMonAttack + 1] - call .AddContestStat - ld a, [wContestMonDefense + 1] - call .AddContestStat - ld a, [wContestMonSpeed + 1] - call .AddContestStat - ld a, [wContestMonSpclAtk + 1] - call .AddContestStat - ld a, [wContestMonSpclDef + 1] - call .AddContestStat - - ; DVs - ld a, [wContestMonDVs + 0] - ld b, a - and 2 -rept 2 - add a -endr - ld c, a - - swap b - ld a, b - and 2 - add a - add c - ld d, a - - ld a, [wContestMonDVs + 1] - ld b, a - and 2 - ld c, a - - swap b - ld a, b - and 2 - srl a -rept 2 - add c -endr -rept 2 - add d -endr - - call .AddContestStat - - ; Remaining HP / 8 - ld a, [wContestMonHP + 1] - srl a - srl a - srl a - call .AddContestStat - - ; Whether it's holding an item - ld a, [wContestMonItem] - and a - jr z, .done - - ld a, 1 - call .AddContestStat - -.done - ret -; 1397f - -.AddContestStat: ; 1397f - ld hl, hMultiplicand - add [hl] - ld [hl], a - ret nc - dec hl - inc [hl] - ret -; 13988 +INCLUDE "event/bug_contest_judging.asm" ; decreases all pokemon's pokerus counter by b. if the lower nybble reaches zero, the pokerus is cured. ApplyPokerusTick: ; 13988 @@ -15598,369 +11065,9 @@ ApplyPokerusTick: ; 13988 ret ; 139a8 -Special_SelectRandomBugContestContestants: ; 139a8 -; Select five random people to participate in the current contest. - -; First we have to make sure that any old data is cleared away. - ld c, 10 ; Number of people to choose from. - ld hl, BugCatchingContestantEventFlagTable -.loop1 - push bc - push hl - ld e, [hl] - inc hl - ld d, [hl] - ld b, RESET_FLAG - call EventFlagAction - pop hl -rept 2 - inc hl -endr - pop bc - dec c - jr nz, .loop1 - -; Now that that's out of the way, we can get on to the good stuff. - ld c, 5 -.loop2 - push bc -.next -; Choose a flag at uniform random to be set. - call Random - cp $fa ; 250 - jr nc, .next - ld c, $19 ; 25 - call SimpleDivide - ld e, b - ld d, 0 - ld hl, BugCatchingContestantEventFlagTable -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - push de -; If we've already set it, it doesn't count. - ld b, CHECK_FLAG - call EventFlagAction - pop de - ld a, c - and a - jr nz, .next -; Set the flag. This will cause that sprite to not be visible in the contest. - ld b, SET_FLAG - call EventFlagAction - pop bc -; Check if we're done. If so, return. Otherwise, choose the next victim. - dec c - jr nz, .loop2 - ret -; 139ed - -Special_CheckBugContestContestantFlag: ; 139ed -; Checks the flag of the Bug Catching Contestant whose index is loaded in a. - -; Bug: If a >= 10 when this is called, it will read beyond the table. - - ld hl, BugCatchingContestantEventFlagTable - ld e, a - ld d, 0 -rept 2 - add hl, de -endr - ld e, [hl] - inc hl - ld d, [hl] - ld b, CHECK_FLAG - call EventFlagAction - ret -; 139fe - -BugCatchingContestantEventFlagTable: ; 139fe - dw EVENT_BUG_CATCHING_CONTESTANT_1A - dw EVENT_BUG_CATCHING_CONTESTANT_2A - dw EVENT_BUG_CATCHING_CONTESTANT_3A - dw EVENT_BUG_CATCHING_CONTESTANT_4A - dw EVENT_BUG_CATCHING_CONTESTANT_5A - dw EVENT_BUG_CATCHING_CONTESTANT_6A - dw EVENT_BUG_CATCHING_CONTESTANT_7A - dw EVENT_BUG_CATCHING_CONTESTANT_8A - dw EVENT_BUG_CATCHING_CONTESTANT_9A - dw EVENT_BUG_CATCHING_CONTESTANT_10A -; 13a12 - -CheckFirstMonFainted: ; 13a12 - ld hl, PartyMon1HP - ld a, [hli] - or [hl] - jr z, .fainted - ld hl, PartyCount - ld a, 1 - ld [hli], a - inc hl - ld a, [hl] - ld [wdf9b], a - ld [hl], $ff - xor a - ld [ScriptVar], a - ret - -.fainted - ld a, $1 - ld [ScriptVar], a - ret -; 13a31 - -ContestReturnMons: ; 13a31 - ld hl, PartySpecies + 1 - ld a, [wdf9b] - ld [hl], a - ld b, $1 -.asm_13a3a - ld a, [hli] - cp $ff - jr z, .asm_13a42 - inc b - jr .asm_13a3a - -.asm_13a42 - ld a, b - ld [PartyCount], a - ret -; 13a47 - -Function13a47: ; unreferenced - ld hl, PartyCount - ld a, [hl] - and a - ret z - - cp PARTY_LENGTH + 1 - jr c, .asm_13a54 - ld a, PARTY_LENGTH - ld [hl], a -.asm_13a54 - inc hl - - ld b, a - ld c, 0 -.asm_13a58 - ld a, [hl] - and a - jr z, .asm_13a64 - cp $fc - jr z, .asm_13a64 - cp $fe - jr c, .asm_13a73 - -.asm_13a64 - ld [hl], SMEARGLE - push hl - push bc - ld a, c - ld hl, PartyMon1Species - call GetPartyLocation - ld [hl], SMEARGLE - pop bc - pop hl - -.asm_13a73 - inc hl - inc c - dec b - jr nz, .asm_13a58 - ld [hl], $ff - - ld hl, PartyMon1 - ld a, [PartyCount] - ld d, a - ld e, 0 -.asm_13a83 - push de - push hl - ld b, h - ld c, l - ld a, [hl] - and a - jr z, .asm_13a8f - cp NUM_POKEMON + 1 - jr c, .asm_13a9c - -.asm_13a8f - ld [hl], SMEARGLE - push de - ld d, 0 - ld hl, PartySpecies - add hl, de - pop de - ld a, SMEARGLE - ld [hl], a - -.asm_13a9c - ld [CurSpecies], a - call GetBaseData - ld hl, MON_LEVEL - add hl, bc - ld a, [hl] - cp MIN_LEVEL - ld a, MIN_LEVEL - jr c, .asm_13ab4 - ld a, [hl] - cp MAX_LEVEL - jr c, .asm_13ab5 - ld a, MAX_LEVEL -.asm_13ab4 - ld [hl], a -.asm_13ab5 - ld [CurPartyLevel], a - - ld hl, MON_MAXHP - add hl, bc - ld d, h - ld e, l - ld hl, MON_EXP + 2 - add hl, bc - ld b, $1 - predef CalcPkmnStats - pop hl - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop de - inc e - dec d - jr nz, .asm_13a83 - - ld de, PartyMonNicknames - ld a, [PartyCount] - ld b, a - ld c, 0 -.asm_13adc - push bc - call Function13b71 - push de - callba CheckStringForErrors - pop hl - pop bc - jr nc, .asm_13b0e - - push bc - push hl - ld hl, PartySpecies - push bc - ld b, 0 - add hl, bc - pop bc - ld a, [hl] - cp EGG - ld hl, String_13b6b - jr z, .asm_13b06 - ld [wd265], a - call GetPokemonName - ld hl, StringBuffer1 -.asm_13b06 - pop de - ld bc, PKMN_NAME_LENGTH - call CopyBytes - pop bc - -.asm_13b0e - inc c - dec b - jr nz, .asm_13adc - - ld de, PartyMonOT - ld a, [PartyCount] - ld b, a - ld c, 0 -.asm_13b1b - push bc - call Function13b71 - push de - callba CheckStringForErrors - pop hl - jr nc, .asm_13b34 - ld d, h - ld e, l - ld hl, PlayerName - ld bc, NAME_LENGTH - call CopyBytes -.asm_13b34 - pop bc - inc c - dec b - jr nz, .asm_13b1b - - ld hl, PartyMon1Moves - ld a, [PartyCount] - ld b, a -.asm_13b40 - push hl - ld c, NUM_MOVES - ld a, [hl] - and a - jr z, .asm_13b4b - cp NUM_ATTACKS + 1 - jr c, .asm_13b4d -.asm_13b4b - ld [hl], POUND - -.asm_13b4d - ld a, [hl] - and a - jr z, .asm_13b55 - cp NUM_ATTACKS + 1 - jr c, .asm_13b5c - -.asm_13b55 - xor a - ld [hli], a - dec c - jr nz, .asm_13b55 - jr .asm_13b60 - -.asm_13b5c - inc hl - dec c - jr nz, .asm_13b4d - -.asm_13b60 - pop hl - push bc - ld bc, PARTYMON_STRUCT_LENGTH - add hl, bc - pop bc - dec b - jr nz, .asm_13b40 - ret -; 13b6b - -String_13b6b: ; 13b6b - db "タマゴ@@@" -; 13b71 - -Function13b71: ; 13b71 - push de - ld c, 1 - ld b, 6 -.asm_13b76 - ld a, [de] - cp "@" - jr z, .asm_13b85 - inc de - inc c - dec b - jr nz, .asm_13b76 - dec c - dec de - ld a, "@" - ld [de], a - -.asm_13b85 - pop de - ret -; 13b87 +INCLUDE "event/bug_contest_2.asm" +INCLUDE "unknown/013a47.asm" GetSquareRoot: ; 13b87 ; Return the square root of de in b. @@ -16647,7 +11754,7 @@ UnknownText_0x157cc: ; 0x157cc ; 0x157d1 KrisWithdrawItemMenu: ; 0x157d1 - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba ClearPCItemScreen .asm_157da call Function15985 @@ -16726,7 +11833,7 @@ Function157e9: ; 0x157e9 KrisTossItemMenu: ; 0x1585f - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba ClearPCItemScreen .asm_15868 call Function15985 @@ -16763,7 +11870,7 @@ KrisDepositItemMenu: ; 0x1588b call Function158b8 jr c, .asm_158b6 call DisableSpriteUpdates - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Function106a5 .asm_1589c callba Function106be @@ -21809,7 +16916,7 @@ Function2695b: ; 2695b ld d, 0 add hl, de ld [hl], -1 - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, MenuDataHeader_0x269c5 call CopyMenuDataHeader xor a @@ -22906,7 +18013,7 @@ Function2715c: ; 2715c callba _LoadBattleFontsHPBar call ClearSGB call WriteBackup - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call WaitBGMap jp SetPalettes ; 27192 @@ -28149,7 +23256,7 @@ Function44781: ; 44781 _KrisMailBoxMenu: ; 0x447a0 call InitMail jr z, .nomail - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function44806 jp WriteBackup @@ -32023,7 +27130,7 @@ Function4a098: ; 4a098 (12:6098) call Function1ff8 call Function1bee call WaitBGMap - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Function89de0 call Call_ExitMenu call Function49351 @@ -32242,7 +27349,7 @@ Function4a28a: ; 4a28a (12:628a) call Function4a6d8 call Function1bee call WaitBGMap - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld a, $5 call GetSRAMBank ld a, [$aa4b] @@ -36427,13 +31534,13 @@ Function4e253: ; 4e253 (13:6253) cp UNOWN jr z, .asm_4e266 hlcoord 0, 0 - call Function3786 + call PrepMonFrontpic ret .asm_4e266 xor a ld [wc2c6], a hlcoord 0, 0 - call Function378b + call _PrepMonFrontpic ret Function4e271: ; 4e271 (13:6271) @@ -36601,7 +31708,7 @@ EggStatsScreen: ; 4e33a call SetPalettes ; pals call DelayFrame hlcoord 0, 0 - call Function3786 + call PrepMonFrontpic callba Function10402d call Function4e497 @@ -38089,7 +33196,7 @@ UnknownScript_0x50669: ; 50669 ; 50677 UnknownScript_0x50677: ; 50677 - farjump UnknownScript_0x124c8 + farjump Script_OverworldWhiteout ; 5067b Function5067b: ; 5067b @@ -41730,7 +36837,7 @@ Function81adb: ; 81adb xor a ld [wc2c6], a hlcoord 12, 3 - call Function378b + call _PrepMonFrontpic ld de, VTiles2 tile $31 predef GetBackpic ld a, $31 @@ -44625,7 +39732,7 @@ endr ld a, " " call ByteFill hlcoord 6, 5 - call Function378b + call _PrepMonFrontpic call WaitBGMap xor a ld [hBGMapMode], a @@ -44840,7 +39947,7 @@ Function86748: ; 86748 xor a ld [wc2c6], a hlcoord 6, 5 - call Function378b + call _PrepMonFrontpic ld a, [CurPartySpecies] cp EGG jr z, .asm_867f8 @@ -50111,7 +45218,7 @@ Special_SetDayOfWeek: ; 90913 hlcoord 0, 12 lb bc, 4, 18 call TextBox - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld hl, UnknownText_0x90a3f call PrintText hlcoord 9, 3 @@ -56796,7 +51903,7 @@ Functionb96ca: ; b96ca ld a, $1 ld [UnownLetter], a hlcoord 1, 10 - call Function3786 + call PrepMonFrontpic pop hl jp Functionb9803 ; b9710 @@ -61089,7 +56196,7 @@ BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) ret BillsPCDepositFuncStats: ; e24c8 (38:64c8) - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Functione2f7e call ExitMenu call PCMonInfo @@ -61108,7 +56215,7 @@ BillsPCDepositFuncRelease: ; e24e0 (38:64e0) push af ld de, PCString_ReleasePKMN call Functione2a6e - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader lb bc, 14, 11 call PlaceYesNoBox ld a, [MenuSelection2] @@ -61354,7 +56461,7 @@ endr ret .stats: ; e26c0 (38:66c0) - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Functione2f7e call ExitMenu call PCMonInfo @@ -61371,7 +56478,7 @@ endr jr c, .FailedRelease ld de, PCString_ReleasePKMN call Functione2a6e - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader lb bc, 14, 11 call PlaceYesNoBox ld a, [MenuSelection2] @@ -61614,7 +56721,7 @@ Functione2887: ; e2887 ; e28a5 Functione28a5: ; e28a5 - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Functione2f7e call ExitMenu call PCMonInfo @@ -63252,7 +58359,7 @@ PCString_NoReleasingEGGS: db "No releasing EGGS!@" ; e35aa Functione35aa: ; e35aa (38:75aa) - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Functione35e2 .loop xor a @@ -63494,7 +58601,7 @@ Functione36f9: ; e36f9 (38:76f9) .asm_e3745 ld b, $4 ld de, wd002 - callba Function116c1 + callba NamingScreen call ClearTileMap call LoadStandardFont call LoadFontsBattleExtra @@ -72085,7 +67192,7 @@ Function1dc381: ; 1dc381 .asm_1dc469 hlcoord 0, 0 - call Function378b + call _PrepMonFrontpic call WaitBGMap ld b, $3 call GetSGBLayout diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm index b1360b194..be2ddf686 100644 --- a/maps/Route35NationalParkgate.asm +++ b/maps/Route35NationalParkgate.asm @@ -96,7 +96,7 @@ OfficerScript_0x6a204: iffalse Route35NationalParkgate_DeclinedToParticipate checkcode VAR_PARTYCOUNT if_greater_than $1, Route35NationalParkgate_LeaveTheRestBehind - special CheckFirstMonFainted + special ContestDropOffMons clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER Route35NationalParkgate_OkayToProceed: setflag ENGINE_BUG_CONTEST_TIMER @@ -140,7 +140,7 @@ Route35NationalParkgate_LessThanFullParty: ; 6a27d writetext UnknownText_0x6a4c6 yesorno iffalse Route35NationalParkgate_DeclinedToLeaveMonsBehind - special CheckFirstMonFainted + special ContestDropOffMons iftrue Route35NationalParkgate_FirstMonIsFainted setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER writetext UnknownText_0x6a537 diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm index 4985b5476..703670d7c 100644 --- a/maps/Route36NationalParkgate.asm +++ b/maps/Route36NationalParkgate.asm @@ -148,7 +148,7 @@ Route36OfficerScriptContest: iffalse .DecidedNotToJoinContest checkcode VAR_PARTYCOUNT if_greater_than $1, .LeaveMonsWithOfficer - special CheckFirstMonFainted + special ContestDropOffMons clearevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER .ResumeStartingContest: setflag ENGINE_BUG_CONTEST_TIMER @@ -183,7 +183,7 @@ Route36OfficerScriptContest: writetext UnknownText_0x6afb0 yesorno iffalse .RefusedToLeaveMons - special CheckFirstMonFainted + special ContestDropOffMons iftrue .FirstMonIsFainted setevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER writetext UnknownText_0x6b021 diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm index c23f4566c..7a84364da 100644 --- a/misc/crystal_misc.asm +++ b/misc/crystal_misc.asm @@ -430,7 +430,7 @@ Function17a91e: ; 17a91e (5e:691e) ret .asm_17a92c - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function17a99e ld hl, $d088 set 7, [hl] diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index 86251d84f..eee9223f0 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -2927,7 +2927,7 @@ UnknownText_0x8a23c: ; 0x8a23c ; 0x8a241 Function8a241: ; 8a241 (22:6241) - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function891fe call Function8a262 jr nc, .asm_8a254 @@ -3455,7 +3455,7 @@ Palette_8a624: ; 8a624 ; 8a62c Function8a62c: ; 8a62c (22:662c) - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function891fe xor a call Function8b94a @@ -3643,7 +3643,7 @@ Function8a78c: ; 8a78c (22:678c) call Function891fe ld de, wd002 ld b, $5 - callba Function116c1 + callba NamingScreen call OpenSRAMBank4 call Function8931b push bc @@ -3885,7 +3885,7 @@ Function8a999: ; 8a999 (22:6999) jr c, .asm_8a9bb push bc push de - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader pop de dec e ld a, e @@ -4141,7 +4141,7 @@ Function8ab77: ; 8ab77 (22:6b77) Function8ab93: ; 8ab93 (22:6b93) call WhiteBGMap - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader callba Function105688 call ClearSprites call Function891fe diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index 5f41f9332..dab86875d 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -4519,7 +4519,7 @@ Unknown_101d8d: ; 101d8d Function101d95: ; 101d95 call Function101ee2 - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader ld e, $e call Function101ee4 ld hl, wcd29 @@ -6292,7 +6292,7 @@ Jumptable_1029cb: ; 1029cb ; 1029cf Function1029cf: ; 1029cf - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader hlcoord 10, 7 ld b, $3 ld c, $8 diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 133e8d43b..759d5f586 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -884,7 +884,7 @@ Function16d42e: ; 16d42e ; 16d43b Function16d43b: ; 16d43b - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call WhiteBGMap call ClearTileMap call ClearSprites @@ -1034,7 +1034,7 @@ Function16d6ca: ; 16d6ca ; 16d6ce Function16d6ce: ; 16d6ce - call LoadPartyMenuDataHeader + call LoadStandardMenuDataHeader call Function16d6e1 callba Function87d call Call_ExitMenu diff --git a/unknown/013a47.asm b/unknown/013a47.asm new file mode 100755 index 000000000..a528a1d74 --- /dev/null +++ b/unknown/013a47.asm @@ -0,0 +1,230 @@ +Function13a47: ; unreferenced + ld hl, PartyCount + ld a, [hl] + and a + ret z + + cp PARTY_LENGTH + 1 + jr c, .asm_13a54 + ld a, PARTY_LENGTH + ld [hl], a +.asm_13a54 + inc hl + + ld b, a + ld c, 0 +.asm_13a58 + ld a, [hl] + and a + jr z, .asm_13a64 + cp $fc + jr z, .asm_13a64 + cp $fe + jr c, .asm_13a73 + +.asm_13a64 + ld [hl], SMEARGLE + push hl + push bc + ld a, c + ld hl, PartyMon1Species + call GetPartyLocation + ld [hl], SMEARGLE + pop bc + pop hl + +.asm_13a73 + inc hl + inc c + dec b + jr nz, .asm_13a58 + ld [hl], $ff + + ld hl, PartyMon1 + ld a, [PartyCount] + ld d, a + ld e, 0 +.asm_13a83 + push de + push hl + ld b, h + ld c, l + ld a, [hl] + and a + jr z, .asm_13a8f + cp NUM_POKEMON + 1 + jr c, .asm_13a9c + +.asm_13a8f + ld [hl], SMEARGLE + push de + ld d, 0 + ld hl, PartySpecies + add hl, de + pop de + ld a, SMEARGLE + ld [hl], a + +.asm_13a9c + ld [CurSpecies], a + call GetBaseData + ld hl, MON_LEVEL + add hl, bc + ld a, [hl] + cp MIN_LEVEL + ld a, MIN_LEVEL + jr c, .asm_13ab4 + ld a, [hl] + cp MAX_LEVEL + jr c, .asm_13ab5 + ld a, MAX_LEVEL +.asm_13ab4 + ld [hl], a +.asm_13ab5 + ld [CurPartyLevel], a + + ld hl, MON_MAXHP + add hl, bc + ld d, h + ld e, l + ld hl, MON_EXP + 2 + add hl, bc + ld b, $1 + predef CalcPkmnStats + pop hl + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + pop de + inc e + dec d + jr nz, .asm_13a83 + + ld de, PartyMonNicknames + ld a, [PartyCount] + ld b, a + ld c, 0 +.asm_13adc + push bc + call Function13b71 + push de + callba CheckStringForErrors + pop hl + pop bc + jr nc, .asm_13b0e + + push bc + push hl + ld hl, PartySpecies + push bc + ld b, 0 + add hl, bc + pop bc + ld a, [hl] + cp EGG + ld hl, .TAMAGO + jr z, .asm_13b06 + ld [wd265], a + call GetPokemonName + ld hl, StringBuffer1 +.asm_13b06 + pop de + ld bc, PKMN_NAME_LENGTH + call CopyBytes + pop bc + +.asm_13b0e + inc c + dec b + jr nz, .asm_13adc + + ld de, PartyMonOT + ld a, [PartyCount] + ld b, a + ld c, 0 +.asm_13b1b + push bc + call Function13b71 + push de + callba CheckStringForErrors + pop hl + jr nc, .asm_13b34 + ld d, h + ld e, l + ld hl, PlayerName + ld bc, NAME_LENGTH + call CopyBytes +.asm_13b34 + pop bc + inc c + dec b + jr nz, .asm_13b1b + + ld hl, PartyMon1Moves + ld a, [PartyCount] + ld b, a +.asm_13b40 + push hl + ld c, NUM_MOVES + ld a, [hl] + and a + jr z, .asm_13b4b + cp NUM_ATTACKS + 1 + jr c, .asm_13b4d +.asm_13b4b + ld [hl], POUND + +.asm_13b4d + ld a, [hl] + and a + jr z, .asm_13b55 + cp NUM_ATTACKS + 1 + jr c, .asm_13b5c + +.asm_13b55 + xor a + ld [hli], a + dec c + jr nz, .asm_13b55 + jr .asm_13b60 + +.asm_13b5c + inc hl + dec c + jr nz, .asm_13b4d + +.asm_13b60 + pop hl + push bc + ld bc, PARTYMON_STRUCT_LENGTH + add hl, bc + pop bc + dec b + jr nz, .asm_13b40 + ret +; 13b6b + +.TAMAGO: ; 13b6b + db "タマゴ@@@" +; 13b71 + +Function13b71: ; 13b71 + push de + ld c, 1 + ld b, 6 +.loop + ld a, [de] + cp "@" + jr z, .done + inc de + inc c + dec b + jr nz, .loop + dec c + dec de + ld a, "@" + ld [de], a + +.done + pop de + ret +; 13b87 diff --git a/wram.asm b/wram.asm index fb8e50725..a9689b104 100644 --- a/wram.asm +++ b/wram.asm @@ -1507,6 +1507,7 @@ CurInput:: EngineBuffer1:: ; d03e ds 1 wd03f:: +wJumpStdScriptBuffer:: CurFruit:: ; d03f MartPointerBank:: EngineBuffer2:: @@ -2593,7 +2594,9 @@ BackupMapNumber:: ; dcae ds 3 +wLastSpawnMapGroup:: wdcb2:: ds 1 +wLastSpawnMapNumber:: wdcb3:: ds 1 WarpNumber:: ; dcb4 @@ -2691,7 +2694,8 @@ wEggNick:: ds PKMN_NAME_LENGTH ; df65 wEggOT:: ds NAME_LENGTH ; df70 wEggMon:: box_struct wEggMon ; df7b -wdf9b:: ds 1 +wdf9b:: +wBugContestSecondPartySpecies:: ds 1 wdf9c:: -- cgit v1.2.3 From 2ffcb4b49036b8bcd9a37cdc9305f7ee5567fe6c Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Wed, 11 Nov 2015 23:38:57 -0500 Subject: More splits; map setup labels --- audio/engine.asm | 6 +- battle/core.asm | 14 +- constants/map_constants.asm | 2 +- constants/map_setup_constants.asm | 18 +- constants/script_constants.asm | 4 +- engine/billspc.asm | 2667 +++++ engine/card_flip.asm | 2560 +++++ engine/credits.asm | 4 +- engine/diploma.asm | 2 +- engine/dummy_game.asm | 615 ++ engine/events.asm | 38 +- engine/events_3.asm | 863 ++ engine/evolution_animation.asm | 4 +- engine/flypoints.asm | 916 ++ engine/link.asm | 22 +- engine/map_objects.asm | 101 +- engine/map_setup.asm | 56 +- engine/movement.asm | 104 +- engine/namingscreen.asm | 2 +- engine/pack.asm | 6 +- engine/party_menu.asm | 340 +- engine/pokedex.asm | 4 +- engine/scripting.asm | 14 +- engine/slot_machine.asm | 2112 ++++ engine/specials.asm | 12 +- engine/startmenu.asm | 12 +- engine/std_scripts.asm | 2 +- engine/timeofdaypals.asm | 4 +- engine/title.asm | 2 +- event/basement_key.asm | 34 + event/card_key.asm | 39 + event/poisonstep.asm | 162 + event/sacred_ash.asm | 74 + event/squirtbottle.asm | 51 + event/sweet_scent.asm | 75 + event/whiteout.asm | 2 +- gfx/overworld/chris_fish.2bpp | Bin 0 -> 144 bytes gfx/overworld/kris_fish.2bpp | Bin 0 -> 144 bytes gfx/unknown/0b84f2.2bpp | Bin 144 -> 0 bytes gfx/unknown/0b8582.2bpp | Bin 144 -> 0 bytes home.asm | 2 +- home/audio.asm | 10 +- home/init.asm | 4 +- home/map.asm | 17 +- home/map_objects.asm | 11 +- home/serial.asm | 22 +- hram.asm | 8 +- items/item_effects.asm | 4 +- macros/movement.asm | 53 +- main.asm | 18281 +++++++-------------------------- maps/BattleTowerBattleRoom.asm | 10 +- maps/BluesHouse.asm | 4 +- maps/CeruleanGym.asm | 4 +- maps/Colosseum.asm | 2 +- maps/EcruteakGym.asm | 2 +- maps/FastShip1F.asm | 4 +- maps/GoldenrodMagnetTrainStation.asm | 2 +- maps/IlexForest.asm | 12 +- maps/IndigoPlateauPokeCenter1F.asm | 2 +- maps/LancesRoom.asm | 2 +- maps/MobileBattleRoom.asm | 4 +- maps/OlivineLighthouse6F.asm | 18 +- maps/OlivinePort.asm | 2 +- maps/Route35NationalParkgate.asm | 4 +- maps/Route36NationalParkgate.asm | 4 +- maps/SaffronTrainStation.asm | 2 +- maps/SlowpokeWellB1F.asm | 14 +- maps/TeamRocketBaseB1F.asm | 12 +- maps/TeamRocketBaseB2F.asm | 10 +- maps/TeamRocketBaseB3F.asm | 4 +- maps/TimeCapsule.asm | 2 +- maps/TradeCenter.asm | 2 +- maps/VermilionPort.asm | 2 +- maps/WarehouseEntrance.asm | 8 +- misc/battle_tower_47.asm | 2 +- misc/mobile_22.asm | 38 +- misc/mobile_22_2.asm | 2 +- misc/mobile_40.asm | 10 +- misc/mobile_41.asm | 2 +- misc/mobile_42.asm | 18 +- misc/mobile_45.asm | 10 +- misc/mobile_46.asm | 20 +- misc/mobile_5b.asm | 4 +- misc/mobile_5c.asm | 8 +- misc/mobile_5f.asm | 8 +- misc/unused_title.asm | 2 +- wram.asm | 14 +- 87 files changed, 14399 insertions(+), 15226 deletions(-) create mode 100755 engine/billspc.asm create mode 100755 engine/card_flip.asm create mode 100755 engine/dummy_game.asm create mode 100755 engine/events_3.asm create mode 100755 engine/flypoints.asm create mode 100755 engine/slot_machine.asm create mode 100755 event/basement_key.asm create mode 100755 event/card_key.asm create mode 100755 event/poisonstep.asm create mode 100755 event/sacred_ash.asm create mode 100755 event/squirtbottle.asm create mode 100755 event/sweet_scent.asm create mode 100644 gfx/overworld/chris_fish.2bpp create mode 100644 gfx/overworld/kris_fish.2bpp delete mode 100644 gfx/unknown/0b84f2.2bpp delete mode 100644 gfx/unknown/0b8582.2bpp diff --git a/audio/engine.asm b/audio/engine.asm index 017833f6a..f3a67e5f3 100644 --- a/audio/engine.asm +++ b/audio/engine.asm @@ -6,7 +6,7 @@ ; FadeMusic ; PlayStereoSFX -_SoundRestart:: ; e8000 +_MapSetup_Sound_Off:: ; e8000 ; restart sound operation ; clear all relevant hardware registers & wram push hl @@ -63,7 +63,7 @@ MusicFadeRestart: ; e803d push af ld a, [MusicFadeIDLo] push af - call _SoundRestart + call _MapSetup_Sound_Off pop af ld [MusicFadeIDLo], a pop af @@ -3161,7 +3161,7 @@ ChannelPointers: ; e8fd9 ClearChannels:: ; e8fe9 ; runs ClearChannel for all 4 channels -; doesn't seem to be used, but functionally identical to SoundRestart +; doesn't seem to be used, but functionally identical to MapSetup_Sound_Off ld hl, rNR50 xor a rept 2 diff --git a/battle/core.asm b/battle/core.asm index 0a6e9e0f5..1defd0e23 100644 --- a/battle/core.asm +++ b/battle/core.asm @@ -2527,7 +2527,7 @@ WinTrainerBattle: ; 3cfa4 or [hl] ret nz call ClearTileMap - call WhiteBGMap + call ClearBGPalettes ret ; 3d02b @@ -2911,7 +2911,7 @@ ForcePlayerMonChoice: ; 3d227 .enemy_fainted_mobile_error call ClearSprites - call WhiteBGMap + call ClearBGPalettes call _LoadHPBar call ExitMenu call LoadTileMapToTempTileMap @@ -2995,7 +2995,7 @@ IsMobileBattle: ; 3d2f1 ; 3d2f7 Function3d2f7: ; 3d2f7 - call WhiteBGMap + call ClearBGPalettes Function3d2fa: ; switch to fullscreen menu? callba Function5004f callba Function50405 @@ -3137,7 +3137,7 @@ LostBattle: ; 3d38e callba BattleTowerText call WaitPressAorB_BlinkCursor call ClearTileMap - call WhiteBGMap + call ClearBGPalettes ret .not_canlose @@ -5290,7 +5290,7 @@ Function3e234: ; 3e234 ld a, [wItemAttributeParamBuffer] cp $3 jr z, .asm_3e24a - call WhiteBGMap + call ClearBGPalettes .asm_3e24a xor a @@ -5332,7 +5332,7 @@ BattleMenu_PKMN: ; 3e28d Function3e290: call ExitMenu call LoadStandardMenuDataHeader - call WhiteBGMap + call ClearBGPalettes Function3e299: call Function3d2fa xor a @@ -8816,7 +8816,7 @@ endr bit 0, a ret z call ClearTileMap - call WhiteBGMap + call ClearBGPalettes ret ; 3f759 diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 09b8fa2fc..9d9ae339b 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -540,7 +540,7 @@ const_value SET 1 const OBJECT_SPRITE_Y const OBJECT_SPRITE_X_OFFSET const OBJECT_SPRITE_Y_OFFSET - const OBJECT_27 + const OBJECT_MOVEMENT_BYTE_INDEX const OBJECT_28 const OBJECT_29 const OBJECT_30 diff --git a/constants/map_setup_constants.asm b/constants/map_setup_constants.asm index 89d99ba90..194257996 100644 --- a/constants/map_setup_constants.asm +++ b/constants/map_setup_constants.asm @@ -1,16 +1,16 @@ const_value SET $f1 const MAPSETUP_WARP - const MAPSETUP_02 + const MAPSETUP_CONTINUE const MAPSETUP_RELOADMAP - const MAPSETUP_04 - const MAPSETUP_05 - const MAPSETUP_06 - const MAPSETUP_07 - const MAPSETUP_08 - const MAPSETUP_09 - const MAPSETUP_10 + const MAPSETUP_TELEPORT + const MAPSETUP_DOOR + const MAPSETUP_FALL + const MAPSETUP_CONNECTION + const MAPSETUP_LINKRETURN + const MAPSETUP_TRAIN + const MAPSETUP_SUBMENU const MAPSETUP_BADWARP - const MAPSETUP_12 + const MAPSETUP_FLY ; Command descriptions from Condensation water's scripting compendium. const_def const_def diff --git a/constants/script_constants.asm b/constants/script_constants.asm index c734867ea..058f9d92d 100644 --- a/constants/script_constants.asm +++ b/constants/script_constants.asm @@ -42,10 +42,10 @@ const_value SET -1 const PLAYEREVENT_SEENBYTRAINER const PLAYEREVENT_TALKTOTRAINER const PLAYEREVENT_ITEMBALL - const PLAYEREVENT_4 + const PLAYEREVENT_CONNECTION const PLAYEREVENT_WARP const PLAYEREVENT_FALL const PLAYEREVENT_WHITEOUT const PLAYEREVENT_HATCH - const PLAYEREVENT_9 + const PLAYEREVENT_JOYCHANGEFACING NUM_PLAYER_EVENTS EQU const_value diff --git a/engine/billspc.asm b/engine/billspc.asm new file mode 100755 index 000000000..03a7592ca --- /dev/null +++ b/engine/billspc.asm @@ -0,0 +1,2667 @@ +_DepositPKMN: ; e2391 (38:6391) + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + xor a + ld [hMapAnims], a + call Functione2963 + xor a + ld [wcb2e], a + call DelayFrame +.asm_e23b4 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_e23c6 + call Functione23d5 + call DelayFrame + jr .asm_e23b4 +.asm_e23c6 + call ClearSprites + pop af + ld [hInMenu], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret + +Functione23d5: ; e23d5 (38:63d5) + ld a, [wJumptableIndex] + ld hl, Jumptable_e23df + call Functione33df + jp [hl] + +Jumptable_e23df: ; e23df (38:63df) + dw Functione23e9 + dw Functione241a + dw Functione245d + dw Functione247d + dw Functione2992 + + +Functione23e9: ; e23e9 (38:63e9) + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2d30 + call Functione2a8e + ld de, PCString_ChooseaPKMN + call Functione2a6e + ld a, $5 + ld [wcb2d], a + call Functione2c2c + call PCMonInfo + ld a, $ff + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + call WaitBGMap + call Functione2e01 + call Functione298d + ret + +Functione241a: ; e241a (38:641a) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and B_BUTTON + jr nz, .asm_e2457 + ld a, [hl] + and A_BUTTON + jr nz, .asm_e2443 + call Functione29b5 + and a + ret z + call Functione2e01 + xor a + ld [hBGMapMode], a + call Functione2c2c + call PCMonInfo + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + ret +.asm_e2443 + call Functione2def + and a + ret z + cp $ff + jr z, .asm_e2457 + ld a, $2 + ld [wJumptableIndex], a + ret +; e2452 (38:6452) + +.asm_e2452 + ld hl, wJumptableIndex + dec [hl] + ret + +.asm_e2457 + ld a, $4 + ld [wJumptableIndex], a + ret + +Functione245d: ; e245d (38:645d) + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ld de, PCString_WhatsUp + call Functione2a6e + ld a, $1 + ld [MenuSelection2], a + call Functione298d + ret + +Functione247d: ; e247d (38:647d) + ld hl, BillsPCDepositMenuDataHeader + call CopyMenuDataHeader + ld a, [MenuSelection2] + call Function1d4b + call InterpretMenu2 + jp c, BillsPCDepositFuncCancel + ld a, [MenuSelection2] + dec a + and $3 + ld e, a + ld d, 0 + ld hl, BillsPCDepositJumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +BillsPCDepositJumptable: ; e24a1 (38:64a1) + dw BillsPCDepositFuncDeposit ; Deposit Pokemon + dw BillsPCDepositFuncStats ; Pokemon Stats + dw BillsPCDepositFuncRelease ; Release Pokemon + dw BillsPCDepositFuncCancel ; Cancel + + +BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) + call Functione2f18 + jp c, BillsPCDepositFuncCancel + call Functione307c + jr c, .no_overflow_31 + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcb2b], a + ld [wcb2a], a + ret +.no_overflow_31 + ld de, PCString_WhatsUp + call Functione2a6e + ret + +BillsPCDepositFuncStats: ; e24c8 (38:64c8) + call LoadStandardMenuDataHeader + call Functione2f7e + call ExitMenu + call PCMonInfo + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ret + +BillsPCDepositFuncRelease: ; e24e0 (38:64e0) + call Functione2f18 + jr c, BillsPCDepositFuncCancel + call Functione2f5f + jr c, BillsPCDepositFuncCancel + ld a, [MenuSelection2] + push af + ld de, PCString_ReleasePKMN + call Functione2a6e + call LoadStandardMenuDataHeader + lb bc, 14, 11 + call PlaceYesNoBox + ld a, [MenuSelection2] + dec a + call ExitMenu + and a + jr nz, .asm_e252c + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + xor a + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + call Functione3180 + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcb2b], a + ld [wcb2a], a + pop af + ret +.asm_e252c + ld de, PCString_WhatsUp + call Functione2a6e + pop af + ld [MenuSelection2], a + ret + +BillsPCDepositFuncCancel: ; e2537 (38:6537) + ld a, $0 + ld [wJumptableIndex], a + ret +; e253d (38:653d) + +BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d) + db $40 ; flags + db 04, 09 ; start coords + db 13, 19 ; end coords + dw BillsPCDepositMenuData + db 1 ; default option +; 0xe2545 + +BillsPCDepositMenuData: ; 0xe2545 (38:6545) + db $80 ; flags + db 4 ; items + db "DEPOSIT@" + db "STATS@" + db "RELEASE@" + db "CANCEL@" +; 0xe2564 (38:6564) + +Functione2564: ; e2564 + hlcoord 0, 0 + ld b, $4 + ld c, $8 + call ClearBox + hlcoord 0, 4 + ld b, $a + ld c, $9 + call ClearBox + hlcoord 0, 14 + ld b, $2 + ld c, $8 + call ClearBox + ret +; e2583 + +_WithdrawPKMN: ; e2583 (38:6583) + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + xor a + ld [hMapAnims], a + call Functione2963 + ld a, $f + ld [wcb2e], a + call DelayFrame +.asm_e25a7 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .no_overflow_49 + call Functione25c8 + call DelayFrame + jr .asm_e25a7 +.no_overflow_49 + call ClearSprites + pop af + ld [hInMenu], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret + +Functione25c8: ; e25c8 (38:65c8) + ld a, [wJumptableIndex] + ld hl, .jumptable + call Functione33df + jp [hl] + +.jumptable: ; e25d2 (38:65d2) + dw Functione25dc + dw Functione2612 + dw Functione2655 + dw BillsPC_Withdraw + dw Functione2992 + + +Functione25dc: ; e25dc (38:65dc) + ld a, $f + ld [wcb2e], a + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2d30 + call Functione2a8e + ld de, PCString_ChooseaPKMN + call Functione2a6e + ld a, $5 + ld [wcb2d], a + call Functione2c2c + call PCMonInfo + ld a, $ff + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + call WaitBGMap + call Functione2e01 + call Functione298d + ret + +Functione2612: ; e2612 (38:6612) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and B_BUTTON + jr nz, .asm_e264f + ld a, [hl] + and A_BUTTON + jr nz, .asm_e263b + call Functione29b5 + and a + ret z + call Functione2e01 + xor a + ld [hBGMapMode], a + call Functione2c2c + call PCMonInfo + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + ret +.asm_e263b + call Functione2def + and a + ret z + cp $ff + jr z, .asm_e264f + ld a, $2 + ld [wJumptableIndex], a + ret +; e264a (38:664a) + +.asm_e264a + ld hl, wJumptableIndex + dec [hl] + ret + +.asm_e264f + ld a, $4 + ld [wJumptableIndex], a + ret +; e2655 + +Functione2655: ; e2655 (38:6655) + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ld de, PCString_WhatsUp + call Functione2a6e + ld a, $1 + ld [MenuSelection2], a + call Functione298d + ret + +BillsPC_Withdraw: ; e2675 (38:6675) + ld hl, .MenuDataHeader + call CopyMenuDataHeader + ld a, [MenuSelection2] + call Function1d4b + call InterpretMenu2 + jp c, .cancel + ld a, [MenuSelection2] + dec a + and 3 + ld e, a + ld d, 0 + ld hl, .jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +.jumptable: ; e2699 (38:6699) #mark + dw .withdraw ; Withdraw + dw .stats ; Stats + dw .release ; Release + dw .cancel ; Cancel + + +.withdraw: ; e26a1 (38:66a1) + call Functione2f18 + jp c, .cancel + call TryWithdrawPokemon + jr c, .FailedWithdraw + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcb2b], a + ld [wcb2a], a + ret +.FailedWithdraw + ld de, PCString_WhatsUp + call Functione2a6e + ret + +.stats: ; e26c0 (38:66c0) + call LoadStandardMenuDataHeader + call Functione2f7e + call ExitMenu + call PCMonInfo + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ret + +.release: ; e26d8 (38:66d8) + ld a, [MenuSelection2] + push af + call Functione2f5f + jr c, .FailedRelease + ld de, PCString_ReleasePKMN + call Functione2a6e + call LoadStandardMenuDataHeader + lb bc, 14, 11 + call PlaceYesNoBox + ld a, [MenuSelection2] + dec a + call ExitMenu + and a + jr nz, .FailedRelease + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + call Functione3180 + ld a, $0 + ld [wJumptableIndex], a + xor a + ld [wcb2b], a + ld [wcb2a], a + pop af + ret +.FailedRelease + ld de, PCString_WhatsUp + call Functione2a6e + pop af + ld [MenuSelection2], a + ret + +.cancel: ; e272b (38:672b) + ld a, $0 + ld [wJumptableIndex], a + ret +; e2731 (38:6731) + +.MenuDataHeader: ; 0xe2731 + db $40 ; flags + db 04, 09 ; start coords + db 13, 19 ; end coords + dw .MenuData + db 1 ; default option +; 0xe2739 + +.MenuData: ; 0xe2739 + db $80 ; flags + db 4 ; items + db "WITHDRAW@" + db "STATS@" + db "RELEASE@" + db "CANCEL@" +; 0xe2759 + +_MovePKMNWithoutMail: ; e2759 + ld hl, Options + ld a, [hl] + push af + set 4, [hl] + ld a, [VramState] + push af + xor a + ld [VramState], a + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + xor a + ld [hMapAnims], a + call Functione2963 + ld a, [wCurBox] + and $f + inc a + ld [wcb2e], a + call DelayFrame +.asm_e2781 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_e2793 + call Functione27a2 + call DelayFrame + jr .asm_e2781 + +.asm_e2793 + call ClearSprites + pop af + ld [hInMenu], a + pop af + ld [VramState], a + pop af + ld [Options], a + ret +; e27a2 + +Functione27a2: ; e27a2 + ld a, [wJumptableIndex] + ld hl, Jumptable_e27ac + call Functione33df + jp [hl] +; e27ac + +Jumptable_e27ac: ; e27ac + dw Functione27ba + dw Functione27eb + dw Functione283d + dw Functione285d + dw Functione28df + dw Functione2903 + dw Functione2992 +; e27ba + +Functione27ba: ; e27ba + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2d30 + ld de, PCString_ChooseaPKMN + call Functione2a6e + ld a, $5 + ld [wcb2d], a + call Functione2c2c + call Functione2a80 + call PCMonInfo + ld a, $ff + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + call WaitBGMap + call Functione2e01 + call Functione298d + ret +; e27eb + +Functione27eb: ; e27eb + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .asm_e2837 + ld a, [hl] + and A_BUTTON + jr nz, .asm_e2823 + call Functione29d0 + jr c, .asm_e2816 + and a + ret z + call Functione2e01 + xor a + ld [hBGMapMode], a + call Functione2c2c + call PCMonInfo + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + ret + +.asm_e2816 + xor a + ld [wcb2b], a + ld [wcb2a], a + ld a, $0 + ld [wJumptableIndex], a + ret + +.asm_e2823 + call Functione2def + and a + ret z + cp $ff + jr z, .asm_e2837 + ld a, $2 + ld [wJumptableIndex], a + ret + + ld hl, wJumptableIndex + dec [hl] + ret + +.asm_e2837 + ld a, $6 + ld [wJumptableIndex], a + ret +; e283d + +Functione283d: ; e283d + xor a + ld [hBGMapMode], a + call ClearSprites + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ld de, PCString_WhatsUp + call Functione2a6e + ld a, $1 + ld [MenuSelection2], a + call Functione298d + ret +; e285d + +Functione285d: ; e285d + ld hl, MenuDataHeader_0xe28c3 + call CopyMenuDataHeader + ld a, [MenuSelection2] + call Function1d4b + call InterpretMenu2 + jp c, Functione28bd + ld a, [MenuSelection2] + dec a + and 3 + ld e, a + ld d, 0 + ld hl, Jumptable_e2881 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e2881 + +Jumptable_e2881: ; e2881 + dw Functione2887 + dw Functione28a5 + dw Functione28bd +; e2887 + +Functione2887: ; e2887 + call Functione2f18 + jp c, Functione28bd + ld a, [wcb2a] + ld [wcb2f], a + ld a, [wcb2b] + ld [wcb30], a + ld a, [wcb2e] + ld [wcb31], a + ld a, $4 + ld [wJumptableIndex], a + ret +; e28a5 + +Functione28a5: ; e28a5 + call LoadStandardMenuDataHeader + call Functione2f7e + call ExitMenu + call PCMonInfo + call Functione2def + ld [CurPartySpecies], a + ld a, $17 + call Functione33d0 + ret +; e28bd + +Functione28bd: ; e28bd + ld a, $0 + ld [wJumptableIndex], a + ret +; e28c3 + +MenuDataHeader_0xe28c3: ; 0xe28c3 + db $40 ; flags + db 04, 09 ; start coords + db 13, 19 ; end coords + dw MenuData2_0xe28cb + db 1 ; default option +; 0xe28cb + +MenuData2_0xe28cb: ; 0xe28cb + db $80 ; flags + db 3 ; items + db "MOVE@" + db "STATS@" + db "CANCEL@" +; 0xe28df + +Functione28df: ; e28df + xor a + ld [hBGMapMode], a + call Functione2d30 + ld de, PCString_MoveToWhere + call Functione2a6e + ld a, $5 + ld [wcb2d], a + call Functione2c2c + call Functione2a80 + call ClearSprites + call Functione2e8c + call WaitBGMap + call Functione298d + ret +; e2903 + +Functione2903: ; e2903 + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .asm_e294b + ld a, [hl] + and A_BUTTON + jr nz, .asm_e2938 + call Functione29f4 + jr c, .asm_e292b + and a + ret z + call Functione2e8c + xor a + ld [hBGMapMode], a + call Functione2c2c + ld a, $1 + ld [hBGMapMode], a + call DelayFrame + call DelayFrame + ret + +.asm_e292b + xor a + ld [wcb2b], a + ld [wcb2a], a + ld a, $4 + ld [wJumptableIndex], a + ret + +.asm_e2938 + call Functione2ee5 + jr c, .asm_e2946 + call Functione31e7 + ld a, $0 + ld [wJumptableIndex], a + ret + +.asm_e2946 + ld hl, wJumptableIndex + dec [hl] + ret + +.asm_e294b + ld a, [wcb2f] + ld [wcb2a], a + ld a, [wcb30] + ld [wcb2b], a + ld a, [wcb31] + ld [wcb2e], a + ld a, $0 + ld [wJumptableIndex], a + ret +; e2963 + +Functione2963: ; e2963 (38:6963) + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call Functione33e8 + ld hl, OverworldMap + ld bc, $338 + xor a + call ByteFill + xor a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld [wcb2b], a + ld [wcb2a], a + ret + +Functione298d: ; e298d (38:698d) + ld hl, wJumptableIndex + inc [hl] + ret + +Functione2992: ; e2992 (38:6992) + ld hl, wJumptableIndex + set 7, [hl] + ret + +Functione2998: ; e2998 (38:6998) + ld a, [wcb2d] + ld d, a + ld a, [wcb2c] + and a + jr z, .asm_e29b2 + dec a + cp $1 + jr z, .asm_e29b2 + ld e, a + ld a, [hl] + and D_UP + jr nz, Functione2a18 + ld a, [hl] + and D_DOWN + jr nz, Functione2a2c +.asm_e29b2 + jp Functione2a65 + +Functione29b5: ; e29b5 (38:69b5) + ld hl, hJoyLast + ld a, [wcb2d] + ld d, a + ld a, [wcb2c] + ld e, a + and a + jr z, .asm_e29cd + ld a, [hl] + and D_UP + jr nz, Functione2a18 + ld a, [hl] + and D_DOWN + jr nz, Functione2a2c +.asm_e29cd + jp Functione2a65 +; e29d0 (38:69d0) + +Functione29d0: ; e29d0 + ld hl, hJoyLast + ld a, [wcb2d] + ld d, a + ld a, [wcb2c] + ld e, a + and a + jr z, .asm_e29e8 + ld a, [hl] + and D_UP + jr nz, Functione2a18 + ld a, [hl] + and D_DOWN + jr nz, Functione2a2c + +.asm_e29e8 + ld a, [hl] + and D_LEFT + jr nz, Functione2a48 + ld a, [hl] + and D_RIGHT + jr nz, Functione2a56 + jr Functione2a65 + +Functione29f4: ; e29f4 + ld hl, hJoyLast + ld a, [wcb2d] + ld d, a + ld a, [wcb2c] + ld e, a + and a + jr z, .asm_e2a0c + + ld a, [hl] + and D_UP + jr nz, Functione2a18 + ld a, [hl] + and D_DOWN + jr nz, Functione2a2c + +.asm_e2a0c + ld a, [hl] + and D_LEFT + jr nz, Functione2a48 + ld a, [hl] + and D_RIGHT + jr nz, Functione2a56 + jr Functione2a65 + +Functione2a18: ; e2a18 (38:6a18) + ld hl, wcb2b + ld a, [hl] + and a + jr z, .asm_e2a22 + dec [hl] + jr Functione2a68 + +.asm_e2a22 + ld hl, wcb2a + ld a, [hl] + and a + jr z, Functione2a65 + dec [hl] + jr Functione2a68 + +Functione2a2c: ; e2a2c (38:6a2c) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + inc a + cp e + jr nc, Functione2a65 + + ld hl, wcb2b + ld a, [hl] + inc a + cp d + jr nc, .asm_e2a42 + inc [hl] + jr Functione2a68 + +.asm_e2a42 + ld hl, wcb2a + inc [hl] + jr Functione2a68 +; e2a48 (38:6a48) + +Functione2a48: ; e2a48 + ld hl, wcb2e + ld a, [hl] + and a + jr z, .asm_e2a52 + dec [hl] + jr Functione2a6c + +.asm_e2a52 + ld [hl], $e + jr Functione2a6c + +Functione2a56: ; e2a56 + ld hl, wcb2e + ld a, [hl] + cp $e + jr z, .asm_e2a61 + inc [hl] + jr Functione2a6c + +.asm_e2a61 + ld [hl], $0 + jr Functione2a6c + +Functione2a65: ; e2a65 (38:6a65) + xor a + and a + ret + +Functione2a68: ; e2a68 (38:6a68) + ld a, $1 + and a + ret +; e2a6c (38:6a6c) + +Functione2a6c: ; e2a6c + scf + ret +; e2a6e + +Functione2a6e: ; e2a6e (38:6a6e) + push de + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + pop de + hlcoord 1, 16 + call PlaceString + ret +; e2a80 (38:6a80) + +Functione2a80: ; e2a80 + call Functione2a8e + hlcoord 8, 1 + ld [hl], $5f + hlcoord 19, 1 + ld [hl], $5e + ret +; e2a8e + +Functione2a8e: ; e2a8e (38:6a8e) + hlcoord 8, 0 + lb bc, 1, 10 + call TextBox + + ld a, [wcb2e] + and a + jr z, .party + + cp NUM_BOXES + 1 + jr nz, .gotbox + + ld a, [wCurBox] + inc a +.gotbox + dec a + ld hl, wBoxNames + ld bc, BOX_NAME_LENGTH + call AddNTimes + ld e, l + ld d, h + jr .print + +.party + ld de, String_e2abd +.print + hlcoord 10, 1 + call PlaceString + ret +; e2abd (38:6abd) + +String_e2abd: + db "PARTY @" +; e2ac6 + +PCMonInfo: ; e2ac6 (38:6ac6) +; Display a monster's pic and +; attributes when highlighting +; it in a PC menu. + +; Includes the neat cascading +; effect when showing the pic. + +; Example: Species, level, gender, +; whether it's holding an item. + + hlcoord 0, 0 + lb bc, 15, 8 + call ClearBox + + hlcoord 8, 14 + lb bc, 1, 3 + call ClearBox + + call Functione2def + and a + ret z + cp $ff + ret z + + ld [wd265], a + hlcoord 1, 4 + xor a + ld b, 7 +.asm_e2ae9 + ld c, 7 + push af + push hl +.asm_e2aed + ld [hli], a + add 7 + dec c + jr nz, .asm_e2aed + pop hl + ld de, 20 + add hl, de + pop af + inc a + dec b + jr nz, .asm_e2ae9 + + call Functione2b6d + ld a, [wd265] + ld [CurPartySpecies], a + ld [CurSpecies], a + ld hl, TempMonDVs + predef GetUnownLetter + call GetBaseData + ld de, VTiles2 tile $00 + predef GetFrontpic + xor a + ld [wcb32], a + ld a, [CurPartySpecies] + ld [wd265], a + + cp EGG + ret z + + call GetBasePokemonName + hlcoord 1, 14 + call PlaceString + + hlcoord 1, 12 + call PrintLevel + + ld a, $3 + ld [MonType], a + callba GetGender + jr c, .asm_e2b4f + ld a, "♂" + jr nz, .printgender + ld a, "♀" +.printgender + hlcoord 5, 12 + ld [hl], a +.asm_e2b4f + + ld a, [TempMonItem] + and a + ret z + + ld d, a + callab ItemIsMail + jr c, .mail + ld a, $5d ; item icon + jr .printitem +.mail + ld a, $1 + ld [wcb32], a + ld a, $5c ; mail icon +.printitem + hlcoord 7, 12 + ld [hl], a + ret + +Functione2b6d: ; e2b6d (38:6b6d) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld e, a + ld d, $0 + ld hl, wc801 +rept 3 + add hl, de +endr + ld a, [hl] + and a + jr z, .asm_e2bc6 + cp $f + jr z, .asm_e2bf5 + ld b, a + call Functione3396 + ld a, b + call GetSRAMBank + push hl + ld bc, $35 + add hl, bc + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonLevel], a + pop hl + push hl + ld bc, $17 + add hl, bc + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonItem], a + pop hl + ld bc, $2b + add hl, bc + ld bc, $20 + ld a, e + call AddNTimes + ld de, TempMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + call CloseSRAM + ret +.asm_e2bc6 + ld hl, PartyMon1Level + ld bc, $30 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonLevel], a + ld hl, PartyMon1Item + ld bc, $30 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonItem], a + ld hl, PartyMon1DVs + ld bc, $30 + ld a, e + call AddNTimes + ld de, TempMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ret + +.asm_e2bf5 + ld a, BANK(sBox) + call GetSRAMBank + ld hl, sBoxMon1Level + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonLevel], a + + ld hl, sBoxMon1Item + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + ld [TempMonItem], a + + ld hl, sBoxMon1DVs + ld bc, $20 + ld a, e + call AddNTimes + ld de, TempMonDVs + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + + call CloseSRAM + ret + +Functione2c2c: ; e2c2c (38:6c2c) + hlcoord 8, 2 + lb bc, 10, 10 + call TextBox + + hlcoord 8, 2 + ld [hl], "└" + hlcoord 19, 2 + ld [hl], "┘" + + ld a, [wcb2a] + ld e, a + ld d, 0 + ld hl, OverworldMap +rept 3 + add hl, de +endr + ld e, l + ld d, h + hlcoord 9, 4 + ld a, [wcb2d] +.asm_e2c53 + push af + push de + push hl + call Functione2c6e + pop hl + ld de, $28 + add hl, de + pop de +rept 3 + inc de +endr + pop af + dec a + jr nz, .asm_e2c53 + ret +; e2c67 (38:6c67) + +String_e2c67: + db "CANCEL@" +; e2c6e + +Functione2c6e: ; e2c6e (38:6c6e) + ld a, [de] + and a + ret z + cp $ff + jr nz, .asm_e2c7c + ld de, String_e2c67 + call PlaceString + ret +.asm_e2c7c + inc de + ld a, [de] + ld b, a + inc de + ld a, [de] + ld e, a + ld a, b + and a + jr z, .asm_e2cc8 + cp $f + jr z, .asm_e2cf1 + push hl + call Functione3396 + ld a, b + call GetSRAMBank + push hl + ld bc, $16 + add hl, bc + ld bc, $20 + ld a, e + call AddNTimes + ld a, [hl] + pop hl + and a + jr z, .asm_e2cc2 + ld bc, $372 + add hl, bc + ld bc, $b + ld a, e + call AddNTimes + ld de, StringBuffer1 + ld bc, $b + call CopyBytes + call CloseSRAM + pop hl + ld de, StringBuffer1 + call PlaceString + ret +.asm_e2cc2 + call CloseSRAM + pop hl + jr .asm_e2d23 +.asm_e2cc8 + push hl + ld hl, PartySpecies + ld d, $0 + add hl, de + ld a, [hl] + and a + jr z, .asm_e2cee + ld hl, PartyMonNicknames + ld bc, $b + ld a, e + call AddNTimes + ld de, StringBuffer1 + ld bc, $b + call CopyBytes + pop hl + ld de, StringBuffer1 + call PlaceString + ret +.asm_e2cee + pop hl + jr .asm_e2d23 +.asm_e2cf1 + push hl + ld a, BANK(sBox) + call GetSRAMBank + ld hl, sBoxSpecies + ld d, $0 + add hl, de + ld a, [hl] + and a + jr z, .asm_e2d1f + ld hl, sBoxMonNicknames + ld bc, PKMN_NAME_LENGTH + ld a, e + call AddNTimes + ld de, StringBuffer1 + ld bc, PKMN_NAME_LENGTH + call CopyBytes + call CloseSRAM + pop hl + ld de, StringBuffer1 + call PlaceString + ret +.asm_e2d1f + call CloseSRAM + pop hl +.asm_e2d23 + ld de, String_e2d2a + call PlaceString + ret +; e2d2a (38:6d2a) + +String_e2d2a: + db "-----@" +; e2d30 + +Functione2d30: ; e2d30 (38:6d30) + xor a + ld hl, OverworldMap + ld bc, $5a + call ByteFill + ld de, OverworldMap + xor a + ld [wd003], a + ld [wd004], a + ld a, [wcb2e] + and a + jr z, .asm_e2d87 + cp $f + jr z, .asm_e2db7 + ld b, a + call Functione3396 + ld a, b + call GetSRAMBank + inc hl +.asm_e2d57 + ld a, [hl] + cp $ff + jr z, .asm_e2d79 + and a + jr z, .asm_e2d79 + ld [de], a + inc de + ld a, [wcb2e] + ld [de], a + inc de + ld a, [wd003] + ld [de], a + inc a + ld [wd003], a + inc de + inc hl + ld a, [wd004] + inc a + ld [wd004], a + jr .asm_e2d57 +.asm_e2d79 + call CloseSRAM + ld a, $ff + ld [de], a + ld a, [wd004] + inc a + ld [wcb2c], a + ret +.asm_e2d87 + ld hl, PartySpecies +.asm_e2d8a + ld a, [hl] + cp $ff + jr z, .asm_e2dac + and a + jr z, .asm_e2dac + ld [de], a + inc de + ld a, [wcb2e] + ld [de], a + inc de + ld a, [wd003] + ld [de], a + inc a + ld [wd003], a + inc de + inc hl + ld a, [wd004] + inc a + ld [wd004], a + jr .asm_e2d8a +.asm_e2dac + ld a, $ff + ld [de], a + ld a, [wd004] + inc a + ld [wcb2c], a + ret +.asm_e2db7 + ld a, BANK(sBox) + call GetSRAMBank + ld hl, sBoxSpecies +.asm_e2dbf + ld a, [hl] + cp $ff + jr z, .asm_e2de1 + and a + jr z, .asm_e2de1 + ld [de], a + inc de + ld a, [wcb2e] + ld [de], a + inc de + ld a, [wd003] + ld [de], a + inc a + ld [wd003], a + inc de + inc hl + ld a, [wd004] + inc a + ld [wd004], a + jr .asm_e2dbf +.asm_e2de1 + call CloseSRAM + ld a, $ff + ld [de], a + ld a, [wd004] + inc a + ld [wcb2c], a + ret + +Functione2def: ; e2def (38:6def) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld e, a + ld d, $0 + ld hl, OverworldMap +rept 3 + add hl, de +endr + ld a, [hl] + ret + +Functione2e01: ; e2e01 (38:6e01) + ld a, [wcb2c] + and a + jr nz, .asm_e2e0b + call ClearSprites + ret +.asm_e2e0b + ld hl, Unknown_e2e2b + ld de, Sprites +.done1 + ld a, [hl] + cp $ff + ret z + ld a, [wcb2b] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + jr .done1 +; e2e2b (38:6e2b) + +Unknown_e2e2b: ; e2e2b + db $26, $50, $00, $00 + db $26, $58, $00, $00 + db $26, $60, $00, $00 + db $26, $68, $00, $00 + db $26, $70, $00, $00 + db $26, $78, $00, $00 + db $26, $80, $00, $00 + db $26, $88, $00, $00 + db $26, $90, $00, $00 + db $26, $97, $00, $00 + db $39, $50, $00, $40 + db $39, $58, $00, $40 + db $39, $60, $00, $40 + db $39, $68, $00, $40 + db $39, $70, $00, $40 + db $39, $78, $00, $40 + db $39, $80, $00, $40 + db $39, $88, $00, $40 + db $39, $90, $00, $40 + db $39, $97, $00, $40 + db $2e, $4e, $01, $00 + db $31, $4e, $01, $40 + db $2e, $99, $01, $20 + db $31, $99, $01, $60 + db $ff +; e2e8c + +Functione2e8c: ; e2e8c + ld hl, Unknown_e2eac + ld de, Sprites +.asm_e2e92 + ld a, [hl] + cp $ff + ret z + ld a, [wcb2b] + and $7 + swap a + add [hl] + inc hl + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + jr .asm_e2e92 +; e2eac + +Unknown_e2eac: ; e2eac + db $27, $50, $06, $00 + db $2b, $58, $00, $40 + db $2b, $60, $00, $40 + db $2b, $68, $00, $40 + db $2b, $70, $00, $40 + db $2b, $78, $00, $40 + db $2b, $80, $00, $40 + db $2b, $88, $00, $40 + db $2b, $90, $00, $40 + db $27, $98, $07, $00 + db $ff +; e2ed5 + +Functione2ed5: ; e2ed5 +.asm_e2ed5 + push bc + push hl +.asm_e2ed7 + ld [hli], a + dec c + jr nz, .asm_e2ed7 + pop hl + ld bc, SCREEN_WIDTH + add hl, bc + pop bc + dec b + jr nz, .asm_e2ed5 + ret +; e2ee5 + +Functione2ee5: ; e2ee5 + ld hl, wcb2e + ld a, [wcb31] + cp [hl] + jr z, .asm_e2f00 + ld a, [wcb2e] + and a + jr z, .asm_e2ef8 + ld e, $15 + jr .asm_e2efa + +.asm_e2ef8 + ld e, $7 + +.asm_e2efa + ld a, [wcb2c] + cp e + jr nc, .asm_e2f02 + +.asm_e2f00 + and a + ret + +.asm_e2f02 + ld de, PCString_TheresNoRoom + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret +; e2f18 + +Functione2f18: ; e2f18 (38:6f18) + ld a, [wcb2e] + and a + jr nz, .Okay + ld a, [wcb2c] + cp $3 + jr c, .ItsYourLastPokemon + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + callba CheckCurPartyMonFainted + jr c, .AllOthersFainted + ld a, [wcb32] + and a + jr nz, .HasMail +.Okay + and a + ret +.HasMail + ld de, PCString_RemoveMail + jr .NotOkay +.AllOthersFainted + ld de, PCString_NoMoreUsablePKMN + jr .NotOkay +.ItsYourLastPokemon + ld de, PCString_ItsYourLastPKMN +.NotOkay + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret + +Functione2f5f: ; e2f5f (38:6f5f) + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_e2f68 + and a + ret +.asm_e2f68 + ld de, PCString_NoReleasingEGGS + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret + +Functione2f7e: ; e2f7e (38:6f7e) + call LowVolume + call Functione2fd6 + ld a, $3 + ld [MonType], a + predef StatsScreenInit + call Functione33e8 + call MaxVolume + ret + +Functione2f95: ; e2f95 (38:6f95) + ld hl, hJoyPressed ; $ffa7 + ld a, [hl] + and A_BUTTON | B_BUTTON | D_RIGHT | D_LEFT + ld [wcf73], a + jr nz, .pressed_a_b_right_left + ld a, [hl] + and D_DOWN | D_UP + ld [wcf73], a + jr nz, .pressed_down_up + jr .pressed_a_b_right_left + +.pressed_down_up + call Functione2998 + and a + jr z, .asm_e2fd1 + call Functione2def + ld [wd265], a + call Functione2b6d + ld a, [wd265] + ld [CurPartySpecies], a + ld [CurSpecies], a + ld hl, TempMonDVs + predef GetUnownLetter + call GetBaseData + call Functione2fd6 +.pressed_a_b_right_left + ret + +.asm_e2fd1 + xor a + ld [wcf73], a + ret + +Functione2fd6: ; e2fd6 (38:6fd6) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + ld a, [wcb2e] + and a + jr z, .asm_e3020 + cp $f + jr nz, .asm_e3048 + ld a, BANK(sBox) + call GetSRAMBank + ld hl, sBoxSpecies + call Functione3357 + ld hl, sBoxMonNicknames + call Functione3363 + ld hl, sBoxMonOT + call Functione3376 + ld hl, sBoxMons + ld bc, BOXMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld de, wd018_Mon + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + call CloseSRAM + callba Function5088b + ret + +.asm_e3020 + ld hl, PartySpecies + call Functione3357 + ld hl, PartyMonNicknames + call Functione3363 + ld hl, PartyMonOT + call Functione3376 + ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) + ld bc, PARTYMON_STRUCT_LENGTH + ld a, [CurPartyMon] + call AddNTimes + ld de, wd018_Mon + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + ret + +.asm_e3048 + ld b, a + call Functione3396 + ld a, b + call GetSRAMBank + push hl + inc hl + call Functione3357 + pop hl + push hl + ld bc, $372 + add hl, bc + call Functione3363 + pop hl + push hl + ld bc, $296 + add hl, bc + call Functione3376 + pop hl + ld bc, $16 + add hl, bc + ld bc, $20 + call Functione3389 + call CloseSRAM + callba Function5088b + ret + +Functione307c: ; e307c (38:707c) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + ld hl, PartyMonNicknames + ld a, [CurPartyMon] + call GetNick + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a + predef SentGetPkmnIntoFromBox + jr c, .asm_boxisfull + xor a + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ld a, [CurPartySpecies] + call PlayCry + hlcoord 0, 0 + lb bc, 15, 8 + call ClearBox + hlcoord 8, 14 + lb bc, 1, 3 + call ClearBox + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + call WaitBGMap + hlcoord 1, 16 + ld de, PCString_Stored + call PlaceString + ld l, c + ld h, b + ld de, StringBuffer1 + call PlaceString + ld a, "!" + ld [bc], a + ld c, 50 + call DelayFrames + and a + ret + +.asm_boxisfull + ld de, PCString_BoxFull + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret + +TryWithdrawPokemon: ; e30fa (38:70fa) + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + ld a, BANK(sBoxMonNicknames) + call GetSRAMBank + ld a, [CurPartyMon] + ld hl, sBoxMonNicknames + call GetNick + call CloseSRAM + xor a + ld [wPokemonWithdrawDepositParameter], a + predef SentGetPkmnIntoFromBox + jr c, .PartyFull + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ld a, [CurPartySpecies] + call PlayCry + hlcoord 0, 0 + lb bc, 15, 8 + call ClearBox + hlcoord 8, 14 + lb bc, 1, 3 + call ClearBox + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + call WaitBGMap + hlcoord 1, 16 + ld de, PCString_Got + call PlaceString + ld l, c + ld h, b + ld de, StringBuffer1 + call PlaceString + ld a, $e7 + ld [bc], a + ld c, 50 + call DelayFrames + and a + ret + +.PartyFull + ld de, PCString_PartyFull + call Functione2a6e + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + scf + ret + + +Functione3180: ; e3180 (38:7180) + hlcoord 0, 0 + lb bc, 15, 8 + call ClearBox + hlcoord 8, 14 + lb bc, 1, 3 + call ClearBox + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + + call WaitBGMap + ld a, [CurPartySpecies] + call GetCryIndex + jr c, .asm_e31ab + ld e, c + ld d, b + call PlayCryHeader +.asm_e31ab + + ld a, [CurPartySpecies] + ld [wd265], a + call GetPokemonName + hlcoord 1, 16 + ld de, PCString_ReleasedPKMN + call PlaceString + ld c, 80 + call DelayFrames + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + hlcoord 1, 16 + ld de, PCString_Bye + call PlaceString + ld l, c + ld h, b + inc hl + ld de, StringBuffer1 + call PlaceString + ld l, c + ld h, b + ld [hl], $e7 + ld c, 50 + call DelayFrames + ret +; e31e7 (38:71e7) + +Functione31e7: ; e31e7 + push hl + push de + push bc + push af + hlcoord 0, 15 + lb bc, 1, 18 + call TextBox + hlcoord 1, 16 + ld de, String_e3233 + call PlaceString + ld c, 20 + call DelayFrames + pop af + pop bc + pop de + pop hl + ld a, [wCurBox] + push af + ld bc, 0 + ld a, [wcb31] + and a + jr nz, .asm_e3215 + set 0, c + +.asm_e3215 + ld a, [wcb2e] + and a + jr nz, .asm_e321d + set 1, c + +.asm_e321d + ld hl, Jumptable_e3245 +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, Functione322a + push de + jp [hl] +; e322a + +Functione322a: ; e322a + pop af + ld e, a + callba Function14ad5 + ret +; e3233 + +String_e3233: + db "Saving… Leave ON!@" +; e3245 + +Jumptable_e3245: ; e3245 + dw Functione324d + dw Functione3267 + dw Functione327d + dw Functione3284 +; e324d + +Functione324d: ; e324d + ld hl, wcb31 + ld a, [wcb2e] + cp [hl] + jr z, .asm_e325d + call Functione32b0 + call Functione32fa + ret + +.asm_e325d + call Functione32b0 + call Functione328e + call Functione32fa + ret +; e3267 + +Functione3267: ; e3267 + call Functione3316 + ld a, $1 + ld [wc2cd], a + callba SaveGameData + xor a + ld [wc2cd], a + call Functione32fa + ret +; e327d + +Functione327d: ; e327d + call Functione32b0 + call Functione3346 + ret +; e3284 + +Functione3284: ; e3284 + call Functione3316 + call Functione328e + call Functione3346 + ret +; e328e + +Functione328e: ; e328e + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld e, a + ld a, [wcb30] + ld hl, wcb2f + add [hl] + cp e + ret nc + ld hl, wcb2b + ld a, [hl] + and a + jr z, .asm_e32a8 + dec [hl] + ret + +.asm_e32a8 + ld hl, wcb2a + ld a, [hl] + and a + ret z + dec [hl] + ret +; e32b0 + +Functione32b0: ; e32b0 + ld a, [wcb31] + dec a + ld e, a + callba Function14ac2 + ld a, [wcb30] + ld hl, wcb2f + add [hl] + ld [CurPartyMon], a + ld a, $1 + call GetSRAMBank + ld hl, sBoxSpecies + call Functione3357 + ld hl, sBoxMonNicknames + call Functione3363 + ld hl, sBoxMonOT + call Functione3376 + ld hl, sBoxMons + ld bc, BOXMON_STRUCT_LENGTH + call Functione3389 + call CloseSRAM + callba Function5088b + ld a, PC_DEPOSIT + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ret +; e32fa + +Functione32fa: ; e32fa + ld a, [wcb2e] + dec a + ld e, a + callba Function14ac2 + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + callba Function51322 + ret +; e3316 + +Functione3316: ; e3316 + ld a, [wcb30] + ld hl, wcb2f + add [hl] + ld [CurPartyMon], a + ld hl, PartySpecies + call Functione3357 + ld hl, PartyMonNicknames + call Functione3363 + ld hl, PartyMonOT + call Functione3376 + ld hl, PartyMon1Species + ld bc, PARTYMON_STRUCT_LENGTH + call Functione3389 + xor a + ld [wPokemonWithdrawDepositParameter], a + callba Functione039 + ret +; e3346 + +Functione3346: ; e3346 + ld a, [wcb2b] + ld hl, wcb2a + add [hl] + ld [CurPartyMon], a + callba Function5138b + ret +; e3357 + +Functione3357: ; e3357 (38:7357) + ld a, [CurPartyMon] + ld c, a + ld b, $0 + add hl, bc + ld a, [hl] + ld [CurPartySpecies], a + ret + +Functione3363: ; e3363 (38:7363) + ld bc, $b + ld a, [CurPartyMon] + call AddNTimes + ld de, wd002 + ld bc, $b + call CopyBytes + ret + +Functione3376: ; e3376 (38:7376) + ld bc, $b + ld a, [CurPartyMon] + call AddNTimes + ld de, wd00d + ld bc, $b + call CopyBytes + ret + +Functione3389: ; e3389 (38:7389) + ld a, [CurPartyMon] + call AddNTimes + ld de, wd018 + call CopyBytes + ret + +Functione3396: ; e3396 (38:7396) + dec b + ld c, b + ld b, 0 + ld hl, Unknown_e33a6 +rept 3 + add hl, bc +endr + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + ret +; e33a6 (38:73a6) + +Unknown_e33a6: ; e33a6 + ; bank, address + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 +; e33d0 + +Functione33d0: ; e33d0 (38:73d0) + ld b, a + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld a, $fc + call Functioncf8 + ret + +Functione33df: ; e33df (38:73df) + ld e, a + ld d, $0 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ret + +Functione33e8: ; e33e8 (38:73e8) + call DisableLCD + ld hl, VTiles2 tile $00 + ld bc, $310 + xor a + call ByteFill + call LoadStandardFont + call LoadFontsBattleExtra + ld hl, PCMailGFX + ld de, VTiles2 tile $5c + ld bc, $40 + call CopyBytes + ld hl, PCSelectLZ + ld de, VTiles0 tile $00 + call Decompress + ld a, 6 + call SkipMusic + call EnableLCD + ret +; e3419 (38:7419) + +PCSelectLZ: INCBIN "gfx/pc.2bpp.lz" +PCMailGFX: INCBIN "gfx/pc_mail.2bpp" +; e34dd + +PCString_ChooseaPKMN: db "Choose a .@" +PCString_WhatsUp: db "What's up?@" +PCString_ReleasePKMN: db "Release ?@" +PCString_MoveToWhere: db "Move to where?@" +PCString_ItsYourLastPKMN: db "It's your last !@" +PCString_TheresNoRoom: db "There's no room!@" +PCString_NoMoreUsablePKMN: db "No more usable !@" +PCString_RemoveMail: db "Remove MAIL.@" +PCString_ReleasedPKMN: db "Released .@" +PCString_Bye: db "Bye,@" +PCString_Stored: db "Stored @" +PCString_Got: db "Got @" +PCString_Non: db "Non.@" +PCString_BoxFull: db "The BOX is full.@" +PCString_PartyFull: db "The party's full!@" +PCString_NoReleasingEGGS: db "No releasing EGGS!@" +; e35aa + + +_ChangeBox: ; e35aa (38:75aa) + call LoadStandardMenuDataHeader + call Functione35e2 +.loop + xor a + ld [hBGMapMode], a + call Functione36cf + call Functione379c + ld hl, _ChangeBox_menudataheader + call CopyMenuDataHeader + xor a + ld [wd0e4], a + hlcoord 0, 4 + lb bc, 8, 9 + call TextBox + call HandleScrollingMenu + ld a, [wcf73] + cp $2 + jr z, .done + call Functione37af + call Functione36f9 + jr .loop +.done + call WriteBackup + ret + +Functione35e2: ; e35e2 (38:75e2) + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, " " + call ByteFill + ret +; e35f1 (38:75f1) + +_ChangeBox_menudataheader: ; 0xe35f1 + db $40 ; flags + db 05, 01 ; start coords + db 12, 09 ; end coords + dw .menudata2 + db 1 ; default option +; 0xe35f9 + +.menudata2: ; 0xe35f9 + db $22 ; flags + db 4, 0 + db 1 + dba .boxes + dba .boxnames + dba NULL + dba Functione3632 +; e3609 + +.boxes: ; e3609 + db NUM_BOXES +x = 1 +rept NUM_BOXES + db x +x = x + 1 +endr + db -1 +; e3619 + +.boxnames: ; e3619 + push de + ld a, [MenuSelection] + dec a + call GetBoxName + pop hl + call PlaceString + ret +; e3626 + +GetBoxName: ; e3626 (38:7626) + ld bc, BOX_NAME_LENGTH + ld hl, wBoxNames + call AddNTimes + ld d, h + ld e, l + ret +; e3632 (38:7632) + +Functione3632: ; e3632 + hlcoord 11, 7 + lb bc, 5, 7 + call TextBox + ld a, [MenuSelection] + cp -1 + ret z + hlcoord 12, 9 + ld de, String_e3663 + call PlaceString + call GetBoxCount + ld [wd265], a + hlcoord 13, 11 + ld de, wd265 + lb bc, 1, 2 + call PrintNum + ld de, String_e3668 + call PlaceString + ret +; e3663 + +String_e3663: ; e3663 + db "#MON@" +; e3668 + +String_e3668: ; e3668 + ; db "/20@" + db "/" + db "0" + MONS_PER_BOX / 10 ; "2" + db "0" + MONS_PER_BOX % 10 ; "0" + db "@" +; e366c + +GetBoxCount: ; e366c (38:766c) + ld a, [wCurBox] + ld c, a + ld a, [MenuSelection] + dec a + cp c + jr z, .activebox + ld c, a + ld b, 0 + ld hl, .boxbanks +rept 3 + add hl, bc +endr + ld a, [hli] + ld b, a + call GetSRAMBank + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + call CloseSRAM + ld c, a + ld a, [wSavedAtLeastOnce] + and a + jr z, .newfile + ld a, c + ret + +.newfile + xor a + ret + +.activebox + ld a, BANK(sBoxCount) + ld b, a + call GetSRAMBank + ld hl, sBoxCount + ld a, [hl] + call CloseSRAM + ret +; e36a5 (38:76a5) + +.boxbanks: ; e36a5 + dba sBox1 + dba sBox2 + dba sBox3 + dba sBox4 + dba sBox5 + dba sBox6 + dba sBox7 + dba sBox8 + dba sBox9 + dba sBox10 + dba sBox11 + dba sBox12 + dba sBox13 + dba sBox14 +; e36cf + +Functione36cf: ; e36cf (38:76cf) + hlcoord 0, 0 + ld b, 2 + ld c, 18 + call TextBox + hlcoord 1, 2 + ld de, String_e36f1 + call PlaceString + ld a, [wCurBox] + and $f + call GetBoxName + hlcoord 11, 2 + call PlaceString + ret +; e36f1 (38:76f1) + +String_e36f1: ; e36f1 + db "CURRENT@" +; e36f9 + +Functione36f9: ; e36f9 (38:76f9) + ld hl, MenuDataHeader_0xe377b + call LoadMenuDataHeader + call InterpretMenu2 + call ExitMenu + ret c + ld a, [MenuSelection2] + cp $1 + jr z, .asm_e3734 + cp $2 + jr z, .asm_e3745 + cp $3 + jr z, .asm_e3717 + and a + ret + +.asm_e3717 + call GetBoxCount + and a + jr z, .asm_e372f + ld e, l + ld d, h + ld a, [MenuSelection] + dec a + ld c, a + callba Function844bc + call Functione35e2 + and a + ret + +.asm_e372f + call Functione37be + and a + ret + +.asm_e3734 + ld a, [MenuSelection] + dec a + ld e, a + ld a, [wCurBox] + cp e + ret z + callba Function14a83 + ret + +.asm_e3745 + ld b, $4 + ld de, wd002 + callba NamingScreen + call ClearTileMap + call LoadStandardFont + call LoadFontsBattleExtra + ld a, [MenuSelection] + dec a + call GetBoxName + ld e, l + ld d, h + ld hl, wd002 + ld c, $8 + call InitString + ld a, [MenuSelection] + dec a + call GetBoxName + ld de, wd002 + call CopyName2 + ret +; e3778 (38:7778) + + hlcoord 11, 7 ; XXX + +MenuDataHeader_0xe377b: ; 0xe377b + db $40 ; flags + db 04, 11 ; start coords + db 13, 19 ; end coords + dw MenuData2_0xe3783 + db 1 ; default option +; 0xe3783 + +MenuData2_0xe3783: ; 0xe3783 + db $80 ; flags + db 4 ; items + db "SWITCH@" + db "NAME@" + db "PRINT@" + db "QUIT@" +; 0xe379c + +Functione379c: ; e379c (38:779c) + ld de, String_e37a1 + jr Functione37e3 +; e37a1 (38:77a1) + +String_e37a1: ; e37a1 + db "Choose a BOX.@" +; e37af + +Functione37af: ; e37af (38:77af) + ld de, String_e37b4 + jr Functione37e3 +; e37b4 (38:77b4) + +String_e37b4: ; e37b4 + db "What's up?@" +; e37be + +Functione37be: ; e37be (38:77be) + ld de, String_e37d3 + call Functione37e3 + ld de, SFX_WRONG + call WaitPlaySFX + call WaitSFX + ld c, 50 + call DelayFrames + ret +; e37d3 (38:77d3) + +String_e37d3: ; e37d3 + db "There's no #MON.@" +; e37e3 + +Functione37e3: ; e37e3 (38:77e3) + push de + hlcoord 0, 14 + lb bc, 2, 18 + call TextBox + pop de + hlcoord 1, 16 + call PlaceString + ld a, $1 + ld [hBGMapMode], a + ret diff --git a/engine/card_flip.asm b/engine/card_flip.asm new file mode 100755 index 000000000..cf19cdbaf --- /dev/null +++ b/engine/card_flip.asm @@ -0,0 +1,2560 @@ +_CardFlip: ; e00ee (38:40ee) + ld hl, Options + set 4, [hl] + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld de, MUSIC_NONE + call PlayMusic + call DelayFrame + call DisableLCD + call LoadStandardFont + call LoadFontsExtra + ld hl, LZ_e0d16 + ld de, VTiles2 tile $00 + call Decompress + ld hl, LZ_e0ea8 + ld de, VTiles2 tile $3e + call Decompress + ld hl, LZ_e0cdb + ld de, VTiles0 tile $00 + call Decompress + ld hl, GFX_e0cf6 + ld de, VTiles1 tile $6f + ld bc, $10 + call CopyBytes + ld hl, GFX_e0d06 + ld de, VTiles1 tile $75 + ld bc, $10 + call CopyBytes + call Functione0521 + call Functione04c1 + call Functione0c37 + call EnableLCD + call Function3200 + ld a, $e4 + call DmgToCgbBGPals + ld de, $e4e4 + call DmgToCgbObjPals + call DelayFrame + xor a + ld [wJumptableIndex], a + ld a, $2 + ld [wcf64], a + ld [wcf65], a + ld de, MUSIC_GAME_CORNER + call PlayMusic +.MasterLoop + ld a, [wJumptableIndex] + bit 7, a + jr nz, .leavethegame + call .CardFlip + jr .MasterLoop +.leavethegame + call WaitSFX + ld de, SFX_QUIT_SLOTS + call PlaySFX + call WaitSFX + call ClearBGPalettes + ld hl, Options + res 4, [hl] + ret + +.CardFlip: ; e0191 (38:4191) + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, .Jumptable +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e01a0 (38:41a0) + +.Jumptable: ; e01a0 + dw .AskPlayWithThree + dw .DeductCoins + dw .ChooseACard + dw .PlaceYourBet + dw .CheckTheCard + dw .TabulateTheResult + dw .PlayAgain + dw .Quit +; e01b0 + +.Increment: ; e01b0 + ld hl, wJumptableIndex + inc [hl] + ret +; e01b5 + +.AskPlayWithThree: ; e01b5 + ld hl, .PlayWithThreeCoinsText + call Functione0489 + call YesNoBox + jr c, .SaidNo + call Functione0366 + call .Increment + ret + +.SaidNo + ld a, $7 + ld [wJumptableIndex], a + ret +; e01cd + +.PlayWithThreeCoinsText: ; 0xe01cd + ; Play with three coins? + text_jump UnknownText_0x1c5793 + db "@" +; 0xe01d2 + +.DeductCoins: ; e01d2 + ld a, [Coins] + ld h, a + ld a, [Coins + 1] + ld l, a + ld a, h + and a + jr nz, .deduct ; You have at least 256 coins. + ld a, l + cp 3 + jr nc, .deduct ; You have at least 3 coins. + ld hl, .NotEnoughCoinsText + call Functione0489 + ld a, $7 + ld [wJumptableIndex], a + ret + +.deduct + ld de, -3 + add hl, de + ld a, h + ld [Coins], a + ld a, l + ld [Coins + 1], a + ld de, SFX_TRANSACTION + call PlaySFX + xor a + ld [hBGMapMode], a + call Functione049c + ld a, $1 + ld [hBGMapMode], a + call WaitSFX + call .Increment + ret +; e0212 + +.NotEnoughCoinsText: ; 0xe0212 + ; Not enough coins… + text_jump UnknownText_0x1c57ab + db "@" +; 0xe0217 + +.ChooseACard: ; e0217 + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + lb bc, 12, 9 + call Functione04e5 + hlcoord 9, 0 + ld bc, SCREEN_WIDTH + ld a, [wc6e8] + call AddNTimes + ld [hl], $f5 + ld a, $1 + ld [hBGMapMode], a + ld c, 20 + call DelayFrames + hlcoord 2, 0 + call Functione03c1 + ld a, $1 + ld [hBGMapMode], a + ld c, 20 + call DelayFrames + hlcoord 2, 6 + call Functione03c1 + call WaitBGMap + ld hl, .ChooseACardText + call Functione0489 + xor a + ld [wcf66], a +.loop + call JoyTextDelay + ld a, [hJoyLast] + and A_BUTTON + jr nz, .next + ld de, SFX_KINESIS + call PlaySFX + call Functione0849 + ld c, 4 + call DelayFrames + ld hl, wcf66 + ld a, [hl] + xor $1 + ld [hl], a + jr .loop + +.next + ld de, SFX_SLOT_MACHINE_START + call PlaySFX + ld a, $3 +.loop2 + push af + call Functione0849 + ld c, 4 + call DelayFrames + call ClearSprites + ld c, 4 + call DelayFrames + pop af + dec a + jr nz, .loop2 + ld hl, wcf66 + ld a, [hl] + push af + xor $1 + ld [hl], a + call Functione03ac + lb bc, 6, 5 + call Functione04e5 + pop af + ld [wcf66], a + call .Increment + ret +; e02b2 + +.ChooseACardText: ; 0xe02b2 + ; Choose a card. + text_jump UnknownText_0x1c57be + db "@" +; 0xe02b7 + +.PlaceYourBet: ; e02b7 + ld hl, .PlaceYourBetText + call Functione0489 +.betloop + call JoyTextDelay + ld a, [hJoyLast] + and A_BUTTON + jr nz, .betdone + call Functione089c + call Functione0960 + call DelayFrame + jr .betloop + +.betdone + call .Increment + ret +; e02d5 + +.PlaceYourBetText: ; 0xe02d5 + ; Place your bet. + text_jump UnknownText_0x1c57ce + db "@" +; 0xe02da + +.CheckTheCard: ; e02da + xor a + ld [hVBlankCounter], a + call Functione0960 + call WaitSFX + ld de, SFX_CHOOSE_A_CARD + call PlaySFX + call WaitSFX + ld a, [wc6e8] + ld e, a + ld d, 0 + ld hl, wc6d0 +rept 2 + add hl, de +endr + ld a, [wcf66] + ld e, a + add hl, de + ld a, [hl] + ld [CurEnemyMoveNum], a + ld e, a + ld hl, wc6ea + add hl, de + ld [hl], $1 + call Functione03ac + call Functione03ec + call Function3200 + call .Increment + ret +; e0314 + +.TabulateTheResult: ; e0314 + call Functione0637 + call WaitPressAorB_BlinkCursor + call .Increment + ret +; e031e + +.PlayAgain: ; e031e + call ClearSprites + ld hl, .PlayAgainText + call Functione0489 + call YesNoBox + jr nc, .Continue + call .Increment + ret + +.Continue + ld a, [wc6e8] + inc a + ld [wc6e8], a + cp $c + jr c, .KeepTheCurrentDeck + call Functione04c1 + ld a, $1 + ld [hBGMapMode], a + call Functione0366 + ld hl, .CardsShuffledText + call PrintText + jr .LoopAround + +.KeepTheCurrentDeck + call Functione0534 + +.LoopAround + ld a, $1 + ld [wJumptableIndex], a + ret +; e0356 + +.PlayAgainText: ; 0xe0356 + ; Want to play again? + text_jump UnknownText_0x1c57df + db "@" +; 0xe035b + +.CardsShuffledText: ; 0xe035b + ; The cards have been shuffled. + text_jump UnknownText_0x1c57f4 + db "@" +; 0xe0360 + +.Quit: ; e0360 + ld hl, wJumptableIndex + set 7, [hl] + ret +; e0366 + +Functione0366: ; e0366 + ld hl, wc6d0 + ld bc, $18 + xor a + call ByteFill + ld de, wc6d0 + ld c, $17 +.asm_e0375 + call Random + and $1f + cp $18 + jr nc, .asm_e0375 + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0375 + ld [hl], c + dec c + jr nz, .asm_e0375 + xor a + ld [wc6e8], a + ld hl, wc6ea + ld bc, $18 + call ByteFill + ret +; e0398 + +Functione0398: ; e0398 + ld hl, 0 + ld bc, 6 + ld a, [wcf64] + call AddNTimes + ld b, $0 + ld a, [wcf65] + ld c, a + add hl, bc + ret +; e03ac + +Functione03ac: ; e03ac + ld a, [wcf66] + and a + jr nz, .asm_e03ba + hlcoord 2, 0 + ld bc, $1018 + jr .asm_e03c0 + +.asm_e03ba + hlcoord 2, 6 + ld bc, $4018 + +.asm_e03c0 + ret +; e03c1 + +Functione03c1: ; e03c1 + xor a + ld [hBGMapMode], a + ld de, Unknown_e03ce + lb bc, 6, 5 + call Functione04f7 + ret +; e03ce + +Unknown_e03ce: ; e03ce + db $08, $09, $09, $09, $0a + db $0b, $28, $2b, $28, $0c + db $0b, $2c, $2d, $2e, $0c + db $0b, $2f, $30, $31, $0c + db $0b, $32, $33, $34, $0c + db $0d, $0e, $0e, $0e, $0f +; e03ec + +Functione03ec: ; e03ec + xor a + ld [hBGMapMode], a + push hl + push hl + ld de, Unknown_e043b + lb bc, 6, 5 + call Functione04f7 + ld a, [CurEnemyMoveNum] + ld e, a + ld d, 0 + ld hl, Unknown_e0459 +rept 2 + add hl, de +endr + ld a, [hli] + ld e, a + ld d, [hl] + pop hl + ld bc, $17 + add hl, bc + ld [hl], e + ld bc, SCREEN_HEIGHT + add hl, bc + ld a, d + ld de, SCREEN_WIDTH + ld b, $3 +.asm_e0418 + push hl + ld c, $3 +.asm_e041b + ld [hli], a + inc a + dec c + jr nz, .asm_e041b + pop hl + add hl, de + dec b + jr nz, .asm_e0418 + pop hl + ld a, [hCGB] + and a + ret z + ld de, AttrMap - TileMap + add hl, de + ld a, [CurEnemyMoveNum] + and 3 + inc a + lb bc, 6, 5 + call Functione04e7 + ret +; e043b + +Unknown_e043b: ; e043b + db $18, $19, $19, $19, $1a + db $1b, $35, $7f, $7f, $1c + db $0b, $28, $28, $28, $0c + db $0b, $28, $28, $28, $0c + db $0b, $28, $28, $28, $0c + db $1d, $1e, $1e, $1e, $1f +; e0459 + +Unknown_e0459: ; e0459 + db $f7,$4e, $f7,$57, $f7,$69, $f7,$60 + db $f8,$4e, $f8,$57, $f8,$69, $f8,$60 + db $f9,$4e, $f9,$57, $f9,$69, $f9,$60 + db $fa,$4e, $fa,$57, $fa,$69, $fa,$60 + db $fb,$4e, $fb,$57, $fb,$69, $fb,$60 + db $fc,$4e, $fc,$57, $fc,$69, $fc,$60 +; e0489 + +Functione0489: ; e0489 + push hl + hlcoord 0, 12 + ld b, $4 + ld c, $12 + call TextBox + pop hl + call PrintTextBoxText + call Functione049c + ret +; e049c + +Functione049c: ; e049c + hlcoord 9, 15 + ld b, $1 + ld c, $9 + call TextBox + hlcoord 10, 16 + ld de, String_e04bc + call PlaceString + hlcoord 15, 16 + ld de, Coins + lb bc, PRINTNUM_LEADINGZEROS | 2, 4 + call PrintNum + ret +; e04bc + +String_e04bc: + db "COIN@" +; e04c1 + +Functione04c1: ; e04c1 (38:44c1) + xor a + ld [hBGMapMode], a + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + ld a, $29 + call ByteFill + hlcoord 9, 0 + ld de, Unknown_e110c + lb bc, 12, 11 + call Functione04f7 + hlcoord 0, 12 + lb bc, 4, 18 + call TextBox + ret +; e04e5 (38:44e5) + +Functione04e5: ; e04e5 + ld a, $29 + +Functione04e7: ; e04e7 (38:44e7) + push bc + push hl +.asm_e04e9 + ld [hli], a + dec c + jr nz, .asm_e04e9 + pop hl + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, Functione04e7 + ret + +Functione04f7: ; e04f7 (38:44f7) + push bc + push hl +.asm_e04f9 + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_e04f9 + pop hl + ld bc, $14 + add hl, bc + pop bc + dec b + jr nz, Functione04f7 + ret +; e0509 (38:4509) + +Functione0509: ; e0509 + ld de, Sprites + ld a, [hli] +.asm_e050d + push af + ld a, [hli] + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + pop af + dec a + jr nz, .asm_e050d + ret +; e0521 + +Functione0521: ; e0521 (38:4521) + ld de, VTiles1 tile $76 + ld hl, $8f62 + ld bc, $9e + call CopyBytes + ld hl, $8ffe + xor a + ld [hli], a + ld [hl], a + ret +; e0534 (38:4534) + +Functione0534: ; e0534 + xor a + ld [hBGMapMode], a + ld a, [CurEnemyMoveNum] + ld e, a + ld d, 0 + and 3 + ld c, a + ld b, 0 + ld a, e + and $1c + srl a + add Jumptable_e0553 % $100 + ld l, a + ld a, 0 + adc Jumptable_e0553 / $100 + ld h, a + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e0553 + +Jumptable_e0553: ; e0553 + dw Functione055f + dw Functione0583 + dw Functione05a7 + dw Functione05cb + dw Functione05ef + dw Functione0613 +; e055f + +Functione055f: ; e055f + ld hl, wc6e6 + 8 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0575 + hlcoord 13, 3 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $37 + ret + +.asm_e0575 + hlcoord 13, 3 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret +; e0583 + +Functione0583: ; e0583 + ld hl, wc6e6 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0599 + hlcoord 13, 4 +rept 2 + add hl, bc +endr + ld [hl], $3b + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.asm_e0599 + hlcoord 13, 4 +rept 2 + add hl, bc +endr + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret +; e05a7 + +Functione05a7: ; e05a7 + ld hl, wc6e6 + 8 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e05bd + hlcoord 13, 6 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $38 + ret + +.asm_e05bd + hlcoord 13, 6 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret +; e05cb + +Functione05cb: ; e05cb + ld hl, wc6e6 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e05e1 + hlcoord 13, 7 +rept 2 + add hl, bc +endr + ld [hl], $3c + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.asm_e05e1 + hlcoord 13, 7 +rept 2 + add hl, bc +endr + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret +; e05ef + +Functione05ef: ; e05ef + ld hl, wc6e6 + 8 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0605 + hlcoord 13, 9 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $39 + ret + +.asm_e0605 + hlcoord 13, 9 +rept 2 + add hl, bc +endr + ld [hl], $36 + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3d + ret +; e0613 + +Functione0613: ; e0613 + ld hl, wc6e6 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e0629 + hlcoord 13, 10 +rept 2 + add hl, bc +endr + ld [hl], $3c + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret + +.asm_e0629 + hlcoord 13, 10 +rept 2 + add hl, bc +endr + ld [hl], $3d + ld bc, SCREEN_WIDTH + add hl, bc + ld [hl], $3a + ret +; e0637 + +Functione0637: ; e0637 + call Functione0398 + add hl, hl + ld de, Jumptable_e0643 + add hl, de + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e0643 + +Jumptable_e0643: ; e0643 + dw Functione06a3 + dw Functione06a3 + dw Functione06a6 + dw Functione06a6 + dw Functione06b0 + dw Functione06b0 + dw Functione06a3 + dw Functione06a3 + dw Functione06ec + dw Functione06f6 + dw Functione0702 + dw Functione070e + dw Functione06c2 + dw Functione0722 + dw Functione0770 + dw Functione0774 + dw Functione0778 + dw Functione077c + dw Functione06c2 + dw Functione072c + dw Functione0780 + dw Functione0784 + dw Functione0788 + dw Functione078c + dw Functione06cc + dw Functione0738 + dw Functione0790 + dw Functione0794 + dw Functione0798 + dw Functione079c + dw Functione06cc + dw Functione0744 + dw Functione07a0 + dw Functione07a4 + dw Functione07a8 + dw Functione07ac + dw Functione06d8 + dw Functione0750 + dw Functione07b0 + dw Functione07b4 + dw Functione07b8 + dw Functione07bc + dw Functione06d8 + dw Functione075c + dw Functione07c0 + dw Functione07c4 + dw Functione07c8 + dw Functione07cc +; e06a3 + +Functione06a3: ; e06a3 + jp Functione07db +; e06a6 + +Functione06a6: ; e06a6 + ld a, [CurEnemyMoveNum] + and $2 + jp nz, Functione07db + jr Functione06ba + +Functione06b0: ; e06b0 + ld a, [CurEnemyMoveNum] + and $2 + jr nz, Functione06ba + jp Functione07db + +Functione06ba: ; e06ba + ld c, $6 + ld de, SFX_2ND_PLACE + jp Functione07eb +; e06c2 + +Functione06c2: ; e06c2 + ld a, [CurEnemyMoveNum] + and $18 + jr z, Functione06e4 + jp Functione07db + +Functione06cc: ; e06cc + ld a, [CurEnemyMoveNum] + and $18 + cp $8 + jr z, Functione06e4 + jp Functione07db + +Functione06d8: ; e06d8 + ld a, [CurEnemyMoveNum] + and $18 + cp $10 + jr z, Functione06e4 + jp Functione07db + +Functione06e4: ; e06e4 + ld c, $9 + ld de, SFX_2ND_PLACE + jp Functione07eb +; e06ec + +Functione06ec: ; e06ec + ld a, [CurEnemyMoveNum] + and $3 + jr z, Functione071a + jp Functione07db + +Functione06f6: ; e06f6 + ld a, [CurEnemyMoveNum] + and $3 + cp $1 + jr z, Functione071a + jp Functione07db + +Functione0702: ; e0702 + ld a, [CurEnemyMoveNum] + and $3 + cp $2 + jr z, Functione071a + jp Functione07db + +Functione070e: ; e070e + ld a, [CurEnemyMoveNum] + and $3 + cp $3 + jr z, Functione071a + jp Functione07db + +Functione071a: ; e071a + ld c, $c + ld de, SFX_2ND_PLACE + jp Functione07eb +; e0722 + +Functione0722: ; e0722 + ld a, [CurEnemyMoveNum] + and $1c + jr z, Functione0768 + jp Functione07db + +Functione072c: ; e072c + ld a, [CurEnemyMoveNum] + and $1c + cp $4 + jr z, Functione0768 + jp Functione07db + +Functione0738: ; e0738 + ld a, [CurEnemyMoveNum] + and $1c + cp $8 + jr z, Functione0768 + jp Functione07db + +Functione0744: ; e0744 + ld a, [CurEnemyMoveNum] + and $1c + cp $c + jr z, Functione0768 + jp Functione07db + +Functione0750: ; e0750 + ld a, [CurEnemyMoveNum] + and $1c + cp $10 + jr z, Functione0768 + jp Functione07db + +Functione075c: ; e075c + ld a, [CurEnemyMoveNum] + and $1c + cp $14 + jr z, Functione0768 + jp Functione07db + +Functione0768: ; e0768 + ld c, $12 + ld de, SFX_2ND_PLACE + jp Functione07eb +; e0770 + + +Functione0770: ; e0770 + ld e, $0 + jr Functione07ce + +Functione0774: ; e0774 + ld e, $1 + jr Functione07ce + +Functione0778: ; e0778 + ld e, $2 + jr Functione07ce + +Functione077c: ; e077c + ld e, $3 + jr Functione07ce + +Functione0780: ; e0780 + ld e, $4 + jr Functione07ce + +Functione0784: ; e0784 + ld e, $5 + jr Functione07ce + +Functione0788: ; e0788 + ld e, $6 + jr Functione07ce + +Functione078c: ; e078c + ld e, $7 + jr Functione07ce + +Functione0790: ; e0790 + ld e, $8 + jr Functione07ce + +Functione0794: ; e0794 + ld e, $9 + jr Functione07ce + +Functione0798: ; e0798 + ld e, $a + jr Functione07ce + +Functione079c: ; e079c + ld e, $b + jr Functione07ce + +Functione07a0: ; e07a0 + ld e, $c + jr Functione07ce + +Functione07a4: ; e07a4 + ld e, $d + jr Functione07ce + +Functione07a8: ; e07a8 + ld e, $e + jr Functione07ce + +Functione07ac: ; e07ac + ld e, $f + jr Functione07ce + +Functione07b0: ; e07b0 + ld e, $10 + jr Functione07ce + +Functione07b4: ; e07b4 + ld e, $11 + jr Functione07ce + +Functione07b8: ; e07b8 + ld e, $12 + jr Functione07ce + +Functione07bc: ; e07bc + ld e, $13 + jr Functione07ce + +Functione07c0: ; e07c0 + ld e, $14 + jr Functione07ce + +Functione07c4: ; e07c4 + ld e, $15 + jr Functione07ce + +Functione07c8: ; e07c8 + ld e, $16 + jr Functione07ce + +Functione07cc: ; e07cc + ld e, $17 + +Functione07ce: ; e07ce + ld a, [CurEnemyMoveNum] + cp e + jr nz, Functione07db + ld c, $48 + ld de, SFX_2ND_PLACE + jr Functione07eb + +Functione07db: ; e07db + ld de, SFX_WRONG + call PlaySFX + ld hl, UnknownText_0xe0816 + call Functione0489 + call WaitSFX + ret + +Functione07eb: ; e07eb + push bc + push de + ld hl, UnknownText_0xe0811 + call Functione0489 + pop de + call PlaySFX + call WaitSFX + pop bc +.asm_e07fb + push bc + call Functione0833 + jr c, .asm_e0804 + call Functione081b + +.asm_e0804 + call Functione049c + ld c, 2 + call DelayFrames + pop bc + dec c + jr nz, .asm_e07fb + ret +; e0811 + +UnknownText_0xe0811: ; 0xe0811 + ; Yeah! + text_jump UnknownText_0x1c5813 + db "@" +; 0xe0816 + +UnknownText_0xe0816: ; 0xe0816 + ; Darn… + text_jump UnknownText_0x1c581a + db "@" +; 0xe081b + +Functione081b: ; e081b + ld a, [Coins] + ld h, a + ld a, [Coins + 1] + ld l, a + inc hl + ld a, h + ld [Coins], a + ld a, l + ld [Coins + 1], a + ld de, SFX_PAY_DAY + call PlaySFX + ret +; e0833 + +Functione0833: ; e0833 + ld a, [Coins] + cp 9999 / $100 + jr c, .asm_e0847 + jr z, .asm_e083e + jr .asm_e0845 + +.asm_e083e + ld a, [Coins + 1] + cp 9999 % $100 + jr c, .asm_e0847 + +.asm_e0845 + scf + ret + +.asm_e0847 + and a + ret +; e0849 + +Functione0849: ; e0849 + call Functione03ac + ld hl, Unknown_e0853 + call Functione0509 + ret +; e0853 + +Unknown_e0853: ; e0853 + db 18 + db $00, $00, $04, $00 + db $00, $08, $06, $00 + db $00, $10, $06, $00 + db $00, $18, $06, $00 + db $00, $20, $04, $20 + db $08, $00, $05, $00 + db $08, $20, $05, $20 + db $10, $00, $05, $00 + db $10, $20, $05, $20 + db $18, $00, $05, $00 + db $18, $20, $05, $20 + db $20, $00, $05, $00 + db $20, $20, $05, $20 + db $28, $00, $04, $40 + db $28, $08, $06, $40 + db $28, $10, $06, $40 + db $28, $18, $06, $40 + db $28, $20, $04, $60 +; e089c + +Functione089c: ; e089c + ld hl, hJoyLast + ld a, [hl] + and D_LEFT + jp nz, Functione08b8 + ld a, [hl] + and D_RIGHT + jp nz, Functione08ef + ld a, [hl] + and D_UP + jp nz, Functione090a + ld a, [hl] + and D_DOWN + jp nz, Functione093d + ret +; e08b8 + +Functione08b8: ; e08b8 + ld hl, wcf65 + ld a, [wcf64] + and a + jr z, .asm_e08d5 + cp $1 + jr z, .asm_e08cc + ld a, [hl] + and a + ret z + dec [hl] + jp Functione0959 + +.asm_e08cc + ld a, [hl] + cp $3 + jr c, .asm_e08e2 + dec [hl] + jp Functione0959 + +.asm_e08d5 + ld a, [hl] + and $e + ld [hl], a + cp $3 + jr c, .asm_e08e2 +rept 2 + dec [hl] +endr + jp Functione0959 + +.asm_e08e2 + ld a, $2 + ld [wcf64], a + ld a, $1 + ld [wcf65], a + jp Functione0959 +; e08ef + +Functione08ef: ; e08ef + ld hl, wcf65 + ld a, [wcf64] + and a + jr z, .asm_e08ff + ld a, [hl] + cp $5 + ret nc + inc [hl] + jr Functione0959 + +.asm_e08ff + ld a, [hl] + and $e + ld [hl], a + cp $4 + ret nc +rept 2 + inc [hl] +endr + jr Functione0959 + +Functione090a: ; e090a + ld hl, wcf64 + ld a, [wcf65] + and a + jr z, .asm_e0925 + cp $1 + jr z, .asm_e091d + ld a, [hl] + and a + ret z + dec [hl] + jr Functione0959 + +.asm_e091d + ld a, [hl] + cp $3 + jr c, .asm_e0931 + dec [hl] + jr Functione0959 + +.asm_e0925 + ld a, [hl] + and $e + ld [hl], a + cp $3 + jr c, .asm_e0931 +rept 2 + dec [hl] +endr + jr Functione0959 + +.asm_e0931 + ld a, $1 + ld [wcf64], a + ld a, $2 + ld [wcf65], a + jr Functione0959 + +Functione093d: ; e093d + ld hl, wcf64 + ld a, [wcf65] + and a + jr z, .asm_e0950 + ld hl, wcf64 + ld a, [hl] + cp $7 + ret nc + inc [hl] + jr Functione0959 + +.asm_e0950 + ld a, [hl] + and $e + ld [hl], a + cp $6 + ret nc +rept 2 + inc [hl] +endr + +Functione0959: ; e0959 + ld de, SFX_POKEBALLS_PLACED_ON_TABLE + call PlaySFX + ret +; e0960 + +Functione0960: ; e0960 + call ClearSprites + ld a, [hCGB] + and a + jr nz, .asm_e096d + ld a, [hVBlankCounter] + and $4 + ret nz + +.asm_e096d + call Functione0398 +rept 2 + add hl, hl +endr + ld de, Unknown_e0981 + add hl, de + ld a, [hli] + ld c, a + ld a, [hli] + ld b, a + ld a, [hli] + ld h, [hl] + ld l, a + call Functione0509 + ret +; e0981 + +Unknown_e0981: ; e0981 + dbbw $58, $10, Unknown_e0c26 + dbbw $60, $10, Unknown_e0c26 + dbbw $68, $10, Unknown_e0b8d + dbbw $68, $10, Unknown_e0b8d + dbbw $88, $10, Unknown_e0b8d + dbbw $88, $10, Unknown_e0b8d + + dbbw $58, $18, Unknown_e0c26 + dbbw $60, $18, Unknown_e0c26 + dbbw $68, $18, Unknown_e0a5a + dbbw $78, $18, Unknown_e0a5a + dbbw $88, $18, Unknown_e0a5a + dbbw $98, $18, Unknown_e0a5a + + dbbw $58, $28, Unknown_e0b14 + dbbw $60, $28, Unknown_e0ac3 + dbbw $68, $28, Unknown_e0a41 + dbbw $78, $28, Unknown_e0a41 + dbbw $88, $28, Unknown_e0a41 + dbbw $98, $28, Unknown_e0a41 + dbbw $58, $28, Unknown_e0b14 + + dbbw $60, $34, Unknown_e0ac3 + dbbw $68, $34, Unknown_e0a41 + dbbw $78, $34, Unknown_e0a41 + dbbw $88, $34, Unknown_e0a41 + dbbw $98, $34, Unknown_e0a41 + + dbbw $58, $40, Unknown_e0b14 + dbbw $60, $40, Unknown_e0ac3 + dbbw $68, $40, Unknown_e0a41 + dbbw $78, $40, Unknown_e0a41 + dbbw $88, $40, Unknown_e0a41 + dbbw $98, $40, Unknown_e0a41 + dbbw $58, $40, Unknown_e0b14 + + dbbw $60, $4c, Unknown_e0ac3 + dbbw $68, $4c, Unknown_e0a41 + dbbw $78, $4c, Unknown_e0a41 + dbbw $88, $4c, Unknown_e0a41 + dbbw $98, $4c, Unknown_e0a41 + + dbbw $58, $58, Unknown_e0b14 + dbbw $60, $58, Unknown_e0ac3 + dbbw $68, $58, Unknown_e0a41 + dbbw $78, $58, Unknown_e0a41 + dbbw $88, $58, Unknown_e0a41 + dbbw $98, $58, Unknown_e0a41 + dbbw $58, $58, Unknown_e0b14 + + dbbw $60, $64, Unknown_e0ac3 + dbbw $68, $64, Unknown_e0a41 + dbbw $78, $64, Unknown_e0a41 + dbbw $88, $64, Unknown_e0a41 + dbbw $98, $64, Unknown_e0a41 +; e0a41 + +Unknown_e0a41: ; e0a41 + db 6 + db $00, $ff, $00, $80 + db $00, $00, $02, $80 + db $00, $08, $03, $80 + db $05, $ff, $00, $c0 + db $05, $00, $02, $c0 + db $05, $08, $03, $80 + +Unknown_e0a5a: ; e0a5a + db 26 + db $00, $ff, $00, $80 + db $00, $00, $02, $80 + db $00, $08, $00, $a0 + db $08, $ff, $01, $80 + db $08, $08, $01, $a0 + db $10, $ff, $01, $80 + db $10, $08, $03, $80 + db $18, $ff, $01, $80 + db $18, $08, $03, $80 + db $20, $ff, $01, $80 + db $20, $08, $03, $80 + db $28, $ff, $01, $80 + db $28, $08, $03, $80 + db $30, $ff, $01, $80 + db $30, $08, $03, $80 + db $38, $ff, $01, $80 + db $38, $08, $03, $80 + db $40, $ff, $01, $80 + db $40, $08, $03, $80 + db $48, $ff, $01, $80 + db $48, $08, $03, $80 + db $50, $ff, $01, $80 + db $50, $08, $03, $80 + db $51, $ff, $00, $c0 + db $51, $00, $02, $c0 + db $51, $08, $03, $80 + +Unknown_e0ac3: ; e0ac3 + db 20 + db $00, $ff, $00, $80 + db $00, $00, $02, $80 + db $00, $08, $02, $80 + db $00, $10, $03, $80 + db $00, $18, $02, $80 + db $00, $20, $03, $80 + db $00, $28, $02, $80 + db $00, $30, $03, $80 + db $00, $38, $02, $80 + db $00, $40, $03, $80 + db $05, $ff, $00, $c0 + db $05, $00, $02, $c0 + db $05, $08, $02, $c0 + db $05, $10, $03, $80 + db $05, $18, $02, $c0 + db $05, $20, $03, $80 + db $05, $28, $02, $c0 + db $05, $30, $03, $80 + db $05, $38, $02, $c0 + db $05, $40, $03, $80 + +Unknown_e0b14: ; e0b14 + db 30 + db $00, $00, $00, $80 + db $00, $08, $02, $80 + db $00, $10, $02, $80 + db $00, $18, $03, $80 + db $00, $20, $02, $80 + db $00, $28, $03, $80 + db $00, $30, $02, $80 + db $00, $38, $03, $80 + db $00, $40, $02, $80 + db $00, $48, $03, $80 + db $08, $00, $01, $80 + db $08, $18, $03, $80 + db $08, $28, $03, $80 + db $08, $38, $03, $80 + db $08, $48, $03, $80 + db $10, $00, $01, $80 + db $10, $18, $03, $80 + db $10, $28, $03, $80 + db $10, $38, $03, $80 + db $10, $48, $03, $80 + db $11, $00, $00, $c0 + db $11, $08, $02, $c0 + db $11, $10, $02, $c0 + db $11, $18, $03, $80 + db $11, $20, $03, $80 + db $11, $28, $03, $80 + db $11, $30, $03, $80 + db $11, $38, $03, $80 + db $11, $40, $03, $80 + db $11, $48, $03, $80 + +Unknown_e0b8d: ; e0b8d + db 38 + db $00, $ff, $00, $80 + db $00, $18, $00, $a0 + db $08, $ff, $01, $80 + db $08, $18, $01, $a0 + db $10, $ff, $01, $80 + db $10, $18, $01, $a0 + db $18, $ff, $01, $80 + db $18, $08, $03, $80 + db $18, $18, $03, $80 + db $20, $ff, $01, $80 + db $20, $08, $03, $80 + db $20, $18, $03, $80 + db $28, $ff, $01, $80 + db $28, $08, $03, $80 + db $28, $18, $03, $80 + db $30, $ff, $01, $80 + db $30, $08, $03, $80 + db $30, $18, $03, $80 + db $38, $ff, $01, $80 + db $38, $08, $03, $80 + db $38, $18, $03, $80 + db $40, $ff, $01, $80 + db $40, $08, $03, $80 + db $40, $18, $03, $80 + db $48, $ff, $01, $80 + db $48, $08, $03, $80 + db $48, $18, $03, $80 + db $50, $ff, $01, $80 + db $50, $08, $03, $80 + db $50, $18, $03, $80 + db $58, $ff, $01, $80 + db $58, $08, $03, $80 + db $58, $18, $03, $80 + db $59, $ff, $00, $c0 + db $59, $00, $02, $c0 + db $59, $08, $03, $c0 + db $59, $10, $02, $c0 + db $59, $18, $03, $e0 + +Unknown_e0c26: ; e0c26 + db 4 + db $00, $00, $00, $80 + db $00, $08, $00, $a0 + db $08, $00, $00, $c0 + db $08, $08, $00, $e0 +; e0c37 + +Functione0c37: ; e0c37 (38:4c37) + ld a, [hCGB] + and a + ret z + hlcoord 0, 0, AttrMap + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + xor a + call ByteFill + hlcoord 12, 1, AttrMap + lb bc, 2, 2 + ld a, $1 + call Functione04e7 + hlcoord 14, 1, AttrMap + lb bc, 2, 2 + ld a, $2 + call Functione04e7 + hlcoord 16, 1, AttrMap + lb bc, 2, 2 + ld a, $3 + call Functione04e7 + hlcoord 18, 1, AttrMap + lb bc, 2, 2 + ld a, $4 + call Functione04e7 + hlcoord 9, 0, AttrMap + lb bc, 12, 1 + ld a, $1 + call Functione04e7 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, Palette_e0c93 + ld de, Unkn1Pals + ld bc, $48 + call CopyBytes + pop af + ld [rSVBK], a + ret +; e0c93 (38:4c93) + +Palette_e0c93: ; e0c93 + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 29, 25, 00 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 13, 30 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 08, 17, 30 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 08, 31, 08 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 17, 07, 31 + RGB 06, 19, 08 + RGB 00, 00, 00 + + RGB 31, 31, 31 + RGB 31, 31, 31 + RGB 31, 00, 00 + RGB 31, 00, 00 +; e0cdb + +LZ_e0cdb: ; e0cdb +INCBIN "gfx/unknown/0e0cdb.2bpp.lz" + +GFX_e0cf6: ; e0cf6 +INCBIN "gfx/unknown/0e0cf6.2bpp" + +GFX_e0d06: ; e0d06 +INCBIN "gfx/unknown/0e0d06.2bpp" + +LZ_e0d16: ; e0d16 +INCBIN "gfx/unknown/0e0d16.2bpp.lz" + +LZ_e0ea8: ; e0ea8 +INCBIN "gfx/unknown/0e0ea8.2bpp.lz" + +Unknown_e110c: ; e110c + db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27 + db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b + db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d + db $ef, $25, $04, $00, $01, $00, $01, $00, $01, $00, $01 + db $ef, $05, $14, $10, $11, $10, $11, $10, $11, $10, $11 + db $ef, $16, $24, $20, $21, $20, $21, $20, $21, $20, $21 + db $ef, $25, $04, $00, $02, $00, $02, $00, $02, $00, $02 + db $ef, $05, $14, $10, $12, $10, $12, $10, $12, $10, $12 + db $ef, $16, $24, $20, $22, $20, $22, $20, $22, $20, $22 + db $ef, $25, $04, $00, $03, $00, $03, $00, $03, $00, $03 + db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13 + db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23 +; e1190 + +Functione1190: ; e1190 + ld a, [hInMenu] + push af + ld a, $1 + ld [hInMenu], a + call ClearBGPalettes + call ClearTileMap + call ClearSprites + xor a + ld [hBGMapMode], a + call DisableLCD + ld hl, wc608 + ld bc, $1e0 + xor a + call ByteFill + ld hl, GFX_e17c5 + ld de, VTiles1 tile $60 + ld bc, $40 + call CopyBytes + ld hl, LZ_e1805 + ld de, VTiles1 tile $6d + call Decompress + call Functione17a3 + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $ee + call ByteFill + hlcoord 4, 3 + lb bc, 12, 12 + ld a, $ef + call Functione13ee + call Functione124e + call Functione13fe + call Functione127d + xor a + ld [hSCY], a + ld [hSCX], a + ld [rWY], a + ld [wJumptableIndex], a + ld [wcf64], a + ld [wcf65], a + ld [wcf66], a + ld a, $93 + ld [rLCDC], a + call WaitBGMap + ld b, $18 + call GetSGBLayout + ld a, $e4 + call DmgToCgbBGPals + ld a, $24 + call Functioncf8 + xor a + ld [wd0ec], a + call DelayFrame +.asm_e1217 + call JoyTextDelay + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_e123d + call Functione12ca + ld a, [wcf64] + and a + jr nz, .asm_e1230 + ld a, [hVBlankCounter] + and $10 + jr z, .asm_e1235 + +.asm_e1230 + call Functione14d9 + jr .asm_e1238 + +.asm_e1235 + call ClearSprites + +.asm_e1238 + call DelayFrame + jr .asm_e1217 + +.asm_e123d + pop af + ld [hInMenu], a + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld a, $e3 + ld [rLCDC], a + ret +; e124e + +Functione124e: ; e124e + ld c, $1 + ld b, $10 +.asm_e1252 + call Random + and $f + ld hl, Unknown_e126d + ld e, a + ld d, $0 + add hl, de + ld e, [hl] + ld hl, wc6d0 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e1252 + ld [hl], c + inc c + dec b + jr nz, .asm_e1252 + ret +; e126d + +Unknown_e126d: ; e126d + db $00, $01, $02, $03 + db $04, $05, $06, $0b + db $0c, $11, $12, $17 + db $18, $1d, $1e, $23 +; e127d + +Functione127d: ; e127d + call Functione128d + hlcoord 5, 16 + ld a, $f6 + ld c, $a +.asm_e1287 + ld [hli], a + inc a + dec c + jr nz, .asm_e1287 + ret +; e128d + +Functione128d: ; e128d + hlcoord 4, 15 + ld a, $f0 + ld [hli], a + ld bc, $a + ld a, $f1 + call ByteFill + hlcoord 15, 15 + ld a, $f2 + ld [hli], a + hlcoord 4, 16 + ld a, $f3 + ld [hli], a + ld bc, $a + ld a, $ef + call ByteFill + hlcoord 15, 16 + ld a, $f3 + ld [hli], a + hlcoord 4, 17 + ld a, $f4 + ld [hli], a + ld bc, $a + ld a, $f1 + call ByteFill + hlcoord 15, 17 + ld a, $f5 + ld [hl], a + ret +; e12ca + +Functione12ca: ; e12ca + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_e12d9 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e12d9 + +Jumptable_e12d9: ; e12d9 + dw Functione12db +; e12db + +Functione12db: ; e12db + ld a, [hJoyPressed] + and START + jp nz, Functione13de + ld a, [hJoyPressed] + and A_BUTTON + jp nz, Functione1376 + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .asm_e1301 + ld a, [hl] + and D_DOWN + jr nz, .asm_e130d + ld a, [hl] + and D_LEFT + jr nz, .asm_e1325 + ld a, [hl] + and D_RIGHT + jr nz, .asm_e1345 + ret + +.asm_e1301 + ld hl, wcf65 + ld a, [hl] + cp $6 + ret c + sub $6 + ld [hl], a + jr .asm_e1364 + +.asm_e130d + ld hl, wcf65 + ld a, [hl] + cp $19 + ret z + cp $1a + ret z + cp $1b + ret z + cp $1c + ret z + cp $1e + ret nc + add $6 + ld [hl], a + jr .asm_e1364 + +.asm_e1325 + ld hl, wcf65 + ld a, [hl] + and a + ret z + cp $6 + ret z + cp $c + ret z + cp $12 + ret z + cp $18 + ret z + cp $1e + ret z + cp $23 + jr z, .asm_e1341 + dec [hl] + jr .asm_e1364 + +.asm_e1341 + ld [hl], $1e + jr .asm_e1364 + +.asm_e1345 + ld hl, wcf65 + ld a, [hl] + cp $5 + ret z + cp $b + ret z + cp $11 + ret z + cp $17 + ret z + cp $1d + ret z + cp $23 + ret z + cp $1e + jr z, .asm_e1362 + inc [hl] + jr .asm_e1364 + +.asm_e1362 + ld [hl], $23 + +.asm_e1364 + ld a, [wcf64] + and a + jr nz, .asm_e136f + ld de, SFX_POUND + jr .asm_e1372 + +.asm_e136f + ld de, SFX_MOVE_PUZZLE_PIECE + +.asm_e1372 + call PlaySFX + ret +; e1376 + +Functione1376: ; e1376 + ld a, [wcf64] + and a + jr nz, .asm_e139f + call Functione1475 + and a + jr z, Functione13e4 + ld de, SFX_MEGA_KICK + call PlaySFX + ld [hl], $0 + ld [wcf66], a + call Functione14d9 + call Functione1441 + call WaitBGMap + call WaitSFX + ld a, $1 + ld [wcf64], a + ret + +.asm_e139f + call Functione1475 + and a + jr nz, Functione13e4 + ld de, SFX_PLACE_PUZZLE_PIECE_DOWN + call PlaySFX + ld a, [wcf66] + ld [hl], a + call Functione141f + call WaitBGMap + xor a + ld [wcf66], a + call Functione14d9 + xor a + ld [wcf64], a + call WaitSFX + call Functione14a0 + ret nc + call Functione128d + call ClearSprites + ld de, SFX_1ST_PLACE + call PlaySFX + call WaitSFX + call SimpleWaitPressAorB + ld a, $1 + ld [wd0ec], a + +Functione13de: ; e13de + ld hl, wJumptableIndex + set 7, [hl] + ret + +Functione13e4: ; e13e4 + ld de, SFX_WRONG + call PlaySFX + call WaitSFX + ret +; e13ee + +Functione13ee: ; e13ee + ld de, SCREEN_WIDTH +.asm_e13f1 + push bc + push hl +.asm_e13f3 + ld [hli], a + dec c + jr nz, .asm_e13f3 + pop hl + add hl, de + pop bc + dec b + jr nz, .asm_e13f1 + ret +; e13fe + +Functione13fe: ; e13fe + xor a + ld [wcf65], a + ld c, $24 +.asm_e1404 + push bc + call Functione1475 + ld [wcf66], a + and a + jr z, .asm_e1413 + call Functione141f + jr .asm_e1416 + +.asm_e1413 + call Functione1441 + +.asm_e1416 + ld hl, wcf65 + inc [hl] + pop bc + dec c + jr nz, .asm_e1404 + ret +; e141f + +Functione141f: ; e141f + ld a, $2 + call Functione1463 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + call Functione1481 + pop hl + ld de, SCREEN_WIDTH + ld b, $3 +.asm_e1431 + ld c, $3 + push hl +.asm_e1434 + ld [hli], a + inc a + dec c + jr nz, .asm_e1434 + add $9 + pop hl + add hl, de + dec b + jr nz, .asm_e1431 + ret +; e1441 + +Functione1441: ; e1441 + ld a, $2 + call Functione1463 + ld a, [hli] + ld h, [hl] + ld l, a + push hl + ld a, $4 + call Functione1463 + ld a, [hl] + pop hl + ld de, SCREEN_WIDTH + ld b, $3 +.asm_e1456 + ld c, $3 + push hl +.asm_e1459 + ld [hli], a + dec c + jr nz, .asm_e1459 + pop hl + add hl, de + dec b + jr nz, .asm_e1456 + ret +; e1463 + +Functione1463: ; e1463 + ld e, a + ld d, 0 + ld hl, Unknown_e1559 + add hl, de + ld a, [wcf65] + ld e, a +rept 4 + add hl, de +endr +rept 2 + add hl, de +endr + ret +; e1475 + +Functione1475: ; e1475 + ld hl, wc6d0 + ld a, [wcf65] + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + ret +; e1481 + +Functione1481: ; e1481 + ld a, [wcf66] + ld hl, Unknown_e148f + add l + ld l, a + ld a, $0 + adc h + ld h, a + ld a, [hl] + ret +; e148f + +Unknown_e148f: ; e148f + db $e0 + db $00, $03, $06, $09 + db $24, $27, $2a, $2d + db $48, $4b, $4e, $51 + db $6c, $6f, $72, $75 +; e14a0 + +Functione14a0: ; e14a0 + ld hl, Unknown_e14b5 + ld de, wc6d0 + ld c, $24 +.asm_e14a8 + ld a, [de] + cp [hl] + jr nz, .asm_e14b3 + inc de + inc hl + dec c + jr nz, .asm_e14a8 + scf + ret + +.asm_e14b3 + and a + ret +; e14b5 + +Unknown_e14b5: ; e14b5 + db $00, $00, $00, $00, $00, $00 + db $00, $01, $02, $03, $04, $00 + db $00, $05, $06, $07, $08, $00 + db $00, $09, $0a, $0b, $0c, $00 + db $00, $0d, $0e, $0f, $10, $00 + db $00, $00, $00, $00, $00, $00 +; e14d9 + +Functione14d9: ; e14d9 + call Functione1481 + ld [wd002], a + xor a + call Functione1463 + ld a, [hli] + ld b, [hl] + ld c, a + ld a, [wd002] + cp $e0 + jr z, .asm_e14f2 + ld hl, Unknown_e150f + jr .asm_e14f5 + +.asm_e14f2 + ld hl, Unknown_e1534 + +.asm_e14f5 + ld de, Sprites +.asm_e14f8 + ld a, [hli] + cp $ff + ret z + add b + ld [de], a + inc de + ld a, [hli] + add c + ld [de], a + inc de + ld a, [wd002] + add [hl] + ld [de], a + inc hl + inc de + ld a, [hli] + ld [de], a + inc de + jr .asm_e14f8 +; e150f + +Unknown_e150f: ; e150f + db $f4, $f4, $00, $00 + db $f4, $fc, $01, $00 + db $f4, $04, $02, $00 + db $fc, $f4, $0c, $00 + db $fc, $fc, $0d, $00 + db $fc, $04, $0e, $00 + db $04, $f4, $18, $00 + db $04, $fc, $19, $00 + db $04, $04, $1a, $00 + db $ff + +Unknown_e1534: ; e1534 + db $f4, $f4, $00, $00 + db $f4, $fc, $01, $00 + db $f4, $04, $00, $20 + db $fc, $f4, $02, $00 + db $fc, $fc, $03, $00 + db $fc, $04, $02, $20 + db $04, $f4, $00, $40 + db $04, $fc, $01, $40 + db $04, $04, $00, $60 + db $ff + +Unknown_e1559: ; e1559 + +macro_e1559: macro + db \1, \2 + dwcoord \3, \4 + db \5, \6 +endm + + macro_e1559 $1c, $1c, 1, 0, $ee, $00 + macro_e1559 $34, $1c, 4, 0, $ee, $00 + macro_e1559 $4c, $1c, 7, 0, $ee, $00 + macro_e1559 $64, $1c, 10, 0, $ee, $00 + macro_e1559 $7c, $1c, 13, 0, $ee, $00 + macro_e1559 $94, $1c, 16, 0, $ee, $00 + macro_e1559 $1c, $34, 1, 3, $ee, $00 + macro_e1559 $34, $34, 4, 3, $ef, $00 + macro_e1559 $4c, $34, 7, 3, $ef, $00 + macro_e1559 $64, $34, 10, 3, $ef, $00 + macro_e1559 $7c, $34, 13, 3, $ef, $00 + macro_e1559 $94, $34, 16, 3, $ee, $00 + macro_e1559 $1c, $4c, 1, 6, $ee, $00 + macro_e1559 $34, $4c, 4, 6, $ef, $00 + macro_e1559 $4c, $4c, 7, 6, $ef, $00 + macro_e1559 $64, $4c, 10, 6, $ef, $00 + macro_e1559 $7c, $4c, 13, 6, $ef, $00 + macro_e1559 $94, $4c, 16, 6, $ee, $00 + macro_e1559 $1c, $64, 1, 9, $ee, $00 + macro_e1559 $34, $64, 4, 9, $ef, $00 + macro_e1559 $4c, $64, 7, 9, $ef, $00 + macro_e1559 $64, $64, 10, 9, $ef, $00 + macro_e1559 $7c, $64, 13, 9, $ef, $00 + macro_e1559 $94, $64, 16, 9, $ee, $00 + macro_e1559 $1c, $7c, 1, 12, $ee, $00 + macro_e1559 $34, $7c, 4, 12, $ef, $00 + macro_e1559 $4c, $7c, 7, 12, $ef, $00 + macro_e1559 $64, $7c, 10, 12, $ef, $00 + macro_e1559 $7c, $7c, 13, 12, $ef, $00 + macro_e1559 $94, $7c, 16, 12, $ee, $00 + macro_e1559 $1c, $94, 1, 15, $ee, $00 + macro_e1559 $34, $94, 4, 15, $ee, $00 + macro_e1559 $4c, $94, 7, 15, $ee, $00 + macro_e1559 $64, $94, 10, 15, $ee, $00 + macro_e1559 $7c, $94, 13, 15, $ee, $00 + macro_e1559 $94, $94, 16, 15, $ee, $00 + +Functione1631: ; e1631 + ld hl, VTiles2 + ld de, VTiles0 + ld b, $6 +.asm_e1639 + push bc + push hl + push hl + call Functione1654 + pop hl + ld bc, 8 + add hl, bc + call Functione1654 + pop hl + ld bc, $60 + add hl, bc + pop bc + dec b + jr nz, .asm_e1639 + call Functione16c7 + ret +; e1654 + +Functione1654: ; e1654 + ld c, $6 +.asm_e1656 + push bc + push hl + push hl + ld c, $4 +.asm_e165b + push bc + ld a, [hli] + and $f0 + swap a + call Functione16aa + ld c, a + ld a, [hli] + and $f0 + swap a + call Functione16aa + ld b, a + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + pop bc + dec c + jr nz, .asm_e165b + pop hl + ld c, $4 +.asm_e1681 + push bc + ld a, [hli] + and $f + call Functione16aa + ld c, a + ld a, [hli] + and $f + call Functione16aa + ld b, a + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + ld a, c + ld [de], a + inc de + ld a, b + ld [de], a + inc de + pop bc + dec c + jr nz, .asm_e1681 + pop hl + ld bc, $10 + add hl, bc + pop bc + dec c + jr nz, .asm_e1656 + ret +; e16aa + +Functione16aa: ; e16aa + push hl + ld hl, Unknown_e16b7 + add l + ld l, a + ld a, 0 + adc h + ld h, a + ld a, [hl] + pop hl + ret +; e16b7 + +Unknown_e16b7: ; e16b7 + db $00, $03, $0c, $0f + db $30, $33, $3c, $3f + db $c0, $c3, $cc, $cf + db $f0, $f3, $fc, $ff +; e16c7 + +Functione16c7: ; e16c7 + ld hl, Unknown_e1703 + ld a, $8 +.asm_e16cc + push af + push hl + ld a, [hli] + ld e, a + ld a, [hli] + ld d, a + ld a, [hli] + ld h, [hl] + ld l, a + call Functione16e2 + pop hl +rept 4 + inc hl +endr + pop af + dec a + jr nz, .asm_e16cc + ret +; e16e2 + +Functione16e2: ; e16e2 + lb bc, 4, 4 +.asm_e16e5 + push bc +.asm_e16e6 + push de + push hl + ld b, $10 +.asm_e16ea + ld a, [de] + or [hl] + ld [hli], a + inc de + dec b + jr nz, .asm_e16ea + pop hl + ld de, $30 + add hl, de + pop de + dec c + jr nz, .asm_e16e6 + ld bc, $180 + add hl, bc + pop bc + dec b + jr nz, .asm_e16e5 + ret +; e1703 + +Unknown_e1703: ; e1703 + dw GFX_e1723 + $00, $8000 + dw GFX_e1723 + $10, $8010 + dw GFX_e1723 + $20, $8020 + dw GFX_e1723 + $30, $80c0 + dw GFX_e1723 + $40, $80e0 + dw GFX_e1723 + $50, $8180 + dw GFX_e1723 + $60, $8190 + dw GFX_e1723 + $70, $81a0 +; e1723 + +GFX_e1723: ; e1723 +INCBIN "gfx/unknown/0e1723.2bpp" + +Functione17a3: ; e17a3 + ld a, [ScriptVar] + and 3 + ld e, a + ld d, 0 + ld hl, Unknown_e17bd +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, VTiles2 + call Decompress + call Functione1631 + ret +; e17bd + +Unknown_e17bd: ; e17bd + dw LZ_e1bab + dw LZ_e1c9b + dw LZ_e19fb + dw LZ_e18ab +; e17c5 + +GFX_e17c5: ; e17c5 +INCBIN "gfx/unknown/0e17c5.2bpp" + +LZ_e1805: ; e1805 +INCBIN "gfx/unknown/0e1805.2bpp.lz" + +LZ_e18ab: ; e18ab +INCBIN "gfx/unknown/0e18ab.2bpp.lz" + +LZ_e19fb: ; e19fb +INCBIN "gfx/unknown/0e19fb.2bpp.lz" + +LZ_e1bab: ; e1bab +INCBIN "gfx/unknown/0e1bab.2bpp.lz" + +LZ_e1c9b: ; e1c9b +INCBIN "gfx/unknown/0e1c9b.2bpp.lz" diff --git a/engine/credits.asm b/engine/credits.asm index f03950d69..3cee62e13 100644 --- a/engine/credits.asm +++ b/engine/credits.asm @@ -131,7 +131,7 @@ Function109847:: ; 109847 ld a, $5 ld [rSVBK], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites @@ -210,7 +210,7 @@ Function109847:: ; 109847 jr .asm_1098de .asm_1098ee - call WhiteBGMap + call ClearBGPalettes xor a ld [hLCDStatCustom], a ld [hBGMapAddress], a diff --git a/engine/diploma.asm b/engine/diploma.asm index 86a9a6ceb..7699cf930 100644 --- a/engine/diploma.asm +++ b/engine/diploma.asm @@ -6,7 +6,7 @@ Function1dd702: ; 1dd702 ; 1dd709 Function1dd709: ; 1dd709 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD diff --git a/engine/dummy_game.asm b/engine/dummy_game.asm new file mode 100755 index 000000000..86d505e0e --- /dev/null +++ b/engine/dummy_game.asm @@ -0,0 +1,615 @@ +_DummyGame: ; e1e5b (38:5e5b) + call Functione1e67 + call DelayFrame +.asm_e1e61 + call Functione1ebb + jr nc, .asm_e1e61 + ret + +Functione1e67: ; e1e67 (38:5e67) + call DisableLCD + ld b, $8 + call GetSGBLayout + callab Function8cf53 + ld hl, LZ_e2221 + ld de, VTiles2 tile $00 + call Decompress + ld hl, Unknown_e00ed + ld de, VTiles0 tile $00 + ld bc, $40 + ld a, BANK(Unknown_e00ed) + call FarCopyBytes + ld a, $8 + ld hl, wc300 + ld [hli], a + ld [hl], $0 + hlcoord 0, 0 + ld bc, SCREEN_HEIGHT * SCREEN_WIDTH + xor a + call ByteFill + xor a + ld [hSCY], a + ld [hSCX], a + ld [rWY], a + ld [wJumptableIndex], a + ld a, $1 + ld [hBGMapMode], a + ld a, $e3 + ld [rLCDC], a + ld a, $e4 + call DmgToCgbBGPals + ld a, $e0 + call Functioncf8 + ret + +Functione1ebb: ; e1ebb (38:5ebb) + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_e1ed0 + call Functione1ed2 + callab Function8cf69 + call DelayFrame + and a + ret +.asm_e1ed0 + scf + ret + +Functione1ed2: ; e1ed2 (38:5ed2) + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_e1ee1 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; e1ee1 (38:5ee1) + +Jumptable_e1ee1: ; e1ee1 + dw Functione1ef3 + dw Functione1efb + dw Functione1f1c + dw Functione1f42 + dw Functione1f61 + dw Functione1f8b + dw Functione1fba + dw Functione1fcc + dw Functione2000 +; e1ef3 + +Functione1ef3: ; e1ef3 + call Functione2152 + ld hl, wJumptableIndex + inc [hl] + ret +; e1efb + +Functione1efb: ; e1efb + call Functione00ed + jr nc, .asm_e1f06 + ld hl, wJumptableIndex + set 7, [hl] + ret + +.asm_e1f06 + call Functione209d + ld hl, wJumptableIndex + inc [hl] + xor a + ld [wc708], a + ld hl, wc703 +rept 4 + ld [hli], a +endr + ld [hl], a + ld [wc709], a + +Functione1f1c: ; e1f1c + ld hl, wc708 + ld a, [hl] + cp $2d + jr nc, .asm_e1f30 + inc [hl] + call Functione2183 + xor a + ld [wc6fd], a + call Functione2128 + ret + +.asm_e1f30 + ld de, $341c + ld a, $c + call Function3b2a + ld a, $5 + ld [wc702], a + ld hl, wJumptableIndex + inc [hl] + ret +; e1f42 + +Functione1f42: ; e1f42 + ld a, [wc702] + hlcoord 17, 0 + add $f6 + ld [hl], a + ld hl, wc702 + ld a, [hl] + and a + jr nz, .asm_e1f58 + ld a, $7 + ld [wJumptableIndex], a + ret + +.asm_e1f58 + dec [hl] + xor a + ld [wcf64], a + ld hl, wJumptableIndex + inc [hl] + +Functione1f61: ; e1f61 + ld a, [wcf64] + and a + ret z + dec a + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld a, [hl] + cp $ff + ret z + ld [wc6fd], a + ld [wPlayerMinimized], a + ld a, e + ld [EnemyScreens], a + call Functione2183 + call Functione2128 + xor a + ld [wcf64], a + ld hl, wJumptableIndex + inc [hl] + ret +; e1f8b + +Functione1f8b: ; e1f8b + ld a, [wcf64] + and a + ret z + dec a + ld hl, EnemyScreens + cp [hl] + ret z + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld a, [hl] + cp $ff + ret z + ld [wc6fd], a + ld [PlayerScreens], a + ld a, e + ld [wc701], a + call Functione2183 + call Functione2128 + ld a, $40 + ld [wc708], a + ld hl, wJumptableIndex + inc [hl] + +Functione1fba: ; e1fba + ld hl, wc708 + ld a, [hl] + and a + jr z, .asm_e1fc3 + dec [hl] + ret + +.asm_e1fc3 + call Functione2010 + ld a, $3 + ld [wJumptableIndex], a + ret +; e1fcc + +Functione1fcc: ; e1fcc + ld a, [hJoypadPressed] + and A_BUTTON + ret z + xor a + ld [wc708], a +.asm_e1fd5 + ld hl, wc708 + ld a, [hl] + cp $2d + jr nc, .asm_e1ff9 + inc [hl] + push af + call Functione2183 + pop af + push hl + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld a, [hl] + pop hl + cp $ff + jr z, .asm_e1fd5 + ld [wc6fd], a + call Functione2128 + jr .asm_e1fd5 + +.asm_e1ff9 + call WaitPressAorB_BlinkCursor + ld hl, wJumptableIndex + inc [hl] + +Functione2000: ; e2000 + call Functione00ed + jr nc, .asm_e200b + ld hl, wJumptableIndex + set 7, [hl] + ret + +.asm_e200b + xor a + ld [wJumptableIndex], a + ret +; e2010 + +Functione2010: ; e2010 + ld hl, wPlayerMinimized + ld a, [hli] + cp [hl] + jr nz, .asm_e2066 + ld a, [EnemyScreens] + call Functione2183 + call Functione2142 + ld a, [wc701] + call Functione2183 + call Functione2142 + ld a, [EnemyScreens] + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld [hl], $ff + ld a, [wc701] + ld e, a + ld d, $0 + ld hl, wc6d0 + add hl, de + ld [hl], $ff + ld hl, wc703 +.asm_e2044 + ld a, [hli] + and a + jr nz, .asm_e2044 + dec hl + ld a, [wPlayerMinimized] + ld [hl], a + ld [wc6fd], a + ld hl, wc709 + ld e, [hl] +rept 2 + inc [hl] +endr + ld d, $0 + hlcoord 5, 0 + add hl, de + call Functione2128 + ld hl, UnknownText_0xe2083 + call PrintText + ret + +.asm_e2066 + xor a + ld [wc6fd], a + ld a, [EnemyScreens] + call Functione2183 + call Functione2128 + ld a, [wc701] + call Functione2183 + call Functione2128 + ld hl, UnknownText_0xe2098 + call PrintText + ret +; e2083 + +UnknownText_0xe2083: ; 0xe2083 + start_asm +; 0xe2084 + +Functione2084: ; e2084 + push bc + hlcoord 2, 13 + call Functione2128 + ld hl, UnknownText_0xe2093 + pop bc +rept 3 + inc bc +endr + ret +; e2093 + +UnknownText_0xe2093: ; 0xe2093 + ; , yeah! + text_jump UnknownText_0x1c1a5b + db "@" +; 0xe2098 + +UnknownText_0xe2098: ; 0xe2098 + ; Darn… + text_jump UnknownText_0x1c1a65 + db "@" +; 0xe209d + +Functione209d: ; e209d + ld hl, wc6d0 + ld bc, $2d + xor a + call ByteFill + call Functione2101 + ld c, $2 + ld b, [hl] + call Functione20e5 + ld c, $8 + ld b, [hl] + call Functione20e5 + ld c, $4 + ld b, [hl] + call Functione20e5 + ld c, $7 + ld b, [hl] + call Functione20e5 + ld c, $3 + ld b, [hl] + call Functione20e5 + ld c, $6 + ld b, [hl] + call Functione20e5 + ld c, $1 + ld b, [hl] + call Functione20e5 + ld c, $5 + ld hl, wc6d0 + ld b, $2d +.asm_e20db + ld a, [hl] + and a + jr nz, .asm_e20e0 + ld [hl], c + +.asm_e20e0 + inc hl + dec b + jr nz, .asm_e20db + ret +; e20e5 + +Functione20e5: ; e20e5 + push hl + ld de, wc6d0 +.asm_e20e9 + call Random + and $3f + cp $2d + jr nc, .asm_e20e9 + ld l, a + ld h, $0 + add hl, de + ld a, [hl] + and a + jr nz, .asm_e20e9 + ld [hl], c + dec b + jr nz, .asm_e20e9 + pop hl + inc hl + ret +; e2101 + +Functione2101: ; e2101 + ld a, [MenuSelection2] + dec a + ld l, a + ld h, 0 +rept 3 + add hl, hl +endr + ld de, Unknown_e2110 + add hl, de + ret +; e2110 + +Unknown_e2110: ; e2110 + db $02, $03, $06, $06, $06, $08, $08, $06 + db $02, $02, $04, $06, $06, $08, $08, $09 + db $02, $02, $02, $04, $07, $08, $08, $0c +; e2128 + +Functione2128: ; e2128 + ld a, [wc6fd] + sla a + sla a + add $4 + ld [hli], a + inc a + ld [hld], a + inc a + ld bc, SCREEN_WIDTH + add hl, bc + ld [hli], a + inc a + ld [hl], a + ld c, 3 + call DelayFrames + ret +; e2142 + +Functione2142: ; e2142 + ld a, $1 + ld [hli], a + ld [hld], a + ld bc, SCREEN_WIDTH + add hl, bc + ld [hli], a + ld [hl], a + ld c, 3 + call DelayFrames + ret +; e2152 + +Functione2152: ; e2152 + hlcoord 0, 0 + ld bc, SCREEN_WIDTH * SCREEN_HEIGHT + ld a, $1 + call ByteFill + hlcoord 0, 0 + ld de, String_e2177 + call PlaceString + hlcoord 15, 0 + ld de, String_e217d + call PlaceString + ld hl, UnknownText_0xe2176 + call PrintText + ret +; e2176 + +UnknownText_0xe2176: ; 0xe2176 + db "@" +; 0xe2177 + +String_e2177: db "とったもの@" +String_e217d: db "あと かい@" +; e2183 + +Functione2183: ; e2183 + ld d, $0 +.asm_e2185 + sub $9 + jr c, .asm_e218c + inc d + jr .asm_e2185 + +.asm_e218c + add $9 + ld e, a + hlcoord 1, 2 + ld bc, $28 +.asm_e2195 + ld a, d + and a + jr z, .asm_e219d + add hl, bc + dec d + jr .asm_e2195 + +.asm_e219d + sla e + add hl, de + ret +; e21a1 + +Functione21a1: ; e21a1 (38:61a1) + ld a, [wJumptableIndex] + cp $7 + jr nc, .quit + call JoyTextDelay + ld hl, hJoypadPressed ; $ffa3 + ld a, [hl] + and A_BUTTON + jr nz, .pressed_a + ld a, [hl] + and D_LEFT + jr nz, .pressed_left + ld a, [hl] + and D_RIGHT + jr nz, .pressed_right + ld a, [hl] + and D_UP + jr nz, .pressed_up + ld a, [hl] + and D_DOWN + jr nz, .pressed_down + ret + +.quit + ld hl, 0 + add hl, bc + ld [hl], $0 + ret + +.pressed_a + ld hl, $c + add hl, bc + ld a, [hl] + inc a + ld [wcf64], a + ret + +.pressed_left + ld hl, $6 + add hl, bc + ld a, [hl] + and a + ret z + sub $10 + ld [hl], a + ld hl, $c + add hl, bc + dec [hl] + ret + +.pressed_right + ld hl, $6 + add hl, bc + ld a, [hl] + cp $80 + ret z + add $10 + ld [hl], a + ld hl, $c + add hl, bc + inc [hl] + ret + +.pressed_up + ld hl, $7 + add hl, bc + ld a, [hl] + and a + ret z + sub $10 + ld [hl], a + ld hl, $c + add hl, bc + ld a, [hl] + sub $9 + ld [hl], a + ret + +.pressed_down + ld hl, $7 + add hl, bc + ld a, [hl] + cp $40 + ret z + add $10 + ld [hl], a + ld hl, $c + add hl, bc + ld a, [hl] + add $9 + ld [hl], a + ret +; e2221 (38:6221) + +LZ_e2221: ; e2221 +INCBIN "gfx/unknown/0e2221.2bpp.lz" diff --git a/engine/events.asm b/engine/events.asm index ff2f55dbe..3a3c2b9be 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -138,7 +138,7 @@ EnterMap: ; 9673e call ClearAllScriptFlags3 ld a, [hMapEntryMethod] - cp MAPSETUP_07 + cp MAPSETUP_CONNECTION jr nz, .dontset call SetAll_ScriptFlags3 .dontset @@ -322,9 +322,9 @@ PlayerEvents: ; 9681f ld [ScriptRunning], a call DoPlayerEvent ld a, [ScriptRunning] - cp PLAYEREVENT_4 + cp PLAYEREVENT_CONNECTION jr z, .ok2 - cp PLAYEREVENT_9 + cp PLAYEREVENT_JOYCHANGEFACING jr z, .ok2 xor a @@ -1050,8 +1050,10 @@ DoPlayerEvent: ; 96beb ld a, [ScriptRunning] and a ret z + cp PLAYEREVENT_MAPSCRIPT ; run script ret z + cp NUM_PLAYER_EVENTS ret nc @@ -1071,24 +1073,24 @@ endr ; 96c0c PlayerEventScriptPointers: ; 96c0c - dba Invalid_0x96c2d ; 0 - dba SeenByTrainerScript ; 1 - dba TalkToTrainerScript ; 2 - dba FindItemInBallScript ; 3 - dba UnknownScript_0x96c4d ; 4 - dba WarpToNewMapScript ; 5 - dba FallIntoMapScript ; 6 - dba Script_OverworldWhiteout ; 7 - dba HatchEggScript ; 8 - dba UnknownScript_0x96c4f ; 9 - dba Invalid_0x96c2d ; 10 + dba Invalid_0x96c2d ; 0 + dba SeenByTrainerScript ; 1 + dba TalkToTrainerScript ; 2 + dba FindItemInBallScript ; 3 + dba UnknownScript_0x96c4d ; 4 + dba WarpToNewMapScript ; 5 + dba FallIntoMapScript ; 6 + dba Script_OverworldWhiteout ; 7 + dba HatchEggScript ; 8 + dba UnknownScript_0x96c4f ; 9 + dba Invalid_0x96c2d ; 10 ; 96c2d Invalid_0x96c2d: ; 96c2d end ; 96c2e -UnknownScript_0x96c2e: ; 96c2e +; unreferenced end ; 96c2f @@ -1099,12 +1101,12 @@ HatchEggScript: ; 96c2f WarpToNewMapScript: ; 96c34 warpsound - newloadmap MAPSETUP_05 + newloadmap MAPSETUP_DOOR end ; 96c38 FallIntoMapScript: ; 96c38 - newloadmap MAPSETUP_06 + newloadmap MAPSETUP_FALL playsound SFX_KINESIS applymovement PLAYER, MovementData_0x96c48 playsound SFX_STRENGTH @@ -1123,7 +1125,7 @@ LandAfterPitfallScript: ; 96c4a ; 96c4d UnknownScript_0x96c4d: ; 4 - reloadandreturn MAPSETUP_07 + reloadandreturn MAPSETUP_CONNECTION ; 96c4f UnknownScript_0x96c4f: ; 9 diff --git a/engine/events_3.asm b/engine/events_3.asm new file mode 100755 index 000000000..f9f8ffedc --- /dev/null +++ b/engine/events_3.asm @@ -0,0 +1,863 @@ +ReturnFromMapSetupScript:: ; b8000 + xor a + ld [hBGMapMode], a + ; For some reson, GameFreak chose to use a callba here instead of just falling through. + ; No other function in the game references the function at 2E:400A, here labeled + ; ReturnFromMapSetupScript.inefficientcallba. + callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes + ret +; b800a + +.inefficientcallba: ; b800a + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + ld [wCurrentLandmark], a + call .CheckNationalParkGate + jr z, .nationalparkgate + + call GetMapPermission + cp GATE + jr nz, .not_gate + +.nationalparkgate + ld a, -1 + ld [wCurrentLandmark], a + +.not_gate + ld hl, wEnteredMapFromContinue + bit 1, [hl] + res 1, [hl] + jr nz, .dont_do_map_sign + + call .CheckMovingWithinLandmark + jr z, .dont_do_map_sign + ld a, [wCurrentLandmark] + ld [wPreviousLandmark], a + + call .CheckSpecialMap + jr z, .dont_do_map_sign + +; Display for 60 frames + ld a, 60 + ld [wLandmarkSignTimer], a + call LoadMapNameSignGFX + call InitMapNameFrame + callba Function104303 + ret + +.dont_do_map_sign + ld a, [wCurrentLandmark] + ld [wPreviousLandmark], a + ld a, $90 + ld [rWY], a + ld [hWY], a + xor a + ld [hLCDStatCustom], a + ret +; b8064 + +.CheckMovingWithinLandmark: ; b8064 + ld a, [wCurrentLandmark] + ld c, a + ld a, [wPreviousLandmark] + cp c + ret z + cp $0 + ret +; b8070 + +.CheckSpecialMap: ; b8070 + cp -1 + ret z + cp SPECIAL_MAP + ret z + cp RADIO_TOWER + ret z + cp LAV_RADIO_TOWER + ret z + cp UNDERGROUND + ret z + cp INDIGO_PLATEAU + ret z + cp POWER_PLANT + ret z + ld a, $1 + and a + ret +; b8089 + +.CheckNationalParkGate: ; b8089 + ld a, [MapGroup] + cp GROUP_ROUTE_35_NATIONAL_PARK_GATE + ret nz + ld a, [MapNumber] + cp MAP_ROUTE_35_NATIONAL_PARK_GATE + ret z + cp MAP_ROUTE_36_NATIONAL_PARK_GATE + ret +; b8098 + + +PlaceMapNameSign:: ; b8098 (2e:4098) + ld hl, wLandmarkSignTimer + ld a, [hl] + and a + jr z, .disappear + dec [hl] + cp 60 + ret z + cp 59 + jr nz, .skip2 + call InitMapNameFrame + call PlaceMapNameCenterAlign + callba Function104303 +.skip2 + ld a, $80 + ld a, $70 + ld [rWY], a + ld [hWY], a + ret + +.disappear + ld a, $90 + ld [rWY], a + ld [hWY], a + xor a + ld [hLCDStatCustom], a + ret + + +LoadMapNameSignGFX: ; b80c6 + ld de, MapEntryFrameGFX + ld hl, VTiles2 tile $60 + lb bc, BANK(MapEntryFrameGFX), $e + call Get2bpp + ret +; b80d3 + +InitMapNameFrame: ; b80d3 + hlcoord 0, 0 + ld b, 2 + ld c, 18 + call InitMapSignAttrMap + call PlaceMapNameFrame + ret +; b80e1 + + +PlaceMapNameCenterAlign: ; b80e1 (2e:40e1) + ld a, [wCurrentLandmark] + ld e, a + callba GetLandmarkName + call .GetNameLength + ld a, SCREEN_WIDTH + sub c + srl a + ld b, $0 + ld c, a + hlcoord 0, 2 + add hl, bc + ld de, StringBuffer1 + call PlaceString + ret + +.GetNameLength: ; b8101 (2e:4101) + ld c, 0 + push hl + ld hl, StringBuffer1 +.loop + ld a, [hli] + cp "@" + jr z, .stop + cp "%" + jr z, .loop + inc c + jr .loop +.stop + pop hl + ret + + +InitMapSignAttrMap: ; b8115 + ld de, AttrMap - TileMap + add hl, de +rept 2 + inc b +endr +rept 2 + inc c +endr + ld a, $87 +.loop + push bc + push hl +.inner_loop + ld [hli], a + dec c + jr nz, .inner_loop + pop hl + ld de, SCREEN_WIDTH + add hl, de + pop bc + dec b + jr nz, .loop + ret +; b812f + +PlaceMapNameFrame: ; b812f + hlcoord 0, 0 + ; top left + ld a, $61 + ld [hli], a + ; top row + ld a, $62 + call .FillTopBottom + ; top right + ld a, $64 + ld [hli], a + ; left, first line + ld a, $65 + ld [hli], a + ; first line + call .FillMiddle + ; right, first line + ld a, $6b + ld [hli], a + ; left, second line + ld a, $66 + ld [hli], a + ; second line + call .FillMiddle + ; right, second line + ld a, $6c + ld [hli], a + ; bottom left + ld a, $67 + ld [hli], a + ; bottom + ld a, $68 + call .FillTopBottom + ; bottom right + ld a, $6a + ld [hl], a + ret +; b815b + +.FillMiddle: ; b815b + ld c, 18 + ld a, $6d +.loop + ld [hli], a + dec c + jr nz, .loop + ret +; b8164 + +.FillTopBottom: ; b8164 + ld c, 5 + jr .enterloop + +.continueloop +rept 2 + ld [hli], a +endr + +.enterloop + inc a +rept 2 + ld [hli], a +endr + dec a + dec c + jr nz, .continueloop + ret +; b8172 + +CheckForSignpostItems: ; b8172 +; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry. + call GetMapScriptHeaderBank + ld [Buffer1], a +; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed. + ld a, [XCoord] + add SCREEN_WIDTH / 4 + ld [wd1ed], a + ld a, [YCoord] + add SCREEN_HEIGHT / 4 + ld [wd1ec], a +; Get the pointer for the first signpost header in the map... + ld hl, wdc02 + ld a, [hli] + ld h, [hl] + ld l, a +; ... before even checking to see if there are any signposts on this map. + ld a, [wCurrentMapSignpostCount] + and a + jr z, .nosignpostitems +; For i = 1:wCurrentMapSignpostCount... +.loop +; Store the counter in Buffer2, and store the signpost header pointer in the stack. + ld [Buffer2], a + push hl +; Get the Y coordinate of the signpost. + call .GetFarByte + ld e, a +; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost. + ld a, [wd1ec] + sub e + jr c, .next + cp SCREEN_HEIGHT / 2 + jr nc, .next +; Is the X coordinate of the signpost on the screen? If not, go to the next signpost. + call .GetFarByte + ld d, a + ld a, [wd1ed] + sub d + jr c, .next + cp SCREEN_WIDTH / 2 + jr nc, .next +; Is this signpost a hidden item? If not, go to the next signpost. + call .GetFarByte + cp SIGNPOST_ITEM + jr nz, .next +; Has this item already been found? If not, set off the Itemfinder. + ld a, [Buffer1] + call GetFarHalfword + ld a, [Buffer1] + call GetFarHalfword + ld d, h + ld e, l + ld b, CHECK_FLAG + call EventFlagAction + ld a, c + and a + jr z, .itemnearby + +.next +; Restore the signpost header pointer and increment it by the length of a signpost header. + pop hl + ld bc, 5 + add hl, bc +; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range. + ld a, [Buffer2] + dec a + jr nz, .loop + +.nosignpostitems + xor a + ret + +.itemnearby + pop hl + scf + ret +; b81e2 + +.GetFarByte: ; b81e2 + ld a, [Buffer1] + call GetFarByte + inc hl + ret +; b81ea + + +TreeMonEncounter: ; b81ea + callba MobileFn_1060ef + + xor a + ld [TempWildMonSpecies], a + ld [CurPartyLevel], a + + ld hl, TreeMonMaps + call GetTreeMonSet + jr nc, .no_battle + + call GetTreeMons + jr nc, .no_battle + + call GetTreeMon + jr nc, .no_battle + + ld a, BATTLETYPE_TREE + ld [BattleType], a + ld a, 1 + ld [ScriptVar], a + ret + +.no_battle + xor a + ld [ScriptVar], a + ret +; b8219 + +RockMonEncounter: ; b8219 + + xor a + ld [TempWildMonSpecies], a + ld [CurPartyLevel], a + + ld hl, RockMonMaps + call GetTreeMonSet + jr nc, .no_battle + + call GetTreeMons + jr nc, .no_battle + + ld a, 10 + call RandomRange + cp 4 + jr nc, .no_battle + + call SelectTreeMon + jr nc, .no_battle + + ret + +.no_battle + xor a + ret +; b823e + + db $05 ; ???? + +GetTreeMonSet: ; b823f +; Return carry and treemon set in a +; if the current map is in table hl. + ld a, [MapNumber] + ld e, a + ld a, [MapGroup] + ld d, a +.loop + ld a, [hli] + cp -1 + jr z, .not_in_table + + cp d + jr nz, .skip2 + + ld a, [hli] + cp e + jr nz, .skip1 + + jr .in_table + +.skip2 + inc hl +.skip1 + inc hl + jr .loop + +.not_in_table + xor a + ret + +.in_table + ld a, [hl] + scf + ret +; b825e + +TreeMonMaps: ; b825e +treemon_map: macro + map \1 + db \2 ; treemon set +endm + treemon_map ROUTE_26, 4 + treemon_map ROUTE_27, 4 + treemon_map ROUTE_28, 0 + treemon_map ROUTE_29, 3 + treemon_map ROUTE_30, 3 + treemon_map ROUTE_31, 3 + treemon_map ROUTE_32, 4 + treemon_map ROUTE_33, 2 + treemon_map ROUTE_34, 3 + treemon_map ROUTE_35, 3 + treemon_map ROUTE_36, 3 + treemon_map ROUTE_37, 3 + treemon_map ROUTE_38, 3 + treemon_map ROUTE_39, 3 + treemon_map ROUTE_40, 0 + treemon_map ROUTE_41, 0 + treemon_map ROUTE_42, 2 + treemon_map ROUTE_43, 5 + treemon_map ROUTE_44, 1 + treemon_map ROUTE_45, 1 + treemon_map ROUTE_46, 1 + treemon_map NEW_BARK_TOWN, 0 + treemon_map CHERRYGROVE_CITY, 0 + treemon_map VIOLET_CITY, 0 + treemon_map AZALEA_TOWN, 2 + treemon_map CIANWOOD_CITY, 0 + treemon_map GOLDENROD_CITY, 0 + treemon_map OLIVINE_CITY, 0 + treemon_map ECRUTEAK_CITY, 0 + treemon_map MAHOGANY_TOWN, 0 + treemon_map LAKE_OF_RAGE, 5 + treemon_map BLACKTHORN_CITY, 0 + treemon_map SILVER_CAVE_OUTSIDE, 0 + treemon_map ILEX_FOREST, 6 + db -1 +; b82c5 + +RockMonMaps: ; b82c5 + treemon_map CIANWOOD_CITY, 7 + treemon_map ROUTE_40, 7 + treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7 + treemon_map SLOWPOKE_WELL_B1F, 7 + db -1 +; b82d2 + +GetTreeMons: ; b82d2 +; Return the address of TreeMon table a in hl. +; Return nc if table a doesn't exist. + + cp 8 + jr nc, .quit + + and a + jr z, .quit + + ld e, a + ld d, 0 + ld hl, TreeMons +rept 2 + add hl, de +endr + + ld a, [hli] + ld h, [hl] + ld l, a + + scf + ret + +.quit + xor a + ret +; b82e8 + +TreeMons: ; b82e8 + dw TreeMons1 + dw TreeMons1 + dw TreeMons2 + dw TreeMons3 + dw TreeMons4 + dw TreeMons5 + dw TreeMons6 + dw RockMons + dw TreeMons1 + +; Two tables each (normal, rare). +; Structure: +; db %, species, level + +TreeMons1: ; b82fa + db 50, SPEAROW, 10 + db 15, SPEAROW, 10 + db 15, SPEAROW, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + + db 50, SPEAROW, 10 + db 15, HERACROSS, 10 + db 15, HERACROSS, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + +TreeMons2: ; b8320 + db 50, SPEAROW, 10 + db 15, EKANS, 10 + db 15, SPEAROW, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + + db 50, SPEAROW, 10 + db 15, HERACROSS, 10 + db 15, HERACROSS, 10 + db 10, AIPOM, 10 + db 5, AIPOM, 10 + db 5, AIPOM, 10 + db -1 + +TreeMons3: ; b8346 + db 50, HOOTHOOT, 10 + db 15, SPINARAK, 10 + db 15, LEDYBA, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons4: ; b836c + db 50, HOOTHOOT, 10 + db 15, EKANS, 10 + db 15, HOOTHOOT, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons5: ; b8392 + db 50, HOOTHOOT, 10 + db 15, VENONAT, 10 + db 15, HOOTHOOT, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db 5, EXEGGCUTE, 10 + db -1 + +TreeMons6: ; b83b8 + db 50, HOOTHOOT, 10 + db 15, PINECO, 10 + db 15, PINECO, 10 + db 10, NOCTOWL, 10 + db 5, BUTTERFREE, 10 + db 5, BEEDRILL, 10 + db -1 + + db 50, HOOTHOOT, 10 + db 15, CATERPIE, 10 + db 15, WEEDLE, 10 + db 10, HOOTHOOT, 10 + db 5, METAPOD, 10 + db 5, KAKUNA, 10 + db -1 + +RockMons: ; b83de + db 90, KRABBY, 15 + db 10, SHUCKLE, 15 + db -1 +; b83e5 + +GetTreeMon: ; b83e5 + push hl + call GetTreeScore + pop hl + and a + jr z, .bad + cp 1 + jr z, .good + cp 2 + jr z, .rare + ret + +.bad + ld a, 10 + call RandomRange + and a + jr nz, NoTreeMon + jr SelectTreeMon + +.good + ld a, 10 + call RandomRange + cp 5 + jr nc, NoTreeMon + jr SelectTreeMon + +.rare + ld a, 10 + call RandomRange + cp 8 + jr nc, NoTreeMon + jr .skip +.skip + ld a, [hli] + cp -1 + jr nz, .skip + call SelectTreeMon + ret +; b841f + +SelectTreeMon: ; b841f +; Read a TreeMons table and pick one monster at random. + + ld a, 100 + call RandomRange +.loop + sub [hl] + jr c, .ok +rept 3 + inc hl +endr + jr .loop + +.ok + ld a, [hli] + cp $ff + jr z, NoTreeMon + + ld a, [hli] + ld [TempWildMonSpecies], a + ld a, [hl] + ld [CurPartyLevel], a + scf + ret + +NoTreeMon: ; b843b + xor a + ld [TempWildMonSpecies], a + ld [CurPartyLevel], a + ret +; b8443 + +GetTreeScore: ; b8443 + call .CoordScore + ld [Buffer1], a + call .OTIDScore + ld [Buffer2], a + ld c, a + ld a, [Buffer1] + sub c + jr z, .rare + jr nc, .ok + add 10 +.ok + cp 5 + jr c, .good + +.bad + xor a + ret + +.good + ld a, 1 + ret + +.rare + ld a, 2 + ret +; b8466 + +.CoordScore: ; b8466 + call GetFacingTileCoord + ld hl, 0 + ld c, e + ld b, 0 + ld a, d + + and a + jr z, .next +.loop + add hl, bc + dec a + jr nz, .loop +.next + + add hl, bc + ld c, d + add hl, bc + + ld a, h + ld [hDividend], a + ld a, l + ld [hDividend + 1], a + ld a, 5 + ld [hDivisor], a + ld b, 2 + call Divide + + ld a, [hQuotient + 1] + ld [hDividend], a + ld a, [hQuotient + 2] + ld [hDividend + 1], a + ld a, 10 + ld [hDivisor], a + ld b, 2 + call Divide + + ld a, [hQuotient + 3] + ret +; b849d + +.OTIDScore: ; b849d + ld a, [PlayerID] + ld [hDividend], a + ld a, [PlayerID + 1] + ld [hDividend + 1], a + ld a, 10 + ld [hDivisor], a + ld b, 2 + call Divide + ld a, [hQuotient + 3] + ret +; b84b3 + +LoadFishingGFX: ; b84b3 + ld a, [rVBK] + push af + ld a, $1 + ld [rVBK], a + + ld de, FishingGFX + ld a, [PlayerGender] + bit 0, a + jr z, .got_gender + ld de, KrisFishingGFX +.got_gender + + ld hl, VTiles0 tile $02 + call .LoadGFX + ld hl, VTiles0 tile $06 + call .LoadGFX + ld hl, VTiles0 tile $0a + call .LoadGFX + ld hl, VTiles1 tile $7c + call .LoadGFX + + pop af + ld [rVBK], a + ret +; b84e3 + +.LoadGFX: ; b84e3 + lb bc, BANK(FishingGFX), 2 + push de + call Get2bpp + pop de + ld hl, 2 tiles + add hl, de + ld d, h + ld e, l + ret +; b84f2 + +FishingGFX: ; b84f2 +INCBIN "gfx/overworld/chris_fish.2bpp" +; b8582 + +KrisFishingGFX: ; b8582 +INCBIN "gfx/overworld/kris_fish.2bpp" +; b8612 diff --git a/engine/evolution_animation.asm b/engine/evolution_animation.asm index 85bc8c5a8..69e7aec4c 100755 --- a/engine/evolution_animation.asm +++ b/engine/evolution_animation.asm @@ -372,7 +372,7 @@ INCBIN "gfx/evo/bubble_large.2bpp" INCBIN "gfx/evo/bubble.2bpp" Function4e881: ; 4e881 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -405,7 +405,7 @@ UnknownText_0x4e8bd: ; 0x4e8bd Function4e8c2: ; 4e8c2 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD diff --git a/engine/flypoints.asm b/engine/flypoints.asm new file mode 100755 index 000000000..7f6d384aa --- /dev/null +++ b/engine/flypoints.asm @@ -0,0 +1,916 @@ +_FlyMap: ; 91af3 + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld hl, hInMenu + ld a, [hl] + push af + ld [hl], $1 + xor a + ld [hBGMapMode], a + callba Function8cf53 + call Function91ff2 + ld de, GFX_922e1 + ld hl, VTiles2 tile $30 + lb bc, BANK(GFX_922e1), 6 + call Request1bpp + call FlyMap + call Function91c8f + ld b, $2 + call GetSGBLayout + call SetPalettes +.loop + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and B_BUTTON + jr nz, .pressedB + ld a, [hl] + and A_BUTTON + jr nz, .pressedA + call FlyMapScroll + call GetMapCursorCoordinates + callba Function8cf69 + call DelayFrame + jr .loop + +.pressedB + ld a, -1 + jr .exit + +.pressedA + ld a, [wd002] + ld l, a + ld h, 0 + add hl, hl + ld de, Flypoints + 1 + add hl, de + ld a, [hl] + +.exit + ld [wd002], a + pop af + ld [hInMenu], a + call ClearBGPalettes + ld a, $90 + ld [hWY], a + xor a + ld [hBGMapAddress], a + ld a, VBGMap0 / $100 + ld [hBGMapAddress + 1], a + ld a, [wd002] + ld e, a + ret +; 91b73 + +FlyMapScroll: ; 91b73 + ld a, [StartFlypoint] + ld e, a + ld a, [EndFlypoint] + ld d, a + ld hl, hJoyLast + ld a, [hl] + and D_UP + jr nz, .ScrollNext + ld a, [hl] + and D_DOWN + jr nz, .ScrollPrev + ret + +.ScrollNext + ld hl, wd002 + ld a, [hl] + cp d + jr nz, .NotAtEndYet + ld a, e + dec a + ld [hl], a + +.NotAtEndYet + inc [hl] + call CheckIfVisitedFlypoint + jr z, .ScrollNext + jr .Finally + +.ScrollPrev + ld hl, wd002 + ld a, [hl] + cp e + jr nz, .NotAtStartYet + ld a, d + inc a + ld [hl], a + +.NotAtStartYet + dec [hl] + call CheckIfVisitedFlypoint + jr z, .ScrollPrev + +.Finally + call TownMapBubble + call WaitBGMap + xor a + ld [hBGMapMode], a + ret +; 91bb5 + +TownMapBubble: ; 91bb5 +; Draw the bubble containing the location text in the town map HUD + +; Top-left corner + hlcoord 1, 0 + ld a, $30 + ld [hli], a + +; Top row + ld bc, 16 + ld a, " " + call ByteFill + +; Top-right corner + ld a, $31 + ld [hl], a + hlcoord 1, 1 + + +; Middle row + ld bc, 18 + ld a, " " + call ByteFill + + +; Bottom-left corner + hlcoord 1, 2 + ld a, $32 + ld [hli], a + +; Bottom row + ld bc, 16 + ld a, " " + call ByteFill + +; Bottom-right corner + ld a, $33 + ld [hl], a + + +; Print "Where?" + hlcoord 2, 0 + ld de, .Where + call PlaceString + +; Print the name of the default flypoint + call .Name + +; Up/down arrows + hlcoord 18, 1 + ld [hl], $34 + ret + +.Where + db "Where?@" + +.Name +; We need the map location of the default flypoint + ld a, [wd002] + ld l, a + ld h, 0 + add hl, hl ; two bytes per flypoint + ld de, Flypoints + add hl, de + ld e, [hl] + + callba GetLandmarkName + + hlcoord 2, 1 + ld de, StringBuffer1 + call PlaceString + ret +; 91c17 + +GetMapCursorCoordinates: ; 91c17 + ld a, [wd002] + ld l, a + ld h, $0 + add hl, hl + ld de, Flypoints + add hl, de + ld e, [hl] + callba GetLandmarkCoords + ld a, [wd003] + ld c, a + ld a, [wd004] + ld b, a + ld hl, $4 + add hl, bc + ld [hl], e + ld hl, $5 + add hl, bc + ld [hl], d + ret +; 91c3c + +CheckIfVisitedFlypoint: ; 91c3c +; Check if the flypoint loaded in [hl] has been visited yet. + push bc + push de + push hl + ld l, [hl] + ld h, 0 + add hl, hl + ld de, Flypoints + 1 + add hl, de + ld c, [hl] + call HasVisitedSpawn + pop hl + pop de + pop bc + and a + ret +; 91c50 + +HasVisitedSpawn: ; 91c50 +; Check if spawn point c has been visited. + ld hl, VisitedSpawns + ld b, CHECK_FLAG + ld d, 0 + predef FlagPredef + ld a, c + ret +; 91c5e + +Flypoints: ; 91c5e +; landmark, spawn point + + const_def + +flypoint: MACRO +; \1\@FLY EQUS "FLY_\1" +; \1\@SPAWN EQUS "SPAWN_\1" + ; const \1\@FLY + ; db \2, \1\@SPAWN + const FLY_\1 + db \2, SPAWN_\1 +ENDM + +; Johto + flypoint NEW_BARK, NEW_BARK_TOWN + flypoint CHERRYGROVE, CHERRYGROVE_CITY + flypoint VIOLET, VIOLET_CITY + flypoint AZALEA, AZALEA_TOWN + flypoint GOLDENROD, GOLDENROD_CITY + flypoint ECRUTEAK, ECRUTEAK_CITY + flypoint OLIVINE, OLIVINE_CITY + flypoint CIANWOOD, CIANWOOD_CITY + flypoint MAHOGANY, MAHOGANY_TOWN + flypoint LAKE, LAKE_OF_RAGE + flypoint BLACKTHORN, BLACKTHORN_CITY + flypoint MT_SILVER, SILVER_CAVE + +; Kanto +KANTO_FLYPOINT EQU const_value + + flypoint PALLET, PALLET_TOWN + flypoint VIRIDIAN, VIRIDIAN_CITY + flypoint PEWTER, PEWTER_CITY + flypoint CERULEAN, CERULEAN_CITY + flypoint VERMILION, VERMILION_CITY + flypoint ROCK_TUNNEL, ROCK_TUNNEL + flypoint LAVENDER, LAVENDER_TOWN + flypoint CELADON, CELADON_CITY + flypoint SAFFRON, SAFFRON_CITY + flypoint FUCHSIA, FUCHSIA_CITY + flypoint CINNABAR, CINNABAR_ISLAND + flypoint INDIGO, INDIGO_PLATEAU + + db -1 +; 91c8f + +Function91c8f: ; 91c8f + ret +; 91c90 + +FlyMap: ; 91c90 + + ld a, [MapGroup] + ld b, a + ld a, [MapNumber] + ld c, a + call GetWorldMapLocation + +; If we're not in a valid location, i.e. Pokecenter floor 2F, +; the backup map information is used + + cp SPECIAL_MAP + jr nz, .CheckRegion + + ld a, [BackupMapGroup] + ld b, a + ld a, [BackupMapNumber] + ld c, a + call GetWorldMapLocation + +.CheckRegion +; The first 46 locations are part of Johto. The rest are in Kanto + cp KANTO_LANDMARK + jr nc, .KantoFlyMap + +.JohtoFlyMap +; Note that .NoKanto should be modified in tandem with this branch + + push af + +; Start from New Bark Town + ld a, FLY_NEW_BARK + ld [wd002], a + +; Flypoints begin at New Bark Town... + ld [StartFlypoint], a +; ..and end at Silver Cave + ld a, FLY_MT_SILVER + ld [EndFlypoint], a + +; Fill out the map + call FillJohtoMap + call .MapHud + pop af + call TownMapPlayerIcon + ret + +.KantoFlyMap + +; The event that there are no flypoints enabled in a map is not +; accounted for. As a result, if you attempt to select a flypoint +; when there are none enabled, the game will crash. Additionally, +; the flypoint selection has a default starting point that +; can be flown to even if none are enabled + +; To prevent both of these things from happening when the player +; enters Kanto, fly access is restricted until Indigo Plateau is +; visited and its flypoint enabled + + push af + ld c, SPAWN_INDIGO + call HasVisitedSpawn + and a + jr z, .NoKanto + +; Kanto's map is only loaded if we've visited Indigo Plateau + +; Flypoints begin at Pallet Town... + ld a, FLY_PALLET + ld [StartFlypoint], a +; ...and end at Indigo Plateau + ld a, FLY_INDIGO + ld [EndFlypoint], a + +; Because Indigo Plateau is the first flypoint the player +; visits, it's made the default flypoint + ld [wd002], a + +; Fill out the map + call FillKantoMap + call .MapHud + pop af + call TownMapPlayerIcon + ret + +.NoKanto +; If Indigo Plateau hasn't been visited, we use Johto's map instead + +; Start from New Bark Town + ld a, FLY_NEW_BARK + ld [wd002], a + +; Flypoints begin at New Bark Town... + ld [StartFlypoint], a +; ..and end at Silver Cave + ld a, FLY_MT_SILVER + ld [EndFlypoint], a + + call FillJohtoMap + + pop af + +.MapHud + call TownMapBubble + call TownMapPals + + ld hl, VBGMap0 ; BG Map 0 + call TownMapBGUpdate + + call TownMapMon + ld a, c + ld [wd003], a + ld a, b + ld [wd004], a + ret +; 91d11 + +Function91d11: ; 91d11 + ld a, [wd002] + push af + ld a, [wd003] + push af + ld a, e + ld [wd002], a + call ClearSprites + xor a + ld [hBGMapMode], a + ld a, $1 + ld [hInMenu], a + ld de, GFX_922d1 + ld hl, VTiles0 tile $7f + lb bc, BANK(GFX_922d1), 1 + call Request2bpp ; actually 1bpp + call Function91ed0 + ld hl, VTiles0 tile $78 + ld c, $4 + call Request2bpp + call Function91ff2 + call FillKantoMap + call Function91de9 + call TownMapPals + ld hl, VBGMap1 + call TownMapBGUpdate + call FillJohtoMap + call Function91de9 + call TownMapPals + ld hl, VBGMap0 + call TownMapBGUpdate + ld b, $2 + call GetSGBLayout + call SetPalettes + xor a + ld [hBGMapMode], a + xor a + call Function91e1e +.asm_91d6e + call JoyTextDelay + ld hl, hJoyPressed + ld a, [hl] + and A_BUTTON | B_BUTTON + jr nz, .asm_91d8f + ld a, [hJoypadDown] + and SELECT + jr nz, .asm_91d87 + call Function91d9b + call Function91dcd + jr .asm_91d8a + +.asm_91d87 + call Function91e5a + +.asm_91d8a + call DelayFrame + jr .asm_91d6e + +.asm_91d8f + call ClearSprites + pop af + ld [wd003], a + pop af + ld [wd002], a + ret +; 91d9b + +Function91d9b: ; 91d9b + ld a, [hl] + and $20 + jr nz, .asm_91da6 + ld a, [hl] + and $10 + jr nz, .asm_91db7 + ret + +.asm_91da6 + ld a, [hWY] + cp $90 + ret z + call ClearSprites + ld a, $90 + ld [hWY], a + xor a + call Function91e1e + ret + +.asm_91db7 + ld a, [StatusFlags] + bit 6, a + ret z + ld a, [hWY] + and a + ret z + call ClearSprites + xor a + ld [hWY], a + ld a, $1 + call Function91e1e + ret +; 91dcd + +Function91dcd: ; 91dcd + ld a, [hVBlankCounter] + ld e, a + and $f + ret nz + ld a, e + and $10 + jr nz, .asm_91ddc + call ClearSprites + ret + +.asm_91ddc + hlcoord 0, 0 + ld de, Sprites + ld bc, $a0 + call CopyBytes + ret +; 91de9 + +Function91de9: ; 91de9 + hlcoord 0, 0 + ld bc, SCREEN_WIDTH + ld a, $7f + call ByteFill + hlcoord 0, 1 + ld a, $6 + ld [hli], a + ld bc, SCREEN_HEIGHT + ld a, $7 + call ByteFill + ld [hl], $17 + call GetPokemonName + hlcoord 2, 0 + call PlaceString + ld h, b + ld l, c + ld de, String_91e16 + call PlaceString + ret +; 91e16 + +String_91e16: + db "'S NEST@" +; 91e1e + +Function91e1e: ; 91e1e + ld [wd003], a + ld e, a + callba Function2a01f + decoord 0, 0 + ld hl, Sprites +.asm_91e2e + ld a, [de] + and a + jr z, .asm_91e4d + push de + ld e, a + push hl + callba GetLandmarkCoords + pop hl + ld a, d + sub $4 + ld [hli], a + ld a, e + sub $4 + ld [hli], a + ld a, $7f + ld [hli], a + xor a + ld [hli], a + pop de + inc de + jr .asm_91e2e + +.asm_91e4d + ld hl, Sprites + decoord 0, 0 + ld bc, $a0 + call CopyBytes + ret +; 91e5a + +Function91e5a: ; 91e5a + call Function91ea9 + ret c + + ld a, [wd002] + ld e, a + callba GetLandmarkCoords + ld c, e + ld b, d + ld de, Unknown_91e9c + ld hl, Sprites +.asm_91e70 + ld a, [de] + cp $80 + jr z, .asm_91e91 + + add b + ld [hli], a + inc de + + ld a, [de] + add c + ld [hli], a + inc de + + ld a, [de] + add $78 + ld [hli], a + inc de + + push bc + ld c, 0 + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91e8c + inc c +.asm_91e8c + ld a, c + ld [hli], a + pop bc + + jr .asm_91e70 + +.asm_91e91 + ld hl, Sprites + $10 + ld bc, SpritesEnd - (Sprites + $10) + xor a + call ByteFill + ret +; 91e9c + +Unknown_91e9c: ; 91e9c + db -8, -8, 0 + db -8, 0, 1 + db 0, -8, 2 + db 0, 0, 3 + db $80 ; terminator +; 91ea9 + +Function91ea9: ; 91ea9 + ld a, [wd002] + cp FAST_SHIP + jr z, .johto + cp KANTO_LANDMARK + jr c, .johto + +.kanto + ld a, [wd003] + and a + jr z, .clear + jr .ok + +.johto + ld a, [wd003] + and a + jr nz, .clear + +.ok + and a + ret + +.clear + ld hl, Sprites + ld bc, SpritesEnd - Sprites + xor a + call ByteFill + scf + ret +; 91ed0 + +Function91ed0: ; 91ed0 + ld a, [wd002] + cp FAST_SHIP + jr z, .asm_91ede + callba GetPlayerIcon + ret + +.asm_91ede + ld de, FastShipGFX + ld b, BANK(FastShipGFX) + ret +; 91ee4 + +TownMapBGUpdate: ; 91ee4 +; Update BG Map tiles and attributes + +; BG Map address + ld a, l + ld [hBGMapAddress], a + ld a, h + ld [hBGMapAddress + 1], a + +; Only update palettes on CGB + ld a, [hCGB] + and a + jr z, .tiles + +; BG Map mode 2 (palettes) + ld a, 2 + ld [hBGMapMode], a + +; The BG Map is updated in thirds, so we wait +; 3 frames to update the whole screen's palettes. + ld c, 3 + call DelayFrames + +.tiles +; Update BG Map tiles + call WaitBGMap + +; Turn off BG Map update + xor a + ld [hBGMapMode], a + ret +; 91eff + +FillJohtoMap: ; 91eff + ld de, JohtoMap + jr FillTownMap + +FillKantoMap: ; 91f04 + ld de, KantoMap + +FillTownMap: ; 91f07 + hlcoord 0, 0 +.loop + ld a, [de] + cp $ff + ret z + ld a, [de] + ld [hli], a + inc de + jr .loop +; 91f13 + +TownMapPals: ; 91f13 +; Assign palettes based on tile ids + + hlcoord 0, 0 + decoord 0, 0, AttrMap + ld bc, 360 +.loop +; Current tile + ld a, [hli] + push hl + +; HP/borders use palette 0 + cp $60 + jr nc, .pal0 + +; The palette data is condensed to nybbles, +; least-significant first. + ld hl, TownMapPalMap + srl a + jr c, .odd + +; Even-numbered tile ids take the bottom nybble... + add l + ld l, a + ld a, h + adc 0 + ld h, a + ld a, [hl] + and %111 + jr .update + +.odd +; ...and odd ids take the top. + add l + ld l, a + ld a, h + adc 0 + ld h, a + ld a, [hl] + swap a + and %111 + jr .update + +.pal0 + xor a + +.update + pop hl + ld [de], a + inc de + dec bc + ld a, b + or c + jr nz, .loop + ret + +TownMapPalMap: + db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00 + db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00 + db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33 + db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00 +; 91f7b + +TownMapMon: ; 91f7b +; Draw the FlyMon icon at town map location in + +; Get FlyMon species + ld a, [CurPartyMon] + ld hl, PartySpecies + ld e, a + ld d, $0 + add hl, de + ld a, [hl] + ld [wd265], a + +; Get FlyMon icon + ld e, 8 ; starting tile in VRAM + callba GetSpeciesIcon + +; Animation/palette + ld de, 0 + ld a, $0 + call Function3b2a + + ld hl, 3 + add hl, bc + ld [hl], 8 + ld hl, 2 + add hl, bc + ld [hl], 0 + ret +; 91fa6 + +TownMapPlayerIcon: ; 91fa6 +; Draw the player icon at town map location in a + push af + + callba GetPlayerIcon + +; Standing icon + ld hl, VTiles0 tile $10 + ld c, 4 ; # tiles + call Request2bpp + +; Walking icon + ld hl, $c0 + add hl, de + ld d, h + ld e, l + ld hl, VTiles0 tile $14 + ld c, 4 ; # tiles + ld a, BANK(ChrisSpriteGFX) ; does nothing + call Request2bpp + +; Animation/palette + ld de, 0 + ld b, $0a ; Male + ld a, [PlayerGender] + bit 0, a + jr z, .asm_91fd3 + ld b, $1e ; Female +.asm_91fd3 + ld a, b + call Function3b2a + + ld hl, $3 + add hl, bc + ld [hl], $10 + + pop af + ld e, a + push bc + callba GetLandmarkCoords + pop bc + + ld hl, 4 + add hl, bc + ld [hl], e + ld hl, 5 + add hl, bc + ld [hl], d + ret +; 0x91ff2 + +Function91ff2: ; 91ff2 + ld hl, TownMapGFX + ld de, VTiles2 + lb bc, BANK(TownMapGFX), $30 + call DecompressRequest2bpp + ret +; 91fff + + +JohtoMap: ; 91fff +INCBIN "gfx/misc/johto.bin" +; 92168 + +KantoMap: ; 92168 +INCBIN "gfx/misc/kanto.bin" +; 922d1 + + +GFX_922d1: ; 922d1 +INCBIN "gfx/unknown/0922d1.2bpp" +GFX_922e1: ; 922e1 +INCBIN "gfx/unknown/0922e1.2bpp" +GFX_92301: ; 92301 +INCBIN "gfx/unknown/092301.2bpp" diff --git a/engine/link.asm b/engine/link.asm index 38ac235fb..a1fa0661b 100755 --- a/engine/link.asm +++ b/engine/link.asm @@ -1,6 +1,6 @@ LinkCommunications: ; 28000 - call WhiteBGMap - ld c, $50 + call ClearBGPalettes + ld c, 80 call DelayFrames call ClearScreen call ClearSprites @@ -8,7 +8,7 @@ LinkCommunications: ; 28000 xor a ld [hSCX], a ld [hSCY], a - ld c, $50 + ld c, 80 call DelayFrames call ClearScreen call UpdateSprites @@ -431,7 +431,7 @@ Function28177: ; 28177 ld de, OTName ld bc, NAME_LENGTH call CopyBytes - call Function222a + call ReturnToMapFromSubmenu ld a, [wc2d7] push af ld a, $1 @@ -509,7 +509,7 @@ UnknownText_0x283ed: ; 0x283ed Function283f2: ; 283f2 ld a, $1 - ld [$ffcc], a + ld [hFFCC], a .asm_283f6 ld a, [hl] ld [hSerialSend], a @@ -521,14 +521,14 @@ Function283f2: ; 283f2 .asm_28401 dec a jr nz, .asm_28401 - ld a, [$ffcc] + ld a, [hFFCC] and a ld a, b pop bc jr z, .asm_28411 dec hl xor a - ld [$ffcc], a + ld [hFFCC], a jr .asm_283f6 .asm_28411 @@ -2172,7 +2172,7 @@ Function28fa1: ; 28fa1 Function28fdb: ; 28fdb xor a ld [wJumptableIndex], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -2495,7 +2495,7 @@ Function29220: ; 29220 ; 29229 Function29229: ; 29229 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -2623,7 +2623,7 @@ Function292ec: ; 292ec Function292f6: ; 292f6 push af - call WhiteBGMap + call ClearBGPalettes call WaitTop ld a, VBGMap1 / $100 ld [hBGMapAddress + 1], a @@ -3902,7 +3902,7 @@ Function29dba: ; 29dba Function29e0c: ; 29e0c xor a - ld [$ffca], a + ld [hFFCA], a ld a, [wcf5b] ld h, a ld a, [wcf5c] diff --git a/engine/map_objects.asm b/engine/map_objects.asm index bc1ce4a67..4c2adc9aa 100644 --- a/engine/map_objects.asm +++ b/engine/map_objects.asm @@ -655,7 +655,7 @@ Function467b: ; 467b ld hl, OBJECT_12 add hl, bc ld [hl], a - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc rept 3 ld [hli], a @@ -848,28 +848,28 @@ RestoreDefaultMovement: ; 4769 ; 4780 ClearObjectStructField27: ; 4780 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], 0 ret ; 4787 IncrementObjectStructField27: ; 4787 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc inc [hl] ret ; 478d DecrementObjectStructField27: ; 478d - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc dec [hl] ret ; 4793 JumptoObjectStructField27: ; 4793 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld a, [hl] pop hl @@ -1043,17 +1043,17 @@ Function47dd: ; 47dd .ObeyDPad: ; 487c ld hl, Function5000 - jp Function5041 + jp HandleMovementData ; 4882 .Movement08: ; 4882 ld hl, Function5015 - jp Function5041 + jp HandleMovementData ; 4888 .Movement09: ; 4888 ld hl, Function5026 - jp Function5041 + jp HandleMovementData ; 488e .Movement0a: ; 488e @@ -1070,7 +1070,7 @@ Function47dd: ; 47dd .Movement0d: ; 4897 ld hl, Function5000 - jp Function5041 + jp HandleMovementData ; 489d .Movement0e: ; 489d @@ -1079,12 +1079,12 @@ Function47dd: ; 47dd .Follow: ; 48a0 ld hl, Function54e6 - jp Function5041 + jp HandleMovementData ; 48a6 .Script: ; 48a6 ld hl, Function500e - jp Function5041 + jp HandleMovementData ; 48ac .Strength: ; 48ac @@ -1149,12 +1149,15 @@ Function47dd: ; 47dd ld hl, OBJECT_MAP_X add hl, bc ld d, [hl] + ld hl, OBJECT_MAP_Y add hl, bc ld e, [hl] + ld hl, OBJECT_32 add hl, bc ld a, [hl] + push bc call GetObjectStruct ld hl, OBJECT_DIRECTION_WALKING @@ -1162,6 +1165,7 @@ Function47dd: ; 47dd ld a, [hl] cp STANDING jr z, .standing + ld hl, OBJECT_NEXT_MAP_X add hl, bc ld a, [hl] @@ -2400,11 +2404,14 @@ UpdateJumpPosition: ; 4fd5 ; 5000 Function5000: ; unscripted? +; copy [wc3de] to [wc2df] ld a, [wc2de] ld hl, wc2df ld [hl], a - ld a, $3e +; load [wc2de] with movement_step_sleep_1 + ld a, movement_step_sleep_1 ld [wc2de], a +; recover the previous value of [wc2de] ld a, [hl] ret ; 500e @@ -2416,7 +2423,7 @@ Function500e: ; scripted ; 5015 Function5015: ; 5015 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld e, [hl] inc [hl] @@ -2431,7 +2438,7 @@ Function5015: ; 5015 ; 5026 Function5026: ; 5026 - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld e, [hl] inc [hl] @@ -2446,16 +2453,16 @@ Function5026: ; 5026 ; 5037 Function5037: ; 5037 - ld hl, Function503d - jp Function5041 + ld hl, GetMovementPerson + jp HandleMovementData ; 503d -Function503d: ; 503d +GetMovementPerson: ; 503d ld a, [wMovementPerson] ret ; 5041 -Function5041: ; 5041 +HandleMovementData: ; 5041 call CopyMovementPointer .loop xor a @@ -2484,7 +2491,7 @@ GetMovementByte: ; 505e jp [hl] ; 5065 -Function5065: ; 5065 +ContinueReadingMovement: ; 5065 ld a, 1 ld [wc2ea], a ret @@ -2563,7 +2570,8 @@ Function54e6: ; 54e6 .done call Function550a ret c - ld a, $3e + + ld a, movement_step_sleep_1 ret ; 550a @@ -2585,7 +2593,7 @@ Function550a: ; 550a .nope ld a, $ff ld [wObjectFollow_Follower], a - ld a, $47 + ld a, movement_step_end scf ret ; 5529 @@ -2696,6 +2704,7 @@ Function5582: ; 5582 Function55ac: ; 55ac call FindFirstEmptyObjectStruct ret nc + ld d, h ld e, l callba Function8286 @@ -2703,11 +2712,14 @@ Function55ac: ; 55ac ; 55b9 Function55b9: ; 55b9 +; load into wc2f0: +; -1, -1, [de], [de + 1], [de + 2], [hMapObjectIndexBuffer], [MapX], [MapY], -1 ld hl, wc2f0 ld [hl], -1 inc hl ld [hl], -1 inc hl + ld a, [de] inc de ld [hli], a @@ -2716,8 +2728,10 @@ Function55b9: ; 55b9 ld [hli], a ld a, [de] ld [hli], a + ld a, [hMapObjectIndexBuffer] ld [hli], a + push hl ld hl, OBJECT_MAP_X add hl, bc @@ -2726,6 +2740,7 @@ Function55b9: ; 55b9 add hl, bc ld e, [hl] pop hl + ld [hl], d inc hl ld [hl], e @@ -2786,17 +2801,21 @@ Function561d: ; 561d Function5629: ; 5629 cp NUM_OBJECTS ret nc + call GetMapObject ld hl, MAPOBJECT_OBJECT_STRUCT_ID add hl, bc ld a, [hl] cp -1 ret z + cp NUM_OBJECT_STRUCTS ret nc + call GetObjectStruct call GetObjectSprite ret z + call Function5673 ret ; 5645 @@ -2977,9 +2996,9 @@ Function56cd: ; 56cd .ok7 ld a, d - ld [$ffbf], a + ld [hFFBF], a .loop - ld a, [$ffbf] + ld a, [hFFBF] ld d, a ld a, [hUsedSpriteTile] add e @@ -3180,7 +3199,7 @@ ResetFollower: ; 5847 cp -1 ret z call GetObjectStruct - callba Function58e3 + callba Function58e3 ; no need to bankswitch ld a, -1 ld [wObjectFollow_Follower], a ret @@ -3294,16 +3313,19 @@ Function58e3: ; 58e3 add hl, bc ld a, [hl] cp -1 - jp z, Function5903 + jp z, Function5903 ; a jr would have been appropriate here + push bc call GetMapObject ld hl, MAPOBJECT_MOVEMENT add hl, bc ld a, [hl] pop bc + ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], a + ld hl, OBJECT_09 add hl, bc ld [hl], 0 @@ -3322,6 +3344,7 @@ Function5903: ; 5903 ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], a + ld hl, OBJECT_09 add hl, bc ld [hl], 0 @@ -3495,7 +3518,7 @@ Function59f3: ; 59f3 .next ld a, [hli] ld d, a - and %11110000 + and $f0 ret z cp c jr nz, .next @@ -3503,20 +3526,20 @@ Function59f3: ; 59f3 push bc push hl ld a, d - and %00001111 - call Function5ac2 - call Function5a0d + and $f + call .GetObjectStructPointer + call .asm_5a0d pop hl pop bc jr .next ; 5a0d -Function5a0d: ; 5a0d +.asm_5a0d: ; 5a0d ld hl, OBJECT_SPRITE_TILE add hl, bc ld a, [hl] and %01111111 - ld [$ffc1], a + ld [hFFC1], a xor a bit 7, [hl] @@ -3550,7 +3573,7 @@ Function5a0d: ; 5a0d jr z, .skip4 or %10000000 .skip4 - ld [$ffc2], a + ld [hFFC2], a ld hl, OBJECT_SPRITE_X add hl, bc @@ -3565,7 +3588,7 @@ Function5a0d: ; 5a0d ld e, a ld a, [wd14c] add e - ld [$ffbf], a + ld [hFFBF], a ld hl, OBJECT_SPRITE_Y add hl, bc @@ -3580,7 +3603,7 @@ Function5a0d: ; 5a0d ld e, a ld a, [wd14d] add e - ld [$ffc0], a + ld [hFFC0], a ld hl, OBJECT_FACING_STEP add hl, bc @@ -3609,14 +3632,14 @@ Function5a0d: ; 5a0d jr nc, .full .addsprite - ld a, [$ffc0] + ld a, [hFFC0] add [hl] inc hl ld [bc], a inc c - ld a, [$ffbf] + ld a, [hFFBF] add [hl] inc hl @@ -3626,7 +3649,7 @@ Function5a0d: ; 5a0d ld e, [hl] inc hl - ld a, [$ffc1] + ld a, [hFFC1] bit 2, e jr z, .nope1 xor a @@ -3640,7 +3663,7 @@ Function5a0d: ; 5a0d ld a, e bit 1, a jr z, .nope2 - ld a, [$ffc2] + ld a, [hFFC2] or e .nope2 and %11110000 @@ -3665,7 +3688,7 @@ Function5a0d: ; 5a0d ret ; 5ac2 -Function5ac2: ; 5ac2 +.GetObjectStructPointer: ; 5ac2 ld c, a ld b, 0 ld hl, .Addresses diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 8ae9838f0..09fc4d155 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -17,28 +17,28 @@ endr ; 15377 MapSetupScripts: ; 15377 - dw MapSetupScript1 - dw MapSetupScript2 - dw MapSetupScript3 - dw MapSetupScript4 - dw MapSetupScript5 - dw MapSetupScript6 - dw MapSetupScript7 - dw MapSetupScript8 - dw MapSetupScript9 - dw MapSetupScript10 - dw MapSetupScript11 - dw MapSetupScript12 + dw MapSetupScript_Warp + dw MapSetupScript_Continue + dw MapSetupScript_ReloadMap + dw MapSetupScript_Teleport + dw MapSetupScript_Door + dw MapSetupScript_Fall + dw MapSetupScript_Connection + dw MapSetupScript_LinkReturn + dw MapSetupScript_Train + dw MapSetupScript_Submenu + dw MapSetupScript_BadWarp + dw MapSetupScript_Fly ; 1538f -MapSetupScript4: ; 1538f +MapSetupScript_Teleport: ; 1538f db map_prolong_sprites -MapSetupScript12: ; 15390 +MapSetupScript_Fly: ; 15390 db map_fade_out_palettes db map_keep_roam -MapSetupScript1: ; 15392 +MapSetupScript_Warp: ; 15392 db map_lcd_off db map_sound_off db map_load_spawn @@ -63,7 +63,7 @@ MapSetupScript1: ; 15392 db map_wildmons db map_end_setup_script -MapSetupScript11: ; 153a9 +MapSetupScript_BadWarp: ; 153a9 db map_load_spawn db map_attributes db map_change_callback @@ -87,7 +87,7 @@ MapSetupScript11: ; 153a9 db map_wildmons db map_end_setup_script -MapSetupScript7: ; 153bf +MapSetupScript_Connection: ; 153bf db map_animations_off db map_load_connection db map_attributes @@ -106,13 +106,13 @@ MapSetupScript7: ; 153bf db map_animations_on db map_end_setup_script -MapSetupScript6: ; 153d0 +MapSetupScript_Fall: ; 153d0 db map_prolong_sprites -MapSetupScript5: ; 153d1 +MapSetupScript_Door: ; 153d1 db map_fade_out_palettes -MapSetupScript9: ; 153d2 +MapSetupScript_Train: ; 153d2 db map_load_warp db map_attributes db map_warp_face @@ -135,7 +135,7 @@ MapSetupScript9: ; 153d2 db map_update_roam db map_end_setup_script -MapSetupScript3: ; 153e7 +MapSetupScript_ReloadMap: ; 153e7 db map_fade db map_clear_bg_palettes db map_lcd_off @@ -153,7 +153,7 @@ MapSetupScript3: ; 153e7 db map_wildmons db map_end_setup_script -MapSetupScript8: ; 153f7 +MapSetupScript_LinkReturn: ; 153f7 db map_fade db map_lcd_off db map_sound_off @@ -172,7 +172,7 @@ MapSetupScript8: ; 153f7 db map_text_scroll_off db map_end_setup_script -MapSetupScript2: ; 15408 +MapSetupScript_Continue: ; 15408 db map_lcd_off db map_sound_off db map_attributes_2 @@ -192,7 +192,7 @@ MapSetupScript2: ; 15408 db map_wildmons db map_end_setup_script -MapSetupScript10: ; 1541a +MapSetupScript_Submenu: ; 1541a db map_load_blocks db map_connection_blocks db map_end_setup_script @@ -245,7 +245,7 @@ endr MapSetupCommands: ; 15440 dba EnableLCD ; 00 dba DisableLCD ; 01 - dba SoundRestart ; 02 + dba MapSetup_Sound_Off ; 02 dba PlayMapMusic ; 03 dba RestartMapMusic ; 04 dba FadeToMapMusic ; 05 @@ -271,9 +271,9 @@ MapSetupCommands: ; 15440 dba LoadWarpData ; 19 dba LoadMapAttributes ; 1a dba LoadMapAttributes_IgnoreHidden ; 1b - dba WhiteBGMap ; 1c - dba FadeBlackBGMap ; 1d - dba FadeInBGMap ; 1e + dba ClearBGPalettes ; 1c + dba FadeOutPalettes ; 1d + dba FadeInPalettes ; 1e dba GetCoordOfUpperLeftCorner ; 1f dba RestoreFacingAfterWarp ; 20 dba SpawnInFacingDown ; 21 diff --git a/engine/movement.asm b/engine/movement.asm index 0a6851ed4..21dd89e9f 100644 --- a/engine/movement.asm +++ b/engine/movement.asm @@ -61,32 +61,32 @@ MovementPointers: ; 5075 dw Movement_fix_facing ; 3b dw Movement_3c ; 3c dw Movement_hide_person ; 3d - dw Movement_show_person ; 3e - dw Movement_3f ; 3f - dw Movement_40 ; 40 - dw Movement_41 ; 41 - dw Movement_42 ; 42 - dw Movement_43 ; 43 - dw Movement_44 ; 44 - dw Movement_accelerate_last ; 45 + dw Movement_step_sleep_1 ; 3e + dw Movement_step_sleep_2 ; 3f + dw Movement_step_sleep_3 ; 40 + dw Movement_step_sleep_4 ; 41 + dw Movement_step_sleep_5 ; 42 + dw Movement_step_sleep_6 ; 43 + dw Movement_step_sleep_7 ; 44 + dw Movement_step_sleep_8 ; 45 dw Movement_step_sleep ; 46 dw Movement_step_end ; 47 dw Movement_48 ; 48 dw Movement_remove_person ; 49 - dw Movement_4a ; 4a + dw Movement_step_loop ; 4a dw Movement_4b ; 4b dw Movement_teleport_from ; 4c dw Movement_teleport_to ; 4d dw Movement_skyfall ; 4e dw Movement_step_wait5 ; 4f dw Movement_50 ; 50 - dw Movement_51 ; 51 - dw Movement_52 ; 52 + dw Movement_fish_got_bite ; 51 + dw Movement_fish_cast_rod ; 52 dw Movement_hide_emote ; 53 dw Movement_show_emote ; 54 dw Movement_step_shake ; 55 dw Movement_56 ; 56 - dw Movement_57 ; 57 + dw Movement_rock_smash ; 57 dw Movement_58 ; 58 dw Movement_59 ; 59 ; 5129 @@ -139,7 +139,7 @@ Movement_step_wait5: ; 5145 ld [hl], $3 ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 516a @@ -156,14 +156,14 @@ Movement_58: ; 516a ld [hl], a ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ld hl, OBJECT_09 add hl, bc ld [hl], $12 ret ; 5189 -Movement_51: ; 5189 +Movement_fish_got_bite: ; 5189 ld hl, OBJECT_11 add hl, bc ld [hl], $6 @@ -173,7 +173,7 @@ Movement_51: ; 5189 ret ; 5196 -Movement_57: ; 5196 +Movement_rock_smash: ; 5196 call GetMovementByte ld hl, OBJECT_STEP_DURATION add hl, bc @@ -187,7 +187,7 @@ Movement_57: ; 5196 ret ; 51ab -Movement_52: ; 51ab +Movement_fish_cast_rod: ; 51ab ld hl, OBJECT_11 add hl, bc ld [hl], $6 @@ -197,11 +197,11 @@ Movement_52: ; 51ab ret ; 51b8 -Movement_4a: ; 51b8 - ld hl, OBJECT_27 +Movement_step_loop: ; 51b8 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], $0 - jp Function5065 + jp ContinueReadingMovement ; 51c1 Movement_step_end: ; 51c1 @@ -209,11 +209,14 @@ Movement_step_end: ; 51c1 ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], a - ld hl, OBJECT_27 + + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], $0 + ld hl, VramState res 7, [hl] + ld hl, OBJECT_09 add hl, bc ld [hl], $1 @@ -225,16 +228,20 @@ Movement_48: ; 51db ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], a - ld hl, OBJECT_27 + + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc ld [hl], $0 + call GetMovementByte ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a + ld hl, OBJECT_09 add hl, bc ld [hl], $3 + ld hl, VramState res 7, [hl] ret @@ -245,10 +252,10 @@ Movement_remove_person: ; 51fd ld hl, wObjectFollow_Leader ld a, [hMapObjectIndexBuffer] cp [hl] - jr nz, .asm_520a - ld [hl], $ff + jr nz, .not_leading + ld [hl], -1 -.asm_520a +.not_leading ld hl, VramState res 7, [hl] ret @@ -258,43 +265,45 @@ Movement_4b: ; 5210 ld hl, OBJECT_11 add hl, bc ld [hl], $1 + ld hl, OBJECT_09 add hl, bc ld [hl], $4 + ld hl, VramState res 7, [hl] ret ; 5222 -Movement_show_person: ; 5222 +Movement_step_sleep_1: ; 5222 ld a, $1 jr Function5247 -Movement_3f: ; 5226 +Movement_step_sleep_2: ; 5226 ld a, $2 jr Function5247 -Movement_40: ; 522a +Movement_step_sleep_3: ; 522a ld a, $3 jr Function5247 -Movement_41: ; 522e +Movement_step_sleep_4: ; 522e ld a, $4 jr Function5247 -Movement_42: ; 5232 +Movement_step_sleep_5: ; 5232 ld a, $5 jr Function5247 -Movement_43: ; 5236 +Movement_step_sleep_6: ; 5236 ld a, $6 jr Function5247 -Movement_44: ; 523a +Movement_step_sleep_7: ; 523a ld a, $7 jr Function5247 -Movement_accelerate_last: ; 523e +Movement_step_sleep_8: ; 523e ld a, $8 jr Function5247 @@ -309,15 +318,18 @@ Function5247: ; 5247 ld hl, OBJECT_STEP_DURATION add hl, bc ld [hl], a + ld hl, OBJECT_09 add hl, bc ld [hl], $3 + ld hl, OBJECT_11 add hl, bc ld [hl], $1 + ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 525f @@ -334,7 +346,7 @@ Movement_50: ; 525f ld [hl], $3 ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 5279 @@ -351,7 +363,7 @@ Movement_56: ; 5279 ld [hl], $b ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 5293 @@ -359,52 +371,52 @@ Movement_38: ; 5293 ld hl, OBJECT_FLAGS1 add hl, bc res 3, [hl] - jp Function5065 + jp ContinueReadingMovement ; 529c Movement_39: ; 529c ld hl, OBJECT_FLAGS1 add hl, bc set 3, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52a5 Movement_remove_fixed_facing: ; 52a5 ld hl, OBJECT_FLAGS1 add hl, bc res 2, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52ae Movement_fix_facing: ; 52ae ld hl, OBJECT_FLAGS1 add hl, bc set 2, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52b7 Movement_3c: ; 52b7 ld hl, OBJECT_FLAGS1 add hl, bc res 0, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52c0 Movement_hide_person: ; 52c0 ld hl, OBJECT_FLAGS1 add hl, bc set 0, [hl] - jp Function5065 + jp ContinueReadingMovement ; 52c9 Movement_hide_emote: ; 52c9 call Function5579 - jp Function5065 + jp ContinueReadingMovement ; 52cf Movement_show_emote: ; 52cf call Function5547 - jp Function5065 + jp ContinueReadingMovement ; 52d5 Movement_step_shake: ; 52d5 @@ -413,7 +425,7 @@ Movement_step_shake: ; 52d5 call GetMovementByte call Function5565 - jp Function5065 + jp ContinueReadingMovement ; 52de Movement_turn_head_down: ; 52de @@ -441,7 +453,7 @@ TurnHead: ; 52ee ld [hl], $1 ld hl, OBJECT_DIRECTION_WALKING add hl, bc - ld [hl], $ff + ld [hl], STANDING ret ; 5300 diff --git a/engine/namingscreen.asm b/engine/namingscreen.asm index 4618f4e20..21ec969b4 100755 --- a/engine/namingscreen.asm +++ b/engine/namingscreen.asm @@ -40,7 +40,7 @@ NamingScreen: ; 116c1 ; 116f8 Function116f8: ; 116f8 - call WhiteBGMap + call ClearBGPalettes ld b, $8 call GetSGBLayout call DisableLCD diff --git a/engine/pack.asm b/engine/pack.asm index aa20184b9..2ba9c9d3a 100644 --- a/engine/pack.asm +++ b/engine/pack.asm @@ -594,7 +594,7 @@ Function103fd: ; 103fd ld [Options], a ld a, $8 ld [PartyMenuActionText], a - call WhiteBGMap + call ClearBGPalettes callba Function5004f callba Function50405 callba Function503e0 @@ -922,7 +922,7 @@ Function105dc: ; 105dc (4:45dc) ret .asm_1066c: ; 1066c (4:466c) - call WhiteBGMap + call ClearBGPalettes jr .asm_1067e .BattleOnly: ; 10671 (4:4671) @@ -1401,7 +1401,7 @@ Function108d4: ; 108d4 (4:48d4) Function10955: ; 10955 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD diff --git a/engine/party_menu.asm b/engine/party_menu.asm index 6c27cb73e..4d50ee8e4 100644 --- a/engine/party_menu.asm +++ b/engine/party_menu.asm @@ -2,10 +2,10 @@ SelectMonFromParty: ; 50000 call DisableSpriteUpdates xor a ld [PartyMenuActionText], a - call WhiteBGMap + call ClearBGPalettes call Function5003f call WaitBGMap - call Function32f9 + call SetPalettes call DelayFrame call PartyMenuSelect call Function2b74 @@ -17,12 +17,12 @@ Function5001d: ; 5001d ld a, b ld [PartyMenuActionText], a call DisableSpriteUpdates - call WhiteBGMap + call ClearBGPalettes call Function5003f call WaitBGMap ld b, $a call GetSGBLayout - call Function32f9 + call SetPalettes call DelayFrame call PartyMenuSelect call Function2b74 @@ -57,43 +57,42 @@ WritePartyMenuTilemap: ; 0x5005f ld bc, SCREEN_WIDTH * SCREEN_HEIGHT ld a, " " call ByteFill ; blank the tilemap - call Function50396 ; This reads from a pointer table??? + call GetPartyMenuTilemapPointers ; This reads from a pointer table??? .loop ld a, [hli] - cp -1 - jr z, .asm_50084 ; 0x5007a $8 + cp $ff + jr z, .end ; 0x5007a $8 push hl - ld hl, .jumptable + ld hl, .Jumptable rst JumpTable pop hl jr .loop ; 0x50082 $f3 - -.asm_50084 +.end pop af ld [Options], a ret ; 0x50089 -.jumptable: ; 50089 - dw .displaynicks ; 0 - dw .drawhpbars ; 1 - dw Function50138 ; 2 - dw Function50176 ; 3 - dw Function501b2 ; 4 - dw Function501e0 ; 5 - dw Function5022f ; 6 - dw Function502b1 ; 7 - dw Function50307 ; 8 +.Jumptable: ; 50089 + dw PlacePartyNicknames + dw PlacePartyHPBar + dw PlacePartyMenuHPDigits + dw PlacePartyMonLevel + dw PlacePartyMonStatus + dw PlacePartyMonTMHMCompatibility + dw PlacePartyMonEvoStoneCompatibility + dw PlacePartyMonGender + dw PlacePartyMonMobileBattleSelection ; 5009b -.displaynicks: ; 5009b +PlacePartyNicknames: ; 5009b hlcoord 3, 1 ld a, [PartyCount] and a - jr z, .done + jr z, .end ld c, a ld b, $0 -.loop2 +.loop push bc push hl push hl @@ -103,28 +102,28 @@ WritePartyMenuTilemap: ; 0x5005f pop hl call PlaceString pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .loop2 + jr nz, .loop -.done +.end rept 2 dec hl endr - ld de, .cancelstring + ld de, .CANCEL call PlaceString ret ; 500c8 -.cancelstring: ; 500c8 +.CANCEL: ; 500c8 db "CANCEL@" ; 500cf -.drawhpbars: ; 500cf +PlacePartyHPBar: ; 500cf xor a ld [wcda9], a ld a, [PartyCount] @@ -133,17 +132,17 @@ endr ld c, a ld b, $0 hlcoord 11, 2 -.loop3 +.loop push bc push hl - call Function50389 + call PartyMenuCheckEgg jr z, .skip push hl - call _fillhpbar + call PlacePartymonHPBar pop hl - ld d, 6 - ld b, 0 - call DrawHPBar + ld d, $6 + ld b, $0 + call DrawBattleHPBar ld hl, wcd9b ld a, [wcda9] ld c, a @@ -157,31 +156,31 @@ endr ld hl, wcda9 inc [hl] pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .loop3 + jr nz, .loop ld b, $a call GetSGBLayout ret ; 50117 -_fillhpbar: ; 50117 +PlacePartymonHPBar: ; 50117 ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld a, [hli] or [hl] - jr nz, .notfainted + jr nz, .not_fainted xor a ld e, a ld c, a ret -.notfainted +.not_fainted dec hl ld a, [hli] ld b, a @@ -191,25 +190,25 @@ _fillhpbar: ; 50117 ld d, a ld a, [hli] ld e, a - predef ComputeHPBarLength + predef DrawPartyMenuHPBar ret ; 50138 -Function50138: ; 50138 +PlacePartyMenuHPDigits: ; 50138 ld a, [PartyCount] and a ret z ld c, a ld b, $0 hlcoord 13, 1 -.asm_50143 +.loop push bc push hl - call Function50389 - jr z, .asm_5016b + call PartyMenuCheckEgg + jr z, .next push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1HP call AddNTimes ld e, l @@ -219,7 +218,7 @@ Function50138: ; 50138 lb bc, 2, 3 call PrintNum pop de - ld a, $f3 + ld a, "/" ld [hli], a rept 2 inc de @@ -227,32 +226,32 @@ endr lb bc, 2, 3 call PrintNum -.asm_5016b +.next pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_50143 + jr nz, .loop ret ; 50176 -Function50176: ; 50176 +PlacePartyMonLevel: ; 50176 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 8, 2 -.asm_50181 +.loop push bc push hl - call Function50389 - jr z, .asm_501a7 + call PartyMenuCheckEgg + jr z, .next push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Level call AddNTimes ld e, l @@ -260,70 +259,72 @@ Function50176: ; 50176 pop hl ld a, [de] cp 100 ; This is distinct from MAX_LEVEL. - jr nc, .asm_501a1 + jr nc, .ThreeDigits ld a, "" ld [hli], a - ld bc, $4102 -.asm_501a1 + lb bc, PRINTNUM_RIGHTALIGN | 1, 2 + ; jr .okay +.ThreeDigits lb bc, PRINTNUM_RIGHTALIGN | 1, 3 +; .okay call PrintNum -.asm_501a7 +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_50181 + jr nz, .loop ret ; 501b2 -Function501b2: ; 501b2 +PlacePartyMonStatus: ; 501b2 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 5, 2 -.asm_501bd +.loop push bc push hl - call Function50389 - jr z, .asm_501d5 + call PartyMenuCheckEgg + jr z, .next push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Status call AddNTimes ld e, l ld d, h pop hl - call Function50d0a + call PlaceStatusString -.asm_501d5 +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_501bd + jr nz, .loop ret ; 501e0 -Function501e0: ; 501e0 +PlacePartyMonTMHMCompatibility: ; 501e0 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_501eb +.loop push bc push hl - call Function50389 - jr z, .asm_5020a + call PartyMenuCheckEgg + jr z, .next push hl ld hl, PartySpecies ld e, b @@ -333,56 +334,56 @@ Function501e0: ; 501e0 ld [CurPartySpecies], a predef CanLearnTMHMMove pop hl - call Function50215 + call .PlaceAbleNotAble call PlaceString -.asm_5020a +.next pop hl ld de, SCREEN_WIDTH * 2 add hl, de pop bc inc b dec c - jr nz, .asm_501eb + jr nz, .loop ret ; 50215 -Function50215: ; 50215 +.PlaceAbleNotAble: ; 50215 ld a, c and a - jr nz, .asm_5021d - ld de, String_50226 + jr nz, .able + ld de, .string_not_able ret -.asm_5021d - ld de, String_50221 +.able + ld de, .string_able ret ; 50221 -String_50221: ; 50221 +.string_able: ; 50221 db "ABLE@" ; 50226 -String_50226: ; 50226 +.string_not_able: ; 50226 db "NOT ABLE@" ; 5022f -Function5022f: ; 5022f +PlacePartyMonEvoStoneCompatibility: ; 5022f ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_5023a +.loop push bc push hl - call Function50389 - jr z, .asm_5025d + call PartyMenuCheckEgg + jr z, .next push hl ld a, b - ld bc, PartyMon2 - PartyMon1 + ld bc, PARTYMON_STRUCT_LENGTH ld hl, PartyMon1Species call AddNTimes ld a, [hl] @@ -393,22 +394,22 @@ Function5022f: ; 5022f rept 2 add hl, de endr - call Function50268 + call .DetermineCompatibility pop hl call PlaceString -.asm_5025d +.next pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_5023a + jr nz, .loop ret ; 50268 -Function50268: ; 50268 +.DetermineCompatibility: ; 50268 ld de, StringBuffer1 ld a, BANK(EvosAttacksPointers) ld bc, 2 @@ -422,15 +423,15 @@ Function50268: ; 50268 ld bc, $a call FarCopyBytes ld hl, StringBuffer1 -.asm_50287 +.loop2 ld a, [hli] and a - jr z, .asm_5029f + jr z, .nope rept 2 inc hl endr cp EVOLVE_ITEM - jr nz, .asm_50287 + jr nz, .loop2 rept 2 dec hl endr @@ -439,35 +440,35 @@ endr rept 2 inc hl endr - jr nz, .asm_50287 - ld de, String_502a3 + jr nz, .loop2 + ld de, .string_able ret -.asm_5029f - ld de, String_502a8 +.nope + ld de, .string_not_able ret ; 502a3 -String_502a3: ; 502a3 +.string_able: ; 502a3 db "ABLE@" ; 502a8 -String_502a8: ; 502a8 +.string_not_able: ; 502a8 db "NOT ABLE@" ; 502b1 -Function502b1: ; 502b1 +PlacePartyMonGender: ; 502b1 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 2 -.asm_502bc +.loop push bc push hl - call Function50389 - jr z, .asm_502e3 + call PartyMenuCheckEgg + jr z, .next ld [CurPartySpecies], a push hl ld a, b @@ -475,86 +476,86 @@ Function502b1: ; 502b1 xor a ld [MonType], a call GetGender - ld de, String_502fe - jr c, .asm_502df - ld de, String_502ee - jr nz, .asm_502df - ld de, String_502f5 + ld de, .unknown + jr c, .got_gender + ld de, .male + jr nz, .got_gender + ld de, .female -.asm_502df +.got_gender pop hl call PlaceString -.asm_502e3 +.next pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_502bc + jr nz, .loop ret ; 502ee -String_502ee: ; 502ee +.male: ; 502ee db "♂…MALE@" ; 502f5 -String_502f5: ; 502f5 +.female: ; 502f5 db "♀…FEMALE@" ; 502fe -String_502fe: ; 502fe +.unknown: ; 502fe db "…UNKNOWN@" ; 50307 -Function50307: ; 50307 +PlacePartyMonMobileBattleSelection: ; 50307 ld a, [PartyCount] and a ret z ld c, a ld b, 0 hlcoord 12, 1 -.asm_50312 +.loop push bc push hl - ld de, String_50372 + ld de, .String_Sanka_Shinai call PlaceString pop hl - ld de, $0028 + ld de, 2 * SCREEN_WIDTH add hl, de pop bc inc b dec c - jr nz, .asm_50312 + jr nz, .loop ld a, l - ld e, $b + ld e, PKMN_NAME_LENGTH sub e ld l, a ld a, h sbc $0 ld h, a - ld de, String_50379 + ld de, .String_Kettei_Yameru call PlaceString ld b, $3 ld c, $0 ld hl, wd002 ld a, [hl] -.asm_5033b +.loop2 push hl push bc hlcoord 12, 1 -.asm_50340 +.loop3 and a - jr z, .asm_5034a - ld de, $0028 + jr z, .done + ld de, 2 * SCREEN_WIDTH add hl, de dec a - jr .asm_50340 + jr .loop3 -.asm_5034a - ld de, String_5036b +.done + ld de, .String_Banme push hl call PlaceString pop hl @@ -562,7 +563,7 @@ Function50307: ; 50307 push bc push hl ld a, c - ld hl, Strings_50383 + ld hl, .Strings_1_2_3 call GetNthString ld d, h ld e, l @@ -575,24 +576,24 @@ Function50307: ; 50307 inc c dec b ret z - jr .asm_5033b + jr .loop2 ; 5036b -String_5036b: ; 5036b +.String_Banme: ; 5036b db " ばんめ @" ; Place ; 50372 -String_50372: ; 50372 +.String_Sanka_Shinai: ; 50372 db "さんかしない@" ; Cancel ; 50379 -String_50379: ; 50379 +.String_Kettei_Yameru: ; 50379 db "けってい やめる@" ; Quit ; 50383 -Strings_50383: ; 50383 +.Strings_1_2_3: ; 50383 db "1@", "2@", "3@" ; 1st, 2nd, 3rd ; 50389 -Function50389: ; 50389 +PartyMenuCheckEgg: ; 50389 ld a, PartySpecies % $100 add b ld e, a @@ -604,15 +605,15 @@ Function50389: ; 50389 ret ; 50396 -Function50396: ; 50396 +GetPartyMenuTilemapPointers: ; 50396 ld a, [PartyMenuActionText] and $f0 - jr nz, .override + jr nz, .skip ld a, [PartyMenuActionText] and $f ld e, a ld d, 0 - ld hl, .selectmonmenuoptions + ld hl, .Pointers rept 2 add hl, de endr @@ -621,31 +622,32 @@ endr ld l, a ret -.override - ld hl, .default +.skip + ld hl, .Default ret ; 503b2 -.selectmonmenuoptions: ; 503b2 - dw .default - dw .default - dw .default - dw .unknown1 - dw .default - dw .unknown2 - dw .trade - dw .trade - dw .default - dw .unknown3 +.Pointers: ; 503b2 + dw .Default + dw .Default + dw .Default + dw .TMHM + dw .Default + dw .EvoStone + dw .Gender + dw .Gender + dw .Default + dw .Mobile ; 503c6 -.default: db 0, 1, 2, 3, 4, -1 -.unknown1: db 0, 5, 3, 4, -1 -.unknown2: db 0, 6, 3, 4, -1 -.trade: db 0, 7, 3, 4, -1 -.unknown3: db 0, 8, 3, 4, -1 +.Default: db 0, 1, 2, 3, 4, $ff +.TMHM: db 0, 5, 3, 4, $ff +.EvoStone: db 0, 6, 3, 4, $ff +.Gender: db 0, 7, 3, 4, $ff +.Mobile: db 0, 8, 3, 4, $ff ; 503e0 + Function503e0: ; 503e0 ld hl, PartyCount ld a, [hli] @@ -653,7 +655,7 @@ Function503e0: ; 503e0 ret z ld c, a xor a - ld [hConnectedMapWidth], a + ld [hObjectStructIndexBuffer], a .asm_503ea push bc push hl @@ -661,9 +663,9 @@ Function503e0: ; 503e0 ld a, BANK(Function8e83f) ld e, $0 rst FarCall - ld a, [hConnectedMapWidth] + ld a, [hObjectStructIndexBuffer] inc a - ld [hConnectedMapWidth], a + ld [hObjectStructIndexBuffer], a pop hl pop bc dec c @@ -671,6 +673,7 @@ Function503e0: ; 503e0 callab Function8cf69 ret ; 50405 + Function50405: ; 50405 xor a ld [wd0e3], a @@ -692,7 +695,7 @@ Function50405: ; 50405 ld a, $1 .asm_50424 - ld [wcfa9], a + ld [MenuSelection2], a ld a, $3 ld [wcfa8], a ret @@ -713,7 +716,7 @@ Function5042d: ; 0x5042d .asm_50444 ld a, $1 .asm_50446 - ld [wcfa9], a + ld [MenuSelection2], a ld a, $3 ld [wcfa8], a ret @@ -738,7 +741,7 @@ PartyMenuSelect: ; 0x50457 ld a, [PartyCount] inc a ld b, a - ld a, [wcfa9] ; menu selection? + ld a, [MenuSelection2] ; menu selection? cp b jr z, .exitmenu ; CANCEL ld [wd0d8], a @@ -746,7 +749,7 @@ PartyMenuSelect: ; 0x50457 ld b, a bit 1, b jr nz, .exitmenu ; B button? - ld a, [wcfa9] + ld a, [MenuSelection2] dec a ld [CurPartyMon], a ld c, a @@ -773,7 +776,7 @@ PartyMenuSelect: ; 0x50457 PrintPartyMenuText: ; 5049a hlcoord 0, 14 - ld bc, $0212 + lb bc, 2, 18 call TextBox ld a, [PartyCount] and a @@ -920,6 +923,7 @@ UnknownText_0x505bc: ; 0x505bc db "@" ; 0x505c1 + Function505c1: ; 505c1 ld e, a ld d, 0 diff --git a/engine/pokedex.asm b/engine/pokedex.asm index 9a9e01f8a..c331f4a2a 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -60,7 +60,7 @@ Pokedex: ; 40000 ; 40063 InitPokedex: ; 40063 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call Function414b7 @@ -487,7 +487,7 @@ Function4034f: ; 4034f ld [wcf64], a pop af ld [wcf65], a - call WhiteBGMap + call ClearBGPalettes call DisableLCD call Function414fb call Function4038d diff --git a/engine/scripting.asm b/engine/scripting.asm index f94436f67..cbc8c0028 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -1079,9 +1079,11 @@ ApplyMovement: ; 971fa ld a, c callba SetFlagsForMovement_1 pop bc + push bc call SetFlagsForMovement_2 pop bc + call GetScriptByte ld l, a call GetScriptByte @@ -1090,6 +1092,7 @@ ApplyMovement: ; 971fa ld b, a call GetMovementData ret c + ld a, SCRIPT_WAIT_MOVEMENT ld [ScriptMode], a call StopScript @@ -1102,6 +1105,7 @@ SetFlagsForMovement_2: ; 0x97221 ; 0x97228 Script_applymovement2: ; 0x97228 +; apply movement to last talked ; script command 0x6a ; parameters: ; data (MovementPointerLabelParam) @@ -1426,12 +1430,12 @@ ShowEmoteScript: ; 973b6 .Show show_emote - show_person + step_sleep_1 step_end .Hide hide_emote - show_person + step_sleep_1 step_end ; 973c7 @@ -1460,8 +1464,8 @@ Script_earthquake: ; 0x973c7 ; 973eb EarthquakeMovement: ; 973eb - step_shake 16 - step_sleep 16 + step_shake 16 ; the 16 gets overwritten with the script byte + step_sleep 16 ; the 16 gets overwritten with the lower 6 bits of the script byte step_end EarthquakeMovementEnd ; 973f0 @@ -2847,6 +2851,7 @@ Script_warp: ; 0x97a1d call LoadMapStatus call StopScript ret + .not_ok call GetScriptByte call GetScriptByte @@ -3117,6 +3122,7 @@ Script_end: ; 0x97b74 call ExitScriptSubroutine jr c, .resume ret + .resume xor a ld [ScriptRunning], a diff --git a/engine/slot_machine.asm b/engine/slot_machine.asm new file mode 100755 index 000000000..075b1ba78 --- /dev/null +++ b/engine/slot_machine.asm @@ -0,0 +1,2112 @@ +_SlotMachine: + ld hl, Options + set 4, [hl] + call Function926f7 + call DelayFrame +.asm_926d2 + call Function927af + jr nc, .asm_926d2 + call WaitSFX + ld de, SFX_QUIT_SLOTS + call PlaySFX + call WaitSFX + call ClearBGPalettes + callba MobileFn_105fd0 + ld hl, Options + res 4, [hl] + ld hl, rLCDC ; $ff40 + res 2, [hl] + ret + +Function926f7: ; 926f7 (24:66f7) + call ClearBGPalettes + call ClearTileMap + call ClearSprites + ld de, MUSIC_NONE + call PlayMusic + call DelayFrame + call DisableLCD + ld hl, VBGMap0 tile $00 + lb bc, 4, 0 + ld a, $7f + call ByteFill + ld b, $5 + call GetSGBLayout + callab Function8cf53 + ld hl, wc6d0 + ld bc, $48 + xor a + call ByteFill + ld hl, Slots2LZ + ld de, VTiles0 tile $00 + call Decompress + ld hl, Slots3LZ + ld de, VTiles0 tile $40 + call Decompress + ld hl, Slots1LZ + ld de, VTiles2 tile $00 + call Decompress + ld hl, Slots2LZ + ld de, VTiles2 tile $25 + call Decompress + ld hl, SlotsTilemap + decoord 0, 0 + ld bc, 20 * 12 + call CopyBytes + ld hl, rLCDC ; $ff40 + set 2, [hl] + call EnableLCD + ld hl, wc6d0 + ld bc, $64 + xor a + call ByteFill + call Function92a98 + call Function9279b + ld a, $7 + ld hl, wc300 + ld [hli], a + ld [hl], $40 + xor a + ld [wJumptableIndex], a + ld a, $ff + ld [wc709], a + ld de, MUSIC_GAME_CORNER + call PlayMusic + xor a + ld [wd002], a + call Random + and $2a + ret nz + ld a, $1 + ld [wd002], a + ret + +Function9279b: ; 9279b (24:679b) + ld a, $e4 + call DmgToCgbBGPals + lb de, $e4, $e4 + ld a, [hCGB] + and a + jr nz, .asm_927ab + lb de, $c0, $e4 +.asm_927ab + call DmgToCgbObjPals + ret + +Function927af: ; 927af (24:67af) + ld a, [wJumptableIndex] + bit 7, a + jr nz, .asm_927d1 + call Function92844 + call Function92b0f + xor a + ld [wc3b5], a + callab Function8cfa8 + call Function927f8 + call Function927d3 + call DelayFrame + and a + ret +.asm_927d1 + scf + ret + +Function927d3: ; 927d3 (24:67d3) + ret +; 927d4 (24:67d4) + +Function927d4: ; 927d4 + ld a, [wc6d0] + and a + ret nz + ld a, [wc6e0] + and a + ret nz + ld a, [wc70c] + and a + jr nz, .asm_927ea + ld a, $e4 + call DmgToCgbBGPals + ret + +.asm_927ea + ld a, [TextDelayFrames] + and $7 + ret nz + ld a, [rBGP] + xor %1100 + call DmgToCgbBGPals + ret +; 927f8 + +Function927f8: ; 927f8 (24:67f8) + hlcoord 5, 1 + ld de, Coins + lb bc, PRINTNUM_LEADINGZEROS | 2, 4 + call PrintNum + hlcoord 11, 1 + ld de, wc711 + lb bc, PRINTNUM_LEADINGZEROS | 2, 4 + call PrintNum + ret +; 92811 (24:6811) + +Function92811: ; 92811 + ld a, [wc709] + add 0 + daa + ld e, a + and $f + add "0" + hlcoord 1, 0 + ld [hl], a + ld a, e + swap a + and $f + add "0" + hlcoord 0, 0 + ld [hl], a + ret +; 9282c + +Function9282c: ; 9282c + ld hl, wcf66 + ld a, [hl] + inc [hl] + and $7 + ret nz + ld hl, Sprites + $42 + ld c, $18 +.asm_92839 + ld a, [hl] + xor $20 + ld [hli], a +rept 3 + inc hl +endr + dec c + jr nz, .asm_92839 + ret +; 92844 + +Function92844: ; 92844 (24:6844) + ld a, [wJumptableIndex] + ld e, a + ld d, 0 + ld hl, Jumptable_92853 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 92853 (24:6853) + + +Jumptable_92853: ; 92853 (24:6853) + dw Function9287e + dw Function9288e + dw Function928c6 + dw Function928d6 + dw Function928e6 + dw Function92900 + dw Function92910 + dw Function9292a + dw Function9293a + dw Function92879 + dw Function92879 + dw Function92879 + dw Function92955 + dw Function9296b + dw Function92987 + dw Function9299e + dw Function929a4 + dw Function929d9 + dw Function929f0 + + +Function92879: ; 92879 (24:6879) + ld hl, wJumptableIndex + inc [hl] + ret + +Function9287e: ; 9287e (24:687e) + call Function92879 + xor a + ld [wc70b], a + ld [wc70c], a + ld a, $ff + ld [wc70d], a + ret + +Function9288e: ; 9288e (24:688e) + call Function9307c + jr nc, .asm_92899 + ld a, $12 + ld [wJumptableIndex], a + ret +.asm_92899 + call Function92879 + call Function9303f + call Function93002 + ld a, $20 + ld [wcf64], a + ld a, $4 + ld [wc6d0], a + ld [wc6e0], a + ld [wc6f0], a + ld a, $4 + ld [wc6d9], a + ld [wc6e9], a + ld [wc6f9], a + call WaitSFX + ld a, SFX_SLOT_MACHINE_START + call Function9331e + ret + +Function928c6: ; 928c6 (24:68c6) + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_928cf + dec [hl] + ret +.asm_928cf + call Function92879 + xor a + ld [hJoypadSum], a + ret + +Function928d6: ; 928d6 (24:68d6) + ld hl, hJoypadSum ; $ffa5 + ld a, [hl] + and A_BUTTON + ret z + call Function92879 + call Function92a2b + ld [wc6d0], a + +Function928e6: ; 928e6 (24:68e6) + ld a, [wc6d0] + cp $0 + ret nz + ld a, SFX_STOP_SLOT + call Function9331e + ld bc, wc6d0 + ld de, wc700 + call Function929f6 + call Function92879 + xor a + ld [hJoypadSum], a + +Function92900: ; 92900 (24:6900) + ld hl, hJoypadSum ; $ffa5 + ld a, [hl] + and A_BUTTON + ret z + call Function92879 + call Function92a2e + ld [wc6e0], a + +Function92910: ; 92910 (24:6910) + ld a, [wc6e0] + cp $0 + ret nz + ld a, SFX_STOP_SLOT + call Function9331e + ld bc, wc6e0 + ld de, wc703 + call Function929f6 + call Function92879 + xor a + ld [hJoypadSum], a + +Function9292a: ; 9292a (24:692a) + ld hl, hJoypadSum ; $ffa5 + ld a, [hl] + and A_BUTTON + ret z + call Function92879 + call Function92a60 + ld [wc6f0], a + +Function9293a: ; 9293a (24:693a) + ld a, [wc6f0] + cp $0 + ret nz + ld a, SFX_STOP_SLOT + call Function9331e + ld bc, wc6f0 + ld de, wc706 + call Function929f6 + call Function92879 + xor a + ld [hJoypadSum], a + ret + +Function92955: ; 92955 (24:6955) + ld a, [wc70d] + cp $ff + jr nz, .asm_92963 + call Function92879 + call Function92879 + ret +.asm_92963 + call Function92879 + ld a, $10 + ld [wcf64], a + +Function9296b: ; 9296b (24:696b) + ld hl, wcf64 + ld a, [hl] + and a + jr z, .asm_92980 + dec [hl] + srl a + ret z + ld a, [rOBP0] + xor $ff + ld e, a + ld d, a + call DmgToCgbObjPals + ret +.asm_92980 + call Function9279b + call Function92879 + ret + +Function92987: ; 92987 (24:6987) + xor a + ld [wc70b], a + ld [wc70c], a + ld a, $e4 + call DmgToCgbBGPals + call Function93124 + xor a + ld [wcf64], a + call Function92879 + ret + +Function9299e: ; 9299e (24:699e) + call Function93158 + call Function92879 + +Function929a4: ; 929a4 (24:69a4) + ld hl, wcf64 + ld a, [hl] + inc [hl] + and $1 + ret z + ld hl, wc711 + ld a, [hli] + ld d, a + or [hl] + jr z, .asm_929d5 + ld e, [hl] + dec de + ld [hl], e + dec hl + ld [hl], d + ld hl, Coins + ld d, [hl] + inc hl + ld e, [hl] + call Function92a04 + jr c, .asm_929c5 + inc de +.asm_929c5 + ld [hl], e + dec hl + ld [hl], d + ld a, [wcf64] + and $7 + ret z + ld de, SFX_GET_COIN_FROM_SLOTS + call PlaySFX + ret +.asm_929d5 + call Function92879 + ret + +Function929d9: ; 929d9 (24:69d9) + call Function9304c + call WaitPressAorB_BlinkCursor + call Function930e9 + jr c, .asm_929ea + ld a, $0 + ld [wJumptableIndex], a + ret +.asm_929ea + ld a, $12 + ld [wJumptableIndex], a + ret + +Function929f0: ; 929f0 (24:69f0) + ld hl, wJumptableIndex + set 7, [hl] + ret + +Function929f6: ; 929f6 (24:69f6) + push de + call Function92a12 + pop de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + ret + +Function92a04: ; 92a04 (24:6a04) + ld a, d + cp 9999 / $100 + jr c, .asm_92a10 + ld a, e + cp 9999 % $100 + jr c, .asm_92a10 + scf + ret +.asm_92a10 + and a + ret + +Function92a12: ; 92a12 (24:6a12) + ld hl, $3 + add hl, bc + ld a, [hl] + and a + jr nz, .asm_92a1c + ld a, $f +.asm_92a1c + dec a + and $f + ld e, a + ld d, $0 + ld hl, $1 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ret + +Function92a2b: ; 92a2b (24:6a2b) + ld a, $7 + ret + +Function92a2e: ; 92a2e (24:6a2e) + ld a, [wc70a] + cp $2 + jr c, .asm_92a4e + ld a, [wc709] + and a + jr z, .asm_92a3f + cp $ff + jr nz, .asm_92a4e +.asm_92a3f + call Function92a51 + jr nz, .asm_92a4e + call Random + cp $50 + jr nc, .asm_92a4e + ld a, $a + ret +.asm_92a4e + ld a, $8 + ret + +Function92a51: ; 92a51 (24:6a51) + ld a, [wc700] + and a + ret z + ld a, [wc701] + and a + ret z + ld a, [wc702] + and a + ret + +Function92a60: ; 92a60 (24:6a60) + ld a, [wc70b] + and a + jr z, .asm_92a95 + ld a, [wc70c] + and a + jr z, .asm_92a95 + ld a, [wc709] + and a + jr nz, .asm_92a84 + call Random + cp 180 + jr nc, .asm_92a95 + cp 120 + jr nc, .asm_92a92 + cp 60 + jr nc, .asm_92a8f + ld a, $15 + ret +.asm_92a84 + call Random + cp $a0 + jr nc, .asm_92a95 + cp $50 + jr nc, .asm_92a92 +.asm_92a8f + ld a, $12 + ret +.asm_92a92 + ld a, $10 + ret +.asm_92a95 + ld a, $9 + ret + +Function92a98: ; 92a98 (24:6a98) + ld bc, wc6d0 + ld hl, $6 + add hl, bc + ld de, Sprites + $40 + ld [hl], e + inc hl + ld [hl], d + ld hl, $1 + add hl, bc + ld de, Unknown_93327 + ld [hl], e + inc hl + ld [hl], d + ld hl, $8 + add hl, bc + ld [hl], $30 + call Function92af9 + ld bc, wc6e0 + ld hl, $6 + add hl, bc + ld de, Sprites + $60 + ld [hl], e + inc hl + ld [hl], d + ld hl, $1 + add hl, bc + ld de, Unknown_93339 + ld [hl], e + inc hl + ld [hl], d + ld hl, $8 + add hl, bc + ld [hl], $50 + call Function92af9 + ld bc, wc6f0 + ld hl, $6 + add hl, bc + ld de, Sprites + $80 + ld [hl], e + inc hl + ld [hl], d + ld hl, $1 + add hl, bc + ld de, Unknown_9334b + ld [hl], e + inc hl + ld [hl], d + ld hl, $8 + add hl, bc + ld [hl], $70 + call Function92af9 + ret + +Function92af9: ; 92af9 (24:6af9) + ld hl, 0 + add hl, bc + ld [hl], $0 + ld hl, $3 + add hl, bc + ld [hl], $e + ld hl, $4 + add hl, bc + ld [hl], $0 + call Function92b53 + ret + +Function92b0f: ; 92b0f (24:6b0f) + ld bc, wc6d0 + call Function92b22 + ld bc, wc6e0 + call Function92b22 + ld bc, wc6f0 + call Function92b22 + ret + +Function92b22: ; 92b22 (24:6b22) + ld hl, $4 + add hl, bc + ld a, [hl] + and $f + jr nz, .asm_92b2e + call Function92bd4 +.asm_92b2e + ld hl, $5 + add hl, bc + ld a, [hl] + and a + ret z + ld d, a + ld hl, $4 + add hl, bc + add [hl] + ld [hl], a + and $f + jr z, Function92b53 + ld hl, $6 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + ld e, $8 +.asm_92b49 + ld a, [hl] + add d + ld [hli], a +rept 3 + inc hl +endr + dec e + jr nz, .asm_92b49 + ret + +Function92b53: ; 92b53 (24:6b53) + ld hl, $8 + add hl, bc + ld a, [hl] + ld [wc712 + 1], a + ld a, $50 + ld [wc712 + 2], a + ld hl, $3 + add hl, bc + ld e, [hl] + ld d, $0 + ld hl, $1 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a + add hl, de + ld e, l + ld d, h + call Function92b83 + ld hl, $3 + add hl, bc + ld a, [hl] + inc a + and $f + cp $f + jr nz, .asm_92b81 + xor a +.asm_92b81 + ld [hl], a + ret + +Function92b83: ; 92b83 (24:6b83) + ld hl, $6 + add hl, bc + ld a, [hli] + ld h, [hl] + ld l, a +.asm_92b8a + ld a, [wc712 + 2] + ld [hli], a + ld a, [wc712 + 1] + ld [hli], a + ld a, [de] + ld [hli], a + srl a + srl a + set 7, a + ld [hli], a + ld a, [wc712 + 2] + ld [hli], a + ld a, [wc712 + 1] + add $8 + ld [hli], a + ld a, [de] +rept 2 + inc a +endr + ld [hli], a + srl a + srl a + set 7, a + ld [hli], a + inc de + ld a, [wc712 + 2] + sub $10 + ld [wc712 + 2], a + cp $10 + jr nz, .asm_92b8a + ret +; 92bbe (24:6bbe) + +Function92bbe: ; 92bbe + push hl + srl a + srl a + add Unknown_92bce % $100 + ld l, a + ld a, 0 + adc Unknown_92bce / $100 + ld h, a + ld a, [hl] + pop hl + ret +; 92bce + +Unknown_92bce: ; 92bce + db 0, 1, 2, 3, 4, 5 +; 92bd4 + +Function92bd4: ; 92bd4 (24:6bd4) + ld hl, 0 + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Jumptable_92be4 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] +; 92be4 (24:6be4) + +Jumptable_92be4: ; 92be4 + dw Function92c16 + dw Function92c4c + dw Function92c17 + dw Function92c1e + dw Function92c25 + dw Function92c2c + dw Function92c33 + dw Function92c5e + dw Function92c86 + dw Function92ca9 + dw Function92cd2 + dw Function92cf8 + dw Function92d13 + dw Function92df7 + dw Function92e10 + dw Function92e31 + dw Function92e47 + dw Function92e64 + dw Function92d20 + dw Function92d4f + dw Function92d6e + dw Function92d7e + dw Function92da4 + dw Function92db3 + dw Function92dca +; 92c16 + +Function92c16: ; 92c16 + ret +; 92c17 + +Function92c17: ; 92c17 + ld hl, $5 + add hl, bc + ld [hl], $10 + ret +; 92c1e + +Function92c1e: ; 92c1e + ld hl, $5 + add hl, bc + ld [hl], $8 + ret +; 92c25 + +Function92c25: ; 92c25 + ld hl, $5 + add hl, bc + ld [hl], $4 + ret +; 92c2c + +Function92c2c: ; 92c2c + ld hl, $5 + add hl, bc + ld [hl], $2 + ret +; 92c33 + +Function92c33: ; 92c33 + ld hl, $5 + add hl, bc + ld [hl], $1 + ret +; 92c3a + +Function92c3a: ; 92c3a + ld hl, $5 + add hl, bc + ld [hl], $0 + ld hl, 0 + add hl, bc + ld [hl], $1 + ld hl, $f + add hl, bc + ld [hl], $3 + +Function92c4c: ; 92c4c + ld hl, $f + add hl, bc + ld a, [hl] + and a + jr z, .asm_92c56 + dec [hl] + ret + +.asm_92c56 + ld hl, 0 + add hl, bc + ld a, $0 + ld [hl], a + ret +; 92c5e + +Function92c5e: ; 92c5e + ld a, [wc709] + cp $ff + jr z, .asm_92c72 + ld hl, $9 + add hl, bc + ld a, [hl] + and a + jr z, .asm_92c72 + dec [hl] + call Function92c76 + ret nz + +.asm_92c72 + call Function92c3a + ret +; 92c76 + +Function92c76: ; 92c76 + call Function92a12 + ld a, [wc709] + ld e, a + ld a, [hli] + cp e + ret z + ld a, [hli] + cp e + ret z + ld a, [hl] + cp e + ret +; 92c86 + +Function92c86: ; 92c86 + call Function92e94 + jr nc, .asm_92c94 + ld a, [wc717] + ld hl, wc709 + cp [hl] + jr z, .asm_92ca5 + +.asm_92c94 + ld a, [wc709] + cp $ff + jr z, .asm_92ca5 + ld hl, $9 + add hl, bc + ld a, [hl] + and a + jr z, .asm_92ca5 + dec [hl] + ret + +.asm_92ca5 + call Function92c3a + ret +; 92ca9 + +Function92ca9: ; 92ca9 + call Function92f1d + jr nc, .asm_92cbd + ld hl, wc709 + cp [hl] + jr z, .asm_92cce + ld hl, $9 + add hl, bc + ld a, [hl] + and a + ret z + dec [hl] + ret + +.asm_92cbd + ld a, [wc709] + cp $ff + jr z, .asm_92cce + ld hl, $9 + add hl, bc + ld a, [hl] + and a + jr z, .asm_92cce + dec [hl] + ret + +.asm_92cce + call Function92c3a + ret +; 92cd2 + +Function92cd2: ; 92cd2 + call Function92e94 + jr nc, .asm_92ce1 + ld a, [wc70c] + and a + jr z, .asm_92ce1 + call Function92c3a + ret + +.asm_92ce1 + ld a, SFX_STOP_SLOT + call Function9331e + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $a + add hl, bc + ld [hl], $20 + ld hl, $5 + add hl, bc + ld [hl], $0 + ret +; 92cf8 + +Function92cf8: ; 92cf8 + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr z, .asm_92d02 + dec [hl] + ret + +.asm_92d02 + ld a, SFX_THROW_BALL + call Function9331e + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $8 + ret +; 92d13 + +Function92d13: ; 92d13 + call Function92e94 + ret nc + ld a, [wc70c] + and a + ret z + call Function92c3a + ret +; 92d20 + +Function92d20: ; 92d20 + call Function92f1d + ret c + ld a, SFX_STOP_SLOT + call Function9331e + call Function93316 + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $0 + call Function92fc0 + push bc + push af + ld de, $6068 + ld a, $6 + call Function3b2a + ld hl, $e + add hl, bc + pop af + ld [hl], a + pop bc + xor a + ld [wcf64], a + +Function92d4f: ; 92d4f + ld a, [wcf64] + cp $2 + jr z, .asm_92d5b + cp $1 + jr z, .asm_92d62 + ret + +.asm_92d5b + call Function92f1d + call Function92c3a + ret + +.asm_92d62 + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $8 + ret +; 92d6e + +Function92d6e: ; 92d6e + xor a + ld [wcf64], a + ld hl, 0 + add hl, bc + dec [hl] + ld hl, $5 + add hl, bc + ld [hl], $0 + ret +; 92d7e + +Function92d7e: ; 92d7e + call Function92f1d + ret c + ld a, SFX_STOP_SLOT + call Function9331e + call Function93316 + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $0 + push bc + ld de, $6000 + ld a, $7 + call Function3b2a + pop bc + xor a + ld [wcf64], a + ret +; 92da4 + +Function92da4: ; 92da4 + ld a, [wcf64] + and a + ret z + ld hl, 0 + add hl, bc + inc [hl] + ld a, $2 + ld [wcf64], a + +Function92db3: ; 92db3 + ld a, [wcf64] + cp $4 + ret c + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $5 + add hl, bc + ld [hl], $10 + ld hl, $a + add hl, bc + ld [hl], $11 + +Function92dca: ; 92dca + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr z, .asm_92dd4 + dec [hl] + ret + +.asm_92dd4 + call Function92f1d + jr nc, .asm_92de5 + and a + jr nz, .asm_92de5 + ld a, $5 + ld [wcf64], a + call Function92c3a + ret + +.asm_92de5 + ld hl, $5 + add hl, bc + ld [hl], $0 + ld hl, 0 + add hl, bc +rept 2 + dec [hl] +endr + ld a, $1 + ld [wcf64], a + ret +; 92df7 + +Function92df7: ; 92df7 + call Function92f1d + ret c + ld a, SFX_STOP_SLOT + call Function9331e + call Function93316 + ld hl, 0 + add hl, bc + inc [hl] + call Function92fc0 + ld hl, $a + add hl, bc + ld [hl], a + +Function92e10: ; 92e10 + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr nz, .asm_92e1f + call Function92f1d + call Function92c3a + ret + +.asm_92e1f + dec [hl] + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $b + add hl, bc + ld [hl], $20 + ld hl, $5 + add hl, bc + ld [hl], $0 + +Function92e31: ; 92e31 + ld hl, $b + add hl, bc + ld a, [hl] + and a + jr z, .asm_92e3b + dec [hl] + ret + +.asm_92e3b + ld hl, 0 + add hl, bc + dec [hl] + ld hl, $5 + add hl, bc + ld [hl], $8 + ret +; 92e47 + +Function92e47: ; 92e47 + call Function92f1d + ret c + ld a, SFX_STOP_SLOT + call Function9331e + call Function93316 + ld hl, $5 + add hl, bc + ld [hl], $1 + ld hl, 0 + add hl, bc + inc [hl] + ld hl, $a + add hl, bc + ld [hl], $10 + +Function92e64: ; 92e64 + ld hl, $a + add hl, bc + ld a, [hl] + and a + jr z, .asm_92e73 + dec [hl] +.asm_92e6d + ld a, SFX_GOT_SAFARI_BALLS + call Function9331e + ret + +.asm_92e73 + ld a, [wc709] + and a + jr nz, .asm_92e88 + call Function92f1d + jr nc, .asm_92e6d + and a + jr nz, .asm_92e6d + call Function92c3a + call WaitSFX + ret + +.asm_92e88 + call Function92f1d + jr c, .asm_92e6d + call Function92c3a + call WaitSFX + ret +; 92e94 + +Function92e94: ; 92e94 + xor a + ld [wc70b], a + ld [wc70c], a + call Function92a12 + call Function92fb4 + ld a, [wc70a] + and 3 + ld e, a + ld d, 0 + ld hl, Jumptable_92ebd +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .asm_92eb6 + push de + jp [hl] + +.asm_92eb6 + ld a, [wc70b] + and a + ret z + scf + ret +; 92ebd + +Jumptable_92ebd: ; 92ebd + dw Function92ed4 + dw Function92ed1 + dw Function92ecb + dw Function92ec5 +; 92ec5 + +Function92ec5: ; 92ec5 + call Function92ee0 + call Function92ef6 + +Function92ecb: ; 92ecb + call Function92ed5 + call Function92f01 + +Function92ed1: ; 92ed1 + call Function92eeb + +Function92ed4: ; 92ed4 + ret +; 92ed5 + +Function92ed5: ; 92ed5 + ld hl, wc70e + ld a, [EnemyScreens] + cp [hl] + call z, Function92f0c + ret +; 92ee0 + +Function92ee0: ; 92ee0 + ld hl, wEnemyGoesFirst + ld a, [wc700] + cp [hl] + call z, Function92f0c + ret +; 92eeb + +Function92eeb: ; 92eeb + ld hl, wEnemyGoesFirst + ld a, [wc701] + cp [hl] + call z, Function92f0c + ret +; 92ef6 + +Function92ef6: ; 92ef6 + ld hl, wEnemyGoesFirst + ld a, [wc702] + cp [hl] + call z, Function92f0c + ret +; 92f01 + +Function92f01: ; 92f01 + ld hl, wc710 + ld a, [wc702] + cp [hl] + call z, Function92f0c + ret +; 92f0c + +Function92f0c: ; 92f0c + ld [wc717], a + and a + jr nz, .asm_92f17 + ld a, $1 + ld [wc70c], a + +.asm_92f17 + ld a, $1 + ld [wc70b], a + ret +; 92f1d + +Function92f1d: ; 92f1d + ld a, $ff + ld [EffectFailed], a + call Function92a12 + call Function92fb4 + ld a, [wc70a] + and 3 + ld e, a + ld d, 0 + ld hl, Jumptable_92f48 +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .asm_92f3d + push de + jp [hl] + +.asm_92f3d + ld a, [wc70d] + cp $ff + jr nz, .asm_92f46 + and a + ret + +.asm_92f46 + scf + ret +; 92f48 + +Jumptable_92f48: ; 92f48 + dw Function92f5f + dw Function92f5c + dw Function92f56 + dw Function92f50 +; 92f50 + +Function92f50: ; 92f50 + call Function92f70 + call Function92f90 + +Function92f56: ; 92f56 + call Function92f60 + call Function92fa0 + +Function92f5c: ; 92f5c + call Function92f80 + +Function92f5f: ; 92f5f + ret +; 92f60 + +Function92f60: ; 92f60 + ld hl, wc70e + ld a, [wc700] + cp [hl] + ret nz + ld hl, wc703 + cp [hl] + call z, Function92fb0 + ret +; 92f70 + +Function92f70: ; 92f70 + ld hl, wc710 + ld a, [wc700] + cp [hl] + ret nz + ld hl, wc704 + cp [hl] + call z, Function92fb0 + ret +; 92f80 + +Function92f80: ; 92f80 + ld hl, wEnemyGoesFirst + ld a, [wc701] + cp [hl] + ret nz + ld hl, wc704 + cp [hl] + call z, Function92fb0 + ret +; 92f90 + +Function92f90: ; 92f90 + ld hl, wc70e + ld a, [wc702] + cp [hl] + ret nz + ld hl, wc704 + cp [hl] + call z, Function92fb0 + ret +; 92fa0 + +Function92fa0: ; 92fa0 + ld hl, wc710 + ld a, [wc702] + cp [hl] + ret nz + ld hl, wc705 + cp [hl] + call z, Function92fb0 + ret +; 92fb0 + +Function92fb0: ; 92fb0 + ld [wc70d], a + ret +; 92fb4 + +Function92fb4: ; 92fb4 + ld de, wc70e + ld a, [hli] + ld [de], a + inc de + ld a, [hli] + ld [de], a + inc de + ld a, [hl] + ld [de], a + ret +; 92fc0 + +Function92fc0: ; 92fc0 + ld hl, $3 + add hl, bc + ld a, [hl] + push af + push hl + call Function92fcf + pop hl + pop af + ld [hl], a + ld a, e + ret +; 92fcf + +Function92fcf: ; 92fcf + ld a, [wc709] + and a + jr nz, .asm_92fe8 + ld e, $0 +.asm_92fd7 + ld hl, $3 + add hl, bc + inc [hl] + inc e + push de + call Function92f1d + pop de + jr nc, .asm_92fd7 + and a + jr nz, .asm_92fd7 + ret + +.asm_92fe8 + call Random + and $7 + cp $4 + jr c, .asm_92fe8 + ld e, a +.asm_92ff2 + ld a, e + inc e + ld hl, $3 + add hl, bc + add [hl] + ld [hl], a + push de + call Function92f1d + pop de + jr c, .asm_92ff2 + ret +; 93002 + +Function93002: ; 93002 (24:7002) + ld a, [wc709] + and a + ret z + ld hl, Unknown_93023 + ld a, [ScriptVar] + and a + jr z, .asm_93013 + ld hl, Unknown_93031 +.asm_93013 + call Random + ld c, a +.asm_93017 + ld a, [hli] + cp c + jr nc, .asm_9301e + inc hl + jr .asm_93017 +.asm_9301e + ld a, [hl] + ld [wc709], a + ret +; 93023 (24:7023) + +Unknown_93023: ; 93023 + db $01, $00 + db $03, $04 + db $0a, $14 + db $14, $10 + db $28, $0c + db $30, $08 + db $ff, $ff +; 93031 + +Unknown_93031: ; 93031 + db $02, $00 + db $03, $04 + db $08, $14 + db $10, $10 + db $1e, $0c + db $50, $08 + db $ff, $ff +; 9303f + +Function9303f: ; 9303f (24:703f) + ld b, $14 + ld a, [wc70a] + dec a + jr z, asm_93066 + dec a + jr z, asm_9305a + jr asm_9304e + +Function9304c: ; 9304c (24:704c) + ld b, $23 +asm_9304e: ; 9304e (24:704e) + hlcoord 3, 2 + call Function93069 + hlcoord 3, 10 + call Function93069 +asm_9305a: ; 9305a (24:705a) + hlcoord 3, 4 + call Function93069 + hlcoord 3, 8 + call Function93069 +asm_93066: ; 93066 (24:7066) + hlcoord 3, 6 + +Function93069: ; 93069 (24:7069) + ld a, b + ld [hl], a + ld de, $d + add hl, de + ld [hl], a + ld de, $7 + add hl, de + inc a + ld [hl], a + ld de, $d + add hl, de + ld [hl], a + ret + +Function9307c: ; 9307c (24:707c) + ld hl, UnknownText_0x930c7 + call PrintText + ld hl, MenuDataHeader_0x930d6 + call LoadMenuDataHeader + call InterpretMenu2 + call WriteBackup + ret c + ld a, [MenuSelection2] + ld b, a + ld a, $4 + sub b + ld [wc70a], a + ld hl, Coins + ld c, a + ld a, [hli] + and a + jr nz, .asm_930ad + ld a, [hl] + cp c + jr nc, .asm_930ad + ld hl, UnknownText_0x930d1 + call PrintText + jr Function9307c +.asm_930ad + ld hl, Coins + 1 + ld a, [hl] + sub c + ld [hld], a + jr nc, .asm_930b6 + dec [hl] +.asm_930b6 + call WaitSFX + ld de, SFX_PAY_DAY + call PlaySFX + ld hl, UnknownText_0x930cc + call PrintText + and a + ret +; 930c7 (24:70c7) + +UnknownText_0x930c7: ; 0x930c7 + ; Bet how many coins? + text_jump UnknownText_0x1c5049 + db "@" +; 0x930cc + +UnknownText_0x930cc: ; 0x930cc + ; Start! + text_jump UnknownText_0x1c505e + db "@" +; 0x930d1 + +UnknownText_0x930d1: ; 0x930d1 + ; Not enough coins. + text_jump UnknownText_0x1c5066 + db "@" +; 0x930d6 + +MenuDataHeader_0x930d6: ; 0x930d6 + db $40 ; flags + db 10, 14 ; start coords + db 17, 19 ; end coords + dw MenuData2_0x930de + db 1 ; default option +; 0x930de + +MenuData2_0x930de: ; 0x930de + db $80 ; flags + db 3 ; items + db " 3@" + db " 2@" + db " 1@" +; 0x930e9 + +Function930e9: ; 930e9 (24:70e9) + ld hl, Coins + ld a, [hli] + or [hl] + jr nz, .asm_930fd + ld hl, UnknownText_9311a + call PrintText + ld c, 60 + call DelayFrames + jr .asm_93118 +.asm_930fd + ld hl, UnknownText_9311f + call PrintText + call LoadMenuTextBox + lb bc, 14, 12 + call PlaceYesNoBox + ld a, [MenuSelection2] + dec a + call WriteBackup + and a + jr nz, .asm_93118 + and a + ret +.asm_93118 + scf + ret +; 9311a (24:711a) + +UnknownText_9311a: ; 9311a + text_jump UnknownText_0x1c5079 + db "@" + +UnknownText_9311f: ; 9311f + text_jump UnknownText_0x1c5092 + db "@" + +Function93124: ; 93124 (24:7124) + ld a, [EffectFailed] + cp $ff + jr z, .asm_93151 + srl a + ld e, a + ld d, 0 + ld hl, .data_93145 + add hl, de + ld a, [hli] + ld [PlayerUsedMoves], a + ld e, a + ld a, [hl] + ld [wc711], a + ld d, a + callba MobileFn_105fe3 + ret + +.data_93145 + db $2c, $01 + db $32, $00 + db $06, $00 + db $08, $00 + db $0a, $00 + db $0f, $00 + +.asm_93151 + ld hl, wc711 + xor a + ld [hli], a + ld [hl], a + ret + +Function93158: ; 93158 (24:7158) + ld a, [EffectFailed] + cp $ff + jr nz, .asm_9316c + ld hl, UnknownText_0x931e0 + call PrintText + callba MobileFn_105fd0 + ret +.asm_9316c + srl a + ld e, a + ld d, 0 + ld hl, Unknown_93195 +rept 3 + add hl, de +endr + ld de, StringBuffer2 + ld bc, $4 + call CopyBytes + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .asm_93188 + push de + jp [hl] +.asm_93188 + ld hl, UnknownText_0x931b9 + call PrintText + callba MobileFn_105f9f + ret +; 93195 (24:7195) + +Unknown_93195: ; 93195 + db "300@" + dw Function931e5 + db "50@@" + dw Function9320b + db "6@@@" + dw Function93214 + db "8@@@" + dw Function93214 + db "10@@" + dw Function93214 + db "15@@" + dw Function93214 +; 931b9 + +UnknownText_0x931b9: ; 0x931b9 + start_asm +; 0x931ba + +Function931ba: ; 931ba + ld a, [EffectFailed] + add $25 + ldcoord_a 2, 13 + inc a + ldcoord_a 2, 14 + inc a + ldcoord_a 3, 13 + inc a + ldcoord_a 3, 14 + hlcoord 18, 17 + ld [hl], $ee + ld hl, UnknownText_0x931db +rept 4 + inc bc +endr + ret +; 931db + +UnknownText_0x931db: ; 0x931db + ; lined up! Won @ coins! + text_jump UnknownText_0x1c509f + db "@" +; 0x931e0 + +UnknownText_0x931e0: ; 0x931e0 + ; Darn! + text_jump UnknownText_0x1c50bb + db "@" +; 0x931e5 + +Function931e5: ; 931e5 + ld a, SFX_2ND_PLACE + call Function9331e + call WaitSFX + ld a, [wd002] + and a + jr nz, .asm_931ff + call Random + and $14 + ret z + ld a, $ff + ld [wc709], a + ret + +.asm_931ff + call Random + and $1c + ret z + ld a, $ff + ld [wc709], a + ret +; 9320b + +Function9320b: ; 9320b + ld a, SFX_3RD_PLACE + call Function9331e + call WaitSFX + ret +; 93214 + +Function93214: ; 93214 + ld a, SFX_PRESENT + call Function9331e + call WaitSFX + ret +; 9321d + +Function9321d: ; 9321d (24:721d) + ld hl, $b + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Jumptable_9322d +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_9322d: ; 9322d (24:722d) + dw Function93233 + dw Function93259 + dw Function93289 + + +Function93233: ; 93233 (24:7233) + ld hl, $e + add hl, bc + ld a, [hl] + and a + jr nz, .asm_93247 + ld a, $2 + ld [wcf64], a + ld hl, 0 + add hl, bc + ld [hl], $0 + ret +.asm_93247 + dec [hl] + ld hl, $b + add hl, bc + inc [hl] + ld hl, $c + add hl, bc + ld [hl], $30 + ld hl, $6 + add hl, bc + ld [hl], $0 + +Function93259: ; 93259 (24:7259) + ld hl, $c + add hl, bc + ld a, [hl] + cp $20 + jr c, .asm_93273 + dec [hl] + ld e, a + ld d, $70 + callba Functionce765 + ld a, e + ld hl, $7 + add hl, bc + ld [hl], a + ret +.asm_93273 + ld hl, $b + add hl, bc + inc [hl] + ld hl, $d + add hl, bc + ld [hl], $2 + ld a, $1 + ld [wcf64], a + ld a, SFX_PLACE_PUZZLE_PIECE_DOWN + call Function9331e + ret + +Function93289: ; 93289 (24:7289) + ld hl, $6 + add hl, bc + ld a, [hl] +rept 2 + inc [hl] +endr + cp $48 + jr nc, .asm_932a3 + and $3 + ret nz + ld hl, $d + add hl, bc + ld a, [hl] + xor $ff + inc a + ld [hl], a + ld [hSCY], a + ret +.asm_932a3 + ld hl, $b + add hl, bc + xor a + ld [hl], a + ld [hSCY], a + ret + +Function932ac: ; 932ac (24:72ac) + ld hl, $b + add hl, bc + ld e, [hl] + ld d, 0 + ld hl, Jumptable_932bc +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a + jp [hl] + +Jumptable_932bc: ; 932bc (24:72bc) + dw Function932c2 + dw Function932e0 + dw Function932fc + + +Function932c2: ; 932c2 (24:72c2) + ld hl, $4 + add hl, bc + ld a, [hl] + inc [hl] + cp $68 + jr z, .asm_932d6 + and $f + ret nz + ld de, SFX_JUMP_OVER_LEDGE + call PlaySFX + ret +.asm_932d6 + ld hl, $b + add hl, bc + inc [hl] + ld a, $1 + ld [wcf64], a + +Function932e0: ; 932e0 (24:72e0) + ld a, [wcf64] + cp $2 + jr z, .asm_932f1 + cp $5 + ret nz + ld hl, 0 + add hl, bc + ld [hl], $0 + ret +.asm_932f1 + ld hl, $b + add hl, bc + inc [hl] + ld hl, $c + add hl, bc + ld [hl], $8 + +Function932fc: ; 932fc (24:72fc) + ld hl, $c + add hl, bc + ld a, [hl] + and a + jr z, .asm_93306 + dec [hl] + ret +.asm_93306 + ld hl, $b + add hl, bc + dec [hl] + push bc + ld de, $606c + ld a, $8 + call Function3b2a + pop bc + ret +; 93316 (24:7316) + +Function93316: ; 93316 + push bc + ld c, 16 + call DelayFrames + pop bc + ret +; 9331e + +Function9331e: ; 9331e (24:731e) + push de + ld e, a + ld d, 0 + call PlaySFX + pop de + ret +; 93327 (24:7327) + +Unknown_93327: ; 93327 + db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14 +Unknown_93339: ; 93339 + db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08 +Unknown_9334b: ; 9334b + db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08 +; 9335d + +SlotsTilemap: ; 9335d +INCBIN "gfx/slots.tilemap" +; 9344d + +Slots1LZ: ; 9344d +INCBIN "gfx/slots_1.2bpp.lz" +; 935cd + +Slots2LZ: ; 935cd +INCBIN "gfx/slots_2.2bpp.lz" +; 9382d + +Slots3LZ: ; 9382d +INCBIN "gfx/slots_3.2bpp.lz" +; 93a3d diff --git a/engine/specials.asm b/engine/specials.asm index c1e9ff95b..21d391faa 100644 --- a/engine/specials.asm +++ b/engine/specials.asm @@ -65,14 +65,14 @@ SpecialsPointers:: ; c029 add_special Special_SlotMachine add_special Special_CardFlip add_special Special_DummyNonfunctionalGameCornerGame - add_special Special_WhiteBGMapBufferScreen - add_special FadeBlackBGMap + add_special Special_ClearBGPalettesBufferScreen + add_special FadeOutPalettes add_special Special_BattleTowerFade add_special Special_FadeBlackQuickly - add_special FadeInBGMap + add_special FadeInPalettes add_special Special_FadeInQuickly add_special Special_ReloadSpritesNoPalettes - add_special WhiteBGMap + add_special ClearBGPalettes add_special UpdateTimePals add_special ClearTileMap add_special UpdateSprites @@ -465,8 +465,8 @@ UnknownText_0xc3d6: ; 0xc3d6 db "@" ; 0xc3db -Special_WhiteBGMapBufferScreen: ; c3db - call WhiteBGMap +Special_ClearBGPalettesBufferScreen: ; c3db + call ClearBGPalettes call BufferScreen ret ; c3e2 diff --git a/engine/startmenu.asm b/engine/startmenu.asm index b7287be83..1c7768850 100755 --- a/engine/startmenu.asm +++ b/engine/startmenu.asm @@ -139,7 +139,7 @@ endr ; 126b7 .Clear ; 126b7 - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call Function2bae call .DrawMenuAccount_ @@ -529,7 +529,7 @@ StartMenu_Pokemon: ; 12976 .choosemenu xor a ld [PartyMenuActionText], a ; Choose a POKéMON. - call WhiteBGMap + call ClearBGPalettes .menu callba Function5004f @@ -1449,7 +1449,7 @@ MonMenu_RockSmash: ; 12f3b ; 12f50 MonMenu_SweetScent: ; 12f50 - callba DoMovementFunctionc + callba SweetScentFromMenu ld b, $4 ld a, $2 ret @@ -1466,7 +1466,7 @@ Function12f5b: ; 12f5b ld a, b ld [Options], a push af - call WhiteBGMap + call ClearBGPalettes pop af ret ; 12f73 @@ -1527,7 +1527,7 @@ ManagePokemonMoves: ; 12fba call MoveScreenLoop pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes .egg ld a, $0 @@ -1753,7 +1753,7 @@ String_1316b: ; 1316b ; 13172 SetUpMoveScreenBG: ; 13172 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a diff --git a/engine/std_scripts.asm b/engine/std_scripts.asm index c898eae14..a886dbbf3 100644 --- a/engine/std_scripts.asm +++ b/engine/std_scripts.asm @@ -302,7 +302,7 @@ RadioTowerRocketsScript: end BugContestResultsWarpScript: - special WhiteBGMap + special ClearBGPalettes scall BugContestResults_CopyContestantsToResults setevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY clearevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm index bdfcc8b05..1dbd9b2ee 100644 --- a/engine/timeofdaypals.asm +++ b/engine/timeofdaypals.asm @@ -116,7 +116,7 @@ _UpdateTimePals:: ; 8c070 ret ; 8c079 -FadeInBGMap:: ; 8c079 +FadeInPalettes:: ; 8c079 ld c, $12 call GetTimePalFade ld b, $4 @@ -124,7 +124,7 @@ FadeInBGMap:: ; 8c079 ret ; 8c084 -FadeBlackBGMap:: ; 8c084 +FadeOutPalettes:: ; 8c084 call Function8c0c1 ld c, $9 call GetTimePalFade diff --git a/engine/title.asm b/engine/title.asm index d29c90a23..a9b991e6b 100644 --- a/engine/title.asm +++ b/engine/title.asm @@ -1,6 +1,6 @@ _TitleScreen: ; 10ed67 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap diff --git a/event/basement_key.asm b/event/basement_key.asm new file mode 100755 index 000000000..605b2af88 --- /dev/null +++ b/event/basement_key.asm @@ -0,0 +1,34 @@ +_BasementKey: ; 507b4 +; Are we even in the right map to use this? + ld a, [MapGroup] + cp GROUP_WAREHOUSE_ENTRANCE + jr nz, .nope + + ld a, [MapNumber] + cp MAP_WAREHOUSE_ENTRANCE + jr nz, .nope +; Are we on the tile in front of the door? + call GetFacingTileCoord + ld a, d + cp 22 + jr nz, .nope + ld a, e + cp 10 + jr nz, .nope +; Let's use the Basement Key + ld hl, .BasementKeyScript + call QueueScript + ld a, 1 + ld [wd0ec], a + ret + +.nope + ld a, $0 + ld [wd0ec], a + ret +; 507e1 + +.BasementKeyScript: ; 0x507e1 + loadmovesprites + farjump BasementDoorScript +; 0x507e6 diff --git a/event/card_key.asm b/event/card_key.asm new file mode 100755 index 000000000..b442ba184 --- /dev/null +++ b/event/card_key.asm @@ -0,0 +1,39 @@ +_CardKey: ; 50779 +; Are we even in the right map to use this? + ld a, [MapGroup] + cp GROUP_RADIO_TOWER_3F + jr nz, .nope + + ld a, [MapNumber] + cp MAP_RADIO_TOWER_3F + jr nz, .nope +; Are we facing the slot? + ld a, [PlayerDirection] + and $c + cp OW_UP + jr nz, .nope + + call GetFacingTileCoord + ld a, d + cp 18 + jr nz, .nope + ld a, e + cp 6 + jr nz, .nope +; Let's use the Card Key. + ld hl, .CardKeyScript + call QueueScript + ld a, $1 + ld [wd0ec], a + ret + +.nope + ld a, $0 + ld [wd0ec], a + ret +; 507af + +.CardKeyScript: ; 0x507af + loadmovesprites + farjump MapRadioTower3FSignpost2Script +; 0x507b4 diff --git a/event/poisonstep.asm b/event/poisonstep.asm new file mode 100755 index 000000000..1fafd63a5 --- /dev/null +++ b/event/poisonstep.asm @@ -0,0 +1,162 @@ +DoPoisonStep:: ; 505da + ld a, [PartyCount] + and a + jr z, .no_faint + + xor a + ld c, 7 + ld hl, EngineBuffer1 +.loop_clearEngineBuffer1 + ld [hli], a + dec c + jr nz, .loop_clearEngineBuffer1 + + xor a + ld [CurPartyMon], a +.loop_check_poison + call .DamageMonIfPoisoned + jr nc, .not_poisoned +; the output flag is stored in c, copy it to the ([CurPartyMon] + 2)nd EngineBuffer +; and set the corresponding flag in EngineBuffer1 + ld a, [CurPartyMon] + ld e, a + ld d, 0 + ld hl, EngineBuffer2 + add hl, de + ld [hl], c + ld a, [EngineBuffer1] + or c + ld [EngineBuffer1], a + +.not_poisoned + ld a, [PartyCount] + ld hl, CurPartyMon + inc [hl] + cp [hl] + jr nz, .loop_check_poison + + ld a, [EngineBuffer1] + and %10 + jr nz, .someone_has_fainted + ld a, [EngineBuffer1] + and %01 + jr z, .no_faint + call .PlayPoisonSFX + xor a + ret + +.someone_has_fainted + ld a, BANK(.Script_MonFaintedToPoison) + ld hl, .Script_MonFaintedToPoison + call CallScript + scf + ret + +.no_faint + xor a + ret +; 5062e + +.DamageMonIfPoisoned: ; 5062e +; check if mon is poisoned, return if not + ld a, MON_STATUS + call GetPartyParamLocation + ld a, [hl] + and 1 << PSN + ret z + +; check if mon is already fainted, return if so + ld a, MON_HP + call GetPartyParamLocation + ld a, [hli] + ld b, a + ld c, [hl] + or c + ret z + +; do 1 HP damage + dec bc + ld [hl], c + dec hl + ld [hl], b + +; check if mon has fainted as a result of poison damage + ld a, b + or c + jr nz, .not_fainted + +; the mon has fainted, reset its status, set carry, and return %10 + ld a, MON_STATUS + call GetPartyParamLocation + ld [hl], 0 + ld c, %10 + scf + ret + +.not_fainted +; set carry and return %01 + ld c, %01 + scf + ret +; 50658 + +.PlayPoisonSFX: ; 50658 + ld de, SFX_POISON + call PlaySFX + ld b, $2 + predef Functioncbcdd + call DelayFrame + ret +; 50669 + +.Script_MonFaintedToPoison: ; 50669 + callasm .PlayPoisonSFX + loadfont + callasm .CheckWhitedOut + iffalse .whiteout + loadmovesprites + end +; 50677 + +.whiteout: ; 50677 + farjump Script_OverworldWhiteout +; 5067b + +.CheckWhitedOut: ; 5067b + xor a + ld [CurPartyMon], a + ld de, EngineBuffer2 +.party_loop + push de + ld a, [de] + and %10 + jr z, .mon_not_fainted + ld c, HAPPINESS_POISONFAINT + callba ChangeHappiness + callba GetPartyNick + ld hl, .PoisonFaintText + call PrintText + +.mon_not_fainted + pop de + inc de + ld hl, CurPartyMon + inc [hl] + ld a, [PartyCount] + cp [hl] + jr nz, .party_loop + predef CheckPlayerPartyForFitPkmn + ld a, d + ld [ScriptVar], a + ret +; 506b2 + +.PoisonFaintText: ; 506b2 + text_jump UnknownText_0x1c0acc + db "@" +; 506b7 + +.PoisonWhiteOutText: ; 506b7 + text_jump UnknownText_0x1c0ada + db "@" +; 506bc diff --git a/event/sacred_ash.asm b/event/sacred_ash.asm new file mode 100755 index 000000000..00b80bb46 --- /dev/null +++ b/event/sacred_ash.asm @@ -0,0 +1,74 @@ + +_SacredAsh: ; 507e6 + ld a, $0 + ld [wd0ec], a + call CheckAnyFaintedMon + ret nc + + ld hl, SacredAshScript + call QueueScript + ld a, $1 + ld [wd0ec], a + ret +; 507fb + +CheckAnyFaintedMon: ; 507fb + ld de, PARTYMON_STRUCT_LENGTH + ld bc, PartySpecies + ld hl, PartyMon1HP + ld a, [PartyCount] + and a + ret z + +.loop + push af + push hl + ld a, [bc] + inc bc + cp EGG + jr z, .next + + ld a, [hli] + or [hl] + jr z, .done + +.next + pop hl + add hl, de + pop af + dec a + jr nz, .loop + xor a + ret + +.done + pop hl + pop af + scf + ret +; 50821 + +SacredAshScript: ; 0x50821 + special HealParty + reloadmappart + playsound SFX_WARP_TO + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes + waitbutton + writetext UnknownText_0x50845 + playsound SFX_CAUGHT_MON + waitbutton + closetext + loadmovesprites + end +; 0x50845 + +UnknownText_0x50845: ; 0x50845 + ; 's #MON were all healed! + text_jump UnknownText_0x1c0b65 + db "@" +; 0x5084a diff --git a/event/squirtbottle.asm b/event/squirtbottle.asm new file mode 100755 index 000000000..b59cdc3f1 --- /dev/null +++ b/event/squirtbottle.asm @@ -0,0 +1,51 @@ +_Squirtbottle: ; 50730 + ld hl, UnknownScript_0x5073c + call QueueScript + ld a, $1 + ld [wd0ec], a + ret +; 5073c + +UnknownScript_0x5073c: ; 0x5073c + reloadmappart + special UpdateTimePals + callasm Function50753 + iffalse UnknownScript_0x5074b + farjump WateredWeirdTreeScript +; 0x5074b + +UnknownScript_0x5074b: ; 0x5074b + jumptext UnknownText_0x5074e +; 0x5074e + +UnknownText_0x5074e: ; 0x5074e + ; sprinkled water. But nothing happened… + text_jump UnknownText_0x1c0b3b + db "@" +; 0x50753 + +Function50753: ; 50753 + ld a, [MapGroup] + cp GROUP_ROUTE_36 + jr nz, .asm_50774 + + ld a, [MapNumber] + cp MAP_ROUTE_36 + jr nz, .asm_50774 + + callba GetFacingObject + jr c, .asm_50774 + + ld a, d + cp $17 + jr nz, .asm_50774 + + ld a, $1 + ld [ScriptVar], a + ret + +.asm_50774 + xor a + ld [ScriptVar], a + ret +; 50779 diff --git a/event/sweet_scent.asm b/event/sweet_scent.asm new file mode 100755 index 000000000..ebe0d4266 --- /dev/null +++ b/event/sweet_scent.asm @@ -0,0 +1,75 @@ +SweetScentFromMenu: ; 506bc + ld hl, UnknownScript_0x506c8 + call QueueScript + ld a, $1 + ld [wd0ec], a + ret +; 506c8 + +UnknownScript_0x506c8: ; 0x506c8 + reloadmappart + special UpdateTimePals + callasm GetPartyNick + writetext UnknownText_0x50726 + closetext + callasm SweetScentEncounter + iffalse UnknownScript_0x506e9 + checkflag ENGINE_BUG_CONTEST_TIMER + iftrue UnknownScript_0x506e5 + battlecheck + startbattle + returnafterbattle + end +; 0x506e5 + +UnknownScript_0x506e5: ; 0x506e5 + farjump BugCatchingContestBattleScript +; 0x506e9 + +UnknownScript_0x506e9: ; 0x506e9 + writetext UnknownText_0x5072b + closetext + loadmovesprites + end +; 0x506ef + +SweetScentEncounter: ; 506ef + callba CanUseSweetScent + jr nc, .no_battle + ld hl, StatusFlags2 + bit 2, [hl] + jr nz, .not_in_bug_contest + callba GetMapEncounterRate + ld a, b + and a + jr z, .no_battle + callba ChooseWildEncounter + jr nz, .no_battle + jr .start_battle + +.not_in_bug_contest + callba ChooseWildEncounter_BugContest + +.start_battle + ld a, $1 + ld [ScriptVar], a + ret + +.no_battle + xor a + ld [ScriptVar], a + ld [BattleType], a + ret +; 50726 + +UnknownText_0x50726: ; 0x50726 + ; used SWEET SCENT! + text_jump UnknownText_0x1c0b03 + db "@" +; 0x5072b + +UnknownText_0x5072b: ; 0x5072b + ; Looks like there's nothing here… + text_jump UnknownText_0x1c0b1a + db "@" +; 0x50730 diff --git a/event/whiteout.asm b/event/whiteout.asm index 6cf6976cf..5cc0a07f9 100755 --- a/event/whiteout.asm +++ b/event/whiteout.asm @@ -10,7 +10,7 @@ Script_OverworldWhiteout:: ; 0x124c8 Script_Whiteout: ; 0x124ce writetext .WhitedOutText closetext - special FadeBlackBGMap + special FadeOutPalettes pause 40 special HealParty checkflag ENGINE_BUG_CONTEST_TIMER diff --git a/gfx/overworld/chris_fish.2bpp b/gfx/overworld/chris_fish.2bpp new file mode 100644 index 000000000..c3609ab54 Binary files /dev/null and b/gfx/overworld/chris_fish.2bpp differ diff --git a/gfx/overworld/kris_fish.2bpp b/gfx/overworld/kris_fish.2bpp new file mode 100644 index 000000000..9d47dc140 Binary files /dev/null and b/gfx/overworld/kris_fish.2bpp differ diff --git a/gfx/unknown/0b84f2.2bpp b/gfx/unknown/0b84f2.2bpp deleted file mode 100644 index c3609ab54..000000000 Binary files a/gfx/unknown/0b84f2.2bpp and /dev/null differ diff --git a/gfx/unknown/0b8582.2bpp b/gfx/unknown/0b8582.2bpp deleted file mode 100644 index 9d47dc140..000000000 Binary files a/gfx/unknown/0b8582.2bpp and /dev/null differ diff --git a/home.asm b/home.asm index 290b9aeb5..d4ec46de4 100644 --- a/home.asm +++ b/home.asm @@ -530,7 +530,7 @@ CompareLong:: ; 31e4 ; 31f3 -WhiteBGMap:: ; 31f3 +ClearBGPalettes:: ; 31f3 call ClearPalettes WaitBGMap:: ; 31f6 ; Tell VBlank to update BG Map diff --git a/home/audio.asm b/home/audio.asm index a41fdbf00..9756d0460 100644 --- a/home/audio.asm +++ b/home/audio.asm @@ -1,6 +1,6 @@ ; Audio interfaces. -SoundRestart:: ; 3b4e +MapSetup_Sound_Off:: ; 3b4e push hl push de @@ -9,11 +9,11 @@ SoundRestart:: ; 3b4e ld a, [hROMBank] push af - ld a, BANK(_SoundRestart) + ld a, BANK(_MapSetup_Sound_Off) ld [hROMBank], a ld [MBC3RomBank], a - call _SoundRestart + call _MapSetup_Sound_Off pop af ld [hROMBank], a @@ -81,7 +81,7 @@ PlayMusic:: ; 3b97 ld a, [hROMBank] push af - ld a, BANK(_PlayMusic) ; and BANK(_SoundRestart) + ld a, BANK(_PlayMusic) ; and BANK(_MapSetup_Sound_Off) ld [hROMBank], a ld [MBC3RomBank], a @@ -93,7 +93,7 @@ PlayMusic:: ; 3b97 jr .end .nomusic - call _SoundRestart + call _MapSetup_Sound_Off .end pop af diff --git a/home/init.asm b/home/init.asm index ee3e8e4c1..753138748 100644 --- a/home/init.asm +++ b/home/init.asm @@ -1,6 +1,6 @@ Reset:: ; 150 di - call SoundRestart + call MapSetup_Sound_Off xor a ld [hMapAnims], a call ClearPalettes @@ -168,7 +168,7 @@ Init:: ; 17d predef Function9853 - call SoundRestart + call MapSetup_Sound_Off xor a ld [wMapMusic], a jp GameInit diff --git a/home/map.asm b/home/map.asm index bb73f4e03..2e80fb3f6 100644 --- a/home/map.asm +++ b/home/map.asm @@ -209,8 +209,8 @@ endr ret ; 222a -Function222a:: ; 222a - ld a, MAPSETUP_10 +ReturnToMapFromSubmenu:: ; 222a + ld a, MAPSETUP_SUBMENU ld [hMapEntryMethod], a callba RunMapSetupScript xor a @@ -1099,13 +1099,14 @@ Call_a_de:: ; 26b7 ; 26c7 GetMovementData:: ; 26c7 +; Initialize the movement data for person c at b:hl ld a, [hROMBank] push af ld a, b rst Bankswitch ld a, c - call Function19e9 + call LoadMovementDataPointer pop hl ld a, h @@ -1964,7 +1965,7 @@ FadeToMenu:: ; 2b29 xor a ld [hBGMapMode], a call LoadStandardMenuDataHeader - callba FadeBlackBGMap + callba FadeOutPalettes call ClearSprites call DisableSpriteUpdates ret @@ -1972,7 +1973,7 @@ FadeToMenu:: ; 2b29 Function2b3c:: ; 2b3c - call WhiteBGMap + call ClearBGPalettes call Function2bae call UpdateSprites call Call_ExitMenu @@ -1981,7 +1982,7 @@ Function2b3c:: ; 2b3c ; 2b4d Function2b4d:: ; 2b4d - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call Function2bae call UpdateSprites @@ -1993,7 +1994,7 @@ Function2b5c:: ; 2b5c call GetSGBLayout callba Function49409 call Function3200 - callba FadeInBGMap + callba FadeInPalettes call EnableSpriteUpdates ret ; 2b74 @@ -2003,7 +2004,7 @@ Function2b74:: ; 0x2b74 push af ld a, $1 ld [wc2ce], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call Function2bae hlcoord 0, 12 diff --git a/home/map_objects.asm b/home/map_objects.asm index d52530af1..e5d6dab01 100644 --- a/home/map_objects.asm +++ b/home/map_objects.asm @@ -428,7 +428,8 @@ Function19b8:: ; 19b8 -Function19e9:: ; 19e9 +LoadMovementDataPointer:: ; 19e9 +; Load the movement data pointer for person a. ld [wMovementPerson], a ld a, [hROMBank] ld [wMovementDataPointer], a @@ -439,12 +440,15 @@ Function19e9:: ; 19e9 ld a, [wMovementPerson] call CheckObjectVisibility ret c + ld hl, OBJECT_MOVEMENTTYPE add hl, bc ld [hl], SPRITEMOVEDATA_SCRIPTED + ld hl, OBJECT_09 add hl, bc ld [hl], 0 + ld hl, VramState set 7, [hl] and a @@ -589,14 +593,15 @@ endr ; 1aae Function1aae:: ; 1aae +; Switch to the movement data bank ld a, [hROMBank] push af ld a, [hli] rst Bankswitch - +; Load the current script byte as given by OBJECT_MOVEMENT_BYTE_INDEX, and increment OBJECT_MOVEMENT_BYTE_INDEX ld a, [hli] ld d, [hl] - ld hl, OBJECT_27 + ld hl, OBJECT_MOVEMENT_BYTE_INDEX add hl, bc add [hl] ld e, a diff --git a/home/serial.asm b/home/serial.asm index 8b9656262..fdaba6cc5 100644 --- a/home/serial.asm +++ b/home/serial.asm @@ -6,7 +6,7 @@ Serial:: ; 6ef push de push hl - ld a, [$ffc9] + ld a, [hFFC9] and a jr nz, .asm_71c @@ -77,7 +77,7 @@ Serial:: ; 6ef .asm_752 ld a, $1 - ld [$ffca], a + ld [hFFCA], a ld a, $fe ld [hSerialSend], a @@ -91,7 +91,7 @@ Serial:: ; 6ef Function75f:: ; 75f ld a, $1 - ld [$ffcc], a + ld [hFFCC], a .asm_763 ld a, [hl] ld [hSerialSend], a @@ -103,7 +103,7 @@ Function75f:: ; 75f .asm_76e dec a jr nz, .asm_76e - ld a, [$ffcc] + ld a, [hFFCC] and a ld a, b pop bc @@ -112,7 +112,7 @@ Function75f:: ; 75f cp $fd jr nz, .asm_763 xor a - ld [$ffcc], a + ld [hFFCC], a jr .asm_763 .asm_782 @@ -127,7 +127,7 @@ Function75f:: ; 75f Function78a:: ; 78a xor a - ld [$ffca], a + ld [hFFCA], a ld a, [hLinkPlayerNumber] cp $2 jr nz, .asm_79b @@ -137,7 +137,7 @@ Function78a:: ; 78a ld [rSC], a .asm_79b - ld a, [$ffca] + ld a, [hFFCA] and a jr nz, .asm_7e5 ld a, [hLinkPlayerNumber] @@ -182,7 +182,7 @@ Function78a:: ; 78a .asm_7e5 xor a - ld [$ffca], a + ld [hFFCA], a ld a, [rIE] and $f sub $8 @@ -251,7 +251,7 @@ Function83b:: ; 83b ld de, wcf51 ld c, $2 ld a, $1 - ld [$ffcc], a + ld [hFFCC], a .asm_847 call DelayFrame ld a, [hl] @@ -259,10 +259,10 @@ Function83b:: ; 83b call Function78a ld b, a inc hl - ld a, [$ffcc] + ld a, [hFFCC] and a ld a, $0 - ld [$ffcc], a + ld [hFFCC], a jr nz, .asm_847 ld a, b ld [de], a diff --git a/hram.asm b/hram.asm index 34d6510ff..99db5d3f9 100644 --- a/hram.asm +++ b/hram.asm @@ -68,14 +68,18 @@ hPrintNum10 EQU $ffbc hUsedSpriteIndex EQU $ffbd hUsedSpriteTile EQU $ffbe +hFFBF EQU $ffbf +hFFC0 EQU $ffc0 +hFFC1 EQU $ffc1 +hFFC2 EQU $ffc2 hMoneyTemp EQU $ffc3 hLCDStatCustom EQU $ffc6 hFFC9 EQU $ffc9 - +hFFCA EQU $ffca hLinkPlayerNumber EQU $ffcb - +hFFCC EQU $ffcc hSerialSend EQU $ffcd hSerialReceive EQU $ffce diff --git a/items/item_effects.asm b/items/item_effects.asm index f47e2669e..2b12b587e 100644 --- a/items/item_effects.asm +++ b/items/item_effects.asm @@ -714,7 +714,7 @@ endr and a jr z, .toss - call WhiteBGMap + call ClearBGPalettes call ClearTileMap .toss @@ -1866,7 +1866,7 @@ UseItem_SelectMon: ; f1f9 (3:71f9) push hl push de push bc - call WhiteBGMap + call ClearBGPalettes call Functionf21c pop bc pop de diff --git a/macros/movement.asm b/macros/movement.asm index d0b97fb8c..2b5720832 100644 --- a/macros/movement.asm +++ b/macros/movement.asm @@ -303,16 +303,44 @@ hide_person: macro db movement_hide_person ; $3d endm - enum movement_show_person -show_person: macro - db movement_show_person ; $3e + enum movement_step_sleep_1 +step_sleep_1: macro + db movement_step_sleep_1 ; $3e endm -__enum__ = $45 + enum movement_step_sleep_2 +step_sleep_2: macro + db movement_step_sleep_2 ; $3f + endm + + enum movement_step_sleep_3 +step_sleep_3: macro + db movement_step_sleep_3 ; $40 + endm + + enum movement_step_sleep_4 +step_sleep_4: macro + db movement_step_sleep_4 ; $41 + endm + + enum movement_step_sleep_5 +step_sleep_5: macro + db movement_step_sleep_5 ; $42 + endm - enum movement_accelerate_last -accelerate_last: macro - db movement_accelerate_last ; $45 + enum movement_step_sleep_6 +step_sleep_6: macro + db movement_step_sleep_6 ; $43 + endm + + enum movement_step_sleep_7 +step_sleep_7: macro + db movement_step_sleep_7 ; $44 + endm + + enum movement_step_sleep_8 +step_sleep_8: macro + db movement_step_sleep_8 ; $45 endm enum movement_step_sleep @@ -333,6 +361,11 @@ remove_person: macro db movement_remove_person ; $49 endm + enum movement_step_loop +step_loop: macro + db movement_step_loop ; $4a + endm + __enum__ = $4c enum movement_teleport_from @@ -362,9 +395,9 @@ fish_got_bite: macro db movement_fish_got_bite ; $51 endm - enum movement_fish_got_bite_2 -fish_got_bite_2: macro - db movement_fish_got_bite_2 ; $52 + enum movement_fish_cast_rod +fish_cast_rod: macro + db movement_fish_cast_rod ; $52 endm enum movement_hide_emote diff --git a/main.asm b/main.asm index b58e05282..11a57420e 100644 --- a/main.asm +++ b/main.asm @@ -439,7 +439,7 @@ Continue: ; 5d65 ld [MusicFadeIDLo], a ld a, MUSIC_NONE / $100 ld [MusicFadeIDHi], a - call WhiteBGMap + call ClearBGPalettes call Function5df0 call WriteBackup call ClearTileMap @@ -451,7 +451,7 @@ Continue: ; 5d65 ld a, [wSpawnAfterChampion] cp SPAWN_LANCE jr z, .SpawnAfterE4 - ld a, MAPSETUP_02 + ld a, MAPSETUP_CONTINUE ld [hMapEntryMethod], a jp FinishContinueFunction @@ -1085,7 +1085,7 @@ Function6219: ; 6219 jr nc, .loop call ClearSprites - call WhiteBGMap + call ClearBGPalettes pop af ld [rSVBK], a @@ -1467,7 +1467,7 @@ CopyrightString: ; 63fd GameInit:: ; 642e callba Function14f1c call ResetTextRelatedRAM - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a @@ -3186,7 +3186,7 @@ Function8000: ; 8000 call DisableSpriteUpdates xor a ld [hBGMapMode], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites hlcoord 0, 0 ld bc, TileMapEnd - TileMap @@ -3603,6 +3603,7 @@ Function8286: ; 8286 ld hl, OBJECT_MAP_OBJECT_INDEX add hl, de ld [hl], a + ld a, [wc2f4] call Function1a61 ld a, [wc2f3] @@ -3610,30 +3611,39 @@ Function8286: ; 8286 add hl, de or [hl] ld [hl], a + ld a, [wc2f7] call Function82d5 + ld a, [wc2f6] call Function82f1 + ld a, [wc2f1] ld hl, OBJECT_SPRITE add hl, de ld [hl], a + ld a, [wc2f2] ld hl, OBJECT_SPRITE_TILE add hl, de ld [hl], a + ld hl, OBJECT_09 add hl, de ld [hl], $0 + ld hl, OBJECT_FACING_STEP add hl, de ld [hl], $ff + ld a, [wc2f8] call Function830d + ld a, [wc2f5] ld hl, OBJECT_32 add hl, de ld [hl], a + and a ret ; 82d5 @@ -3694,7 +3704,7 @@ Function830d: ; 830d TrainerWalkToPlayer: ; 831e ld a, [hLastTalked] call InitMovementBuffer - ld a, movement_show_person + ld a, movement_step_sleep_1 call AppendToMovementBuffer ld a, [wd03f] dec a @@ -5269,7 +5279,7 @@ FlyFunction: ; ca3b special WarpToSpawnPoint callasm DelayLoadingNewSprites writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_12 + newloadmap MAPSETUP_FLY callasm Function8cb33 special WaitSFX callasm Functioncacb @@ -5537,7 +5547,7 @@ UsedDigOrEscapeRopeScript: ; 0xcc3c farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_05 + newloadmap MAPSETUP_DOOR playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcc5d end @@ -5635,7 +5645,7 @@ Script_UsedTeleport: ; 0xccbb farscall Script_AbortBugContest special WarpToSpawnPoint writecode VAR_MOVEMENT, $0 - newloadmap MAPSETUP_04 + newloadmap MAPSETUP_TELEPORT playsound SFX_WARP_FROM applymovement PLAYER, MovementData_0xcce3 end @@ -6333,14 +6343,14 @@ MovementData_0xd062: ; d062 fish_got_bite fish_got_bite fish_got_bite - show_person + step_sleep_1 show_emote step_end ; d069 MovementData_0xd069: ; d069 hide_emote - fish_got_bite_2 + fish_cast_rod step_end ; d06c @@ -6362,7 +6372,7 @@ Script_FishCastRod: ; 0xd07c loadvar hBGMapMode, $0 special UpdateTimePals loademote EMOTE_09 - callasm Functionb84b3 + callasm LoadFishingGFX loademote EMOTE_SHOCK applymovement PLAYER, MovementData_0xd093 pause 40 @@ -6370,7 +6380,7 @@ Script_FishCastRod: ; 0xd07c ; 0xd093 MovementData_0xd093: ; d093 - fish_got_bite_2 + fish_cast_rod step_end ; d095 @@ -9801,7 +9811,7 @@ Functione43f: ; e43f (3:643f) ret Functione443: ; e443 (3:6443) - ld hl, MenuDataHeader_0xe46f + ld hl, .MenuDataHeader call LoadMenuDataHeader ld a, $1 .loop @@ -9815,7 +9825,7 @@ Functione443: ; e443 (3:6443) ld a, [wMenuCursorBuffer] push af ld a, [MenuSelection] - ld hl, Jumptable_e4ba + ld hl, .Jumptable rst JumpTable pop bc ld a, b @@ -9825,38 +9835,38 @@ Functione443: ; e443 (3:6443) ret ; e46f (3:646f) -MenuDataHeader_0xe46f: ; 0xe46f +.MenuDataHeader: ; 0xe46f db $40 ; flags db 00, 00 ; start coords db 17, 19 ; end coords - dw MenuData2_0xe477 + dw .MenuData2 db 1 ; default option ; 0xe477 -MenuData2_0xe477: ; 0xe477 +.MenuData2: ; 0xe477 db $80 ; flags db 0 ; items - dw MenuItems_e4c4 + dw .items dw Function1f79 - dw Strings_e47f + dw .strings ; 0xe47f -Strings_e47f: ; e47f +.strings: ; e47f db "WITHDRAW @" db "DEPOSIT @" db "CHANGE BOX@" db "MOVE W/O MAIL@" db "SEE YA!@" -Jumptable_e4ba: ; e4ba (3:64ba) - dw Functione559 - dw Functione4fe - dw Functione583 - dw Functione4cd - dw Functione4cb +.Jumptable: ; e4ba (3:64ba) + dw BillsPC_WithdrawMenu + dw BillsPC_DepositMenu + dw BillsPC_ChangeBoxMenu + dw BillsPC_MovePKMNMenu + dw BillsPC_SeeYa ; e4c4 -MenuItems_e4c4: ; e4c4 +.items: ; e4c4 db 5 db 0 ; WITHDRAW db 1; DEPOSIT @@ -9866,27 +9876,27 @@ MenuItems_e4c4: ; e4c4 db -1 ; e4cb -Functione4cb: ; e4cb +BillsPC_SeeYa: ; e4cb scf ret ; e4cd -Functione4cd: ; e4cd +BillsPC_MovePKMNMenu: ; e4cd call LoadStandardMenuDataHeader callba Function44781 - jr nc, .asm_e4e0 + jr nc, .no_mail ld hl, UnknownText_0xe4f9 call PrintText - jr .asm_e4f4 + jr .quit -.asm_e4e0 +.no_mail callba Function14b34 - jr c, .asm_e4f4 - callba Functione2759 - call Function222a + jr c, .quit + callba _MovePKMNWithoutMail + call ReturnToMapFromSubmenu call ClearPCItemScreen -.asm_e4f4 +.quit call WriteBackup and a ret @@ -9898,10 +9908,10 @@ UnknownText_0xe4f9: ; 0xe4f9 db "@" ; 0xe4fe -Functione4fe: ; e4fe (3:64fe) +BillsPC_DepositMenu: ; e4fe (3:64fe) call LoadStandardMenuDataHeader - callba Functione2391 - call Function222a + callba _DepositPKMN + call ReturnToMapFromSubmenu call ClearPCItemScreen call WriteBackup and a @@ -9974,10 +9984,10 @@ CheckCurPartyMonFainted: ; e538 ; e559 -Functione559: ; e559 (3:6559) +BillsPC_WithdrawMenu: ; e559 (3:6559) call LoadStandardMenuDataHeader - callba Functione2583 - call Function222a + callba _WithdrawPKMN + call ReturnToMapFromSubmenu call ClearPCItemScreen call WriteBackup and a @@ -10004,8 +10014,8 @@ UnknownText_0xe57e: ; 0xe57e db "@" ; 0xe583 -Functione583: ; e583 (3:6583) - callba Functione35aa +BillsPC_ChangeBoxMenu: ; e583 (3:6583) + callba _ChangeBox and a ret @@ -10013,7 +10023,7 @@ ClearPCItemScreen: ; e58b call DisableSpriteUpdates xor a ld [hBGMapMode], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites hlcoord 0, 0 ld bc, SCREEN_HEIGHT * SCREEN_WIDTH @@ -10395,7 +10405,7 @@ Function11e75: ; 11e75 (4:5e75) ret Function11e9a: ; 11e9a (4:5e9a) - call WhiteBGMap + call ClearBGPalettes call DisableLCD call Function11c51 ld de, VTiles0 tile $00 @@ -11635,7 +11645,7 @@ Function156d9: ; 156d9 ret .asm_156f9 - call WhiteBGMap + call ClearBGPalettes ld c, $1 ret ; 156ff @@ -13144,7 +13154,7 @@ Function16be4: ; 16be4 push af set NO_TEXT_SCROLL, a ld [Options], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld de, UnownDexATile @@ -13225,7 +13235,7 @@ Function16be4: ; 16be4 ld [Options], a pop af ld [hInMenu], a - call Function222a + call ReturnToMapFromSubmenu ret ; 16ca0 @@ -15710,7 +15720,7 @@ Function25105: ; 25105 ret Function2513b: ; 2513b (9:513b) - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -17997,7 +18007,7 @@ LevelUpHappinessMod: ; 2709e INCLUDE "trainers/dvs.asm" Function2715c: ; 2715c - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, [BattleType] cp BATTLETYPE_TUTORIAL @@ -19614,7 +19624,7 @@ INCBIN "gfx/battle/balls.2bpp" ; 2c1b2 _ShowLinkBattleParticipants: ; 2c1b2 - call WhiteBGMap + call ClearBGPalettes call LoadFontsExtra hlcoord 2, 3 ld b, 9 @@ -20222,7 +20232,7 @@ Function2c7fb: ; 2c7fb ld de, wd066 ld bc, $c call CopyBytes - call WhiteBGMap + call ClearBGPalettes Function2c80a: ; 2c80a callba Function5004f @@ -23442,7 +23452,7 @@ Function4484a: ; 0x4484a call FadeToMenu xor a ld [PartyMenuActionText], a - call WhiteBGMap + call ClearBGPalettes .asm_448dc callba Function5004f callba Function50405 @@ -23564,7 +23574,7 @@ Function4802f: ; 4802f (12:402f) ld a, c and a call z, Function48000 - call WhiteBGMap + call ClearBGPalettes call Function48d3d ld a, [wd479] bit 1, a @@ -23587,7 +23597,7 @@ Function4802f: ; 4802f (12:402f) lb bc, BANK(GFX_488cb), 1 call Request1bpp call Function4a3a7 - call WhiteBGMap + call ClearBGPalettes ld a, [wd002] bit 6, a jr z, .asm_4808a @@ -23604,7 +23614,7 @@ Function4802f: ; 4802f (12:402f) call DelayFrames ld b, $1 call Function4930f - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $2 ld c, $14 @@ -23698,7 +23708,7 @@ asm_4815f: ; 4815f (12:415f) .asm_48177 jp Function48272 .asm_4817a - call WhiteBGMap + call ClearBGPalettes call Function48d30 pop bc call ClearTileMap @@ -23811,7 +23821,7 @@ Function4820d: ; 4820d (12:420d) call DelayFrames .asm_4825c - call WhiteBGMap + call ClearBGPalettes call Function48d30 pop bc call ClearTileMap @@ -24223,7 +24233,7 @@ Function48689: ; 48689 (12:4689) call DelayFrames ld b, $1 call Function4930f - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $4 ld c, $14 @@ -25436,7 +25446,7 @@ Function48e14: ; 48e14 (12:4e14) ld [MusicFadeIDHi], a ld c, 8 call DelayFrames - call WhiteBGMap + call ClearBGPalettes call Function48000 call LoadFontsExtra hlcoord 0, 0 @@ -25505,7 +25515,7 @@ INCBIN "gfx/misc/pack_f.2bpp" Function4925b: ; 4925b call FadeToMenu - call WhiteBGMap + call ClearBGPalettes call ClearScreen call DelayFrame ld b, $14 @@ -26955,16 +26965,16 @@ MainMenu_MysteryGift: ; 49ef5 ; 49efc MainMenu_Mobile: ; 49efc - call WhiteBGMap + call ClearBGPalettes ld a, MUSIC_MOBILE_ADAPTER_MENU ld [wMapMusic], a ld de, MUSIC_MOBILE_ADAPTER_MENU call Function4a6c5 Function49f0a: ; 49f0a - call WhiteBGMap + call ClearBGPalettes call Function4a3a7 call Function4a492 - call WhiteBGMap + call ClearBGPalettes Function49f16: ; 49f16 call Function4a071 ld c, 12 @@ -27021,7 +27031,7 @@ Function49f16: ; 49f16 .asm_49f84 pop bc - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, MUSIC_MAIN_MENU ld [wMapMusic], a @@ -27160,7 +27170,7 @@ Function4a0c2: ; 4a0c2 (12:60c2) ld c, $1 call Function4802f push af - call WhiteBGMap + call ClearBGPalettes pop af and a jr nz, .asm_4a0f9 @@ -27173,9 +27183,9 @@ Function4a0c2: ; 4a0c2 (12:60c2) Function4a100: ; 4a100 (12:6100) ld a, $2 call Function1ff8 - call WhiteBGMap + call ClearBGPalettes call Function4a13b - call WhiteBGMap + call ClearBGPalettes call ClearTileMap asm_4a111: ; 4a111 (12:6111) @@ -27308,7 +27318,7 @@ Function4a20e: ; 4a20e (12:620e) ld a, $1 call Function1ff8 callba Function1719c8 - call WhiteBGMap + call ClearBGPalettes call DelayFrame jr Function4a239 @@ -27378,7 +27388,7 @@ Function4a28a: ; 4a28a (12:628a) jr z, .asm_4a33b .asm_4a2df callba Function11765d - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call LoadFontsExtra scf @@ -27610,7 +27620,7 @@ MainMenu_MobileStudium: ; 4a496 push bc push de callba MobileStudium - call WhiteBGMap + call ClearBGPalettes pop de pop bc ld a, b @@ -27626,11 +27636,11 @@ MainMenu_MobileStudium: ; 4a496 Function4a4c4: ; 4a4c4 (12:64c4) - call WhiteBGMap + call ClearBGPalettes call Function4a3a7 call Function4a492 call Function4a680 - call WhiteBGMap + call ClearBGPalettes ld c, 20 call DelayFrames hlcoord 2, 0 @@ -27704,7 +27714,7 @@ asm_4a54d: ; 4a54d (12:654d) call Function1ff8 .asm_4a574 pop bc - call WhiteBGMap + call ClearBGPalettes call ClearTileMap jp Function49f0a .asm_4a57e @@ -27805,7 +27815,7 @@ endr Function4a6ab: ; 4a6ab (12:66ab) ld a, $2 call Function1ff8 - call WhiteBGMap + call ClearBGPalettes ld b, $8 call GetSGBLayout callba Function11c1ab @@ -28429,7 +28439,7 @@ UnknownText_0x4aa1d: ; 0x4aa1d ; 0x4aa22 Function4aa22: ; 4aa22 - call WhiteBGMap + call ClearBGPalettes Function4aa25: ; 4aa25 callba Function5004f @@ -29524,7 +29534,7 @@ Function4d319: ; 4d319 inc a ld [MenuSelection2], a call ClearScreen - call WhiteBGMap + call ClearBGPalettes call MaxVolume callba Function28ef8 callba Function4d354 @@ -30745,13 +30755,13 @@ StatsScreenInit_gotaddress: ; 4dc94 push bc push hl - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call UpdateSprites callba Functionfb53e pop hl call _hl_ - call WhiteBGMap + call ClearBGPalettes call ClearTileMap pop bc @@ -30860,7 +30870,7 @@ Function4dd6c: ; 4dd6c (13:5d6c) MonStatsInit: ; 4dd72 (13:5d72) ld hl, wcf64 res 6, [hl] - call WhiteBGMap + call ClearBGPalettes call ClearTileMap callba Function10402d call Function4ddf2 @@ -32140,3879 +32150,2507 @@ INCLUDE "event/poke_seer.asm" SECTION "bank14", ROMX, BANK[$14] -SelectMonFromParty: ; 50000 - call DisableSpriteUpdates - xor a - ld [PartyMenuActionText], a - call WhiteBGMap - call Function5003f - call WaitBGMap - call SetPalettes - call DelayFrame - call PartyMenuSelect - call Function2b74 - ret -; 5001d +INCLUDE "engine/party_menu.asm" +INCLUDE "event/poisonstep.asm" +INCLUDE "event/sweet_scent.asm" +INCLUDE "event/squirtbottle.asm" +INCLUDE "event/card_key.asm" +INCLUDE "event/basement_key.asm" +INCLUDE "event/sacred_ash.asm" +CopyPkmnToTempMon: ; 5084a +; gets the BaseData of a Pkmn +; and copys the PkmnStructure to TempMon -Function5001d: ; 5001d - ld a, b - ld [PartyMenuActionText], a - call DisableSpriteUpdates - call WhiteBGMap - call Function5003f - call WaitBGMap - ld b, $a - call GetSGBLayout - call SetPalettes - call DelayFrame - call PartyMenuSelect - call Function2b74 - ret -; 5003f + ld a, [CurPartyMon] + ld e, a + call GetPkmnSpecies + ld a, [CurPartySpecies] + ld [CurSpecies], a + call GetBaseData -Function5003f: ; 5003f - call Function5004f - call Function50405 - call Function503e0 - call WritePartyMenuTilemap - call PrintPartyMenuText - ret -; 5004f + ld a, [MonType] + ld hl, PartyMon1Species + ld bc, PARTYMON_STRUCT_LENGTH + and a + jr z, .copywholestruct + ld hl, OTPartyMon1Species + ld bc, PARTYMON_STRUCT_LENGTH + cp OTPARTYMON + jr z, .copywholestruct + ld bc, BOXMON_STRUCT_LENGTH + callab Functione5bb + jr .done -Function5004f: ; 5004f - call LoadFontsBattleExtra - callab Function8ad1 ; engine/color.asm - callab InefficientlyClear121BytesAtwc300 +.copywholestruct + ld a, [CurPartyMon] + call AddNTimes + ld de, TempMon + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + +.done ret -; 5005f +; 5088b -WritePartyMenuTilemap: ; 0x5005f - ld hl, Options +Function5088b: ; 5088b + ld bc, wd018 + jr Function50893 +; 50890 + +Function50890: ; 50890 + ld bc, TempMon + ; fallthrough +; 50893 + +Function50893: ; 50893 + ld hl, MON_LEVEL + add hl, bc ld a, [hl] - push af - set 4, [hl] ; Disable text delay + ld [CurPartyLevel], a + ld hl, MON_MAXHP + add hl, bc + ld d, h + ld e, l + ld hl, MON_EXP + 2 + add hl, bc + push bc + ld b, $1 + predef CalcPkmnStats + pop bc + ld hl, MON_HP + add hl, bc + ld d, h + ld e, l + ld a, [CurPartySpecies] + cp EGG + jr nz, .asm_508c1 xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill ; blank the tilemap - call GetPartyMenuTilemapPointers ; This reads from a pointer table??? -.loop - ld a, [hli] - cp $ff - jr z, .end ; 0x5007a $8 - push hl - ld hl, .Jumptable - rst JumpTable - pop hl - jr .loop ; 0x50082 $f3 -.end - pop af - ld [Options], a - ret -; 0x50089 - -.Jumptable: ; 50089 - dw PlacePartyNicknames - dw PlacePartyHPBar - dw PlacePartyMenuHPDigits - dw PlacePartyMonLevel - dw PlacePartyMonStatus - dw PlacePartyMonTMHMCompatibility - dw PlacePartyMonEvoStoneCompatibility - dw PlacePartyMonGender - dw PlacePartyMonMobileBattleSelection -; 5009b - -PlacePartyNicknames: ; 5009b - hlcoord 3, 1 - ld a, [PartyCount] - and a - jr z, .end - ld c, a - ld b, $0 -.loop + ld [de], a + inc de + ld [de], a + jr .asm_508cd + +.asm_508c1 push bc - push hl - push hl - ld hl, PartyMonNicknames - ld a, b - call GetNick - pop hl - call PlaceString - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de + ld hl, MON_MAXHP + add hl, bc + ld bc, 2 + call CopyBytes pop bc - inc b - dec c - jr nz, .loop -.end -rept 2 - dec hl -endr - ld de, .CANCEL - call PlaceString +.asm_508cd + ld hl, MON_STATUS + add hl, bc + xor a + ld [hli], a + ld [hl], a ret -; 500c8 +; 508d5 -.CANCEL: ; 500c8 - db "CANCEL@" -; 500cf +GetPkmnSpecies: ; 508d5 +; [MonType] has the type of the Pkmn +; e = Nr. of Pkmn (i.e. [CurPartyMon]) + ld a, [MonType] + and a ; PARTYMON + jr z, .partymon + cp OTPARTYMON + jr z, .otpartymon + cp BOXMON + jr z, .boxmon + cp BREEDMON + jr z, .breedmon + ; WILDMON -PlacePartyHPBar: ; 500cf - xor a - ld [wcda9], a - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, $0 - hlcoord 11, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .skip - push hl - call PlacePartymonHPBar - pop hl - ld d, $6 - ld b, $0 - call DrawBattleHPBar - ld hl, wcd9b - ld a, [wcda9] - ld c, a - ld b, $0 - add hl, bc - call SetHPPal - ld b, $fc - call GetSGBLayout +.partymon + ld hl, PartySpecies + jr .done -.skip - ld hl, wcda9 - inc [hl] - pop hl - ld de, 2 * SCREEN_WIDTH +.otpartymon + ld hl, OTPartySpecies + jr .done + +.boxmon + ld a, BANK(sBoxSpecies) + call GetSRAMBank + ld hl, sBoxSpecies + call .done + call CloseSRAM + ret + +.breedmon + ld a, [wBreedMon1Species] + jr .done2 + +.done + ld d, 0 add hl, de - pop bc - inc b - dec c - jr nz, .loop - ld b, $a - call GetSGBLayout + ld a, [hl] + +.done2 + ld [CurPartySpecies], a ret -; 50117 +; 5090d -PlacePartymonHPBar: ; 50117 - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1HP - call AddNTimes - ld a, [hli] - or [hl] - jr nz, .not_fainted - xor a - ld e, a + +INCLUDE "text/types.asm" + + +Function50a28: ; 50a28 + ld hl, Strings50a42 + ld a, [TrainerClass] + dec a ld c, a + ld b, 0 +rept 2 + add hl, bc +endr + ld a, [hli] + ld h, [hl] + ld l, a + ld de, StringBuffer1 +.copy + ld a, [hli] + ld [de], a + inc de + cp "@" + jr nz, .copy ret +; 50a42 -.not_fainted - dec hl - ld a, [hli] +Strings50a42: ; 50a42 +; Untranslated trainer class names from Red. + + dw .Youngster + dw .BugCatcher + dw .Lass + dw OTName + dw .JrTrainerM + dw .JrTrainerF + dw .Pokemaniac + dw .SuperNerd + dw OTName + dw OTName + dw .Burglar + dw .Engineer + dw .Jack + dw OTName + dw .Swimmer + dw OTName + dw OTName + dw .Beauty + dw OTName + dw .Rocker + dw .Juggler + dw OTName + dw OTName + dw .Blackbelt + dw OTName + dw .ProfOak + dw .Chief + dw .Scientist + dw OTName + dw .Rocket + dw .CooltrainerM + dw .CooltrainerF + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + dw OTName + +.Youngster db "たんパン@" +.BugCatcher db "むしとり@" +.Lass db "ミニスカ@" +.JrTrainerM db "ボーイ@" +.JrTrainerF db "ガール@" +.Pokemaniac db "マニア@" +.SuperNerd db "りかけい@" +.Burglar db "どろぼう@" +.Engineer db "ォヤジ@" +.Jack db "ジャック@" +.Swimmer db "かいパン@" +.Beauty db "おねえさん@" +.Rocker db "グループ@" +.Juggler db "ジャグラー@" +.Blackbelt db "からて@" +.ProfOak db "ォーキド@" +.Chief db "チーフ@" +.Scientist db "けんきゅういん@" +.Rocket db "だんいん@" +.CooltrainerM db "エりート♂@" +.CooltrainerF db "エりート♀@" +; 50b0a + + +DrawPlayerHP: ; 50b0a + ld a, $1 + jr DrawHP + +DrawEnemyHP: ; 50b0e + ld a, $2 + +DrawHP: ; 50b10 + ld [wd10a], a + push hl + push bc + ld a, [MonType] + cp BOXMON + jr z, .asm_50b30 + + ld a, [TempMonHP] ld b, a - ld a, [hli] + ld a, [TempMonHP + 1] ld c, a - ld a, [hli] + +; Any HP? + or b + jr nz, .asm_50b30 + + xor a + ld c, a + ld e, a + ld a, 6 ld d, a - ld a, [hli] + jp .asm_50b4a + +.asm_50b30 + ld a, [TempMonMaxHP] + ld d, a + ld a, [TempMonMaxHP + 1] ld e, a + ld a, [MonType] + cp BOXMON + jr nz, .asm_50b41 + + ld b, d + ld c, e + +.asm_50b41 predef DrawPartyMenuHPBar - ret -; 50138 + ld a, 6 + ld d, a + ld c, a -PlacePartyMenuHPDigits: ; 50138 - ld a, [PartyCount] - and a - ret z +.asm_50b4a + ld a, c + pop bc ld c, a - ld b, $0 - hlcoord 13, 1 -.loop - push bc + pop hl + push de push hl - call PartyMenuCheckEgg - jr z, .next push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1HP - call AddNTimes - ld e, l - ld d, h + call DrawBattleHPBar pop hl - push de + +; Print HP + ld bc, $15 ; move (1,1) + add hl, bc + ld de, TempMonHP + ld a, [MonType] + cp BOXMON + jr nz, .asm_50b66 + ld de, TempMonMaxHP +.asm_50b66 lb bc, 2, 3 call PrintNum - pop de + ld a, "/" ld [hli], a -rept 2 - inc de -endr + +; Print max HP + ld de, TempMonMaxHP lb bc, 2, 3 call PrintNum - -.next pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop + pop de ret -; 50176 +; 50b7b -PlacePartyMonLevel: ; 50176 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 8, 2 -.loop + +PrintTempMonStats: ; 50b7b +; Print TempMon's stats at hl, with spacing bc. push bc push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Level - call AddNTimes - ld e, l - ld d, h - pop hl - ld a, [de] - cp 100 ; This is distinct from MAX_LEVEL. - jr nc, .ThreeDigits - ld a, "" - ld [hli], a - lb bc, PRINTNUM_RIGHTALIGN | 1, 2 - ; jr .okay -.ThreeDigits - lb bc, PRINTNUM_RIGHTALIGN | 1, 3 -; .okay - call PrintNum - -.next + ld de, .StatNames + call PlaceString pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de pop bc - inc b - dec c - jr nz, .loop - ret -; 501b2 + add hl, bc + ld bc, SCREEN_WIDTH + add hl, bc + ld de, TempMonAttack + lb bc, 2, 3 + call .PrintStat + ld de, TempMonDefense + call .PrintStat + ld de, TempMonSpclAtk + call .PrintStat + ld de, TempMonSpclDef + call .PrintStat + ld de, TempMonSpeed + jp PrintNum +; 50bab -PlacePartyMonStatus: ; 501b2 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 5, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next +.PrintStat: ; 50bab push hl - ld a, b - ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Status - call AddNTimes - ld e, l - ld d, h - pop hl - call PlaceStatusString - -.next + call PrintNum pop hl ld de, SCREEN_WIDTH * 2 add hl, de - pop bc - inc b - dec c - jr nz, .loop ret -; 501e0 +; 50bb5 -PlacePartyMonTMHMCompatibility: ; 501e0 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld hl, PartySpecies - ld e, b - ld d, 0 - add hl, de - ld a, [hl] - ld [CurPartySpecies], a - predef CanLearnTMHMMove - pop hl - call .PlaceAbleNotAble - call PlaceString +.StatNames: ; 50bb5 + db "ATTACK" + next "DEFENSE" + next "SPCL.ATK" + next "SPCL.DEF" + next "SPEED" + next "@" +; 50bdd -.next - pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 50215 -.PlaceAbleNotAble: ; 50215 - ld a, c - and a - jr nz, .able - ld de, .string_not_able - ret +GetGender: ; 50bdd +; Return the gender of a given monster (CurPartyMon/CurOTMon/CurWildMon). +; When calling this function, a should be set to an appropriate MonType value. -.able - ld de, .string_able - ret -; 50221 +; return values: +; a = 1: f = nc|nz; male +; a = 0: f = nc|z; female +; f = c: genderless -.string_able: ; 50221 - db "ABLE@" -; 50226 +; This is determined by comparing the Attack and Speed DVs +; with the species' gender ratio. -.string_not_able: ; 50226 - db "NOT ABLE@" -; 5022f +; Figure out what type of monster struct we're looking at. -PlacePartyMonEvoStoneCompatibility: ; 5022f - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - push hl - ld a, b +; 0: PartyMon + ld hl, PartyMon1DVs ld bc, PARTYMON_STRUCT_LENGTH - ld hl, PartyMon1Species - call AddNTimes - ld a, [hl] - dec a - ld e, a - ld d, 0 - ld hl, EvosAttacksPointers -rept 2 - add hl, de -endr - call .DetermineCompatibility - pop hl - call PlaceString - -.next - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 50268 - -.DetermineCompatibility: ; 50268 - ld de, StringBuffer1 - ld a, BANK(EvosAttacksPointers) - ld bc, 2 - call FarCopyBytes - ld hl, StringBuffer1 - ld a, [hli] - ld h, [hl] - ld l, a - ld de, StringBuffer1 - ld a, BANK(EvosAttacks) - ld bc, $a - call FarCopyBytes - ld hl, StringBuffer1 -.loop2 - ld a, [hli] + ld a, [MonType] and a - jr z, .nope -rept 2 - inc hl -endr - cp EVOLVE_ITEM - jr nz, .loop2 -rept 2 - dec hl -endr - ld a, [CurItem] - cp [hl] -rept 2 - inc hl -endr - jr nz, .loop2 - ld de, .string_able - ret + jr z, .PartyMon -.nope - ld de, .string_not_able - ret -; 502a3 +; 1: OTPartyMon + ld hl, OTPartyMon1DVs + dec a + jr z, .PartyMon -.string_able: ; 502a3 - db "ABLE@" -; 502a8 -.string_not_able: ; 502a8 - db "NOT ABLE@" -; 502b1 +; 2: sBoxMon + ld hl, sBoxMon1DVs + ld bc, BOXMON_STRUCT_LENGTH + dec a + jr z, .sBoxMon +; 3: Unknown + ld hl, TempMonDVs + dec a + jr z, .DVs -PlacePartyMonGender: ; 502b1 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 2 -.loop - push bc - push hl - call PartyMenuCheckEgg - jr z, .next - ld [CurPartySpecies], a - push hl - ld a, b - ld [CurPartyMon], a - xor a - ld [MonType], a - call GetGender - ld de, .unknown - jr c, .got_gender - ld de, .male - jr nz, .got_gender - ld de, .female +; else: WildMon + ld hl, EnemyMonDVs + jr .DVs -.got_gender - pop hl - call PlaceString -.next - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ret -; 502ee +; Get our place in the party/box. -.male: ; 502ee - db "♂…MALE@" -; 502f5 +.PartyMon +.sBoxMon + ld a, [CurPartyMon] + call AddNTimes -.female: ; 502f5 - db "♀…FEMALE@" -; 502fe -.unknown: ; 502fe - db "…UNKNOWN@" -; 50307 +.DVs +; sBoxMon data is read directly from SRAM. + ld a, [MonType] + cp BOXMON + ld a, 1 + call z, GetSRAMBank -PlacePartyMonMobileBattleSelection: ; 50307 - ld a, [PartyCount] - and a - ret z - ld c, a - ld b, 0 - hlcoord 12, 1 -.loop - push bc - push hl - ld de, .String_Sanka_Shinai - call PlaceString - pop hl - ld de, 2 * SCREEN_WIDTH - add hl, de - pop bc - inc b - dec c - jr nz, .loop - ld a, l - ld e, PKMN_NAME_LENGTH - sub e - ld l, a - ld a, h - sbc $0 - ld h, a - ld de, .String_Kettei_Yameru - call PlaceString - ld b, $3 - ld c, $0 - ld hl, wd002 +; Attack DV + ld a, [hli] + and $f0 + ld b, a +; Speed DV ld a, [hl] -.loop2 - push hl - push bc - hlcoord 12, 1 -.loop3 - and a - jr z, .done - ld de, 2 * SCREEN_WIDTH - add hl, de - dec a - jr .loop3 + and $f0 + swap a -.done - ld de, .String_Banme - push hl - call PlaceString - pop hl - pop bc - push bc - push hl - ld a, c - ld hl, .Strings_1_2_3 - call GetNthString - ld d, h - ld e, l - pop hl - call PlaceString - pop bc - pop hl - inc hl - ld a, [hl] - inc c - dec b - ret z - jr .loop2 -; 5036b - -.String_Banme: ; 5036b - db " ばんめ @" ; Place -; 50372 -.String_Sanka_Shinai: ; 50372 - db "さんかしない@" ; Cancel -; 50379 -.String_Kettei_Yameru: ; 50379 - db "けってい やめる@" ; Quit -; 50383 -.Strings_1_2_3: ; 50383 - db "1@", "2@", "3@" ; 1st, 2nd, 3rd -; 50389 - - -PartyMenuCheckEgg: ; 50389 - ld a, PartySpecies % $100 - add b - ld e, a - ld a, PartySpecies / $100 - adc 0 - ld d, a - ld a, [de] - cp EGG - ret -; 50396 +; Put our DVs together. + or b + ld b, a -GetPartyMenuTilemapPointers: ; 50396 - ld a, [PartyMenuActionText] - and $f0 - jr nz, .skip - ld a, [PartyMenuActionText] - and $f - ld e, a - ld d, 0 - ld hl, .Pointers -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ret +; Close SRAM if we were dealing with a sBoxMon. + ld a, [MonType] + cp BOXMON + call z, CloseSRAM -.skip - ld hl, .Default - ret -; 503b2 -.Pointers: ; 503b2 - dw .Default - dw .Default - dw .Default - dw .TMHM - dw .Default - dw .EvoStone - dw .Gender - dw .Gender - dw .Default - dw .Mobile -; 503c6 - -.Default: db 0, 1, 2, 3, 4, $ff -.TMHM: db 0, 5, 3, 4, $ff -.EvoStone: db 0, 6, 3, 4, $ff -.Gender: db 0, 7, 3, 4, $ff -.Mobile: db 0, 8, 3, 4, $ff -; 503e0 - - -Function503e0: ; 503e0 - ld hl, PartyCount - ld a, [hli] - and a - ret z - ld c, a - xor a - ld [hObjectStructIndexBuffer], a -.asm_503ea +; We need the gender ratio to do anything with this. push bc - push hl - ld hl, Function8e83f - ld a, BANK(Function8e83f) - ld e, $0 - rst FarCall - ld a, [hObjectStructIndexBuffer] - inc a - ld [hObjectStructIndexBuffer], a - pop hl + ld a, [CurPartySpecies] + dec a + ld hl, BaseData + BaseGender - CurBaseData + ld bc, BaseData1 - BaseData + call AddNTimes pop bc - dec c - jr nz, .asm_503ea - callab Function8cf69 - ret -; 50405 -Function50405: ; 50405 - xor a - ld [wd0e3], a - ld de, Unknown_5044f - call Function1bb1 - ld a, [PartyCount] - inc a - ld [wcfa3], a - dec a - ld b, a - ld a, [wd0d8] - and a - jr z, .asm_50422 - inc b - cp b - jr c, .asm_50424 + ld a, BANK(BaseData) + call GetFarByte -.asm_50422 - ld a, $1 -.asm_50424 - ld [MenuSelection2], a - ld a, $3 - ld [wcfa8], a - ret -; 5042d +; The higher the ratio, the more likely the monster is to be female. + + cp $ff + jr z, .Genderless -Function5042d: ; 0x5042d - ld de, Unknown_5044f - call Function1bb1 - ld a, [PartyCount] - ld [wcfa3], a - ld b, a - ld a, [wd0d8] and a - jr z, .asm_50444 - inc b + jr z, .Male + + cp $fe + jr z, .Female + +; Values below the ratio are male, and vice versa. cp b - jr c, .asm_50446 -.asm_50444 - ld a, $1 -.asm_50446 - ld [MenuSelection2], a - ld a, $3 - ld [wcfa8], a + jr c, .Male + +.Female + xor a ret -; 5044f (14:444f) - -Unknown_5044f: ; 5044f -; cursor y -; cursor x -; list length -; ? -; bit 6: animate sprites bit 5: wrap around -; ? -; distance between items (hi: y, lo: x) -; allowed buttons (mask) - db $01, $00, $00, $01, $60, $00, $20, $00 -; 50457 - -PartyMenuSelect: ; 0x50457 -; sets carry if exitted menu. - call Function1bc9 - call Function1bee - ld a, [PartyCount] - inc a - ld b, a - ld a, [MenuSelection2] ; menu selection? - cp b - jr z, .exitmenu ; CANCEL - ld [wd0d8], a - ld a, [hJoyLast] - ld b, a - bit 1, b - jr nz, .exitmenu ; B button? - ld a, [MenuSelection2] - dec a - ld [CurPartyMon], a - ld c, a - ld b, $0 - ld hl, PartySpecies - add hl, bc - ld a, [hl] - ld [CurPartySpecies], a - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX +.Male + ld a, 1 and a ret -.exitmenu - ld de, SFX_READ_TEXT_2 - call PlaySFX - call WaitSFX +.Genderless scf ret -; 0x5049a - +; 50c50 -PrintPartyMenuText: ; 5049a - hlcoord 0, 14 - lb bc, 2, 18 - call TextBox - ld a, [PartyCount] - and a - jr nz, .haspokemon - ld de, YouHaveNoPKMNString - jr .gotstring -.haspokemon ; 504ae - ld a, [PartyMenuActionText] - and $f ; drop high nibble - ld hl, PartyMenuStrings +Function50c50: ; 50c50 + ld a, [wd0eb] + inc a + ld c, a + ld a, $4 + sub c + ld b, a + push hl + ld a, [Buffer1] ld e, a ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld d, [hl] - ld e, a -.gotstring ; 504be - ld a, [Options] - push af - set 4, a ; disable text delay - ld [Options], a - hlcoord 1, 16 ; Coord - call PlaceString - pop af - ld [Options], a - ret -; 0x504d2 - -PartyMenuStrings: ; 0x504d2 - dw ChooseAMonString - dw UseOnWhichPKMNString - dw WhichPKMNString - dw TeachWhichPKMNString - dw MoveToWhereString - dw UseOnWhichPKMNString - dw ChooseAMonString ; Probably used to be ChooseAFemalePKMNString - dw ChooseAMonString ; Probably used to be ChooseAMalePKMNString - dw ToWhichPKMNString - -ChooseAMonString: ; 0x504e4 - db "Choose a #MON.@" -UseOnWhichPKMNString: ; 0x504f3 - db "Use on which ?@" -WhichPKMNString: ; 0x50504 - db "Which ?@" -TeachWhichPKMNString: ; 0x5050e - db "Teach which ?@" -MoveToWhereString: ; 0x5051e - db "Move to where?@" -ChooseAFemalePKMNString: ; 0x5052d ; UNUSED - db "Choose a ♀.@" -ChooseAMalePKMNString: ; 0x5053b ; UNUSED - db "Choose a ♂.@" -ToWhichPKMNString: ; 0x50549 - db "To which ?@" - -YouHaveNoPKMNString: ; 0x50556 - db "You have no !@" - - -Function50566: ; 50566 - ld a, [CurPartyMon] - ld hl, PartyMonNicknames - call GetNick - ld a, [PartyMenuActionText] - and $f - ld hl, Unknown_5057b - call Function505c1 - ret -; 5057b - -Unknown_5057b: ; 5057b - dw UnknownText_0x50594 - dw UnknownText_0x5059e - dw UnknownText_0x505a3 - dw UnknownText_0x505a8 - dw UnknownText_0x50599 - dw UnknownText_0x5058f - dw UnknownText_0x505ad - dw UnknownText_0x505b2 - dw UnknownText_0x505b7 - dw UnknownText_0x505bc -; 5058f - -UnknownText_0x5058f: ; 0x5058f - ; recovered @ HP! - text_jump UnknownText_0x1bc0a2 - db "@" -; 0x50594 - -UnknownText_0x50594: ; 0x50594 - ; 's cured of poison. - text_jump UnknownText_0x1bc0bb - db "@" -; 0x50599 - -UnknownText_0x50599: ; 0x50599 - ; 's rid of paralysis. - text_jump UnknownText_0x1bc0d2 - db "@" -; 0x5059e - -UnknownText_0x5059e: ; 0x5059e - ; 's burn was healed. - text_jump UnknownText_0x1bc0ea - db "@" -; 0x505a3 - -UnknownText_0x505a3: ; 0x505a3 - ; was defrosted. - text_jump UnknownText_0x1bc101 - db "@" -; 0x505a8 - -UnknownText_0x505a8: ; 0x505a8 - ; woke up. - text_jump UnknownText_0x1bc115 - db "@" -; 0x505ad - -UnknownText_0x505ad: ; 0x505ad - ; 's health returned. - text_jump UnknownText_0x1bc123 - db "@" -; 0x505b2 - -UnknownText_0x505b2: ; 0x505b2 - ; is revitalized. - text_jump UnknownText_0x1bc13a - db "@" -; 0x505b7 - -UnknownText_0x505b7: ; 0x505b7 - ; grew to level @ !@ @ - text_jump UnknownText_0x1bc14f - db "@" -; 0x505bc - -UnknownText_0x505bc: ; 0x505bc - ; came to its senses. - text_jump UnknownText_0x1bc16e - db "@" -; 0x505c1 - + ld a, $3e + call Function50cc9 + ld a, b + and a + jr z, .asm_50c6f + ld c, a + ld a, $e3 + call Function50cc9 -Function505c1: ; 505c1 - ld e, a - ld d, 0 -rept 2 - add hl, de +.asm_50c6f + pop hl +rept 3 + inc hl endr + ld d, h + ld e, l + ld hl, TempMonMoves + ld b, 0 +.asm_50c7a ld a, [hli] - ld h, [hl] - ld l, a - ld a, [Options] + and a + jr z, .asm_50cc8 + push bc + push hl + push de + ld hl, MenuSelection2 + ld a, [hl] push af - set 4, a - ld [Options], a - call PrintText + ld [hl], b + push hl + callab GetMaxPPOfMove + pop hl pop af - ld [Options], a - ret -; 505da - -DoPoisonStep:: ; 505da - ld a, [PartyCount] - and a - jr z, .asm_5062c - xor a - ld c, 7 - ld hl, EngineBuffer1 -.asm_505e6 + ld [hl], a + pop de + pop hl + push hl + ld bc, TempMonPP - (TempMonMoves + 1) + add hl, bc + ld a, [hl] + and $3f + ld [StringBuffer1 + 4], a + ld h, d + ld l, e + push hl + ld de, StringBuffer1 + 4 + lb bc, 1, 2 + call PrintNum + ld a, $f3 ld [hli], a - dec c - jr nz, .asm_505e6 - xor a - ld [CurPartyMon], a -.asm_505ee - call Function5062e - jr nc, .asm_50605 - ld a, [CurPartyMon] + ld de, wd265 + lb bc, 1, 2 + call PrintNum + pop hl + ld a, [Buffer1] ld e, a ld d, 0 - ld hl, wd03f add hl, de - ld [hl], c - ld a, [EngineBuffer1] - or c - ld [EngineBuffer1], a + ld d, h + ld e, l + pop hl + pop bc + inc b + ld a, b + cp NUM_MOVES + jr nz, .asm_50c7a -.asm_50605 - ld a, [PartyCount] - ld hl, CurPartyMon - inc [hl] - cp [hl] - jr nz, .asm_505ee - ld a, [EngineBuffer1] - and $2 - jr nz, .asm_50622 - ld a, [EngineBuffer1] - and $1 - jr z, .asm_5062c - call Function50658 - xor a +.asm_50cc8 ret +; 50cc9 -.asm_50622 - ld a, BANK(UnknownScript_0x50669) - ld hl, UnknownScript_0x50669 - call CallScript - scf +Function50cc9: ; 50cc9 +.asm_50cc9 + ld [hli], a + ld [hld], a + add hl, de + dec c + jr nz, .asm_50cc9 ret +; 50cd0 -.asm_5062c - xor a - ret -; 5062e - -Function5062e: ; 5062e - ld a, MON_STATUS - call GetPartyParamLocation - ld a, [hl] - and 1 << PSN - ret z - - ld a, MON_HP - call GetPartyParamLocation - ld a, [hli] - ld b, a - ld c, [hl] - - or c - ret z - - dec bc - ld [hl], c +Function50cd0: ; 50cd0 +.asm_50cd0 + ld [hl], $32 + inc hl + ld [hl], $3e dec hl - ld [hl], b - - ld a, b - or c - jr nz, .not_fainted - - ld a, MON_STATUS - call GetPartyParamLocation - ld [hl], 0 - ld c, 2 - scf + add hl, de + dec c + jr nz, .asm_50cd0 ret +; 50cdb -.not_fainted - ld c, 1 - scf - ret -; 50658 +Function50cdb: ; unreferenced predef + push hl + push hl + ld hl, PartyMonNicknames + ld a, [CurPartyMon] + call GetNick + pop hl + call PlaceString + call CopyPkmnToTempMon + pop hl + ld a, [CurPartySpecies] + cp EGG + jr z, .asm_50d09 + push hl + ld bc, -12 + add hl, bc + ld b, $0 + call DrawEnemyHP + pop hl + ld bc, 5 + add hl, bc + push de + call PrintLevel + pop de -Function50658: ; 50658 - ld de, SFX_POISON - call PlaySFX - ld b, $2 - predef Functioncbcdd - call DelayFrame +.asm_50d09 ret -; 50669 - -UnknownScript_0x50669: ; 50669 - callasm Function50658 - loadfont - callasm Function5067b - iffalse UnknownScript_0x50677 - loadmovesprites - end -; 50677 +; 50d0a -UnknownScript_0x50677: ; 50677 - farjump Script_OverworldWhiteout -; 5067b -Function5067b: ; 5067b - xor a - ld [CurPartyMon], a - ld de, wd03f -.asm_50682 +PlaceStatusString: ; 50d0a push de +rept 2 + inc de +endr ld a, [de] - and 2 - jr z, .asm_5069c - ld c, HAPPINESS_POISONFAINT - callba ChangeHappiness - callba GetPartyNick - ld hl, PoisonFaintText - call PrintText - -.asm_5069c - pop de + ld b, a inc de - ld hl, CurPartyMon - inc [hl] - ld a, [PartyCount] - cp [hl] - jr nz, .asm_50682 - predef CheckPlayerPartyForFitPkmn - ld a, d - ld [ScriptVar], a - ret -; 506b2 - -PoisonFaintText: ; 506b2 - text_jump UnknownText_0x1c0acc - db "@" -; 506b7 - -PoisonWhiteOutText: ; 506b7 - text_jump UnknownText_0x1c0ada - db "@" -; 506bc - - -DoMovementFunctionc: ; 506bc - ld hl, UnknownScript_0x506c8 - call QueueScript + ld a, [de] + or b + pop de + jr nz, PlaceNonFaintStatus + push de + ld de, FntString + call CopyStatusString + pop de ld a, $1 - ld [wd0ec], a - ret -; 506c8 - -UnknownScript_0x506c8: ; 0x506c8 - reloadmappart - special UpdateTimePals - callasm GetPartyNick - writetext UnknownText_0x50726 - closetext - callasm SweetScentEncounter - iffalse UnknownScript_0x506e9 - checkflag ENGINE_BUG_CONTEST_TIMER - iftrue UnknownScript_0x506e5 - battlecheck - startbattle - returnafterbattle - end -; 0x506e5 - -UnknownScript_0x506e5: ; 0x506e5 - farjump BugCatchingContestBattleScript -; 0x506e9 - -UnknownScript_0x506e9: ; 0x506e9 - writetext UnknownText_0x5072b - closetext - loadmovesprites - end -; 0x506ef - -SweetScentEncounter: ; 506ef - callba CanUseSweetScent - jr nc, .no_battle - ld hl, StatusFlags2 - bit 2, [hl] - jr nz, .not_in_bug_contest - callba GetMapEncounterRate - ld a, b and a - jr z, .no_battle - callba ChooseWildEncounter - jr nz, .no_battle - jr .start_battle - -.not_in_bug_contest - callba ChooseWildEncounter_BugContest - -.start_battle - ld a, $1 - ld [ScriptVar], a - ret - -.no_battle - xor a - ld [ScriptVar], a - ld [BattleType], a - ret -; 50726 - -UnknownText_0x50726: ; 0x50726 - ; used SWEET SCENT! - text_jump UnknownText_0x1c0b03 - db "@" -; 0x5072b - -UnknownText_0x5072b: ; 0x5072b - ; Looks like there's nothing here… - text_jump UnknownText_0x1c0b1a - db "@" -; 0x50730 - - -_Squirtbottle: ; 50730 - ld hl, UnknownScript_0x5073c - call QueueScript - ld a, $1 - ld [wd0ec], a ret -; 5073c - -UnknownScript_0x5073c: ; 0x5073c - reloadmappart - special UpdateTimePals - callasm Function50753 - iffalse UnknownScript_0x5074b - farjump WateredWeirdTreeScript -; 0x5074b - -UnknownScript_0x5074b: ; 0x5074b - jumptext UnknownText_0x5074e -; 0x5074e - -UnknownText_0x5074e: ; 0x5074e - ; sprinkled water. But nothing happened… - text_jump UnknownText_0x1c0b3b - db "@" -; 0x50753 - -Function50753: ; 50753 - ld a, [MapGroup] - cp GROUP_ROUTE_36 - jr nz, .asm_50774 - - ld a, [MapNumber] - cp MAP_ROUTE_36 - jr nz, .asm_50774 - - callba GetFacingObject - jr c, .asm_50774 - - ld a, d - cp $17 - jr nz, .asm_50774 +; 50d22 - ld a, $1 - ld [ScriptVar], a - ret +FntString: ; 50d22 + db "FNT@" +; 50d25 -.asm_50774 - xor a - ld [ScriptVar], a +CopyStatusString: ; 50d25 + ld a, [de] + inc de + ld [hli], a + ld a, [de] + inc de + ld [hli], a + ld a, [de] + ld [hl], a ret -; 50779 - - -_CardKey: ; 50779 -; Are we even in the right map to use this? - ld a, [MapGroup] - cp GROUP_RADIO_TOWER_3F - jr nz, .nope +; 50d2e - ld a, [MapNumber] - cp MAP_RADIO_TOWER_3F - jr nz, .nope -; Are we facing the slot? - ld a, [PlayerDirection] - and $c - cp OW_UP - jr nz, .nope +PlaceNonFaintStatus: ; 50d2e + push de + ld a, [de] + ld de, PsnString + bit PSN, a + jr nz, .place + ld de, BrnString + bit BRN, a + jr nz, .place + ld de, FrzString + bit FRZ, a + jr nz, .place + ld de, ParString + bit PAR, a + jr nz, .place + ld de, SlpString + and SLP + jr z, .no_status - call GetFacingTileCoord - ld a, d - cp 18 - jr nz, .nope - ld a, e - cp 6 - jr nz, .nope -; Let's use the Card Key. - ld hl, .CardKeyScript - call QueueScript +.place + call CopyStatusString ld a, $1 - ld [wd0ec], a - ret - -.nope - ld a, $0 - ld [wd0ec], a - ret -; 507af - -.CardKeyScript: ; 0x507af - loadmovesprites - farjump MapRadioTower3FSignpost2Script -; 0x507b4 - - -_BasementKey: ; 507b4 -; Are we even in the right map to use this? - ld a, [MapGroup] - cp GROUP_WAREHOUSE_ENTRANCE - jr nz, .nope - - ld a, [MapNumber] - cp MAP_WAREHOUSE_ENTRANCE - jr nz, .nope -; Are we on the tile in front of the door? - call GetFacingTileCoord - ld a, d - cp 22 - jr nz, .nope - ld a, e - cp 10 - jr nz, .nope -; Let's use the Basement Key - ld hl, .BasementKeyScript - call QueueScript - ld a, 1 - ld [wd0ec], a - ret + and a -.nope - ld a, $0 - ld [wd0ec], a +.no_status + pop de ret -; 507e1 - -.BasementKeyScript: ; 0x507e1 - loadmovesprites - farjump BasementDoorScript -; 0x507e6 - - -_SacredAsh: ; 507e6 - ld a, $0 - ld [wd0ec], a - call CheckAnyFaintedMon - ret nc +; 50d5b - ld hl, SacredAshScript - call QueueScript - ld a, $1 - ld [wd0ec], a - ret -; 507fb +SlpString: db "SLP@" +PsnString: db "PSN@" +BrnString: db "BRN@" +FrzString: db "FRZ@" +ParString: db "PAR@" +; 50d6f -CheckAnyFaintedMon: ; 507fb - ld de, PARTYMON_STRUCT_LENGTH - ld bc, PartySpecies - ld hl, PartyMon1HP - ld a, [PartyCount] +ListMoves: ; 50d6f +; List moves at hl, spaced every [Buffer1] tiles. + ld de, wListMoves_MoveIndicesBuffer + ld b, $0 +.moves_loop + ld a, [de] + inc de and a - ret z - -.loop - push af + jr z, .no_more_moves + push de push hl - ld a, [bc] - inc bc - cp EGG - jr z, .next - - ld a, [hli] - or [hl] + push hl + ld [CurSpecies], a + ld a, MOVE_NAME + ld [wNamedObjectTypeBuffer], a + call GetName + ld de, StringBuffer1 + pop hl + push bc + call PlaceString + pop bc + ld a, b + ld [wd0eb], a + inc b + pop hl + push bc + ld a, [Buffer1] + ld c, a + ld b, 0 + add hl, bc + pop bc + pop de + ld a, b + cp NUM_MOVES jr z, .done + jr .moves_loop -.next - pop hl - add hl, de +.no_more_moves + ld a, b +.nonmove_loop + push af + ld [hl], "-" + ld a, [Buffer1] + ld c, a + ld b, 0 + add hl, bc pop af - dec a - jr nz, .loop - xor a - ret + inc a + cp NUM_MOVES + jr nz, .nonmove_loop .done - pop hl - pop af - scf ret -; 50821 +; 50db9 -SacredAshScript: ; 0x50821 - special HealParty - reloadmappart - playsound SFX_WARP_TO - special FadeBlackBGMap - special FadeInBGMap - special FadeBlackBGMap - special FadeInBGMap - special FadeBlackBGMap - special FadeInBGMap - waitbutton - writetext UnknownText_0x50845 - playsound SFX_CAUGHT_MON - waitbutton - closetext - loadmovesprites - end -; 0x50845 +Function50db9: ; 50db9 + ld a, [wd263] -UnknownText_0x50845: ; 0x50845 - ; 's #MON were all healed! - text_jump UnknownText_0x1c0b65 - db "@" -; 0x5084a + cp $1 + jr nz, .check_party_ot_name + ld hl, OTPartyCount + ld de, OTPartyMonOT + ld a, ENEMY_OT_NAME + jr .done +.check_party_ot_name -CopyPkmnToTempMon: ; 5084a -; gets the BaseData of a Pkmn -; and copys the PkmnStructure to TempMon + cp $4 + jr nz, .check_mon_name + ld hl, PartyCount + ld de, PartyMonOT + ld a, PARTY_OT_NAME + jr .done +.check_mon_name - ld a, [CurPartyMon] - ld e, a - call GetPkmnSpecies - ld a, [CurPartySpecies] - ld [CurSpecies], a - call GetBaseData + cp $5 + jr nz, .check_item_name + ld hl, CurMart + ld de, PokemonNames + ld a, PKMN_NAME + jr .done +.check_item_name - ld a, [MonType] - ld hl, PartyMon1Species - ld bc, PARTYMON_STRUCT_LENGTH - and a - jr z, .copywholestruct - ld hl, OTPartyMon1Species - ld bc, PARTYMON_STRUCT_LENGTH - cp OTPARTYMON - jr z, .copywholestruct - ld bc, BOXMON_STRUCT_LENGTH - callab Functione5bb + cp $2 + jr nz, .check_ob_item_name + ld hl, NumItems + ld de, ItemNames + ld a, ITEM_NAME jr .done +.check_ob_item_name -.copywholestruct - ld a, [CurPartyMon] - call AddNTimes - ld de, TempMon - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes + ld hl, CurMart + ld de, ItemNames + ld a, ITEM_NAME .done + ld [wNamedObjectTypeBuffer], a + ld a, l + ld [wd100], a + ld a, h + ld [wd101], a + ld a, e + ld [wd102], a + ld a, d + ld [wd103], a + ld bc, ItemAttributes + ld a, c + ld [wd104], a + ld a, b + ld [wd105], a ret -; 5088b - - -Function5088b: ; 5088b - ld bc, wd018 - jr Function50893 -; 50890 +; 50e1b -Function50890: ; 50890 - ld bc, TempMon - ; fallthrough -; 50893 -Function50893: ; 50893 - ld hl, TempMonLevel - TempMon - add hl, bc +CalcLevel: ; 50e1b + ld a, [TempMonSpecies] + ld [CurSpecies], a + call GetBaseData + ld d, 1 +.next_level + inc d + ld a, d + cp (MAX_LEVEL + 1) % $100 + jr z, .got_level + call CalcExpAtLevel + push hl + ld hl, TempMonExp + 2 + ld a, [hProduct + 3] + ld c, a + ld a, [hld] + sub c + ld a, [hProduct + 2] + ld c, a + ld a, [hld] + sbc c + ld a, [hProduct + 1] + ld c, a ld a, [hl] - ld [CurPartyLevel], a - ld hl, TempMonMaxHP - TempMon - add hl, bc - ld d, h - ld e, l - ld hl, TempMonExp + 2 - TempMon - add hl, bc - push bc - ld b, $1 - predef CalcPkmnStats - pop bc - ld hl, TempMonHP - TempMon - add hl, bc - ld d, h - ld e, l - ld a, [CurPartySpecies] - cp EGG - jr nz, .asm_508c1 - xor a - ld [de], a - inc de - ld [de], a - jr .asm_508cd - -.asm_508c1 - push bc - ld hl, TempMonMaxHP - TempMon - add hl, bc - ld bc, 2 - call CopyBytes - pop bc + sbc c + pop hl + jr nc, .next_level -.asm_508cd - ld hl, TempMonStatus - TempMon - add hl, bc - xor a - ld [hli], a - ld [hl], a +.got_level + dec d ret -; 508d5 - -GetPkmnSpecies: ; 508d5 -; [MonType] has the type of the Pkmn -; e = Nr. of Pkmn (i.e. [CurPartyMon]) +; 50e47 - ld a, [MonType] - and a ; PARTYMON - jr z, .partymon - cp OTPARTYMON - jr z, .otpartymon - cp BOXMON - jr z, .boxmon - cp BREEDMON - jr z, .breedmon - ; WILDMON -.partymon - ld hl, PartySpecies - jr .done -.otpartymon - ld hl, OTPartySpecies - jr .done - -.boxmon - ld a, BANK(sBoxSpecies) - call GetSRAMBank - ld hl, sBoxSpecies - call .done - call CloseSRAM - ret - -.breedmon - ld a, [wBreedMon1Species] - jr .done2 - -.done - ld d, 0 - add hl, de - ld a, [hl] - -.done2 - ld [CurPartySpecies], a - ret -; 5090d - - -INCLUDE "text/types.asm" - - -Function50a28: ; 50a28 - ld hl, Strings50a42 - ld a, [TrainerClass] - dec a +CalcExpAtLevel: ; 50e47 +; (a/b)*n**3 + c*n**2 + d*n - e + ld a, [BaseGrowthRate] +rept 2 + add a +endr ld c, a ld b, 0 -rept 2 + ld hl, GrowthRates add hl, bc -endr +; Cube the level + call .LevelSquared + ld a, d + ld [hMultiplier], a + call Multiply + +; Multiply by a + ld a, [hl] + and $f0 + swap a + ld [hMultiplier], a + call Multiply +; Divide by b ld a, [hli] - ld h, [hl] - ld l, a - ld de, StringBuffer1 -.copy + and $f + ld [hDivisor], a + ld b, 4 + call Divide +; Push the cubic term to the stack + ld a, [hQuotient + 0] + push af + ld a, [hQuotient + 1] + push af + ld a, [hQuotient + 2] + push af +; Square the level and multiply by the lower 7 bits of c + call .LevelSquared + ld a, [hl] + and $7f + ld [hMultiplier], a + call Multiply +; Push the absolute value of the quadratic term to the stack + ld a, [hProduct + 1] + push af + ld a, [hProduct + 2] + push af + ld a, [hProduct + 3] + push af ld a, [hli] - ld [de], a - inc de - cp "@" - jr nz, .copy - ret -; 50a42 - -Strings50a42: ; 50a42 -; Untranslated trainer class names from Red. + push af +; Multiply the level by d + xor a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a + ld a, d + ld [hMultiplicand + 2], a + ld a, [hli] + ld [hMultiplier], a + call Multiply +; Subtract e + ld b, [hl] + ld a, [hProduct + 3] + sub b + ld [hMultiplicand + 2], a + ld b, $0 + ld a, [hProduct + 2] + sbc b + ld [hMultiplicand + 1], a + ld a, [hProduct + 1] + sbc b + ld [hMultiplicand], a +; If bit 7 of c is set, c is negative; otherwise, it's positive + pop af + and $80 + jr nz, .subtract +; Add c*n**2 to (d*n - e) + pop bc + ld a, [hProduct + 3] + add b + ld [hMultiplicand + 2], a + pop bc + ld a, [hProduct + 2] + adc b + ld [hMultiplicand + 1], a + pop bc + ld a, [hProduct + 1] + adc b + ld [hMultiplicand], a + jr .done_quadratic - dw .Youngster - dw .BugCatcher - dw .Lass - dw OTName - dw .JrTrainerM - dw .JrTrainerF - dw .Pokemaniac - dw .SuperNerd - dw OTName - dw OTName - dw .Burglar - dw .Engineer - dw .Jack - dw OTName - dw .Swimmer - dw OTName - dw OTName - dw .Beauty - dw OTName - dw .Rocker - dw .Juggler - dw OTName - dw OTName - dw .Blackbelt - dw OTName - dw .ProfOak - dw .Chief - dw .Scientist - dw OTName - dw .Rocket - dw .CooltrainerM - dw .CooltrainerF - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName - dw OTName +.subtract +; Subtract c*n**2 from (d*n - e) + pop bc + ld a, [hProduct + 3] + sub b + ld [hMultiplicand + 2], a + pop bc + ld a, [hProduct + 2] + sbc b + ld [hMultiplicand + 1], a + pop bc + ld a, [hProduct + 1] + sbc b + ld [hMultiplicand], a -.Youngster db "たんパン@" -.BugCatcher db "むしとり@" -.Lass db "ミニスカ@" -.JrTrainerM db "ボーイ@" -.JrTrainerF db "ガール@" -.Pokemaniac db "マニア@" -.SuperNerd db "りかけい@" -.Burglar db "どろぼう@" -.Engineer db "ォヤジ@" -.Jack db "ジャック@" -.Swimmer db "かいパン@" -.Beauty db "おねえさん@" -.Rocker db "グループ@" -.Juggler db "ジャグラー@" -.Blackbelt db "からて@" -.ProfOak db "ォーキド@" -.Chief db "チーフ@" -.Scientist db "けんきゅういん@" -.Rocket db "だんいん@" -.CooltrainerM db "エりート♂@" -.CooltrainerF db "エりート♀@" -; 50b0a +.done_quadratic +; Add (a/b)*n**3 to (d*n - e +/- c*n**2) + pop bc + ld a, [hProduct + 3] + add b + ld [hMultiplicand + 2], a + pop bc + ld a, [hProduct + 2] + adc b + ld [hMultiplicand + 1], a + pop bc + ld a, [hProduct + 1] + adc b + ld [hMultiplicand], a + ret +; 50eed +.LevelSquared: ; 50eed + xor a + ld [hMultiplicand + 0], a + ld [hMultiplicand + 1], a + ld a, d + ld [hMultiplicand + 2], a + ld [hMultiplier], a + jp Multiply +; 50efa -DrawPlayerHP: ; 50b0a - ld a, $1 - jr DrawHP +GrowthRates: ; 50efa -DrawEnemyHP: ; 50b0e - ld a, $2 +growth_rate: MACRO +; [1]/[2]*n**3 + [3]*n**2 + [4]*n - [5] + dn \1, \2 + if \3 & $80 ; signed + db -\3 | $80 + else + db \3 + endc + db \4, \5 +ENDM -DrawHP: ; 50b10 - ld [wd10a], a - push hl - push bc - ld a, [MonType] - cp BOXMON - jr z, .asm_50b30 + growth_rate 1, 1, 0, 0, 0 ; Medium Fast + growth_rate 3, 4, 10, 0, 30 ; Slightly Fast + growth_rate 3, 4, 20, 0, 70 ; Slightly Slow + growth_rate 6, 5, -15, 100, 140 ; Medium Slow + growth_rate 4, 5, 0, 0, 0 ; Fast + growth_rate 5, 4, 0, 0, 0 ; Slow +; 50f12 - ld a, [TempMonHP] +_SwitchPartyMons: + ld a, [wd0e3] + dec a + ld [wd1ec], a ld b, a - ld a, [TempMonHP + 1] - ld c, a - -; Any HP? - or b - jr nz, .asm_50b30 - - xor a - ld c, a - ld e, a - ld a, 6 - ld d, a - jp .asm_50b4a - -.asm_50b30 - ld a, [TempMonMaxHP] - ld d, a - ld a, [TempMonMaxHP + 1] - ld e, a - ld a, [MonType] - cp BOXMON - jr nz, .asm_50b41 - - ld b, d - ld c, e + ld a, [MenuSelection2] + dec a + ld [Buffer2], a ; wd1eb (aliases: MovementType) + cp b + jr z, .skip + call .SwapPartymonViaSRAM + ld a, [wd1ec] + call .ClearSprite + ld a, [Buffer2] ; wd1eb (aliases: MovementType) + call .ClearSprite +.skip + ret -.asm_50b41 - predef DrawPartyMenuHPBar - ld a, 6 - ld d, a - ld c, a +.ClearSprite: ; 50f34 (14:4f34) + push af + hlcoord 0, 1 + ld bc, 2 * SCREEN_WIDTH + call AddNTimes + ld bc, 2 * SCREEN_WIDTH + ld a, " " + call ByteFill + pop af + ld hl, Sprites + ld bc, $10 + call AddNTimes + ld de, $4 + ld c, $4 +.gfx_loop + ld [hl], $a0 + add hl, de + dec c + jr nz, .gfx_loop + ld de, SFX_SWITCH_POKEMON + call WaitPlaySFX + ret -.asm_50b4a - ld a, c - pop bc - ld c, a - pop hl +.SwapPartymonViaSRAM: ; 50f62 (14:4f62) + push hl push de + push bc + ld bc, PartySpecies + ld a, [Buffer2] ; wd1eb (aliases: MovementType) + ld l, a + ld h, $0 + add hl, bc + ld d, h + ld e, l + ld a, [Buffer3] + ld l, a + ld h, $0 + add hl, bc + ld a, [hl] + push af + ld a, [de] + ld [hl], a + pop af + ld [de], a + ld a, [Buffer2] ; wd1eb (aliases: MovementType) + ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes push hl + ld de, wd002 + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + ld a, [Buffer3] + ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) + ld bc, PARTYMON_STRUCT_LENGTH + call AddNTimes + pop de push hl - call DrawBattleHPBar - pop hl - -; Print HP - ld bc, $15 ; move (1,1) - add hl, bc - ld de, TempMonHP - ld a, [MonType] - cp BOXMON - jr nz, .asm_50b66 - ld de, TempMonMaxHP -.asm_50b66 - lb bc, 2, 3 - call PrintNum - - ld a, "/" - ld [hli], a - -; Print max HP - ld de, TempMonMaxHP - lb bc, 2, 3 - call PrintNum - pop hl + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes pop de - ret -; 50b7b - - -PrintTempMonStats: ; 50b7b -; Print TempMon's stats at hl, with spacing bc. - push bc + ld hl, wd002 + ld bc, PARTYMON_STRUCT_LENGTH + call CopyBytes + ld a, [Buffer2] ; wd1eb (aliases: MovementType) + ld hl, PartyMonOT + call SkipNames push hl - ld de, .StatNames - call PlaceString - pop hl - pop bc - add hl, bc - ld bc, SCREEN_WIDTH - add hl, bc - ld de, TempMonAttack - lb bc, 2, 3 - call .PrintStat - ld de, TempMonDefense - call .PrintStat - ld de, TempMonSpclAtk - call .PrintStat - ld de, TempMonSpclDef - call .PrintStat - ld de, TempMonSpeed - jp PrintNum -; 50bab - -.PrintStat: ; 50bab + call .CopyNameTowd002 + ld a, [Buffer3] + ld hl, PartyMonOT + call SkipNames + pop de push hl - call PrintNum + call .CopyName + pop de + ld hl, wd002 + call .CopyName + ld hl, PartyMonNicknames + ld a, [Buffer2] ; wd1eb (aliases: MovementType) + call SkipNames + push hl + call .CopyNameTowd002 + ld hl, PartyMonNicknames + ld a, [Buffer3] + call SkipNames + pop de + push hl + call .CopyName + pop de + ld hl, wd002 + call .CopyName + ld hl, sPartyScratch1 + ld a, [Buffer2] ; wd1eb (aliases: MovementType) + ld bc, SCRATCHMON_STRUCT_LENGTH + call AddNTimes + push hl + ld de, wd002 + ld bc, SCRATCHMON_STRUCT_LENGTH + ld a, BANK(sPartyScratch1) + call GetSRAMBank + call CopyBytes + ld hl, sPartyScratch1 + ld a, [Buffer3] + ld bc, SCRATCHMON_STRUCT_LENGTH + call AddNTimes + pop de + push hl + ld bc, SCRATCHMON_STRUCT_LENGTH + call CopyBytes + pop de + ld hl, wd002 + ld bc, SCRATCHMON_STRUCT_LENGTH + call CopyBytes + call CloseSRAM + pop bc + pop de pop hl - ld de, SCREEN_WIDTH * 2 - add hl, de ret -; 50bb5 -.StatNames: ; 50bb5 - db "ATTACK" - next "DEFENSE" - next "SPCL.ATK" - next "SPCL.DEF" - next "SPEED" - next "@" -; 50bdd +.CopyNameTowd002: ; 51036 (14:5036) + ld de, wd002 +.CopyName: ; 51039 (14:5039) + ld bc, NAME_LENGTH + call CopyBytes + ret -GetGender: ; 50bdd -; Return the gender of a given monster (CurPartyMon/CurOTMon/CurWildMon). -; When calling this function, a should be set to an appropriate MonType value. +GetUnownLetter: ; 51040 +; Return Unown letter in UnownLetter based on DVs at hl -; return values: -; a = 1: f = nc|nz; male -; a = 0: f = nc|z; female -; f = c: genderless +; Take the middle 2 bits of each DV and place them in order: +; atk def spd spc +; .ww..xx. .yy..zz. -; This is determined by comparing the Attack and Speed DVs -; with the species' gender ratio. - - -; Figure out what type of monster struct we're looking at. - -; 0: PartyMon - ld hl, PartyMon1DVs - ld bc, PARTYMON_STRUCT_LENGTH - ld a, [MonType] - and a - jr z, .PartyMon - -; 1: OTPartyMon - ld hl, OTPartyMon1DVs - dec a - jr z, .PartyMon - -; 2: sBoxMon - ld hl, sBoxMon1DVs - ld bc, BOXMON_STRUCT_LENGTH - dec a - jr z, .sBoxMon - -; 3: Unknown - ld hl, TempMonDVs - dec a - jr z, .DVs - -; else: WildMon - ld hl, EnemyMonDVs - jr .DVs - - -; Get our place in the party/box. - -.PartyMon -.sBoxMon - ld a, [CurPartyMon] - call AddNTimes - - -.DVs - -; sBoxMon data is read directly from SRAM. - ld a, [MonType] - cp BOXMON - ld a, 1 - call z, GetSRAMBank - -; Attack DV + ; atk + ld a, [hl] + and %01100000 + sla a + ld b, a + ; def ld a, [hli] - and $f0 + and %00000110 + swap a + srl a + or b ld b, a -; Speed DV + + ; spd ld a, [hl] - and $f0 + and %01100000 swap a - -; Put our DVs together. + sla a or b ld b, a + ; spc + ld a, [hl] + and %00000110 + srl a + or b -; Close SRAM if we were dealing with a sBoxMon. - ld a, [MonType] - cp BOXMON - call z, CloseSRAM +; Divide by 10 to get 0-25 + ld [hDividend + 3], a + xor a + ld [hDividend], a + ld [hDividend + 1], a + ld [hDividend + 2], a + ld a, 10 + ld [hDivisor], a + ld b, 4 + call Divide +; Increment to get 1-26 + ld a, [hQuotient + 2] + inc a + ld [UnownLetter], a + ret +; 51077 -; We need the gender ratio to do anything with this. - push bc + +GetFrontpic: ; 51077 ld a, [CurPartySpecies] - dec a - ld hl, BaseData + BaseGender - CurBaseData - ld bc, BaseData1 - BaseData - call AddNTimes - pop bc + ld [CurSpecies], a + call IsAPokemon + ret c + ld a, [rSVBK] + push af + call _GetFrontpic + pop af + ld [rSVBK], a + ret +; 5108b - ld a, BANK(BaseData) - call GetFarByte +Function5108b: ; 5108b + ld a, [CurPartySpecies] + ld [CurSpecies], a + call IsAPokemon + ret c + ld a, [rSVBK] + push af + xor a + ld [hBGMapMode], a + call _GetFrontpic + call Function51103 + pop af + ld [rSVBK], a + ret +; 510a5 +_GetFrontpic: ; 510a5 + push de + call GetBaseData + ld a, [BasePicSize] + and $f + ld b, a + push bc + call GetFrontpicPointer + ld a, $6 + ld [rSVBK], a + ld a, b + ld de, w6_d000 + $800 + call FarDecompress + pop bc + ld hl, w6_d000 + ld de, w6_d000 + $800 + call Function512ab + pop hl + push hl + ld de, w6_d000 + ld c, 7 * 7 + ld a, [hROMBank] + ld b, a + call Get2bpp + pop hl + ret +; 510d7 -; The higher the ratio, the more likely the monster is to be female. +GetFrontpicPointer: ; 510d7 +GLOBAL PicPointers, UnownPicPointers - cp $ff - jr z, .Genderless + ld a, [CurPartySpecies] + cp UNOWN + jr z, .unown + ld a, [CurPartySpecies] + ld d, BANK(PicPointers) + jr .ok - and a - jr z, .Male +.unown + ld a, [UnownLetter] + ld d, BANK(UnownPicPointers) - cp $fe - jr z, .Female +.ok + ld hl, PicPointers ; UnownPicPointers + dec a + ld bc, 6 + call AddNTimes + ld a, d + call GetFarByte + call FixPicBank + push af + inc hl + ld a, d + call GetFarHalfword + pop bc + ret +; 51103 -; Values below the ratio are male, and vice versa. - cp b - jr c, .Male +Function51103: ; 51103 + ld a, $1 + ld [rVBK], a + push hl + ld de, w6_d000 + ld c, 7 * 7 + ld a, [hROMBank] + ld b, a + call Get2bpp + pop hl + ld de, 7 * 7 * $10 + add hl, de + push hl + ld a, $1 + ld hl, BasePicSize + call GetFarWRAMByte + pop hl + and $f + ld de, w6_d000 + $800 + 5 * 5 * $10 + ld c, 5 * 5 + cp 5 + jr z, .asm_5113b + ld de, w6_d000 + $800 + 6 * 6 * $10 + ld c, 6 * 6 + cp 6 + jr z, .asm_5113b + ld de, w6_d000 + $800 + 7 * 7 * $10 + ld c, 7 * 7 +.asm_5113b -.Female + push hl + push bc + call Function5114f + pop bc + pop hl + ld de, w6_d000 + ld a, [hROMBank] + ld b, a + call Get2bpp xor a + ld [rVBK], a ret +; 5114f -.Male - ld a, 1 - and a +Function5114f: ; 5114f + ld hl, w6_d000 + swap c + ld a, c + and $f + ld b, a + ld a, c + and $f0 + ld c, a + push bc + call Function512f2 + pop bc +.asm_51161 + push bc + ld c, $0 + call Function512f2 + pop bc + dec b + jr nz, .asm_51161 ret +; 5116c -.Genderless - scf - ret -; 50c50 +GetBackpic: ; 5116c + ld a, [CurPartySpecies] + call IsAPokemon + ret c -Function50c50: ; 50c50 - ld a, [wd0eb] - inc a - ld c, a - ld a, $4 - sub c + ld a, [CurPartySpecies] ld b, a - push hl - ld a, [Buffer1] - ld e, a - ld d, $0 - ld a, $3e - call Function50cc9 - ld a, b - and a - jr z, .asm_50c6f + ld a, [UnownLetter] ld c, a - ld a, $e3 - call Function50cc9 - -.asm_50c6f - pop hl -rept 3 - inc hl -endr - ld d, h - ld e, l - ld hl, TempMonMoves - ld b, 0 -.asm_50c7a - ld a, [hli] - and a - jr z, .asm_50cc8 - push bc - push hl + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a push de - ld hl, MenuSelection2 - ld a, [hl] + + ; These are assumed to be at the same + ; address in their respective banks. + GLOBAL PicPointers, UnownPicPointers + ld hl, PicPointers ; UnownPicPointers + ld a, b + ld d, BANK(PicPointers) + cp UNOWN + jr nz, .ok + ld a, c + ld d, BANK(UnownPicPointers) +.ok + dec a + ld bc, 6 + call AddNTimes + ld bc, 3 + add hl, bc + ld a, d + call GetFarByte + call FixPicBank push af - ld [hl], b - push hl - callab GetMaxPPOfMove - pop hl + inc hl + ld a, d + call GetFarHalfword + ld de, w6_d000 pop af - ld [hl], a - pop de - pop hl - push hl - ld bc, TempMonPP - (TempMonMoves + 1) - add hl, bc - ld a, [hl] - and $3f - ld [StringBuffer1 + 4], a - ld h, d - ld l, e - push hl - ld de, StringBuffer1 + 4 - lb bc, 1, 2 - call PrintNum - ld a, $f3 - ld [hli], a - ld de, wd265 - lb bc, 1, 2 - call PrintNum - pop hl - ld a, [Buffer1] - ld e, a - ld d, 0 - add hl, de - ld d, h - ld e, l + call FarDecompress + ld hl, w6_d000 + ld c, 6 * 6 + call Function5127c pop hl - pop bc - inc b - ld a, b - cp NUM_MOVES - jr nz, .asm_50c7a - -.asm_50cc8 - ret -; 50cc9 - -Function50cc9: ; 50cc9 -.asm_50cc9 - ld [hli], a - ld [hld], a - add hl, de - dec c - jr nz, .asm_50cc9 + ld de, w6_d000 + ld a, [hROMBank] + ld b, a + call Get2bpp + pop af + ld [rSVBK], a ret -; 50cd0 +; 511c5 -Function50cd0: ; 50cd0 -.asm_50cd0 - ld [hl], $32 - inc hl - ld [hl], $3e - dec hl - add hl, de - dec c - jr nz, .asm_50cd0 - ret -; 50cdb -Function50cdb: ; unreferenced predef - push hl - push hl - ld hl, PartyMonNicknames - ld a, [CurPartyMon] - call GetNick - pop hl - call PlaceString - call CopyPkmnToTempMon - pop hl - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_50d09 +FixPicBank: ; 511c5 +; This is a thing for some reason. push hl - ld bc, -12 + push bc + sub PICS_1 - $36 + ld c, a + ld b, 0 + ld hl, Unknown_511d4 add hl, bc - ld b, $0 - call DrawEnemyHP + ld a, [hl] + pop bc pop hl - ld bc, 5 - add hl, bc - push de - call PrintLevel - pop de - -.asm_50d09 ret -; 50d0a +; 511d4 +Unknown_511d4: ; 511d4 + db PICS_1 + db PICS_2 + db PICS_3 + db PICS_4 + db PICS_5 + db PICS_6 + db PICS_7 + db PICS_8 + db PICS_9 + db PICS_10 + db PICS_11 + db PICS_12 + db PICS_13 + db PICS_14 + db PICS_15 + db PICS_16 + db PICS_17 + db PICS_18 + db PICS_19 + db PICS_19 + 1 + db PICS_19 + 2 + db PICS_19 + 3 + db PICS_19 + 4 + db PICS_19 + 5 -PlaceStatusString: ; 50d0a - push de -rept 2 - inc de -endr - ld a, [de] - ld b, a - inc de - ld a, [de] - or b - pop de - jr nz, PlaceNonFaintStatus +Function511ec: ; 511ec + ld a, c push de - ld de, FntString - call CopyStatusString + ld hl, PicPointers + dec a + ld bc, 6 + call AddNTimes + ld a, BANK(PicPointers) + call GetFarByte + call FixPicBank + push af + inc hl + ld a, BANK(PicPointers) + call GetFarHalfword + pop af pop de - ld a, $1 - and a + call FarDecompress ret -; 50d22 - -FntString: ; 50d22 - db "FNT@" -; 50d25 +; 0x5120d -CopyStatusString: ; 50d25 - ld a, [de] - inc de - ld [hli], a - ld a, [de] - inc de - ld [hli], a - ld a, [de] - ld [hl], a - ret -; 50d2e -PlaceNonFaintStatus: ; 50d2e - push de - ld a, [de] - ld de, PsnString - bit PSN, a - jr nz, .place - ld de, BrnString - bit BRN, a - jr nz, .place - ld de, FrzString - bit FRZ, a - jr nz, .place - ld de, ParString - bit PAR, a - jr nz, .place - ld de, SlpString - and SLP - jr z, .no_status - -.place - call CopyStatusString +GetTrainerPic: ; 5120d + ld a, [TrainerClass] + and a + ret z + cp NUM_TRAINER_CLASSES + ret nc + call WaitBGMap + xor a + ld [hBGMapMode], a + ld hl, TrainerPicPointers + ld a, [TrainerClass] + dec a + ld bc, 3 + call AddNTimes + ld a, [rSVBK] + push af + ld a, $6 + ld [rSVBK], a + push de + ld a, BANK(TrainerPicPointers) + call GetFarByte + call FixPicBank + push af + inc hl + ld a, BANK(TrainerPicPointers) + call GetFarHalfword + pop af + ld de, w6_d000 + call FarDecompress + pop hl + ld de, w6_d000 + ld c, 7 * 7 + ld a, [hROMBank] + ld b, a + call Get2bpp + pop af + ld [rSVBK], a + call WaitBGMap ld a, $1 + ld [hBGMapMode], a + ret +; 5125d + + + +DecompressPredef: ; 5125d +; Decompress lz data from b:hl to scratch space at 6:d000, then copy it to address de. + + ld a, [rSVBK] + push af + ld a, 6 + ld [rSVBK], a + + push de + push bc + ld a, b + ld de, w6_d000 + call FarDecompress + pop bc + ld de, w6_d000 + pop hl + ld a, [hROMBank] + ld b, a + call Get2bpp + + pop af + ld [rSVBK], a + ret +; 5127c + + +Function5127c: ; 5127c + push de + push bc + ld a, [wc2c6] and a + jr z, .asm_512a8 + ld a, c + cp 7 * 7 + ld de, 7 * 7 * $10 + jr z, .asm_51296 + cp 6 * 6 + ld de, 6 * 6 * $10 + jr z, .asm_51296 + ld de, 5 * 5 * $10 -.no_status +.asm_51296 + ld a, [hl] + ld b, $0 + ld c, $8 +.asm_5129b + rra + rl b + dec c + jr nz, .asm_5129b + ld a, b + ld [hli], a + dec de + ld a, e + or d + jr nz, .asm_51296 + +.asm_512a8 + pop bc pop de ret -; 50d5b +; 512ab -SlpString: db "SLP@" -PsnString: db "PSN@" -BrnString: db "BRN@" -FrzString: db "FRZ@" -ParString: db "PAR@" -; 50d6f +Function512ab: ; 512ab + ld a, b + cp 6 + jr z, .six + cp 5 + jr z, .five -ListMoves: ; 50d6f -; List moves at hl, spaced every [Buffer1] tiles. - ld de, wListMoves_MoveIndicesBuffer - ld b, $0 -.moves_loop +.seven + ld c, $70 + call Function512f2 + dec b + jr nz, .seven + ret + +.six + ld c, $70 + xor a + call .Fill +.asm_512c3 + ld c, $10 + xor a + call .Fill + ld c, $60 + call Function512f2 + dec b + jr nz, .asm_512c3 + ret + +.five + ld c, $70 + xor a + call .Fill +.asm_512d8 + ld c, $20 + xor a + call .Fill + ld c, $50 + call Function512f2 + dec b + jr nz, .asm_512d8 + ld c, $70 + xor a + call .Fill + ret + +.Fill + ld [hli], a + dec c + jr nz, .Fill + ret +; 512f2 + +Function512f2: ; 512f2 + ld a, [wc2c6] + and a + jr nz, .asm_512ff +.asm_512f8 ld a, [de] inc de - and a - jr z, .no_more_moves + ld [hli], a + dec c + jr nz, .asm_512f8 + ret + +.asm_512ff + push bc +.asm_51300 + ld a, [de] + inc de + ld b, a + xor a + rept 8 + rr b + rla + endr + ld [hli], a + dec c + jr nz, .asm_51300 + pop bc + ret +; 51322 + +Function51322: ; 51322 + ld a, BANK(sBoxCount) + call GetSRAMBank + ld hl, sBoxCount + call Function513cb + ld a, [sBoxCount] + dec a + ld [wd265], a + ld hl, sBoxMonNicknames + ld bc, PKMN_NAME_LENGTH + ld de, wd002 + call Function513e0 + ld a, [sBoxCount] + dec a + ld [wd265], a + ld hl, sBoxMonOT + ld bc, NAME_LENGTH + ld de, wd00d + call Function513e0 + ld a, [sBoxCount] + dec a + ld [wd265], a + ld hl, sBoxMons + ld bc, BOXMON_STRUCT_LENGTH + ld de, wd018 + call Function513e0 + ld hl, wd01a + ld de, TempMonMoves + ld bc, NUM_MOVES + call CopyBytes + ld hl, wd02f + ld de, TempMonPP + ld bc, NUM_MOVES + call CopyBytes + ld a, [CurPartyMon] + ld b, a + callba Functiondcb6 + jp CloseSRAM +; 5138b + +Function5138b: ; 5138b + ld hl, PartyCount + call Function513cb + ld a, [PartyCount] + dec a + ld [wd265], a + ld hl, PartyMonNicknames + ld bc, PKMN_NAME_LENGTH + ld de, wd002 + call Function513e0 + ld a, [PartyCount] + dec a + ld [wd265], a + ld hl, PartyMonOT + ld bc, NAME_LENGTH + ld de, wd00d + call Function513e0 + ld a, [PartyCount] + dec a + ld [wd265], a + ld hl, PartyMons + ld bc, PARTYMON_STRUCT_LENGTH + ld de, wd018 + call Function513e0 + ret +; 513cb + +Function513cb: ; 513cb + inc [hl] + inc hl + ld a, [CurPartyMon] + ld c, a + ld b, 0 + add hl, bc + ld a, [CurPartySpecies] + ld c, a +.asm_513d8 + ld a, [hl] + ld [hl], c + inc hl + inc c + ld c, a + jr nz, .asm_513d8 + ret +; 513e0 + +Function513e0: ; 513e0 push de push hl + push bc + ld a, [wd265] + dec a + call AddNTimes push hl - ld [CurSpecies], a - ld a, MOVE_NAME - ld [wNamedObjectTypeBuffer], a - call GetName - ld de, StringBuffer1 + add hl, bc + ld d, h + ld e, l pop hl +.asm_513ef push bc - call PlaceString + ld a, [wd265] + ld b, a + ld a, [CurPartyMon] + cp b pop bc - ld a, b - ld [wd0eb], a - inc b - pop hl + jr z, .asm_51415 + push hl + push de push bc - ld a, [Buffer1] - ld c, a - ld b, 0 - add hl, bc + call CopyBytes pop bc pop de - ld a, b - cp NUM_MOVES - jr z, .done - jr .moves_loop - -.no_more_moves - ld a, b -.nonmove_loop - push af - ld [hl], "-" - ld a, [Buffer1] - ld c, a - ld b, 0 - add hl, bc - pop af - inc a - cp NUM_MOVES - jr nz, .nonmove_loop + pop hl + push hl + ld a, l + sub c + ld l, a + ld a, h + sbc b + ld h, a + pop de + ld a, [wd265] + dec a + ld [wd265], a + jr .asm_513ef -.done +.asm_51415 + pop bc + pop hl + ld a, [CurPartyMon] + call AddNTimes + ld d, h + ld e, l + pop hl + call CopyBytes ret -; 50db9 +; 51424 -Function50db9: ; 50db9 - ld a, [wd263] +BaseData:: +INCLUDE "data/base_stats.asm" - cp $1 - jr nz, .check_party_ot_name - ld hl, OTPartyCount - ld de, OTPartyMonOT - ld a, ENEMY_OT_NAME - jr .done -.check_party_ot_name +PokemonNames:: +INCLUDE "data/pokemon_names.asm" - cp $4 - jr nz, .check_mon_name - ld hl, PartyCount - ld de, PartyMonOT - ld a, PARTY_OT_NAME - jr .done -.check_mon_name +Unknown_53d84: ; unreferenced + db $1a, $15 + db $33, $16 + db $4b, $17 + db $62, $18 + db $79, $19 + db $90, $1a + db $a8, $1b + db $c4, $1c + db $e0, $1d + db $f6, $1e + db $ff, $1f + db $ff, $20 +; 53d9c - cp $5 - jr nz, .check_item_name - ld hl, CurMart - ld de, PokemonNames - ld a, PKMN_NAME - jr .done -.check_item_name +UnknownEggPic:: ; 53d9c +; Another egg pic. This is shifted up a few pixels. +INCBIN "gfx/misc/unknown_egg.5x5.2bpp.lz" +; 53e2e - cp $2 - jr nz, .check_ob_item_name - ld hl, NumItems - ld de, ItemNames - ld a, ITEM_NAME - jr .done -.check_ob_item_name - ld hl, CurMart - ld de, ItemNames - ld a, ITEM_NAME +SECTION "bank19", ROMX, BANK[$19] -.done - ld [wNamedObjectTypeBuffer], a - ld a, l - ld [wd100], a - ld a, h - ld [wd101], a - ld a, e - ld [wd102], a - ld a, d - ld [wd103], a - ld bc, ItemAttributes - ld a, c - ld [wd104], a - ld a, b - ld [wd105], a - ret -; 50e1b +INCLUDE "text/phone/extra.asm" -CalcLevel: ; 50e1b - ld a, [TempMonSpecies] - ld [CurSpecies], a - call GetBaseData - ld d, 1 -.next_level - inc d - ld a, d - cp (MAX_LEVEL + 1) % $100 - jr z, .got_level - call CalcExpAtLevel - push hl - ld hl, TempMonExp + 2 - ld a, [hProduct + 3] - ld c, a - ld a, [hld] - sub c - ld a, [hProduct + 2] + +SECTION "bank20", ROMX, BANK[$20] + + +DoPlayerMovement:: ; 80000 + + call GetMovementInput + ld a, $3e ; standing + ld [MovementAnimation], a + xor a + ld [wd041], a + call GetPlayerMovement ld c, a - ld a, [hld] - sbc c - ld a, [hProduct + 1] + ld a, [MovementAnimation] + ld [wc2de], a + ret +; 80017 + + +GetMovementInput: ; 80017 + + ld a, [hJoyDown] + ld [CurInput], a + +; Standing downhill instead moves down. + + ld hl, BikeFlags + bit 2, [hl] ; downhill + ret z + ld c, a - ld a, [hl] - sbc c - pop hl - jr nc, .next_level + and D_PAD + ret nz -.got_level - dec d + ld a, c + or D_DOWN + ld [CurInput], a ret -; 50e47 +; 8002d +GetPlayerMovement: ; 8002d -CalcExpAtLevel: ; 50e47 -; (a/b)*n**3 + c*n**2 + d*n - e - ld a, [BaseGrowthRate] -rept 2 - add a -endr - ld c, a - ld b, 0 - ld hl, GrowthRates - add hl, bc -; Cube the level - call .LevelSquared - ld a, d - ld [hMultiplier], a - call Multiply + ld a, [PlayerState] + cp PLAYER_NORMAL + jr z, .Normal + cp PLAYER_SURF + jr z, .Surf + cp PLAYER_SURF_PIKA + jr z, .Surf + cp PLAYER_BIKE + jr z, .Normal + cp PLAYER_SLIP + jr z, .Board -; Multiply by a - ld a, [hl] - and $f0 - swap a - ld [hMultiplier], a - call Multiply -; Divide by b - ld a, [hli] - and $f - ld [hDivisor], a - ld b, 4 - call Divide -; Push the cubic term to the stack - ld a, [hQuotient + 0] - push af - ld a, [hQuotient + 1] - push af - ld a, [hQuotient + 2] - push af -; Square the level and multiply by the lower 7 bits of c - call .LevelSquared - ld a, [hl] - and $7f - ld [hMultiplier], a - call Multiply -; Push the absolute value of the quadratic term to the stack - ld a, [hProduct + 1] - push af - ld a, [hProduct + 2] - push af - ld a, [hProduct + 3] - push af - ld a, [hli] - push af -; Multiply the level by d - xor a - ld [hMultiplicand + 0], a - ld [hMultiplicand + 1], a - ld a, d - ld [hMultiplicand + 2], a - ld a, [hli] - ld [hMultiplier], a - call Multiply -; Subtract e - ld b, [hl] - ld a, [hProduct + 3] - sub b - ld [hMultiplicand + 2], a - ld b, $0 - ld a, [hProduct + 2] - sbc b - ld [hMultiplicand + 1], a - ld a, [hProduct + 1] - sbc b - ld [hMultiplicand], a -; If bit 7 of c is set, c is negative; otherwise, it's positive - pop af - and $80 - jr nz, .subtract -; Add c*n**2 to (d*n - e) - pop bc - ld a, [hProduct + 3] - add b - ld [hMultiplicand + 2], a - pop bc - ld a, [hProduct + 2] - adc b - ld [hMultiplicand + 1], a - pop bc - ld a, [hProduct + 1] - adc b - ld [hMultiplicand], a - jr .done_quadratic +.Normal + call CheckForcedMovementInput + call GetMovementAction + call CheckTileMovement + ret c + call CheckTurning + ret c + call TryStep + ret c + call TryJumpLedge + ret c + call CheckEdgeWarp + ret c + jr .NotMoving -.subtract -; Subtract c*n**2 from (d*n - e) - pop bc - ld a, [hProduct + 3] - sub b - ld [hMultiplicand + 2], a - pop bc - ld a, [hProduct + 2] - sbc b - ld [hMultiplicand + 1], a - pop bc - ld a, [hProduct + 1] - sbc b - ld [hMultiplicand], a +.Surf + call CheckForcedMovementInput + call GetMovementAction + call CheckTileMovement + ret c + call CheckTurning + ret c + call TrySurfStep + ret c + jr .NotMoving -.done_quadratic -; Add (a/b)*n**3 to (d*n - e +/- c*n**2) - pop bc - ld a, [hProduct + 3] - add b - ld [hMultiplicand + 2], a - pop bc - ld a, [hProduct + 2] - adc b - ld [hMultiplicand + 1], a - pop bc - ld a, [hProduct + 1] - adc b - ld [hMultiplicand], a +.Board + call CheckForcedMovementInput + call GetMovementAction + call CheckTileMovement + ret c + call CheckTurning + ret c + call TryStep + ret c + call TryJumpLedge + ret c + call CheckEdgeWarp + ret c + ld a, [WalkingDirection] + cp STANDING + jr z, .HitWall + call PlayBump +.HitWall + call StandInPlace + xor a ret -; 50eed -.LevelSquared: ; 50eed +.NotMoving + ld a, [WalkingDirection] + cp STANDING + jr z, .Standing + +; Walking into an edge warp won't bump. + ld a, [wd041] + and a + jr nz, .CantMove + call PlayBump +.CantMove + call WalkInPlace xor a - ld [hMultiplicand + 0], a - ld [hMultiplicand + 1], a - ld a, d - ld [hMultiplicand + 2], a - ld [hMultiplier], a - jp Multiply -; 50efa + ret -GrowthRates: ; 50efa +.Standing + call StandInPlace + xor a + ret +; 800b7 -growth_rate: MACRO -; [1]/[2]*n**3 + [3]*n**2 + [4]*n - [5] - dn \1, \2 - if \3 & $80 ; signed - db -\3 | $80 - else - db \3 - endc - db \4, \5 -ENDM - growth_rate 1, 1, 0, 0, 0 ; Medium Fast - growth_rate 3, 4, 10, 0, 30 ; Slightly Fast - growth_rate 3, 4, 20, 0, 70 ; Slightly Slow - growth_rate 6, 5, -15, 100, 140 ; Medium Slow - growth_rate 4, 5, 0, 0, 0 ; Fast - growth_rate 5, 4, 0, 0, 0 ; Slow -; 50f12 +CheckTileMovement: ; 800b7 +; Tiles such as waterfalls and warps move the player +; in a given direction, overriding input. -_SwitchPartyMons: - ld a, [wd0e3] - dec a - ld [wd1ec], a - ld b, a - ld a, [MenuSelection2] - dec a - ld [Buffer2], a ; wd1eb (aliases: MovementType) - cp b - jr z, .skip - call .SwapPartymonViaSRAM - ld a, [wd1ec] - call .ClearSprite - ld a, [Buffer2] ; wd1eb (aliases: MovementType) - call .ClearSprite -.skip + ld a, [PlayerStandingTile] + ld c, a + call CheckWhirlpoolTile + jr c, .asm_800c4 + ld a, 3 + scf ret -.ClearSprite: ; 50f34 (14:4f34) - push af - hlcoord 0, 1 - ld bc, 2 * SCREEN_WIDTH - call AddNTimes - ld bc, 2 * SCREEN_WIDTH - ld a, " " - call ByteFill - pop af - ld hl, Sprites - ld bc, $10 - call AddNTimes - ld de, $4 - ld c, $4 -.gfx_loop - ld [hl], $a0 - add hl, de - dec c - jr nz, .gfx_loop - ld de, SFX_SWITCH_POKEMON - call WaitPlaySFX - ret +.asm_800c4 + and $f0 + cp $30 ; moving water + jr z, .water + cp $40 ; moving land 1 + jr z, .land1 + cp $50 ; moving land 2 + jr z, .land2 + cp $70 ; warps + jr z, .warps + jr .asm_8013c -.SwapPartymonViaSRAM: ; 50f62 (14:4f62) - push hl - push de - push bc - ld bc, PartySpecies - ld a, [Buffer2] ; wd1eb (aliases: MovementType) - ld l, a - ld h, $0 - add hl, bc - ld d, h - ld e, l - ld a, [Buffer3] - ld l, a - ld h, $0 +.water + ld a, c + and 3 + ld c, a + ld b, 0 + ld hl, .water_table add hl, bc ld a, [hl] - push af - ld a, [de] - ld [hl], a - pop af - ld [de], a - ld a, [Buffer2] ; wd1eb (aliases: MovementType) - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - push hl - ld de, wd002 - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - ld a, [Buffer3] - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, PARTYMON_STRUCT_LENGTH - call AddNTimes - pop de - push hl - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - pop de - ld hl, wd002 - ld bc, PARTYMON_STRUCT_LENGTH - call CopyBytes - ld a, [Buffer2] ; wd1eb (aliases: MovementType) - ld hl, PartyMonOT - call SkipNames - push hl - call .CopyNameTowd002 - ld a, [Buffer3] - ld hl, PartyMonOT - call SkipNames - pop de - push hl - call .CopyName - pop de - ld hl, wd002 - call .CopyName - ld hl, PartyMonNicknames - ld a, [Buffer2] ; wd1eb (aliases: MovementType) - call SkipNames - push hl - call .CopyNameTowd002 - ld hl, PartyMonNicknames - ld a, [Buffer3] - call SkipNames - pop de - push hl - call .CopyName - pop de - ld hl, wd002 - call .CopyName - ld hl, sPartyScratch1 - ld a, [Buffer2] ; wd1eb (aliases: MovementType) - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - push hl - ld de, wd002 - ld bc, SCRATCHMON_STRUCT_LENGTH - ld a, BANK(sPartyScratch1) - call GetSRAMBank - call CopyBytes - ld hl, sPartyScratch1 - ld a, [Buffer3] - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - pop de - push hl - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - pop de - ld hl, wd002 - ld bc, SCRATCHMON_STRUCT_LENGTH - call CopyBytes - call CloseSRAM - pop bc - pop de - pop hl - ret - -.CopyNameTowd002: ; 51036 (14:5036) - ld de, wd002 + ld [WalkingDirection], a + jr .asm_8013e -.CopyName: ; 51039 (14:5039) - ld bc, NAME_LENGTH - call CopyBytes - ret +.water_table + db RIGHT + db LEFT + db UP + db DOWN -GetUnownLetter: ; 51040 -; Return Unown letter in UnownLetter based on DVs at hl +.land1 + ld a, c + and 7 + ld c, a + ld b, 0 + ld hl, .land1_table + add hl, bc + ld a, [hl] + cp STANDING + jr z, .asm_8013c + ld [WalkingDirection], a + jr .asm_8013e -; Take the middle 2 bits of each DV and place them in order: -; atk def spd spc -; .ww..xx. .yy..zz. +.land1_table + db STANDING + db RIGHT + db LEFT + db UP + db DOWN + db STANDING + db STANDING + db STANDING - ; atk +.land2 + ld a, c + and 7 + ld c, a + ld b, 0 + ld hl, .land2_table + add hl, bc ld a, [hl] - and %01100000 - sla a - ld b, a - ; def - ld a, [hli] - and %00000110 - swap a - srl a - or b - ld b, a + cp STANDING + jr z, .asm_8013c + ld [WalkingDirection], a + jr .asm_8013e - ; spd - ld a, [hl] - and %01100000 - swap a - sla a - or b - ld b, a - ; spc - ld a, [hl] - and %00000110 - srl a - or b +.land2_table + db RIGHT + db LEFT + db UP + db DOWN + db STANDING + db STANDING + db STANDING + db STANDING -; Divide by 10 to get 0-25 - ld [hDividend + 3], a +.warps + ld a, c + cp $71 ; door + jr z, .down + cp $79 + jr z, .down + cp $7a ; stairs + jr z, .down + cp $7b ; cave + jr nz, .asm_8013c + +.down + ld a, DOWN + ld [WalkingDirection], a + jr .asm_8013e + +.asm_8013c xor a - ld [hDividend], a - ld [hDividend + 1], a - ld [hDividend + 2], a - ld a, 10 - ld [hDivisor], a - ld b, 4 - call Divide + ret -; Increment to get 1-26 - ld a, [hQuotient + 2] - inc a - ld [UnownLetter], a +.asm_8013e + ld a, STEP_WALK + call DoStep + ld a, 5 + scf ret -; 51077 +; 80147 -GetFrontpic: ; 51077 - ld a, [CurPartySpecies] - ld [CurSpecies], a - call IsAPokemon - ret c - ld a, [rSVBK] - push af - call _GetFrontpic - pop af - ld [rSVBK], a - ret -; 5108b +CheckTurning: ; 80147 +; If the player is turning, change direction first. This also lets +; the player change facing without moving by tapping a direction. -Function5108b: ; 5108b - ld a, [CurPartySpecies] - ld [CurSpecies], a - call IsAPokemon - ret c - ld a, [rSVBK] - push af - xor a - ld [hBGMapMode], a - call _GetFrontpic - call Function51103 - pop af - ld [rSVBK], a + ld a, [wd04e] + cp 0 + jr nz, .asm_80169 + ld a, [WalkingDirection] + cp STANDING + jr z, .asm_80169 + + ld e, a + ld a, [PlayerDirection] + rrca + rrca + and 3 + cp e + jr z, .asm_80169 + + ld a, STEP_TURN + call DoStep + ld a, 2 + scf ret -; 510a5 -_GetFrontpic: ; 510a5 - push de - call GetBaseData - ld a, [BasePicSize] - and $f - ld b, a - push bc - call GetFrontpicPointer - ld a, $6 - ld [rSVBK], a - ld a, b - ld de, w6_d000 + $800 - call FarDecompress - pop bc - ld hl, w6_d000 - ld de, w6_d000 + $800 - call Function512ab - pop hl - push hl - ld de, w6_d000 - ld c, 7 * 7 - ld a, [hROMBank] - ld b, a - call Get2bpp - pop hl +.asm_80169 + xor a ret -; 510d7 +; 8016b -GetFrontpicPointer: ; 510d7 -GLOBAL PicPointers, UnownPicPointers - ld a, [CurPartySpecies] - cp UNOWN - jr z, .unown - ld a, [CurPartySpecies] - ld d, BANK(PicPointers) - jr .ok +TryStep: ; 8016b -.unown - ld a, [UnownLetter] - ld d, BANK(UnownPicPointers) +; Surfing actually calls TrySurfStep directly instead of passing through here. + ld a, [PlayerState] + cp PLAYER_SURF + jr z, TrySurfStep + cp PLAYER_SURF_PIKA + jr z, TrySurfStep -.ok - ld hl, PicPointers ; UnownPicPointers - dec a - ld bc, 6 - call AddNTimes - ld a, d - call GetFarByte - call FixPicBank - push af - inc hl - ld a, d - call GetFarHalfword - pop bc - ret -; 51103 + call CheckLandPermissions + jr c, .asm_801be -Function51103: ; 51103 - ld a, $1 - ld [rVBK], a - push hl - ld de, w6_d000 - ld c, 7 * 7 - ld a, [hROMBank] - ld b, a - call Get2bpp - pop hl - ld de, 7 * 7 * $10 - add hl, de - push hl - ld a, $1 - ld hl, BasePicSize - call GetFarWRAMByte - pop hl - and $f - ld de, w6_d000 + $800 + 5 * 5 * $10 - ld c, 5 * 5 - cp 5 - jr z, .asm_5113b - ld de, w6_d000 + $800 + 6 * 6 * $10 - ld c, 6 * 6 - cp 6 - jr z, .asm_5113b - ld de, w6_d000 + $800 + 7 * 7 * $10 - ld c, 7 * 7 -.asm_5113b + call IsNPCInFront + and a + jr z, .asm_801be + cp 2 + jr z, .asm_801be - push hl - push bc - call Function5114f - pop bc - pop hl - ld de, w6_d000 - ld a, [hROMBank] - ld b, a - call Get2bpp - xor a - ld [rVBK], a - ret -; 5114f + ld a, [PlayerStandingTile] + call CheckIceTile + jr nc, .ice -Function5114f: ; 5114f - ld hl, w6_d000 - swap c - ld a, c - and $f - ld b, a - ld a, c - and $f0 - ld c, a - push bc - call Function512f2 - pop bc -.asm_51161 - push bc - ld c, $0 - call Function512f2 - pop bc - dec b - jr nz, .asm_51161 - ret -; 5116c +; Downhill riding is slower when not moving down. + call CheckRiding + jr nz, .asm_801ae -GetBackpic: ; 5116c - ld a, [CurPartySpecies] - call IsAPokemon - ret c + ld hl, BikeFlags + bit 2, [hl] ; downhill + jr z, .fast - ld a, [CurPartySpecies] - ld b, a - ld a, [UnownLetter] - ld c, a - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push de + ld a, [WalkingDirection] + cp DOWN + jr z, .fast - ; These are assumed to be at the same - ; address in their respective banks. - GLOBAL PicPointers, UnownPicPointers - ld hl, PicPointers ; UnownPicPointers - ld a, b - ld d, BANK(PicPointers) - cp UNOWN - jr nz, .ok - ld a, c - ld d, BANK(UnownPicPointers) -.ok - dec a - ld bc, 6 - call AddNTimes - ld bc, 3 - add hl, bc - ld a, d - call GetFarByte - call FixPicBank - push af - inc hl - ld a, d - call GetFarHalfword - ld de, w6_d000 - pop af - call FarDecompress - ld hl, w6_d000 - ld c, 6 * 6 - call Function5127c - pop hl - ld de, w6_d000 - ld a, [hROMBank] - ld b, a - call Get2bpp - pop af - ld [rSVBK], a + ld a, STEP_WALK + call DoStep + scf ret -; 511c5 - -FixPicBank: ; 511c5 -; This is a thing for some reason. - push hl - push bc - sub PICS_1 - $36 - ld c, a - ld b, 0 - ld hl, Unknown_511d4 - add hl, bc - ld a, [hl] - pop bc - pop hl +.fast + ld a, STEP_BIKE + call DoStep + scf ret -; 511d4 -Unknown_511d4: ; 511d4 - db PICS_1 - db PICS_2 - db PICS_3 - db PICS_4 - db PICS_5 - db PICS_6 - db PICS_7 - db PICS_8 - db PICS_9 - db PICS_10 - db PICS_11 - db PICS_12 - db PICS_13 - db PICS_14 - db PICS_15 - db PICS_16 - db PICS_17 - db PICS_18 - db PICS_19 - db PICS_19 + 1 - db PICS_19 + 2 - db PICS_19 + 3 - db PICS_19 + 4 - db PICS_19 + 5 +.asm_801ae + ld a, STEP_WALK + call DoStep + scf + ret -Function511ec: ; 511ec - ld a, c - push de - ld hl, PicPointers - dec a - ld bc, 6 - call AddNTimes - ld a, BANK(PicPointers) - call GetFarByte - call FixPicBank - push af - inc hl - ld a, BANK(PicPointers) - call GetFarHalfword - pop af - pop de - call FarDecompress +.ice + ld a, STEP_ICE + call DoStep + scf ret -; 0x5120d +; unused? + xor a + ret -GetTrainerPic: ; 5120d - ld a, [TrainerClass] - and a - ret z - cp NUM_TRAINER_CLASSES - ret nc - call WaitBGMap +.asm_801be xor a - ld [hBGMapMode], a - ld hl, TrainerPicPointers - ld a, [TrainerClass] - dec a - ld bc, 3 - call AddNTimes - ld a, [rSVBK] - push af - ld a, $6 - ld [rSVBK], a - push de - ld a, BANK(TrainerPicPointers) - call GetFarByte - call FixPicBank - push af - inc hl - ld a, BANK(TrainerPicPointers) - call GetFarHalfword - pop af - ld de, w6_d000 - call FarDecompress - pop hl - ld de, w6_d000 - ld c, 7 * 7 - ld a, [hROMBank] - ld b, a - call Get2bpp - pop af - ld [rSVBK], a - call WaitBGMap - ld a, $1 - ld [hBGMapMode], a ret -; 5125d +; 801c0 +TrySurfStep: ; 801c0 -DecompressPredef: ; 5125d -; Decompress lz data from b:hl to scratch space at 6:d000, then copy it to address de. + call CheckWaterPermissions + ld [wd040], a + jr c, .bump - ld a, [rSVBK] - push af - ld a, 6 - ld [rSVBK], a + call IsNPCInFront + ld [wd03f], a + and a + jr z, .bump + cp 2 + jr z, .bump - push de - push bc - ld a, b - ld de, w6_d000 - call FarDecompress - pop bc - ld de, w6_d000 - pop hl - ld a, [hROMBank] - ld b, a - call Get2bpp + ld a, [wd040] + and a + jr nz, .ExitWater - pop af - ld [rSVBK], a + ld a, STEP_WALK + call DoStep + scf ret -; 5127c +.ExitWater + call WaterToLandSprite + call PlayMapMusic + ld a, STEP_WALK + call DoStep + ld a, 6 + scf + ret -Function5127c: ; 5127c - push de - push bc - ld a, [wc2c6] - and a - jr z, .asm_512a8 - ld a, c - cp 7 * 7 - ld de, 7 * 7 * $10 - jr z, .asm_51296 - cp 6 * 6 - ld de, 6 * 6 * $10 - jr z, .asm_51296 - ld de, 5 * 5 * $10 +.bump + xor a + ret +; 801f3 -.asm_51296 - ld a, [hl] - ld b, $0 - ld c, $8 -.asm_5129b - rra - rl b - dec c - jr nz, .asm_5129b - ld a, b - ld [hli], a - dec de - ld a, e - or d - jr nz, .asm_51296 -.asm_512a8 - pop bc - pop de - ret -; 512ab +TryJumpLedge: ; 801f3 + ld a, [PlayerStandingTile] + ld e, a + and $f0 + cp $a0 ; ledge + jr nz, .DontJump -Function512ab: ; 512ab - ld a, b - cp 6 - jr z, .six - cp 5 - jr z, .five + ld a, e + and 7 + ld e, a + ld d, 0 + ld hl, .data_8021e + add hl, de + ld a, [FacingDirection] + and [hl] + jr z, .DontJump -.seven - ld c, $70 - call Function512f2 - dec b - jr nz, .seven + ld de, SFX_JUMP_OVER_LEDGE + call PlaySFX + ld a, STEP_LEDGE + call DoStep + ld a, 7 + scf ret -.six - ld c, $70 - xor a - call .Fill -.asm_512c3 - ld c, $10 +.DontJump xor a - call .Fill - ld c, $60 - call Function512f2 - dec b - jr nz, .asm_512c3 ret -.five - ld c, $70 - xor a - call .Fill -.asm_512d8 - ld c, $20 - xor a - call .Fill - ld c, $50 - call Function512f2 - dec b - jr nz, .asm_512d8 - ld c, $70 - xor a - call .Fill - ret +.data_8021e + db FACE_RIGHT + db FACE_LEFT + db FACE_UP + db FACE_DOWN + db FACE_RIGHT | FACE_DOWN + db FACE_DOWN | FACE_LEFT + db FACE_UP | FACE_RIGHT + db FACE_UP | FACE_LEFT +; 80226 -.Fill - ld [hli], a - dec c - jr nz, .Fill - ret -; 512f2 -Function512f2: ; 512f2 - ld a, [wc2c6] - and a - jr nz, .asm_512ff -.asm_512f8 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_512f8 - ret +CheckEdgeWarp: ; 80226 -.asm_512ff - push bc -.asm_51300 - ld a, [de] - inc de - ld b, a - xor a - rept 8 - rr b - rla - endr - ld [hli], a - dec c - jr nz, .asm_51300 - pop bc - ret -; 51322 - -Function51322: ; 51322 - ld a, BANK(sBoxCount) - call GetSRAMBank - ld hl, sBoxCount - call Function513cb - ld a, [sBoxCount] - dec a - ld [wd265], a - ld hl, sBoxMonNicknames - ld bc, PKMN_NAME_LENGTH - ld de, wd002 - call Function513e0 - ld a, [sBoxCount] - dec a - ld [wd265], a - ld hl, sBoxMonOT - ld bc, NAME_LENGTH - ld de, wd00d - call Function513e0 - ld a, [sBoxCount] - dec a - ld [wd265], a - ld hl, sBoxMons - ld bc, BOXMON_STRUCT_LENGTH - ld de, wd018 - call Function513e0 - ld hl, wd01a - ld de, TempMonMoves - ld bc, NUM_MOVES - call CopyBytes - ld hl, wd02f - ld de, TempMonPP - ld bc, NUM_MOVES - call CopyBytes - ld a, [CurPartyMon] - ld b, a - callba Functiondcb6 - jp CloseSRAM -; 5138b +; Bug: Since no case is made for STANDING here, it will check +; [.edgewarps + $ff]. This resolves to $3e at $8035a. +; This causes wd041 to be nonzero when standing on tile $3e, +; making bumps silent. -Function5138b: ; 5138b - ld hl, PartyCount - call Function513cb - ld a, [PartyCount] - dec a - ld [wd265], a - ld hl, PartyMonNicknames - ld bc, PKMN_NAME_LENGTH - ld de, wd002 - call Function513e0 - ld a, [PartyCount] - dec a - ld [wd265], a - ld hl, PartyMonOT - ld bc, NAME_LENGTH - ld de, wd00d - call Function513e0 - ld a, [PartyCount] - dec a - ld [wd265], a - ld hl, PartyMons - ld bc, PARTYMON_STRUCT_LENGTH - ld de, wd018 - call Function513e0 - ret -; 513cb + ld a, [WalkingDirection] + ld e, a + ld d, 0 + ld hl, .EdgeWarps + add hl, de + ld a, [PlayerStandingTile] + cp [hl] + jr nz, .asm_80259 -Function513cb: ; 513cb - inc [hl] - inc hl - ld a, [CurPartyMon] - ld c, a - ld b, 0 - add hl, bc - ld a, [CurPartySpecies] - ld c, a -.asm_513d8 - ld a, [hl] - ld [hl], c - inc hl - inc c - ld c, a - jr nz, .asm_513d8 - ret -; 513e0 + ld a, 1 + ld [wd041], a + ld a, [WalkingDirection] + cp STANDING + jr z, .asm_80259 -Function513e0: ; 513e0 - push de - push hl - push bc - ld a, [wd265] - dec a - call AddNTimes - push hl - add hl, bc - ld d, h - ld e, l - pop hl -.asm_513ef - push bc - ld a, [wd265] - ld b, a - ld a, [CurPartyMon] - cp b - pop bc - jr z, .asm_51415 - push hl - push de - push bc - call CopyBytes - pop bc - pop de - pop hl - push hl - ld a, l - sub c - ld l, a - ld a, h - sbc b - ld h, a - pop de - ld a, [wd265] - dec a - ld [wd265], a - jr .asm_513ef + ld e, a + ld a, [PlayerDirection] + rrca + rrca + and 3 + cp e + jr nz, .asm_80259 + call Function224a ; CheckFallPit? + jr nc, .asm_80259 -.asm_51415 - pop bc - pop hl - ld a, [CurPartyMon] - call AddNTimes - ld d, h - ld e, l - pop hl - call CopyBytes + call StandInPlace + scf + ld a, 1 ret -; 51424 - -BaseData:: -INCLUDE "data/base_stats.asm" -PokemonNames:: -INCLUDE "data/pokemon_names.asm" +.asm_80259 + xor a + ret -Unknown_53d84: ; unreferenced - db $1a, $15 - db $33, $16 - db $4b, $17 - db $62, $18 - db $79, $19 - db $90, $1a - db $a8, $1b - db $c4, $1c - db $e0, $1d - db $f6, $1e - db $ff, $1f - db $ff, $20 -; 53d9c +.EdgeWarps + db $70, $78, $76, $7e +; 8025f -UnknownEggPic:: ; 53d9c -; Another egg pic. This is shifted up a few pixels. -INCBIN "gfx/misc/unknown_egg.5x5.2bpp.lz" -; 53e2e +DoStep: ; 8025f + ld e, a + ld d, 0 + ld hl, .Steps +rept 2 + add hl, de +endr + ld a, [hli] + ld h, [hl] + ld l, a -SECTION "bank19", ROMX, BANK[$19] + ld a, [WalkingDirection] + ld e, a + cp STANDING + jp z, StandInPlace -INCLUDE "text/phone/extra.asm" + add hl, de + ld a, [hl] + ld [MovementAnimation], a + ld hl, .WalkInPlace + add hl, de + ld a, [hl] + ld [wd04e], a + ld a, 4 + ret -SECTION "bank20", ROMX, BANK[$20] +.Steps + dw .Slow + dw .Walk + dw .Bike + dw .Ledge + dw .Ice + dw .Turn + dw .BackwardsLedge + dw .WalkInPlace +.Slow + db $08, $09, $0a, $0b +.Walk + db $0c, $0d, $0e, $0f +.Bike + db $10, $11, $12, $13 +.Ledge + db $30, $31, $32, $33 +.Ice + db $1c, $1d, $1e, $1f +.BackwardsLedge + db $31, $30, $33, $32 +.Turn + db $04, $05, $06, $07 +.WalkInPlace + db $80, $81, $82, $83 +; 802b3 -DoPlayerMovement:: ; 80000 - call GetMovementInput +StandInPlace: ; 802b3 + ld a, 0 + ld [wd04e], a ld a, $3e ; standing ld [MovementAnimation], a xor a - ld [wd041], a - call GetPlayerMovement - ld c, a - ld a, [MovementAnimation] - ld [wc2de], a ret -; 80017 +; 802bf -GetMovementInput: ; 80017 +WalkInPlace: ; 802bf + ld a, 0 + ld [wd04e], a + ld a, $50 ; walking + ld [MovementAnimation], a + xor a + ret +; 802cb - ld a, [hJoyDown] - ld [CurInput], a -; Standing downhill instead moves down. +CheckForcedMovementInput: ; 802cb +; When sliding on ice, input is forced to remain in the same direction. - ld hl, BikeFlags - bit 2, [hl] ; downhill - ret z + call Function80404 + ret nc - ld c, a - and D_PAD - ret nz + ld a, [wd04e] + cp 0 + ret z - ld a, c - or D_DOWN + and 3 + ld e, a + ld d, 0 + ld hl, .data_802e8 + add hl, de + ld a, [CurInput] + and A_BUTTON | B_BUTTON | SELECT | START + or [hl] ld [CurInput], a ret -; 8002d +.data_802e8 + db D_DOWN, D_UP, D_LEFT, D_RIGHT +; 802ec -GetPlayerMovement: ; 8002d - ld a, [PlayerState] - cp PLAYER_NORMAL - jr z, .Normal - cp PLAYER_SURF - jr z, .Surf - cp PLAYER_SURF_PIKA - jr z, .Surf - cp PLAYER_BIKE - jr z, .Normal - cp PLAYER_SLIP - jr z, .Board +GetMovementAction: ; 802ec +; Poll player input and update movement info. -.Normal - call CheckForcedMovementInput - call GetMovementAction - call CheckTileMovement - ret c - call CheckTurning - ret c - call TryStep - ret c - call TryJumpLedge - ret c - call CheckEdgeWarp - ret c - jr .NotMoving + ld hl, .table + ld de, .table2 - .table1 + ld a, [CurInput] + bit 7, a + jr nz, .down + bit 6, a + jr nz, .up + bit 5, a + jr nz, .left + bit 4, a + jr nz, .right +; Standing + jr .update -.Surf - call CheckForcedMovementInput - call GetMovementAction - call CheckTileMovement - ret c - call CheckTurning - ret c - call TrySurfStep - ret c - jr .NotMoving +.down add hl, de +.up add hl, de +.left add hl, de +.right add hl, de -.Board - call CheckForcedMovementInput - call GetMovementAction - call CheckTileMovement - ret c - call CheckTurning - ret c - call TryStep - ret c - call TryJumpLedge - ret c - call CheckEdgeWarp - ret c - ld a, [WalkingDirection] - cp STANDING - jr z, .HitWall - call PlayBump -.HitWall - call StandInPlace - xor a +.update + ld a, [hli] + ld [WalkingDirection], a + ld a, [hli] + ld [FacingDirection], a + ld a, [hli] + ld [WalkingX], a + ld a, [hli] + ld [WalkingY], a + ld a, [hli] + ld h, [hl] + ld l, a + ld a, [hl] + ld [WalkingTile], a ret -.NotMoving - ld a, [WalkingDirection] - cp STANDING - jr z, .Standing +.table +; struct: +; walk direction +; facing +; x movement +; y movement +; tile collision pointer +.table1 + db STANDING, FACE_CURRENT, 0, 0 + dw PlayerStandingTile +.table2 + db RIGHT, FACE_RIGHT, 1, 0 + dw TileRight + db LEFT, FACE_LEFT, -1, 0 + dw TileLeft + db UP, FACE_UP, 0, -1 + dw TileUp + db DOWN, FACE_DOWN, 0, 1 + dw TileDown +; 80341 + + +IsNPCInFront: ; 80341 + + ld a, 0 + ld [hMapObjectIndexBuffer], a + ld a, [PlayerMapX] + ld d, a + ld a, [WalkingX] + add d + ld d, a + ld a, [PlayerMapY] + ld e, a + ld a, [WalkingY] + add e + ld e, a + ld bc, ObjectStructs ; redundant + callba Function7041 + jr nc, .asm_80369 + call Function8036f + jr c, .asm_8036c -; Walking into an edge warp won't bump. - ld a, [wd041] - and a - jr nz, .CantMove - call PlayBump -.CantMove - call WalkInPlace xor a ret -.Standing - call StandInPlace - xor a +.asm_80369 + ld a, 1 ret -; 800b7 +.asm_8036c + ld a, 2 + ret +; 8036f -CheckTileMovement: ; 800b7 -; Tiles such as waterfalls and warps move the player -; in a given direction, overriding input. - ld a, [PlayerStandingTile] - ld c, a - call CheckWhirlpoolTile - jr c, .asm_800c4 - ld a, 3 - scf - ret +Function8036f: ; 8036f -.asm_800c4 - and $f0 - cp $30 ; moving water - jr z, .water - cp $40 ; moving land 1 - jr z, .land1 - cp $50 ; moving land 2 - jr z, .land2 - cp $70 ; warps - jr z, .warps - jr .asm_8013c + ld hl, BikeFlags + bit 0, [hl] + jr z, .asm_8039c -.water - ld a, c - and 3 - ld c, a - ld b, 0 - ld hl, .water_table + ld hl, $7 add hl, bc ld a, [hl] - ld [WalkingDirection], a - jr .asm_8013e - -.water_table - db RIGHT - db LEFT - db UP - db DOWN + cp $ff + jr nz, .asm_8039c -.land1 - ld a, c - and 7 - ld c, a - ld b, 0 - ld hl, .land1_table - add hl, bc - ld a, [hl] - cp STANDING - jr z, .asm_8013c - ld [WalkingDirection], a - jr .asm_8013e - -.land1_table - db STANDING - db RIGHT - db LEFT - db UP - db DOWN - db STANDING - db STANDING - db STANDING - -.land2 - ld a, c - and 7 - ld c, a - ld b, 0 - ld hl, .land2_table - add hl, bc - ld a, [hl] - cp STANDING - jr z, .asm_8013c - ld [WalkingDirection], a - jr .asm_8013e - -.land2_table - db RIGHT - db LEFT - db UP - db DOWN - db STANDING - db STANDING - db STANDING - db STANDING - -.warps - ld a, c - cp $71 ; door - jr z, .down - cp $79 - jr z, .down - cp $7a ; stairs - jr z, .down - cp $7b ; cave - jr nz, .asm_8013c - -.down - ld a, DOWN - ld [WalkingDirection], a - jr .asm_8013e - -.asm_8013c - xor a - ret - -.asm_8013e - ld a, STEP_WALK - call DoStep - ld a, 5 - scf - ret -; 80147 - - -CheckTurning: ; 80147 -; If the player is turning, change direction first. This also lets -; the player change facing without moving by tapping a direction. - - ld a, [wd04e] - cp 0 - jr nz, .asm_80169 - ld a, [WalkingDirection] - cp STANDING - jr z, .asm_80169 - - ld e, a - ld a, [PlayerDirection] - rrca - rrca - and 3 - cp e - jr z, .asm_80169 - - ld a, STEP_TURN - call DoStep - ld a, 2 - scf - ret - -.asm_80169 - xor a - ret -; 8016b - - -TryStep: ; 8016b - -; Surfing actually calls TrySurfStep directly instead of passing through here. - ld a, [PlayerState] - cp PLAYER_SURF - jr z, TrySurfStep - cp PLAYER_SURF_PIKA - jr z, TrySurfStep - - call CheckLandPermissions - jr c, .asm_801be - - call IsNPCInFront - and a - jr z, .asm_801be - cp 2 - jr z, .asm_801be - - ld a, [PlayerStandingTile] - call CheckIceTile - jr nc, .ice - -; Downhill riding is slower when not moving down. - call CheckRiding - jr nz, .asm_801ae - - ld hl, BikeFlags - bit 2, [hl] ; downhill - jr z, .fast - - ld a, [WalkingDirection] - cp DOWN - jr z, .fast - - ld a, STEP_WALK - call DoStep - scf - ret - -.fast - ld a, STEP_BIKE - call DoStep - scf - ret - -.asm_801ae - ld a, STEP_WALK - call DoStep - scf - ret - -.ice - ld a, STEP_ICE - call DoStep - scf - ret - -; unused? - xor a - ret - -.asm_801be - xor a - ret -; 801c0 - - -TrySurfStep: ; 801c0 - - call CheckWaterPermissions - ld [wd040], a - jr c, .bump - - call IsNPCInFront - ld [wd03f], a - and a - jr z, .bump - cp 2 - jr z, .bump - - ld a, [wd040] - and a - jr nz, .ExitWater - - ld a, STEP_WALK - call DoStep - scf - ret - -.ExitWater - call WaterToLandSprite - call PlayMapMusic - ld a, STEP_WALK - call DoStep - ld a, 6 - scf - ret - -.bump - xor a - ret -; 801f3 - - -TryJumpLedge: ; 801f3 - ld a, [PlayerStandingTile] - ld e, a - and $f0 - cp $a0 ; ledge - jr nz, .DontJump - - ld a, e - and 7 - ld e, a - ld d, 0 - ld hl, .data_8021e - add hl, de - ld a, [FacingDirection] - and [hl] - jr z, .DontJump - - ld de, SFX_JUMP_OVER_LEDGE - call PlaySFX - ld a, STEP_LEDGE - call DoStep - ld a, 7 - scf - ret - -.DontJump - xor a - ret - -.data_8021e - db FACE_RIGHT - db FACE_LEFT - db FACE_UP - db FACE_DOWN - db FACE_RIGHT | FACE_DOWN - db FACE_DOWN | FACE_LEFT - db FACE_UP | FACE_RIGHT - db FACE_UP | FACE_LEFT -; 80226 - - -CheckEdgeWarp: ; 80226 - -; Bug: Since no case is made for STANDING here, it will check -; [.edgewarps + $ff]. This resolves to $3e at $8035a. -; This causes wd041 to be nonzero when standing on tile $3e, -; making bumps silent. - - ld a, [WalkingDirection] - ld e, a - ld d, 0 - ld hl, .EdgeWarps - add hl, de - ld a, [PlayerStandingTile] - cp [hl] - jr nz, .asm_80259 - - ld a, 1 - ld [wd041], a - ld a, [WalkingDirection] - cp STANDING - jr z, .asm_80259 - - ld e, a - ld a, [PlayerDirection] - rrca - rrca - and 3 - cp e - jr nz, .asm_80259 - call Function224a ; CheckFallPit? - jr nc, .asm_80259 - - call StandInPlace - scf - ld a, 1 - ret - -.asm_80259 - xor a - ret - -.EdgeWarps - db $70, $78, $76, $7e -; 8025f - - -DoStep: ; 8025f - ld e, a - ld d, 0 - ld hl, .Steps -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - - ld a, [WalkingDirection] - ld e, a - cp STANDING - jp z, StandInPlace - - add hl, de - ld a, [hl] - ld [MovementAnimation], a - - ld hl, .WalkInPlace - add hl, de - ld a, [hl] - ld [wd04e], a - - ld a, 4 - ret - -.Steps - dw .Slow - dw .Walk - dw .Bike - dw .Ledge - dw .Ice - dw .Turn - dw .BackwardsLedge - dw .WalkInPlace - -.Slow - db $08, $09, $0a, $0b -.Walk - db $0c, $0d, $0e, $0f -.Bike - db $10, $11, $12, $13 -.Ledge - db $30, $31, $32, $33 -.Ice - db $1c, $1d, $1e, $1f -.BackwardsLedge - db $31, $30, $33, $32 -.Turn - db $04, $05, $06, $07 -.WalkInPlace - db $80, $81, $82, $83 -; 802b3 - - -StandInPlace: ; 802b3 - ld a, 0 - ld [wd04e], a - ld a, $3e ; standing - ld [MovementAnimation], a - xor a - ret -; 802bf - - -WalkInPlace: ; 802bf - ld a, 0 - ld [wd04e], a - ld a, $50 ; walking - ld [MovementAnimation], a - xor a - ret -; 802cb - - -CheckForcedMovementInput: ; 802cb -; When sliding on ice, input is forced to remain in the same direction. - - call Function80404 - ret nc - - ld a, [wd04e] - cp 0 - ret z - - and 3 - ld e, a - ld d, 0 - ld hl, .data_802e8 - add hl, de - ld a, [CurInput] - and A_BUTTON | B_BUTTON | SELECT | START - or [hl] - ld [CurInput], a - ret - -.data_802e8 - db D_DOWN, D_UP, D_LEFT, D_RIGHT -; 802ec - - -GetMovementAction: ; 802ec -; Poll player input and update movement info. - - ld hl, .table - ld de, .table2 - .table1 - ld a, [CurInput] - bit 7, a - jr nz, .down - bit 6, a - jr nz, .up - bit 5, a - jr nz, .left - bit 4, a - jr nz, .right -; Standing - jr .update - -.down add hl, de -.up add hl, de -.left add hl, de -.right add hl, de - -.update - ld a, [hli] - ld [WalkingDirection], a - ld a, [hli] - ld [FacingDirection], a - ld a, [hli] - ld [WalkingX], a - ld a, [hli] - ld [WalkingY], a - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - ld [WalkingTile], a - ret - -.table -; struct: -; walk direction -; facing -; x movement -; y movement -; tile collision pointer -.table1 - db STANDING, FACE_CURRENT, 0, 0 - dw PlayerStandingTile -.table2 - db RIGHT, FACE_RIGHT, 1, 0 - dw TileRight - db LEFT, FACE_LEFT, -1, 0 - dw TileLeft - db UP, FACE_UP, 0, -1 - dw TileUp - db DOWN, FACE_DOWN, 0, 1 - dw TileDown -; 80341 - - -IsNPCInFront: ; 80341 - - ld a, 0 - ld [hMapObjectIndexBuffer], a - ld a, [PlayerMapX] - ld d, a - ld a, [WalkingX] - add d - ld d, a - ld a, [PlayerMapY] - ld e, a - ld a, [WalkingY] - add e - ld e, a - ld bc, ObjectStructs ; redundant - callba Function7041 - jr nc, .asm_80369 - call Function8036f - jr c, .asm_8036c - - xor a - ret - -.asm_80369 - ld a, 1 - ret - -.asm_8036c - ld a, 2 - ret -; 8036f - - -Function8036f: ; 8036f - - ld hl, BikeFlags - bit 0, [hl] - jr z, .asm_8039c - - ld hl, $7 - add hl, bc - ld a, [hl] - cp $ff - jr nz, .asm_8039c - - ld hl, $6 + ld hl, $6 add hl, bc bit 6, [hl] jr z, .asm_8039c @@ -38609,7 +37247,7 @@ Function84419: ; 84419 ; 84425 Function84425: ; 84425 - call Function222a + call ReturnToMapFromSubmenu call Function84753 ret ; 8442c @@ -39499,7 +38137,7 @@ RedCredits:: ; 86455 ld [MusicFadeIDHi], a ld a, $a ld [MusicFade], a - callba FadeBlackBGMap + callba FadeOutPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -39522,7 +38160,7 @@ Function8648e: ; 8648e ld [MusicFadeIDHi], a ld a, 10 ld [MusicFade], a - callba FadeBlackBGMap + callba FadeOutPalettes xor a ld [VramState], a ld [hMapAnims], a @@ -39688,7 +38326,7 @@ GetHallOfFameParty: ; 8653f Function865b5: ; 865b5 push hl - call WhiteBGMap + call ClearBGPalettes callba Function4e906 pop hl ld a, [hli] @@ -39833,7 +38471,7 @@ Function86692: ; 86692 .asm_866a9 push hl - call WhiteBGMap + call ClearBGPalettes pop hl call Function86748 ld a, [wc608] @@ -39997,7 +38635,7 @@ Function86748: ; 86748 ; 86810 Function86810: ; 86810 - call WhiteBGMap + call ClearBGPalettes ld hl, VTiles2 tile $63 ld de, FontExtra + $d0 lb bc, BANK(FontExtra), 1 @@ -40420,7 +39058,7 @@ PlayWhirlpoolSound: ; 8c7d4 ; 8c7e1 BlindingFlash: ; 8c7e1 - callba FadeBlackBGMap + callba FadeOutPalettes ld hl, StatusFlags set 2, [hl] callba Function8c0e5 @@ -40428,7 +39066,7 @@ BlindingFlash: ; 8c7e1 ld b, $9 call GetSGBLayout callba Function49409 - callba FadeInBGMap + callba FadeInPalettes ret ; 8c80a @@ -40929,7 +39567,7 @@ Special_MagnetTrain: ; 8cc04 .done pop af ld [hVBlank], a - call WhiteBGMap + call ClearBGPalettes xor a ld [hLCDStatCustom], a ld [hLCDStatCustom + 1], a @@ -40986,7 +39624,7 @@ Function8ccc4: ; 8ccc4 ; 8ccc9 Function8ccc9: ; 8ccc9 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call DisableLCD callab Function8cf53 @@ -45602,7 +44240,7 @@ Function90b8d: ; 90b8d (24:4b8d) ld [hInMenu], a pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes xor a ld [hBGMapAddress], a ld a, VBGMap0 / $100 @@ -45613,7 +44251,7 @@ Function90b8d: ; 90b8d (24:4b8d) ret Function90bea: ; 90bea (24:4bea) - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -47002,7 +45640,7 @@ Function9191c: ; 9191c push af xor a ld [VramState], a - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites call DisableLCD @@ -47057,7 +45695,7 @@ Function9191c: ; 9191c ld [hInMenu], a pop af ld [Options], a - call WhiteBGMap + call ClearBGPalettes ret ; 919b0 @@ -47263,8 +45901,12 @@ Function91ae1: ; 91ae1 ; 91af3 -_FlyMap: ; 91af3 - call WhiteBGMap +INCLUDE "engine/flypoints.asm" + +Function92311: ; unreferenced + xor a + ld [wd002], a + call ClearBGPalettes call ClearTileMap call ClearSprites ld hl, hInMenu @@ -47279,8 +45921,21 @@ _FlyMap: ; 91af3 ld hl, VTiles2 tile $30 lb bc, BANK(GFX_922e1), 6 call Request1bpp - call FlyMap - call Function91c8f + call FillKantoMap + call TownMapBubble + call TownMapPals + ld hl, VBGMap1 + call TownMapBGUpdate + call FillJohtoMap + call TownMapBubble + call TownMapPals + ld hl, VBGMap0 + call TownMapBGUpdate + call TownMapMon + ld a, c + ld [wd003], a + ld a, b + ld [wd004], a ld b, $2 call GetSGBLayout call SetPalettes @@ -47293,7 +45948,7 @@ _FlyMap: ; 91af3 ld a, [hl] and A_BUTTON jr nz, .pressedA - call FlyMapScroll + call Function923b8 call GetMapCursorCoordinates callba Function8cf69 call DelayFrame @@ -47301,7 +45956,7 @@ _FlyMap: ; 91af3 .pressedB ld a, -1 - jr .exit + jr .asm_9239f .pressedA ld a, [wd002] @@ -47312,11 +45967,11 @@ _FlyMap: ; 91af3 add hl, de ld a, [hl] -.exit +.asm_9239f ld [wd002], a pop af ld [hInMenu], a - call WhiteBGMap + call ClearBGPalettes ld a, $90 ld [hWY], a xor a @@ -47326,11365 +45981,1619 @@ _FlyMap: ; 91af3 ld a, [wd002] ld e, a ret -; 91b73 +; 923b8 -FlyMapScroll: ; 91b73 - ld a, [StartFlypoint] - ld e, a - ld a, [EndFlypoint] - ld d, a +Function923b8: ; 923b8 ld hl, hJoyLast ld a, [hl] - and D_UP - jr nz, .ScrollNext + and D_DOWN | D_RIGHT + jr nz, .asm_923c6 ld a, [hl] - and D_DOWN - jr nz, .ScrollPrev + and D_UP | D_LEFT + jr nz, .asm_923d3 ret -.ScrollNext +.asm_923c6 ld hl, wd002 ld a, [hl] - cp d - jr nz, .NotAtEndYet - ld a, e - dec a - ld [hl], a - -.NotAtEndYet + cp FLY_INDIGO + jr c, .asm_923d0 + ld [hl], -1 +.asm_923d0 inc [hl] - call CheckIfVisitedFlypoint - jr z, .ScrollNext - jr .Finally + jr .asm_923dd -.ScrollPrev +.asm_923d3 ld hl, wd002 ld a, [hl] - cp e - jr nz, .NotAtStartYet - ld a, d - inc a - ld [hl], a - -.NotAtStartYet + and a + jr nz, .asm_923dc + ld [hl], FLY_INDIGO + 1 +.asm_923dc dec [hl] - call CheckIfVisitedFlypoint - jr z, .ScrollPrev -.Finally +.asm_923dd + ld a, [wd002] + cp KANTO_FLYPOINT + jr c, .johto + + call FillKantoMap + xor a + ld b, $9c + jr .asm_923f3 + +.johto + call FillJohtoMap + ld a, $90 + ld b, $98 + +.asm_923f3 + ld [hWY], a + ld a, b + ld [hBGMapAddress + 1], a call TownMapBubble call WaitBGMap xor a ld [hBGMapMode], a ret -; 91bb5 - -TownMapBubble: ; 91bb5 -; Draw the bubble containing the location text in the town map HUD - -; Top-left corner - hlcoord 1, 0 - ld a, $30 - ld [hli], a - -; Top row - ld bc, 16 - ld a, " " - call ByteFill - -; Top-right corner - ld a, $31 - ld [hl], a - hlcoord 1, 1 - +; 92402 -; Middle row - ld bc, 18 - ld a, " " - call ByteFill +INCLUDE "data/wild/fish.asm" +INCLUDE "engine/slot_machine.asm" -; Bottom-left corner - hlcoord 1, 2 - ld a, $32 - ld [hli], a -; Bottom row - ld bc, 16 - ld a, " " - call ByteFill +SECTION "bank28", ROMX, BANK[$28] -; Bottom-right corner - ld a, $33 - ld [hl], a +INCLUDE "engine/more_phone_scripts.asm" +INCLUDE "engine/buena_phone_scripts.asm" +INCLUDE "text/phone/buena.asm" -; Print "Where?" - hlcoord 2, 0 - ld de, .Where - call PlaceString +SECTION "bank29", ROMX, BANK[$29] -; Print the name of the default flypoint - call .Name +INCLUDE "text/phone/anthony_overworld.asm" +INCLUDE "text/phone/todd_overworld.asm" +INCLUDE "text/phone/gina_overworld.asm" +INCLUDE "text/phone/irwin_overworld.asm" +INCLUDE "text/phone/arnie_overworld.asm" +INCLUDE "text/phone/alan_overworld.asm" +INCLUDE "text/phone/dana_overworld.asm" +INCLUDE "text/phone/chad_overworld.asm" +INCLUDE "text/phone/derek_overworld.asm" +INCLUDE "text/phone/tully_overworld.asm" +INCLUDE "text/phone/brent_overworld.asm" +INCLUDE "text/phone/tiffany_overworld.asm" +INCLUDE "text/phone/vance_overworld.asm" +INCLUDE "text/phone/wilton_overworld.asm" +INCLUDE "text/phone/kenji_overworld.asm" +INCLUDE "text/phone/parry_overworld.asm" +INCLUDE "text/phone/erin_overworld.asm" -; Up/down arrows - hlcoord 18, 1 - ld [hl], $34 - ret +SECTION "Tileset Data 5", ROMX, BANK[TILESETS_5] -.Where - db "Where?@" +INCLUDE "tilesets/data_5.asm" -.Name -; We need the map location of the default flypoint - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl ; two bytes per flypoint - ld de, Flypoints - add hl, de - ld e, [hl] - callba GetLandmarkName +SECTION "bank2E", ROMX, BANK[$2E] - hlcoord 2, 1 - ld de, StringBuffer1 - call PlaceString - ret -; 91c17 +INCLUDE "engine/events_3.asm" -GetMapCursorCoordinates: ; 91c17 - ld a, [wd002] - ld l, a - ld h, $0 - add hl, hl - ld de, Flypoints - add hl, de - ld e, [hl] - callba GetLandmarkCoords - ld a, [wd003] - ld c, a - ld a, [wd004] - ld b, a - ld hl, $4 - add hl, bc - ld [hl], e - ld hl, $5 - add hl, bc - ld [hl], d - ret -; 91c3c +INCLUDE "engine/radio.asm" -CheckIfVisitedFlypoint: ; 91c3c -; Check if the flypoint loaded in [hl] has been visited yet. - push bc +ReadPartyMonMail: ; b9229 + ld a, [CurPartyMon] + ld hl, sPartyScratch1 + ld bc, SCRATCHMON_STRUCT_LENGTH + call AddNTimes + ld d, h + ld e, l +ReadAnyMail: ; b9237 push de - push hl - ld l, [hl] - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld c, [hl] - call HasVisitedSpawn - pop hl + call ClearBGPalettes + call ClearSprites + call ClearTileMap + call DisableLCD + call LoadFontsExtra pop de - pop bc - and a - ret -; 91c50 - -HasVisitedSpawn: ; 91c50 -; Check if spawn point c has been visited. - ld hl, VisitedSpawns - ld b, CHECK_FLAG - ld d, 0 - predef FlagPredef + push de + ld a, BANK(sPartyScratch1) + call GetSRAMBank + callba Function1de5c8 + call CloseSRAM ld a, c - ret -; 91c5e - -Flypoints: ; 91c5e -; landmark, spawn point - - const_def - -flypoint: MACRO -; \1\@FLY EQUS "FLY_\1" -; \1\@SPAWN EQUS "SPAWN_\1" - ; const \1\@FLY - ; db \2, \1\@SPAWN - const FLY_\1 - db \2, SPAWN_\1 -ENDM - -; Johto - flypoint NEW_BARK, NEW_BARK_TOWN - flypoint CHERRYGROVE, CHERRYGROVE_CITY - flypoint VIOLET, VIOLET_CITY - flypoint AZALEA, AZALEA_TOWN - flypoint GOLDENROD, GOLDENROD_CITY - flypoint ECRUTEAK, ECRUTEAK_CITY - flypoint OLIVINE, OLIVINE_CITY - flypoint CIANWOOD, CIANWOOD_CITY - flypoint MAHOGANY, MAHOGANY_TOWN - flypoint LAKE, LAKE_OF_RAGE - flypoint BLACKTHORN, BLACKTHORN_CITY - flypoint MT_SILVER, SILVER_CAVE - -; Kanto -KANTO_FLYPOINT EQU const_value - - flypoint PALLET, PALLET_TOWN - flypoint VIRIDIAN, VIRIDIAN_CITY - flypoint PEWTER, PEWTER_CITY - flypoint CERULEAN, CERULEAN_CITY - flypoint VERMILION, VERMILION_CITY - flypoint ROCK_TUNNEL, ROCK_TUNNEL - flypoint LAVENDER, LAVENDER_TOWN - flypoint CELADON, CELADON_CITY - flypoint SAFFRON, SAFFRON_CITY - flypoint FUCHSIA, FUCHSIA_CITY - flypoint CINNABAR, CINNABAR_ISLAND - flypoint INDIGO, INDIGO_PLATEAU + ld de, GFX_1de5e6 + or a + jr z, .asm_b9268 + ld de, GFX_1de9e6 + sub $3 + jr c, .asm_b9268 + ld de, GFX_1dede6 - db -1 -; 91c8f +.asm_b9268 + ld hl, VTiles1 + lb bc, BANK(GFX_1de5e6), $80 + call Get1bpp + pop de + call Functionb92b8 + call EnableLCD + call WaitBGMap + ld a, [wd1ec] + ld e, a + callba Function8cb4 + call SetPalettes + xor a + ld [hJoyPressed], a + call Functionb929a + call ClearBGPalettes + call DisableLCD + call LoadStandardFont + jp EnableLCD +; b929a -Function91c8f: ; 91c8f +Functionb929a: ; b929a +.asm_b929a + call GetJoypad + ld a, [hJoyPressed] + and A_BUTTON | B_BUTTON | START + jr z, .asm_b929a + and START + jr nz, .asm_b92a8 ret -; 91c90 - -FlyMap: ; 91c90 - - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - -; If we're not in a valid location, i.e. Pokecenter floor 2F, -; the backup map information is used - - cp SPECIAL_MAP - jr nz, .CheckRegion - - ld a, [BackupMapGroup] - ld b, a - ld a, [BackupMapNumber] - ld c, a - call GetWorldMapLocation - -.CheckRegion -; The first 46 locations are part of Johto. The rest are in Kanto - cp KANTO_LANDMARK - jr nc, .KantoFlyMap - -.JohtoFlyMap -; Note that .NoKanto should be modified in tandem with this branch +.asm_b92a8 + ld a, [wJumptableIndex] push af + callab Function845d4 + pop af + ld [wJumptableIndex], a + jr .asm_b929a +; b92b8 -; Start from New Bark Town - ld a, FLY_NEW_BARK - ld [wd002], a +Functionb92b8: ; b92b8 + ld h, d + ld l, e + push hl + ld a, $0 + call GetSRAMBank + ld de, $2b + add hl, de + ld a, [hli] + ld [Buffer1], a + ld a, [hli] + ld [Buffer2], a + ld a, [hli] + ld [CurPartySpecies], a + ld b, [hl] + call CloseSRAM + ld hl, Unknown_b92f8 + ld c, 0 +.asm_b92d9 + ld a, [hli] + cp b + jr z, .asm_b92ea + cp $ff + jr z, .asm_b92e6 + inc c +rept 2 + inc hl +endr + jr .asm_b92d9 -; Flypoints begin at New Bark Town... - ld [StartFlypoint], a -; ..and end at Silver Cave - ld a, FLY_MT_SILVER - ld [EndFlypoint], a +.asm_b92e6 + ld hl, Unknown_b92f8 + inc hl -; Fill out the map - call FillJohtoMap - call .MapHud - pop af - call TownMapPlayerIcon +.asm_b92ea + ld a, c + ld [wd1ec], a + ld a, [hli] + ld h, [hl] + ld l, a + ld de, .done + pop bc + push de + jp [hl] +.done ret +; b92f8 -.KantoFlyMap - -; The event that there are no flypoints enabled in a map is not -; accounted for. As a result, if you attempt to select a flypoint -; when there are none enabled, the game will crash. Additionally, -; the flypoint selection has a default starting point that -; can be flown to even if none are enabled +Unknown_b92f8: ; b92f8 + dbw FLOWER_MAIL, Functionb963e + dbw SURF_MAIL, Functionb9317 + dbw LITEBLUEMAIL, Functionb9335 + dbw PORTRAITMAIL, Functionb96ca + dbw LOVELY_MAIL, Functionb944b + dbw EON_MAIL, Functionb93d2 + dbw MORPH_MAIL, Functionb94d6 + dbw BLUESKY_MAIL, Functionb9582 + dbw MUSIC_MAIL, Functionb9710 + dbw MIRAGE_MAIL, Functionb9776 + db $ff +; b9317 -; To prevent both of these things from happening when the player -; enters Kanto, fly access is restricted until Indigo Plateau is -; visited and its flypoint enabled +Functionb9317: ; b9317 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9d46 + ld c, $40 + call Functionb9915 + ld de, MailLaprasGFX + ld c, $30 + call Functionb991e + ld de, Unknown_b994e + ld c, $8 + call Functionb9915 + jr Functionb9351 - push af - ld c, SPAWN_INDIGO - call HasVisitedSpawn - and a - jr z, .NoKanto +Functionb9335: ; b9335 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9dc6 + ld c, $40 + call Functionb9915 + ld de, MailDratiniGFX + ld c, $30 + call Functionb991e + ld de, Unknown_b995e + ld c, $8 + call Functionb9915 -; Kanto's map is only loaded if we've visited Indigo Plateau +Functionb9351: ; b9351 + ld de, Unknown_b9976 + ld c, $10 + call Functionb9915 + ld c, $10 + call Functionb990c + ld de, Unknown_b9c3e + ld c, $40 + call Functionb990c + ld c, $40 + call Functionb9915 + call Functionb9858 + hlcoord 2, 15 + ld a, $3f + call Functionb98d4 + ld a, $39 + hlcoord 15, 14 + call Functionb98fc + ld a, $44 + hlcoord 2, 2 + call Functionb98ee + hlcoord 15, 11 + call Functionb98ee + ld a, $4c + hlcoord 3, 12 + call Functionb98ee + hlcoord 15, 2 + call Functionb98ee + ld a, $50 + hlcoord 6, 3 + call Functionb98ee + ld a, $40 + hlcoord 13, 2 + ld [hli], a + hlcoord 6, 14 + ld [hl], a + ld a, $41 + hlcoord 4, 5 + ld [hli], a + hlcoord 17, 5 + ld [hli], a + hlcoord 13, 12 + ld [hl], a + ld a, $42 + hlcoord 9, 2 + ld [hli], a + hlcoord 14, 5 + ld [hli], a + hlcoord 3, 10 + ld [hl], a + ld a, $43 + hlcoord 6, 11 + ld [hli], a + pop hl + jp Functionb9803 +; b93d2 -; Flypoints begin at Pallet Town... - ld a, FLY_PALLET - ld [StartFlypoint], a -; ...and end at Indigo Plateau - ld a, FLY_INDIGO - ld [EndFlypoint], a +Functionb93d2: ; b93d2 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b997e + ld c, $8 + call Functionb9915 + ld de, Unknown_b998e + ld c, $8 + call Functionb990c + ld de, Unknown_b998e + ld c, $8 + call Functionb990c + ld de, Unknown_b997e + ld c, $8 + call Functionb9915 + ld de, Unknown_b9d76 + ld c, $8 + call Functionb9915 + ld de, MailPikaGFX + ld c, $30 + call Functionb991e + ld hl, VTiles2 tile $3d + ld de, Unknown_b9c9e + ld c, $20 + call Functionb990c + ld de, Unknown_b998e + ld c, $8 + call Functionb9915 + ld a, $31 + hlcoord 0, 0 + call Functionb98a8 + hlcoord 1, 17 + call Functionb98a8 + ld a, $33 + hlcoord 0, 1 + call Functionb98ba + hlcoord 19, 0 + call Functionb98ba + hlcoord 2, 15 + ld a, $35 + call Functionb98d4 + inc a + hlcoord 15, 14 + call Functionb98fc + call Functionb9491 + pop hl + jp Functionb9803 +; b944b -; Because Indigo Plateau is the first flypoint the player -; visits, it's made the default flypoint - ld [wd002], a +Functionb944b: ; b944b + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9e26 + ld c, $28 + call Functionb9915 + ld de, MailPoliwagGFX + ld c, $30 + call Functionb991e + ld de, Unknown_b9966 + ld c, $8 + call Functionb9915 + ld de, Unknown_b9c5e + ld c, $20 + call Functionb9915 + ld de, Unknown_b996e + ld c, $8 + call Functionb990c + call Functionb987b + hlcoord 2, 15 + ld a, $3c + call Functionb98d4 + ld a, $36 + hlcoord 15, 14 + call Functionb98fc + call Functionb9491 + pop hl + jp Functionb9803 +; b9491 -; Fill out the map - call FillKantoMap - call .MapHud - pop af - call TownMapPlayerIcon +Functionb9491: ; b9491 + ld a, $3d + hlcoord 2, 2 + call Functionb98ee + hlcoord 16, 2 + call Functionb98ee + hlcoord 9, 4 + call Functionb98ee + hlcoord 2, 11 + call Functionb98ee + hlcoord 6, 12 + call Functionb98ee + hlcoord 12, 11 + call Functionb98ee + ld a, $41 + hlcoord 5, 4 + ld [hl], a + hlcoord 6, 2 + ld [hl], a + hlcoord 12, 4 + ld [hl], a + hlcoord 14, 2 + ld [hl], a + hlcoord 3, 13 + ld [hl], a + hlcoord 9, 11 + ld [hl], a + hlcoord 16, 12 + ld [hl], a ret +; b94d6 -.NoKanto -; If Indigo Plateau hasn't been visited, we use Johto's map instead - -; Start from New Bark Town - ld a, FLY_NEW_BARK - ld [wd002], a - -; Flypoints begin at New Bark Town... - ld [StartFlypoint], a -; ..and end at Silver Cave - ld a, FLY_MT_SILVER - ld [EndFlypoint], a - - call FillJohtoMap - - pop af - -.MapHud - call TownMapBubble - call TownMapPals - - ld hl, VBGMap0 ; BG Map 0 - call TownMapBGUpdate - - call TownMapMon - ld a, c - ld [wd003], a - ld a, b - ld [wd004], a - ret -; 91d11 - -Function91d11: ; 91d11 - ld a, [wd002] - push af - ld a, [wd003] - push af - ld a, e - ld [wd002], a - call ClearSprites - xor a - ld [hBGMapMode], a - ld a, $1 - ld [hInMenu], a - ld de, GFX_922d1 - ld hl, VTiles0 tile $7f - lb bc, BANK(GFX_922d1), 1 - call Request2bpp ; actually 1bpp - call Function91ed0 - ld hl, VTiles0 tile $78 - ld c, $4 - call Request2bpp - call Function91ff2 - call FillKantoMap - call Function91de9 - call TownMapPals - ld hl, VBGMap1 - call TownMapBGUpdate - call FillJohtoMap - call Function91de9 - call TownMapPals - ld hl, VBGMap0 - call TownMapBGUpdate - ld b, $2 - call GetSGBLayout - call SetPalettes - xor a - ld [hBGMapMode], a - xor a - call Function91e1e -.asm_91d6e - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and A_BUTTON | B_BUTTON - jr nz, .asm_91d8f - ld a, [hJoypadDown] - and SELECT - jr nz, .asm_91d87 - call Function91d9b - call Function91dcd - jr .asm_91d8a - -.asm_91d87 - call Function91e5a - -.asm_91d8a - call DelayFrame - jr .asm_91d6e - -.asm_91d8f - call ClearSprites - pop af - ld [wd003], a - pop af - ld [wd002], a - ret -; 91d9b - -Function91d9b: ; 91d9b - ld a, [hl] - and $20 - jr nz, .asm_91da6 - ld a, [hl] - and $10 - jr nz, .asm_91db7 - ret - -.asm_91da6 - ld a, [hWY] - cp $90 - ret z - call ClearSprites - ld a, $90 - ld [hWY], a - xor a - call Function91e1e - ret - -.asm_91db7 - ld a, [StatusFlags] - bit 6, a - ret z - ld a, [hWY] - and a - ret z - call ClearSprites - xor a - ld [hWY], a - ld a, $1 - call Function91e1e - ret -; 91dcd - -Function91dcd: ; 91dcd - ld a, [hVBlankCounter] - ld e, a - and $f - ret nz - ld a, e - and $10 - jr nz, .asm_91ddc - call ClearSprites - ret - -.asm_91ddc - hlcoord 0, 0 - ld de, Sprites - ld bc, $a0 - call CopyBytes - ret -; 91de9 - -Function91de9: ; 91de9 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH - ld a, $7f - call ByteFill - hlcoord 0, 1 - ld a, $6 - ld [hli], a - ld bc, SCREEN_HEIGHT - ld a, $7 - call ByteFill - ld [hl], $17 - call GetPokemonName - hlcoord 2, 0 - call PlaceString - ld h, b - ld l, c - ld de, String_91e16 - call PlaceString - ret -; 91e16 - -String_91e16: - db "'S NEST@" -; 91e1e - -Function91e1e: ; 91e1e - ld [wd003], a - ld e, a - callba Function2a01f - decoord 0, 0 - ld hl, Sprites -.asm_91e2e - ld a, [de] - and a - jr z, .asm_91e4d - push de - ld e, a - push hl - callba GetLandmarkCoords - pop hl - ld a, d - sub $4 - ld [hli], a - ld a, e - sub $4 - ld [hli], a - ld a, $7f - ld [hli], a - xor a - ld [hli], a - pop de - inc de - jr .asm_91e2e - -.asm_91e4d - ld hl, Sprites - decoord 0, 0 - ld bc, $a0 - call CopyBytes - ret -; 91e5a - -Function91e5a: ; 91e5a - call Function91ea9 - ret c - - ld a, [wd002] - ld e, a - callba GetLandmarkCoords - ld c, e - ld b, d - ld de, Unknown_91e9c - ld hl, Sprites -.asm_91e70 - ld a, [de] - cp $80 - jr z, .asm_91e91 - - add b - ld [hli], a - inc de - - ld a, [de] - add c - ld [hli], a - inc de - - ld a, [de] - add $78 - ld [hli], a - inc de - - push bc - ld c, 0 - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91e8c - inc c -.asm_91e8c - ld a, c - ld [hli], a - pop bc - - jr .asm_91e70 - -.asm_91e91 - ld hl, Sprites + $10 - ld bc, SpritesEnd - (Sprites + $10) - xor a - call ByteFill - ret -; 91e9c - -Unknown_91e9c: ; 91e9c - db -8, -8, 0 - db -8, 0, 1 - db 0, -8, 2 - db 0, 0, 3 - db $80 ; terminator -; 91ea9 - -Function91ea9: ; 91ea9 - ld a, [wd002] - cp FAST_SHIP - jr z, .johto - cp KANTO_LANDMARK - jr c, .johto - -.kanto - ld a, [wd003] - and a - jr z, .clear - jr .ok - -.johto - ld a, [wd003] - and a - jr nz, .clear - -.ok - and a - ret - -.clear - ld hl, Sprites - ld bc, SpritesEnd - Sprites - xor a - call ByteFill - scf - ret -; 91ed0 - -Function91ed0: ; 91ed0 - ld a, [wd002] - cp FAST_SHIP - jr z, .asm_91ede - callba GetPlayerIcon - ret - -.asm_91ede - ld de, FastShipGFX - ld b, BANK(FastShipGFX) - ret -; 91ee4 - -TownMapBGUpdate: ; 91ee4 -; Update BG Map tiles and attributes - -; BG Map address - ld a, l - ld [hBGMapAddress], a - ld a, h - ld [hBGMapAddress + 1], a - -; Only update palettes on CGB - ld a, [hCGB] - and a - jr z, .tiles - -; BG Map mode 2 (palettes) - ld a, 2 - ld [hBGMapMode], a - -; The BG Map is updated in thirds, so we wait -; 3 frames to update the whole screen's palettes. - ld c, 3 - call DelayFrames - -.tiles -; Update BG Map tiles - call WaitBGMap - -; Turn off BG Map update - xor a - ld [hBGMapMode], a - ret -; 91eff - -FillJohtoMap: ; 91eff - ld de, JohtoMap - jr FillTownMap - -FillKantoMap: ; 91f04 - ld de, KantoMap - -FillTownMap: ; 91f07 - hlcoord 0, 0 -.loop - ld a, [de] - cp $ff - ret z - ld a, [de] - ld [hli], a - inc de - jr .loop -; 91f13 - -TownMapPals: ; 91f13 -; Assign palettes based on tile ids - - hlcoord 0, 0 - decoord 0, 0, AttrMap - ld bc, 360 -.loop -; Current tile - ld a, [hli] - push hl - -; HP/borders use palette 0 - cp $60 - jr nc, .pal0 - -; The palette data is condensed to nybbles, -; least-significant first. - ld hl, TownMapPalMap - srl a - jr c, .odd - -; Even-numbered tile ids take the bottom nybble... - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - and %111 - jr .update - -.odd -; ...and odd ids take the top. - add l - ld l, a - ld a, h - adc 0 - ld h, a - ld a, [hl] - swap a - and %111 - jr .update - -.pal0 - xor a - -.update - pop hl - ld [de], a - inc de - dec bc - ld a, b - or c - jr nz, .loop - ret - -TownMapPalMap: - db $11, $21, $22, $00, $11, $13, $54, $54, $11, $21, $22, $00 - db $11, $10, $01, $00, $11, $21, $22, $00, $00, $00, $00, $00 - db $00, $00, $44, $04, $00, $00, $00, $00, $33, $33, $33, $33 - db $33, $33, $33, $03, $33, $33, $33, $33, $00, $00, $00, $00 -; 91f7b - -TownMapMon: ; 91f7b -; Draw the FlyMon icon at town map location in - -; Get FlyMon species - ld a, [CurPartyMon] - ld hl, PartySpecies - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ld [wd265], a - -; Get FlyMon icon - ld e, 8 ; starting tile in VRAM - callba GetSpeciesIcon - -; Animation/palette - ld de, 0 - ld a, $0 - call Function3b2a - - ld hl, 3 - add hl, bc - ld [hl], 8 - ld hl, 2 - add hl, bc - ld [hl], 0 - ret -; 91fa6 - -TownMapPlayerIcon: ; 91fa6 -; Draw the player icon at town map location in a - push af - - callba GetPlayerIcon - -; Standing icon - ld hl, VTiles0 tile $10 - ld c, 4 ; # tiles - call Request2bpp - -; Walking icon - ld hl, $c0 - add hl, de - ld d, h - ld e, l - ld hl, VTiles0 tile $14 - ld c, 4 ; # tiles - ld a, BANK(ChrisSpriteGFX) ; does nothing - call Request2bpp - -; Animation/palette - ld de, 0 - ld b, $0a ; Male - ld a, [PlayerGender] - bit 0, a - jr z, .asm_91fd3 - ld b, $1e ; Female -.asm_91fd3 - ld a, b - call Function3b2a - - ld hl, $3 - add hl, bc - ld [hl], $10 - - pop af - ld e, a - push bc - callba GetLandmarkCoords - pop bc - - ld hl, 4 - add hl, bc - ld [hl], e - ld hl, 5 - add hl, bc - ld [hl], d - ret -; 0x91ff2 - -Function91ff2: ; 91ff2 - ld hl, TownMapGFX - ld de, VTiles2 - lb bc, BANK(TownMapGFX), $30 - call DecompressRequest2bpp - ret -; 91fff - - -JohtoMap: ; 91fff -INCBIN "gfx/misc/johto.bin" -; 92168 - -KantoMap: ; 92168 -INCBIN "gfx/misc/kanto.bin" -; 922d1 - - -GFX_922d1: ; 922d1 -INCBIN "gfx/unknown/0922d1.2bpp" -GFX_922e1: ; 922e1 -INCBIN "gfx/unknown/0922e1.2bpp" -GFX_92301: ; 92301 -INCBIN "gfx/unknown/092301.2bpp" - -Function92311: ; 92311 - xor a - ld [wd002], a - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld hl, hInMenu - ld a, [hl] - push af - ld [hl], $1 - xor a - ld [hBGMapMode], a - callba Function8cf53 - call Function91ff2 - ld de, GFX_922e1 - ld hl, VTiles2 tile $30 - lb bc, BANK(GFX_922e1), 6 - call Request1bpp - call FillKantoMap - call TownMapBubble - call TownMapPals - ld hl, VBGMap1 - call TownMapBGUpdate - call FillJohtoMap - call TownMapBubble - call TownMapPals - ld hl, VBGMap0 - call TownMapBGUpdate - call TownMapMon - ld a, c - ld [wd003], a - ld a, b - ld [wd004], a - ld b, $2 - call GetSGBLayout - call SetPalettes -.loop - call JoyTextDelay - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .pressedB - ld a, [hl] - and A_BUTTON - jr nz, .pressedA - call Function923b8 - call GetMapCursorCoordinates - callba Function8cf69 - call DelayFrame - jr .loop - -.pressedB - ld a, -1 - jr .asm_9239f - -.pressedA - ld a, [wd002] - ld l, a - ld h, 0 - add hl, hl - ld de, Flypoints + 1 - add hl, de - ld a, [hl] - -.asm_9239f - ld [wd002], a - pop af - ld [hInMenu], a - call WhiteBGMap - ld a, $90 - ld [hWY], a - xor a - ld [hBGMapAddress], a - ld a, VBGMap0 / $100 - ld [hBGMapAddress + 1], a - ld a, [wd002] - ld e, a - ret -; 923b8 - -Function923b8: ; 923b8 - ld hl, hJoyLast - ld a, [hl] - and D_DOWN | D_RIGHT - jr nz, .asm_923c6 - ld a, [hl] - and D_UP | D_LEFT - jr nz, .asm_923d3 - ret - -.asm_923c6 - ld hl, wd002 - ld a, [hl] - cp FLY_INDIGO - jr c, .asm_923d0 - ld [hl], -1 -.asm_923d0 - inc [hl] - jr .asm_923dd - -.asm_923d3 - ld hl, wd002 - ld a, [hl] - and a - jr nz, .asm_923dc - ld [hl], FLY_INDIGO + 1 -.asm_923dc - dec [hl] - -.asm_923dd - ld a, [wd002] - cp KANTO_FLYPOINT - jr c, .johto - - call FillKantoMap - xor a - ld b, $9c - jr .asm_923f3 - -.johto - call FillJohtoMap - ld a, $90 - ld b, $98 - -.asm_923f3 - ld [hWY], a - ld a, b - ld [hBGMapAddress + 1], a - call TownMapBubble - call WaitBGMap - xor a - ld [hBGMapMode], a - ret -; 92402 - - -INCLUDE "data/wild/fish.asm" - - -_SlotMachine: - ld hl, Options - set 4, [hl] - call Function926f7 - call DelayFrame -.asm_926d2 - call Function927af - jr nc, .asm_926d2 - call WaitSFX - ld de, SFX_QUIT_SLOTS - call PlaySFX - call WaitSFX - call WhiteBGMap - callba MobileFn_105fd0 - ld hl, Options - res 4, [hl] - ld hl, rLCDC ; $ff40 - res 2, [hl] - ret - -Function926f7: ; 926f7 (24:66f7) - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - call DisableLCD - ld hl, VBGMap0 tile $00 - lb bc, 4, 0 - ld a, $7f - call ByteFill - ld b, $5 - call GetSGBLayout - callab Function8cf53 - ld hl, wc6d0 - ld bc, $48 - xor a - call ByteFill - ld hl, Slots2LZ - ld de, VTiles0 tile $00 - call Decompress - ld hl, Slots3LZ - ld de, VTiles0 tile $40 - call Decompress - ld hl, Slots1LZ - ld de, VTiles2 tile $00 - call Decompress - ld hl, Slots2LZ - ld de, VTiles2 tile $25 - call Decompress - ld hl, SlotsTilemap - decoord 0, 0 - ld bc, 20 * 12 - call CopyBytes - ld hl, rLCDC ; $ff40 - set 2, [hl] - call EnableLCD - ld hl, wc6d0 - ld bc, $64 - xor a - call ByteFill - call Function92a98 - call Function9279b - ld a, $7 - ld hl, wc300 - ld [hli], a - ld [hl], $40 - xor a - ld [wJumptableIndex], a - ld a, $ff - ld [wc709], a - ld de, MUSIC_GAME_CORNER - call PlayMusic - xor a - ld [wd002], a - call Random - and $2a - ret nz - ld a, $1 - ld [wd002], a - ret - -Function9279b: ; 9279b (24:679b) - ld a, $e4 - call DmgToCgbBGPals - lb de, $e4, $e4 - ld a, [hCGB] - and a - jr nz, .asm_927ab - lb de, $c0, $e4 -.asm_927ab - call DmgToCgbObjPals - ret - -Function927af: ; 927af (24:67af) - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_927d1 - call Function92844 - call Function92b0f - xor a - ld [wc3b5], a - callab Function8cfa8 - call Function927f8 - call Function927d3 - call DelayFrame - and a - ret -.asm_927d1 - scf - ret - -Function927d3: ; 927d3 (24:67d3) - ret -; 927d4 (24:67d4) - -Function927d4: ; 927d4 - ld a, [wc6d0] - and a - ret nz - ld a, [wc6e0] - and a - ret nz - ld a, [wc70c] - and a - jr nz, .asm_927ea - ld a, $e4 - call DmgToCgbBGPals - ret - -.asm_927ea - ld a, [TextDelayFrames] - and $7 - ret nz - ld a, [rBGP] - xor %1100 - call DmgToCgbBGPals - ret -; 927f8 - -Function927f8: ; 927f8 (24:67f8) - hlcoord 5, 1 - ld de, Coins - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - hlcoord 11, 1 - ld de, wc711 - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - ret -; 92811 (24:6811) - -Function92811: ; 92811 - ld a, [wc709] - add 0 - daa - ld e, a - and $f - add "0" - hlcoord 1, 0 - ld [hl], a - ld a, e - swap a - and $f - add "0" - hlcoord 0, 0 - ld [hl], a - ret -; 9282c - -Function9282c: ; 9282c - ld hl, wcf66 - ld a, [hl] - inc [hl] - and $7 - ret nz - ld hl, Sprites + $42 - ld c, $18 -.asm_92839 - ld a, [hl] - xor $20 - ld [hli], a -rept 3 - inc hl -endr - dec c - jr nz, .asm_92839 - ret -; 92844 - -Function92844: ; 92844 (24:6844) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_92853 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 92853 (24:6853) - - -Jumptable_92853: ; 92853 (24:6853) - dw Function9287e - dw Function9288e - dw Function928c6 - dw Function928d6 - dw Function928e6 - dw Function92900 - dw Function92910 - dw Function9292a - dw Function9293a - dw Function92879 - dw Function92879 - dw Function92879 - dw Function92955 - dw Function9296b - dw Function92987 - dw Function9299e - dw Function929a4 - dw Function929d9 - dw Function929f0 - - -Function92879: ; 92879 (24:6879) - ld hl, wJumptableIndex - inc [hl] - ret - -Function9287e: ; 9287e (24:687e) - call Function92879 - xor a - ld [wc70b], a - ld [wc70c], a - ld a, $ff - ld [wc70d], a - ret - -Function9288e: ; 9288e (24:688e) - call Function9307c - jr nc, .asm_92899 - ld a, $12 - ld [wJumptableIndex], a - ret -.asm_92899 - call Function92879 - call Function9303f - call Function93002 - ld a, $20 - ld [wcf64], a - ld a, $4 - ld [wc6d0], a - ld [wc6e0], a - ld [wc6f0], a - ld a, $4 - ld [wc6d9], a - ld [wc6e9], a - ld [wc6f9], a - call WaitSFX - ld a, SFX_SLOT_MACHINE_START - call Function9331e - ret - -Function928c6: ; 928c6 (24:68c6) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_928cf - dec [hl] - ret -.asm_928cf - call Function92879 - xor a - ld [hJoypadSum], a - ret - -Function928d6: ; 928d6 (24:68d6) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a2b - ld [wc6d0], a - -Function928e6: ; 928e6 (24:68e6) - ld a, [wc6d0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6d0 - ld de, wc700 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - -Function92900: ; 92900 (24:6900) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a2e - ld [wc6e0], a - -Function92910: ; 92910 (24:6910) - ld a, [wc6e0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6e0 - ld de, wc703 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - -Function9292a: ; 9292a (24:692a) - ld hl, hJoypadSum ; $ffa5 - ld a, [hl] - and A_BUTTON - ret z - call Function92879 - call Function92a60 - ld [wc6f0], a - -Function9293a: ; 9293a (24:693a) - ld a, [wc6f0] - cp $0 - ret nz - ld a, SFX_STOP_SLOT - call Function9331e - ld bc, wc6f0 - ld de, wc706 - call Function929f6 - call Function92879 - xor a - ld [hJoypadSum], a - ret - -Function92955: ; 92955 (24:6955) - ld a, [wc70d] - cp $ff - jr nz, .asm_92963 - call Function92879 - call Function92879 - ret -.asm_92963 - call Function92879 - ld a, $10 - ld [wcf64], a - -Function9296b: ; 9296b (24:696b) - ld hl, wcf64 - ld a, [hl] - and a - jr z, .asm_92980 - dec [hl] - srl a - ret z - ld a, [rOBP0] - xor $ff - ld e, a - ld d, a - call DmgToCgbObjPals - ret -.asm_92980 - call Function9279b - call Function92879 - ret - -Function92987: ; 92987 (24:6987) - xor a - ld [wc70b], a - ld [wc70c], a - ld a, $e4 - call DmgToCgbBGPals - call Function93124 - xor a - ld [wcf64], a - call Function92879 - ret - -Function9299e: ; 9299e (24:699e) - call Function93158 - call Function92879 - -Function929a4: ; 929a4 (24:69a4) - ld hl, wcf64 - ld a, [hl] - inc [hl] - and $1 - ret z - ld hl, wc711 - ld a, [hli] - ld d, a - or [hl] - jr z, .asm_929d5 - ld e, [hl] - dec de - ld [hl], e - dec hl - ld [hl], d - ld hl, Coins - ld d, [hl] - inc hl - ld e, [hl] - call Function92a04 - jr c, .asm_929c5 - inc de -.asm_929c5 - ld [hl], e - dec hl - ld [hl], d - ld a, [wcf64] - and $7 - ret z - ld de, SFX_GET_COIN_FROM_SLOTS - call PlaySFX - ret -.asm_929d5 - call Function92879 - ret - -Function929d9: ; 929d9 (24:69d9) - call Function9304c - call WaitPressAorB_BlinkCursor - call Function930e9 - jr c, .asm_929ea - ld a, $0 - ld [wJumptableIndex], a - ret -.asm_929ea - ld a, $12 - ld [wJumptableIndex], a - ret - -Function929f0: ; 929f0 (24:69f0) - ld hl, wJumptableIndex - set 7, [hl] - ret - -Function929f6: ; 929f6 (24:69f6) - push de - call Function92a12 - pop de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - ret - -Function92a04: ; 92a04 (24:6a04) - ld a, d - cp 9999 / $100 - jr c, .asm_92a10 - ld a, e - cp 9999 % $100 - jr c, .asm_92a10 - scf - ret -.asm_92a10 - and a - ret - -Function92a12: ; 92a12 (24:6a12) - ld hl, $3 - add hl, bc - ld a, [hl] - and a - jr nz, .asm_92a1c - ld a, $f -.asm_92a1c - dec a - and $f - ld e, a - ld d, $0 - ld hl, $1 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ret - -Function92a2b: ; 92a2b (24:6a2b) - ld a, $7 - ret - -Function92a2e: ; 92a2e (24:6a2e) - ld a, [wc70a] - cp $2 - jr c, .asm_92a4e - ld a, [wc709] - and a - jr z, .asm_92a3f - cp $ff - jr nz, .asm_92a4e -.asm_92a3f - call Function92a51 - jr nz, .asm_92a4e - call Random - cp $50 - jr nc, .asm_92a4e - ld a, $a - ret -.asm_92a4e - ld a, $8 - ret - -Function92a51: ; 92a51 (24:6a51) - ld a, [wc700] - and a - ret z - ld a, [wc701] - and a - ret z - ld a, [wc702] - and a - ret - -Function92a60: ; 92a60 (24:6a60) - ld a, [wc70b] - and a - jr z, .asm_92a95 - ld a, [wc70c] - and a - jr z, .asm_92a95 - ld a, [wc709] - and a - jr nz, .asm_92a84 - call Random - cp 180 - jr nc, .asm_92a95 - cp 120 - jr nc, .asm_92a92 - cp 60 - jr nc, .asm_92a8f - ld a, $15 - ret -.asm_92a84 - call Random - cp $a0 - jr nc, .asm_92a95 - cp $50 - jr nc, .asm_92a92 -.asm_92a8f - ld a, $12 - ret -.asm_92a92 - ld a, $10 - ret -.asm_92a95 - ld a, $9 - ret - -Function92a98: ; 92a98 (24:6a98) - ld bc, wc6d0 - ld hl, $6 - add hl, bc - ld de, Sprites + $40 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_93327 - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $30 - call Function92af9 - ld bc, wc6e0 - ld hl, $6 - add hl, bc - ld de, Sprites + $60 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_93339 - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $50 - call Function92af9 - ld bc, wc6f0 - ld hl, $6 - add hl, bc - ld de, Sprites + $80 - ld [hl], e - inc hl - ld [hl], d - ld hl, $1 - add hl, bc - ld de, Unknown_9334b - ld [hl], e - inc hl - ld [hl], d - ld hl, $8 - add hl, bc - ld [hl], $70 - call Function92af9 - ret - -Function92af9: ; 92af9 (24:6af9) - ld hl, 0 - add hl, bc - ld [hl], $0 - ld hl, $3 - add hl, bc - ld [hl], $e - ld hl, $4 - add hl, bc - ld [hl], $0 - call Function92b53 - ret - -Function92b0f: ; 92b0f (24:6b0f) - ld bc, wc6d0 - call Function92b22 - ld bc, wc6e0 - call Function92b22 - ld bc, wc6f0 - call Function92b22 - ret - -Function92b22: ; 92b22 (24:6b22) - ld hl, $4 - add hl, bc - ld a, [hl] - and $f - jr nz, .asm_92b2e - call Function92bd4 -.asm_92b2e - ld hl, $5 - add hl, bc - ld a, [hl] - and a - ret z - ld d, a - ld hl, $4 - add hl, bc - add [hl] - ld [hl], a - and $f - jr z, Function92b53 - ld hl, $6 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - ld e, $8 -.asm_92b49 - ld a, [hl] - add d - ld [hli], a -rept 3 - inc hl -endr - dec e - jr nz, .asm_92b49 - ret - -Function92b53: ; 92b53 (24:6b53) - ld hl, $8 - add hl, bc - ld a, [hl] - ld [wc712 + 1], a - ld a, $50 - ld [wc712 + 2], a - ld hl, $3 - add hl, bc - ld e, [hl] - ld d, $0 - ld hl, $1 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a - add hl, de - ld e, l - ld d, h - call Function92b83 - ld hl, $3 - add hl, bc - ld a, [hl] - inc a - and $f - cp $f - jr nz, .asm_92b81 - xor a -.asm_92b81 - ld [hl], a - ret - -Function92b83: ; 92b83 (24:6b83) - ld hl, $6 - add hl, bc - ld a, [hli] - ld h, [hl] - ld l, a -.asm_92b8a - ld a, [wc712 + 2] - ld [hli], a - ld a, [wc712 + 1] - ld [hli], a - ld a, [de] - ld [hli], a - srl a - srl a - set 7, a - ld [hli], a - ld a, [wc712 + 2] - ld [hli], a - ld a, [wc712 + 1] - add $8 - ld [hli], a - ld a, [de] -rept 2 - inc a -endr - ld [hli], a - srl a - srl a - set 7, a - ld [hli], a - inc de - ld a, [wc712 + 2] - sub $10 - ld [wc712 + 2], a - cp $10 - jr nz, .asm_92b8a - ret -; 92bbe (24:6bbe) - -Function92bbe: ; 92bbe - push hl - srl a - srl a - add Unknown_92bce % $100 - ld l, a - ld a, 0 - adc Unknown_92bce / $100 - ld h, a - ld a, [hl] - pop hl - ret -; 92bce - -Unknown_92bce: ; 92bce - db 0, 1, 2, 3, 4, 5 -; 92bd4 - -Function92bd4: ; 92bd4 (24:6bd4) - ld hl, 0 - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_92be4 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; 92be4 (24:6be4) - -Jumptable_92be4: ; 92be4 - dw Function92c16 - dw Function92c4c - dw Function92c17 - dw Function92c1e - dw Function92c25 - dw Function92c2c - dw Function92c33 - dw Function92c5e - dw Function92c86 - dw Function92ca9 - dw Function92cd2 - dw Function92cf8 - dw Function92d13 - dw Function92df7 - dw Function92e10 - dw Function92e31 - dw Function92e47 - dw Function92e64 - dw Function92d20 - dw Function92d4f - dw Function92d6e - dw Function92d7e - dw Function92da4 - dw Function92db3 - dw Function92dca -; 92c16 - -Function92c16: ; 92c16 - ret -; 92c17 - -Function92c17: ; 92c17 - ld hl, $5 - add hl, bc - ld [hl], $10 - ret -; 92c1e - -Function92c1e: ; 92c1e - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92c25 - -Function92c25: ; 92c25 - ld hl, $5 - add hl, bc - ld [hl], $4 - ret -; 92c2c - -Function92c2c: ; 92c2c - ld hl, $5 - add hl, bc - ld [hl], $2 - ret -; 92c33 - -Function92c33: ; 92c33 - ld hl, $5 - add hl, bc - ld [hl], $1 - ret -; 92c3a - -Function92c3a: ; 92c3a - ld hl, $5 - add hl, bc - ld [hl], $0 - ld hl, 0 - add hl, bc - ld [hl], $1 - ld hl, $f - add hl, bc - ld [hl], $3 - -Function92c4c: ; 92c4c - ld hl, $f - add hl, bc - ld a, [hl] - and a - jr z, .asm_92c56 - dec [hl] - ret - -.asm_92c56 - ld hl, 0 - add hl, bc - ld a, $0 - ld [hl], a - ret -; 92c5e - -Function92c5e: ; 92c5e - ld a, [wc709] - cp $ff - jr z, .asm_92c72 - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92c72 - dec [hl] - call Function92c76 - ret nz - -.asm_92c72 - call Function92c3a - ret -; 92c76 - -Function92c76: ; 92c76 - call Function92a12 - ld a, [wc709] - ld e, a - ld a, [hli] - cp e - ret z - ld a, [hli] - cp e - ret z - ld a, [hl] - cp e - ret -; 92c86 - -Function92c86: ; 92c86 - call Function92e94 - jr nc, .asm_92c94 - ld a, [wc717] - ld hl, wc709 - cp [hl] - jr z, .asm_92ca5 - -.asm_92c94 - ld a, [wc709] - cp $ff - jr z, .asm_92ca5 - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92ca5 - dec [hl] - ret - -.asm_92ca5 - call Function92c3a - ret -; 92ca9 - -Function92ca9: ; 92ca9 - call Function92f1d - jr nc, .asm_92cbd - ld hl, wc709 - cp [hl] - jr z, .asm_92cce - ld hl, $9 - add hl, bc - ld a, [hl] - and a - ret z - dec [hl] - ret - -.asm_92cbd - ld a, [wc709] - cp $ff - jr z, .asm_92cce - ld hl, $9 - add hl, bc - ld a, [hl] - and a - jr z, .asm_92cce - dec [hl] - ret - -.asm_92cce - call Function92c3a - ret -; 92cd2 - -Function92cd2: ; 92cd2 - call Function92e94 - jr nc, .asm_92ce1 - ld a, [wc70c] - and a - jr z, .asm_92ce1 - call Function92c3a - ret - -.asm_92ce1 - ld a, SFX_STOP_SLOT - call Function9331e - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $a - add hl, bc - ld [hl], $20 - ld hl, $5 - add hl, bc - ld [hl], $0 - ret -; 92cf8 - -Function92cf8: ; 92cf8 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92d02 - dec [hl] - ret - -.asm_92d02 - ld a, SFX_THROW_BALL - call Function9331e - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92d13 - -Function92d13: ; 92d13 - call Function92e94 - ret nc - ld a, [wc70c] - and a - ret z - call Function92c3a - ret -; 92d20 - -Function92d20: ; 92d20 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - call Function92fc0 - push bc - push af - ld de, $6068 - ld a, $6 - call Function3b2a - ld hl, $e - add hl, bc - pop af - ld [hl], a - pop bc - xor a - ld [wcf64], a - -Function92d4f: ; 92d4f - ld a, [wcf64] - cp $2 - jr z, .asm_92d5b - cp $1 - jr z, .asm_92d62 - ret - -.asm_92d5b - call Function92f1d - call Function92c3a - ret - -.asm_92d62 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92d6e - -Function92d6e: ; 92d6e - xor a - ld [wcf64], a - ld hl, 0 - add hl, bc - dec [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - ret -; 92d7e - -Function92d7e: ; 92d7e - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $0 - push bc - ld de, $6000 - ld a, $7 - call Function3b2a - pop bc - xor a - ld [wcf64], a - ret -; 92da4 - -Function92da4: ; 92da4 - ld a, [wcf64] - and a - ret z - ld hl, 0 - add hl, bc - inc [hl] - ld a, $2 - ld [wcf64], a - -Function92db3: ; 92db3 - ld a, [wcf64] - cp $4 - ret c - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $5 - add hl, bc - ld [hl], $10 - ld hl, $a - add hl, bc - ld [hl], $11 - -Function92dca: ; 92dca - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92dd4 - dec [hl] - ret - -.asm_92dd4 - call Function92f1d - jr nc, .asm_92de5 - and a - jr nz, .asm_92de5 - ld a, $5 - ld [wcf64], a - call Function92c3a - ret - -.asm_92de5 - ld hl, $5 - add hl, bc - ld [hl], $0 - ld hl, 0 - add hl, bc -rept 2 - dec [hl] -endr - ld a, $1 - ld [wcf64], a - ret -; 92df7 - -Function92df7: ; 92df7 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, 0 - add hl, bc - inc [hl] - call Function92fc0 - ld hl, $a - add hl, bc - ld [hl], a - -Function92e10: ; 92e10 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr nz, .asm_92e1f - call Function92f1d - call Function92c3a - ret - -.asm_92e1f - dec [hl] - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $b - add hl, bc - ld [hl], $20 - ld hl, $5 - add hl, bc - ld [hl], $0 - -Function92e31: ; 92e31 - ld hl, $b - add hl, bc - ld a, [hl] - and a - jr z, .asm_92e3b - dec [hl] - ret - -.asm_92e3b - ld hl, 0 - add hl, bc - dec [hl] - ld hl, $5 - add hl, bc - ld [hl], $8 - ret -; 92e47 - -Function92e47: ; 92e47 - call Function92f1d - ret c - ld a, SFX_STOP_SLOT - call Function9331e - call Function93316 - ld hl, $5 - add hl, bc - ld [hl], $1 - ld hl, 0 - add hl, bc - inc [hl] - ld hl, $a - add hl, bc - ld [hl], $10 - -Function92e64: ; 92e64 - ld hl, $a - add hl, bc - ld a, [hl] - and a - jr z, .asm_92e73 - dec [hl] -.asm_92e6d - ld a, SFX_GOT_SAFARI_BALLS - call Function9331e - ret - -.asm_92e73 - ld a, [wc709] - and a - jr nz, .asm_92e88 - call Function92f1d - jr nc, .asm_92e6d - and a - jr nz, .asm_92e6d - call Function92c3a - call WaitSFX - ret - -.asm_92e88 - call Function92f1d - jr c, .asm_92e6d - call Function92c3a - call WaitSFX - ret -; 92e94 - -Function92e94: ; 92e94 - xor a - ld [wc70b], a - ld [wc70c], a - call Function92a12 - call Function92fb4 - ld a, [wc70a] - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_92ebd -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_92eb6 - push de - jp [hl] - -.asm_92eb6 - ld a, [wc70b] - and a - ret z - scf - ret -; 92ebd - -Jumptable_92ebd: ; 92ebd - dw Function92ed4 - dw Function92ed1 - dw Function92ecb - dw Function92ec5 -; 92ec5 - -Function92ec5: ; 92ec5 - call Function92ee0 - call Function92ef6 - -Function92ecb: ; 92ecb - call Function92ed5 - call Function92f01 - -Function92ed1: ; 92ed1 - call Function92eeb - -Function92ed4: ; 92ed4 - ret -; 92ed5 - -Function92ed5: ; 92ed5 - ld hl, wc70e - ld a, [EnemyScreens] - cp [hl] - call z, Function92f0c - ret -; 92ee0 - -Function92ee0: ; 92ee0 - ld hl, wEnemyGoesFirst - ld a, [wc700] - cp [hl] - call z, Function92f0c - ret -; 92eeb - -Function92eeb: ; 92eeb - ld hl, wEnemyGoesFirst - ld a, [wc701] - cp [hl] - call z, Function92f0c - ret -; 92ef6 - -Function92ef6: ; 92ef6 - ld hl, wEnemyGoesFirst - ld a, [wc702] - cp [hl] - call z, Function92f0c - ret -; 92f01 - -Function92f01: ; 92f01 - ld hl, wc710 - ld a, [wc702] - cp [hl] - call z, Function92f0c - ret -; 92f0c - -Function92f0c: ; 92f0c - ld [wc717], a - and a - jr nz, .asm_92f17 - ld a, $1 - ld [wc70c], a - -.asm_92f17 - ld a, $1 - ld [wc70b], a - ret -; 92f1d - -Function92f1d: ; 92f1d - ld a, $ff - ld [EffectFailed], a - call Function92a12 - call Function92fb4 - ld a, [wc70a] - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_92f48 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_92f3d - push de - jp [hl] - -.asm_92f3d - ld a, [wc70d] - cp $ff - jr nz, .asm_92f46 - and a - ret - -.asm_92f46 - scf - ret -; 92f48 - -Jumptable_92f48: ; 92f48 - dw Function92f5f - dw Function92f5c - dw Function92f56 - dw Function92f50 -; 92f50 - -Function92f50: ; 92f50 - call Function92f70 - call Function92f90 - -Function92f56: ; 92f56 - call Function92f60 - call Function92fa0 - -Function92f5c: ; 92f5c - call Function92f80 - -Function92f5f: ; 92f5f - ret -; 92f60 - -Function92f60: ; 92f60 - ld hl, wc70e - ld a, [wc700] - cp [hl] - ret nz - ld hl, wc703 - cp [hl] - call z, Function92fb0 - ret -; 92f70 - -Function92f70: ; 92f70 - ld hl, wc710 - ld a, [wc700] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92f80 - -Function92f80: ; 92f80 - ld hl, wEnemyGoesFirst - ld a, [wc701] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92f90 - -Function92f90: ; 92f90 - ld hl, wc70e - ld a, [wc702] - cp [hl] - ret nz - ld hl, wc704 - cp [hl] - call z, Function92fb0 - ret -; 92fa0 - -Function92fa0: ; 92fa0 - ld hl, wc710 - ld a, [wc702] - cp [hl] - ret nz - ld hl, wc705 - cp [hl] - call z, Function92fb0 - ret -; 92fb0 - -Function92fb0: ; 92fb0 - ld [wc70d], a - ret -; 92fb4 - -Function92fb4: ; 92fb4 - ld de, wc70e - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ret -; 92fc0 - -Function92fc0: ; 92fc0 - ld hl, $3 - add hl, bc - ld a, [hl] - push af - push hl - call Function92fcf - pop hl - pop af - ld [hl], a - ld a, e - ret -; 92fcf - -Function92fcf: ; 92fcf - ld a, [wc709] - and a - jr nz, .asm_92fe8 - ld e, $0 -.asm_92fd7 - ld hl, $3 - add hl, bc - inc [hl] - inc e - push de - call Function92f1d - pop de - jr nc, .asm_92fd7 - and a - jr nz, .asm_92fd7 - ret - -.asm_92fe8 - call Random - and $7 - cp $4 - jr c, .asm_92fe8 - ld e, a -.asm_92ff2 - ld a, e - inc e - ld hl, $3 - add hl, bc - add [hl] - ld [hl], a - push de - call Function92f1d - pop de - jr c, .asm_92ff2 - ret -; 93002 - -Function93002: ; 93002 (24:7002) - ld a, [wc709] - and a - ret z - ld hl, Unknown_93023 - ld a, [ScriptVar] - and a - jr z, .asm_93013 - ld hl, Unknown_93031 -.asm_93013 - call Random - ld c, a -.asm_93017 - ld a, [hli] - cp c - jr nc, .asm_9301e - inc hl - jr .asm_93017 -.asm_9301e - ld a, [hl] - ld [wc709], a - ret -; 93023 (24:7023) - -Unknown_93023: ; 93023 - db $01, $00 - db $03, $04 - db $0a, $14 - db $14, $10 - db $28, $0c - db $30, $08 - db $ff, $ff -; 93031 - -Unknown_93031: ; 93031 - db $02, $00 - db $03, $04 - db $08, $14 - db $10, $10 - db $1e, $0c - db $50, $08 - db $ff, $ff -; 9303f - -Function9303f: ; 9303f (24:703f) - ld b, $14 - ld a, [wc70a] - dec a - jr z, asm_93066 - dec a - jr z, asm_9305a - jr asm_9304e - -Function9304c: ; 9304c (24:704c) - ld b, $23 -asm_9304e: ; 9304e (24:704e) - hlcoord 3, 2 - call Function93069 - hlcoord 3, 10 - call Function93069 -asm_9305a: ; 9305a (24:705a) - hlcoord 3, 4 - call Function93069 - hlcoord 3, 8 - call Function93069 -asm_93066: ; 93066 (24:7066) - hlcoord 3, 6 - -Function93069: ; 93069 (24:7069) - ld a, b - ld [hl], a - ld de, $d - add hl, de - ld [hl], a - ld de, $7 - add hl, de - inc a - ld [hl], a - ld de, $d - add hl, de - ld [hl], a - ret - -Function9307c: ; 9307c (24:707c) - ld hl, UnknownText_0x930c7 - call PrintText - ld hl, MenuDataHeader_0x930d6 - call LoadMenuDataHeader - call InterpretMenu2 - call WriteBackup - ret c - ld a, [MenuSelection2] - ld b, a - ld a, $4 - sub b - ld [wc70a], a - ld hl, Coins - ld c, a - ld a, [hli] - and a - jr nz, .asm_930ad - ld a, [hl] - cp c - jr nc, .asm_930ad - ld hl, UnknownText_0x930d1 - call PrintText - jr Function9307c -.asm_930ad - ld hl, Coins + 1 - ld a, [hl] - sub c - ld [hld], a - jr nc, .asm_930b6 - dec [hl] -.asm_930b6 - call WaitSFX - ld de, SFX_PAY_DAY - call PlaySFX - ld hl, UnknownText_0x930cc - call PrintText - and a - ret -; 930c7 (24:70c7) - -UnknownText_0x930c7: ; 0x930c7 - ; Bet how many coins? - text_jump UnknownText_0x1c5049 - db "@" -; 0x930cc - -UnknownText_0x930cc: ; 0x930cc - ; Start! - text_jump UnknownText_0x1c505e - db "@" -; 0x930d1 - -UnknownText_0x930d1: ; 0x930d1 - ; Not enough coins. - text_jump UnknownText_0x1c5066 - db "@" -; 0x930d6 - -MenuDataHeader_0x930d6: ; 0x930d6 - db $40 ; flags - db 10, 14 ; start coords - db 17, 19 ; end coords - dw MenuData2_0x930de - db 1 ; default option -; 0x930de - -MenuData2_0x930de: ; 0x930de - db $80 ; flags - db 3 ; items - db " 3@" - db " 2@" - db " 1@" -; 0x930e9 - -Function930e9: ; 930e9 (24:70e9) - ld hl, Coins - ld a, [hli] - or [hl] - jr nz, .asm_930fd - ld hl, UnknownText_9311a - call PrintText - ld c, 60 - call DelayFrames - jr .asm_93118 -.asm_930fd - ld hl, UnknownText_9311f - call PrintText - call LoadMenuTextBox - lb bc, 14, 12 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call WriteBackup - and a - jr nz, .asm_93118 - and a - ret -.asm_93118 - scf - ret -; 9311a (24:711a) - -UnknownText_9311a: ; 9311a - text_jump UnknownText_0x1c5079 - db "@" - -UnknownText_9311f: ; 9311f - text_jump UnknownText_0x1c5092 - db "@" - -Function93124: ; 93124 (24:7124) - ld a, [EffectFailed] - cp $ff - jr z, .asm_93151 - srl a - ld e, a - ld d, 0 - ld hl, .data_93145 - add hl, de - ld a, [hli] - ld [PlayerUsedMoves], a - ld e, a - ld a, [hl] - ld [wc711], a - ld d, a - callba MobileFn_105fe3 - ret - -.data_93145 - db $2c, $01 - db $32, $00 - db $06, $00 - db $08, $00 - db $0a, $00 - db $0f, $00 - -.asm_93151 - ld hl, wc711 - xor a - ld [hli], a - ld [hl], a - ret - -Function93158: ; 93158 (24:7158) - ld a, [EffectFailed] - cp $ff - jr nz, .asm_9316c - ld hl, UnknownText_0x931e0 - call PrintText - callba MobileFn_105fd0 - ret -.asm_9316c - srl a - ld e, a - ld d, 0 - ld hl, Unknown_93195 -rept 3 - add hl, de -endr - ld de, StringBuffer2 - ld bc, $4 - call CopyBytes - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .asm_93188 - push de - jp [hl] -.asm_93188 - ld hl, UnknownText_0x931b9 - call PrintText - callba MobileFn_105f9f - ret -; 93195 (24:7195) - -Unknown_93195: ; 93195 - db "300@" - dw Function931e5 - db "50@@" - dw Function9320b - db "6@@@" - dw Function93214 - db "8@@@" - dw Function93214 - db "10@@" - dw Function93214 - db "15@@" - dw Function93214 -; 931b9 - -UnknownText_0x931b9: ; 0x931b9 - start_asm -; 0x931ba - -Function931ba: ; 931ba - ld a, [EffectFailed] - add $25 - ldcoord_a 2, 13 - inc a - ldcoord_a 2, 14 - inc a - ldcoord_a 3, 13 - inc a - ldcoord_a 3, 14 - hlcoord 18, 17 - ld [hl], $ee - ld hl, UnknownText_0x931db -rept 4 - inc bc -endr - ret -; 931db - -UnknownText_0x931db: ; 0x931db - ; lined up! Won @ coins! - text_jump UnknownText_0x1c509f - db "@" -; 0x931e0 - -UnknownText_0x931e0: ; 0x931e0 - ; Darn! - text_jump UnknownText_0x1c50bb - db "@" -; 0x931e5 - -Function931e5: ; 931e5 - ld a, SFX_2ND_PLACE - call Function9331e - call WaitSFX - ld a, [wd002] - and a - jr nz, .asm_931ff - call Random - and $14 - ret z - ld a, $ff - ld [wc709], a - ret - -.asm_931ff - call Random - and $1c - ret z - ld a, $ff - ld [wc709], a - ret -; 9320b - -Function9320b: ; 9320b - ld a, SFX_3RD_PLACE - call Function9331e - call WaitSFX - ret -; 93214 - -Function93214: ; 93214 - ld a, SFX_PRESENT - call Function9331e - call WaitSFX - ret -; 9321d - -Function9321d: ; 9321d (24:721d) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_9322d -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_9322d: ; 9322d (24:722d) - dw Function93233 - dw Function93259 - dw Function93289 - - -Function93233: ; 93233 (24:7233) - ld hl, $e - add hl, bc - ld a, [hl] - and a - jr nz, .asm_93247 - ld a, $2 - ld [wcf64], a - ld hl, 0 - add hl, bc - ld [hl], $0 - ret -.asm_93247 - dec [hl] - ld hl, $b - add hl, bc - inc [hl] - ld hl, $c - add hl, bc - ld [hl], $30 - ld hl, $6 - add hl, bc - ld [hl], $0 - -Function93259: ; 93259 (24:7259) - ld hl, $c - add hl, bc - ld a, [hl] - cp $20 - jr c, .asm_93273 - dec [hl] - ld e, a - ld d, $70 - callba Functionce765 - ld a, e - ld hl, $7 - add hl, bc - ld [hl], a - ret -.asm_93273 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $d - add hl, bc - ld [hl], $2 - ld a, $1 - ld [wcf64], a - ld a, SFX_PLACE_PUZZLE_PIECE_DOWN - call Function9331e - ret - -Function93289: ; 93289 (24:7289) - ld hl, $6 - add hl, bc - ld a, [hl] -rept 2 - inc [hl] -endr - cp $48 - jr nc, .asm_932a3 - and $3 - ret nz - ld hl, $d - add hl, bc - ld a, [hl] - xor $ff - inc a - ld [hl], a - ld [hSCY], a - ret -.asm_932a3 - ld hl, $b - add hl, bc - xor a - ld [hl], a - ld [hSCY], a - ret - -Function932ac: ; 932ac (24:72ac) - ld hl, $b - add hl, bc - ld e, [hl] - ld d, 0 - ld hl, Jumptable_932bc -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -Jumptable_932bc: ; 932bc (24:72bc) - dw Function932c2 - dw Function932e0 - dw Function932fc - - -Function932c2: ; 932c2 (24:72c2) - ld hl, $4 - add hl, bc - ld a, [hl] - inc [hl] - cp $68 - jr z, .asm_932d6 - and $f - ret nz - ld de, SFX_JUMP_OVER_LEDGE - call PlaySFX - ret -.asm_932d6 - ld hl, $b - add hl, bc - inc [hl] - ld a, $1 - ld [wcf64], a - -Function932e0: ; 932e0 (24:72e0) - ld a, [wcf64] - cp $2 - jr z, .asm_932f1 - cp $5 - ret nz - ld hl, 0 - add hl, bc - ld [hl], $0 - ret -.asm_932f1 - ld hl, $b - add hl, bc - inc [hl] - ld hl, $c - add hl, bc - ld [hl], $8 - -Function932fc: ; 932fc (24:72fc) - ld hl, $c - add hl, bc - ld a, [hl] - and a - jr z, .asm_93306 - dec [hl] - ret -.asm_93306 - ld hl, $b - add hl, bc - dec [hl] - push bc - ld de, $606c - ld a, $8 - call Function3b2a - pop bc - ret -; 93316 (24:7316) - -Function93316: ; 93316 - push bc - ld c, 16 - call DelayFrames - pop bc - ret -; 9331e - -Function9331e: ; 9331e (24:731e) - push de - ld e, a - ld d, 0 - call PlaySFX - pop de - ret -; 93327 (24:7327) - -Unknown_93327: ; 93327 - db $00, $08, $14, $0c, $10, $00, $08, $14, $0c, $10, $04, $08, $14, $0c, $10, $00, $08, $14 -Unknown_93339: ; 93339 - db $00, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $04, $0c, $08, $10, $14, $00, $0c, $08 -Unknown_9334b: ; 9334b - db $00, $0c, $08, $10, $14, $0c, $08, $10, $14, $0c, $04, $08, $10, $14, $0c, $00, $0c, $08 -; 9335d - -SlotsTilemap: ; 9335d -INCBIN "gfx/slots.tilemap" -; 9344d - -Slots1LZ: ; 9344d -INCBIN "gfx/slots_1.2bpp.lz" -; 935cd - -Slots2LZ: ; 935cd -INCBIN "gfx/slots_2.2bpp.lz" -; 9382d - -Slots3LZ: ; 9382d -INCBIN "gfx/slots_3.2bpp.lz" -; 93a3d - - - -SECTION "bank28", ROMX, BANK[$28] - -INCLUDE "engine/more_phone_scripts.asm" -INCLUDE "engine/buena_phone_scripts.asm" -INCLUDE "text/phone/buena.asm" - - -SECTION "bank29", ROMX, BANK[$29] - -INCLUDE "text/phone/anthony_overworld.asm" -INCLUDE "text/phone/todd_overworld.asm" -INCLUDE "text/phone/gina_overworld.asm" -INCLUDE "text/phone/irwin_overworld.asm" -INCLUDE "text/phone/arnie_overworld.asm" -INCLUDE "text/phone/alan_overworld.asm" -INCLUDE "text/phone/dana_overworld.asm" -INCLUDE "text/phone/chad_overworld.asm" -INCLUDE "text/phone/derek_overworld.asm" -INCLUDE "text/phone/tully_overworld.asm" -INCLUDE "text/phone/brent_overworld.asm" -INCLUDE "text/phone/tiffany_overworld.asm" -INCLUDE "text/phone/vance_overworld.asm" -INCLUDE "text/phone/wilton_overworld.asm" -INCLUDE "text/phone/kenji_overworld.asm" -INCLUDE "text/phone/parry_overworld.asm" -INCLUDE "text/phone/erin_overworld.asm" - -SECTION "Tileset Data 5", ROMX, BANK[TILESETS_5] - -INCLUDE "tilesets/data_5.asm" - - -SECTION "bank2E", ROMX, BANK[$2E] - -ReturnFromMapSetupScript:: ; b8000 - xor a - ld [hBGMapMode], a - ; For some reson, GameFreak chose to use a callba here instead of just falling through. - ; No other function in the game references the function at 2E:400A, here labeled - ; ReturnFromMapSetupScript.inefficientcallba. - callba .inefficientcallba ; this is a waste of 6 ROM bytes and 2 stack bytes - ret -; b800a - -.inefficientcallba: ; b800a - ld a, [MapGroup] - ld b, a - ld a, [MapNumber] - ld c, a - call GetWorldMapLocation - ld [wCurrentLandmark], a - call .CheckNationalParkGate - jr z, .nationalparkgate - - call GetMapPermission - cp GATE - jr nz, .not_gate - -.nationalparkgate - ld a, -1 - ld [wCurrentLandmark], a - -.not_gate - ld hl, wEnteredMapFromContinue - bit 1, [hl] - res 1, [hl] - jr nz, .dont_do_map_sign - - call .CheckMovingWithinLandmark - jr z, .dont_do_map_sign - ld a, [wCurrentLandmark] - ld [wPreviousLandmark], a - - call .CheckSpecialMap - jr z, .dont_do_map_sign - -; Display for 60 frames - ld a, 60 - ld [wLandmarkSignTimer], a - call LoadMapNameSignGFX - call InitMapNameFrame - callba Function104303 - ret - -.dont_do_map_sign - ld a, [wCurrentLandmark] - ld [wPreviousLandmark], a - ld a, $90 - ld [rWY], a - ld [hWY], a - xor a - ld [hLCDStatCustom], a - ret -; b8064 - -.CheckMovingWithinLandmark: ; b8064 - ld a, [wCurrentLandmark] - ld c, a - ld a, [wPreviousLandmark] - cp c - ret z - cp $0 - ret -; b8070 - -.CheckSpecialMap: ; b8070 - cp -1 - ret z - cp SPECIAL_MAP - ret z - cp RADIO_TOWER - ret z - cp LAV_RADIO_TOWER - ret z - cp UNDERGROUND - ret z - cp INDIGO_PLATEAU - ret z - cp POWER_PLANT - ret z - ld a, $1 - and a - ret -; b8089 - -.CheckNationalParkGate: ; b8089 - ld a, [MapGroup] - cp GROUP_ROUTE_35_NATIONAL_PARK_GATE - ret nz - ld a, [MapNumber] - cp MAP_ROUTE_35_NATIONAL_PARK_GATE - ret z - cp MAP_ROUTE_36_NATIONAL_PARK_GATE - ret -; b8098 - - -PlaceMapNameSign:: ; b8098 (2e:4098) - ld hl, wLandmarkSignTimer - ld a, [hl] - and a - jr z, .disappear - dec [hl] - cp 60 - ret z - cp 59 - jr nz, .skip2 - call InitMapNameFrame - call PlaceMapNameCenterAlign - callba Function104303 -.skip2 - ld a, $80 - ld a, $70 - ld [rWY], a - ld [hWY], a - ret - -.disappear - ld a, $90 - ld [rWY], a - ld [hWY], a - xor a - ld [hLCDStatCustom], a - ret - - -LoadMapNameSignGFX: ; b80c6 - ld de, MapEntryFrameGFX - ld hl, VTiles2 tile $60 - lb bc, BANK(MapEntryFrameGFX), $e - call Get2bpp - ret -; b80d3 - -InitMapNameFrame: ; b80d3 - hlcoord 0, 0 - ld b, 2 - ld c, 18 - call InitMapSignAttrMap - call PlaceMapNameFrame - ret -; b80e1 - - -PlaceMapNameCenterAlign: ; b80e1 (2e:40e1) - ld a, [wCurrentLandmark] - ld e, a - callba GetLandmarkName - call .GetNameLength - ld a, SCREEN_WIDTH - sub c - srl a - ld b, $0 - ld c, a - hlcoord 0, 2 - add hl, bc - ld de, StringBuffer1 - call PlaceString - ret - -.GetNameLength: ; b8101 (2e:4101) - ld c, 0 - push hl - ld hl, StringBuffer1 -.loop - ld a, [hli] - cp "@" - jr z, .stop - cp "%" - jr z, .loop - inc c - jr .loop -.stop - pop hl - ret - - -InitMapSignAttrMap: ; b8115 - ld de, AttrMap - TileMap - add hl, de -rept 2 - inc b -endr -rept 2 - inc c -endr - ld a, $87 -.loop - push bc - push hl -.inner_loop - ld [hli], a - dec c - jr nz, .inner_loop - pop hl - ld de, SCREEN_WIDTH - add hl, de - pop bc - dec b - jr nz, .loop - ret -; b812f - -PlaceMapNameFrame: ; b812f - hlcoord 0, 0 - ; top left - ld a, $61 - ld [hli], a - ; top row - ld a, $62 - call .FillTopBottom - ; top right - ld a, $64 - ld [hli], a - ; left, first line - ld a, $65 - ld [hli], a - ; first line - call .FillMiddle - ; right, first line - ld a, $6b - ld [hli], a - ; left, second line - ld a, $66 - ld [hli], a - ; second line - call .FillMiddle - ; right, second line - ld a, $6c - ld [hli], a - ; bottom left - ld a, $67 - ld [hli], a - ; bottom - ld a, $68 - call .FillTopBottom - ; bottom right - ld a, $6a - ld [hl], a - ret -; b815b - -.FillMiddle: ; b815b - ld c, 18 - ld a, $6d -.loop - ld [hli], a - dec c - jr nz, .loop - ret -; b8164 - -.FillTopBottom: ; b8164 - ld c, 5 - jr .enterloop - -.continueloop -rept 2 - ld [hli], a -endr - -.enterloop - inc a -rept 2 - ld [hli], a -endr - dec a - dec c - jr nz, .continueloop - ret -; b8172 - -CheckForSignpostItems: ; b8172 -; Checks to see if there are hidden items on the screen that have not yet been found. If it finds one, returns carry. - call GetMapScriptHeaderBank - ld [Buffer1], a -; Get the coordinate of the bottom right corner of the screen, and load it in wd1ec/wd1ed. - ld a, [XCoord] - add SCREEN_WIDTH / 4 - ld [wd1ed], a - ld a, [YCoord] - add SCREEN_HEIGHT / 4 - ld [wd1ec], a -; Get the pointer for the first signpost header in the map... - ld hl, wdc02 - ld a, [hli] - ld h, [hl] - ld l, a -; ... before even checking to see if there are any signposts on this map. - ld a, [wCurrentMapSignpostCount] - and a - jr z, .nosignpostitems -; For i = 1:wCurrentMapSignpostCount... -.loop -; Store the counter in Buffer2, and store the signpost header pointer in the stack. - ld [Buffer2], a - push hl -; Get the Y coordinate of the signpost. - call .GetFarByte - ld e, a -; Is the Y coordinate of the signpost on the screen? If not, go to the next signpost. - ld a, [wd1ec] - sub e - jr c, .next - cp SCREEN_HEIGHT / 2 - jr nc, .next -; Is the X coordinate of the signpost on the screen? If not, go to the next signpost. - call .GetFarByte - ld d, a - ld a, [wd1ed] - sub d - jr c, .next - cp SCREEN_WIDTH / 2 - jr nc, .next -; Is this signpost a hidden item? If not, go to the next signpost. - call .GetFarByte - cp SIGNPOST_ITEM - jr nz, .next -; Has this item already been found? If not, set off the Itemfinder. - ld a, [Buffer1] - call GetFarHalfword - ld a, [Buffer1] - call GetFarHalfword - ld d, h - ld e, l - ld b, CHECK_FLAG - call EventFlagAction - ld a, c - and a - jr z, .itemnearby - -.next -; Restore the signpost header pointer and increment it by the length of a signpost header. - pop hl - ld bc, 5 - add hl, bc -; Restore the signpost counter and decrement it. If it hits zero, there are no hidden items in range. - ld a, [Buffer2] - dec a - jr nz, .loop - -.nosignpostitems - xor a - ret - -.itemnearby - pop hl - scf - ret -; b81e2 - -.GetFarByte: ; b81e2 - ld a, [Buffer1] - call GetFarByte - inc hl - ret -; b81ea - - -TreeMonEncounter: ; b81ea - callba MobileFn_1060ef - - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - - ld hl, TreeMonMaps - call GetTreeMonSet - jr nc, .no_battle - - call GetTreeMons - jr nc, .no_battle - - call GetTreeMon - jr nc, .no_battle - - ld a, BATTLETYPE_TREE - ld [BattleType], a - ld a, 1 - ld [ScriptVar], a - ret - -.no_battle - xor a - ld [ScriptVar], a - ret -; b8219 - -RockMonEncounter: ; b8219 - - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - - ld hl, RockMonMaps - call GetTreeMonSet - jr nc, .no_battle - - call GetTreeMons - jr nc, .no_battle - - ld a, 10 - call RandomRange - cp 4 - jr nc, .no_battle - - call SelectTreeMon - jr nc, .no_battle - - ret - -.no_battle - xor a - ret -; b823e - - db $05 ; ???? - -GetTreeMonSet: ; b823f -; Return carry and treemon set in a -; if the current map is in table hl. - ld a, [MapNumber] - ld e, a - ld a, [MapGroup] - ld d, a -.loop - ld a, [hli] - cp -1 - jr z, .not_in_table - - cp d - jr nz, .skip2 - - ld a, [hli] - cp e - jr nz, .skip1 - - jr .in_table - -.skip2 - inc hl -.skip1 - inc hl - jr .loop - -.not_in_table - xor a - ret - -.in_table - ld a, [hl] - scf - ret -; b825e - -TreeMonMaps: ; b825e -treemon_map: macro - map \1 - db \2 ; treemon set -endm - treemon_map ROUTE_26, 4 - treemon_map ROUTE_27, 4 - treemon_map ROUTE_28, 0 - treemon_map ROUTE_29, 3 - treemon_map ROUTE_30, 3 - treemon_map ROUTE_31, 3 - treemon_map ROUTE_32, 4 - treemon_map ROUTE_33, 2 - treemon_map ROUTE_34, 3 - treemon_map ROUTE_35, 3 - treemon_map ROUTE_36, 3 - treemon_map ROUTE_37, 3 - treemon_map ROUTE_38, 3 - treemon_map ROUTE_39, 3 - treemon_map ROUTE_40, 0 - treemon_map ROUTE_41, 0 - treemon_map ROUTE_42, 2 - treemon_map ROUTE_43, 5 - treemon_map ROUTE_44, 1 - treemon_map ROUTE_45, 1 - treemon_map ROUTE_46, 1 - treemon_map NEW_BARK_TOWN, 0 - treemon_map CHERRYGROVE_CITY, 0 - treemon_map VIOLET_CITY, 0 - treemon_map AZALEA_TOWN, 2 - treemon_map CIANWOOD_CITY, 0 - treemon_map GOLDENROD_CITY, 0 - treemon_map OLIVINE_CITY, 0 - treemon_map ECRUTEAK_CITY, 0 - treemon_map MAHOGANY_TOWN, 0 - treemon_map LAKE_OF_RAGE, 5 - treemon_map BLACKTHORN_CITY, 0 - treemon_map SILVER_CAVE_OUTSIDE, 0 - treemon_map ILEX_FOREST, 6 - db -1 -; b82c5 - -RockMonMaps: ; b82c5 - treemon_map CIANWOOD_CITY, 7 - treemon_map ROUTE_40, 7 - treemon_map DARK_CAVE_VIOLET_ENTRANCE, 7 - treemon_map SLOWPOKE_WELL_B1F, 7 - db -1 -; b82d2 - -GetTreeMons: ; b82d2 -; Return the address of TreeMon table a in hl. -; Return nc if table a doesn't exist. - - cp 8 - jr nc, .quit - - and a - jr z, .quit - - ld e, a - ld d, 0 - ld hl, TreeMons -rept 2 - add hl, de -endr - - ld a, [hli] - ld h, [hl] - ld l, a - - scf - ret - -.quit - xor a - ret -; b82e8 - -TreeMons: ; b82e8 - dw TreeMons1 - dw TreeMons1 - dw TreeMons2 - dw TreeMons3 - dw TreeMons4 - dw TreeMons5 - dw TreeMons6 - dw RockMons - dw TreeMons1 - -; Two tables each (normal, rare). -; Structure: -; db %, species, level - -TreeMons1: ; b82fa - db 50, SPEAROW, 10 - db 15, SPEAROW, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons2: ; b8320 - db 50, SPEAROW, 10 - db 15, EKANS, 10 - db 15, SPEAROW, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - - db 50, SPEAROW, 10 - db 15, HERACROSS, 10 - db 15, HERACROSS, 10 - db 10, AIPOM, 10 - db 5, AIPOM, 10 - db 5, AIPOM, 10 - db -1 - -TreeMons3: ; b8346 - db 50, HOOTHOOT, 10 - db 15, SPINARAK, 10 - db 15, LEDYBA, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons4: ; b836c - db 50, HOOTHOOT, 10 - db 15, EKANS, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons5: ; b8392 - db 50, HOOTHOOT, 10 - db 15, VENONAT, 10 - db 15, HOOTHOOT, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db 5, EXEGGCUTE, 10 - db -1 - -TreeMons6: ; b83b8 - db 50, HOOTHOOT, 10 - db 15, PINECO, 10 - db 15, PINECO, 10 - db 10, NOCTOWL, 10 - db 5, BUTTERFREE, 10 - db 5, BEEDRILL, 10 - db -1 - - db 50, HOOTHOOT, 10 - db 15, CATERPIE, 10 - db 15, WEEDLE, 10 - db 10, HOOTHOOT, 10 - db 5, METAPOD, 10 - db 5, KAKUNA, 10 - db -1 - -RockMons: ; b83de - db 90, KRABBY, 15 - db 10, SHUCKLE, 15 - db -1 -; b83e5 - -GetTreeMon: ; b83e5 - push hl - call GetTreeScore - pop hl - and a - jr z, .bad - cp 1 - jr z, .good - cp 2 - jr z, .rare - ret - -.bad - ld a, 10 - call RandomRange - and a - jr nz, NoTreeMon - jr SelectTreeMon - -.good - ld a, 10 - call RandomRange - cp 5 - jr nc, NoTreeMon - jr SelectTreeMon - -.rare - ld a, 10 - call RandomRange - cp 8 - jr nc, NoTreeMon - jr .skip -.skip - ld a, [hli] - cp -1 - jr nz, .skip - call SelectTreeMon - ret -; b841f - -SelectTreeMon: ; b841f -; Read a TreeMons table and pick one monster at random. - - ld a, 100 - call RandomRange -.loop - sub [hl] - jr c, .ok -rept 3 - inc hl -endr - jr .loop - -.ok - ld a, [hli] - cp $ff - jr z, NoTreeMon - - ld a, [hli] - ld [TempWildMonSpecies], a - ld a, [hl] - ld [CurPartyLevel], a - scf - ret - -NoTreeMon: ; b843b - xor a - ld [TempWildMonSpecies], a - ld [CurPartyLevel], a - ret -; b8443 - -GetTreeScore: ; b8443 - call .CoordScore - ld [Buffer1], a - call .OTIDScore - ld [Buffer2], a - ld c, a - ld a, [Buffer1] - sub c - jr z, .rare - jr nc, .ok - add 10 -.ok - cp 5 - jr c, .good - -.bad - xor a - ret - -.good - ld a, 1 - ret - -.rare - ld a, 2 - ret -; b8466 - -.CoordScore: ; b8466 - call GetFacingTileCoord - ld hl, 0 - ld c, e - ld b, 0 - ld a, d - - and a - jr z, .next -.loop - add hl, bc - dec a - jr nz, .loop -.next - - add hl, bc - ld c, d - add hl, bc - - ld a, h - ld [hDividend], a - ld a, l - ld [hDividend + 1], a - ld a, 5 - ld [hDivisor], a - ld b, 2 - call Divide - - ld a, [hQuotient + 1] - ld [hDividend], a - ld a, [hQuotient + 2] - ld [hDividend + 1], a - ld a, 10 - ld [hDivisor], a - ld b, 2 - call Divide - - ld a, [hQuotient + 3] - ret -; b849d - -.OTIDScore: ; b849d - ld a, [PlayerID] - ld [hDividend], a - ld a, [PlayerID + 1] - ld [hDividend + 1], a - ld a, 10 - ld [hDivisor], a - ld b, 2 - call Divide - ld a, [hQuotient + 3] - ret -; b84b3 - - -Functionb84b3: ; b84b3 - ld a, [rVBK] - push af - ld a, $1 - ld [rVBK], a - - ld de, FishingGFX - ld a, [PlayerGender] - bit 0, a - jr z, .asm_b84c7 - ld de, KrisFishingGFX -.asm_b84c7 - - ld hl, VTiles0 tile $02 - call Functionb84e3 - ld hl, VTiles0 tile $06 - call Functionb84e3 - ld hl, VTiles0 tile $0a - call Functionb84e3 - ld hl, VTiles2 tile $00 - $40 - call Functionb84e3 - - pop af - ld [rVBK], a - ret -; b84e3 - -Functionb84e3: ; b84e3 - lb bc, BANK(FishingGFX), 2 - push de - call Get2bpp - pop de - ld hl, $20 - add hl, de - ld d, h - ld e, l - ret -; b84f2 - -FishingGFX: ; b84f2 -INCBIN "gfx/unknown/0b84f2.2bpp" -; b8582 - -KrisFishingGFX: ; b8582 -INCBIN "gfx/unknown/0b8582.2bpp" -; b8612 - -INCLUDE "engine/radio.asm" - -ReadPartyMonMail: ; b9229 - ld a, [CurPartyMon] - ld hl, sPartyScratch1 - ld bc, SCRATCHMON_STRUCT_LENGTH - call AddNTimes - ld d, h - ld e, l -ReadAnyMail: ; b9237 - push de - call WhiteBGMap - call ClearSprites - call ClearTileMap - call DisableLCD - call LoadFontsExtra - pop de - push de - ld a, BANK(sPartyScratch1) - call GetSRAMBank - callba Function1de5c8 - call CloseSRAM - ld a, c - ld de, GFX_1de5e6 - or a - jr z, .asm_b9268 - ld de, GFX_1de9e6 - sub $3 - jr c, .asm_b9268 - ld de, GFX_1dede6 - -.asm_b9268 - ld hl, VTiles1 - lb bc, BANK(GFX_1de5e6), $80 - call Get1bpp - pop de - call Functionb92b8 - call EnableLCD - call WaitBGMap - ld a, [wd1ec] - ld e, a - callba Function8cb4 - call SetPalettes - xor a - ld [hJoyPressed], a - call Functionb929a - call WhiteBGMap - call DisableLCD - call LoadStandardFont - jp EnableLCD -; b929a - -Functionb929a: ; b929a -.asm_b929a - call GetJoypad - ld a, [hJoyPressed] - and A_BUTTON | B_BUTTON | START - jr z, .asm_b929a - and START - jr nz, .asm_b92a8 - ret - -.asm_b92a8 - ld a, [wJumptableIndex] - push af - callab Function845d4 - pop af - ld [wJumptableIndex], a - jr .asm_b929a -; b92b8 - -Functionb92b8: ; b92b8 - ld h, d - ld l, e - push hl - ld a, $0 - call GetSRAMBank - ld de, $2b - add hl, de - ld a, [hli] - ld [Buffer1], a - ld a, [hli] - ld [Buffer2], a - ld a, [hli] - ld [CurPartySpecies], a - ld b, [hl] - call CloseSRAM - ld hl, Unknown_b92f8 - ld c, 0 -.asm_b92d9 - ld a, [hli] - cp b - jr z, .asm_b92ea - cp $ff - jr z, .asm_b92e6 - inc c -rept 2 - inc hl -endr - jr .asm_b92d9 - -.asm_b92e6 - ld hl, Unknown_b92f8 - inc hl - -.asm_b92ea - ld a, c - ld [wd1ec], a - ld a, [hli] - ld h, [hl] - ld l, a - ld de, .done - pop bc - push de - jp [hl] -.done - ret -; b92f8 - -Unknown_b92f8: ; b92f8 - dbw FLOWER_MAIL, Functionb963e - dbw SURF_MAIL, Functionb9317 - dbw LITEBLUEMAIL, Functionb9335 - dbw PORTRAITMAIL, Functionb96ca - dbw LOVELY_MAIL, Functionb944b - dbw EON_MAIL, Functionb93d2 - dbw MORPH_MAIL, Functionb94d6 - dbw BLUESKY_MAIL, Functionb9582 - dbw MUSIC_MAIL, Functionb9710 - dbw MIRAGE_MAIL, Functionb9776 - db $ff -; b9317 - -Functionb9317: ; b9317 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9d46 - ld c, $40 - call Functionb9915 - ld de, MailLaprasGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b994e - ld c, $8 - call Functionb9915 - jr Functionb9351 - -Functionb9335: ; b9335 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9dc6 - ld c, $40 - call Functionb9915 - ld de, MailDratiniGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b995e - ld c, $8 - call Functionb9915 - -Functionb9351: ; b9351 - ld de, Unknown_b9976 - ld c, $10 - call Functionb9915 - ld c, $10 - call Functionb990c - ld de, Unknown_b9c3e - ld c, $40 - call Functionb990c - ld c, $40 - call Functionb9915 - call Functionb9858 - hlcoord 2, 15 - ld a, $3f - call Functionb98d4 - ld a, $39 - hlcoord 15, 14 - call Functionb98fc - ld a, $44 - hlcoord 2, 2 - call Functionb98ee - hlcoord 15, 11 - call Functionb98ee - ld a, $4c - hlcoord 3, 12 - call Functionb98ee - hlcoord 15, 2 - call Functionb98ee - ld a, $50 - hlcoord 6, 3 - call Functionb98ee - ld a, $40 - hlcoord 13, 2 - ld [hli], a - hlcoord 6, 14 - ld [hl], a - ld a, $41 - hlcoord 4, 5 - ld [hli], a - hlcoord 17, 5 - ld [hli], a - hlcoord 13, 12 - ld [hl], a - ld a, $42 - hlcoord 9, 2 - ld [hli], a - hlcoord 14, 5 - ld [hli], a - hlcoord 3, 10 - ld [hl], a - ld a, $43 - hlcoord 6, 11 - ld [hli], a - pop hl - jp Functionb9803 -; b93d2 - -Functionb93d2: ; b93d2 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld de, Unknown_b998e - ld c, $8 - call Functionb990c - ld de, Unknown_b998e - ld c, $8 - call Functionb990c - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld de, Unknown_b9d76 - ld c, $8 - call Functionb9915 - ld de, MailPikaGFX - ld c, $30 - call Functionb991e - ld hl, VTiles2 tile $3d - ld de, Unknown_b9c9e - ld c, $20 - call Functionb990c - ld de, Unknown_b998e - ld c, $8 - call Functionb9915 - ld a, $31 - hlcoord 0, 0 - call Functionb98a8 - hlcoord 1, 17 - call Functionb98a8 - ld a, $33 - hlcoord 0, 1 - call Functionb98ba - hlcoord 19, 0 - call Functionb98ba - hlcoord 2, 15 - ld a, $35 - call Functionb98d4 - inc a - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b944b - -Functionb944b: ; b944b - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e26 - ld c, $28 - call Functionb9915 - ld de, MailPoliwagGFX - ld c, $30 - call Functionb991e - ld de, Unknown_b9966 - ld c, $8 - call Functionb9915 - ld de, Unknown_b9c5e - ld c, $20 - call Functionb9915 - ld de, Unknown_b996e - ld c, $8 - call Functionb990c - call Functionb987b - hlcoord 2, 15 - ld a, $3c - call Functionb98d4 - ld a, $36 - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b9491 - -Functionb9491: ; b9491 - ld a, $3d - hlcoord 2, 2 - call Functionb98ee - hlcoord 16, 2 - call Functionb98ee - hlcoord 9, 4 - call Functionb98ee - hlcoord 2, 11 - call Functionb98ee - hlcoord 6, 12 - call Functionb98ee - hlcoord 12, 11 - call Functionb98ee - ld a, $41 - hlcoord 5, 4 - ld [hl], a - hlcoord 6, 2 - ld [hl], a - hlcoord 12, 4 - ld [hl], a - hlcoord 14, 2 - ld [hl], a - hlcoord 3, 13 - ld [hl], a - hlcoord 9, 11 - ld [hl], a - hlcoord 16, 12 - ld [hl], a - ret -; b94d6 - -Functionb94d6: ; b94d6 - push bc - ld hl, VTiles2 tile $31 - ld bc, $28 - call Functionb97f8 - ld de, Unknown_b9c96 - ld c, 8 - call Functionb9915 - ld de, Unknown_b9c7e - ld c, 8 - call Functionb9915 - ld de, Unknown_b993e - ld c, 8 - call Functionb9915 - ld de, Unknown_b997e - ld c, 8 - call Functionb990c - ld de, Unknown_b9926 - ld c, 8 - call Functionb9915 - ld de, MailDittoGFX - ld c, $30 - call Functionb991e - call Functionb987b - ld a, $31 - hlcoord 1, 1 - call Functionb98ee - hlcoord 17, 15 - call Functionb98ee - hlcoord 1, 3 - ld [hl], a - hlcoord 3, 1 - ld [hl], a - hlcoord 16, 16 - ld [hl], a - hlcoord 18, 14 - ld [hl], a - ld a, $36 - hlcoord 1, 4 - ld [hl], a - hlcoord 2, 3 - ld [hl], a - hlcoord 3, 2 - ld [hl], a - hlcoord 4, 1 - ld [hl], a - inc a - hlcoord 15, 16 - ld [hl], a - hlcoord 16, 15 - ld [hl], a - hlcoord 17, 14 - ld [hl], a - hlcoord 18, 13 - ld [hl], a - inc a - hlcoord 2, 15 - ld b, $e - call Functionb98de - inc a - hlcoord 2, 11 - call Functionb98d4 - hlcoord 2, 5 - call Functionb98d4 - inc a - hlcoord 6, 1 - call Functionb98d0 - hlcoord 1, 16 - call Functionb98d0 - inc a - hlcoord 3, 13 - call Functionb98fc - pop hl - jp Functionb9803 -; b9582 - -Functionb9582: ; b9582 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b997e - ld c, $8 - call Functionb9915 - ld a, $ff - ld bc, $10 - call ByteFill - ld de, Unknown_b992e - ld c, $8 - call Functionb991e - ld de, MailDragoniteGFX - ld c, $b8 - call Functionb991e - ld de, MailCloudGFX - ld c, $30 - call Functionb990c - ld de, Unknown_b9db6 - ld c, $8 - call Functionb990c - ld de, MailCloudGFX - ld c, $8 - call Functionb990c - ld de, Unknown_b9d26 - ld c, $10 - call Functionb990c - ld de, Unknown_b9d3e - ld c, $8 - call Functionb990c - ld a, $31 - hlcoord 0, 0 - call Functionb98dc - hlcoord 0, 1 - call Functionb98e3 - hlcoord 19, 1 - call Functionb98e3 - inc a - hlcoord 0, 17 - call Functionb98dc - inc a - hlcoord 0, 16 - call Functionb98dc - inc a - hlcoord 2, 2 - call Functionb9636 - hlcoord 3, 3 - call Functionb9636 - hlcoord 4, 4 - call Functionb9636 - dec hl - ld [hl], $7f - dec a - hlcoord 15, 14 - call Functionb98ee - add $4 - hlcoord 15, 16 - ld [hli], a - inc a - ld [hl], a - inc a - push af - hlcoord 12, 1 - call Functionb98fc - pop af - hlcoord 15, 4 - call Functionb98fc - inc a - hlcoord 2, 11 - call Functionb98d4 - inc a - hlcoord 10, 3 - call Functionb98ee - pop hl - jp Functionb9803 -; b9636 - -Functionb9636: ; b9636 - ld b, $6 -.asm_b9638 - ld [hli], a - inc a - dec b - jr nz, .asm_b9638 - ret -; b963e - -Functionb963e: ; b963e - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9d86 - ld c, $40 - call Functionb990c - ld de, MailOddishGFX - ld c, $20 - call Functionb991e - ld de, Unknown_b9db6 - ld c, $8 - call Functionb9915 - ld de, Unknown_b9cbe - ld c, $20 - call Functionb990c - ld c, $20 - call Functionb9915 - call Functionb9858 - hlcoord 2, 15 - ld a, $3d - call Functionb98d4 - ld a, $39 - hlcoord 16, 13 - call Functionb98ee - hlcoord 2, 13 - call Functionb98ee - ld a, $3e - hlcoord 2, 2 - call Functionb98ee - hlcoord 5, 3 - call Functionb98ee - hlcoord 10, 2 - call Functionb98ee - hlcoord 16, 3 - call Functionb98ee - hlcoord 5, 11 - call Functionb98ee - hlcoord 16, 10 - call Functionb98ee - ld a, $42 - hlcoord 3, 4 - call Functionb98ee - hlcoord 12, 3 - call Functionb98ee - hlcoord 14, 2 - call Functionb98ee - hlcoord 2, 10 - call Functionb98ee - hlcoord 14, 11 - call Functionb98ee - pop hl - jp Functionb9803 -; b96ca - -Functionb96ca: ; b96ca - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e4e - ld c, $28 - call Functionb9915 - ld de, Unknown_b995e - ld c, $8 - call Functionb9915 - ld hl, VTiles2 tile $3d - ld de, Unknown_b9bfe - ld c, $20 - call Functionb990c - ld de, Unknown_b9936 - ld c, $8 - call Functionb9915 - call Functionb987b - hlcoord 8, 15 - ld a, $36 - ld b, $a - call Functionb98de - call Functionb9491 - ld a, $1 - ld [UnownLetter], a - hlcoord 1, 10 - call PrepMonFrontpic - pop hl - jp Functionb9803 -; b9710 - -Functionb9710: ; b9710 - push bc - ld hl, VTiles2 tile $31 - ld de, Unknown_b9e06 - ld c, $20 - call Functionb9915 - ld de, Unknown_b993e - ld c, $10 - call Functionb9915 - ld de, Unknown_b9996 - ld c, $30 - call Functionb991e - xor a - ld bc, $10 - call ByteFill - ld de, Unknown_b9cfe - ld c, $18 - call Functionb990c - ld de, Unknown_b9946 - ld c, $8 - call Functionb990c - ld a, $31 - hlcoord 0, 0 - call Functionb98a8 - hlcoord 1, 17 - call Functionb98a8 - ld a, $33 - hlcoord 0, 1 - call Functionb98ba - hlcoord 19, 0 - call Functionb98ba - ld a, $35 - hlcoord 2, 15 - call Functionb989e - ld a, $37 - hlcoord 15, 14 - call Functionb98fc - call Functionb9491 - pop hl - jp Functionb9803 -; b9776 - -Functionb9776: ; b9776 - push bc - ld hl, VTiles2 tile $31 - ld bc, $28 - call Functionb97f8 - ld de, Unknown_b992e - ld c, $8 - call Functionb9915 - ld de, MailMewGFX - ld c, $90 - call Functionb9915 - ld de, Unknown_b9dce - ld c, $8 - call Functionb990c - ld de, Unknown_b9df6 - ld c, $8 - call Functionb990c - call Functionb987b - ld a, $36 - hlcoord 1, 16 - call Functionb98d8 - inc a - hlcoord 15, 14 - call Functionb98fc - inc a - hlcoord 15, 16 - ld [hli], a - inc a - ld [hl], a - ld a, $3f - hlcoord 1, 1 - call Functionb98a8 - ld a, $41 - hlcoord 0, 2 - call Functionb98b5 - ld a, $43 - hlcoord 19, 2 - call Functionb98b5 - ld a, $45 - hlcoord 0, 1 - ld [hl], a - inc a - hlcoord 19, 1 - ld [hl], a - inc a - hlcoord 0, 16 - ld [hl], a - inc a - hlcoord 19, 16 - ld [hl], a - inc a - hlcoord 2, 5 - call Functionb98d4 - inc a - hlcoord 2, 11 - call Functionb98d4 - pop hl - jp Functionb9803 -; b97f8 - -Functionb97f8: ; b97f8 -.asm_b97f8 - xor a - ld [hli], a - ld a, $ff - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_b97f8 - ret -; b9803 - -Functionb9803: ; b9803 - ld bc, $2f - ld de, wd002 - ld a, $0 - call GetSRAMBank - call CopyBytes - call CloseSRAM - ld hl, wd023 - ld de, wd050 - ld bc, $a - call CopyBytes - ld a, $50 - ld [wd023], a - ld [wd05a], a - ld de, wd002 - hlcoord 2, 7 - call PlaceString - ld de, wd050 - ld a, [de] - and a - ret z - ld a, [wd1ec] - hlcoord 8, 14 - cp $3 - jr z, .asm_b984b - hlcoord 6, 14 - cp $6 - jr z, .asm_b984b - hlcoord 5, 14 - -.asm_b984b - jp PlaceString -; b984e - -Functionb984e: ; b984e -.asm_b984e - ld a, [hl] - xor $ff - ld [hli], a - dec bc - ld a, b - or c - jr nz, .asm_b984e - ret -; b9858 - -Functionb9858: ; b9858 - hlcoord 0, 0 - ld a, $31 - ld [hli], a - inc a - call Functionb98d8 - inc a - ld [hli], a - inc a - call Functionb98e3 - ld a, $36 - ld [hli], a - inc a - call Functionb98d8 - hlcoord 19, 1 - ld a, $35 - call Functionb98e3 - ld a, $38 - ld [hl], a - ret -; b987b - -Functionb987b: ; b987b - hlcoord 0, 0 - ld a, $31 - ld [hli], a - inc a - call Functionb98d8 - ld [hl], $31 - inc hl - inc a - call Functionb98e3 - ld [hl], $31 - inc hl - inc a - call Functionb98d8 - hlcoord 19, 1 - ld a, $35 - call Functionb98e3 - ld [hl], $31 - ret -; b989e - -Functionb989e: ; b989e - push af - ld b, $7 - jr Functionb98ab - -Functionb98a3: ; b98a3 - push af - ld b, $8 - jr Functionb98ab - -Functionb98a8: ; b98a8 - push af - ld b, $9 - -Functionb98ab: ; b98ab - ld [hli], a - inc a - ld [hli], a - dec a - dec b - jr nz, Functionb98ab - ld [hl], a - pop af - ret -; b98b5 - -Functionb98b5: ; b98b5 - push af - ld b, $7 - jr Functionb98bd - -Functionb98ba: ; b98ba - push af - ld b, $8 - -Functionb98bd: ; b98bd - ld [hl], a - ld de, SCREEN_WIDTH - add hl, de - inc a - ld [hl], a - add hl, de - dec a - dec b - jr nz, Functionb98bd - ld [hl], a - pop af - ret -; b98cc - -Functionb98cc: ; b98cc - ld b, $7 - jr Functionb98de - -Functionb98d0: ; b98d0 - ld b, $d - jr Functionb98de - -Functionb98d4: ; b98d4 - ld b, $10 - jr Functionb98de - -Functionb98d8: ; b98d8 - ld b, $12 - jr Functionb98de - -Functionb98dc: ; b98dc - ld b, $14 - -Functionb98de: ; b98de - ld [hli], a - dec b - jr nz, Functionb98de - ret -; b98e3 - -Functionb98e3: ; b98e3 - ld b, $10 - ld de, SCREEN_WIDTH -.asm_b98e8 - ld [hl], a - add hl, de - dec b - jr nz, .asm_b98e8 - ret -; b98ee - -Functionb98ee: ; b98ee - push af - ld [hli], a - inc a - ld [hl], a - ld bc, $13 - add hl, bc - inc a - ld [hli], a - inc a - ld [hl], a - pop af - ret -; b98fc - -Functionb98fc: ; b98fc - ld [hli], a - inc a - ld [hli], a - inc a - ld [hl], a - ld bc, SCREEN_HEIGHT - add hl, bc - inc a - ld [hli], a - inc a - ld [hli], a - inc a - ld [hl], a - ret -; b990c - -Functionb990c: ; b990c -.asm_b990c - ld a, [de] - inc de - ld [hli], a - xor a - ld [hli], a - dec c - jr nz, .asm_b990c - ret -; b9915 - -Functionb9915: ; b9915 -.asm_b9915 - xor a - ld [hli], a - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_b9915 - ret -; b991e - -Functionb991e: ; b991e -.asm_b991e - ld a, [de] - inc de -rept 2 - ld [hli], a -endr - dec c - jr nz, .asm_b991e - ret -; b9926 - -Unknown_b9926: ; b9926 -INCBIN "gfx/unknown/0b9926.1bpp" - -Unknown_b992e: ; b992e -INCBIN "gfx/unknown/0b992e.1bpp" - -Unknown_b9936: ; b9936 -INCBIN "gfx/unknown/0b9936.1bpp" - -Unknown_b993e: ; b993e -INCBIN "gfx/unknown/0b993e.1bpp" - -Unknown_b9946: ; b9946 -INCBIN "gfx/unknown/0b9946.1bpp" - -Unknown_b994e: ; b994e -INCBIN "gfx/unknown/0b994e.1bpp" - -Unknown_b995e: ; b995e -INCBIN "gfx/unknown/0b995e.1bpp" - -Unknown_b9966: ; b9966 -INCBIN "gfx/unknown/0b9966.1bpp" - -Unknown_b996e: ; b996e -INCBIN "gfx/unknown/0b996e.1bpp" - -Unknown_b9976: ; b9976 -INCBIN "gfx/unknown/0b9976.1bpp" - -Unknown_b997e: ; b997e -INCBIN "gfx/unknown/0b997e.1bpp" - -Unknown_b998e: ; b998e -INCBIN "gfx/unknown/0b998e.1bpp" - -Unknown_b9996: ; b9996 -INCBIN "gfx/unknown/0b9996.1bpp" - -MailDratiniGFX: ; b99c6 -INCBIN "gfx/unknown/0b99c6.1bpp" - -MailPoliwagGFX: ; b99f6 -INCBIN "gfx/unknown/0b99f6.1bpp" - -MailLaprasGFX: ; b9a26 -INCBIN "gfx/unknown/0b9a26.1bpp" - -MailPikaGFX: ; b9a56 -INCBIN "gfx/unknown/0b9a56.1bpp" - -MailDittoGFX: ; b9a86 -INCBIN "gfx/unknown/0b9a86.1bpp" - -MailMewGFX: ; b9ab6 -INCBIN "gfx/unknown/0b9ab6.1bpp" - -MailDragoniteGFX: ; b9b46 -INCBIN "gfx/unknown/0b9b46.1bpp" - -MailSentretGFX: ; b9bce -INCBIN "gfx/unknown/0b9bce.1bpp" - -Unknown_b9bee: ; b9bee -INCBIN "gfx/unknown/0b9bee.1bpp" - -Unknown_b9bfe: ; b9bfe -INCBIN "gfx/unknown/0b9bfe.1bpp" - -MailOddishGFX: ; b9c1e -INCBIN "gfx/unknown/0b9c1e.1bpp" - -Unknown_b9c3e: ; b9c3e -INCBIN "gfx/unknown/0b9c3e.1bpp" - -Unknown_b9c5e: ; b9c5e -INCBIN "gfx/unknown/0b9c5e.1bpp" - -Unknown_b9c7e: ; b9c7e -INCBIN "gfx/unknown/0b9c7e.1bpp" - -Unknown_b9c96: ; b9c96 -INCBIN "gfx/unknown/0b9c96.1bpp" - -Unknown_b9c9e: ; b9c9e -INCBIN "gfx/unknown/0b9c9e.1bpp" - -Unknown_b9cbe: ; b9cbe -INCBIN "gfx/unknown/0b9cbe.1bpp" - -Unknown_b9cde: ; b9cde -INCBIN "gfx/unknown/0b9cde.1bpp" - -Unknown_b9cfe: ; b9cfe -INCBIN "gfx/unknown/0b9cfe.1bpp" - -MailCloudGFX: ; b9d16 -INCBIN "gfx/unknown/0b9d16.1bpp" - -Unknown_b9d26: ; b9d26 -INCBIN "gfx/unknown/0b9d26.1bpp" - -Unknown_b9d3e: ; b9d3e -INCBIN "gfx/unknown/0b9d3e.1bpp" - -Unknown_b9d46: ; b9d46 -INCBIN "gfx/unknown/0b9d46.1bpp" - -Unknown_b9d76: ; b9d76 -INCBIN "gfx/unknown/0b9d76.1bpp" - -Unknown_b9d86: ; b9d86 -INCBIN "gfx/unknown/0b9d86.1bpp" - -Unknown_b9db6: ; b9db6 -INCBIN "gfx/unknown/0b9db6.1bpp" - -Unknown_b9dc6: ; b9dc6 -INCBIN "gfx/unknown/0b9dc6.1bpp" - -Unknown_b9dce: ; b9dce -INCBIN "gfx/unknown/0b9dce.1bpp" - -Unknown_b9df6: ; b9df6 -INCBIN "gfx/unknown/0b9df6.1bpp" - -Unknown_b9e06: ; b9e06 -INCBIN "gfx/unknown/0b9e06.1bpp" - -Unknown_b9e26: ; b9e26 -INCBIN "gfx/unknown/0b9e26.1bpp" - -Unknown_b9e4e: ; b9e4e -INCBIN "gfx/unknown/0b9e4e.1bpp" - - -ItemIsMail: ; b9e76 - ld a, d - ld hl, .items - ld de, 1 - jp IsInArray -; b9e80 - -.items - db FLOWER_MAIL - db SURF_MAIL - db LITEBLUEMAIL - db PORTRAITMAIL - db LOVELY_MAIL - db EON_MAIL - db MORPH_MAIL - db BLUESKY_MAIL - db MUSIC_MAIL - db MIRAGE_MAIL - db $ff -; b9e8b - - -SECTION "bank2F", ROMX, BANK[$2F] - -INCLUDE "engine/std_scripts.asm" - -INCLUDE "engine/phone_scripts.asm" - -TalkToTrainerScript:: ; 0xbe66a - faceplayer - trainerstatus CHECK_FLAG - iftrue AlreadyBeatenTrainerScript - loadtrainerdata - playrammusic - jump StartBattleWithMapTrainerScript -; 0xbe675 - -SeenByTrainerScript:: ; 0xbe675 - loadtrainerdata - playrammusic - showemote EMOTE_SHOCK, LAST_TALKED, 30 - callasm TrainerWalkToPlayer - applymovement2 MovementBuffer - writepersonxy LAST_TALKED - faceperson PLAYER, LAST_TALKED - jump StartBattleWithMapTrainerScript -; 0xbe68a - -StartBattleWithMapTrainerScript: ; 0xbe68a - loadfont - trainertext $0 - closetext - loadmovesprites - loadtrainerdata - startbattle - returnafterbattle - trainerstatus SET_FLAG - loadvar wd04d, -1 - -AlreadyBeatenTrainerScript: - scripttalkafter -; 0xbe699 - - - -SECTION "bank30", ROMX, BANK[$30] - -INCLUDE "gfx/overworld/sprites_1.asm" - -SECTION "bank31", ROMX, BANK[$31] - -INCLUDE "gfx/overworld/sprites_2.asm" - - -SECTION "bank32", ROMX, BANK[$32] - -INCLUDE "battle/bg_effects.asm" - -INCLUDE "battle/anims.asm" - -Functioncbcdd: ; cbcdd - call Functioncbce5 - ld a, [hCGB] - and a - ret nz - ret -; cbce5 - -Functioncbce5: ; cbce5 - ld a, [hCGB] - and a - jr nz, .asm_cbd06 - ld a, [TimeOfDayPal] - and $3 - cp $3 - ld a, $0 - jr z, .asm_cbcf7 - ld a, $aa - -.asm_cbcf7 - call DmgToCgbBGPals - ld c, 4 - call DelayFrames - callba _UpdateTimePals - ret - -.asm_cbd06 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, BGPals - ld c, $20 -.asm_cbd12 -; RGB 31, 21, 28 - ld a, $bc - ld [hli], a - ld a, $7e - ld [hli], a - dec c - jr nz, .asm_cbd12 - pop af - ld [rSVBK], a - ld a, $1 - ld [hCGBPalUpdate], a - ld c, 4 - call DelayFrames - callba _UpdateTimePals - ret -; cbd2e - -TheEndGFX:: ; cbd2e -INCBIN "gfx/credits/theend.2bpp" -; cbe2e - - -SECTION "bank33", ROMX, BANK[$33] - -DisplayCaughtContestMonStats: ; cc000 - - call WhiteBGMap - call ClearTileMap - call ClearSprites - call LoadFontsBattleExtra - - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - - hlcoord 0, 0 - ld b, 4 - ld c, 13 - call TextBox - - hlcoord 0, 6 - ld b, 4 - ld c, 13 - call TextBox - - hlcoord 2, 0 - ld de, .Stock - call PlaceString - - hlcoord 2, 6 - ld de, .This - call PlaceString - - hlcoord 5, 4 - ld de, .Health - call PlaceString - - hlcoord 5, 10 - ld de, .Health - call PlaceString - - ld a, [wContestMon] - ld [wd265], a - call GetPokemonName - ld de, StringBuffer1 - hlcoord 1, 2 - call PlaceString - - ld h, b - ld l, c - ld a, [wContestMonLevel] - ld [TempMonLevel], a - call PrintLevel - - ld de, EnemyMonNick - hlcoord 1, 8 - call PlaceString - - ld h, b - ld l, c - ld a, [EnemyMonLevel] - ld [TempMonLevel], a - call PrintLevel - - hlcoord 11, 4 - ld de, wContestMonMaxHP - lb bc, 2, 3 - call PrintNum - - hlcoord 11, 10 - ld de, EnemyMonMaxHP - call PrintNum - - ld hl, SwitchMonText - call PrintText - - pop af - ld [Options], a - - call WaitBGMap - ld b, $8 - call GetSGBLayout - call SetPalettes - ret -; cc0a7 - -.Health - db "HEALTH@" -.Stock - db " STOCK ", $4a, " @" -.This - db " THIS ", $4a, " @" - -SwitchMonText: ; cc0c2 - ; Switch #MON? - text_jump UnknownText_0x1c10cf - db "@" -; cc0c7 - -DisplayAlreadyCaughtText: ; cc0c7 - call GetPokemonName - ld hl, .AlreadyCaughtText - jp PrintText -; cc0d0 - -.AlreadyCaughtText: ; 0xcc0d0 - ; You already caught a @ . - text_jump UnknownText_0x1c10dd - db "@" -; 0xcc0d5 - -Predef2F: -Predef38: -Predef39: ; cc0d5 - ret -; cc0d6 - - -INCLUDE "battle/anim_commands.asm" - -INCLUDE "battle/anim_objects.asm" - - -SECTION "Pic Animations 1", ROMX, BANK[$34] - -INCLUDE "gfx/pics/animation.asm" - -; Pic animations are assembled in 3 parts: - -; Top-level animations: -; frame #, duration: Frame 0 is the original pic (no change) -; setrepeat #: Sets the number of times to repeat -; dorepeat #: Repeats from command # (starting from 0) -; end - -; Bitmasks: -; Layered over the pic to designate affected tiles - -; Frame definitions: -; first byte is the bitmask used for this frame -; following bytes are tile ids mapped to each bit in the mask - -; Main animations (played everywhere) -INCLUDE "gfx/pics/anim_pointers.asm" -INCLUDE "gfx/pics/anims.asm" - -; Extra animations, appended to the main animation -; Used in the status screen (blinking, tail wags etc.) -INCLUDE "gfx/pics/extra_pointers.asm" -INCLUDE "gfx/pics/extras.asm" - -; Unown has its own animation data despite having an entry in the main tables -INCLUDE "gfx/pics/unown_anim_pointers.asm" -INCLUDE "gfx/pics/unown_anims.asm" -INCLUDE "gfx/pics/unown_extra_pointers.asm" -INCLUDE "gfx/pics/unown_extras.asm" - -; Bitmasks -INCLUDE "gfx/pics/bitmask_pointers.asm" -INCLUDE "gfx/pics/bitmasks.asm" -INCLUDE "gfx/pics/unown_bitmask_pointers.asm" -INCLUDE "gfx/pics/unown_bitmasks.asm" - - -SECTION "Pic Animations 2", ROMX, BANK[$35] - -INCLUDE "gfx/pics/frame_pointers.asm" -INCLUDE "gfx/pics/kanto_frames.asm" - - -SECTION "bank36", ROMX, BANK[$36] - -FontInversed: INCBIN "gfx/misc/font_inversed.1bpp" - - -SECTION "Pic Animations 3", ROMX, BANK[$36] - -INCLUDE "gfx/pics/johto_frames.asm" -INCLUDE "gfx/pics/unown_frame_pointers.asm" -INCLUDE "gfx/pics/unown_frames.asm" - - -SECTION "Tileset Data 6", ROMX, BANK[TILESETS_6] - -INCLUDE "tilesets/data_6.asm" - - -SECTION "bank38", ROMX, BANK[$38] - -Functione0000: ; e0000 - push de - xor a - call GetSRAMBank - ld hl, sScratch - ld bc, 0 -.asm_e000b - push bc - push hl - push bc - ld de, wd002 - call Functione004e - call Functione0057 - ld hl, Unknown_e008b - pop bc -rept 2 - add hl, bc -endr - ld a, [hli] - ld e, a - ld d, [hl] - ld hl, wd012 - call Functione004e - pop hl - ld bc, $10 - add hl, bc - pop bc - inc c - ld a, c - cp $31 - jr c, .asm_e000b - ld hl, OverworldMap - ld de, sScratch - ld bc, $310 - call CopyBytes - pop hl - ld de, sScratch - ld c, $31 - ld a, [hROMBank] - ld b, a - call Get2bpp - call CloseSRAM - ret -; e004e - -Functione004e: ; e004e - ld c, $10 -.asm_e0050 - ld a, [hli] - ld [de], a - inc de - dec c - jr nz, .asm_e0050 - ret -; e0057 - -Functione0057: ; e0057 - ld hl, wd012 - ld e, $80 - ld d, $8 -.asm_e005e - push hl - ld hl, wd002 - call Functione0078 - pop hl - ld a, b - ld [hli], a - push hl - ld hl, wd003 - call Functione0078 - pop hl - ld a, b - ld [hli], a - srl e - dec d - jr nz, .asm_e005e - ret -; e0078 - -Functione0078: ; e0078 - ld b, $0 - ld c, $8 -.asm_e007c - ld a, [hli] - and e - jr z, .asm_e0083 - scf - jr .asm_e0084 - -.asm_e0083 - and a - -.asm_e0084 - rr b - inc hl - dec c - jr nz, .asm_e007c - ret -; e008b - -Unknown_e008b: ; e008b - dw wcaa0, wca30, wc9c0, wc950, wc8e0, wc870, wc800 - dw wcab0, wca40, wc9d0, wc960, wc8f0, wc880, wc810 - dw wcac0, wca50, wc9e0, wc970, wc900, wc890, wc820 - dw wcad0, wca60, wc9f0, wc980, wc910, wc8a0, wc830 - dw wcae0, wca70, wca00, wc990, wc920, wc8b0, wc840 - dw wcaf0, wca80, wca10, wc9a0, wc930, wc8c0, wc850 - dw wcb00, wca90, wca20, wc9b0, wc940, wc8d0, wc860 -; e00ed - -Unknown_e00ed: -; Graphics for an unused Game Corner -; game were meant to be here. - -Functione00ed: ; e00ed (38:40ed) - ret -; e00ee (38:40ee) - -_CardFlip: ; e00ee (38:40ee) - ld hl, Options - set 4, [hl] - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld de, MUSIC_NONE - call PlayMusic - call DelayFrame - call DisableLCD - call LoadStandardFont - call LoadFontsExtra - ld hl, LZ_e0d16 - ld de, VTiles2 tile $00 - call Decompress - ld hl, LZ_e0ea8 - ld de, VTiles2 tile $3e - call Decompress - ld hl, LZ_e0cdb - ld de, VTiles0 tile $00 - call Decompress - ld hl, GFX_e0cf6 - ld de, VTiles1 tile $6f - ld bc, $10 - call CopyBytes - ld hl, GFX_e0d06 - ld de, VTiles1 tile $75 - ld bc, $10 - call CopyBytes - call Functione0521 - call Functione04c1 - call Functione0c37 - call EnableLCD - call Function3200 - ld a, $e4 - call DmgToCgbBGPals - ld de, $e4e4 - call DmgToCgbObjPals - call DelayFrame - xor a - ld [wJumptableIndex], a - ld a, $2 - ld [wcf64], a - ld [wcf65], a - ld de, MUSIC_GAME_CORNER - call PlayMusic -.MasterLoop - ld a, [wJumptableIndex] - bit 7, a - jr nz, .leavethegame - call .CardFlip - jr .MasterLoop -.leavethegame - call WaitSFX - ld de, SFX_QUIT_SLOTS - call PlaySFX - call WaitSFX - call WhiteBGMap - ld hl, Options - res 4, [hl] - ret - -.CardFlip: ; e0191 (38:4191) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, .Jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e01a0 (38:41a0) - -.Jumptable: ; e01a0 - dw .AskPlayWithThree - dw .DeductCoins - dw .ChooseACard - dw .PlaceYourBet - dw .CheckTheCard - dw .TabulateTheResult - dw .PlayAgain - dw .Quit -; e01b0 - -.Increment: ; e01b0 - ld hl, wJumptableIndex - inc [hl] - ret -; e01b5 - -.AskPlayWithThree: ; e01b5 - ld hl, .PlayWithThreeCoinsText - call Functione0489 - call YesNoBox - jr c, .SaidNo - call Functione0366 - call .Increment - ret - -.SaidNo - ld a, $7 - ld [wJumptableIndex], a - ret -; e01cd - -.PlayWithThreeCoinsText: ; 0xe01cd - ; Play with three coins? - text_jump UnknownText_0x1c5793 - db "@" -; 0xe01d2 - -.DeductCoins: ; e01d2 - ld a, [Coins] - ld h, a - ld a, [Coins + 1] - ld l, a - ld a, h - and a - jr nz, .deduct ; You have at least 256 coins. - ld a, l - cp 3 - jr nc, .deduct ; You have at least 3 coins. - ld hl, .NotEnoughCoinsText - call Functione0489 - ld a, $7 - ld [wJumptableIndex], a - ret - -.deduct - ld de, -3 - add hl, de - ld a, h - ld [Coins], a - ld a, l - ld [Coins + 1], a - ld de, SFX_TRANSACTION - call PlaySFX - xor a - ld [hBGMapMode], a - call Functione049c - ld a, $1 - ld [hBGMapMode], a - call WaitSFX - call .Increment - ret -; e0212 - -.NotEnoughCoinsText: ; 0xe0212 - ; Not enough coins… - text_jump UnknownText_0x1c57ab - db "@" -; 0xe0217 - -.ChooseACard: ; e0217 - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - lb bc, 12, 9 - call Functione04e5 - hlcoord 9, 0 - ld bc, SCREEN_WIDTH - ld a, [wc6e8] - call AddNTimes - ld [hl], $f5 - ld a, $1 - ld [hBGMapMode], a - ld c, 20 - call DelayFrames - hlcoord 2, 0 - call Functione03c1 - ld a, $1 - ld [hBGMapMode], a - ld c, 20 - call DelayFrames - hlcoord 2, 6 - call Functione03c1 - call WaitBGMap - ld hl, .ChooseACardText - call Functione0489 - xor a - ld [wcf66], a -.loop - call JoyTextDelay - ld a, [hJoyLast] - and A_BUTTON - jr nz, .next - ld de, SFX_KINESIS - call PlaySFX - call Functione0849 - ld c, 4 - call DelayFrames - ld hl, wcf66 - ld a, [hl] - xor $1 - ld [hl], a - jr .loop - -.next - ld de, SFX_SLOT_MACHINE_START - call PlaySFX - ld a, $3 -.loop2 - push af - call Functione0849 - ld c, 4 - call DelayFrames - call ClearSprites - ld c, 4 - call DelayFrames - pop af - dec a - jr nz, .loop2 - ld hl, wcf66 - ld a, [hl] - push af - xor $1 - ld [hl], a - call Functione03ac - lb bc, 6, 5 - call Functione04e5 - pop af - ld [wcf66], a - call .Increment - ret -; e02b2 - -.ChooseACardText: ; 0xe02b2 - ; Choose a card. - text_jump UnknownText_0x1c57be - db "@" -; 0xe02b7 - -.PlaceYourBet: ; e02b7 - ld hl, .PlaceYourBetText - call Functione0489 -.betloop - call JoyTextDelay - ld a, [hJoyLast] - and A_BUTTON - jr nz, .betdone - call Functione089c - call Functione0960 - call DelayFrame - jr .betloop - -.betdone - call .Increment - ret -; e02d5 - -.PlaceYourBetText: ; 0xe02d5 - ; Place your bet. - text_jump UnknownText_0x1c57ce - db "@" -; 0xe02da - -.CheckTheCard: ; e02da - xor a - ld [hVBlankCounter], a - call Functione0960 - call WaitSFX - ld de, SFX_CHOOSE_A_CARD - call PlaySFX - call WaitSFX - ld a, [wc6e8] - ld e, a - ld d, 0 - ld hl, wc6d0 -rept 2 - add hl, de -endr - ld a, [wcf66] - ld e, a - add hl, de - ld a, [hl] - ld [CurEnemyMoveNum], a - ld e, a - ld hl, wc6ea - add hl, de - ld [hl], $1 - call Functione03ac - call Functione03ec - call Function3200 - call .Increment - ret -; e0314 - -.TabulateTheResult: ; e0314 - call Functione0637 - call WaitPressAorB_BlinkCursor - call .Increment - ret -; e031e - -.PlayAgain: ; e031e - call ClearSprites - ld hl, .PlayAgainText - call Functione0489 - call YesNoBox - jr nc, .Continue - call .Increment - ret - -.Continue - ld a, [wc6e8] - inc a - ld [wc6e8], a - cp $c - jr c, .KeepTheCurrentDeck - call Functione04c1 - ld a, $1 - ld [hBGMapMode], a - call Functione0366 - ld hl, .CardsShuffledText - call PrintText - jr .LoopAround - -.KeepTheCurrentDeck - call Functione0534 - -.LoopAround - ld a, $1 - ld [wJumptableIndex], a - ret -; e0356 - -.PlayAgainText: ; 0xe0356 - ; Want to play again? - text_jump UnknownText_0x1c57df - db "@" -; 0xe035b - -.CardsShuffledText: ; 0xe035b - ; The cards have been shuffled. - text_jump UnknownText_0x1c57f4 - db "@" -; 0xe0360 - -.Quit: ; e0360 - ld hl, wJumptableIndex - set 7, [hl] - ret -; e0366 - -Functione0366: ; e0366 - ld hl, wc6d0 - ld bc, $18 - xor a - call ByteFill - ld de, wc6d0 - ld c, $17 -.asm_e0375 - call Random - and $1f - cp $18 - jr nc, .asm_e0375 - ld l, a - ld h, $0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0375 - ld [hl], c - dec c - jr nz, .asm_e0375 - xor a - ld [wc6e8], a - ld hl, wc6ea - ld bc, $18 - call ByteFill - ret -; e0398 - -Functione0398: ; e0398 - ld hl, 0 - ld bc, 6 - ld a, [wcf64] - call AddNTimes - ld b, $0 - ld a, [wcf65] - ld c, a - add hl, bc - ret -; e03ac - -Functione03ac: ; e03ac - ld a, [wcf66] - and a - jr nz, .asm_e03ba - hlcoord 2, 0 - ld bc, $1018 - jr .asm_e03c0 - -.asm_e03ba - hlcoord 2, 6 - ld bc, $4018 - -.asm_e03c0 - ret -; e03c1 - -Functione03c1: ; e03c1 - xor a - ld [hBGMapMode], a - ld de, Unknown_e03ce - lb bc, 6, 5 - call Functione04f7 - ret -; e03ce - -Unknown_e03ce: ; e03ce - db $08, $09, $09, $09, $0a - db $0b, $28, $2b, $28, $0c - db $0b, $2c, $2d, $2e, $0c - db $0b, $2f, $30, $31, $0c - db $0b, $32, $33, $34, $0c - db $0d, $0e, $0e, $0e, $0f -; e03ec - -Functione03ec: ; e03ec - xor a - ld [hBGMapMode], a - push hl - push hl - ld de, Unknown_e043b - lb bc, 6, 5 - call Functione04f7 - ld a, [CurEnemyMoveNum] - ld e, a - ld d, 0 - ld hl, Unknown_e0459 -rept 2 - add hl, de -endr - ld a, [hli] - ld e, a - ld d, [hl] - pop hl - ld bc, $17 - add hl, bc - ld [hl], e - ld bc, SCREEN_HEIGHT - add hl, bc - ld a, d - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e0418 - push hl - ld c, $3 -.asm_e041b - ld [hli], a - inc a - dec c - jr nz, .asm_e041b - pop hl - add hl, de - dec b - jr nz, .asm_e0418 - pop hl - ld a, [hCGB] - and a - ret z - ld de, AttrMap - TileMap - add hl, de - ld a, [CurEnemyMoveNum] - and 3 - inc a - lb bc, 6, 5 - call Functione04e7 - ret -; e043b - -Unknown_e043b: ; e043b - db $18, $19, $19, $19, $1a - db $1b, $35, $7f, $7f, $1c - db $0b, $28, $28, $28, $0c - db $0b, $28, $28, $28, $0c - db $0b, $28, $28, $28, $0c - db $1d, $1e, $1e, $1e, $1f -; e0459 - -Unknown_e0459: ; e0459 - db $f7,$4e, $f7,$57, $f7,$69, $f7,$60 - db $f8,$4e, $f8,$57, $f8,$69, $f8,$60 - db $f9,$4e, $f9,$57, $f9,$69, $f9,$60 - db $fa,$4e, $fa,$57, $fa,$69, $fa,$60 - db $fb,$4e, $fb,$57, $fb,$69, $fb,$60 - db $fc,$4e, $fc,$57, $fc,$69, $fc,$60 -; e0489 - -Functione0489: ; e0489 - push hl - hlcoord 0, 12 - ld b, $4 - ld c, $12 - call TextBox - pop hl - call PrintTextBoxText - call Functione049c - ret -; e049c - -Functione049c: ; e049c - hlcoord 9, 15 - ld b, $1 - ld c, $9 - call TextBox - hlcoord 10, 16 - ld de, String_e04bc - call PlaceString - hlcoord 15, 16 - ld de, Coins - lb bc, PRINTNUM_LEADINGZEROS | 2, 4 - call PrintNum - ret -; e04bc - -String_e04bc: - db "COIN@" -; e04c1 - -Functione04c1: ; e04c1 (38:44c1) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - ld a, $29 - call ByteFill - hlcoord 9, 0 - ld de, Unknown_e110c - lb bc, 12, 11 - call Functione04f7 - hlcoord 0, 12 - lb bc, 4, 18 - call TextBox - ret -; e04e5 (38:44e5) - -Functione04e5: ; e04e5 - ld a, $29 - -Functione04e7: ; e04e7 (38:44e7) - push bc - push hl -.asm_e04e9 - ld [hli], a - dec c - jr nz, .asm_e04e9 - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, Functione04e7 - ret - -Functione04f7: ; e04f7 (38:44f7) - push bc - push hl -.asm_e04f9 - ld a, [de] - inc de - ld [hli], a - dec c - jr nz, .asm_e04f9 - pop hl - ld bc, $14 - add hl, bc - pop bc - dec b - jr nz, Functione04f7 - ret -; e0509 (38:4509) - -Functione0509: ; e0509 - ld de, Sprites - ld a, [hli] -.asm_e050d - push af - ld a, [hli] - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - pop af - dec a - jr nz, .asm_e050d - ret -; e0521 - -Functione0521: ; e0521 (38:4521) - ld de, VTiles1 tile $76 - ld hl, $8f62 - ld bc, $9e - call CopyBytes - ld hl, $8ffe - xor a - ld [hli], a - ld [hl], a - ret -; e0534 (38:4534) - -Functione0534: ; e0534 - xor a - ld [hBGMapMode], a - ld a, [CurEnemyMoveNum] - ld e, a - ld d, 0 - and 3 - ld c, a - ld b, 0 - ld a, e - and $1c - srl a - add Jumptable_e0553 % $100 - ld l, a - ld a, 0 - adc Jumptable_e0553 / $100 - ld h, a - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e0553 - -Jumptable_e0553: ; e0553 - dw Functione055f - dw Functione0583 - dw Functione05a7 - dw Functione05cb - dw Functione05ef - dw Functione0613 -; e055f - -Functione055f: ; e055f - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0575 - hlcoord 13, 3 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $37 - ret - -.asm_e0575 - hlcoord 13, 3 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e0583 - -Functione0583: ; e0583 - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0599 - hlcoord 13, 4 -rept 2 - add hl, bc -endr - ld [hl], $3b - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e0599 - hlcoord 13, 4 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e05a7 - -Functione05a7: ; e05a7 - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e05bd - hlcoord 13, 6 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $38 - ret - -.asm_e05bd - hlcoord 13, 6 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e05cb - -Functione05cb: ; e05cb - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e05e1 - hlcoord 13, 7 -rept 2 - add hl, bc -endr - ld [hl], $3c - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e05e1 - hlcoord 13, 7 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e05ef - -Functione05ef: ; e05ef - ld hl, wc6e6 + 8 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0605 - hlcoord 13, 9 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $39 - ret - -.asm_e0605 - hlcoord 13, 9 -rept 2 - add hl, bc -endr - ld [hl], $36 - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3d - ret -; e0613 - -Functione0613: ; e0613 - ld hl, wc6e6 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e0629 - hlcoord 13, 10 -rept 2 - add hl, bc -endr - ld [hl], $3c - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret - -.asm_e0629 - hlcoord 13, 10 -rept 2 - add hl, bc -endr - ld [hl], $3d - ld bc, SCREEN_WIDTH - add hl, bc - ld [hl], $3a - ret -; e0637 - -Functione0637: ; e0637 - call Functione0398 - add hl, hl - ld de, Jumptable_e0643 - add hl, de - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e0643 - -Jumptable_e0643: ; e0643 - dw Functione06a3 - dw Functione06a3 - dw Functione06a6 - dw Functione06a6 - dw Functione06b0 - dw Functione06b0 - dw Functione06a3 - dw Functione06a3 - dw Functione06ec - dw Functione06f6 - dw Functione0702 - dw Functione070e - dw Functione06c2 - dw Functione0722 - dw Functione0770 - dw Functione0774 - dw Functione0778 - dw Functione077c - dw Functione06c2 - dw Functione072c - dw Functione0780 - dw Functione0784 - dw Functione0788 - dw Functione078c - dw Functione06cc - dw Functione0738 - dw Functione0790 - dw Functione0794 - dw Functione0798 - dw Functione079c - dw Functione06cc - dw Functione0744 - dw Functione07a0 - dw Functione07a4 - dw Functione07a8 - dw Functione07ac - dw Functione06d8 - dw Functione0750 - dw Functione07b0 - dw Functione07b4 - dw Functione07b8 - dw Functione07bc - dw Functione06d8 - dw Functione075c - dw Functione07c0 - dw Functione07c4 - dw Functione07c8 - dw Functione07cc -; e06a3 - -Functione06a3: ; e06a3 - jp Functione07db -; e06a6 - -Functione06a6: ; e06a6 - ld a, [CurEnemyMoveNum] - and $2 - jp nz, Functione07db - jr Functione06ba - -Functione06b0: ; e06b0 - ld a, [CurEnemyMoveNum] - and $2 - jr nz, Functione06ba - jp Functione07db - -Functione06ba: ; e06ba - ld c, $6 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e06c2 - -Functione06c2: ; e06c2 - ld a, [CurEnemyMoveNum] - and $18 - jr z, Functione06e4 - jp Functione07db - -Functione06cc: ; e06cc - ld a, [CurEnemyMoveNum] - and $18 - cp $8 - jr z, Functione06e4 - jp Functione07db - -Functione06d8: ; e06d8 - ld a, [CurEnemyMoveNum] - and $18 - cp $10 - jr z, Functione06e4 - jp Functione07db - -Functione06e4: ; e06e4 - ld c, $9 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e06ec - -Functione06ec: ; e06ec - ld a, [CurEnemyMoveNum] - and $3 - jr z, Functione071a - jp Functione07db - -Functione06f6: ; e06f6 - ld a, [CurEnemyMoveNum] - and $3 - cp $1 - jr z, Functione071a - jp Functione07db - -Functione0702: ; e0702 - ld a, [CurEnemyMoveNum] - and $3 - cp $2 - jr z, Functione071a - jp Functione07db - -Functione070e: ; e070e - ld a, [CurEnemyMoveNum] - and $3 - cp $3 - jr z, Functione071a - jp Functione07db - -Functione071a: ; e071a - ld c, $c - ld de, SFX_2ND_PLACE - jp Functione07eb -; e0722 - -Functione0722: ; e0722 - ld a, [CurEnemyMoveNum] - and $1c - jr z, Functione0768 - jp Functione07db - -Functione072c: ; e072c - ld a, [CurEnemyMoveNum] - and $1c - cp $4 - jr z, Functione0768 - jp Functione07db - -Functione0738: ; e0738 - ld a, [CurEnemyMoveNum] - and $1c - cp $8 - jr z, Functione0768 - jp Functione07db - -Functione0744: ; e0744 - ld a, [CurEnemyMoveNum] - and $1c - cp $c - jr z, Functione0768 - jp Functione07db - -Functione0750: ; e0750 - ld a, [CurEnemyMoveNum] - and $1c - cp $10 - jr z, Functione0768 - jp Functione07db - -Functione075c: ; e075c - ld a, [CurEnemyMoveNum] - and $1c - cp $14 - jr z, Functione0768 - jp Functione07db - -Functione0768: ; e0768 - ld c, $12 - ld de, SFX_2ND_PLACE - jp Functione07eb -; e0770 - - -Functione0770: ; e0770 - ld e, $0 - jr Functione07ce - -Functione0774: ; e0774 - ld e, $1 - jr Functione07ce - -Functione0778: ; e0778 - ld e, $2 - jr Functione07ce - -Functione077c: ; e077c - ld e, $3 - jr Functione07ce - -Functione0780: ; e0780 - ld e, $4 - jr Functione07ce - -Functione0784: ; e0784 - ld e, $5 - jr Functione07ce - -Functione0788: ; e0788 - ld e, $6 - jr Functione07ce - -Functione078c: ; e078c - ld e, $7 - jr Functione07ce - -Functione0790: ; e0790 - ld e, $8 - jr Functione07ce - -Functione0794: ; e0794 - ld e, $9 - jr Functione07ce - -Functione0798: ; e0798 - ld e, $a - jr Functione07ce - -Functione079c: ; e079c - ld e, $b - jr Functione07ce - -Functione07a0: ; e07a0 - ld e, $c - jr Functione07ce - -Functione07a4: ; e07a4 - ld e, $d - jr Functione07ce - -Functione07a8: ; e07a8 - ld e, $e - jr Functione07ce - -Functione07ac: ; e07ac - ld e, $f - jr Functione07ce - -Functione07b0: ; e07b0 - ld e, $10 - jr Functione07ce - -Functione07b4: ; e07b4 - ld e, $11 - jr Functione07ce - -Functione07b8: ; e07b8 - ld e, $12 - jr Functione07ce - -Functione07bc: ; e07bc - ld e, $13 - jr Functione07ce - -Functione07c0: ; e07c0 - ld e, $14 - jr Functione07ce - -Functione07c4: ; e07c4 - ld e, $15 - jr Functione07ce - -Functione07c8: ; e07c8 - ld e, $16 - jr Functione07ce - -Functione07cc: ; e07cc - ld e, $17 - -Functione07ce: ; e07ce - ld a, [CurEnemyMoveNum] - cp e - jr nz, Functione07db - ld c, $48 - ld de, SFX_2ND_PLACE - jr Functione07eb - -Functione07db: ; e07db - ld de, SFX_WRONG - call PlaySFX - ld hl, UnknownText_0xe0816 - call Functione0489 - call WaitSFX - ret - -Functione07eb: ; e07eb - push bc - push de - ld hl, UnknownText_0xe0811 - call Functione0489 - pop de - call PlaySFX - call WaitSFX - pop bc -.asm_e07fb - push bc - call Functione0833 - jr c, .asm_e0804 - call Functione081b - -.asm_e0804 - call Functione049c - ld c, 2 - call DelayFrames - pop bc - dec c - jr nz, .asm_e07fb - ret -; e0811 - -UnknownText_0xe0811: ; 0xe0811 - ; Yeah! - text_jump UnknownText_0x1c5813 - db "@" -; 0xe0816 - -UnknownText_0xe0816: ; 0xe0816 - ; Darn… - text_jump UnknownText_0x1c581a - db "@" -; 0xe081b - -Functione081b: ; e081b - ld a, [Coins] - ld h, a - ld a, [Coins + 1] - ld l, a - inc hl - ld a, h - ld [Coins], a - ld a, l - ld [Coins + 1], a - ld de, SFX_PAY_DAY - call PlaySFX - ret -; e0833 - -Functione0833: ; e0833 - ld a, [Coins] - cp 9999 / $100 - jr c, .asm_e0847 - jr z, .asm_e083e - jr .asm_e0845 - -.asm_e083e - ld a, [Coins + 1] - cp 9999 % $100 - jr c, .asm_e0847 - -.asm_e0845 - scf - ret - -.asm_e0847 - and a - ret -; e0849 - -Functione0849: ; e0849 - call Functione03ac - ld hl, Unknown_e0853 - call Functione0509 - ret -; e0853 - -Unknown_e0853: ; e0853 - db 18 - db $00, $00, $04, $00 - db $00, $08, $06, $00 - db $00, $10, $06, $00 - db $00, $18, $06, $00 - db $00, $20, $04, $20 - db $08, $00, $05, $00 - db $08, $20, $05, $20 - db $10, $00, $05, $00 - db $10, $20, $05, $20 - db $18, $00, $05, $00 - db $18, $20, $05, $20 - db $20, $00, $05, $00 - db $20, $20, $05, $20 - db $28, $00, $04, $40 - db $28, $08, $06, $40 - db $28, $10, $06, $40 - db $28, $18, $06, $40 - db $28, $20, $04, $60 -; e089c - -Functione089c: ; e089c - ld hl, hJoyLast - ld a, [hl] - and D_LEFT - jp nz, Functione08b8 - ld a, [hl] - and D_RIGHT - jp nz, Functione08ef - ld a, [hl] - and D_UP - jp nz, Functione090a - ld a, [hl] - and D_DOWN - jp nz, Functione093d - ret -; e08b8 - -Functione08b8: ; e08b8 - ld hl, wcf65 - ld a, [wcf64] - and a - jr z, .asm_e08d5 - cp $1 - jr z, .asm_e08cc - ld a, [hl] - and a - ret z - dec [hl] - jp Functione0959 - -.asm_e08cc - ld a, [hl] - cp $3 - jr c, .asm_e08e2 - dec [hl] - jp Functione0959 - -.asm_e08d5 - ld a, [hl] - and $e - ld [hl], a - cp $3 - jr c, .asm_e08e2 -rept 2 - dec [hl] -endr - jp Functione0959 - -.asm_e08e2 - ld a, $2 - ld [wcf64], a - ld a, $1 - ld [wcf65], a - jp Functione0959 -; e08ef - -Functione08ef: ; e08ef - ld hl, wcf65 - ld a, [wcf64] - and a - jr z, .asm_e08ff - ld a, [hl] - cp $5 - ret nc - inc [hl] - jr Functione0959 - -.asm_e08ff - ld a, [hl] - and $e - ld [hl], a - cp $4 - ret nc -rept 2 - inc [hl] -endr - jr Functione0959 - -Functione090a: ; e090a - ld hl, wcf64 - ld a, [wcf65] - and a - jr z, .asm_e0925 - cp $1 - jr z, .asm_e091d - ld a, [hl] - and a - ret z - dec [hl] - jr Functione0959 - -.asm_e091d - ld a, [hl] - cp $3 - jr c, .asm_e0931 - dec [hl] - jr Functione0959 - -.asm_e0925 - ld a, [hl] - and $e - ld [hl], a - cp $3 - jr c, .asm_e0931 -rept 2 - dec [hl] -endr - jr Functione0959 - -.asm_e0931 - ld a, $1 - ld [wcf64], a - ld a, $2 - ld [wcf65], a - jr Functione0959 - -Functione093d: ; e093d - ld hl, wcf64 - ld a, [wcf65] - and a - jr z, .asm_e0950 - ld hl, wcf64 - ld a, [hl] - cp $7 - ret nc - inc [hl] - jr Functione0959 - -.asm_e0950 - ld a, [hl] - and $e - ld [hl], a - cp $6 - ret nc -rept 2 - inc [hl] -endr - -Functione0959: ; e0959 - ld de, SFX_POKEBALLS_PLACED_ON_TABLE - call PlaySFX - ret -; e0960 - -Functione0960: ; e0960 - call ClearSprites - ld a, [hCGB] - and a - jr nz, .asm_e096d - ld a, [hVBlankCounter] - and $4 - ret nz - -.asm_e096d - call Functione0398 -rept 2 - add hl, hl -endr - ld de, Unknown_e0981 - add hl, de - ld a, [hli] - ld c, a - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - call Functione0509 - ret -; e0981 - -Unknown_e0981: ; e0981 - dbbw $58, $10, Unknown_e0c26 - dbbw $60, $10, Unknown_e0c26 - dbbw $68, $10, Unknown_e0b8d - dbbw $68, $10, Unknown_e0b8d - dbbw $88, $10, Unknown_e0b8d - dbbw $88, $10, Unknown_e0b8d - - dbbw $58, $18, Unknown_e0c26 - dbbw $60, $18, Unknown_e0c26 - dbbw $68, $18, Unknown_e0a5a - dbbw $78, $18, Unknown_e0a5a - dbbw $88, $18, Unknown_e0a5a - dbbw $98, $18, Unknown_e0a5a - - dbbw $58, $28, Unknown_e0b14 - dbbw $60, $28, Unknown_e0ac3 - dbbw $68, $28, Unknown_e0a41 - dbbw $78, $28, Unknown_e0a41 - dbbw $88, $28, Unknown_e0a41 - dbbw $98, $28, Unknown_e0a41 - dbbw $58, $28, Unknown_e0b14 - - dbbw $60, $34, Unknown_e0ac3 - dbbw $68, $34, Unknown_e0a41 - dbbw $78, $34, Unknown_e0a41 - dbbw $88, $34, Unknown_e0a41 - dbbw $98, $34, Unknown_e0a41 - - dbbw $58, $40, Unknown_e0b14 - dbbw $60, $40, Unknown_e0ac3 - dbbw $68, $40, Unknown_e0a41 - dbbw $78, $40, Unknown_e0a41 - dbbw $88, $40, Unknown_e0a41 - dbbw $98, $40, Unknown_e0a41 - dbbw $58, $40, Unknown_e0b14 - - dbbw $60, $4c, Unknown_e0ac3 - dbbw $68, $4c, Unknown_e0a41 - dbbw $78, $4c, Unknown_e0a41 - dbbw $88, $4c, Unknown_e0a41 - dbbw $98, $4c, Unknown_e0a41 - - dbbw $58, $58, Unknown_e0b14 - dbbw $60, $58, Unknown_e0ac3 - dbbw $68, $58, Unknown_e0a41 - dbbw $78, $58, Unknown_e0a41 - dbbw $88, $58, Unknown_e0a41 - dbbw $98, $58, Unknown_e0a41 - dbbw $58, $58, Unknown_e0b14 - - dbbw $60, $64, Unknown_e0ac3 - dbbw $68, $64, Unknown_e0a41 - dbbw $78, $64, Unknown_e0a41 - dbbw $88, $64, Unknown_e0a41 - dbbw $98, $64, Unknown_e0a41 -; e0a41 - -Unknown_e0a41: ; e0a41 - db 6 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $03, $80 - db $05, $ff, $00, $c0 - db $05, $00, $02, $c0 - db $05, $08, $03, $80 - -Unknown_e0a5a: ; e0a5a - db 26 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $00, $a0 - db $08, $ff, $01, $80 - db $08, $08, $01, $a0 - db $10, $ff, $01, $80 - db $10, $08, $03, $80 - db $18, $ff, $01, $80 - db $18, $08, $03, $80 - db $20, $ff, $01, $80 - db $20, $08, $03, $80 - db $28, $ff, $01, $80 - db $28, $08, $03, $80 - db $30, $ff, $01, $80 - db $30, $08, $03, $80 - db $38, $ff, $01, $80 - db $38, $08, $03, $80 - db $40, $ff, $01, $80 - db $40, $08, $03, $80 - db $48, $ff, $01, $80 - db $48, $08, $03, $80 - db $50, $ff, $01, $80 - db $50, $08, $03, $80 - db $51, $ff, $00, $c0 - db $51, $00, $02, $c0 - db $51, $08, $03, $80 - -Unknown_e0ac3: ; e0ac3 - db 20 - db $00, $ff, $00, $80 - db $00, $00, $02, $80 - db $00, $08, $02, $80 - db $00, $10, $03, $80 - db $00, $18, $02, $80 - db $00, $20, $03, $80 - db $00, $28, $02, $80 - db $00, $30, $03, $80 - db $00, $38, $02, $80 - db $00, $40, $03, $80 - db $05, $ff, $00, $c0 - db $05, $00, $02, $c0 - db $05, $08, $02, $c0 - db $05, $10, $03, $80 - db $05, $18, $02, $c0 - db $05, $20, $03, $80 - db $05, $28, $02, $c0 - db $05, $30, $03, $80 - db $05, $38, $02, $c0 - db $05, $40, $03, $80 - -Unknown_e0b14: ; e0b14 - db 30 - db $00, $00, $00, $80 - db $00, $08, $02, $80 - db $00, $10, $02, $80 - db $00, $18, $03, $80 - db $00, $20, $02, $80 - db $00, $28, $03, $80 - db $00, $30, $02, $80 - db $00, $38, $03, $80 - db $00, $40, $02, $80 - db $00, $48, $03, $80 - db $08, $00, $01, $80 - db $08, $18, $03, $80 - db $08, $28, $03, $80 - db $08, $38, $03, $80 - db $08, $48, $03, $80 - db $10, $00, $01, $80 - db $10, $18, $03, $80 - db $10, $28, $03, $80 - db $10, $38, $03, $80 - db $10, $48, $03, $80 - db $11, $00, $00, $c0 - db $11, $08, $02, $c0 - db $11, $10, $02, $c0 - db $11, $18, $03, $80 - db $11, $20, $03, $80 - db $11, $28, $03, $80 - db $11, $30, $03, $80 - db $11, $38, $03, $80 - db $11, $40, $03, $80 - db $11, $48, $03, $80 - -Unknown_e0b8d: ; e0b8d - db 38 - db $00, $ff, $00, $80 - db $00, $18, $00, $a0 - db $08, $ff, $01, $80 - db $08, $18, $01, $a0 - db $10, $ff, $01, $80 - db $10, $18, $01, $a0 - db $18, $ff, $01, $80 - db $18, $08, $03, $80 - db $18, $18, $03, $80 - db $20, $ff, $01, $80 - db $20, $08, $03, $80 - db $20, $18, $03, $80 - db $28, $ff, $01, $80 - db $28, $08, $03, $80 - db $28, $18, $03, $80 - db $30, $ff, $01, $80 - db $30, $08, $03, $80 - db $30, $18, $03, $80 - db $38, $ff, $01, $80 - db $38, $08, $03, $80 - db $38, $18, $03, $80 - db $40, $ff, $01, $80 - db $40, $08, $03, $80 - db $40, $18, $03, $80 - db $48, $ff, $01, $80 - db $48, $08, $03, $80 - db $48, $18, $03, $80 - db $50, $ff, $01, $80 - db $50, $08, $03, $80 - db $50, $18, $03, $80 - db $58, $ff, $01, $80 - db $58, $08, $03, $80 - db $58, $18, $03, $80 - db $59, $ff, $00, $c0 - db $59, $00, $02, $c0 - db $59, $08, $03, $c0 - db $59, $10, $02, $c0 - db $59, $18, $03, $e0 - -Unknown_e0c26: ; e0c26 - db 4 - db $00, $00, $00, $80 - db $00, $08, $00, $a0 - db $08, $00, $00, $c0 - db $08, $08, $00, $e0 -; e0c37 - -Functione0c37: ; e0c37 (38:4c37) - ld a, [hCGB] - and a - ret z - hlcoord 0, 0, AttrMap - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - hlcoord 12, 1, AttrMap - lb bc, 2, 2 - ld a, $1 - call Functione04e7 - hlcoord 14, 1, AttrMap - lb bc, 2, 2 - ld a, $2 - call Functione04e7 - hlcoord 16, 1, AttrMap - lb bc, 2, 2 - ld a, $3 - call Functione04e7 - hlcoord 18, 1, AttrMap - lb bc, 2, 2 - ld a, $4 - call Functione04e7 - hlcoord 9, 0, AttrMap - lb bc, 12, 1 - ld a, $1 - call Functione04e7 - ld a, [rSVBK] - push af - ld a, $5 - ld [rSVBK], a - ld hl, Palette_e0c93 - ld de, Unkn1Pals - ld bc, $48 - call CopyBytes - pop af - ld [rSVBK], a - ret -; e0c93 (38:4c93) - -Palette_e0c93: ; e0c93 - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 29, 25, 00 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 13, 30 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 08, 17, 30 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 08, 31, 08 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 17, 07, 31 - RGB 06, 19, 08 - RGB 00, 00, 00 - - RGB 31, 31, 31 - RGB 31, 31, 31 - RGB 31, 00, 00 - RGB 31, 00, 00 -; e0cdb - -LZ_e0cdb: ; e0cdb -INCBIN "gfx/unknown/0e0cdb.2bpp.lz" - -GFX_e0cf6: ; e0cf6 -INCBIN "gfx/unknown/0e0cf6.2bpp" - -GFX_e0d06: ; e0d06 -INCBIN "gfx/unknown/0e0d06.2bpp" - -LZ_e0d16: ; e0d16 -INCBIN "gfx/unknown/0e0d16.2bpp.lz" - -LZ_e0ea8: ; e0ea8 -INCBIN "gfx/unknown/0e0ea8.2bpp.lz" - -Unknown_e110c: ; e110c - db $ef, $15, $27, $2a, $2a, $06, $27, $2a, $2a, $06, $27 - db $ef, $07, $27, $3e, $3f, $42, $43, $46, $47, $4a, $4b - db $ef, $17, $26, $40, $41, $44, $45, $48, $49, $4c, $4d - db $ef, $25, $04, $00, $01, $00, $01, $00, $01, $00, $01 - db $ef, $05, $14, $10, $11, $10, $11, $10, $11, $10, $11 - db $ef, $16, $24, $20, $21, $20, $21, $20, $21, $20, $21 - db $ef, $25, $04, $00, $02, $00, $02, $00, $02, $00, $02 - db $ef, $05, $14, $10, $12, $10, $12, $10, $12, $10, $12 - db $ef, $16, $24, $20, $22, $20, $22, $20, $22, $20, $22 - db $ef, $25, $04, $00, $03, $00, $03, $00, $03, $00, $03 - db $ef, $05, $14, $10, $13, $10, $13, $10, $13, $10, $13 - db $ef, $16, $24, $20, $23, $20, $23, $20, $23, $20, $23 -; e1190 - -Functione1190: ; e1190 - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - call WhiteBGMap - call ClearTileMap - call ClearSprites - xor a - ld [hBGMapMode], a - call DisableLCD - ld hl, wc608 - ld bc, $1e0 - xor a - call ByteFill - ld hl, GFX_e17c5 - ld de, VTiles1 tile $60 - ld bc, $40 - call CopyBytes - ld hl, LZ_e1805 - ld de, VTiles1 tile $6d - call Decompress - call Functione17a3 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $ee - call ByteFill - hlcoord 4, 3 - lb bc, 12, 12 - ld a, $ef - call Functione13ee - call Functione124e - call Functione13fe - call Functione127d - xor a - ld [hSCY], a - ld [hSCX], a - ld [rWY], a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld a, $93 - ld [rLCDC], a - call WaitBGMap - ld b, $18 - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $24 - call Functioncf8 - xor a - ld [wd0ec], a - call DelayFrame -.asm_e1217 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e123d - call Functione12ca - ld a, [wcf64] - and a - jr nz, .asm_e1230 - ld a, [hVBlankCounter] - and $10 - jr z, .asm_e1235 - -.asm_e1230 - call Functione14d9 - jr .asm_e1238 - -.asm_e1235 - call ClearSprites - -.asm_e1238 - call DelayFrame - jr .asm_e1217 - -.asm_e123d - pop af - ld [hInMenu], a - call WhiteBGMap - call ClearTileMap - call ClearSprites - ld a, $e3 - ld [rLCDC], a - ret -; e124e - -Functione124e: ; e124e - ld c, $1 - ld b, $10 -.asm_e1252 - call Random - and $f - ld hl, Unknown_e126d - ld e, a - ld d, $0 - add hl, de - ld e, [hl] - ld hl, wc6d0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e1252 - ld [hl], c - inc c - dec b - jr nz, .asm_e1252 - ret -; e126d - -Unknown_e126d: ; e126d - db $00, $01, $02, $03 - db $04, $05, $06, $0b - db $0c, $11, $12, $17 - db $18, $1d, $1e, $23 -; e127d - -Functione127d: ; e127d - call Functione128d - hlcoord 5, 16 - ld a, $f6 - ld c, $a -.asm_e1287 - ld [hli], a - inc a - dec c - jr nz, .asm_e1287 - ret -; e128d - -Functione128d: ; e128d - hlcoord 4, 15 - ld a, $f0 - ld [hli], a - ld bc, $a - ld a, $f1 - call ByteFill - hlcoord 15, 15 - ld a, $f2 - ld [hli], a - hlcoord 4, 16 - ld a, $f3 - ld [hli], a - ld bc, $a - ld a, $ef - call ByteFill - hlcoord 15, 16 - ld a, $f3 - ld [hli], a - hlcoord 4, 17 - ld a, $f4 - ld [hli], a - ld bc, $a - ld a, $f1 - call ByteFill - hlcoord 15, 17 - ld a, $f5 - ld [hl], a - ret -; e12ca - -Functione12ca: ; e12ca - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_e12d9 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e12d9 - -Jumptable_e12d9: ; e12d9 - dw Functione12db -; e12db - -Functione12db: ; e12db - ld a, [hJoyPressed] - and START - jp nz, Functione13de - ld a, [hJoyPressed] - and A_BUTTON - jp nz, Functione1376 - ld hl, hJoyLast - ld a, [hl] - and D_UP - jr nz, .asm_e1301 - ld a, [hl] - and D_DOWN - jr nz, .asm_e130d - ld a, [hl] - and D_LEFT - jr nz, .asm_e1325 - ld a, [hl] - and D_RIGHT - jr nz, .asm_e1345 - ret - -.asm_e1301 - ld hl, wcf65 - ld a, [hl] - cp $6 - ret c - sub $6 - ld [hl], a - jr .asm_e1364 - -.asm_e130d - ld hl, wcf65 - ld a, [hl] - cp $19 - ret z - cp $1a - ret z - cp $1b - ret z - cp $1c - ret z - cp $1e - ret nc - add $6 - ld [hl], a - jr .asm_e1364 - -.asm_e1325 - ld hl, wcf65 - ld a, [hl] - and a - ret z - cp $6 - ret z - cp $c - ret z - cp $12 - ret z - cp $18 - ret z - cp $1e - ret z - cp $23 - jr z, .asm_e1341 - dec [hl] - jr .asm_e1364 - -.asm_e1341 - ld [hl], $1e - jr .asm_e1364 - -.asm_e1345 - ld hl, wcf65 - ld a, [hl] - cp $5 - ret z - cp $b - ret z - cp $11 - ret z - cp $17 - ret z - cp $1d - ret z - cp $23 - ret z - cp $1e - jr z, .asm_e1362 - inc [hl] - jr .asm_e1364 - -.asm_e1362 - ld [hl], $23 - -.asm_e1364 - ld a, [wcf64] - and a - jr nz, .asm_e136f - ld de, SFX_POUND - jr .asm_e1372 - -.asm_e136f - ld de, SFX_MOVE_PUZZLE_PIECE - -.asm_e1372 - call PlaySFX - ret -; e1376 - -Functione1376: ; e1376 - ld a, [wcf64] - and a - jr nz, .asm_e139f - call Functione1475 - and a - jr z, Functione13e4 - ld de, SFX_MEGA_KICK - call PlaySFX - ld [hl], $0 - ld [wcf66], a - call Functione14d9 - call Functione1441 - call WaitBGMap - call WaitSFX - ld a, $1 - ld [wcf64], a - ret - -.asm_e139f - call Functione1475 - and a - jr nz, Functione13e4 - ld de, SFX_PLACE_PUZZLE_PIECE_DOWN - call PlaySFX - ld a, [wcf66] - ld [hl], a - call Functione141f - call WaitBGMap - xor a - ld [wcf66], a - call Functione14d9 - xor a - ld [wcf64], a - call WaitSFX - call Functione14a0 - ret nc - call Functione128d - call ClearSprites - ld de, SFX_1ST_PLACE - call PlaySFX - call WaitSFX - call SimpleWaitPressAorB - ld a, $1 - ld [wd0ec], a - -Functione13de: ; e13de - ld hl, wJumptableIndex - set 7, [hl] - ret - -Functione13e4: ; e13e4 - ld de, SFX_WRONG - call PlaySFX - call WaitSFX - ret -; e13ee - -Functione13ee: ; e13ee - ld de, SCREEN_WIDTH -.asm_e13f1 - push bc - push hl -.asm_e13f3 - ld [hli], a - dec c - jr nz, .asm_e13f3 - pop hl - add hl, de - pop bc - dec b - jr nz, .asm_e13f1 - ret -; e13fe - -Functione13fe: ; e13fe - xor a - ld [wcf65], a - ld c, $24 -.asm_e1404 - push bc - call Functione1475 - ld [wcf66], a - and a - jr z, .asm_e1413 - call Functione141f - jr .asm_e1416 - -.asm_e1413 - call Functione1441 - -.asm_e1416 - ld hl, wcf65 - inc [hl] - pop bc - dec c - jr nz, .asm_e1404 - ret -; e141f - -Functione141f: ; e141f - ld a, $2 - call Functione1463 - ld a, [hli] - ld h, [hl] - ld l, a - push hl - call Functione1481 - pop hl - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e1431 - ld c, $3 - push hl -.asm_e1434 - ld [hli], a - inc a - dec c - jr nz, .asm_e1434 - add $9 - pop hl - add hl, de - dec b - jr nz, .asm_e1431 - ret -; e1441 - -Functione1441: ; e1441 - ld a, $2 - call Functione1463 - ld a, [hli] - ld h, [hl] - ld l, a - push hl - ld a, $4 - call Functione1463 - ld a, [hl] - pop hl - ld de, SCREEN_WIDTH - ld b, $3 -.asm_e1456 - ld c, $3 - push hl -.asm_e1459 - ld [hli], a - dec c - jr nz, .asm_e1459 - pop hl - add hl, de - dec b - jr nz, .asm_e1456 - ret -; e1463 - -Functione1463: ; e1463 - ld e, a - ld d, 0 - ld hl, Unknown_e1559 - add hl, de - ld a, [wcf65] - ld e, a -rept 4 - add hl, de -endr -rept 2 - add hl, de -endr - ret -; e1475 - -Functione1475: ; e1475 - ld hl, wc6d0 - ld a, [wcf65] - ld e, a - ld d, $0 - add hl, de - ld a, [hl] - ret -; e1481 - -Functione1481: ; e1481 - ld a, [wcf66] - ld hl, Unknown_e148f - add l - ld l, a - ld a, $0 - adc h - ld h, a - ld a, [hl] - ret -; e148f - -Unknown_e148f: ; e148f - db $e0 - db $00, $03, $06, $09 - db $24, $27, $2a, $2d - db $48, $4b, $4e, $51 - db $6c, $6f, $72, $75 -; e14a0 - -Functione14a0: ; e14a0 - ld hl, Unknown_e14b5 - ld de, wc6d0 - ld c, $24 -.asm_e14a8 - ld a, [de] - cp [hl] - jr nz, .asm_e14b3 - inc de - inc hl - dec c - jr nz, .asm_e14a8 - scf - ret - -.asm_e14b3 - and a - ret -; e14b5 - -Unknown_e14b5: ; e14b5 - db $00, $00, $00, $00, $00, $00 - db $00, $01, $02, $03, $04, $00 - db $00, $05, $06, $07, $08, $00 - db $00, $09, $0a, $0b, $0c, $00 - db $00, $0d, $0e, $0f, $10, $00 - db $00, $00, $00, $00, $00, $00 -; e14d9 - -Functione14d9: ; e14d9 - call Functione1481 - ld [wd002], a - xor a - call Functione1463 - ld a, [hli] - ld b, [hl] - ld c, a - ld a, [wd002] - cp $e0 - jr z, .asm_e14f2 - ld hl, Unknown_e150f - jr .asm_e14f5 - -.asm_e14f2 - ld hl, Unknown_e1534 - -.asm_e14f5 - ld de, Sprites -.asm_e14f8 - ld a, [hli] - cp $ff - ret z - add b - ld [de], a - inc de - ld a, [hli] - add c - ld [de], a - inc de - ld a, [wd002] - add [hl] - ld [de], a - inc hl - inc de - ld a, [hli] - ld [de], a - inc de - jr .asm_e14f8 -; e150f - -Unknown_e150f: ; e150f - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $02, $00 - db $fc, $f4, $0c, $00 - db $fc, $fc, $0d, $00 - db $fc, $04, $0e, $00 - db $04, $f4, $18, $00 - db $04, $fc, $19, $00 - db $04, $04, $1a, $00 - db $ff - -Unknown_e1534: ; e1534 - db $f4, $f4, $00, $00 - db $f4, $fc, $01, $00 - db $f4, $04, $00, $20 - db $fc, $f4, $02, $00 - db $fc, $fc, $03, $00 - db $fc, $04, $02, $20 - db $04, $f4, $00, $40 - db $04, $fc, $01, $40 - db $04, $04, $00, $60 - db $ff - -Unknown_e1559: ; e1559 - -macro_e1559: macro - db \1, \2 - dwcoord \3, \4 - db \5, \6 -endm - - macro_e1559 $1c, $1c, 1, 0, $ee, $00 - macro_e1559 $34, $1c, 4, 0, $ee, $00 - macro_e1559 $4c, $1c, 7, 0, $ee, $00 - macro_e1559 $64, $1c, 10, 0, $ee, $00 - macro_e1559 $7c, $1c, 13, 0, $ee, $00 - macro_e1559 $94, $1c, 16, 0, $ee, $00 - macro_e1559 $1c, $34, 1, 3, $ee, $00 - macro_e1559 $34, $34, 4, 3, $ef, $00 - macro_e1559 $4c, $34, 7, 3, $ef, $00 - macro_e1559 $64, $34, 10, 3, $ef, $00 - macro_e1559 $7c, $34, 13, 3, $ef, $00 - macro_e1559 $94, $34, 16, 3, $ee, $00 - macro_e1559 $1c, $4c, 1, 6, $ee, $00 - macro_e1559 $34, $4c, 4, 6, $ef, $00 - macro_e1559 $4c, $4c, 7, 6, $ef, $00 - macro_e1559 $64, $4c, 10, 6, $ef, $00 - macro_e1559 $7c, $4c, 13, 6, $ef, $00 - macro_e1559 $94, $4c, 16, 6, $ee, $00 - macro_e1559 $1c, $64, 1, 9, $ee, $00 - macro_e1559 $34, $64, 4, 9, $ef, $00 - macro_e1559 $4c, $64, 7, 9, $ef, $00 - macro_e1559 $64, $64, 10, 9, $ef, $00 - macro_e1559 $7c, $64, 13, 9, $ef, $00 - macro_e1559 $94, $64, 16, 9, $ee, $00 - macro_e1559 $1c, $7c, 1, 12, $ee, $00 - macro_e1559 $34, $7c, 4, 12, $ef, $00 - macro_e1559 $4c, $7c, 7, 12, $ef, $00 - macro_e1559 $64, $7c, 10, 12, $ef, $00 - macro_e1559 $7c, $7c, 13, 12, $ef, $00 - macro_e1559 $94, $7c, 16, 12, $ee, $00 - macro_e1559 $1c, $94, 1, 15, $ee, $00 - macro_e1559 $34, $94, 4, 15, $ee, $00 - macro_e1559 $4c, $94, 7, 15, $ee, $00 - macro_e1559 $64, $94, 10, 15, $ee, $00 - macro_e1559 $7c, $94, 13, 15, $ee, $00 - macro_e1559 $94, $94, 16, 15, $ee, $00 - -Functione1631: ; e1631 - ld hl, VTiles2 - ld de, VTiles0 - ld b, $6 -.asm_e1639 - push bc - push hl - push hl - call Functione1654 - pop hl - ld bc, 8 - add hl, bc - call Functione1654 - pop hl - ld bc, $60 - add hl, bc - pop bc - dec b - jr nz, .asm_e1639 - call Functione16c7 - ret -; e1654 - -Functione1654: ; e1654 - ld c, $6 -.asm_e1656 - push bc - push hl - push hl - ld c, $4 -.asm_e165b - push bc - ld a, [hli] - and $f0 - swap a - call Functione16aa - ld c, a - ld a, [hli] - and $f0 - swap a - call Functione16aa - ld b, a - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - pop bc - dec c - jr nz, .asm_e165b - pop hl - ld c, $4 -.asm_e1681 - push bc - ld a, [hli] - and $f - call Functione16aa - ld c, a - ld a, [hli] - and $f - call Functione16aa - ld b, a - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - ld a, c - ld [de], a - inc de - ld a, b - ld [de], a - inc de - pop bc - dec c - jr nz, .asm_e1681 - pop hl - ld bc, $10 - add hl, bc - pop bc - dec c - jr nz, .asm_e1656 - ret -; e16aa - -Functione16aa: ; e16aa - push hl - ld hl, Unknown_e16b7 - add l - ld l, a - ld a, 0 - adc h - ld h, a - ld a, [hl] - pop hl - ret -; e16b7 - -Unknown_e16b7: ; e16b7 - db $00, $03, $0c, $0f - db $30, $33, $3c, $3f - db $c0, $c3, $cc, $cf - db $f0, $f3, $fc, $ff -; e16c7 - -Functione16c7: ; e16c7 - ld hl, Unknown_e1703 - ld a, $8 -.asm_e16cc - push af - push hl - ld a, [hli] - ld e, a - ld a, [hli] - ld d, a - ld a, [hli] - ld h, [hl] - ld l, a - call Functione16e2 - pop hl -rept 4 - inc hl -endr - pop af - dec a - jr nz, .asm_e16cc - ret -; e16e2 - -Functione16e2: ; e16e2 - lb bc, 4, 4 -.asm_e16e5 - push bc -.asm_e16e6 - push de - push hl - ld b, $10 -.asm_e16ea - ld a, [de] - or [hl] - ld [hli], a - inc de - dec b - jr nz, .asm_e16ea - pop hl - ld de, $30 - add hl, de - pop de - dec c - jr nz, .asm_e16e6 - ld bc, $180 - add hl, bc - pop bc - dec b - jr nz, .asm_e16e5 - ret -; e1703 - -Unknown_e1703: ; e1703 - dw GFX_e1723 + $00, $8000 - dw GFX_e1723 + $10, $8010 - dw GFX_e1723 + $20, $8020 - dw GFX_e1723 + $30, $80c0 - dw GFX_e1723 + $40, $80e0 - dw GFX_e1723 + $50, $8180 - dw GFX_e1723 + $60, $8190 - dw GFX_e1723 + $70, $81a0 -; e1723 - -GFX_e1723: ; e1723 -INCBIN "gfx/unknown/0e1723.2bpp" - -Functione17a3: ; e17a3 - ld a, [ScriptVar] - and 3 - ld e, a - ld d, 0 - ld hl, Unknown_e17bd -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, VTiles2 - call Decompress - call Functione1631 - ret -; e17bd - -Unknown_e17bd: ; e17bd - dw LZ_e1bab - dw LZ_e1c9b - dw LZ_e19fb - dw LZ_e18ab -; e17c5 - -GFX_e17c5: ; e17c5 -INCBIN "gfx/unknown/0e17c5.2bpp" - -LZ_e1805: ; e1805 -INCBIN "gfx/unknown/0e1805.2bpp.lz" - -LZ_e18ab: ; e18ab -INCBIN "gfx/unknown/0e18ab.2bpp.lz" - -LZ_e19fb: ; e19fb -INCBIN "gfx/unknown/0e19fb.2bpp.lz" - -LZ_e1bab: ; e1bab -INCBIN "gfx/unknown/0e1bab.2bpp.lz" - -LZ_e1c9b: ; e1c9b -INCBIN "gfx/unknown/0e1c9b.2bpp.lz" - -_DummyGame: ; e1e5b (38:5e5b) - call Functione1e67 - call DelayFrame -.asm_e1e61 - call Functione1ebb - jr nc, .asm_e1e61 - ret - -Functione1e67: ; e1e67 (38:5e67) - call DisableLCD - ld b, $8 - call GetSGBLayout - callab Function8cf53 - ld hl, LZ_e2221 - ld de, VTiles2 tile $00 - call Decompress - ld hl, Unknown_e00ed - ld de, VTiles0 tile $00 - ld bc, $40 - ld a, BANK(Unknown_e00ed) - call FarCopyBytes - ld a, $8 - ld hl, wc300 - ld [hli], a - ld [hl], $0 - hlcoord 0, 0 - ld bc, SCREEN_HEIGHT * SCREEN_WIDTH - xor a - call ByteFill - xor a - ld [hSCY], a - ld [hSCX], a - ld [rWY], a - ld [wJumptableIndex], a - ld a, $1 - ld [hBGMapMode], a - ld a, $e3 - ld [rLCDC], a - ld a, $e4 - call DmgToCgbBGPals - ld a, $e0 - call Functioncf8 - ret - -Functione1ebb: ; e1ebb (38:5ebb) - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e1ed0 - call Functione1ed2 - callab Function8cf69 - call DelayFrame - and a - ret -.asm_e1ed0 - scf - ret - -Functione1ed2: ; e1ed2 (38:5ed2) - ld a, [wJumptableIndex] - ld e, a - ld d, 0 - ld hl, Jumptable_e1ee1 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e1ee1 (38:5ee1) - -Jumptable_e1ee1: ; e1ee1 - dw Functione1ef3 - dw Functione1efb - dw Functione1f1c - dw Functione1f42 - dw Functione1f61 - dw Functione1f8b - dw Functione1fba - dw Functione1fcc - dw Functione2000 -; e1ef3 - -Functione1ef3: ; e1ef3 - call Functione2152 - ld hl, wJumptableIndex - inc [hl] - ret -; e1efb - -Functione1efb: ; e1efb - call Functione00ed - jr nc, .asm_e1f06 - ld hl, wJumptableIndex - set 7, [hl] - ret - -.asm_e1f06 - call Functione209d - ld hl, wJumptableIndex - inc [hl] - xor a - ld [wc708], a - ld hl, wc703 -rept 4 - ld [hli], a -endr - ld [hl], a - ld [wc709], a - -Functione1f1c: ; e1f1c - ld hl, wc708 - ld a, [hl] - cp $2d - jr nc, .asm_e1f30 - inc [hl] - call Functione2183 - xor a - ld [wc6fd], a - call Functione2128 - ret - -.asm_e1f30 - ld de, $341c - ld a, $c - call Function3b2a - ld a, $5 - ld [wc702], a - ld hl, wJumptableIndex - inc [hl] - ret -; e1f42 - -Functione1f42: ; e1f42 - ld a, [wc702] - hlcoord 17, 0 - add $f6 - ld [hl], a - ld hl, wc702 - ld a, [hl] - and a - jr nz, .asm_e1f58 - ld a, $7 - ld [wJumptableIndex], a - ret - -.asm_e1f58 - dec [hl] - xor a - ld [wcf64], a - ld hl, wJumptableIndex - inc [hl] - -Functione1f61: ; e1f61 - ld a, [wcf64] - and a - ret z - dec a - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - cp $ff - ret z - ld [wc6fd], a - ld [wPlayerMinimized], a - ld a, e - ld [EnemyScreens], a - call Functione2183 - call Functione2128 - xor a - ld [wcf64], a - ld hl, wJumptableIndex - inc [hl] - ret -; e1f8b - -Functione1f8b: ; e1f8b - ld a, [wcf64] - and a - ret z - dec a - ld hl, EnemyScreens - cp [hl] - ret z - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - cp $ff - ret z - ld [wc6fd], a - ld [PlayerScreens], a - ld a, e - ld [wc701], a - call Functione2183 - call Functione2128 - ld a, $40 - ld [wc708], a - ld hl, wJumptableIndex - inc [hl] - -Functione1fba: ; e1fba - ld hl, wc708 - ld a, [hl] - and a - jr z, .asm_e1fc3 - dec [hl] - ret - -.asm_e1fc3 - call Functione2010 - ld a, $3 - ld [wJumptableIndex], a - ret -; e1fcc - -Functione1fcc: ; e1fcc - ld a, [hJoypadPressed] - and A_BUTTON - ret z - xor a - ld [wc708], a -.asm_e1fd5 - ld hl, wc708 - ld a, [hl] - cp $2d - jr nc, .asm_e1ff9 - inc [hl] - push af - call Functione2183 - pop af - push hl - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld a, [hl] - pop hl - cp $ff - jr z, .asm_e1fd5 - ld [wc6fd], a - call Functione2128 - jr .asm_e1fd5 - -.asm_e1ff9 - call WaitPressAorB_BlinkCursor - ld hl, wJumptableIndex - inc [hl] - -Functione2000: ; e2000 - call Functione00ed - jr nc, .asm_e200b - ld hl, wJumptableIndex - set 7, [hl] - ret - -.asm_e200b - xor a - ld [wJumptableIndex], a - ret -; e2010 - -Functione2010: ; e2010 - ld hl, wPlayerMinimized - ld a, [hli] - cp [hl] - jr nz, .asm_e2066 - ld a, [EnemyScreens] - call Functione2183 - call Functione2142 - ld a, [wc701] - call Functione2183 - call Functione2142 - ld a, [EnemyScreens] - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld [hl], $ff - ld a, [wc701] - ld e, a - ld d, $0 - ld hl, wc6d0 - add hl, de - ld [hl], $ff - ld hl, wc703 -.asm_e2044 - ld a, [hli] - and a - jr nz, .asm_e2044 - dec hl - ld a, [wPlayerMinimized] - ld [hl], a - ld [wc6fd], a - ld hl, wc709 - ld e, [hl] -rept 2 - inc [hl] -endr - ld d, $0 - hlcoord 5, 0 - add hl, de - call Functione2128 - ld hl, UnknownText_0xe2083 - call PrintText - ret - -.asm_e2066 - xor a - ld [wc6fd], a - ld a, [EnemyScreens] - call Functione2183 - call Functione2128 - ld a, [wc701] - call Functione2183 - call Functione2128 - ld hl, UnknownText_0xe2098 - call PrintText - ret -; e2083 - -UnknownText_0xe2083: ; 0xe2083 - start_asm -; 0xe2084 - -Functione2084: ; e2084 +Functionb94d6: ; b94d6 push bc - hlcoord 2, 13 - call Functione2128 - ld hl, UnknownText_0xe2093 - pop bc -rept 3 - inc bc -endr - ret -; e2093 - -UnknownText_0xe2093: ; 0xe2093 - ; , yeah! - text_jump UnknownText_0x1c1a5b - db "@" -; 0xe2098 - -UnknownText_0xe2098: ; 0xe2098 - ; Darn… - text_jump UnknownText_0x1c1a65 - db "@" -; 0xe209d - -Functione209d: ; e209d - ld hl, wc6d0 - ld bc, $2d - xor a - call ByteFill - call Functione2101 - ld c, $2 - ld b, [hl] - call Functione20e5 - ld c, $8 - ld b, [hl] - call Functione20e5 - ld c, $4 - ld b, [hl] - call Functione20e5 - ld c, $7 - ld b, [hl] - call Functione20e5 - ld c, $3 - ld b, [hl] - call Functione20e5 - ld c, $6 - ld b, [hl] - call Functione20e5 - ld c, $1 - ld b, [hl] - call Functione20e5 - ld c, $5 - ld hl, wc6d0 - ld b, $2d -.asm_e20db - ld a, [hl] - and a - jr nz, .asm_e20e0 - ld [hl], c - -.asm_e20e0 - inc hl - dec b - jr nz, .asm_e20db - ret -; e20e5 - -Functione20e5: ; e20e5 - push hl - ld de, wc6d0 -.asm_e20e9 - call Random - and $3f - cp $2d - jr nc, .asm_e20e9 - ld l, a - ld h, $0 - add hl, de - ld a, [hl] - and a - jr nz, .asm_e20e9 - ld [hl], c - dec b - jr nz, .asm_e20e9 - pop hl - inc hl - ret -; e2101 - -Functione2101: ; e2101 - ld a, [MenuSelection2] - dec a - ld l, a - ld h, 0 -rept 3 - add hl, hl -endr - ld de, Unknown_e2110 - add hl, de - ret -; e2110 - -Unknown_e2110: ; e2110 - db $02, $03, $06, $06, $06, $08, $08, $06 - db $02, $02, $04, $06, $06, $08, $08, $09 - db $02, $02, $02, $04, $07, $08, $08, $0c -; e2128 - -Functione2128: ; e2128 - ld a, [wc6fd] - sla a - sla a - add $4 - ld [hli], a - inc a - ld [hld], a - inc a - ld bc, SCREEN_WIDTH - add hl, bc - ld [hli], a - inc a + ld hl, VTiles2 tile $31 + ld bc, $28 + call Functionb97f8 + ld de, Unknown_b9c96 + ld c, 8 + call Functionb9915 + ld de, Unknown_b9c7e + ld c, 8 + call Functionb9915 + ld de, Unknown_b993e + ld c, 8 + call Functionb9915 + ld de, Unknown_b997e + ld c, 8 + call Functionb990c + ld de, Unknown_b9926 + ld c, 8 + call Functionb9915 + ld de, MailDittoGFX + ld c, $30 + call Functionb991e + call Functionb987b + ld a, $31 + hlcoord 1, 1 + call Functionb98ee + hlcoord 17, 15 + call Functionb98ee + hlcoord 1, 3 ld [hl], a - ld c, 3 - call DelayFrames - ret -; e2142 - -Functione2142: ; e2142 - ld a, $1 - ld [hli], a - ld [hld], a - ld bc, SCREEN_WIDTH - add hl, bc - ld [hli], a + hlcoord 3, 1 ld [hl], a - ld c, 3 - call DelayFrames - ret -; e2152 - -Functione2152: ; e2152 - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, $1 - call ByteFill - hlcoord 0, 0 - ld de, String_e2177 - call PlaceString - hlcoord 15, 0 - ld de, String_e217d - call PlaceString - ld hl, UnknownText_0xe2176 - call PrintText - ret -; e2176 - -UnknownText_0xe2176: ; 0xe2176 - db "@" -; 0xe2177 - -String_e2177: db "とったもの@" -String_e217d: db "あと かい@" -; e2183 - -Functione2183: ; e2183 - ld d, $0 -.asm_e2185 - sub $9 - jr c, .asm_e218c - inc d - jr .asm_e2185 - -.asm_e218c - add $9 - ld e, a - hlcoord 1, 2 - ld bc, $28 -.asm_e2195 - ld a, d - and a - jr z, .asm_e219d - add hl, bc - dec d - jr .asm_e2195 - -.asm_e219d - sla e - add hl, de - ret -; e21a1 - -Functione21a1: ; e21a1 (38:61a1) - ld a, [wJumptableIndex] - cp $7 - jr nc, .quit - call JoyTextDelay - ld hl, hJoypadPressed ; $ffa3 - ld a, [hl] - and A_BUTTON - jr nz, .pressed_a - ld a, [hl] - and D_LEFT - jr nz, .pressed_left - ld a, [hl] - and D_RIGHT - jr nz, .pressed_right - ld a, [hl] - and D_UP - jr nz, .pressed_up - ld a, [hl] - and D_DOWN - jr nz, .pressed_down - ret - -.quit - ld hl, 0 - add hl, bc - ld [hl], $0 - ret - -.pressed_a - ld hl, $c - add hl, bc - ld a, [hl] - inc a - ld [wcf64], a - ret - -.pressed_left - ld hl, $6 - add hl, bc - ld a, [hl] - and a - ret z - sub $10 + hlcoord 16, 16 ld [hl], a - ld hl, $c - add hl, bc - dec [hl] - ret - -.pressed_right - ld hl, $6 - add hl, bc - ld a, [hl] - cp $80 - ret z - add $10 + hlcoord 18, 14 ld [hl], a - ld hl, $c - add hl, bc - inc [hl] - ret - -.pressed_up - ld hl, $7 - add hl, bc - ld a, [hl] - and a - ret z - sub $10 + ld a, $36 + hlcoord 1, 4 ld [hl], a - ld hl, $c - add hl, bc - ld a, [hl] - sub $9 + hlcoord 2, 3 ld [hl], a - ret - -.pressed_down - ld hl, $7 - add hl, bc - ld a, [hl] - cp $40 - ret z - add $10 + hlcoord 3, 2 ld [hl], a - ld hl, $c - add hl, bc - ld a, [hl] - add $9 + hlcoord 4, 1 ld [hl], a - ret -; e2221 (38:6221) - -LZ_e2221: ; e2221 -INCBIN "gfx/unknown/0e2221.2bpp.lz" + inc a + hlcoord 15, 16 + ld [hl], a + hlcoord 16, 15 + ld [hl], a + hlcoord 17, 14 + ld [hl], a + hlcoord 18, 13 + ld [hl], a + inc a + hlcoord 2, 15 + ld b, $e + call Functionb98de + inc a + hlcoord 2, 11 + call Functionb98d4 + hlcoord 2, 5 + call Functionb98d4 + inc a + hlcoord 6, 1 + call Functionb98d0 + hlcoord 1, 16 + call Functionb98d0 + inc a + hlcoord 3, 13 + call Functionb98fc + pop hl + jp Functionb9803 +; b9582 -Functione2391: ; e2391 (38:6391) - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] +Functionb9582: ; b9582 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b997e + ld c, $8 + call Functionb9915 + ld a, $ff + ld bc, $10 + call ByteFill + ld de, Unknown_b992e + ld c, $8 + call Functionb991e + ld de, MailDragoniteGFX + ld c, $b8 + call Functionb991e + ld de, MailCloudGFX + ld c, $30 + call Functionb990c + ld de, Unknown_b9db6 + ld c, $8 + call Functionb990c + ld de, MailCloudGFX + ld c, $8 + call Functionb990c + ld de, Unknown_b9d26 + ld c, $10 + call Functionb990c + ld de, Unknown_b9d3e + ld c, $8 + call Functionb990c + ld a, $31 + hlcoord 0, 0 + call Functionb98dc + hlcoord 0, 1 + call Functionb98e3 + hlcoord 19, 1 + call Functionb98e3 + inc a + hlcoord 0, 17 + call Functionb98dc + inc a + hlcoord 0, 16 + call Functionb98dc + inc a + hlcoord 2, 2 + call Functionb9636 + hlcoord 3, 3 + call Functionb9636 + hlcoord 4, 4 + call Functionb9636 + dec hl + ld [hl], $7f + dec a + hlcoord 15, 14 + call Functionb98ee + add $4 + hlcoord 15, 16 + ld [hli], a + inc a + ld [hl], a + inc a push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - xor a - ld [wcb2e], a - call DelayFrame -.asm_e23b4 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e23c6 - call Functione23d5 - call DelayFrame - jr .asm_e23b4 -.asm_e23c6 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a + hlcoord 12, 1 + call Functionb98fc pop af - ld [Options], a - ret - -Functione23d5: ; e23d5 (38:63d5) - ld a, [wJumptableIndex] - ld hl, Jumptable_e23df - call Functione33df - jp [hl] - -Jumptable_e23df: ; e23df (38:63df) - dw Functione23e9 - dw Functione241a - dw Functione245d - dw Functione247d - dw Functione2992 - - -Functione23e9: ; e23e9 (38:63e9) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - call Functione2a8e - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call PCMonInfo - ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d - ret - -Functione241a: ; e241a (38:641a) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and B_BUTTON - jr nz, .asm_e2457 - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2443 - call Functione29b5 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret -.asm_e2443 - call Functione2def - and a - ret z - cp $ff - jr z, .asm_e2457 - ld a, $2 - ld [wJumptableIndex], a - ret -; e2452 (38:6452) + hlcoord 15, 4 + call Functionb98fc + inc a + hlcoord 2, 11 + call Functionb98d4 + inc a + hlcoord 10, 3 + call Functionb98ee + pop hl + jp Functionb9803 +; b9636 -.asm_e2452 - ld hl, wJumptableIndex - dec [hl] +Functionb9636: ; b9636 + ld b, $6 +.asm_b9638 + ld [hli], a + inc a + dec b + jr nz, .asm_b9638 ret +; b963e -.asm_e2457 - ld a, $4 - ld [wJumptableIndex], a - ret +Functionb963e: ; b963e + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9d86 + ld c, $40 + call Functionb990c + ld de, MailOddishGFX + ld c, $20 + call Functionb991e + ld de, Unknown_b9db6 + ld c, $8 + call Functionb9915 + ld de, Unknown_b9cbe + ld c, $20 + call Functionb990c + ld c, $20 + call Functionb9915 + call Functionb9858 + hlcoord 2, 15 + ld a, $3d + call Functionb98d4 + ld a, $39 + hlcoord 16, 13 + call Functionb98ee + hlcoord 2, 13 + call Functionb98ee + ld a, $3e + hlcoord 2, 2 + call Functionb98ee + hlcoord 5, 3 + call Functionb98ee + hlcoord 10, 2 + call Functionb98ee + hlcoord 16, 3 + call Functionb98ee + hlcoord 5, 11 + call Functionb98ee + hlcoord 16, 10 + call Functionb98ee + ld a, $42 + hlcoord 3, 4 + call Functionb98ee + hlcoord 12, 3 + call Functionb98ee + hlcoord 14, 2 + call Functionb98ee + hlcoord 2, 10 + call Functionb98ee + hlcoord 14, 11 + call Functionb98ee + pop hl + jp Functionb9803 +; b96ca -Functione245d: ; e245d (38:645d) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e +Functionb96ca: ; b96ca + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9e4e + ld c, $28 + call Functionb9915 + ld de, Unknown_b995e + ld c, $8 + call Functionb9915 + ld hl, VTiles2 tile $3d + ld de, Unknown_b9bfe + ld c, $20 + call Functionb990c + ld de, Unknown_b9936 + ld c, $8 + call Functionb9915 + call Functionb987b + hlcoord 8, 15 + ld a, $36 + ld b, $a + call Functionb98de + call Functionb9491 ld a, $1 - ld [MenuSelection2], a - call Functione298d - ret - -Functione247d: ; e247d (38:647d) - ld hl, BillsPCDepositMenuDataHeader - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, BillsPCDepositFuncCancel - ld a, [MenuSelection2] - dec a - and $3 - ld e, a - ld d, 0 - ld hl, BillsPCDepositJumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -BillsPCDepositJumptable: ; e24a1 (38:64a1) - dw BillsPCDepositFuncDeposit ; Deposit Pokemon - dw BillsPCDepositFuncStats ; Pokemon Stats - dw BillsPCDepositFuncRelease ; Release Pokemon - dw BillsPCDepositFuncCancel ; Cancel - - -BillsPCDepositFuncDeposit: ; e24a9 (38:64a9) - call Functione2f18 - jp c, BillsPCDepositFuncCancel - call Functione307c - jr c, .no_overflow_31 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - ret -.no_overflow_31 - ld de, PCString_WhatsUp - call Functione2a6e - ret - -BillsPCDepositFuncStats: ; e24c8 (38:64c8) - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ret + ld [UnownLetter], a + hlcoord 1, 10 + call PrepMonFrontpic + pop hl + jp Functionb9803 +; b9710 -BillsPCDepositFuncRelease: ; e24e0 (38:64e0) - call Functione2f18 - jr c, BillsPCDepositFuncCancel - call Functione2f5f - jr c, BillsPCDepositFuncCancel - ld a, [MenuSelection2] - push af - ld de, PCString_ReleasePKMN - call Functione2a6e - call LoadStandardMenuDataHeader - lb bc, 14, 11 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call ExitMenu - and a - jr nz, .asm_e252c - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - call Functione3180 - ld a, $0 - ld [wJumptableIndex], a +Functionb9710: ; b9710 + push bc + ld hl, VTiles2 tile $31 + ld de, Unknown_b9e06 + ld c, $20 + call Functionb9915 + ld de, Unknown_b993e + ld c, $10 + call Functionb9915 + ld de, Unknown_b9996 + ld c, $30 + call Functionb991e xor a - ld [wcb2b], a - ld [wcb2a], a - pop af - ret -.asm_e252c - ld de, PCString_WhatsUp - call Functione2a6e - pop af - ld [MenuSelection2], a - ret - -BillsPCDepositFuncCancel: ; e2537 (38:6537) - ld a, $0 - ld [wJumptableIndex], a - ret -; e253d (38:653d) - -BillsPCDepositMenuDataHeader: ; 0xe253d (38:653d) - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw BillsPCDepositMenuData - db 1 ; default option -; 0xe2545 - -BillsPCDepositMenuData: ; 0xe2545 (38:6545) - db $80 ; flags - db 4 ; items - db "DEPOSIT@" - db "STATS@" - db "RELEASE@" - db "CANCEL@" -; 0xe2564 (38:6564) + ld bc, $10 + call ByteFill + ld de, Unknown_b9cfe + ld c, $18 + call Functionb990c + ld de, Unknown_b9946 + ld c, $8 + call Functionb990c + ld a, $31 + hlcoord 0, 0 + call Functionb98a8 + hlcoord 1, 17 + call Functionb98a8 + ld a, $33 + hlcoord 0, 1 + call Functionb98ba + hlcoord 19, 0 + call Functionb98ba + ld a, $35 + hlcoord 2, 15 + call Functionb989e + ld a, $37 + hlcoord 15, 14 + call Functionb98fc + call Functionb9491 + pop hl + jp Functionb9803 +; b9776 -Functione2564: ; e2564 - hlcoord 0, 0 - ld b, $4 +Functionb9776: ; b9776 + push bc + ld hl, VTiles2 tile $31 + ld bc, $28 + call Functionb97f8 + ld de, Unknown_b992e ld c, $8 - call ClearBox - hlcoord 0, 4 - ld b, $a - ld c, $9 - call ClearBox - hlcoord 0, 14 - ld b, $2 + call Functionb9915 + ld de, MailMewGFX + ld c, $90 + call Functionb9915 + ld de, Unknown_b9dce ld c, $8 - call ClearBox - ret -; e2583 - -Functione2583: ; e2583 (38:6583) - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] - push af - xor a - ld [VramState], a - ld a, [hInMenu] - push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - ld a, $f - ld [wcb2e], a - call DelayFrame -.asm_e25a7 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .no_overflow_49 - call Functione25c8 - call DelayFrame - jr .asm_e25a7 -.no_overflow_49 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a - pop af - ld [Options], a - ret - -Functione25c8: ; e25c8 (38:65c8) - ld a, [wJumptableIndex] - ld hl, .jumptable - call Functione33df - jp [hl] - -.jumptable: ; e25d2 (38:65d2) - dw Functione25dc - dw Functione2612 - dw Functione2655 - dw BillsPC_Withdraw - dw Functione2992 - + call Functionb990c + ld de, Unknown_b9df6 + ld c, $8 + call Functionb990c + call Functionb987b + ld a, $36 + hlcoord 1, 16 + call Functionb98d8 + inc a + hlcoord 15, 14 + call Functionb98fc + inc a + hlcoord 15, 16 + ld [hli], a + inc a + ld [hl], a + ld a, $3f + hlcoord 1, 1 + call Functionb98a8 + ld a, $41 + hlcoord 0, 2 + call Functionb98b5 + ld a, $43 + hlcoord 19, 2 + call Functionb98b5 + ld a, $45 + hlcoord 0, 1 + ld [hl], a + inc a + hlcoord 19, 1 + ld [hl], a + inc a + hlcoord 0, 16 + ld [hl], a + inc a + hlcoord 19, 16 + ld [hl], a + inc a + hlcoord 2, 5 + call Functionb98d4 + inc a + hlcoord 2, 11 + call Functionb98d4 + pop hl + jp Functionb9803 +; b97f8 -Functione25dc: ; e25dc (38:65dc) - ld a, $f - ld [wcb2e], a +Functionb97f8: ; b97f8 +.asm_b97f8 xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - call Functione2a8e - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call PCMonInfo + ld [hli], a ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_b97f8 ret +; b9803 -Functione2612: ; e2612 (38:6612) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and B_BUTTON - jr nz, .asm_e264f - ld a, [hl] - and A_BUTTON - jr nz, .asm_e263b - call Functione29b5 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret -.asm_e263b - call Functione2def +Functionb9803: ; b9803 + ld bc, $2f + ld de, wd002 + ld a, $0 + call GetSRAMBank + call CopyBytes + call CloseSRAM + ld hl, wd023 + ld de, wd050 + ld bc, $a + call CopyBytes + ld a, $50 + ld [wd023], a + ld [wd05a], a + ld de, wd002 + hlcoord 2, 7 + call PlaceString + ld de, wd050 + ld a, [de] and a ret z - cp $ff - jr z, .asm_e264f - ld a, $2 - ld [wJumptableIndex], a - ret -; e264a (38:664a) - -.asm_e264a - ld hl, wJumptableIndex - dec [hl] - ret + ld a, [wd1ec] + hlcoord 8, 14 + cp $3 + jr z, .asm_b984b + hlcoord 6, 14 + cp $6 + jr z, .asm_b984b + hlcoord 5, 14 -.asm_e264f - ld a, $4 - ld [wJumptableIndex], a - ret -; e2655 +.asm_b984b + jp PlaceString +; b984e -Functione2655: ; e2655 (38:6655) - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [MenuSelection2], a - call Functione298d +Functionb984e: ; b984e +.asm_b984e + ld a, [hl] + xor $ff + ld [hli], a + dec bc + ld a, b + or c + jr nz, .asm_b984e ret +; b9858 -BillsPC_Withdraw: ; e2675 (38:6675) - ld hl, .MenuDataHeader - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, .cancel - ld a, [MenuSelection2] - dec a - and 3 - ld e, a - ld d, 0 - ld hl, .jumptable -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] - -.jumptable: ; e2699 (38:6699) #mark - dw .withdraw ; Withdraw - dw .stats ; Stats - dw .release ; Release - dw .cancel ; Cancel - - -.withdraw: ; e26a1 (38:66a1) - call Functione2f18 - jp c, .cancel - call TryWithdrawPokemon - jr c, .FailedWithdraw - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - ret -.FailedWithdraw - ld de, PCString_WhatsUp - call Functione2a6e +Functionb9858: ; b9858 + hlcoord 0, 0 + ld a, $31 + ld [hli], a + inc a + call Functionb98d8 + inc a + ld [hli], a + inc a + call Functionb98e3 + ld a, $36 + ld [hli], a + inc a + call Functionb98d8 + hlcoord 19, 1 + ld a, $35 + call Functionb98e3 + ld a, $38 + ld [hl], a ret +; b987b -.stats: ; e26c0 (38:66c0) - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 +Functionb987b: ; b987b + hlcoord 0, 0 + ld a, $31 + ld [hli], a + inc a + call Functionb98d8 + ld [hl], $31 + inc hl + inc a + call Functionb98e3 + ld [hl], $31 + inc hl + inc a + call Functionb98d8 + hlcoord 19, 1 + ld a, $35 + call Functionb98e3 + ld [hl], $31 ret +; b989e -.release: ; e26d8 (38:66d8) - ld a, [MenuSelection2] +Functionb989e: ; b989e push af - call Functione2f5f - jr c, .FailedRelease - ld de, PCString_ReleasePKMN - call Functione2a6e - call LoadStandardMenuDataHeader - lb bc, 14, 11 - call PlaceYesNoBox - ld a, [MenuSelection2] - dec a - call ExitMenu - and a - jr nz, .FailedRelease - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - call Functione3180 - ld a, $0 - ld [wJumptableIndex], a - xor a - ld [wcb2b], a - ld [wcb2a], a - pop af - ret -.FailedRelease - ld de, PCString_WhatsUp - call Functione2a6e - pop af - ld [MenuSelection2], a - ret - -.cancel: ; e272b (38:672b) - ld a, $0 - ld [wJumptableIndex], a - ret -; e2731 (38:6731) - -.MenuDataHeader: ; 0xe2731 - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw .MenuData - db 1 ; default option -; 0xe2739 - -.MenuData: ; 0xe2739 - db $80 ; flags - db 4 ; items - db "WITHDRAW@" - db "STATS@" - db "RELEASE@" - db "CANCEL@" -; 0xe2759 + ld b, $7 + jr Functionb98ab -Functione2759: ; e2759 - ld hl, Options - ld a, [hl] - push af - set 4, [hl] - ld a, [VramState] +Functionb98a3: ; b98a3 push af - xor a - ld [VramState], a - ld a, [hInMenu] + ld b, $8 + jr Functionb98ab + +Functionb98a8: ; b98a8 push af - ld a, $1 - ld [hInMenu], a - xor a - ld [hMapAnims], a - call Functione2963 - ld a, [wCurBox] - and $f - inc a - ld [wcb2e], a - call DelayFrame -.asm_e2781 - call JoyTextDelay - ld a, [wJumptableIndex] - bit 7, a - jr nz, .asm_e2793 - call Functione27a2 - call DelayFrame - jr .asm_e2781 + ld b, $9 -.asm_e2793 - call ClearSprites - pop af - ld [hInMenu], a - pop af - ld [VramState], a +Functionb98ab: ; b98ab + ld [hli], a + inc a + ld [hli], a + dec a + dec b + jr nz, Functionb98ab + ld [hl], a pop af - ld [Options], a - ret -; e27a2 - -Functione27a2: ; e27a2 - ld a, [wJumptableIndex] - ld hl, Jumptable_e27ac - call Functione33df - jp [hl] -; e27ac - -Jumptable_e27ac: ; e27ac - dw Functione27ba - dw Functione27eb - dw Functione283d - dw Functione285d - dw Functione28df - dw Functione2903 - dw Functione2992 -; e27ba - -Functione27ba: ; e27ba - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2d30 - ld de, PCString_ChooseaPKMN - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call Functione2a80 - call PCMonInfo - ld a, $ff - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - call WaitBGMap - call Functione2e01 - call Functione298d - ret -; e27eb - -Functione27eb: ; e27eb - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .asm_e2837 - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2823 - call Functione29d0 - jr c, .asm_e2816 - and a - ret z - call Functione2e01 - xor a - ld [hBGMapMode], a - call Functione2c2c - call PCMonInfo - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret - -.asm_e2816 - xor a - ld [wcb2b], a - ld [wcb2a], a - ld a, $0 - ld [wJumptableIndex], a - ret - -.asm_e2823 - call Functione2def - and a - ret z - cp $ff - jr z, .asm_e2837 - ld a, $2 - ld [wJumptableIndex], a - ret - - ld hl, wJumptableIndex - dec [hl] ret +; b98b5 -.asm_e2837 - ld a, $6 - ld [wJumptableIndex], a - ret -; e283d +Functionb98b5: ; b98b5 + push af + ld b, $7 + jr Functionb98bd -Functione283d: ; e283d - xor a - ld [hBGMapMode], a - call ClearSprites - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 - ld de, PCString_WhatsUp - call Functione2a6e - ld a, $1 - ld [MenuSelection2], a - call Functione298d - ret -; e285d +Functionb98ba: ; b98ba + push af + ld b, $8 -Functione285d: ; e285d - ld hl, MenuDataHeader_0xe28c3 - call CopyMenuDataHeader - ld a, [MenuSelection2] - call Function1d4b - call InterpretMenu2 - jp c, Functione28bd - ld a, [MenuSelection2] - dec a - and 3 - ld e, a - ld d, 0 - ld hl, Jumptable_e2881 -rept 2 +Functionb98bd: ; b98bd + ld [hl], a + ld de, SCREEN_WIDTH add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - jp [hl] -; e2881 - -Jumptable_e2881: ; e2881 - dw Functione2887 - dw Functione28a5 - dw Functione28bd -; e2887 - -Functione2887: ; e2887 - call Functione2f18 - jp c, Functione28bd - ld a, [wcb2a] - ld [wcb2f], a - ld a, [wcb2b] - ld [wcb30], a - ld a, [wcb2e] - ld [wcb31], a - ld a, $4 - ld [wJumptableIndex], a - ret -; e28a5 - -Functione28a5: ; e28a5 - call LoadStandardMenuDataHeader - call Functione2f7e - call ExitMenu - call PCMonInfo - call Functione2def - ld [CurPartySpecies], a - ld a, $17 - call Functione33d0 + inc a + ld [hl], a + add hl, de + dec a + dec b + jr nz, Functionb98bd + ld [hl], a + pop af ret -; e28bd +; b98cc -Functione28bd: ; e28bd - ld a, $0 - ld [wJumptableIndex], a - ret -; e28c3 +Functionb98cc: ; b98cc + ld b, $7 + jr Functionb98de -MenuDataHeader_0xe28c3: ; 0xe28c3 - db $40 ; flags - db 04, 09 ; start coords - db 13, 19 ; end coords - dw MenuData2_0xe28cb - db 1 ; default option -; 0xe28cb +Functionb98d0: ; b98d0 + ld b, $d + jr Functionb98de -MenuData2_0xe28cb: ; 0xe28cb - db $80 ; flags - db 3 ; items - db "MOVE@" - db "STATS@" - db "CANCEL@" -; 0xe28df +Functionb98d4: ; b98d4 + ld b, $10 + jr Functionb98de -Functione28df: ; e28df - xor a - ld [hBGMapMode], a - call Functione2d30 - ld de, PCString_MoveToWhere - call Functione2a6e - ld a, $5 - ld [wcb2d], a - call Functione2c2c - call Functione2a80 - call ClearSprites - call Functione2e8c - call WaitBGMap - call Functione298d - ret -; e2903 +Functionb98d8: ; b98d8 + ld b, $12 + jr Functionb98de -Functione2903: ; e2903 - ld hl, hJoyPressed - ld a, [hl] - and B_BUTTON - jr nz, .asm_e294b - ld a, [hl] - and A_BUTTON - jr nz, .asm_e2938 - call Functione29f4 - jr c, .asm_e292b - and a - ret z - call Functione2e8c - xor a - ld [hBGMapMode], a - call Functione2c2c - ld a, $1 - ld [hBGMapMode], a - call DelayFrame - call DelayFrame - ret +Functionb98dc: ; b98dc + ld b, $14 -.asm_e292b - xor a - ld [wcb2b], a - ld [wcb2a], a - ld a, $4 - ld [wJumptableIndex], a +Functionb98de: ; b98de + ld [hli], a + dec b + jr nz, Functionb98de ret +; b98e3 -.asm_e2938 - call Functione2ee5 - jr c, .asm_e2946 - call Functione31e7 - ld a, $0 - ld [wJumptableIndex], a +Functionb98e3: ; b98e3 + ld b, $10 + ld de, SCREEN_WIDTH +.asm_b98e8 + ld [hl], a + add hl, de + dec b + jr nz, .asm_b98e8 ret +; b98ee -.asm_e2946 - ld hl, wJumptableIndex - dec [hl] +Functionb98ee: ; b98ee + push af + ld [hli], a + inc a + ld [hl], a + ld bc, $13 + add hl, bc + inc a + ld [hli], a + inc a + ld [hl], a + pop af ret +; b98fc -.asm_e294b - ld a, [wcb2f] - ld [wcb2a], a - ld a, [wcb30] - ld [wcb2b], a - ld a, [wcb31] - ld [wcb2e], a - ld a, $0 - ld [wJumptableIndex], a +Functionb98fc: ; b98fc + ld [hli], a + inc a + ld [hli], a + inc a + ld [hl], a + ld bc, SCREEN_HEIGHT + add hl, bc + inc a + ld [hli], a + inc a + ld [hli], a + inc a + ld [hl], a ret -; e2963 +; b990c -Functione2963: ; e2963 (38:6963) - call WhiteBGMap - call ClearSprites - call ClearTileMap - call Functione33e8 - ld hl, OverworldMap - ld bc, $338 - xor a - call ByteFill +Functionb990c: ; b990c +.asm_b990c + ld a, [de] + inc de + ld [hli], a xor a - ld [wJumptableIndex], a - ld [wcf64], a - ld [wcf65], a - ld [wcf66], a - ld [wcb2b], a - ld [wcb2a], a + ld [hli], a + dec c + jr nz, .asm_b990c ret +; b9915 -Functione298d: ; e298d (38:698d) - ld hl, wJumptableIndex - inc [hl] +Functionb9915: ; b9915 +.asm_b9915 + xor a + ld [hli], a + ld a, [de] + inc de + ld [hli], a + dec c + jr nz, .asm_b9915 ret +; b991e -Functione2992: ; e2992 (38:6992) - ld hl, wJumptableIndex - set 7, [hl] +Functionb991e: ; b991e +.asm_b991e + ld a, [de] + inc de +rept 2 + ld [hli], a +endr + dec c + jr nz, .asm_b991e ret +; b9926 -Functione2998: ; e2998 (38:6998) - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - and a - jr z, .asm_e29b2 - dec a - cp $1 - jr z, .asm_e29b2 - ld e, a - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c -.asm_e29b2 - jp Functione2a65 - -Functione29b5: ; e29b5 (38:69b5) - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e29cd - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c -.asm_e29cd - jp Functione2a65 -; e29d0 (38:69d0) - -Functione29d0: ; e29d0 - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e29e8 - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c - -.asm_e29e8 - ld a, [hl] - and D_LEFT - jr nz, Functione2a48 - ld a, [hl] - and D_RIGHT - jr nz, Functione2a56 - jr Functione2a65 +Unknown_b9926: ; b9926 +INCBIN "gfx/unknown/0b9926.1bpp" -Functione29f4: ; e29f4 - ld hl, hJoyLast - ld a, [wcb2d] - ld d, a - ld a, [wcb2c] - ld e, a - and a - jr z, .asm_e2a0c +Unknown_b992e: ; b992e +INCBIN "gfx/unknown/0b992e.1bpp" - ld a, [hl] - and D_UP - jr nz, Functione2a18 - ld a, [hl] - and D_DOWN - jr nz, Functione2a2c +Unknown_b9936: ; b9936 +INCBIN "gfx/unknown/0b9936.1bpp" -.asm_e2a0c - ld a, [hl] - and D_LEFT - jr nz, Functione2a48 - ld a, [hl] - and D_RIGHT - jr nz, Functione2a56 - jr Functione2a65 +Unknown_b993e: ; b993e +INCBIN "gfx/unknown/0b993e.1bpp" -Functione2a18: ; e2a18 (38:6a18) - ld hl, wcb2b - ld a, [hl] - and a - jr z, .asm_e2a22 - dec [hl] - jr Functione2a68 +Unknown_b9946: ; b9946 +INCBIN "gfx/unknown/0b9946.1bpp" -.asm_e2a22 - ld hl, wcb2a - ld a, [hl] - and a - jr z, Functione2a65 - dec [hl] - jr Functione2a68 +Unknown_b994e: ; b994e +INCBIN "gfx/unknown/0b994e.1bpp" -Functione2a2c: ; e2a2c (38:6a2c) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - inc a - cp e - jr nc, Functione2a65 +Unknown_b995e: ; b995e +INCBIN "gfx/unknown/0b995e.1bpp" - ld hl, wcb2b - ld a, [hl] - inc a - cp d - jr nc, .asm_e2a42 - inc [hl] - jr Functione2a68 +Unknown_b9966: ; b9966 +INCBIN "gfx/unknown/0b9966.1bpp" -.asm_e2a42 - ld hl, wcb2a - inc [hl] - jr Functione2a68 -; e2a48 (38:6a48) +Unknown_b996e: ; b996e +INCBIN "gfx/unknown/0b996e.1bpp" -Functione2a48: ; e2a48 - ld hl, wcb2e - ld a, [hl] - and a - jr z, .asm_e2a52 - dec [hl] - jr Functione2a6c +Unknown_b9976: ; b9976 +INCBIN "gfx/unknown/0b9976.1bpp" -.asm_e2a52 - ld [hl], $e - jr Functione2a6c +Unknown_b997e: ; b997e +INCBIN "gfx/unknown/0b997e.1bpp" -Functione2a56: ; e2a56 - ld hl, wcb2e - ld a, [hl] - cp $e - jr z, .asm_e2a61 - inc [hl] - jr Functione2a6c +Unknown_b998e: ; b998e +INCBIN "gfx/unknown/0b998e.1bpp" -.asm_e2a61 - ld [hl], $0 - jr Functione2a6c +Unknown_b9996: ; b9996 +INCBIN "gfx/unknown/0b9996.1bpp" -Functione2a65: ; e2a65 (38:6a65) - xor a - and a - ret +MailDratiniGFX: ; b99c6 +INCBIN "gfx/unknown/0b99c6.1bpp" -Functione2a68: ; e2a68 (38:6a68) - ld a, $1 - and a - ret -; e2a6c (38:6a6c) +MailPoliwagGFX: ; b99f6 +INCBIN "gfx/unknown/0b99f6.1bpp" -Functione2a6c: ; e2a6c - scf - ret -; e2a6e +MailLaprasGFX: ; b9a26 +INCBIN "gfx/unknown/0b9a26.1bpp" -Functione2a6e: ; e2a6e (38:6a6e) - push de - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - pop de - hlcoord 1, 16 - call PlaceString - ret -; e2a80 (38:6a80) +MailPikaGFX: ; b9a56 +INCBIN "gfx/unknown/0b9a56.1bpp" -Functione2a80: ; e2a80 - call Functione2a8e - hlcoord 8, 1 - ld [hl], $5f - hlcoord 19, 1 - ld [hl], $5e - ret -; e2a8e +MailDittoGFX: ; b9a86 +INCBIN "gfx/unknown/0b9a86.1bpp" -Functione2a8e: ; e2a8e (38:6a8e) - hlcoord 8, 0 - lb bc, 1, 10 - call TextBox +MailMewGFX: ; b9ab6 +INCBIN "gfx/unknown/0b9ab6.1bpp" - ld a, [wcb2e] - and a - jr z, .party +MailDragoniteGFX: ; b9b46 +INCBIN "gfx/unknown/0b9b46.1bpp" - cp NUM_BOXES + 1 - jr nz, .gotbox +MailSentretGFX: ; b9bce +INCBIN "gfx/unknown/0b9bce.1bpp" - ld a, [wCurBox] - inc a -.gotbox - dec a - ld hl, wBoxNames - ld bc, BOX_NAME_LENGTH - call AddNTimes - ld e, l - ld d, h - jr .print +Unknown_b9bee: ; b9bee +INCBIN "gfx/unknown/0b9bee.1bpp" -.party - ld de, String_e2abd -.print - hlcoord 10, 1 - call PlaceString - ret -; e2abd (38:6abd) +Unknown_b9bfe: ; b9bfe +INCBIN "gfx/unknown/0b9bfe.1bpp" -String_e2abd: - db "PARTY @" -; e2ac6 +MailOddishGFX: ; b9c1e +INCBIN "gfx/unknown/0b9c1e.1bpp" -PCMonInfo: ; e2ac6 (38:6ac6) -; Display a monster's pic and -; attributes when highlighting -; it in a PC menu. +Unknown_b9c3e: ; b9c3e +INCBIN "gfx/unknown/0b9c3e.1bpp" -; Includes the neat cascading -; effect when showing the pic. +Unknown_b9c5e: ; b9c5e +INCBIN "gfx/unknown/0b9c5e.1bpp" -; Example: Species, level, gender, -; whether it's holding an item. +Unknown_b9c7e: ; b9c7e +INCBIN "gfx/unknown/0b9c7e.1bpp" - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox +Unknown_b9c96: ; b9c96 +INCBIN "gfx/unknown/0b9c96.1bpp" - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox +Unknown_b9c9e: ; b9c9e +INCBIN "gfx/unknown/0b9c9e.1bpp" - call Functione2def - and a - ret z - cp $ff - ret z +Unknown_b9cbe: ; b9cbe +INCBIN "gfx/unknown/0b9cbe.1bpp" - ld [wd265], a - hlcoord 1, 4 - xor a - ld b, 7 -.asm_e2ae9 - ld c, 7 - push af - push hl -.asm_e2aed - ld [hli], a - add 7 - dec c - jr nz, .asm_e2aed - pop hl - ld de, 20 - add hl, de - pop af - inc a - dec b - jr nz, .asm_e2ae9 +Unknown_b9cde: ; b9cde +INCBIN "gfx/unknown/0b9cde.1bpp" - call Functione2b6d - ld a, [wd265] - ld [CurPartySpecies], a - ld [CurSpecies], a - ld hl, TempMonDVs - predef GetUnownLetter - call GetBaseData - ld de, VTiles2 tile $00 - predef GetFrontpic - xor a - ld [wcb32], a - ld a, [CurPartySpecies] - ld [wd265], a +Unknown_b9cfe: ; b9cfe +INCBIN "gfx/unknown/0b9cfe.1bpp" - cp EGG - ret z +MailCloudGFX: ; b9d16 +INCBIN "gfx/unknown/0b9d16.1bpp" - call GetBasePokemonName - hlcoord 1, 14 - call PlaceString +Unknown_b9d26: ; b9d26 +INCBIN "gfx/unknown/0b9d26.1bpp" - hlcoord 1, 12 - call PrintLevel +Unknown_b9d3e: ; b9d3e +INCBIN "gfx/unknown/0b9d3e.1bpp" - ld a, $3 - ld [MonType], a - callba GetGender - jr c, .asm_e2b4f - ld a, "♂" - jr nz, .printgender - ld a, "♀" -.printgender - hlcoord 5, 12 - ld [hl], a -.asm_e2b4f +Unknown_b9d46: ; b9d46 +INCBIN "gfx/unknown/0b9d46.1bpp" - ld a, [TempMonItem] - and a - ret z +Unknown_b9d76: ; b9d76 +INCBIN "gfx/unknown/0b9d76.1bpp" - ld d, a - callab ItemIsMail - jr c, .mail - ld a, $5d ; item icon - jr .printitem -.mail - ld a, $1 - ld [wcb32], a - ld a, $5c ; mail icon -.printitem - hlcoord 7, 12 - ld [hl], a - ret +Unknown_b9d86: ; b9d86 +INCBIN "gfx/unknown/0b9d86.1bpp" -Functione2b6d: ; e2b6d (38:6b6d) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld d, $0 - ld hl, wc801 -rept 3 - add hl, de -endr - ld a, [hl] - and a - jr z, .asm_e2bc6 - cp $f - jr z, .asm_e2bf5 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - push hl - ld bc, $35 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a - pop hl - push hl - ld bc, $17 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a - pop hl - ld bc, $2b - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - call CloseSRAM - ret -.asm_e2bc6 - ld hl, PartyMon1Level - ld bc, $30 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a - ld hl, PartyMon1Item - ld bc, $30 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a - ld hl, PartyMon1DVs - ld bc, $30 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a - ret +Unknown_b9db6: ; b9db6 +INCBIN "gfx/unknown/0b9db6.1bpp" -.asm_e2bf5 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxMon1Level - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonLevel], a +Unknown_b9dc6: ; b9dc6 +INCBIN "gfx/unknown/0b9dc6.1bpp" - ld hl, sBoxMon1Item - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - ld [TempMonItem], a +Unknown_b9dce: ; b9dce +INCBIN "gfx/unknown/0b9dce.1bpp" - ld hl, sBoxMon1DVs - ld bc, $20 - ld a, e - call AddNTimes - ld de, TempMonDVs - ld a, [hli] - ld [de], a - inc de - ld a, [hl] - ld [de], a +Unknown_b9df6: ; b9df6 +INCBIN "gfx/unknown/0b9df6.1bpp" - call CloseSRAM - ret +Unknown_b9e06: ; b9e06 +INCBIN "gfx/unknown/0b9e06.1bpp" -Functione2c2c: ; e2c2c (38:6c2c) - hlcoord 8, 2 - lb bc, 10, 10 - call TextBox +Unknown_b9e26: ; b9e26 +INCBIN "gfx/unknown/0b9e26.1bpp" - hlcoord 8, 2 - ld [hl], "└" - hlcoord 19, 2 - ld [hl], "┘" +Unknown_b9e4e: ; b9e4e +INCBIN "gfx/unknown/0b9e4e.1bpp" - ld a, [wcb2a] - ld e, a - ld d, 0 - ld hl, OverworldMap -rept 3 - add hl, de -endr - ld e, l - ld d, h - hlcoord 9, 4 - ld a, [wcb2d] -.asm_e2c53 - push af - push de - push hl - call Functione2c6e - pop hl - ld de, $28 - add hl, de - pop de -rept 3 - inc de -endr - pop af - dec a - jr nz, .asm_e2c53 - ret -; e2c67 (38:6c67) -String_e2c67: - db "CANCEL@" -; e2c6e +ItemIsMail: ; b9e76 + ld a, d + ld hl, .items + ld de, 1 + jp IsInArray +; b9e80 -Functione2c6e: ; e2c6e (38:6c6e) - ld a, [de] - and a - ret z - cp $ff - jr nz, .asm_e2c7c - ld de, String_e2c67 - call PlaceString - ret -.asm_e2c7c - inc de - ld a, [de] - ld b, a - inc de - ld a, [de] - ld e, a - ld a, b - and a - jr z, .asm_e2cc8 - cp $f - jr z, .asm_e2cf1 - push hl - call Functione3396 - ld a, b - call GetSRAMBank - push hl - ld bc, $16 - add hl, bc - ld bc, $20 - ld a, e - call AddNTimes - ld a, [hl] - pop hl - and a - jr z, .asm_e2cc2 - ld bc, $372 - add hl, bc - ld bc, $b - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, $b - call CopyBytes - call CloseSRAM - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2cc2 - call CloseSRAM - pop hl - jr .asm_e2d23 -.asm_e2cc8 - push hl - ld hl, PartySpecies - ld d, $0 - add hl, de - ld a, [hl] - and a - jr z, .asm_e2cee - ld hl, PartyMonNicknames - ld bc, $b - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, $b - call CopyBytes - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2cee - pop hl - jr .asm_e2d23 -.asm_e2cf1 - push hl - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies - ld d, $0 - add hl, de - ld a, [hl] - and a - jr z, .asm_e2d1f - ld hl, sBoxMonNicknames - ld bc, PKMN_NAME_LENGTH - ld a, e - call AddNTimes - ld de, StringBuffer1 - ld bc, PKMN_NAME_LENGTH - call CopyBytes - call CloseSRAM - pop hl - ld de, StringBuffer1 - call PlaceString - ret -.asm_e2d1f - call CloseSRAM - pop hl -.asm_e2d23 - ld de, String_e2d2a - call PlaceString - ret -; e2d2a (38:6d2a) +.items + db FLOWER_MAIL + db SURF_MAIL + db LITEBLUEMAIL + db PORTRAITMAIL + db LOVELY_MAIL + db EON_MAIL + db MORPH_MAIL + db BLUESKY_MAIL + db MUSIC_MAIL + db MIRAGE_MAIL + db $ff +; b9e8b -String_e2d2a: - db "-----@" -; e2d30 -Functione2d30: ; e2d30 (38:6d30) - xor a - ld hl, OverworldMap - ld bc, $5a - call ByteFill - ld de, OverworldMap - xor a - ld [wd003], a - ld [wd004], a - ld a, [wcb2e] - and a - jr z, .asm_e2d87 - cp $f - jr z, .asm_e2db7 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - inc hl -.asm_e2d57 - ld a, [hl] - cp $ff - jr z, .asm_e2d79 - and a - jr z, .asm_e2d79 - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2d57 -.asm_e2d79 - call CloseSRAM - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret -.asm_e2d87 - ld hl, PartySpecies -.asm_e2d8a - ld a, [hl] - cp $ff - jr z, .asm_e2dac - and a - jr z, .asm_e2dac - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2d8a -.asm_e2dac - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret -.asm_e2db7 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies -.asm_e2dbf - ld a, [hl] - cp $ff - jr z, .asm_e2de1 - and a - jr z, .asm_e2de1 - ld [de], a - inc de - ld a, [wcb2e] - ld [de], a - inc de - ld a, [wd003] - ld [de], a - inc a - ld [wd003], a - inc de - inc hl - ld a, [wd004] - inc a - ld [wd004], a - jr .asm_e2dbf -.asm_e2de1 - call CloseSRAM - ld a, $ff - ld [de], a - ld a, [wd004] - inc a - ld [wcb2c], a - ret +SECTION "bank2F", ROMX, BANK[$2F] -Functione2def: ; e2def (38:6def) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld d, $0 - ld hl, OverworldMap -rept 3 - add hl, de -endr - ld a, [hl] - ret +INCLUDE "engine/std_scripts.asm" -Functione2e01: ; e2e01 (38:6e01) - ld a, [wcb2c] - and a - jr nz, .asm_e2e0b - call ClearSprites - ret -.asm_e2e0b - ld hl, Unknown_e2e2b - ld de, Sprites -.done1 - ld a, [hl] - cp $ff - ret z - ld a, [wcb2b] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - jr .done1 -; e2e2b (38:6e2b) - -Unknown_e2e2b: ; e2e2b - db $26, $50, $00, $00 - db $26, $58, $00, $00 - db $26, $60, $00, $00 - db $26, $68, $00, $00 - db $26, $70, $00, $00 - db $26, $78, $00, $00 - db $26, $80, $00, $00 - db $26, $88, $00, $00 - db $26, $90, $00, $00 - db $26, $97, $00, $00 - db $39, $50, $00, $40 - db $39, $58, $00, $40 - db $39, $60, $00, $40 - db $39, $68, $00, $40 - db $39, $70, $00, $40 - db $39, $78, $00, $40 - db $39, $80, $00, $40 - db $39, $88, $00, $40 - db $39, $90, $00, $40 - db $39, $97, $00, $40 - db $2e, $4e, $01, $00 - db $31, $4e, $01, $40 - db $2e, $99, $01, $20 - db $31, $99, $01, $60 - db $ff -; e2e8c +INCLUDE "engine/phone_scripts.asm" -Functione2e8c: ; e2e8c - ld hl, Unknown_e2eac - ld de, Sprites -.asm_e2e92 - ld a, [hl] - cp $ff - ret z - ld a, [wcb2b] - and $7 - swap a - add [hl] - inc hl - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - ld a, [hli] - ld [de], a - inc de - jr .asm_e2e92 -; e2eac - -Unknown_e2eac: ; e2eac - db $27, $50, $06, $00 - db $2b, $58, $00, $40 - db $2b, $60, $00, $40 - db $2b, $68, $00, $40 - db $2b, $70, $00, $40 - db $2b, $78, $00, $40 - db $2b, $80, $00, $40 - db $2b, $88, $00, $40 - db $2b, $90, $00, $40 - db $27, $98, $07, $00 - db $ff -; e2ed5 +TalkToTrainerScript:: ; 0xbe66a + faceplayer + trainerstatus CHECK_FLAG + iftrue AlreadyBeatenTrainerScript + loadtrainerdata + playrammusic + jump StartBattleWithMapTrainerScript +; 0xbe675 -Functione2ed5: ; e2ed5 -.asm_e2ed5 - push bc - push hl -.asm_e2ed7 - ld [hli], a - dec c - jr nz, .asm_e2ed7 - pop hl - ld bc, SCREEN_WIDTH - add hl, bc - pop bc - dec b - jr nz, .asm_e2ed5 - ret -; e2ee5 +SeenByTrainerScript:: ; 0xbe675 + loadtrainerdata + playrammusic + showemote EMOTE_SHOCK, LAST_TALKED, 30 + callasm TrainerWalkToPlayer + applymovement2 MovementBuffer + writepersonxy LAST_TALKED + faceperson PLAYER, LAST_TALKED + jump StartBattleWithMapTrainerScript +; 0xbe68a -Functione2ee5: ; e2ee5 - ld hl, wcb2e - ld a, [wcb31] - cp [hl] - jr z, .asm_e2f00 - ld a, [wcb2e] - and a - jr z, .asm_e2ef8 - ld e, $15 - jr .asm_e2efa +StartBattleWithMapTrainerScript: ; 0xbe68a + loadfont + trainertext $0 + closetext + loadmovesprites + loadtrainerdata + startbattle + returnafterbattle + trainerstatus SET_FLAG + loadvar wd04d, -1 -.asm_e2ef8 - ld e, $7 +AlreadyBeatenTrainerScript: + scripttalkafter +; 0xbe699 -.asm_e2efa - ld a, [wcb2c] - cp e - jr nc, .asm_e2f02 -.asm_e2f00 - and a - ret -.asm_e2f02 - ld de, PCString_TheresNoRoom - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret -; e2f18 +SECTION "bank30", ROMX, BANK[$30] -Functione2f18: ; e2f18 (38:6f18) - ld a, [wcb2e] - and a - jr nz, .Okay - ld a, [wcb2c] - cp $3 - jr c, .ItsYourLastPokemon - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba CheckCurPartyMonFainted - jr c, .AllOthersFainted - ld a, [wcb32] - and a - jr nz, .HasMail -.Okay - and a - ret -.HasMail - ld de, PCString_RemoveMail - jr .NotOkay -.AllOthersFainted - ld de, PCString_NoMoreUsablePKMN - jr .NotOkay -.ItsYourLastPokemon - ld de, PCString_ItsYourLastPKMN -.NotOkay - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret +INCLUDE "gfx/overworld/sprites_1.asm" -Functione2f5f: ; e2f5f (38:6f5f) - ld a, [CurPartySpecies] - cp EGG - jr z, .asm_e2f68 - and a - ret -.asm_e2f68 - ld de, PCString_NoReleasingEGGS - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret +SECTION "bank31", ROMX, BANK[$31] -Functione2f7e: ; e2f7e (38:6f7e) - call LowVolume - call Functione2fd6 - ld a, $3 - ld [MonType], a - predef StatsScreenInit - call Functione33e8 - call MaxVolume - ret +INCLUDE "gfx/overworld/sprites_2.asm" -Functione2f95: ; e2f95 (38:6f95) - ld hl, hJoyPressed ; $ffa7 - ld a, [hl] - and A_BUTTON | B_BUTTON | D_RIGHT + D_LEFT - ld [wcf73], a - jr nz, .asm_e2fd0 - ld a, [hl] - and D_DOWN | D_UP - ld [wcf73], a - jr nz, .asm_e2faa - jr .asm_e2fd0 -.asm_e2faa - call Functione2998 - and a - jr z, .asm_e2fd1 - call Functione2def - ld [wd265], a - call Functione2b6d - ld a, [wd265] - ld [CurPartySpecies], a - ld [CurSpecies], a - ld hl, TempMonDVs - predef GetUnownLetter - call GetBaseData - call Functione2fd6 -.asm_e2fd0 - ret -.asm_e2fd1 - xor a - ld [wcf73], a - ret -Functione2fd6: ; e2fd6 (38:6fd6) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, [wcb2e] +SECTION "bank32", ROMX, BANK[$32] + +INCLUDE "battle/bg_effects.asm" + +INCLUDE "battle/anims.asm" + +Functioncbcdd: ; cbcdd + call Functioncbce5 + ld a, [hCGB] and a - jr z, .asm_e3020 - cp $f - jr nz, .asm_e3048 - ld a, BANK(sBox) - call GetSRAMBank - ld hl, sBoxSpecies - call Functione3357 - ld hl, sBoxMonNicknames - call Functione3363 - ld hl, sBoxMonOT - call Functione3376 - ld hl, sBoxMons - ld bc, BOXMON_STRUCT_LENGTH - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - ld bc, $30 - call CopyBytes - call CloseSRAM - callba Function5088b - ret -.asm_e3020 - ld hl, PartySpecies - call Functione3357 - ld hl, PartyMonNicknames - call Functione3363 - ld hl, PartyMonOT - call Functione3376 - ld hl, PartyMons ; wdcdf (aliases: PartyMon1, PartyMon1Species) - ld bc, $30 - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - ld bc, $30 - call CopyBytes - ret -.asm_e3048 - ld b, a - call Functione3396 - ld a, b - call GetSRAMBank - push hl - inc hl - call Functione3357 - pop hl - push hl - ld bc, $372 - add hl, bc - call Functione3363 - pop hl - push hl - ld bc, $296 - add hl, bc - call Functione3376 - pop hl - ld bc, $16 - add hl, bc - ld bc, $20 - call Functione3389 - call CloseSRAM - callba Function5088b + ret nz ret +; cbce5 -Functione307c: ; e307c (38:707c) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld hl, PartyMonNicknames - ld a, [CurPartyMon] - call GetNick - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - predef SentGetPkmnIntoFromBox - jr c, .asm_boxisfull - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ld a, [CurPartySpecies] - call PlayCry - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - call WaitBGMap - hlcoord 1, 16 - ld de, PCString_Stored - call PlaceString - ld l, c - ld h, b - ld de, StringBuffer1 - call PlaceString - ld a, "!" - ld [bc], a - ld c, 50 - call DelayFrames +Functioncbce5: ; cbce5 + ld a, [hCGB] and a - ret + jr nz, .asm_cbd06 + ld a, [TimeOfDayPal] + and $3 + cp $3 + ld a, $0 + jr z, .asm_cbcf7 + ld a, $aa -.asm_boxisfull - ld de, PCString_BoxFull - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 +.asm_cbcf7 + call DmgToCgbBGPals + ld c, 4 call DelayFrames - scf + callba _UpdateTimePals ret -TryWithdrawPokemon: ; e30fa (38:70fa) - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - ld a, BANK(sBoxMonNicknames) - call GetSRAMBank - ld a, [CurPartyMon] - ld hl, sBoxMonNicknames - call GetNick - call CloseSRAM - xor a - ld [wPokemonWithdrawDepositParameter], a - predef SentGetPkmnIntoFromBox - jr c, .PartyFull - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ld a, [CurPartySpecies] - call PlayCry - hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - call WaitBGMap - hlcoord 1, 16 - ld de, PCString_Got - call PlaceString - ld l, c - ld h, b - ld de, StringBuffer1 - call PlaceString - ld a, $e7 - ld [bc], a - ld c, 50 +.asm_cbd06 + ld a, [rSVBK] + push af + ld a, $5 + ld [rSVBK], a + ld hl, BGPals + ld c, $20 +.asm_cbd12 +; RGB 31, 21, 28 + ld a, $bc + ld [hli], a + ld a, $7e + ld [hli], a + dec c + jr nz, .asm_cbd12 + pop af + ld [rSVBK], a + ld a, $1 + ld [hCGBPalUpdate], a + ld c, 4 call DelayFrames - and a + callba _UpdateTimePals ret +; cbd2e -.PartyFull - ld de, PCString_PartyFull - call Functione2a6e - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - scf - ret +TheEndGFX:: ; cbd2e +INCBIN "gfx/credits/theend.2bpp" +; cbe2e + + +SECTION "bank33", ROMX, BANK[$33] +DisplayCaughtContestMonStats: ; cc000 + + call ClearBGPalettes + call ClearTileMap + call ClearSprites + call LoadFontsBattleExtra + + ld hl, Options + ld a, [hl] + push af + set 4, [hl] -Functione3180: ; e3180 (38:7180) hlcoord 0, 0 - lb bc, 15, 8 - call ClearBox - hlcoord 8, 14 - lb bc, 1, 3 - call ClearBox - hlcoord 0, 15 - lb bc, 1, 18 + ld b, 4 + ld c, 13 call TextBox - call WaitBGMap - ld a, [CurPartySpecies] - call GetCryIndex - jr c, .asm_e31ab - ld e, c - ld d, b - call PlayCryHeader -.asm_e31ab + hlcoord 0, 6 + ld b, 4 + ld c, 13 + call TextBox - ld a, [CurPartySpecies] - ld [wd265], a - call GetPokemonName - hlcoord 1, 16 - ld de, PCString_ReleasedPKMN + hlcoord 2, 0 + ld de, .Stock call PlaceString - ld c, 80 - call DelayFrames - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - hlcoord 1, 16 - ld de, PCString_Bye + + hlcoord 2, 6 + ld de, .This call PlaceString - ld l, c - ld h, b - inc hl + + hlcoord 5, 4 + ld de, .Health + call PlaceString + + hlcoord 5, 10 + ld de, .Health + call PlaceString + + ld a, [wContestMon] + ld [wd265], a + call GetPokemonName ld de, StringBuffer1 + hlcoord 1, 2 call PlaceString - ld l, c + ld h, b - ld [hl], $e7 - ld c, 50 - call DelayFrames - ret -; e31e7 (38:71e7) + ld l, c + ld a, [wContestMonLevel] + ld [TempMonLevel], a + call PrintLevel -Functione31e7: ; e31e7 - push hl - push de - push bc - push af - hlcoord 0, 15 - lb bc, 1, 18 - call TextBox - hlcoord 1, 16 - ld de, String_e3233 + ld de, EnemyMonNick + hlcoord 1, 8 call PlaceString - ld c, 20 - call DelayFrames - pop af - pop bc - pop de - pop hl - ld a, [wCurBox] - push af - ld bc, 0 - ld a, [wcb31] - and a - jr nz, .asm_e3215 - set 0, c -.asm_e3215 - ld a, [wcb2e] - and a - jr nz, .asm_e321d - set 1, c + ld h, b + ld l, c + ld a, [EnemyMonLevel] + ld [TempMonLevel], a + call PrintLevel + + hlcoord 11, 4 + ld de, wContestMonMaxHP + lb bc, 2, 3 + call PrintNum -.asm_e321d - ld hl, Jumptable_e3245 -rept 2 - add hl, bc -endr - ld a, [hli] - ld h, [hl] - ld l, a - ld de, Functione322a - push de - jp [hl] -; e322a + hlcoord 11, 10 + ld de, EnemyMonMaxHP + call PrintNum + + ld hl, SwitchMonText + call PrintText -Functione322a: ; e322a pop af - ld e, a - callba Function14ad5 + ld [Options], a + + call WaitBGMap + ld b, $8 + call GetSGBLayout + call SetPalettes ret -; e3233 +; cc0a7 -String_e3233: - db "Saving… Leave ON!@" -; e3245 +.Health + db "HEALTH@" +.Stock + db " STOCK ", $4a, " @" +.This + db " THIS ", $4a, " @" -Jumptable_e3245: ; e3245 - dw Functione324d - dw Functione3267 - dw Functione327d - dw Functione3284 -; e324d +SwitchMonText: ; cc0c2 + ; Switch #MON? + text_jump UnknownText_0x1c10cf + db "@" +; cc0c7 -Functione324d: ; e324d - ld hl, wcb31 - ld a, [wcb2e] - cp [hl] - jr z, .asm_e325d - call Functione32b0 - call Functione32fa - ret +DisplayAlreadyCaughtText: ; cc0c7 + call GetPokemonName + ld hl, .AlreadyCaughtText + jp PrintText +; cc0d0 -.asm_e325d - call Functione32b0 - call Functione328e - call Functione32fa - ret -; e3267 +.AlreadyCaughtText: ; 0xcc0d0 + ; You already caught a @ . + text_jump UnknownText_0x1c10dd + db "@" +; 0xcc0d5 -Functione3267: ; e3267 - call Functione3316 - ld a, $1 - ld [wc2cd], a - callba SaveGameData - xor a - ld [wc2cd], a - call Functione32fa +Predef2F: +Predef38: +Predef39: ; cc0d5 ret -; e327d +; cc0d6 -Functione327d: ; e327d - call Functione32b0 - call Functione3346 - ret -; e3284 -Functione3284: ; e3284 - call Functione3316 - call Functione328e - call Functione3346 - ret -; e328e +INCLUDE "battle/anim_commands.asm" -Functione328e: ; e328e - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld e, a - ld a, [wcb30] - ld hl, wcb2f - add [hl] - cp e - ret nc - ld hl, wcb2b - ld a, [hl] - and a - jr z, .asm_e32a8 - dec [hl] - ret +INCLUDE "battle/anim_objects.asm" -.asm_e32a8 - ld hl, wcb2a - ld a, [hl] - and a - ret z - dec [hl] - ret -; e32b0 -Functione32b0: ; e32b0 - ld a, [wcb31] - dec a - ld e, a - callba Function14ac2 - ld a, [wcb30] - ld hl, wcb2f - add [hl] - ld [CurPartyMon], a - ld a, $1 - call GetSRAMBank - ld hl, sBoxSpecies - call Functione3357 - ld hl, sBoxMonNicknames - call Functione3363 - ld hl, sBoxMonOT - call Functione3376 - ld hl, sBoxMons - ld bc, BOXMON_STRUCT_LENGTH - call Functione3389 - call CloseSRAM - callba Function5088b - ld a, PC_DEPOSIT - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ret -; e32fa +SECTION "Pic Animations 1", ROMX, BANK[$34] -Functione32fa: ; e32fa - ld a, [wcb2e] - dec a - ld e, a - callba Function14ac2 - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba Function51322 - ret -; e3316 +INCLUDE "gfx/pics/animation.asm" -Functione3316: ; e3316 - ld a, [wcb30] - ld hl, wcb2f - add [hl] - ld [CurPartyMon], a - ld hl, PartySpecies - call Functione3357 - ld hl, PartyMonNicknames - call Functione3363 - ld hl, PartyMonOT - call Functione3376 - ld hl, PartyMon1Species - ld bc, PARTYMON_STRUCT_LENGTH - call Functione3389 - xor a - ld [wPokemonWithdrawDepositParameter], a - callba Functione039 - ret -; e3346 +; Pic animations are assembled in 3 parts: -Functione3346: ; e3346 - ld a, [wcb2b] - ld hl, wcb2a - add [hl] - ld [CurPartyMon], a - callba Function5138b - ret -; e3357 +; Top-level animations: +; frame #, duration: Frame 0 is the original pic (no change) +; setrepeat #: Sets the number of times to repeat +; dorepeat #: Repeats from command # (starting from 0) +; end -Functione3357: ; e3357 (38:7357) - ld a, [CurPartyMon] - ld c, a - ld b, $0 - add hl, bc - ld a, [hl] - ld [CurPartySpecies], a - ret +; Bitmasks: +; Layered over the pic to designate affected tiles -Functione3363: ; e3363 (38:7363) - ld bc, $b - ld a, [CurPartyMon] - call AddNTimes - ld de, wd002 - ld bc, $b - call CopyBytes - ret +; Frame definitions: +; first byte is the bitmask used for this frame +; following bytes are tile ids mapped to each bit in the mask -Functione3376: ; e3376 (38:7376) - ld bc, $b - ld a, [CurPartyMon] - call AddNTimes - ld de, wd00d - ld bc, $b - call CopyBytes - ret +; Main animations (played everywhere) +INCLUDE "gfx/pics/anim_pointers.asm" +INCLUDE "gfx/pics/anims.asm" -Functione3389: ; e3389 (38:7389) - ld a, [CurPartyMon] - call AddNTimes - ld de, wd018 - call CopyBytes - ret +; Extra animations, appended to the main animation +; Used in the status screen (blinking, tail wags etc.) +INCLUDE "gfx/pics/extra_pointers.asm" +INCLUDE "gfx/pics/extras.asm" -Functione3396: ; e3396 (38:7396) - dec b - ld c, b - ld b, 0 - ld hl, Unknown_e33a6 -rept 3 - add hl, bc -endr - ld a, [hli] - ld b, a - ld a, [hli] - ld h, [hl] - ld l, a - ret -; e33a6 (38:73a6) +; Unown has its own animation data despite having an entry in the main tables +INCLUDE "gfx/pics/unown_anim_pointers.asm" +INCLUDE "gfx/pics/unown_anims.asm" +INCLUDE "gfx/pics/unown_extra_pointers.asm" +INCLUDE "gfx/pics/unown_extras.asm" -Unknown_e33a6: ; e33a6 - ; bank, address - dba sBox1 - dba sBox2 - dba sBox3 - dba sBox4 - dba sBox5 - dba sBox6 - dba sBox7 - dba sBox8 - dba sBox9 - dba sBox10 - dba sBox11 - dba sBox12 - dba sBox13 - dba sBox14 -; e33d0 +; Bitmasks +INCLUDE "gfx/pics/bitmask_pointers.asm" +INCLUDE "gfx/pics/bitmasks.asm" +INCLUDE "gfx/pics/unown_bitmask_pointers.asm" +INCLUDE "gfx/pics/unown_bitmasks.asm" -Functione33d0: ; e33d0 (38:73d0) - ld b, a - call GetSGBLayout - ld a, $e4 - call DmgToCgbBGPals - ld a, $fc - call Functioncf8 - ret -Functione33df: ; e33df (38:73df) - ld e, a - ld d, $0 -rept 2 - add hl, de -endr - ld a, [hli] - ld h, [hl] - ld l, a - ret +SECTION "Pic Animations 2", ROMX, BANK[$35] -Functione33e8: ; e33e8 (38:73e8) - call DisableLCD - ld hl, VTiles2 tile $00 - ld bc, $310 - xor a - call ByteFill - call LoadStandardFont - call LoadFontsBattleExtra - ld hl, PCMailGFX - ld de, VTiles2 tile $5c - ld bc, $40 - call CopyBytes - ld hl, PCSelectLZ - ld de, VTiles0 tile $00 - call Decompress - ld a, 6 - call SkipMusic - call EnableLCD - ret -; e3419 (38:7419) - -PCSelectLZ: INCBIN "gfx/pc.2bpp.lz" -PCMailGFX: INCBIN "gfx/pc_mail.2bpp" -; e34dd - -PCString_ChooseaPKMN: db "Choose a .@" -PCString_WhatsUp: db "What's up?@" -PCString_ReleasePKMN: db "Release ?@" -PCString_MoveToWhere: db "Move to where?@" -PCString_ItsYourLastPKMN: db "It's your last !@" -PCString_TheresNoRoom: db "There's no room!@" -PCString_NoMoreUsablePKMN: db "No more usable !@" -PCString_RemoveMail: db "Remove MAIL.@" -PCString_ReleasedPKMN: db "Released .@" -PCString_Bye: db "Bye,@" -PCString_Stored: db "Stored @" -PCString_Got: db "Got @" -PCString_Non: db "Non.@" -PCString_BoxFull: db "The BOX is full.@" -PCString_PartyFull: db "The party's full!@" -PCString_NoReleasingEGGS: db "No releasing EGGS!@" -; e35aa - -Functione35aa: ; e35aa (38:75aa) - call LoadStandardMenuDataHeader - call Functione35e2 -.loop - xor a - ld [hBGMapMode], a - call Functione36cf - call Functione379c - ld hl, Functione35aa_menudataheader - call CopyMenuDataHeader - xor a - ld [wd0e4], a - hlcoord 0, 4 - lb bc, 8, 9 - call TextBox - call HandleScrollingMenu - ld a, [wcf73] - cp $2 - jr z, .done - call Functione37af - call Functione36f9 - jr .loop -.done - call WriteBackup - ret +INCLUDE "gfx/pics/frame_pointers.asm" +INCLUDE "gfx/pics/kanto_frames.asm" -Functione35e2: ; e35e2 (38:75e2) - xor a - ld [hBGMapMode], a - hlcoord 0, 0 - ld bc, SCREEN_WIDTH * SCREEN_HEIGHT - ld a, " " - call ByteFill - ret -; e35f1 (38:75f1) -Functione35aa_menudataheader: ; 0xe35f1 - db $40 ; flags - db 05, 01 ; start coords - db 12, 09 ; end coords - dw .menudata2 - db 1 ; default option -; 0xe35f9 +SECTION "bank36", ROMX, BANK[$36] -.menudata2: ; 0xe35f9 - db $22 ; flags - db 4, 0 - db 1 - dba .boxes - dba .boxnames - dba NULL - dba Functione3632 -; e3609 - -.boxes: ; e3609 - db NUM_BOXES -x = 1 -rept NUM_BOXES - db x -x = x + 1 -endr - db -1 -; e3619 +FontInversed: INCBIN "gfx/misc/font_inversed.1bpp" -.boxnames: ; e3619 - push de - ld a, [MenuSelection] - dec a - call GetBoxName - pop hl - call PlaceString - ret -; e3626 -GetBoxName: ; e3626 (38:7626) - ld bc, BOX_NAME_LENGTH - ld hl, wBoxNames - call AddNTimes - ld d, h - ld e, l - ret -; e3632 (38:7632) +SECTION "Pic Animations 3", ROMX, BANK[$36] -Functione3632: ; e3632 - hlcoord 11, 7 - lb bc, 5, 7 - call TextBox - ld a, [MenuSelection] - cp -1 - ret z - hlcoord 12, 9 - ld de, String_e3663 - call PlaceString - call GetBoxCount - ld [wd265], a - hlcoord 13, 11 - ld de, wd265 - lb bc, 1, 2 - call PrintNum - ld de, String_e3668 - call PlaceString - ret -; e3663 +INCLUDE "gfx/pics/johto_frames.asm" +INCLUDE "gfx/pics/unown_frame_pointers.asm" +INCLUDE "gfx/pics/unown_frames.asm" -String_e3663: ; e3663 - db "#MON@" -; e3668 -String_e3668: ; e3668 - ; db "/20@" - db "/" - db "0" + MONS_PER_BOX / 10 ; "2" - db "0" + MONS_PER_BOX % 10 ; "0" - db "@" -; e366c +SECTION "Tileset Data 6", ROMX, BANK[TILESETS_6] -GetBoxCount: ; e366c (38:766c) - ld a, [wCurBox] - ld c, a - ld a, [MenuSelection] - dec a - cp c - jr z, .activebox - ld c, a - ld b, 0 - ld hl, .boxbanks -rept 3 +INCLUDE "tilesets/data_6.asm" + + +SECTION "bank38", ROMX, BANK[$38] + +Functione0000: ; e0000 + push de + xor a + call GetSRAMBank + ld hl, sScratch + ld bc, 0 +.asm_e000b + push bc + push hl + push bc + ld de, wd002 + call Functione004e + call Functione0057 + ld hl, Unknown_e008b + pop bc +rept 2 add hl, bc endr ld a, [hli] - ld b, a - call GetSRAMBank - ld a, [hli] - ld h, [hl] - ld l, a - ld a, [hl] - call CloseSRAM - ld c, a - ld a, [wSavedAtLeastOnce] - and a - jr z, .newfile + ld e, a + ld d, [hl] + ld hl, wd012 + call Functione004e + pop hl + ld bc, $10 + add hl, bc + pop bc + inc c ld a, c - ret - -.newfile - xor a - ret - -.activebox - ld a, BANK(sBoxCount) + cp $31 + jr c, .asm_e000b + ld hl, OverworldMap + ld de, sScratch + ld bc, $310 + call CopyBytes + pop hl + ld de, sScratch + ld c, $31 + ld a, [hROMBank] ld b, a - call GetSRAMBank - ld hl, sBoxCount - ld a, [hl] + call Get2bpp call CloseSRAM ret -; e36a5 (38:76a5) - -.boxbanks: ; e36a5 - dba sBox1 - dba sBox2 - dba sBox3 - dba sBox4 - dba sBox5 - dba sBox6 - dba sBox7 - dba sBox8 - dba sBox9 - dba sBox10 - dba sBox11 - dba sBox12 - dba sBox13 - dba sBox14 -; e36cf +; e004e -Functione36cf: ; e36cf (38:76cf) - hlcoord 0, 0 - ld b, 2 - ld c, 18 - call TextBox - hlcoord 1, 2 - ld de, String_e36f1 - call PlaceString - ld a, [wCurBox] - and $f - call GetBoxName - hlcoord 11, 2 - call PlaceString +Functione004e: ; e004e + ld c, $10 +.asm_e0050 + ld a, [hli] + ld [de], a + inc de + dec c + jr nz, .asm_e0050 ret -; e36f1 (38:76f1) - -String_e36f1: ; e36f1 - db "CURRENT@" -; e36f9 +; e0057 -Functione36f9: ; e36f9 (38:76f9) - ld hl, MenuDataHeader_0xe377b - call LoadMenuDataHeader - call InterpretMenu2 - call ExitMenu - ret c - ld a, [MenuSelection2] - cp $1 - jr z, .asm_e3734 - cp $2 - jr z, .asm_e3745 - cp $3 - jr z, .asm_e3717 - and a +Functione0057: ; e0057 + ld hl, wd012 + ld e, $80 + ld d, $8 +.asm_e005e + push hl + ld hl, wd002 + call Functione0078 + pop hl + ld a, b + ld [hli], a + push hl + ld hl, wd003 + call Functione0078 + pop hl + ld a, b + ld [hli], a + srl e + dec d + jr nz, .asm_e005e ret +; e0078 -.asm_e3717 - call GetBoxCount - and a - jr z, .asm_e372f - ld e, l - ld d, h - ld a, [MenuSelection] - dec a - ld c, a - callba Function844bc - call Functione35e2 - and a - ret +Functione0078: ; e0078 + ld b, $0 + ld c, $8 +.asm_e007c + ld a, [hli] + and e + jr z, .asm_e0083 + scf + jr .asm_e0084 -.asm_e372f - call Functione37be +.asm_e0083 and a - ret - -.asm_e3734 - ld a, [MenuSelection] - dec a - ld e, a - ld a, [wCurBox] - cp e - ret z - callba Function14a83 - ret -.asm_e3745 - ld b, $4 - ld de, wd002 - callba NamingScreen - call ClearTileMap - call LoadStandardFont - call LoadFontsBattleExtra - ld a, [MenuSelection] - dec a - call GetBoxName - ld e, l - ld d, h - ld hl, wd002 - ld c, $8 - call InitString - ld a, [MenuSelection] - dec a - call GetBoxName - ld de, wd002 - call CopyName2 +.asm_e0084 + rr b + inc hl + dec c + jr nz, .asm_e007c ret -; e3778 (38:7778) - - hlcoord 11, 7 ; XXX - -MenuDataHeader_0xe377b: ; 0xe377b - db $40 ; flags - db 04, 11 ; start coords - db 13, 19 ; end coords - dw MenuData2_0xe3783 - db 1 ; default option -; 0xe3783 +; e008b -MenuData2_0xe3783: ; 0xe3783 - db $80 ; flags - db 4 ; items - db "SWITCH@" - db "NAME@" - db "PRINT@" - db "QUIT@" -; 0xe379c - -Functione379c: ; e379c (38:779c) - ld de, String_e37a1 - jr Functione37e3 -; e37a1 (38:77a1) - -String_e37a1: ; e37a1 - db "Choose a BOX.@" -; e37af - -Functione37af: ; e37af (38:77af) - ld de, String_e37b4 - jr Functione37e3 -; e37b4 (38:77b4) - -String_e37b4: ; e37b4 - db "What's up?@" -; e37be - -Functione37be: ; e37be (38:77be) - ld de, String_e37d3 - call Functione37e3 - ld de, SFX_WRONG - call WaitPlaySFX - call WaitSFX - ld c, 50 - call DelayFrames - ret -; e37d3 (38:77d3) +Unknown_e008b: ; e008b + dw wcaa0, wca30, wc9c0, wc950, wc8e0, wc870, wc800 + dw wcab0, wca40, wc9d0, wc960, wc8f0, wc880, wc810 + dw wcac0, wca50, wc9e0, wc970, wc900, wc890, wc820 + dw wcad0, wca60, wc9f0, wc980, wc910, wc8a0, wc830 + dw wcae0, wca70, wca00, wc990, wc920, wc8b0, wc840 + dw wcaf0, wca80, wca10, wc9a0, wc930, wc8c0, wc850 + dw wcb00, wca90, wca20, wc9b0, wc940, wc8d0, wc860 +; e00ed -String_e37d3: ; e37d3 - db "There's no #MON.@" -; e37e3 +Unknown_e00ed: +; Graphics for an unused Game Corner +; game were meant to be here. -Functione37e3: ; e37e3 (38:77e3) - push de - hlcoord 0, 14 - lb bc, 2, 18 - call TextBox - pop de - hlcoord 1, 16 - call PlaceString - ld a, $1 - ld [hBGMapMode], a +Functione00ed: ; e00ed (38:40ed) ret +; e00ee (38:40ee) +INCLUDE "engine/card_flip.asm" +INCLUDE "engine/dummy_game.asm" +INCLUDE "engine/billspc.asm" SECTION "bank39", ROMX, BANK[$39] @@ -58697,7 +47606,7 @@ _OptionsMenu: ; e41d0 ld a, [hl] push af ld [hl], $1 - call WhiteBGMap + call ClearBGPalettes hlcoord 0, 0 ld b, $10 ld c, $12 @@ -59279,7 +48188,7 @@ Functione455c: ; e455c Functione4579: ; e4579 ld de, MUSIC_NONE call PlayMusic - call WhiteBGMap + call ClearBGPalettes call ClearTileMap ld a, VBGMap0 / $100 ld [hBGMapAddress + 1], a @@ -59669,7 +48578,7 @@ CrystalIntro: ; e48ac call PlayMusic .done - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -60690,7 +49599,7 @@ IntroScene25: ; e50ad (39:50ad) IntroScene26: ; e50bb (39:50bb) ; Load the final scene. - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -60779,7 +49688,7 @@ IntroScene28: ; e5152 (39:5152) ret .clear - call WhiteBGMap + call ClearBGPalettes ret .done @@ -62369,7 +51278,7 @@ Functionfb877: ; fb877 xor a ld [hMapAnims], a call LowVolume - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call UpdateSprites call ClearSprites @@ -66036,7 +54945,7 @@ Function10510b: ; 10510b (41:510b) jp CloseSRAM Function105153: ; 105153 (41:5153) - call WhiteBGMap + call ClearBGPalettes call DisableLCD ld hl, MysteryGiftGFX ld de, VTiles2 tile $00 @@ -66335,7 +55244,7 @@ Function10578c: ; 10578c (41:578c) ret Function1057d7: ; 1057d7 (41:57d7) - call WhiteBGMap + call ClearBGPalettes call DisableLCD ld hl, MysteryGiftJP_GFX ld de, VTiles2 tile $00 @@ -67101,7 +56010,7 @@ String_1dc34c: ; 1dc381 Function1dc381: ; 1dc381 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a @@ -67201,7 +56110,7 @@ Function1dc381: ; 1dc381 ; 1dc47b Function1dc47b: ; 1dc47b - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites xor a diff --git a/maps/BattleTowerBattleRoom.asm b/maps/BattleTowerBattleRoom.asm index 349a61e56..e22057abf 100644 --- a/maps/BattleTowerBattleRoom.asm +++ b/maps/BattleTowerBattleRoom.asm @@ -31,7 +31,7 @@ Script_BattleRoomLoop: ; 0x9f425 keeptextopen loadmovesprites special BattleTowerBattle ; calls predef startbattle - special FadeBlackBGMap + special FadeOutPalettes reloadmap if_not_equal $0, Script_FailedBattleTowerChallenge copybytetovar wNrOfBeatenBattleTowerTrainers ; wcf64 @@ -46,10 +46,10 @@ Script_BattleRoomLoop: ; 0x9f425 closetext loadmovesprites playmusic MUSIC_HEAL - special FadeBlackBGMap + special FadeOutPalettes special LoadMapPalettes pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic loadfont writetext Text_NextUpOpponentNo @@ -73,7 +73,7 @@ Script_DontBattleNextOpponent: ; 0x9f483 special BattleTowerAction playsound SFX_SAVE waitbutton - special FadeBlackBGMap + special FadeOutPalettes special Reset Script_DontSaveAndEndTheSession: ; 0x9f4a3 writetext Text_CancelYourBattleRoomChallenge @@ -84,7 +84,7 @@ Script_DontSaveAndEndTheSession: ; 0x9f4a3 writebyte BATTLE_TOWER_ACTION_06 special BattleTowerAction loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes warpfacing UP, BATTLE_TOWER_1F, $7, $7 loadfont jump UnknownScript_0x9e4b0 diff --git a/maps/BluesHouse.asm b/maps/BluesHouse.asm index de5bc1ca6..1540239bc 100644 --- a/maps/BluesHouse.asm +++ b/maps/BluesHouse.asm @@ -30,10 +30,10 @@ UnknownScript_0x19b0de: writetext UnknownText_0x19b266 closetext loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x19b296 diff --git a/maps/CeruleanGym.asm b/maps/CeruleanGym.asm index a272b6472..10c00d18a 100644 --- a/maps/CeruleanGym.asm +++ b/maps/CeruleanGym.asm @@ -176,8 +176,8 @@ MovementData_0x1884eb: jump_step_up db $38 ; movement remove_fixed_facing - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 step_down step_down step_end diff --git a/maps/Colosseum.asm b/maps/Colosseum.asm index 7b9c5272a..4e9db3be0 100644 --- a/maps/Colosseum.asm +++ b/maps/Colosseum.asm @@ -49,7 +49,7 @@ ColosseumScript_Initialize: MapColosseumSignpost1Script: special Special_Colosseum - newloadmap MAPSETUP_08 + newloadmap MAPSETUP_LINKRETURN end ChrisScript_0x193499: diff --git a/maps/EcruteakGym.asm b/maps/EcruteakGym.asm index af89cbb90..caf60826f 100644 --- a/maps/EcruteakGym.asm +++ b/maps/EcruteakGym.asm @@ -84,7 +84,7 @@ UnknownScript_0x99dc6: follow PLAYER, $8 applymovement PLAYER, MovementData_0x99e5f stopfollow - special FadeBlackBGMap + special FadeOutPalettes playsound SFX_ENTER_DOOR waitbutton warp ECRUTEAK_CITY, $6, $1b diff --git a/maps/FastShip1F.asm b/maps/FastShip1F.asm index 832ab3d1d..bf7ff442b 100644 --- a/maps/FastShip1F.asm +++ b/maps/FastShip1F.asm @@ -64,7 +64,7 @@ SailorScript_0x75160: loadmovesprites scall .LetThePlayerOut playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton setevent EVENT_VERMILION_PORT_SAILOR_AT_GANGWAY domaptrigger VERMILION_PORT, $1 @@ -77,7 +77,7 @@ SailorScript_0x75160: loadmovesprites scall .LetThePlayerOut playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton setevent EVENT_OLIVINE_PORT_SAILOR_AT_GANGWAY domaptrigger OLIVINE_PORT, $1 diff --git a/maps/GoldenrodMagnetTrainStation.asm b/maps/GoldenrodMagnetTrainStation.asm index b92de272c..d95cfb934 100644 --- a/maps/GoldenrodMagnetTrainStation.asm +++ b/maps/GoldenrodMagnetTrainStation.asm @@ -35,7 +35,7 @@ OfficerScript_0x550ec: writebyte $0 special Special_MagnetTrain warpcheck - newloadmap MAPSETUP_09 + newloadmap MAPSETUP_TRAIN applymovement PLAYER, .MovementBoardTheTrain wait $14 end diff --git a/maps/IlexForest.asm b/maps/IlexForest.asm index 570500dee..e1aaa43da 100644 --- a/maps/IlexForest.asm +++ b/maps/IlexForest.asm @@ -572,8 +572,8 @@ MovementData_0x6eed2: big_step_down fix_facing jump_step_up - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 remove_fixed_facing big_step_up big_step_up @@ -664,8 +664,8 @@ MovementData_0x6ef23: big_step_left fix_facing jump_step_right - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 remove_fixed_facing big_step_left big_step_left @@ -694,8 +694,8 @@ MovementData_0x6ef3d: big_step_left fix_facing jump_step_right - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 remove_fixed_facing big_step_right big_step_right diff --git a/maps/IndigoPlateauPokeCenter1F.asm b/maps/IndigoPlateauPokeCenter1F.asm index 5d1a94345..e0e56981c 100644 --- a/maps/IndigoPlateauPokeCenter1F.asm +++ b/maps/IndigoPlateauPokeCenter1F.asm @@ -154,7 +154,7 @@ TeleportGuyScript: closetext loadmovesprites playsound SFX_WARP_TO - special FadeBlackBGMap + special FadeOutPalettes waitbutton warp NEW_BARK_TOWN, $d, $6 end diff --git a/maps/LancesRoom.asm b/maps/LancesRoom.asm index 91bb5a8ad..3929e6f35 100644 --- a/maps/LancesRoom.asm +++ b/maps/LancesRoom.asm @@ -125,7 +125,7 @@ LanceScript_0x180e7b: pause 30 loadmovesprites applymovement $3, MovementData_0x180f5b - special FadeBlackBGMap + special FadeOutPalettes pause 15 warpfacing UP, HALL_OF_FAME, $4, $d end diff --git a/maps/MobileBattleRoom.asm b/maps/MobileBattleRoom.asm index ba54d2a5d..c672c3b69 100644 --- a/maps/MobileBattleRoom.asm +++ b/maps/MobileBattleRoom.asm @@ -35,11 +35,11 @@ MapMobileBattleRoomSignpost0Script: writetext MobileBattleRoom_HealText pause 20 loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes playmusic MUSIC_HEAL special LoadMapPalettes pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic refreshscreen $0 .two_: diff --git a/maps/OlivineLighthouse6F.asm b/maps/OlivineLighthouse6F.asm index f5e2426b0..c9bb683e7 100644 --- a/maps/OlivineLighthouse6F.asm +++ b/maps/OlivineLighthouse6F.asm @@ -42,9 +42,9 @@ UnknownScript_0x60bab: loadmovesprites special RestartMapMusic cry AMPHAROS - special FadeBlackBGMap + special FadeOutPalettes pause 10 - special FadeInBGMap + special FadeInPalettes loadfont writetext UnknownText_0x60f3d closetext @@ -116,10 +116,10 @@ UnknownScript_0x60c51: cry AMPHAROS closetext loadmovesprites - special FadeBlackBGMap - special FadeInBGMap - special FadeBlackBGMap - special FadeInBGMap + special FadeOutPalettes + special FadeInPalettes + special FadeOutPalettes + special FadeInPalettes end ItemFragment_0x60c66: @@ -131,8 +131,8 @@ MovementData_0x60c68: slow_step_right slow_step_up slow_step_up - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 step_end MovementData_0x60c70: @@ -153,7 +153,7 @@ MovementData_0x60c79: slow_step_up slow_step_up slow_step_up - accelerate_last + step_sleep_8 step_end UnknownText_0x60c81: diff --git a/maps/OlivinePort.asm b/maps/OlivinePort.asm index 35343fa91..51af0670d 100644 --- a/maps/OlivinePort.asm +++ b/maps/OlivinePort.asm @@ -39,7 +39,7 @@ SailorScript_0x748c0: waitbutton applymovement PLAYER, MovementData_0x74a30 playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton checkevent EVENT_FAST_SHIP_FIRST_TIME iffalse UnknownScript_0x7490a diff --git a/maps/Route35NationalParkgate.asm b/maps/Route35NationalParkgate.asm index be2ddf686..c95707c78 100644 --- a/maps/Route35NationalParkgate.asm +++ b/maps/Route35NationalParkgate.asm @@ -75,7 +75,7 @@ Route35NationalParkgate_GoBackIn: loadmovesprites scall Route35NationalParkgate_EnterContest playsound SFX_ENTER_DOOR - special FadeBlackBGMap + special FadeOutPalettes waitbutton warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f end @@ -112,7 +112,7 @@ Route35NationalParkgate_OkayToProceed: special Special_GiveParkBalls scall Route35NationalParkgate_EnterContest playsound SFX_ENTER_DOOR - special FadeBlackBGMap + special FadeOutPalettes waitbutton special Special_SelectRandomBugContestContestants warpfacing UP, NATIONAL_PARK_BUG_CONTEST, $a, $2f diff --git a/maps/Route36NationalParkgate.asm b/maps/Route36NationalParkgate.asm index 703670d7c..4ae506977 100644 --- a/maps/Route36NationalParkgate.asm +++ b/maps/Route36NationalParkgate.asm @@ -83,7 +83,7 @@ Route36NationalParkgate_MapScriptHeader: loadmovesprites spriteface PLAYER, LEFT playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 end @@ -166,7 +166,7 @@ Route36OfficerScriptContest: special Special_GiveParkBalls spriteface PLAYER, LEFT playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton special Special_SelectRandomBugContestContestants warpfacing LEFT, NATIONAL_PARK_BUG_CONTEST, $21, $12 diff --git a/maps/SaffronTrainStation.asm b/maps/SaffronTrainStation.asm index 329d3d6c7..72bc19056 100644 --- a/maps/SaffronTrainStation.asm +++ b/maps/SaffronTrainStation.asm @@ -35,7 +35,7 @@ OfficerScript_0x18a81e: writebyte $1 special Special_MagnetTrain warpcheck - newloadmap MAPSETUP_09 + newloadmap MAPSETUP_TRAIN applymovement PLAYER, .MovementBoardTheTrain wait $14 end diff --git a/maps/SlowpokeWellB1F.asm b/maps/SlowpokeWellB1F.asm index 47661ee39..95ec72694 100644 --- a/maps/SlowpokeWellB1F.asm +++ b/maps/SlowpokeWellB1F.asm @@ -56,7 +56,7 @@ GruntM1Script: clearevent EVENT_AZALEA_TOWN_SLOWPOKES clearevent EVENT_KURTS_HOUSE_SLOWPOKE clearevent EVENT_KURTS_HOUSE_KURT_1 - special FadeBlackBGMap + special FadeOutPalettes special HealParty pause 15 warp KURTS_HOUSE, $3, $3 @@ -121,15 +121,15 @@ KurtSlowpokeWellVictoryMovementData: step_left step_left step_up - accelerate_last - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 + step_sleep_8 step_left step_up step_up - accelerate_last - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 + step_sleep_8 turn_head_left step_end diff --git a/maps/TeamRocketBaseB1F.asm b/maps/TeamRocketBaseB1F.asm index 3a03b67a2..29ca078b8 100644 --- a/maps/TeamRocketBaseB1F.asm +++ b/maps/TeamRocketBaseB1F.asm @@ -445,9 +445,9 @@ ExplodingTrap22: end VoltorbExplodingTrap: - special FadeBlackBGMap + special FadeOutPalettes cry VOLTORB - special FadeInBGMap + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata VOLTORB, 23 @@ -455,9 +455,9 @@ VoltorbExplodingTrap: end GeodudeExplodingTrap: - special FadeBlackBGMap + special FadeOutPalettes cry GEODUDE - special FadeInBGMap + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata GEODUDE, 21 @@ -465,9 +465,9 @@ GeodudeExplodingTrap: end KoffingExplodingTrap: - special FadeBlackBGMap + special FadeOutPalettes cry KOFFING - special FadeInBGMap + special FadeInPalettes setlasttalked $ff writecode VAR_BATTLETYPE, BATTLETYPE_TRAP loadpokedata KOFFING, 21 diff --git a/maps/TeamRocketBaseB2F.asm b/maps/TeamRocketBaseB2F.asm index 920db3621..7774ef97f 100644 --- a/maps/TeamRocketBaseB2F.asm +++ b/maps/TeamRocketBaseB2F.asm @@ -155,11 +155,11 @@ UnknownScript_0x6d091: writetext UnknownText_0x6da97 closetext loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes special Mobile_HealParty playsound SFX_FULL_HEAL special HealParty - special FadeInBGMap + special FadeInPalettes loadfont writetext UnknownText_0x6daf7 closetext @@ -449,17 +449,17 @@ MovementData_0x6d254: step_end MovementData_0x6d258: - accelerate_last + step_sleep_8 step_left step_left turn_head_up - accelerate_last + step_sleep_8 step_right step_right step_right step_right turn_head_up - accelerate_last + step_sleep_8 step_left step_left turn_head_down diff --git a/maps/TeamRocketBaseB3F.asm b/maps/TeamRocketBaseB3F.asm index 2939c1691..2672e2410 100644 --- a/maps/TeamRocketBaseB3F.asm +++ b/maps/TeamRocketBaseB3F.asm @@ -254,8 +254,8 @@ MovementData_0x6e147: fix_facing fast_jump_step_left remove_fixed_facing - accelerate_last - accelerate_last + step_sleep_8 + step_sleep_8 slow_step_right big_step_down big_step_down diff --git a/maps/TimeCapsule.asm b/maps/TimeCapsule.asm index 59f9c36b4..9795265b6 100644 --- a/maps/TimeCapsule.asm +++ b/maps/TimeCapsule.asm @@ -39,7 +39,7 @@ TimeCapsule_Initialize: MapTimeCapsuleSignpost1Script: special Special_TimeCapsule - newloadmap MAPSETUP_08 + newloadmap MAPSETUP_LINKRETURN end ChrisScript_0x19351a: diff --git a/maps/TradeCenter.asm b/maps/TradeCenter.asm index a53f6a319..982650b4e 100644 --- a/maps/TradeCenter.asm +++ b/maps/TradeCenter.asm @@ -39,7 +39,7 @@ TradeCenter_Initialize: MapTradeCenterSignpost1Script: special Special_TradeCenter - newloadmap MAPSETUP_08 + newloadmap MAPSETUP_LINKRETURN end ChrisScript_0x19340b: diff --git a/maps/VermilionPort.asm b/maps/VermilionPort.asm index de184c02a..de943b3e4 100644 --- a/maps/VermilionPort.asm +++ b/maps/VermilionPort.asm @@ -51,7 +51,7 @@ SailorScript_0x74dc4: waitbutton applymovement PLAYER, MovementData_0x74ef1 playsound SFX_EXIT_BUILDING - special FadeBlackBGMap + special FadeOutPalettes waitbutton setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND clearevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND diff --git a/maps/WarehouseEntrance.asm b/maps/WarehouseEntrance.asm index 015692811..7199599d7 100644 --- a/maps/WarehouseEntrance.asm +++ b/maps/WarehouseEntrance.asm @@ -226,10 +226,10 @@ OlderHaircutBrotherScript: writetext UnknownText_0x7c6b8 closetext loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x7c6d8 @@ -309,10 +309,10 @@ YoungerHaircutBrotherScript: writetext UnknownText_0x7c80e closetext loadmovesprites - special FadeBlackBGMap + special FadeOutPalettes playmusic MUSIC_HEAL pause 60 - special FadeInBGMap + special FadeInPalettes special RestartMapMusic loadfont writetext UnknownText_0x7c82a diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index bc6eec83d..d5c9693b6 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -371,7 +371,7 @@ Function11c1ca: ; 11c1ca ld a, [MenuSelection2] dec a call Function11c254 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearScreen call Function11d323 diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index eee9223f0..d73776be6 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -1801,7 +1801,7 @@ Function89b07: ; 89b07 ; 89b14 Function89b14: ; 89b14 - call WhiteBGMap + call ClearBGPalettes call Function89b07 call Function89b00 ret @@ -1814,7 +1814,7 @@ Function89b1e: ; 89b1e (22:5b1e) Function89b28: ; 89b28 (22:5b28) call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893e2 call Call_ExitMenu call Function891ab @@ -2414,7 +2414,7 @@ Function89eb9: ; 89eb9 (22:5eb9) jp Function89e36 Function89ee1: ; 89ee1 (22:5ee1) - call WhiteBGMap + call ClearBGPalettes call Function893e2 call Function8923c callba Function4a3a7 @@ -2602,7 +2602,7 @@ Function89fed: ; 89fed (22:5fed) Function89ff6: ; 89ff6 (22:5ff6) call Function891fe - call WhiteBGMap + call ClearBGPalettes call Function893cc call Function89807 call Function89492 @@ -2937,14 +2937,14 @@ Function8a241: ; 8a241 (22:6241) ret .asm_8a254 call Function891de - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call Function891de and a ret Function8a262: ; 8a262 (22:6262) - call WhiteBGMap + call ClearBGPalettes call Function893e2 call Function8923c callba Function4a3a7 @@ -3501,7 +3501,7 @@ Jumptable_8a671: ; 8a671 (22:6671) Function8a679: ; 8a679 (22:6679) call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -3546,7 +3546,7 @@ Function8a6c5: ; 8a6c5 (22:66c5) Function8a6cd: ; 8a6cd (22:66cd) call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -3594,7 +3594,7 @@ Function8a6cd: ; 8a6cd (22:66cd) .asm_8a73f call CloseSRAM .asm_8a742 - call WhiteBGMap + call ClearBGPalettes call Function89448 call Function891d3 call Function8b677 @@ -3657,7 +3657,7 @@ Function8a78c: ; 8a78c (22:678c) call DelayFrame call JoyTextDelay call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 pop bc @@ -3687,7 +3687,7 @@ Function8a7cb: ; 8a7cb (22:67cb) pop af ld [MenuSelection], a call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -3781,7 +3781,7 @@ Function8a8a1: ; 8a8a1 (22:68a1) Function8a8c3: ; 8a8c3 (22:68c3) call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -3969,7 +3969,7 @@ Function8aa0a: ; 8aa0a (22:6a0a) call Function89381 call CloseSRAM call Function891fe - call WhiteBGMap + call ClearBGPalettes call Function893cc call Function89807 call Function89492 @@ -4027,7 +4027,7 @@ Function8aa73: ; 8aa73 (22:6a73) call Function89193 .asm_8aa9d call Function891fe - call WhiteBGMap + call ClearBGPalettes call Function893cc call Function89807 call Function89492 @@ -4101,7 +4101,7 @@ Function8ab11: ; 8ab11 (22:6b11) Function8ab3b: ; 8ab3b (22:6b3b) call Function891fe - call WhiteBGMap + call ClearBGPalettes call Function893cc call Function89807 call Function89492 @@ -4140,7 +4140,7 @@ Function8ab77: ; 8ab77 (22:6b77) ret Function8ab93: ; 8ab93 (22:6b93) - call WhiteBGMap + call ClearBGPalettes call LoadStandardMenuDataHeader callba Function105688 call ClearSprites @@ -4183,7 +4183,7 @@ Function8aba9: ; 8aba9 call PlayClickSFX .asm_8abe5 call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b @@ -4228,7 +4228,7 @@ Function8ac4e: ; 8ac4e ld [MenuSelection], a push de call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc pop bc call Function89844 @@ -4337,7 +4337,7 @@ Function8ad0b: ; 8ad0b ld a, [MenuSelection] ld [wd02f], a call Function891de - call WhiteBGMap + call ClearBGPalettes call Function893cc call OpenSRAMBank4 call Function8931b diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index c04f933fe..cb5fc0628 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -574,7 +574,7 @@ Function8b664: ; 8b664 (22:7664) ret Function8b677: ; 8b677 - call WhiteBGMap + call ClearBGPalettes call DisableLCD call Function8b690 call Function8b6bb diff --git a/misc/mobile_40.asm b/misc/mobile_40.asm index dab86875d..4743f2c27 100644 --- a/misc/mobile_40.asm +++ b/misc/mobile_40.asm @@ -48,7 +48,7 @@ Function100022: ; 100022 Function100057: ; 100057 call Function1000a4 - call Function222a + call ReturnToMapFromSubmenu ld hl, VramState res 1, [hl] ret @@ -74,7 +74,7 @@ Function100063: ; 100063 Function100082: ; 100082 xor a ld hl, OverworldMap - ld bc, 1300 + ld bc, OverworldMapEnd - OverworldMap call ByteFill di call DoubleSpeed @@ -312,7 +312,7 @@ Function10016f: ; 10016f Function10020b: ; 10020b xor a ld [wc303], a - callba FadeBlackBGMap + callba FadeOutPalettes callba Function106464 call HideSprites call DelayFrame @@ -412,7 +412,7 @@ Function1002c9: ; 1002c9 ; 1002dc Function1002dc: ; 1002dc - ld a, MAPSETUP_08 + ld a, MAPSETUP_LINKRETURN ld [hMapEntryMethod], a callba RunMapSetupScript xor a @@ -3048,7 +3048,7 @@ Function10138b: ; 10138b ; 1013aa Function1013aa: ; 1013aa - call WhiteBGMap + call ClearBGPalettes call Call_ExitMenu call Function2bae callba Function106464 diff --git a/misc/mobile_41.asm b/misc/mobile_41.asm index 825ee9497..9b2664e6b 100755 --- a/misc/mobile_41.asm +++ b/misc/mobile_41.asm @@ -951,7 +951,7 @@ Function106442: ; 106442 call Function3e32 xor a ld [hMobile], a - ld [$ffc9], a + ld [hFFC9], a ld a, [wcd25] inc a ld [wcd25], a diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 591a26e1f..5e48eb6c1 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -125,7 +125,7 @@ Function108089: ; 108089 Function1080b7: ; 1080b7 xor a ld [wJumptableIndex], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -188,7 +188,7 @@ Function1080b7: ; 1080b7 Function108157: ; 108157 xor a ld [wJumptableIndex], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -508,7 +508,7 @@ Function10830e: ; 10830e ; 10839b Function10839b: ; 10839b - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -643,7 +643,7 @@ Function10842c: ; 10842c ; 1084d7 Function1084d7: ; 1084d7 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -712,7 +712,7 @@ Function1084d7: ; 1084d7 ; 108589 Function108589: ; 108589 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD @@ -781,7 +781,7 @@ Function108589: ; 108589 Function108638: ; 108638 callba Function8d03d - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -817,7 +817,7 @@ Function108638: ; 108638 Function108689: ; 108689 callba Function8d03d - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -862,7 +862,7 @@ Function108689: ; 108689 ; 1086f4 Function1086f4: ; 1086f4 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap xor a @@ -1162,7 +1162,7 @@ Function108919: ; 108919 ld c, $28 call Function1082cc callba Function8d03d - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap call DisableLCD diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 3055ca988..5bb2b4a0c 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -7708,7 +7708,7 @@ Function117699: ; 117699 (45:7699) ld hl, wc708 ld bc, $11 call ByteFill - call WhiteBGMap + call ClearBGPalettes call ClearSprites callba Function171c87 callba Function104061 @@ -7726,7 +7726,7 @@ Function1176ee: ; 1176ee (45:76ee) jr Function1176ee .asm_117709 callba Function8cf53 - call WhiteBGMap + call ClearBGPalettes call ClearScreen call ClearSprites ret @@ -8172,7 +8172,7 @@ Function117a94: ; 0x117a94 ld [wcf64], a ld [wcf65], a ld [wcf66], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites callba Function172e78 callba Function104000 @@ -8180,7 +8180,7 @@ Function117a94: ; 0x117a94 ; 0x117ab4 Function117ab4: ; 0x117ab4 - call WhiteBGMap + call ClearBGPalettes call ClearSprites callba Function172e78 callba Function172eb9 @@ -8197,7 +8197,7 @@ Function117acd: ; 0x117acd callba Function104000 jr Function117acd .asm_117ae2 - call WhiteBGMap + call ClearBGPalettes call ClearSprites ret diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index b869e2f8f..1bcccbfe5 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -43,7 +43,7 @@ asm_11800b pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu Function11805e: ; 11805e (46:405e) ret ; 11805f @@ -84,7 +84,7 @@ Function11805f: ; 11805f pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu ret ; 1180b8 @@ -130,7 +130,7 @@ Function1180b8: ; 1180b8 pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu ret ; 11811a @@ -180,7 +180,7 @@ Function118125: ; 118125 ld [rSVBK], a call Function118452 call Function118180 - call Function222a + call ReturnToMapFromSubmenu ret ; 118180 @@ -262,7 +262,7 @@ Function1181da: ; 1181da pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu ret ; 118233 @@ -374,7 +374,7 @@ Function1182d5: ; 1182d5 pop af ld [rSVBK], a call Function118452 - call Function222a + call ReturnToMapFromSubmenu ret ; 118329 @@ -482,7 +482,7 @@ Function1183cb: ; 1183cb ld a, $f ld [rIE], a ld a, $1 - ld [$ffc9], a + ld [hFFC9], a ld [hMobile], a ei callba Function106462 @@ -512,7 +512,7 @@ Function118440: ; 118440 Function118452: ; 118452 di xor a - ld [$ffc9], a + ld [hFFC9], a ld [hMobile], a ld [hVBlank], a call NormalSpeed @@ -5682,7 +5682,7 @@ Function11a9c0: ; 11a9c0 ; 11a9ce Function11a9ce: ; 11a9ce - call WhiteBGMap + call ClearBGPalettes call Function2bae call Call_ExitMenu callba Function106462 @@ -5950,7 +5950,7 @@ Function11acb7: ; 11acb7 ; 11ad1b Function11ad1b: ; 11ad1b - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearTileMap callba Function17c000 diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 759d5f586..6fb42b16f 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -140,7 +140,7 @@ Function16c0dc: ; 16c0dc ; 16c0ec Function16c0ec: ; 16c0ec - call WhiteBGMap + call ClearBGPalettes call ClearScreen push af ld a, $ff @@ -885,7 +885,7 @@ Function16d42e: ; 16d42e Function16d43b: ; 16d43b call LoadStandardMenuDataHeader - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call ClearSprites callba Function16d421 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 85681221a..0b4b18b4f 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -283,7 +283,7 @@ Function1704e1: ; 1704e1 ; 1704f1 Function1704f1: ; 1704f1 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearScreen .asm_1704fa @@ -1590,7 +1590,7 @@ Function1719ed: ; 1719ed (5c:59ed) ld [wcd4a], a dec a ld [wcd4b], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites callba Function171d2b callba Function104061 @@ -1883,7 +1883,7 @@ Function171c2c: ; 171c2c (5c:5c2c) dec [hl] ret nz call ExitMenu - call WhiteBGMap + call ClearBGPalettes jr asm_171c60 Function171c39: ; 171c39 (5c:5c39) @@ -1895,7 +1895,7 @@ Function171c41: ; 171c41 (5c:5c41) ld hl, wcd4c dec [hl] ret nz - call WhiteBGMap + call ClearBGPalettes callba Function106462 callba Function106464 ld a, $2 diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index 8e89a648b..ab6dd07e7 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -561,7 +561,7 @@ Function17d2ce: ; 17d2ce ld a, d ld [MusicFadeIDHi], a call PlayMusic - call Function222a + call ReturnToMapFromSubmenu call Function2b3c ret ; 17d314 @@ -626,7 +626,7 @@ Function17d370: ; 17d370 ld [wcd79], a dec a ld [wcd6c], a - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearScreen callba Function104061 @@ -672,7 +672,7 @@ Function17d370: ; 17d370 ; 17d3f6 Function17d3f6: ; 17d3f6 - call WhiteBGMap + call ClearBGPalettes call ClearSprites call ClearScreen callba Function104061 @@ -1245,7 +1245,7 @@ Function17d78d: ; 17d78d call CloseSRAM xor a ld [wcd77], a - call WhiteBGMap + call ClearBGPalettes ret ; 17d7b4 diff --git a/misc/unused_title.asm b/misc/unused_title.asm index e151deb14..7a9c2556f 100644 --- a/misc/unused_title.asm +++ b/misc/unused_title.asm @@ -3,7 +3,7 @@ SECTION "bank43", ROMX, BANK[$43] UnusedTitleScreen: ; 10c000 - call WhiteBGMap + call ClearBGPalettes call ClearTileMap call DisableLCD xor a diff --git a/wram.asm b/wram.asm index a9689b104..89519a0a7 100644 --- a/wram.asm +++ b/wram.asm @@ -321,10 +321,10 @@ ScriptVar:: ; c2dd wc2de:: ds 1 wc2df:: ds 3 wMovementPerson:: ds 1 -wMovementDataPointer:: ds 3 +wMovementDataPointer:: ds 3 ; dba wc2e6:: ds 4 wc2ea:: ds 1 -wMovementPointer:: ds 2 +wMovementPointer:: ds 2 ; c2eb ds 3 wc2f0:: ds 1 wc2f1:: ds 1 @@ -334,7 +334,8 @@ wc2f4:: ds 1 wc2f5:: ds 1 wc2f6:: ds 1 wc2f7:: ds 1 -wc2f8:: ds 2 +wc2f8:: ds 1 + ds 1 TileDown:: ; c2fa ds 1 @@ -1478,6 +1479,10 @@ wd014:: ds 2 wd016:: ds 1 wMartItem8BCD:: wd017:: ds 1 + +wd018_Mon:: party_struct wd018_Mon + ds wd018_Mon - @ + wd018:: ds 1 wd019:: ds 1 wMartItem9BCD:: @@ -1506,6 +1511,7 @@ CurFruitTree:: CurInput:: EngineBuffer1:: ; d03e ds 1 + wd03f:: wJumpStdScriptBuffer:: CurFruit:: ; d03f @@ -2153,7 +2159,7 @@ object_struct: MACRO \1Palette:: ds 1 \1Walking:: ds 1 \1Direction:: ds 1 - ds 1 +\1Object09:: ds 1 \1StepDuration:: ds 1 \1Action:: ds 1 \1Object12:: ds 1 -- cgit v1.2.3 From 40802da3cf27a453f62c8c4b712e876b06a9d834 Mon Sep 17 00:00:00 2001 From: PikalaxALT Date: Thu, 12 Nov 2015 11:10:19 -0500 Subject: Map header labels, tileset constants --- battle/anim_commands.asm | 2 +- battle/bg_effects.asm | 4 +- constants/map_constants.asm | 5 + constants/tilemap_constants.asm | 38 ++ engine/battle_start.asm | 6 +- engine/card_flip.asm | 2 +- engine/color.asm | 32 +- engine/credits.asm | 4 +- engine/events.asm | 28 +- engine/map_setup.asm | 32 +- engine/pokedex.asm | 2 +- engine/scripting.asm | 4 +- engine/timeofdaypals.asm | 8 +- engine/title.asm | 6 +- event/elevator.asm | 2 +- home/map.asm | 277 +++++++------- home/palettes.asm | 2 +- macros.asm | 2 + main.asm | 131 +++---- maps/map_headers.asm | 776 ++++++++++++++++++++-------------------- misc/battle_tower_47.asm | 4 +- misc/crystal_misc.asm | 4 +- misc/mobile_22.asm | 6 +- misc/mobile_22_2.asm | 2 +- misc/mobile_42.asm | 10 +- misc/mobile_45.asm | 4 +- misc/mobile_46.asm | 42 +-- misc/mobile_5b.asm | 28 +- misc/mobile_5c.asm | 6 +- misc/mobile_5f.asm | 24 +- misc/unused_title.asm | 2 +- predef/cgb.asm | 54 +-- tilesets/animations.asm | 10 +- wram.asm | 27 +- 34 files changed, 843 insertions(+), 743 deletions(-) diff --git a/battle/anim_commands.asm b/battle/anim_commands.asm index 7372899f5..fed2c9236 100644 --- a/battle/anim_commands.asm +++ b/battle/anim_commands.asm @@ -1437,7 +1437,7 @@ Functioncc91a: ; cc91a ld a, $5 ld [rSVBK], a ld hl, BGPals - ld de, Unkn1Pals + ld de, wMapPals ld a, [rBGP] ld b, a ld c, $7 diff --git a/battle/bg_effects.asm b/battle/bg_effects.asm index 96e51db2f..da3d6b4a1 100644 --- a/battle/bg_effects.asm +++ b/battle/bg_effects.asm @@ -2571,7 +2571,7 @@ Functionc8e52: ; c8e52 (32:4e52) push bc push af ld hl, BGPals ; BGPals - ld de, Unkn1Pals ; wd000 + ld de, wMapPals ; wd000 ld b, a ld c, $1 call CopyPals @@ -2598,7 +2598,7 @@ Functionc8e7f: ; c8e7f (32:4e7f) push bc push af ld hl, BGPals + 8 - ld de, Unkn1Pals + 8 + ld de, wMapPals + 8 ld b, a ld c, $1 call CopyPals diff --git a/constants/map_constants.asm b/constants/map_constants.asm index 9d9ae339b..c98c64ff9 100644 --- a/constants/map_constants.asm +++ b/constants/map_constants.asm @@ -494,6 +494,11 @@ MAP_NONE EQU 0 const _ROOF ; connection directions + const_def + const EAST_F + const WEST_F + const SOUTH_F + const NORTH_F const_def shift_const EAST diff --git a/constants/tilemap_constants.asm b/constants/tilemap_constants.asm index e47a1b269..215bd2934 100644 --- a/constants/tilemap_constants.asm +++ b/constants/tilemap_constants.asm @@ -3,3 +3,41 @@ WALLTILE EQU 1 WATRTILE EQU 15 TALK EQU 1 << 4 + +const_value SET 1 + const TILESET_JOHTO_OUTSIDE_1 ; 01 + const TILESET_JOHTO_OUTSIDE_2 ; 02 + const TILESET_KANTO_OUTSIDE ; 03 + const TILESET_BATTLE_TOWER_OUTSIDE ; 04 + const TILESET_HOUSE_1 ; 05 + const TILESET_KRISS_HOUSE ; 06 + const TILESET_POKECENTER ; 07 + const TILESET_GATE ; 08 + const TILESET_PORT ; 09 + const TILESET_LAB ; 0a + const TILESET_POWER_PLANT ; 0b + const TILESET_MART ; 0c + const TILESET_CELADON_MANSION ; 0d + const TILESET_GAME_CORNER ; 0e + const TILESET_GYM_1 ; 0f + const TILESET_KURT_HOUSE ; 10 + const TILESET_TRAIN_STATION ; 11 + const TILESET_OLIVINE_GYM ; 12 + const TILESET_LIGHTHOUSE ; 13 + const TILESET_KRISS_HOUSE_2F ; 14 + const TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE ; 15 + const TILESET_BATTLE_TOWER ; 16 + const TILESET_SPROUT_TOWER ; 17 + const TILESET_CAVE ; 18 + const TILESET_PARK ; 19 + const TILESET_RUINS_OF_ALPH ; 1a + const TILESET_RADIO_TOWER ; 1b + const TILESET_UNDERGROUND ; 1c + const TILESET_ICE_PATH ; 1d + const TILESET_WHIRL_ISLANDS ; 1e + const TILESET_ILEX_FOREST ; 1f + const TILESET_20 ; 20 + const TILESET_HO_OH_WORD_ROOM ; 21 + const TILESET_KABUTO_WORD_ROOM ; 22 + const TILESET_OMANYTE_WORD_ROOM ; 23 + const TILESET_AERODACTYL_WORD_ROOM ; 24 diff --git a/engine/battle_start.asm b/engine/battle_start.asm index 181f4135f..0897b8a4a 100644 --- a/engine/battle_start.asm +++ b/engine/battle_start.asm @@ -26,7 +26,7 @@ Predef_StartBattle: ; 8c20f ld a, $5 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, wMapPals ld bc, $0040 xor a call ByteFill @@ -659,7 +659,7 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) ld [rSVBK], a call .copypals push hl - ld de, Unkn1Pals + 8 * 7 + ld de, wMapPals + 8 * 7 ld bc, $8 call CopyBytes pop hl @@ -678,7 +678,7 @@ StartTrainerBattle_LoadPokeBallGraphics: ; 8c5dc (23:45dc) ret .copypals: ; 8c677 (23:4677) - ld de, Unkn1Pals + 8 * 7 + ld de, wMapPals + 8 * 7 call .copy ld de, BGPals + 8 * 7 call .copy diff --git a/engine/card_flip.asm b/engine/card_flip.asm index cf19cdbaf..8ee1e5cd9 100755 --- a/engine/card_flip.asm +++ b/engine/card_flip.asm @@ -1621,7 +1621,7 @@ Functione0c37: ; e0c37 (38:4c37) ld a, $5 ld [rSVBK], a ld hl, Palette_e0c93 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $48 call CopyBytes pop af diff --git a/engine/color.asm b/engine/color.asm index 5254fb80a..8530c2181 100644 --- a/engine/color.asm +++ b/engine/color.asm @@ -149,7 +149,7 @@ Function8b07: ; 8b07 call CheckCGB ret z ld hl, Palette8b2f - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -275,7 +275,7 @@ endr asm_8bd7 push hl - ld hl, Unkn1Pals + ld hl, wMapPals ld de, $0008 .asm_8bde and a @@ -338,7 +338,7 @@ Function8c1d: ; 8c1d call Function976b .asm_8c33 - ld de, Unkn1Pals + ld de, wMapPals call Function9643 call Function9699 call Function96b3 @@ -412,11 +412,11 @@ endr ld a, $5 ld [rSVBK], a ld a, [hli] - ld [Unkn1Pals], a - ld [Unkn1Pals + 8 * 2], a + ld [wMapPals], a + ld [wMapPals + 8 * 2], a ld a, [hl] - ld [Unkn1Pals + 1], a - ld [Unkn1Pals + 8 * 2 + 1], a + ld [wMapPals + 1], a + ld [wMapPals + 8 * 2 + 1], a pop af ld [rSVBK], a call Function96a4 @@ -458,7 +458,7 @@ endr ret .asm_8cf0 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -525,7 +525,7 @@ INCLUDE "predef/cgb.asm" Function95f0: ; 95f0 ld hl, Palette_9608 - ld de, Unkn1Pals + ld de, wMapPals ld bc, 8 ld a, $5 call FarCopyWRAM @@ -544,7 +544,7 @@ Palette_9608: ; 9608 CopyFourPalettes: ; 9610 - ld de, Unkn1Pals + ld de, wMapPals ld c, $4 CopyPalettes: ; 9615 @@ -644,7 +644,7 @@ Function9673: ; 9673 push af ld a, $5 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, wMapPals ld c, $8 .asm_9683 ld a, $ff @@ -676,7 +676,7 @@ Function9699: ; 9699 ; 96a4 Function96a4: ; 96a4 - ld hl, Unkn1Pals + ld hl, wMapPals ld de, BGPals ld bc, $0080 ld a, $5 @@ -1047,7 +1047,7 @@ Function9890:: ; 9890 push af ld a, $5 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, wMapPals call Function98df ld hl, BGPals call Function98df @@ -1945,7 +1945,7 @@ INCLUDE "gfx/trainers/palette_pointers.asm" ; b1de Functionb1de: ; b1de - callba Function494ac + callba LoadSpecialMapPalette jr c, .asm_b230 ld a, [wPermission] @@ -1973,7 +1973,7 @@ endr push af ld a, $5 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, wMapPals ld b, $8 .asm_b210 ld a, [de] @@ -2036,7 +2036,7 @@ rept 4 inc hl endr .asm_b26d - ld de, Unkn1Pals + 8 * 6 + 2 + ld de, wMapPals + 8 * 6 + 2 ld bc, 4 ld a, $5 call FarCopyWRAM diff --git a/engine/credits.asm b/engine/credits.asm index 3cee62e13..6b35fbe6a 100644 --- a/engine/credits.asm +++ b/engine/credits.asm @@ -637,10 +637,10 @@ GetCreditsPalette: ; 109b2c push af push hl - add Unkn1Pals % $100 + add wMapPals % $100 ld e, a ld a, 0 - adc Unkn1Pals / $100 + adc wMapPals / $100 ld d, a ld bc, 24 call CopyBytes diff --git a/engine/events.asm b/engine/events.asm index 3a3c2b9be..bd26afffd 100644 --- a/engine/events.asm +++ b/engine/events.asm @@ -342,7 +342,7 @@ CheckTrainerBattle3: ; 96867 call CheckTrainerBattle2 jr nc, .nope - ld a, 1 + ld a, PLAYEREVENT_SEENBYTRAINER scf ret @@ -359,10 +359,10 @@ CheckTileEvent: ; 96874 jr z, .bit2 callba CheckMovingOffEdgeOfMap - jr c, .return4 + jr c, .map_connection call CheckWarpTile - jr c, .return6 + jr c, .warp_tile .bit2 call CheckBit1_ScriptFlags3 @@ -390,21 +390,21 @@ CheckTileEvent: ; 96874 xor a ret -.return4 - ld a, 4 +.map_connection + ld a, PLAYEREVENT_CONNECTION scf ret -.return6 +.warp_tile ld a, [PlayerStandingTile] call CheckPitTile - jr nz, .pittile - ld a, 6 + jr nz, .not_pit + ld a, PLAYEREVENT_FALL scf ret -.pittile - ld a, 5 +.not_pit + ld a, PLAYEREVENT_WARP scf ret @@ -711,7 +711,7 @@ TryReadSign: ; 96a38 ret .IsSign - ld a, [wd040] + ld a, [EngineBuffer3] ld hl, .signs rst JumpTable ret @@ -749,7 +749,7 @@ TryReadSign: ; 96a38 .read call PlayTalkObject - ld hl, wd041 + ld hl, EngineBuffer4 ld a, [hli] ld h, [hl] ld l, a @@ -811,7 +811,7 @@ endr CheckSignFlag: ; 96ad8 - ld hl, wd041 + ld hl, EngineBuffer4 ld a, [hli] ld h, [hl] ld l, a @@ -820,7 +820,7 @@ CheckSignFlag: ; 96ad8 call GetFarHalfword ld e, l ld d, h - ld b, $2 ; check + ld b, CHECK_FLAG call EventFlagAction ld a, c and a diff --git a/engine/map_setup.asm b/engine/map_setup.asm index 09fc4d155..9c99df2f6 100644 --- a/engine/map_setup.asm +++ b/engine/map_setup.asm @@ -270,7 +270,7 @@ MapSetupCommands: ; 15440 dba EnterMapConnection ; 18 dba LoadWarpData ; 19 dba LoadMapAttributes ; 1a - dba LoadMapAttributes_IgnoreHidden ; 1b + dba LoadMapAttributes_SkipPeople ; 1b dba ClearBGPalettes ; 1c dba FadeOutPalettes ; 1d dba FadeInPalettes ; 1e @@ -318,7 +318,7 @@ LoadObjectsRunCallback_02: ; 154d7 ret ; 154ea (5:54ea) -Function154ea: ; 154ea +; unreferenced ret ; 154eb @@ -333,20 +333,21 @@ DelayLoadingNewSprites: ; 154f1 set 6, [hl] ret -Function154f7: ; 154f7 +CheckReplaceKrisSprite: ; 154f7 nop - call Function1550c + call .CheckBiking jr c, .ok - call Function1554e + call .CheckSurfing jr c, .ok - call Function1551a + call .CheckSurfing2 jr c, .ok ret + .ok call ReplaceKrisSprite ret -Function1550c: ; 1550c (5:550c) +.CheckBiking: ; 1550c (5:550c) and a ld hl, BikeFlags bit 1, [hl] @@ -356,7 +357,7 @@ Function1550c: ; 1550c (5:550c) scf ret -Function1551a: ; 1551a (5:551a) +.CheckSurfing2: ; 1551a (5:551a) ld a, [PlayerState] cp PLAYER_NORMAL jr z, .nope @@ -367,11 +368,11 @@ Function1551a: ; 1551a (5:551a) cp PLAYER_SURF_PIKA jr z, .surfing call GetMapPermission - cp $3 + cp INDOOR jr z, .checkbiking - cp $5 + cp PERM_5 jr z, .checkbiking - cp $7 + cp DUNGEON jr z, .checkbiking jr .nope .checkbiking @@ -383,21 +384,22 @@ Function1551a: ; 1551a (5:551a) ld [PlayerState], a scf ret + .nope and a ret -Function1554e: ; 1554e (5:554e) +.CheckSurfing: ; 1554e (5:554e) call CheckOnWater jr nz, .ret_nc ld a, [PlayerState] cp PLAYER_SURF - jr z, .surfing + jr z, ._surfing cp PLAYER_SURF_PIKA - jr z, .surfing + jr z, ._surfing ld a, PLAYER_SURF ld [PlayerState], a -.surfing +._surfing scf ret .ret_nc diff --git a/engine/pokedex.asm b/engine/pokedex.asm index c331f4a2a..8d5680ded 100644 --- a/engine/pokedex.asm +++ b/engine/pokedex.asm @@ -2367,7 +2367,7 @@ Function41401: ; 41401 (10:5401) push af ld a, $5 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, wMapPals ld bc, $40 xor a call ByteFill diff --git a/engine/scripting.asm b/engine/scripting.asm index cbc8c0028..ae5041bc2 100644 --- a/engine/scripting.asm +++ b/engine/scripting.asm @@ -2874,7 +2874,7 @@ Script_warpmod: ; 0x97a65 ; map_id (MapIdParam) call GetScriptByte - ld [wdcac], a + ld [BackupWarpNumber], a call GetScriptByte ld [BackupMapGroup], a call GetScriptByte @@ -2985,7 +2985,7 @@ Script_reloadmappart:: ; 0x97ae3 Script_warpcheck: ; 0x97af6 ; script command 0x8e - call Function224a + call WarpCheck ret nc callba SetAll_ScriptFlags3 ret diff --git a/engine/timeofdaypals.asm b/engine/timeofdaypals.asm index 1dbd9b2ee..6ebb2a421 100644 --- a/engine/timeofdaypals.asm +++ b/engine/timeofdaypals.asm @@ -39,7 +39,7 @@ _TimeOfDayPals:: ; 8c011 ; save bg palette 8 - ld hl, Unkn1Pals + 8 * 7 ; Unkn1Pals + 7 pals + ld hl, wMapPals + 8 * 7 ; wMapPals + 7 pals ; save wram bank ld a, [rSVBK] @@ -70,7 +70,7 @@ _TimeOfDayPals:: ; 8c011 ; restore bg palette 8 - ld hl, Unkn2Pals - 1 ; last byte in Unkn1Pals + ld hl, Unkn2Pals - 1 ; last byte in wMapPals ; save wram bank ld a, [rSVBK] @@ -172,12 +172,12 @@ Function8c0c1: ; 8c0c1 push af ld a, $5 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, wMapPals ld a, [hli] ld e, a ld a, [hli] ld d, a - ld hl, Unkn1Pals + 8 + ld hl, wMapPals + 8 ld c, $6 .asm_8c0d4 ld a, e diff --git a/engine/title.asm b/engine/title.asm index a9b991e6b..0fbf8b42d 100644 --- a/engine/title.asm +++ b/engine/title.asm @@ -144,7 +144,7 @@ _TitleScreen: ; 10ed67 ; Update palette colors ld hl, TitleScreenPalettes - ld de, Unkn1Pals + ld de, wMapPals ld bc, 4 * 32 call CopyBytes @@ -220,7 +220,7 @@ _TitleScreen: ; 10ed67 ld [hBGMapMode], a xor a - ld [Unkn1Pals + 2], a + ld [wMapPals + 2], a ; Play starting sound effect call SFXChannelsOff @@ -231,7 +231,7 @@ _TitleScreen: ; 10ed67 ; 10eea7 SuicuneFrameIterator: ; 10eea7 - ld hl, Unkn1Pals + 2 + ld hl, wMapPals + 2 ld a, [hl] ld c, a inc [hl] diff --git a/event/elevator.asm b/event/elevator.asm index 42a844cae..d43bc9d54 100755 --- a/event/elevator.asm +++ b/event/elevator.asm @@ -113,7 +113,7 @@ Function134c0: ; 134c0 ld bc, 4 call AddNTimes inc hl - ld de, wdcac + ld de, BackupWarpNumber ld a, [EngineBuffer1] ld bc, 3 call FarCopyBytes diff --git a/home/map.asm b/home/map.asm index 2e80fb3f6..81c7988d8 100644 --- a/home/map.asm +++ b/home/map.asm @@ -219,27 +219,29 @@ ReturnToMapFromSubmenu:: ; 222a ; 2238 CheckWarpTile:: ; 2238 - call Function2252 + call GetDestinationWarpNumber ret nc + push bc callba Function149af pop bc ret nc - call Function22a7 + + call CopyWarpData scf ret ; 224a -Function224a:: ; 224a - call Function2252 +WarpCheck:: ; 224a + call GetDestinationWarpNumber ret nc - call Function22a7 + call CopyWarpData ret ; 2252 -Function2252:: ; 2252 +GetDestinationWarpNumber:: ; 2252 callba Function1499a ret nc @@ -247,7 +249,7 @@ Function2252:: ; 2252 push af call SwitchToMapScriptHeaderBank - call Function2266 + call .GetDestinationWarpNumber pop de ld a, d @@ -255,7 +257,7 @@ Function2252:: ; 2252 ret ; 2266 -Function2266:: ; 2266 +.GetDestinationWarpNumber ; 2266 ld a, [PlayerMapY] sub $4 ld e, a @@ -265,48 +267,49 @@ Function2266:: ; 2266 ld a, [wCurrMapWarpCount] and a ret z + ld c, a ld hl, wCurrMapWarpHeaderPointer ld a, [hli] ld h, [hl] ld l, a -.asm_227e +.loop push hl ld a, [hli] cp e - jr nz, .asm_2289 + jr nz, .next ld a, [hli] cp d - jr nz, .asm_2289 - jr .asm_2296 + jr nz, .next + jr .found_warp -.asm_2289 +.next pop hl - ld a, $5 + ld a, 5 add l ld l, a - jr nc, .asm_2291 + jr nc, .okay inc h -.asm_2291 +.okay dec c - jr nz, .asm_227e + jr nz, .loop xor a ret -.asm_2296 +.found_warp pop hl - call Function22a3 - ret nc + call .IncreaseHLTwice + ret nc ; never encountered + ld a, [wCurrMapWarpCount] inc a sub c ld c, a scf ret -; 22a3 -Function22a3:: ; 22a3 +.IncreaseHLTwice rept 2 inc hl endr @@ -314,12 +317,12 @@ endr ret ; 22a7 -Function22a7:: ; 22a7 +CopyWarpData:: ; 22a7 ld a, [hROMBank] push af call SwitchToMapScriptHeaderBank - call Function22b4 + call .CopyWarpData pop af rst Bankswitch @@ -327,7 +330,7 @@ Function22a7:: ; 22a7 ret ; 22b4 -Function22b4:: ; 22b4 +.CopyWarpData ; 22b4 push bc ld hl, wCurrMapWarpHeaderPointer ld a, [hli] @@ -335,29 +338,30 @@ Function22b4:: ; 22b4 ld l, a ld a, c dec a - ld bc, $0005 + ld bc, 5 ; warp size call AddNTimes - ld bc, $0002 + ld bc, 2 ; warp number add hl, bc ld a, [hli] cp $ff - jr nz, .asm_22d0 - ld hl, wdcac + jr nz, .skip + ld hl, BackupWarpNumber ld a, [hli] -.asm_22d0 +.skip pop bc - ld [wd146], a + ld [wNextWarp], a ld a, [hli] - ld [wd147], a + ld [wNextMapGroup], a ld a, [hli] - ld [wd148], a + ld [wNextMapNumber], a + ld a, c - ld [wd149], a + ld [wPrevWarp], a ld a, [MapGroup] - ld [wd14a], a + ld [wPrevMapGroup], a ld a, [MapNumber] - ld [wd14b], a + ld [wPrevMapNumber], a scf ret ; 22ee @@ -382,40 +386,40 @@ CheckIndoorMap:: ; 22f4 ret ; 2300 -Function2300:: ; 2300 +Function2300:: ; unreferenced cp INDOOR ret z cp GATE ret z - cp $5 + cp PERM_5 ret ; 2309 LoadMapAttributes:: ; 2309 - call Function2326 + call CopyMapHeaders call SwitchToMapScriptHeaderBank - call Function234f + call ReadMapScripts xor a call ReadMapEventHeader ret ; 2317 -LoadMapAttributes_IgnoreHidden:: ; 2317 - call Function2326 +LoadMapAttributes_SkipPeople:: ; 2317 + call CopyMapHeaders call SwitchToMapScriptHeaderBank - call Function234f + call ReadMapScripts ld a, $1 call ReadMapEventHeader ret ; 2326 -Function2326:: ; 2326 - call Function2c3d +CopyMapHeaders:: ; 2326 + call PartiallyCopyMapHeader call SwitchToMapBank call GetSecondaryMapHeaderPointer - call Function235c - call Function2368 + call CopySecondMapHeader + call GetMapConnections ret ; 2336 @@ -431,14 +435,16 @@ endr call ReadWarps call ReadCoordEvents call ReadSignposts + pop af and a ret nz + call ReadObjectEvents ret ; 234f -Function234f:: ; 234f +ReadMapScripts:: ; 234f ld hl, MapScriptHeaderPointer ld a, [hli] ld h, [hl] @@ -448,19 +454,19 @@ Function234f:: ; 234f ret ; 235c -Function235c:: ; 235c +CopySecondMapHeader:: ; 235c ld de, MapHeader - ld c, $c -.asm_2361 + ld c, 12 ; size of the second map header +.loop ld a, [hli] ld [de], a inc de dec c - jr nz, .asm_2361 + jr nz, .loop ret ; 2368 -Function2368:: ; 2368 +GetMapConnections:: ; 2368 ld a, $ff ld [NorthConnectedMapGroup], a ld [SouthConnectedMapGroup], a @@ -470,29 +476,29 @@ Function2368:: ; 2368 ld a, [MapConnections] ld b, a - bit 3, b - jr z, .asm_2384 + bit NORTH_F, b + jr z, .no_north ld de, NorthMapConnection call GetMapConnection -.asm_2384 +.no_north - bit 2, b - jr z, .asm_238e + bit SOUTH_F, b + jr z, .no_south ld de, SouthMapConnection call GetMapConnection -.asm_238e +.no_south - bit 1, b - jr z, .asm_2398 + bit WEST_F, b + jr z, .no_west ld de, WestMapConnection call GetMapConnection -.asm_2398 +.no_west - bit 0, b - jr z, .asm_23a2 + bit EAST_F, b + jr z, .no_east ld de, EastMapConnection call GetMapConnection -.asm_23a2 +.no_east ret ; 23a3 @@ -568,11 +574,13 @@ ReadCoordEvents:: ; 23f1 ld a, l ld [wCurrentMapXYTriggerHeaderPointer], a ld a, h - ld [wdc00], a + ld [wCurrentMapXYTriggerHeaderPointer + 1], a + ld a, c and a ret z - ld bc, $0008 + + ld bc, 8 call AddNTimes ret ; 2408 @@ -582,93 +590,108 @@ ReadSignposts:: ; 2408 ld c, a ld [wCurrentMapSignpostCount], a ld a, l - ld [wdc02], a + ld [wCurrentMapSignpostHeaderPointer], a ld a, h - ld [wdc03], a + ld [wCurrentMapSignpostHeaderPointer + 1], a + ld a, c and a ret z - ld bc, $0005 + + ld bc, 5 call AddNTimes ret ; 241f ReadObjectEvents:: ; 241f push hl - call Function2471 + call ClearObjectStructs pop de - ld hl, MapObjects + OBJECT_LENGTH + ld hl, Map1Object ld a, [de] inc de - ld [wdc04], a + ld [wCurrentMapPersonEventCount], a ld a, e - ld [wdc05], a + ld [wCurrentMapPersonEventHeaderPointer], a ld a, d - ld [wdc06], a - ld a, [wdc04] - call Function2457 - ld a, [wdc04] + ld [wCurrentMapPersonEventHeaderPointer + 1], a + + ld a, [wCurrentMapPersonEventCount] + call CopyMapObjectHeaders + +; get NUM_OBJECTS - [wCurrentMapPersonEventCount] + ld a, [wCurrentMapPersonEventCount] ld c, a - ld a, $10 + ld a, NUM_OBJECTS ; - 1 sub c - jr z, .asm_2454 - ld bc, $0001 + jr z, .skip + ; jr c, .skip + +; stupid waste of time and space + ld bc, 1 add hl, bc - ld bc, $0010 -.asm_244a - ld [hl], $0 +; Fill the remaining sprite IDs and y coords with 0 and -1, respectively. +; Bleeds into wObjectMasks due to a bug. Uncomment the above subtraction +; to fix. + ld bc, OBJECT_LENGTH +.loop + ld [hl], 0 inc hl - ld [hl], $ff + ld [hl], -1 dec hl add hl, bc dec a - jr nz, .asm_244a + jr nz, .loop -.asm_2454 +.skip ld h, d ld l, e ret ; 2457 -Function2457:: ; 2457 +CopyMapObjectHeaders:: ; 2457 and a ret z + ld c, a -.asm_245a +.loop push bc push hl ld a, $ff ld [hli], a - ld b, $d -.asm_2461 + ld b, MAPOBJECT_E - MAPOBJECT_SPRITE +.loop2 ld a, [de] inc de ld [hli], a dec b - jr nz, .asm_2461 + jr nz, .loop2 + pop hl - ld bc, $0010 + ld bc, OBJECT_LENGTH add hl, bc pop bc dec c - jr nz, .asm_245a + jr nz, .loop ret ; 2471 -Function2471:: ; 2471 +ClearObjectStructs:: ; 2471 ld hl, Object1Struct ld bc, OBJECT_STRUCT_LENGTH * (NUM_OBJECT_STRUCTS - 1) xor a call ByteFill + +; Just to make sure (this is rather pointless) ld hl, Object1Struct ld de, OBJECT_STRUCT_LENGTH ld c, NUM_OBJECT_STRUCTS - 1 xor a -.asm_2484 +.loop ld [hl], a add hl, de dec c - jr nz, .asm_2484 + jr nz, .loop ret ; 248a @@ -681,34 +704,35 @@ RestoreFacingAfterWarp:: ; 248a ld h, [hl] ld l, a rept 3 - inc hl + inc hl ; get to the warp coords endr ld a, [WarpNumber] dec a ld c, a - ld b, $0 - ld a, $5 + ld b, 0 + ld a, 5 call AddNTimes ld a, [hli] ld [YCoord], a ld a, [hli] ld [XCoord], a + ; destination warp number ld a, [hli] cp $ff - jr nz, .asm_24b3 - call Function24ba + jr nz, .skip + call .backup -.asm_24b3 +.skip callba GetCoordOfUpperLeftCorner ret ; 24ba -Function24ba:: ; 24ba - ld a, [wd149] - ld [wdcac], a - ld a, [wd14a] +.backup + ld a, [wPrevWarp] + ld [BackupWarpNumber], a + ld a, [wPrevMapGroup] ld [BackupMapGroup], a - ld a, [wd14b] + ld a, [wPrevMapNumber] ld [BackupMapNumber], a ret ; 24cd @@ -1415,7 +1439,7 @@ Function2821:: ; 2821 ld [rVBK], a pop af ld [rSVBK], a - ld a, [wd199] + ld a, [wTileset] cp $1 jr z, .asm_286f cp $2 @@ -1836,6 +1860,7 @@ CheckFacingSign:: ; 2a8b ld a, [wCurrentMapSignpostCount] and a ret z + ld c, a ld a, [hROMBank] push af @@ -1849,7 +1874,7 @@ CheckFacingSign:: ; 2a8b CheckIfFacingTileCoordIsSign:: ; 2aaa ; Checks to see if you are facing a signpost. If so, copies it into EngineBuffer1 and sets carry. - ld hl, wdc02 + ld hl, wCurrentMapSignpostHeaderPointer ld a, [hli] ld h, [hl] ld l, a @@ -1954,7 +1979,7 @@ CheckStandingOnXYTrigger:: ; 2ae7 .copytrigger pop hl ld de, EngineBuffer1 - ld bc, $0008 ; xy-trigger size + ld bc, 8 ; xy-trigger size call CopyBytes scf ret @@ -2160,15 +2185,19 @@ GetAnyMapBank:: ; 2c31 ret ; 2c3d -Function2c3d:: ; 2c3d +PartiallyCopyMapHeader:: ; 2c3d +; Copy second map header bank, tileset, permission, and second map header address +; from the current map's map header. ld a, [hROMBank] push af ld a, BANK(MapGroupPointers) rst Bankswitch + call GetMapHeaderPointer - ld de, wd197 + 1 - ld bc, $0005 + ld de, wSecondMapHeaderBank + ld bc, MapHeader - wSecondMapHeaderBank call CopyBytes + pop af rst Bankswitch ret @@ -2220,7 +2249,7 @@ GetSecondaryMapHeaderPointer:: ; 0x2c7d ; returns the current map's secondary map header pointer in hl. push bc push de - ld de, $0003 ; secondary map header pointer (offset within header) + ld de, 3 ; secondary map header pointer (offset within header) call GetMapHeaderMember ld l, c ld h, b @@ -2233,7 +2262,7 @@ GetMapPermission:: ; 2c8a push hl push de push bc - ld de, 2 + ld de, 2 ; permission call GetMapHeaderMember ld a, c pop bc @@ -2250,7 +2279,7 @@ GetAnyMapPermission:: ; 2c99 push hl push de push bc - ld de, $0002 + ld de, 2 ; permission call GetAnyMapHeaderMember ld a, c pop bc @@ -2260,7 +2289,7 @@ GetAnyMapPermission:: ; 2c99 ; 2ca7 GetAnyMapTileset:: ; 2ca7 - ld de, $0001 + ld de, 1 ; tileset call GetAnyMapHeaderMember ld a, c ret @@ -2271,9 +2300,11 @@ GetWorldMapLocation:: ; 0x2caf push hl push de push bc - ld de, 5 + + ld de, 5 ; landmark call GetAnyMapHeaderMember ld a, c + pop bc pop de pop hl @@ -2343,21 +2374,25 @@ GetMapHeaderPhoneServiceNybble:: ; 2d05 GetPhoneServiceTimeOfDayByte:: ; 2d0d push hl push bc + ld de, 7 ; phone service and time of day call GetMapHeaderMember ld a, c + pop bc pop hl ret ; 2d19 -Function2d19:: ; 2d19 +GetFishingGroup:: ; 2d19 push de push hl push bc + ld de, 8 ; fishing group call GetMapHeaderMember ld a, c + pop bc pop hl pop de @@ -2370,7 +2405,7 @@ LoadTilesetHeader:: ; 2d27 ld hl, Tilesets ld bc, Tileset01 - Tileset00 - ld a, [wd199] + ld a, [wTileset] call AddNTimes ld de, TilesetBank diff --git a/home/palettes.asm b/home/palettes.asm index 30e14c8b3..1a2e0b037 100644 --- a/home/palettes.asm +++ b/home/palettes.asm @@ -95,7 +95,7 @@ DmgToCgbBGPals:: ; c9f ; copy & reorder bg pal buffer ld hl, BGPals ; to - ld de, Unkn1Pals ; from + ld de, wMapPals ; from ; order ld a, [rBGP] ld b, a diff --git a/macros.asm b/macros.asm index 67e3be236..1d23392fa 100644 --- a/macros.asm +++ b/macros.asm @@ -209,3 +209,5 @@ rept 7 endr db \1 ENDM + +palettes EQUS "* 8" diff --git a/main.asm b/main.asm index 11a57420e..afb94d1ff 100644 --- a/main.asm +++ b/main.asm @@ -4820,7 +4820,7 @@ CutDownTreeOrGrass: ; c810 CheckOverworldTileArrays: ; c840 push bc - ld a, [wd199] + ld a, [wTileset] ld de, 3 call IsInArray pop bc @@ -6230,7 +6230,7 @@ FishFunction: ; cf8e ret .facingwater - call Function2d19 + call GetFishingGroup and a jr nz, .goodtofish ld a, $4 @@ -10958,7 +10958,7 @@ RepelWoreOffScript:: ; 0x13619 SignpostItemScript:: ; 0x13625 loadfont - copybytetovar Unkn2Pals + copybytetovar EngineBuffer3 itemtotext 0, 0 writetext .found_text giveitem ITEM_FROM_MEM @@ -13885,7 +13885,7 @@ Function245af:: ; 245af ld [hBGMapMode], a inc a ld [hInMenu], a - call Function2471a + call ClearObjectStructsa call Function24764 call Function247dd call Function245f1 @@ -14105,7 +14105,7 @@ Function24706: ; 24706 (9:4706) jr nz, .asm_24713 ret -Function2471a: ; 2471a +ClearObjectStructsa: ; 2471a ; Get the value of (wcf95):(wcf96,wcf97) and store it in wd144. ld hl, wcf96 ld a, [hli] @@ -25461,7 +25461,7 @@ Function48e14: ; 48e14 (12:4e14) Function48e47: ; 48e47 (12:4e47) ld hl, Palette_48e5c - ld de, Unkn1Pals + ld de, wMapPals ld bc, $8 ld a, $5 call FarCopyWRAM @@ -25623,7 +25623,7 @@ MenuDataHeader_0x4930a: ; 0x4930a db 17, 19 ; end coords ; 4930f -Function4930f: ; 4930f (12:530f) +Function4930f: ; 4930f (mobile) ld a, b cp $ff jr nz, .asm_49317 @@ -25679,15 +25679,15 @@ Function49346: ; 49346 (12:5346) ret Function49351: ; 49351 (12:5351) - ld de, Unkn1Pals + ld de, wMapPals ld hl, Palette_493e1 ld bc, $28 - ld a, $5 ; BANK(Unkn1Pals) + ld a, $5 ; BANK(wMapPals) call FarCopyWRAM - ld de, Unkn1Pals + $38 + ld de, wMapPals + $38 ld hl, Palette_49418 ld bc, $8 - ld a, $5 ; BANK(Unkn1Pals) + ld a, $5 ; BANK(wMapPals) call FarCopyWRAM ret @@ -25767,7 +25767,7 @@ Palette_493e1: ; 493e1 Function49409:: ; 49409 ld hl, Palette_49418 - ld de, Unkn1Pals + 8 * 7 + ld de, wMapPals + 8 * 7 ld bc, 8 ld a, $5 call FarCopyWRAM @@ -25783,19 +25783,19 @@ Palette_49418: ; 49418 Function49420:: ; 49420 (12:5420) ld hl, MansionPalette4 - ld de, Unkn1Pals + $30 + ld de, wMapPals + $30 ld bc, $8 - ld a, $5 ; BANK(Unkn1Pals) + ld a, $5 ; BANK(wMapPals) call FarCopyWRAM ret ; 4942f (12:542f) Function4942f: ; 4942f call Function49351 - ld de, Unkn1Pals + $38 + ld de, wMapPals + $38 ld hl, Palette_49478 ld bc, $8 - ld a, $5 ; BANK(Unkn1Pals) + ld a, $5 ; BANK(wMapPals) call FarCopyWRAM call Function49346 hlcoord 0, 0, AttrMap @@ -25856,19 +25856,19 @@ Function49496: ; 49496 ret ; 494ac -Function494ac: ; 494ac - ld a, [wd199] - cp $15 +LoadSpecialMapPalette: ; 494ac + ld a, [wTileset] + cp TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE jr z, .pokecom_2f - cp $16 + cp TILESET_BATTLE_TOWER jr z, .battle_tower - cp $1d + cp TILESET_ICE_PATH jr z, .ice_path - cp $5 + cp TILESET_HOUSE_1 jr z, .house - cp $1b + cp TILESET_RADIO_TOWER jr z, .radio_tower - cp $d + cp TILESET_CELADON_MANSION jr z, .mansion_mobile jr .do_nothing @@ -25913,9 +25913,9 @@ Function494ac: ; 494ac LoadPokeComPalette: ; 494f2 ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, PokeComPalette - ld bc, $40 + ld bc, 8 palettes call FarCopyWRAM ret ; 49501 @@ -25926,9 +25926,9 @@ INCLUDE "tilesets/pokecom.pal" LoadBattleTowerPalette: ; 49541 ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, BattleTowerPalette - ld bc, $40 + ld bc, 8 palettes call FarCopyWRAM ret ; 49550 @@ -25939,9 +25939,9 @@ INCLUDE "tilesets/battle_tower.pal" LoadIcePathPalette: ; 49590 ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, IcePathPalette - ld bc, $40 + ld bc, 8 palettes call FarCopyWRAM ret ; 4959f @@ -25952,9 +25952,9 @@ INCLUDE "tilesets/ice_path.pal" LoadHousePalette: ; 495df ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, HousePalette - ld bc, $40 + ld bc, 8 palettes call FarCopyWRAM ret ; 495ee @@ -25965,9 +25965,9 @@ INCLUDE "tilesets/house.pal" LoadRadioTowerPalette: ; 4962e ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, RadioTowerPalette - ld bc, $40 + ld bc, 8 palettes call FarCopyWRAM ret ; 4963d @@ -26028,24 +26028,24 @@ MansionPalette4: ; 496bd LoadMansionPalette: ; 496c5 ld a, $5 - ld de, Unkn1Pals + ld de, wMapPals ld hl, MansionPalette1 - ld bc, $40 + ld bc, 8 palettes call FarCopyWRAM ld a, $5 - ld de, Unkn1Pals + $20 + ld de, wMapPals + 4 palettes ld hl, MansionPalette2 - ld bc, 8 + ld bc, 1 palettes call FarCopyWRAM ld a, $5 - ld de, Unkn1Pals + $18 + ld de, wMapPals + 3 palettes ld hl, MansionPalette3 - ld bc, 8 + ld bc, 1 palettes call FarCopyWRAM ld a, $5 - ld de, Unkn1Pals + $30 + ld de, wMapPals + 6 palettes ld hl, MansionPalette4 - ld bc, 8 + ld bc, 1 palettes call FarCopyWRAM ret ; 496fe @@ -26059,8 +26059,8 @@ MansionPalette2: ; 496fe Function49706: ; 49706 ld hl, Palette_49732 - ld de, Unkn1Pals - ld bc, 8 + ld de, wMapPals + ld bc, 1 palettes ld a, $5 call FarCopyWRAM callba Function96a4 @@ -26068,7 +26068,7 @@ Function49706: ; 49706 callba Function96b3 ld hl, Palette_4973a ld de, Unkn2Pals - ld bc, 8 + ld bc, 1 palettes ld a, $5 call FarCopyWRAM ret @@ -26090,7 +26090,7 @@ Palette_4973a: ; 4973a Function49742: ; 49742 ld hl, Palette_49757 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $40 ld a, $5 call FarCopyWRAM @@ -26194,7 +26194,7 @@ endr Function49811: ; 49811 ld hl, Palette_49826 - ld de, Unkn1Pals + $10 + ld de, wMapPals + $10 ld bc, $30 ld a, $5 call FarCopyWRAM @@ -34425,7 +34425,7 @@ CheckEdgeWarp: ; 80226 and 3 cp e jr nz, .asm_80259 - call Function224a ; CheckFallPit? + call WarpCheck ; CheckFallPit? jr nc, .asm_80259 call StandInPlace @@ -36322,7 +36322,7 @@ Function8220f: ; 8220f rept 3 add hl, hl endr - ld de, Unkn1Pals + ld de, wMapPals add hl, de ld de, wc608 ld bc, 8 @@ -48687,7 +48687,7 @@ IntroScene1: ; e495b (39:495b) ld a, $5 ld [rSVBK], a ld hl, Palette_365ad - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -48760,7 +48760,7 @@ IntroScene3: ; e49fd (39:49fd) ld a, $5 ld [rSVBK], a ld hl, Palette_e5edd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -48825,7 +48825,7 @@ IntroScene5: ; e4a7a (39:4a7a) ld a, $5 ld [rSVBK], a ld hl, Palette_365ad - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -48922,7 +48922,7 @@ IntroScene7: ; e4b3f (39:4b3f) ld a, $5 ld [rSVBK], a ld hl, Palette_e5edd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -49072,7 +49072,7 @@ IntroScene11: ; e4c86 (39:4c86) ld a, $5 ld [rSVBK], a ld hl, Palette_365ad - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_365ad @@ -49197,7 +49197,7 @@ IntroScene13: ; e4d6d (39:4d6d) ld a, $5 ld [rSVBK], a ld hl, Palette_e5edd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e5edd @@ -49306,7 +49306,7 @@ IntroScene15: ; e4e40 (39:4e40) ld a, $5 ld [rSVBK], a ld hl, Palette_e77dd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e77dd @@ -49380,7 +49380,7 @@ IntroScene17: ; e4ef5 (39:4ef5) ld a, $5 ld [rSVBK], a ld hl, Palette_e6d6d - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e6d6d @@ -49454,7 +49454,7 @@ IntroScene19: ; e4f7e (39:4f7e) ld a, $5 ld [rSVBK], a ld hl, Palette_e77dd - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e77dd @@ -49622,7 +49622,7 @@ IntroScene26: ; e50bb (39:50bb) ld a, $5 ld [rSVBK], a ld hl, Palette_e679d - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes ld hl, Palette_e679d @@ -49948,7 +49948,7 @@ endr ld bc, $8 call CopyBytes pop bc - ld de, Unkn1Pals + ld de, wMapPals ld a, c add e ld e, a @@ -53588,14 +53588,14 @@ RefreshMapSprites: ; 1047f0 callba ReturnFromMapSetupScript call Function2914 callba Function579d - callba Function154f7 + callba CheckReplaceKrisSprite ld hl, wPlayerSpriteSetupFlags bit 6, [hl] - jr nz, .asm_104817 + jr nz, .skip ld hl, VramState set 0, [hl] call Function2e31 -.asm_104817 +.skip ld a, [wPlayerSpriteSetupFlags] and $1c ld [wPlayerSpriteSetupFlags], a @@ -53615,6 +53615,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .right and a ret + .down ld a, [PlayerMapY] sub 4 @@ -53625,6 +53626,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .ok and a ret + .up ld a, [PlayerMapY] sub 4 @@ -53632,6 +53634,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .ok and a ret + .left ld a, [PlayerMapX] sub $4 @@ -53639,6 +53642,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .ok and a ret + .right ld a, [PlayerMapX] sub 4 @@ -53649,6 +53653,7 @@ CheckMovingOffEdgeOfMap:: ; 104820 (41:4820) jr z, .ok and a ret + .ok scf ret diff --git a/maps/map_headers.asm b/maps/map_headers.asm index bb65ec8be..3b49db763 100644 --- a/maps/map_headers.asm +++ b/maps/map_headers.asm @@ -30,466 +30,466 @@ MapGroupPointers:: MapGroup1: - map_header OlivinePokeCenter1F, $7, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header OlivineGym, $12, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header OlivineVoltorbHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header OlivineHouseBeta, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header OlivinePunishmentSpeechHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header OlivineGoodRodHouse, $5, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header OlivineCafe, $e, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header OlivineMart, $c, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header Route38EcruteakGate, $8, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_DAY, 1 - map_header Route39Barn, $10, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header Route39Farmhouse, $5, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header Route38, $1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1 - map_header Route39, $1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1 - map_header OlivineCity, $1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1 + map_header OlivinePokeCenter1F, TILESET_POKECENTER, INDOOR, OLIVINE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header OlivineGym, TILESET_OLIVINE_GYM, INDOOR, OLIVINE_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header OlivineVoltorbHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header OlivineHouseBeta, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header OlivinePunishmentSpeechHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header OlivineGoodRodHouse, TILESET_HOUSE_1, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header OlivineCafe, TILESET_GAME_CORNER, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header OlivineMart, TILESET_MART, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header Route38EcruteakGate, TILESET_GATE, GATE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_DAY, 1 + map_header Route39Barn, TILESET_KURT_HOUSE, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header Route39Farmhouse, TILESET_HOUSE_1, INDOOR, ROUTE_39, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header Route38, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_38, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1 + map_header Route39, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_39, MUSIC_ROUTE_37, 0, PALETTE_AUTO, 1 + map_header OlivineCity, TILESET_JOHTO_OUTSIDE_1, TOWN, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 1 MapGroup2: - map_header MahoganyRedGyaradosSpeechHouse, $5, INDOOR, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 - map_header MahoganyGym, $f, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header MahoganyPokeCenter1F, $7, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header Route42EcruteakGate, $8, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 - map_header Route42, $1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3 - map_header Route44, $1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4 - map_header MahoganyTown, $1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1 + map_header MahoganyRedGyaradosSpeechHouse, TILESET_HOUSE_1, INDOOR, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 + map_header MahoganyGym, TILESET_GYM_1, INDOOR, MAHOGANY_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header MahoganyPokeCenter1F, TILESET_POKECENTER, INDOOR, MAHOGANY_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header Route42EcruteakGate, TILESET_GATE, GATE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 + map_header Route42, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_42, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 3 + map_header Route44, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_44, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4 + map_header MahoganyTown, TILESET_JOHTO_OUTSIDE_1, TOWN, MAHOGANY_TOWN, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1 MapGroup3: - map_header SproutTower1F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1 - map_header SproutTower2F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1 - map_header SproutTower3F, $17, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower1F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower2F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower3F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower4F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower5F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower6F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower7F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower8F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header TinTower9F, $17, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 - map_header BurnedTower1F, $17, DUNGEON, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1 - map_header BurnedTowerB1F, $18, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1 - map_header NationalPark, $19, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, PALETTE_AUTO, 1 - map_header NationalParkBugContest, $19, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, PALETTE_AUTO, 1 - map_header RadioTower1F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 - map_header RadioTower2F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 - map_header RadioTower3F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 - map_header RadioTower4F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 - map_header RadioTower5F, $1b, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 - map_header RuinsofAlphOutside, $1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4 - map_header RuinsofAlphHoOhChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphKabutoChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphOmanyteChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphAerodactylChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphInnerChamber, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 1, PALETTE_DAY, 1 - map_header RuinsofAlphResearchCenter, $b, INDOOR, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_DAY, 1 - map_header RuinsofAlphHoOhItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphKabutoItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphOmanyteItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphAerodactylItemRoom, $1a, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphHoOhWordRoom, $21, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphKabutoWordRoom, $22, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphOmanyteWordRoom, $23, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header RuinsofAlphAerodactylWordRoom, $24, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header UnionCave1F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 - map_header UnionCaveB1F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 - map_header UnionCaveB2F, $18, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 1 - map_header SlowpokeWellB1F, $18, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3 - map_header SlowpokeWellB2F, $18, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3 - map_header OlivineLighthouse1F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 - map_header OlivineLighthouse2F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 - map_header OlivineLighthouse3F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 - map_header OlivineLighthouse4F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 - map_header OlivineLighthouse5F, $13, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 - map_header OlivineLighthouse6F, $13, DUNGEON, LIGHTHOUSE, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header MahoganyMart1F, $10, INDOOR, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 1, PALETTE_DAY, 1 - map_header TeamRocketBaseB1F, $1c, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1 - map_header TeamRocketBaseB2F, $b, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1 - map_header TeamRocketBaseB3F, $b, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1 - map_header IlexForest, $1f, CAVE, ILEX_FOREST, MUSIC_UNION_CAVE, 0, PALETTE_NITE, 4 - map_header WarehouseEntrance, $8, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header UndergroundPathSwitchRoomEntrances, $f, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header GoldenrodDeptStoreB1F, $1c, DUNGEON, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 - map_header UndergroundWarehouse, $1c, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 - map_header MountMortar1FOutside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 - map_header MountMortar1FInside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 - map_header MountMortar2FInside, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 - map_header MountMortarB1F, $1e, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 - map_header IcePath1F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 - map_header IcePathB1F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 - map_header IcePathB2FMahoganySide, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 - map_header IcePathB2FBlackthornSide, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 - map_header IcePathB3F, $1d, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 - map_header WhirlIslandNW, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 - map_header WhirlIslandNE, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 - map_header WhirlIslandSW, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 - map_header WhirlIslandCave, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 - map_header WhirlIslandSE, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 - map_header WhirlIslandB1F, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 - map_header WhirlIslandB2F, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 - map_header WhirlIslandLugiaChamber, $1e, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 - map_header SilverCaveRoom1, $1e, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DARK, 3 - map_header SilverCaveRoom2, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3 - map_header SilverCaveRoom3, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DAY, 3 - map_header SilverCaveItemRooms, $18, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3 - map_header DarkCaveVioletEntrance, $1e, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3 - map_header DarkCaveBlackthornEntrance, $1e, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3 - map_header DragonsDen1F, $18, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5 - map_header DragonsDenB1F, $1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5 - map_header DragonShrine, $a, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 1 - map_header TohjoFalls, $18, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 - map_header DiglettsCave, $18, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, PALETTE_NITE, 1 - map_header MountMoon, $18, CAVE, MT_MOON, MUSIC_MT_MOON, 1, PALETTE_NITE, 1 - map_header Underground, $1c, GATE, UNDERGROUND, MUSIC_MT_MOON, 0, PALETTE_NITE, 1 - map_header RockTunnel1F, $1e, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1 - map_header RockTunnelB1F, $1e, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1 - map_header SafariZoneFuchsiaGateBeta, $8, INDOOR, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header SafariZoneBeta, $19, CAVE, FUCHSIA_CITY, MUSIC_EVOLUTION, 0, PALETTE_AUTO, 1 - map_header VictoryRoad, $18, CAVE, VICTORY_ROAD, MUSIC_VICTORY_ROAD, 1, PALETTE_NITE, 1 + map_header SproutTower1F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1 + map_header SproutTower2F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1 + map_header SproutTower3F, TILESET_SPROUT_TOWER, DUNGEON, SPROUT_TOWER, MUSIC_SPROUT_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower1F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower2F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower3F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower4F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower5F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower6F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower7F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower8F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header TinTower9F, TILESET_SPROUT_TOWER, DUNGEON, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_DAY, 1 + map_header BurnedTower1F, TILESET_SPROUT_TOWER, DUNGEON, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1 + map_header BurnedTowerB1F, TILESET_CAVE, CAVE, BURNED_TOWER, MUSIC_BURNED_TOWER, 1, PALETTE_NITE, 1 + map_header NationalPark, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_NATIONAL_PARK, 0, PALETTE_AUTO, 1 + map_header NationalParkBugContest, TILESET_PARK, ROUTE, NATIONAL_PARK, MUSIC_BUG_CATCHING_CONTEST, 0, PALETTE_AUTO, 1 + map_header RadioTower1F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 + map_header RadioTower2F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 + map_header RadioTower3F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 + map_header RadioTower4F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 + map_header RadioTower5F, TILESET_RADIO_TOWER, INDOOR, RADIO_TOWER, 1<<7 | MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 + map_header RuinsofAlphOutside, TILESET_JOHTO_OUTSIDE_1, ROUTE, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_AUTO, 4 + map_header RuinsofAlphHoOhChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphKabutoChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphOmanyteChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphAerodactylChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphInnerChamber, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_RUINS_OF_ALPH_INTERIOR, 1, PALETTE_DAY, 1 + map_header RuinsofAlphResearchCenter, TILESET_POWER_PLANT, INDOOR, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 0, PALETTE_DAY, 1 + map_header RuinsofAlphHoOhItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphKabutoItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphOmanyteItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphAerodactylItemRoom, TILESET_RUINS_OF_ALPH, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphHoOhWordRoom, TILESET_HO_OH_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphKabutoWordRoom, TILESET_KABUTO_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphOmanyteWordRoom, TILESET_OMANYTE_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header RuinsofAlphAerodactylWordRoom, TILESET_AERODACTYL_WORD_ROOM, DUNGEON, RUINS_OF_ALPH, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header UnionCave1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 + map_header UnionCaveB1F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 + map_header UnionCaveB2F, TILESET_CAVE, CAVE, UNION_CAVE, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 1 + map_header SlowpokeWellB1F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3 + map_header SlowpokeWellB2F, TILESET_CAVE, CAVE, SLOWPOKE_WELL, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 3 + map_header OlivineLighthouse1F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 + map_header OlivineLighthouse2F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 + map_header OlivineLighthouse3F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 + map_header OlivineLighthouse4F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 + map_header OlivineLighthouse5F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_LIGHTHOUSE, 0, PALETTE_DAY, 1 + map_header OlivineLighthouse6F, TILESET_LIGHTHOUSE, DUNGEON, LIGHTHOUSE, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header MahoganyMart1F, TILESET_KURT_HOUSE, INDOOR, MAHOGANY_TOWN, MUSIC_MAHOGANY_MART, 1, PALETTE_DAY, 1 + map_header TeamRocketBaseB1F, TILESET_UNDERGROUND, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1 + map_header TeamRocketBaseB2F, TILESET_POWER_PLANT, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1 + map_header TeamRocketBaseB3F, TILESET_POWER_PLANT, DUNGEON, MAHOGANY_TOWN, MUSIC_ROCKET_HIDEOUT, 1, PALETTE_DAY, 1 + map_header IlexForest, TILESET_ILEX_FOREST, CAVE, ILEX_FOREST, MUSIC_UNION_CAVE, 0, PALETTE_NITE, 4 + map_header WarehouseEntrance, TILESET_GATE, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header UndergroundPathSwitchRoomEntrances, TILESET_GYM_1, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header GoldenrodDeptStoreB1F, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 1, PALETTE_DAY, 1 + map_header UndergroundWarehouse, TILESET_UNDERGROUND, DUNGEON, GOLDENROD_CITY, MUSIC_UNION_CAVE, 1, PALETTE_DAY, 1 + map_header MountMortar1FOutside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 + map_header MountMortar1FInside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 + map_header MountMortar2FInside, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 + map_header MountMortarB1F, TILESET_WHIRL_ISLANDS, CAVE, MT_MORTAR, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 + map_header IcePath1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 + map_header IcePathB1F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 + map_header IcePathB2FMahoganySide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 + map_header IcePathB2FBlackthornSide, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 + map_header IcePathB3F, TILESET_ICE_PATH, CAVE, ICE_PATH, MUSIC_DARK_CAVE, 1, PALETTE_NITE, 5 + map_header WhirlIslandNW, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 + map_header WhirlIslandNE, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 + map_header WhirlIslandSW, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 + map_header WhirlIslandCave, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 + map_header WhirlIslandSE, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 + map_header WhirlIslandB1F, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 + map_header WhirlIslandB2F, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 + map_header WhirlIslandLugiaChamber, TILESET_WHIRL_ISLANDS, CAVE, WHIRL_ISLANDS, MUSIC_UNION_CAVE, 1, PALETTE_DARK, 10 + map_header SilverCaveRoom1, TILESET_WHIRL_ISLANDS, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DARK, 3 + map_header SilverCaveRoom2, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3 + map_header SilverCaveRoom3, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_DAY, 3 + map_header SilverCaveItemRooms, TILESET_CAVE, CAVE, SILVER_CAVE, MUSIC_LIGHTHOUSE, 1, PALETTE_NITE, 3 + map_header DarkCaveVioletEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3 + map_header DarkCaveBlackthornEntrance, TILESET_WHIRL_ISLANDS, CAVE, DARK_CAVE, MUSIC_DARK_CAVE, 1, PALETTE_DARK, 3 + map_header DragonsDen1F, TILESET_CAVE, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5 + map_header DragonsDenB1F, TILESET_JOHTO_OUTSIDE_1, CAVE, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 5 + map_header DragonShrine, TILESET_LAB, INDOOR, DRAGONS_DEN, MUSIC_DRAGONS_DEN, 1, PALETTE_NITE, 1 + map_header TohjoFalls, TILESET_CAVE, CAVE, TOHJO_FALLS, MUSIC_UNION_CAVE, 1, PALETTE_NITE, 3 + map_header DiglettsCave, TILESET_CAVE, CAVE, DIGLETTS_CAVE, MUSIC_MT_MOON, 1, PALETTE_NITE, 1 + map_header MountMoon, TILESET_CAVE, CAVE, MT_MOON, MUSIC_MT_MOON, 1, PALETTE_NITE, 1 + map_header Underground, TILESET_UNDERGROUND, GATE, UNDERGROUND, MUSIC_MT_MOON, 0, PALETTE_NITE, 1 + map_header RockTunnel1F, TILESET_WHIRL_ISLANDS, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1 + map_header RockTunnelB1F, TILESET_WHIRL_ISLANDS, CAVE, ROCK_TUNNEL, MUSIC_MT_MOON, 1, PALETTE_DARK, 1 + map_header SafariZoneFuchsiaGateBeta, TILESET_GATE, INDOOR, FUCHSIA_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header SafariZoneBeta, TILESET_PARK, CAVE, FUCHSIA_CITY, MUSIC_EVOLUTION, 0, PALETTE_AUTO, 1 + map_header VictoryRoad, TILESET_CAVE, CAVE, VICTORY_ROAD, MUSIC_VICTORY_ROAD, 1, PALETTE_NITE, 1 MapGroup4: - map_header EcruteakHouse, $17, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header WiseTriosRoom, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, PALETTE_DAY, 1 - map_header EcruteakPokeCenter1F, $7, INDOOR, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header EcruteakLugiaSpeechHouse, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header DanceTheatre, $10, INDOOR, ECRUTEAK_CITY, MUSIC_DANCING_HALL, 0, PALETTE_DAY, 1 - map_header EcruteakMart, $c, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header EcruteakGym, $17, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header EcruteakItemfinderHouse, $10, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header EcruteakCity, $1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4 + map_header EcruteakHouse, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header WiseTriosRoom, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 1, PALETTE_DAY, 1 + map_header EcruteakPokeCenter1F, TILESET_POKECENTER, INDOOR, ECRUTEAK_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header EcruteakLugiaSpeechHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header DanceTheatre, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_DANCING_HALL, 0, PALETTE_DAY, 1 + map_header EcruteakMart, TILESET_MART, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header EcruteakGym, TILESET_SPROUT_TOWER, INDOOR, ECRUTEAK_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header EcruteakItemfinderHouse, TILESET_KURT_HOUSE, INDOOR, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header EcruteakCity, TILESET_JOHTO_OUTSIDE_1, TOWN, ECRUTEAK_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 4 MapGroup5: - map_header BlackthornGym1F, $f, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header BlackthornGym2F, $f, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header BlackthornDragonSpeechHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header BlackthornDodrioTradeHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header BlackthornMart, $c, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header BlackthornPokeCenter1F, $7, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header MoveDeletersHouse, $5, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header Route45, $1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9 - map_header Route46, $1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header BlackthornCity, $1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4 + map_header BlackthornGym1F, TILESET_GYM_1, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header BlackthornGym2F, TILESET_GYM_1, INDOOR, BLACKTHORN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header BlackthornDragonSpeechHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header BlackthornDodrioTradeHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header BlackthornMart, TILESET_MART, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header BlackthornPokeCenter1F, TILESET_POKECENTER, INDOOR, BLACKTHORN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header MoveDeletersHouse, TILESET_HOUSE_1, INDOOR, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header Route45, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_45, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 9 + map_header Route46, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_46, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header BlackthornCity, TILESET_JOHTO_OUTSIDE_1, TOWN, BLACKTHORN_CITY, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 4 MapGroup6: - map_header CinnabarPokeCenter1F, $7, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header CinnabarPokeCenter2FBeta, $7, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header Route19FuchsiaGate, $8, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 - map_header SeafoamGym, $18, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header Route19, $3, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header Route20, $3, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2 - map_header Route21, $3, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2 - map_header CinnabarIsland, $3, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2 + map_header CinnabarPokeCenter1F, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header CinnabarPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CINNABAR_ISLAND, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header Route19FuchsiaGate, TILESET_GATE, GATE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 + map_header SeafoamGym, TILESET_CAVE, INDOOR, SEAFOAM_ISLANDS, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header Route19, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_19, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header Route20, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_20, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2 + map_header Route21, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_21, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 2 + map_header CinnabarIsland, TILESET_KANTO_OUTSIDE, TOWN, CINNABAR_ISLAND, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 2 MapGroup7: - map_header CeruleanGymBadgeSpeechHouse, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header CeruleanPoliceStation, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header CeruleanTradeSpeechHouse, $5, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header CeruleanPokeCenter1F, $7, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header CeruleanPokeCenter2FBeta, $7, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header CeruleanGym, $9, INDOOR, CERULEAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 0 - map_header CeruleanMart, $c, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header Route10PokeCenter1F, $7, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header Route10PokeCenter2FBeta, $7, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header PowerPlant, $b, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header BillsHouse, $5, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header Route4, $3, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0 - map_header Route9, $3, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header Route10North, $3, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header Route24, $3, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header Route25, $3, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header CeruleanCity, $3, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0 + map_header CeruleanGymBadgeSpeechHouse, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header CeruleanPoliceStation, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header CeruleanTradeSpeechHouse, TILESET_HOUSE_1, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header CeruleanPokeCenter1F, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header CeruleanPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CERULEAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header CeruleanGym, TILESET_PORT, INDOOR, CERULEAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 0 + map_header CeruleanMart, TILESET_MART, INDOOR, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route10PokeCenter1F, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header Route10PokeCenter2FBeta, TILESET_POKECENTER, INDOOR, ROUTE_10, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header PowerPlant, TILESET_POWER_PLANT, INDOOR, POWER_PLANT, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header BillsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_25, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route4, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_4, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0 + map_header Route9, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_9, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header Route10North, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header Route24, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_24, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header Route25, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_25, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header CeruleanCity, TILESET_KANTO_OUTSIDE, TOWN, CERULEAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 0 MapGroup8: - map_header AzaleaPokeCenter1F, $7, INDOOR, AZALEA_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header CharcoalKiln, $5, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header AzaleaMart, $c, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header KurtsHouse, $10, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header AzaleaGym, $f, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header Route33, $2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1 - map_header AzaleaTown, $2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1 + map_header AzaleaPokeCenter1F, TILESET_POKECENTER, INDOOR, AZALEA_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header CharcoalKiln, TILESET_HOUSE_1, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header AzaleaMart, TILESET_MART, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header KurtsHouse, TILESET_KURT_HOUSE, INDOOR, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header AzaleaGym, TILESET_GYM_1, INDOOR, AZALEA_TOWN, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header Route33, TILESET_JOHTO_OUTSIDE_2, ROUTE, ROUTE_33, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 1 + map_header AzaleaTown, TILESET_JOHTO_OUTSIDE_2, TOWN, AZALEA_TOWN, MUSIC_AZALEA_TOWN, 0, PALETTE_AUTO, 1 MapGroup9: - map_header LakeofRageHiddenPowerHouse, $5, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 - map_header LakeofRageMagikarpHouse, $5, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 - map_header Route43MahoganyGate, $8, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 - map_header Route43Gate, $8, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 - map_header Route43, $1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4 - map_header LakeofRage, $1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8 + map_header LakeofRageHiddenPowerHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 + map_header LakeofRageMagikarpHouse, TILESET_HOUSE_1, INDOOR, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 + map_header Route43MahoganyGate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 + map_header Route43Gate, TILESET_GATE, GATE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_DAY, 1 + map_header Route43, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_43, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 4 + map_header LakeofRage, TILESET_JOHTO_OUTSIDE_1, TOWN, LAKE_OF_RAGE, MUSIC_LAKE_OF_RAGE, 0, PALETTE_AUTO, 8 MapGroup10: - map_header Route32, $1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11 - map_header Route35, $1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4 - map_header Route36, $1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header Route37, $1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header VioletCity, $1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4 - map_header VioletMart, $c, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header VioletGym, $f, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header EarlsPokemonAcademy, $a, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header VioletNicknameSpeechHouse, $10, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header VioletPokeCenter1F, $7, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header VioletOnixTradeHouse, $10, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header Route32RuinsofAlphGate, $8, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1 - map_header Route32PokeCenter1F, $7, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header Route35Goldenrodgate, $8, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 - map_header Route35NationalParkgate, $8, INDOOR, ROUTE_35, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header Route36RuinsofAlphgate, $8, GATE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 - map_header Route36NationalParkgate, $8, INDOOR, ROUTE_36, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header Route32, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 11 + map_header Route35, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 4 + map_header Route36, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header Route37, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_37, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header VioletCity, TILESET_JOHTO_OUTSIDE_1, TOWN, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 4 + map_header VioletMart, TILESET_MART, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header VioletGym, TILESET_GYM_1, INDOOR, VIOLET_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header EarlsPokemonAcademy, TILESET_LAB, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header VioletNicknameSpeechHouse, TILESET_KURT_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header VioletPokeCenter1F, TILESET_POKECENTER, INDOOR, VIOLET_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header VioletOnixTradeHouse, TILESET_KURT_HOUSE, INDOOR, VIOLET_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header Route32RuinsofAlphGate, TILESET_GATE, GATE, ROUTE_32, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1 + map_header Route32PokeCenter1F, TILESET_POKECENTER, INDOOR, ROUTE_32, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header Route35Goldenrodgate, TILESET_GATE, GATE, ROUTE_35, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 + map_header Route35NationalParkgate, TILESET_GATE, INDOOR, ROUTE_35, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header Route36RuinsofAlphgate, TILESET_GATE, GATE, ROUTE_36, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 + map_header Route36NationalParkgate, TILESET_GATE, INDOOR, ROUTE_36, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 MapGroup11: - map_header Route34, $2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header GoldenrodCity, $2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1 - map_header GoldenrodGym, $f, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header GoldenrodBikeShop, $12, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodHappinessRater, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodBillsHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodMagnetTrainStation, $11, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodFlowerShop, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodPPSpeechHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodNameRatersHouse, $5, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodDeptStore1F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodDeptStore2F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodDeptStore3F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodDeptStore4F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodDeptStore5F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodDeptStore6F, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodDeptStoreElevator, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodDeptStoreRoof, $c, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 - map_header GoldenrodGameCorner, $e, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1 - map_header GoldenrodPokeCenter1F, $7, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header GoldenrodPokeComCenter2FMobile, $15, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header IlexForestAzaleaGate, $8, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 - map_header Route34IlexForestGate, $8, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 - map_header DayCare, $5, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header Route34, TILESET_JOHTO_OUTSIDE_2, ROUTE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header GoldenrodCity, TILESET_JOHTO_OUTSIDE_2, TOWN, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_AUTO, 1 + map_header GoldenrodGym, TILESET_GYM_1, INDOOR, GOLDENROD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header GoldenrodBikeShop, TILESET_OLIVINE_GYM, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodHappinessRater, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodBillsHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodMagnetTrainStation, TILESET_TRAIN_STATION, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodFlowerShop, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodPPSpeechHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodNameRatersHouse, TILESET_HOUSE_1, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodDeptStore1F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodDeptStore2F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodDeptStore3F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodDeptStore4F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodDeptStore5F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodDeptStore6F, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodDeptStoreElevator, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodDeptStoreRoof, TILESET_MART, INDOOR, GOLDENROD_CITY, MUSIC_GOLDENROD_CITY, 0, PALETTE_DAY, 1 + map_header GoldenrodGameCorner, TILESET_GAME_CORNER, INDOOR, GOLDENROD_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1 + map_header GoldenrodPokeCenter1F, TILESET_POKECENTER, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header GoldenrodPokeComCenter2FMobile, TILESET_GOLDENROD_POKECOM_CENTER_2F_MOBILE, INDOOR, GOLDENROD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header IlexForestAzaleaGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 + map_header Route34IlexForestGate, TILESET_GATE, GATE, ROUTE_34, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 + map_header DayCare, TILESET_HOUSE_1, INDOOR, ROUTE_34, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 MapGroup12: - map_header Route6, $3, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4 - map_header Route11, $3, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 - map_header VermilionCity, $3, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2 - map_header VermilionHouseFishingSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 - map_header VermilionPokeCenter1F, $7, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header VermilionPokeCenter2FBeta, $7, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 - map_header PokemonFanClub, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 - map_header VermilionMagnetTrainSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 - map_header VermilionMart, $c, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 - map_header VermilionHouseDiglettsCaveSpeechHouse, $5, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 - map_header VermilionGym, $e, INDOOR, VERMILION_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header Route6SaffronGate, $8, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 - map_header Route6UndergroundEntrance, $8, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 + map_header Route6, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4 + map_header Route11, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_11, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 + map_header VermilionCity, TILESET_KANTO_OUTSIDE, TOWN, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2 + map_header VermilionHouseFishingSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 + map_header VermilionPokeCenter1F, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header VermilionPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 + map_header PokemonFanClub, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 + map_header VermilionMagnetTrainSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 + map_header VermilionMart, TILESET_MART, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 + map_header VermilionHouseDiglettsCaveSpeechHouse, TILESET_HOUSE_1, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 + map_header VermilionGym, TILESET_GAME_CORNER, INDOOR, VERMILION_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header Route6SaffronGate, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 + map_header Route6UndergroundEntrance, TILESET_GATE, GATE, ROUTE_6, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 MapGroup13: - map_header Route1, $3, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1 - map_header PalletTown, $3, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2 - map_header RedsHouse1F, $6, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 - map_header RedsHouse2F, $6, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 - map_header BluesHouse, $5, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 - map_header OaksLab, $a, INDOOR, PALLET_TOWN, MUSIC_POKEMON_TALK, 0, PALETTE_DAY, 1 + map_header Route1, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_1, MUSIC_ROUTE_1, 0, PALETTE_AUTO, 1 + map_header PalletTown, TILESET_KANTO_OUTSIDE, TOWN, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_AUTO, 2 + map_header RedsHouse1F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 + map_header RedsHouse2F, TILESET_KRISS_HOUSE, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 + map_header BluesHouse, TILESET_HOUSE_1, INDOOR, PALLET_TOWN, MUSIC_PALLET_TOWN, 0, PALETTE_DAY, 1 + map_header OaksLab, TILESET_LAB, INDOOR, PALLET_TOWN, MUSIC_POKEMON_TALK, 0, PALETTE_DAY, 1 MapGroup14: - map_header Route3, $3, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header PewterCity, $3, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1 - map_header PewterNidoranSpeechHouse, $5, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header PewterGym, $17, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header PewterMart, $c, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header PewterPokeCenter1F, $7, INDOOR, PEWTER_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header PewterPokeCEnter2FBeta, $7, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header PewterSnoozeSpeechHouse, $5, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route3, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_3, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header PewterCity, TILESET_KANTO_OUTSIDE, TOWN, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1 + map_header PewterNidoranSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header PewterGym, TILESET_SPROUT_TOWER, INDOOR, PEWTER_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header PewterMart, TILESET_MART, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header PewterPokeCenter1F, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header PewterPokeCEnter2FBeta, TILESET_POKECENTER, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header PewterSnoozeSpeechHouse, TILESET_HOUSE_1, INDOOR, PEWTER_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 MapGroup15: - map_header OlivinePort, $9, ROUTE, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 2 - map_header VermilionPort, $9, ROUTE, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2 - map_header FastShip1F, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 - map_header FastShipCabins_NNW_NNE_NE, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 - map_header FastShipCabins_SW_SSW_NW, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 - map_header FastShipCabins_SE_SSE_CaptainsCabin, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 - map_header FastShipB1F, $13, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 - map_header OlivinePortPassage, $1c, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 - map_header VermilionPortPassage, $1c, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 - map_header MountMoonSquare, $3, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1 - map_header MountMoonGiftShop, $10, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header TinTowerRoof, $17, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_AUTO, 1 + map_header OlivinePort, TILESET_PORT, ROUTE, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_AUTO, 2 + map_header VermilionPort, TILESET_PORT, ROUTE, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_AUTO, 2 + map_header FastShip1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 + map_header FastShipCabins_NNW_NNE_NE, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 + map_header FastShipCabins_SW_SSW_NW, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 + map_header FastShipCabins_SE_SSE_CaptainsCabin, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 + map_header FastShipB1F, TILESET_LIGHTHOUSE, INDOOR, FAST_SHIP, MUSIC_SS_AQUA, 0, PALETTE_DAY, 1 + map_header OlivinePortPassage, TILESET_UNDERGROUND, INDOOR, OLIVINE_CITY, MUSIC_VIOLET_CITY, 0, PALETTE_DAY, 1 + map_header VermilionPortPassage, TILESET_UNDERGROUND, INDOOR, VERMILION_CITY, MUSIC_VERMILION_CITY, 0, PALETTE_DAY, 1 + map_header MountMoonSquare, TILESET_KANTO_OUTSIDE, ROUTE, MT_MOON, MUSIC_MT_MOON_SQUARE, 0, PALETTE_AUTO, 1 + map_header MountMoonGiftShop, TILESET_KURT_HOUSE, INDOOR, MT_MOON, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header TinTowerRoof, TILESET_SPROUT_TOWER, ROUTE, TIN_TOWER, MUSIC_TIN_TOWER, 0, PALETTE_AUTO, 1 MapGroup16: - map_header Route23, $3, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1 - map_header IndigoPlateauPokeCenter1F, $7, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1 - map_header WillsRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 - map_header KogasRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 - map_header BrunosRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 - map_header KarensRoom, $f, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 - map_header LancesRoom, $12, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 - map_header HallOfFame, $1d, INDOOR, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 1, PALETTE_DAY, 1 + map_header Route23, TILESET_KANTO_OUTSIDE, TOWN, ROUTE_23, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 1 + map_header IndigoPlateauPokeCenter1F, TILESET_POKECENTER, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1 + map_header WillsRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 + map_header KogasRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 + map_header BrunosRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 + map_header KarensRoom, TILESET_GYM_1, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 + map_header LancesRoom, TILESET_OLIVINE_GYM, INDOOR, INDIGO_PLATEAU, MUSIC_INDIGO_PLATEAU, 1, PALETTE_DAY, 1 + map_header HallOfFame, TILESET_ICE_PATH, INDOOR, INDIGO_PLATEAU, MUSIC_NEW_BARK_TOWN, 1, PALETTE_DAY, 1 MapGroup17: - map_header Route13, $3, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13 - map_header Route14, $3, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 - map_header Route15, $3, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 - map_header Route18, $3, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header FuchsiaCity, $3, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8 - map_header FuchsiaMart, $c, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header SafariZoneMainOffice, $e, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header FuchsiaGym, $a, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header FuchsiaBillSpeechHouse, $5, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header FuchsiaPokeCenter1F, $7, INDOOR, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header FuchsiaPokeCenter2FBeta, $7, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header SafariZoneWardensHome, $5, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header Route15FuchsiaGate, $8, GATE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_DAY, 1 + map_header Route13, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_13, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13 + map_header Route14, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_14, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 + map_header Route15, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 1 + map_header Route18, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_18, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header FuchsiaCity, TILESET_KANTO_OUTSIDE, TOWN, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 8 + map_header FuchsiaMart, TILESET_MART, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header SafariZoneMainOffice, TILESET_GAME_CORNER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header FuchsiaGym, TILESET_LAB, INDOOR, FUCHSIA_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header FuchsiaBillSpeechHouse, TILESET_HOUSE_1, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header FuchsiaPokeCenter1F, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header FuchsiaPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header SafariZoneWardensHome, TILESET_HOUSE_1, INDOOR, FUCHSIA_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header Route15FuchsiaGate, TILESET_GATE, GATE, ROUTE_15, MUSIC_ROUTE_12, 0, PALETTE_DAY, 1 MapGroup18: - map_header Route8, $3, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header Route12, $3, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13 - map_header Route10South, $3, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 - map_header LavenderTown, $3, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1 - map_header LavenderPokeCenter1F, $7, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header LavenderPokeCenter2FBeta, $7, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header MrFujisHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 - map_header LavenderTownSpeechHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 - map_header LavenderNameRater, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 - map_header LavenderMart, $c, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 - map_header SoulHouse, $5, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 - map_header LavRadioTower1F, $1b, INDOOR, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 - map_header Route8SaffronGate, $8, GATE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 - map_header Route12SuperRodHouse, $5, INDOOR, ROUTE_12, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route8, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header Route12, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_12, MUSIC_ROUTE_12, 0, PALETTE_AUTO, 13 + map_header Route10South, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_10, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 3 + map_header LavenderTown, TILESET_KANTO_OUTSIDE, TOWN, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_AUTO, 1 + map_header LavenderPokeCenter1F, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header LavenderPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, LAVENDER_TOWN, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header MrFujisHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 + map_header LavenderTownSpeechHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 + map_header LavenderNameRater, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 + map_header LavenderMart, TILESET_MART, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 + map_header SoulHouse, TILESET_HOUSE_1, INDOOR, LAVENDER_TOWN, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 + map_header LavRadioTower1F, TILESET_RADIO_TOWER, INDOOR, LAV_RADIO_TOWER, MUSIC_LAVENDER_TOWN, 0, PALETTE_DAY, 1 + map_header Route8SaffronGate, TILESET_GATE, GATE, ROUTE_8, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 + map_header Route12SuperRodHouse, TILESET_HOUSE_1, INDOOR, ROUTE_12, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 MapGroup19: - map_header Route28, $3, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4 - map_header SilverCaveOutside, $3, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4 - map_header SilverCavePokeCenter1F, $7, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header Route28FamousSpeechHouse, $5, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header Route28, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_28, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4 + map_header SilverCaveOutside, TILESET_KANTO_OUTSIDE, TOWN, SILVER_CAVE, MUSIC_INDIGO_PLATEAU, 0, PALETTE_AUTO, 4 + map_header SilverCavePokeCenter1F, TILESET_POKECENTER, INDOOR, SILVER_CAVE, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header Route28FamousSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_28, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 MapGroup20: - map_header PokeCenter2F, $7, INDOOR, SPECIAL_MAP, MUSIC_POKEMON_CENTER, 1, PALETTE_DAY, 1 - map_header TradeCenter, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 - map_header Colosseum, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 - map_header TimeCapsule, $8, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 - map_header MobileTradeRoomMobile, $d, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 - map_header MobileBattleRoom, $d, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 + map_header PokeCenter2F, TILESET_POKECENTER, INDOOR, SPECIAL_MAP, MUSIC_POKEMON_CENTER, 1, PALETTE_DAY, 1 + map_header TradeCenter, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 + map_header Colosseum, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 + map_header TimeCapsule, TILESET_GATE, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 + map_header MobileTradeRoomMobile, TILESET_CELADON_MANSION, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 + map_header MobileBattleRoom, TILESET_CELADON_MANSION, INDOOR, SPECIAL_MAP, MUSIC_CHERRYGROVE_CITY, 1, PALETTE_DAY, 1 MapGroup21: - map_header Route7, $3, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header Route16, $3, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header Route17, $3, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0 - map_header CeladonCity, $3, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0 - map_header CeladonDeptStore1F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonDeptStore2F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonDeptStore3F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonDeptStore4F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonDeptStore5F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonDeptStore6F, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonDeptStoreElevator, $c, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonMansion1F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonMansion2F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonMansion3F, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonMansionRoof, $d, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonMansionRoofHouse, $5, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonPokeCenter1F, $7, INDOOR, CELADON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header CeladonPokeCenter2FBeta, $7, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonGameCorner, $e, INDOOR, CELADON_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1 - map_header CeladonGameCornerPrizeRoom, $e, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header CeladonGym, $11, INDOOR, CELADON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header CeladonCafe, $e, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header Route16FuchsiaSpeechHouse, $5, INDOOR, ROUTE_16, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 - map_header Route16Gate, $8, GATE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 - map_header Route7SaffronGate, $8, GATE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 - map_header Route1718Gate, $8, GATE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 + map_header Route7, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header Route16, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header Route17, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 0 + map_header CeladonCity, TILESET_KANTO_OUTSIDE, TOWN, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_AUTO, 0 + map_header CeladonDeptStore1F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonDeptStore2F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonDeptStore3F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonDeptStore4F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonDeptStore5F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonDeptStore6F, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonDeptStoreElevator, TILESET_MART, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonMansion1F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonMansion2F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonMansion3F, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonMansionRoof, TILESET_CELADON_MANSION, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonMansionRoofHouse, TILESET_HOUSE_1, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonPokeCenter1F, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header CeladonPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonGameCorner, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_GAME_CORNER, 0, PALETTE_DAY, 1 + map_header CeladonGameCornerPrizeRoom, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header CeladonGym, TILESET_TRAIN_STATION, INDOOR, CELADON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header CeladonCafe, TILESET_GAME_CORNER, INDOOR, CELADON_CITY, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header Route16FuchsiaSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_16, MUSIC_CELADON_CITY, 0, PALETTE_DAY, 1 + map_header Route16Gate, TILESET_GATE, GATE, ROUTE_16, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 + map_header Route7SaffronGate, TILESET_GATE, GATE, ROUTE_7, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 + map_header Route1718Gate, TILESET_GATE, GATE, ROUTE_17, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 MapGroup22: - map_header Route40, $1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 - map_header Route41, $1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2 - map_header CianwoodCity, $1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1 - map_header ManiasHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header CianwoodGym, $17, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header CianwoodPokeCenter1F, $7, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header CianwoodPharmacy, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header CianwoodCityPhotoStudio, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header CianwoodLugiaSpeechHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header PokeSeersHouse, $5, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 - map_header BattleTower1F, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 1, PALETTE_DAY, 1 - map_header BattleTowerBattleRoom, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1 - map_header BattleTowerElevator, $16, INDOOR, BATTLE_TOWER, MUSIC_NONE, 1, PALETTE_DAY, 1 - map_header BattleTowerHallway, $16, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1 - map_header Route40BattleTowerGate, $8, GATE, BATTLE_TOWER, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 - map_header BattleTowerOutside, $4, ROUTE, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, PALETTE_AUTO, 1 + map_header Route40, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_40, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 1 + map_header Route41, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_41, MUSIC_ROUTE_36, 0, PALETTE_AUTO, 2 + map_header CianwoodCity, TILESET_JOHTO_OUTSIDE_1, TOWN, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_AUTO, 1 + map_header ManiasHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header CianwoodGym, TILESET_SPROUT_TOWER, INDOOR, CIANWOOD_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header CianwoodPokeCenter1F, TILESET_POKECENTER, INDOOR, CIANWOOD_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header CianwoodPharmacy, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header CianwoodCityPhotoStudio, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header CianwoodLugiaSpeechHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header PokeSeersHouse, TILESET_HOUSE_1, INDOOR, CIANWOOD_CITY, MUSIC_ECRUTEAK_CITY, 0, PALETTE_DAY, 1 + map_header BattleTower1F, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_LOBBY, 1, PALETTE_DAY, 1 + map_header BattleTowerBattleRoom, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1 + map_header BattleTowerElevator, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_NONE, 1, PALETTE_DAY, 1 + map_header BattleTowerHallway, TILESET_BATTLE_TOWER, INDOOR, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 1, PALETTE_DAY, 1 + map_header Route40BattleTowerGate, TILESET_GATE, GATE, BATTLE_TOWER, MUSIC_ROUTE_36, 0, PALETTE_DAY, 1 + map_header BattleTowerOutside, TILESET_BATTLE_TOWER_OUTSIDE, ROUTE, BATTLE_TOWER, MUSIC_BATTLE_TOWER_THEME, 0, PALETTE_AUTO, 1 MapGroup23: - map_header Route2, $3, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1 - map_header Route22, $3, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4 - map_header ViridianCity, $3, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4 - map_header ViridianGym, $11, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header ViridianNicknameSpeechHouse, $5, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header TrainerHouse1F, $5, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header TrainerHouseB1F, $b, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header ViridianMart, $c, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header ViridianPokeCenter1F, $7, INDOOR, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header ViridianPokeCenter2FBeta, $7, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header Route2NuggetSpeechHouse, $5, INDOOR, ROUTE_2, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header Route2Gate, $8, GATE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_DAY, 1 - map_header VictoryRoadGate, $8, GATE, ROUTE_26, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1 + map_header Route2, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_AUTO, 1 + map_header Route22, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_22, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 4 + map_header ViridianCity, TILESET_KANTO_OUTSIDE, TOWN, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 4 + map_header ViridianGym, TILESET_TRAIN_STATION, INDOOR, VIRIDIAN_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header ViridianNicknameSpeechHouse, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header TrainerHouse1F, TILESET_HOUSE_1, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header TrainerHouseB1F, TILESET_POWER_PLANT, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header ViridianMart, TILESET_MART, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header ViridianPokeCenter1F, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header ViridianPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, VIRIDIAN_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route2NuggetSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_2, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route2Gate, TILESET_GATE, GATE, ROUTE_2, MUSIC_ROUTE_2, 0, PALETTE_DAY, 1 + map_header VictoryRoadGate, TILESET_GATE, GATE, ROUTE_26, MUSIC_INDIGO_PLATEAU, 0, PALETTE_DAY, 1 MapGroup24: - map_header Route26, $1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2 - map_header Route27, $1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2 - map_header Route29, $1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1 - map_header NewBarkTown, $1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2 - map_header ElmsLab, $a, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, PALETTE_DAY, 1 - map_header KrissHouse1F, $6, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 - map_header KrissHouse2F, $14, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 - map_header KrissNeighborsHouse, $5, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 - map_header ElmsHouse, $6, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 - map_header Route26HealSpeechHouse, $5, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header Route26DayofWeekSiblingsHouse, $5, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header Route27SandstormHouse, $5, INDOOR, ROUTE_27, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 - map_header Route2946Gate, $8, GATE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_DAY, 1 + map_header Route26, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_26, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2 + map_header Route27, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_27, MUSIC_ROUTE_26, 0, PALETTE_AUTO, 2 + map_header Route29, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_AUTO, 1 + map_header NewBarkTown, TILESET_JOHTO_OUTSIDE_1, TOWN, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_AUTO, 2 + map_header ElmsLab, TILESET_LAB, INDOOR, NEW_BARK_TOWN, MUSIC_PROF_ELM, 0, PALETTE_DAY, 1 + map_header KrissHouse1F, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 + map_header KrissHouse2F, TILESET_KRISS_HOUSE_2F, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 + map_header KrissNeighborsHouse, TILESET_HOUSE_1, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 + map_header ElmsHouse, TILESET_KRISS_HOUSE, INDOOR, NEW_BARK_TOWN, MUSIC_NEW_BARK_TOWN, 0, PALETTE_DAY, 1 + map_header Route26HealSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header Route26DayofWeekSiblingsHouse, TILESET_HOUSE_1, INDOOR, ROUTE_26, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header Route27SandstormHouse, TILESET_HOUSE_1, INDOOR, ROUTE_27, MUSIC_AZALEA_TOWN, 0, PALETTE_DAY, 1 + map_header Route2946Gate, TILESET_GATE, GATE, ROUTE_29, MUSIC_ROUTE_29, 0, PALETTE_DAY, 1 MapGroup25: - map_header Route5, $3, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 - map_header SaffronCity, $3, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1 - map_header FightingDojo, $11, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header SaffronGym, $1c, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 - map_header SaffronMart, $c, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header SaffronPokeCenter1F, $7, INDOOR, SAFFRON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header SaffronPokeCenter2FBeta, $7, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header MrPsychicsHouse, $5, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header SaffronTrainStation, $11, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header SilphCo1F, $b, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header CopycatsHouse1F, $6, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header CopycatsHouse2F, $6, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header Route5UndergroundEntrance, $8, GATE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 - map_header Route5SaffronCityGate, $8, GATE, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 - map_header Route5CleanseTagSpeechHouse, $5, INDOOR, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route5, TILESET_KANTO_OUTSIDE, ROUTE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_AUTO, 1 + map_header SaffronCity, TILESET_KANTO_OUTSIDE, TOWN, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_AUTO, 1 + map_header FightingDojo, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header SaffronGym, TILESET_UNDERGROUND, INDOOR, SAFFRON_CITY, MUSIC_GYM, 1, PALETTE_DAY, 1 + map_header SaffronMart, TILESET_MART, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header SaffronPokeCenter1F, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header SaffronPokeCenter2FBeta, TILESET_POKECENTER, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header MrPsychicsHouse, TILESET_HOUSE_1, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header SaffronTrainStation, TILESET_TRAIN_STATION, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header SilphCo1F, TILESET_POWER_PLANT, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header CopycatsHouse1F, TILESET_KRISS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header CopycatsHouse2F, TILESET_KRISS_HOUSE, INDOOR, SAFFRON_CITY, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route5UndergroundEntrance, TILESET_GATE, GATE, ROUTE_5, MUSIC_ROUTE_3, 0, PALETTE_DAY, 1 + map_header Route5SaffronCityGate, TILESET_GATE, GATE, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 + map_header Route5CleanseTagSpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_5, MUSIC_VIRIDIAN_CITY, 0, PALETTE_DAY, 1 MapGroup26: - map_header Route30, $1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4 - map_header Route31, $1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4 - map_header CherrygroveCity, $1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1 - map_header CherrygroveMart, $c, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 - map_header CherrygrovePokeCenter1F, $7, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 - map_header CherrygroveGymSpeechHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 - map_header GuideGentsHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 - map_header CherrygroveEvolutionSpeechHouse, $5, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 - map_header Route30BerrySpeechHouse, $5, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 - map_header MrPokemonsHouse, $b, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 - map_header Route31VioletGate, $8, GATE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1 + map_header Route30, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_30, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4 + map_header Route31, TILESET_JOHTO_OUTSIDE_1, ROUTE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_AUTO, 4 + map_header CherrygroveCity, TILESET_JOHTO_OUTSIDE_1, TOWN, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_AUTO, 1 + map_header CherrygroveMart, TILESET_MART, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 + map_header CherrygrovePokeCenter1F, TILESET_POKECENTER, INDOOR, CHERRYGROVE_CITY, MUSIC_POKEMON_CENTER, 0, PALETTE_DAY, 1 + map_header CherrygroveGymSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 + map_header GuideGentsHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 + map_header CherrygroveEvolutionSpeechHouse, TILESET_HOUSE_1, INDOOR, CHERRYGROVE_CITY, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 + map_header Route30BerrySpeechHouse, TILESET_HOUSE_1, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 + map_header MrPokemonsHouse, TILESET_POWER_PLANT, INDOOR, ROUTE_30, MUSIC_CHERRYGROVE_CITY, 0, PALETTE_DAY, 1 + map_header Route31VioletGate, TILESET_GATE, GATE, ROUTE_31, MUSIC_ROUTE_30, 0, PALETTE_DAY, 1 diff --git a/misc/battle_tower_47.asm b/misc/battle_tower_47.asm index d5c9693b6..68abcf1b9 100755 --- a/misc/battle_tower_47.asm +++ b/misc/battle_tower_47.asm @@ -2888,7 +2888,7 @@ Function11d323: ; 11d323 ld a, $5 ld [rSVBK], a ld hl, Palette_11d33a - ld de, Unkn1Pals + ld de, wMapPals ld bc, 16 * 8 call CopyBytes pop af @@ -3015,7 +3015,7 @@ Function11d3ef: ; 11d3ef ld a, [hli] ld b, a push hl - ld hl, Unkn1Pals + ld hl, wMapPals add hl, de ld a, [wcd2d] ld e, a diff --git a/misc/crystal_misc.asm b/misc/crystal_misc.asm index 7a84364da..489ec77ee 100644 --- a/misc/crystal_misc.asm +++ b/misc/crystal_misc.asm @@ -768,11 +768,11 @@ Function17aba0: ; 17aba0 (5e:6ba0) Function17abcf: ; 17abcf (5e:6bcf) ld a, [rSVBK] push af - ld a, BANK(Unkn1Pals) + ld a, BANK(wMapPals) ld [rSVBK], a ld hl, Palette_17ac55 - ld de, Unkn1Pals ; $d000 + ld de, wMapPals ; $d000 ld bc, $30 call CopyBytes diff --git a/misc/mobile_22.asm b/misc/mobile_22.asm index d73776be6..291006118 100644 --- a/misc/mobile_22.asm +++ b/misc/mobile_22.asm @@ -623,7 +623,7 @@ Function8949c: ; 8949c ld a, 5 ld [rSVBK], a ld hl, Palette_894b3 - ld de, Unkn1Pals + 8 * 7 + ld de, wMapPals + 8 * 7 ld bc, 8 call CopyBytes pop af @@ -674,7 +674,7 @@ endr ld a, [hli] ld h, [hl] ld l, a - ld de, Unkn1Pals + ld de, wMapPals ld bc, 24 call CopyBytes ld hl, Palette_89557 @@ -2152,7 +2152,7 @@ Function89d0d: ; 89d0d (22:5d0d) ld a, $5 ld [rSVBK], a ld c, $8 - ld de, Unkn1Pals + ld de, wMapPals .asm_89d1c push bc ld hl, Palette_89d4e diff --git a/misc/mobile_22_2.asm b/misc/mobile_22_2.asm index cb5fc0628..7a206e3e0 100644 --- a/misc/mobile_22_2.asm +++ b/misc/mobile_22_2.asm @@ -610,7 +610,7 @@ Function8b6bb: ; 8b6bb ld a, $5 ld [rSVBK], a ld hl, Palette_8b6d5 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0018 call CopyBytes pop af diff --git a/misc/mobile_42.asm b/misc/mobile_42.asm index 5e48eb6c1..39d27e941 100644 --- a/misc/mobile_42.asm +++ b/misc/mobile_42.asm @@ -804,7 +804,7 @@ Function108638: ; 108638 ld a, $5 ld [rSVBK], a ld hl, Palette_109107 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0040 call CopyBytes pop af @@ -850,7 +850,7 @@ Function108689: ; 108689 ld a, $5 ld [rSVBK], a ld hl, Palette_109107 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0040 call CopyBytes pop af @@ -894,7 +894,7 @@ Function1086f4: ; 1086f4 ld a, $5 ld [rSVBK], a ld hl, Palette_109107 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0040 call CopyBytes pop af @@ -1459,7 +1459,7 @@ Function108b45: ; 108b45 ld a, $5 ld [rSVBK], a ld de, $7fff - ld hl, Unkn1Pals + ld hl, wMapPals ld a, e ld [hli], a ld d, a @@ -1537,7 +1537,7 @@ Function108b98: ; 108b98 ld hl, Palette_108b98 .asm_108bb0 - ld de, Unkn1Pals + 8 * 7 + ld de, wMapPals + 8 * 7 ld bc, $0040 call CopyBytes pop af diff --git a/misc/mobile_45.asm b/misc/mobile_45.asm index 5bb2b4a0c..6852745b5 100644 --- a/misc/mobile_45.asm +++ b/misc/mobile_45.asm @@ -5786,7 +5786,7 @@ Function116294: ; 116294 ld bc, $0010 call CopyBytes ld hl, Palette_11734e - ld de, Unkn1Pals + 8 * 7 + ld de, wMapPals + 8 * 7 ld bc, $0008 call CopyBytes call SetPalettes @@ -5912,7 +5912,7 @@ Function11636e: ; 11636e ld a, $5 ld [rSVBK], a ld hl, BGPals - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0040 call CopyBytes pop af diff --git a/misc/mobile_46.asm b/misc/mobile_46.asm index 1bcccbfe5..54e5a81ba 100755 --- a/misc/mobile_46.asm +++ b/misc/mobile_46.asm @@ -175,7 +175,7 @@ Function118125: ; 118125 cp [hl] jr nz, .asm_11813e xor a - ld [Unkn1Pals], a + ld [wMapPals], a pop af ld [rSVBK], a call Function118452 @@ -1067,7 +1067,7 @@ Function11878d: ; 11878d (46:478d) set 0, [hl] ld a, $6 ld [rSVBK], a - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 ld a, [hl] sla a @@ -1462,7 +1462,7 @@ Function118a65: ; 118a65 ld de, wcc60 ld bc, $80 call CopyBytes - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 jp Function118b10 ; 118a7a @@ -1472,7 +1472,7 @@ Function118a7a: ; 118a7a ld de, wcc60 ld bc, $80 call CopyBytes - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 jp Function118b10 ; 118a8f @@ -1482,7 +1482,7 @@ Function118a8f: ; 118a8f ld de, wcc60 ld bc, $80 call CopyBytes - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 jp Function118b10 ; 118aa4 @@ -1504,7 +1504,7 @@ Function118abc: ; 118abc (46:4abc) ld de, wcc60 ld bc, $80 call CopyBytes - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 jr Function118b10 ; 118ad0 (46:4ad0) @@ -1514,7 +1514,7 @@ Function118ad0: ld de, wcc60 ld bc, $80 call CopyBytes - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 jr Function118b10 @@ -2101,7 +2101,7 @@ Function119009: ld a, $40 ld [wcd89], a ld hl, wc314 + 48 + 2 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 ld a, $2c jp Function119e2b @@ -2115,7 +2115,7 @@ Function119054: ; 119054 ld e, a ld a, [wcd50] ld d, a - ld a, [Unkn1Pals] + ld a, [wMapPals] ld c, a ld a, [wd001] ld b, a @@ -2127,7 +2127,7 @@ Function119054: ; 119054 ld a, $6 ld [rSVBK], a ld hl, wd002 - ld a, [Unkn1Pals] + ld a, [wMapPals] ld c, a ld a, [wd001] ld b, a @@ -2174,7 +2174,7 @@ Function1190d0: ; 1190d0 ld de, wcc60 call Function1191ad ret c - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 jp Function118b10 ; 1190ec @@ -2194,7 +2194,7 @@ Function1190ec: ; 1190ec call CloseSRAM ld a, $6 call GetSRAMBank - ld a, [Unkn1Pals] + ld a, [wMapPals] ld c, a ld a, [wd001] ld b, a @@ -2207,7 +2207,7 @@ Function1190ec: ; 1190ec jr z, .asm_11913e ld a, $6 ld [rSVBK], a - ld a, [Unkn1Pals] + ld a, [wMapPals] ld c, a ld a, [wd001] ld b, a @@ -2674,7 +2674,7 @@ Function1193fb: ld a, $8 ld [wcd3c], a call Function119ed8 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 jp Function118b10 ; 119413 @@ -2682,7 +2682,7 @@ Function1193fb: Function119413: ; 119413 ld a, $6 call GetSRAMBank - ld a, [Unkn1Pals] + ld a, [wMapPals] ld c, a ld a, [wd001] ld b, a @@ -3039,7 +3039,7 @@ Function119648: ; 119648 (46:5648) ld [wcd3c], a call Function119ed8 call Function118b24 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 ld a, $2a jp Function119e2b @@ -3334,7 +3334,7 @@ Function1197dc: xor a ld [de], a call Function118b24 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 ld a, $2a jp Function119e2b @@ -3533,14 +3533,14 @@ Function119973: ; 119973 xor a ld [wcf65], a ld [StringBuffer2 + 10], a - ld de, Unkn1Pals + ld de, wMapPals ld a, $20 jp Function119e2b ; 119987 Function119987: ; 119987 ld hl, wd001 - ld a, [Unkn1Pals] + ld a, [wMapPals] or [hl] jr z, .asm_1199a0 ld a, [wcf64] @@ -3702,13 +3702,13 @@ Function1199e2: ; 1199e2 ld [StringBuffer2 + 12], a Function119ac9: - ld a, [Unkn1Pals] + ld a, [wMapPals] ld l, a ld a, [wd001] ld h, a dec hl ld a, l - ld [Unkn1Pals], a + ld [wMapPals], a ld a, h ld [wd001], a ld a, [wcf64] diff --git a/misc/mobile_5b.asm b/misc/mobile_5b.asm index 6fb42b16f..3e26aa9ea 100755 --- a/misc/mobile_5b.asm +++ b/misc/mobile_5b.asm @@ -179,7 +179,7 @@ Function16c108: ; 16c108 ; 16c130 Function16c130: ; 16c130 - ld de, Unkn1Pals + ld de, wMapPals ld hl, Unknown_16c903 ld bc, 8 ld a, $5 @@ -274,7 +274,7 @@ Function16c943: ; 16c943 ld [rSVBK], a ld a, $ff ld bc, $0008 - ld hl, Unkn1Pals + ld hl, wMapPals call ByteFill pop af ld [rSVBK], a @@ -291,7 +291,7 @@ Function16c943: ; 16c943 call Function16cab6 call Function16cabb ld d, a - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cabb cp d @@ -305,7 +305,7 @@ Function16c943: ; 16c943 jr nz, .asm_16c981 .asm_16c988 - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cadc @@ -314,7 +314,7 @@ Function16c943: ; 16c943 call Function16cab6 call Function16cad8 ld d, a - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cad8 cp d @@ -328,7 +328,7 @@ Function16c943: ; 16c943 jr nz, .asm_16c9a9 .asm_16c9b0 - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cb08 @@ -337,7 +337,7 @@ Function16c943: ; 16c943 call Function16cab6 call Function16cac4 ld d, a - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cac4 cp d @@ -351,7 +351,7 @@ Function16c943: ; 16c943 jr nz, .asm_16c9d1 .asm_16c9d8 - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cae8 @@ -402,7 +402,7 @@ Function16ca11: ; 16ca11 ld e, $0 ld a, $0 .asm_16ca28 - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cabb cp $1f @@ -416,12 +416,12 @@ Function16ca11: ; 16ca11 jr nz, .asm_16ca37 .asm_16ca3f - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cadc .asm_16ca48 - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cad8 cp $1f @@ -435,12 +435,12 @@ Function16ca11: ; 16ca11 jr nz, .asm_16ca57 .asm_16ca5f - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cb08 .asm_16ca68 - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cac4 cp $1f @@ -454,7 +454,7 @@ Function16ca11: ; 16ca11 jr nz, .asm_16ca77 .asm_16ca7f - ld hl, Unkn1Pals + ld hl, wMapPals call Function16cab6 call Function16cae8 diff --git a/misc/mobile_5c.asm b/misc/mobile_5c.asm index 0b4b18b4f..5d9e207bb 100755 --- a/misc/mobile_5c.asm +++ b/misc/mobile_5c.asm @@ -1532,7 +1532,7 @@ Function170cc6: ; 170cc6 ld hl, LZ_1715a4 ld de, wd000 call Decompress - ld de, Unkn1Pals + ld de, wMapPals ld hl, VTiles0 lb bc, $6, $53 call Get2bpp @@ -1957,7 +1957,7 @@ Function171ccd: ; 171ccd (5c:5ccd) ld a, $5 ld [rSVBK], a ld hl, Palette_171d71 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $40 call CopyBytes ld hl, MovementAnimation @@ -2120,7 +2120,7 @@ Function172eb9: ld a, $5 ld [rSVBK], a ld hl, Palette_172edf - ld de, Unkn1Pals + ld de, wMapPals ld bc, $40 call CopyBytes ld hl, Palette_172edf diff --git a/misc/mobile_5f.asm b/misc/mobile_5f.asm index ab6dd07e7..01a4db77f 100644 --- a/misc/mobile_5f.asm +++ b/misc/mobile_5f.asm @@ -48,11 +48,11 @@ Function17c000: ; 17c000 ld a, [rSVBK] push af - ld a, 5 ; BANK(Unkn1Pals) + ld a, 5 ; BANK(wMapPals) ld [rSVBK], a ld hl, HaveWantPals - ld de, Unkn1Pals + ld de, wMapPals ld bc, $80 call CopyBytes @@ -664,7 +664,7 @@ Function17d370: ; 17d370 ld a, $6 call GetSRAMBank ld hl, $a006 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 call CopyBytes call CloseSRAM @@ -705,7 +705,7 @@ Function17d405: ld a, $5 ld [rSVBK], a ld hl, Palette_17eff6 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0040 call CopyBytes call SetPalettes @@ -985,7 +985,7 @@ Function17d5f6: ; 17d5f6 ld a, $5 ld [rSVBK], a ld hl, $c608 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0040 call CopyBytes ld a, $4 @@ -1239,7 +1239,7 @@ Function17d78d: ; 17d78d call GetSRAMBank ld hl, $a006 add hl, bc - ld de, Unkn1Pals + ld de, wMapPals ld bc, $1000 call CopyBytes call CloseSRAM @@ -1363,7 +1363,7 @@ Function17d85d: ; 17d85d ld a, [hli] ld d, a push hl - ld hl, Unkn1Pals + ld hl, wMapPals add hl, de ld de, wcc60 .asm_17d86c @@ -1432,7 +1432,7 @@ Function17d85d: ; 17d85d ld a, $3 ld [rSVBK], a ld hl, $c608 - ld de, Unkn1Pals + ld de, wMapPals ld b, $0 call CopyBytes ld a, $4 @@ -1467,7 +1467,7 @@ Function17d902: ; 17d902 call Function17e41e call Function17e32b pop de - ld hl, Unkn1Pals + ld hl, wMapPals add hl, de ld de, wcc60 .asm_17d918 @@ -1984,7 +1984,7 @@ Function17dca9: ; 17dca9 Function17dcaf: ld a, $5 ld [rSVBK], a - ld hl, Unkn1Pals + ld hl, wMapPals ld de, $0008 ld c, $8 .asm_17dcbb @@ -3165,7 +3165,7 @@ Function17e409: ; 17e409 ; 17e40f Function17e40f: ; 17e40f - ld de, Unkn1Pals + ld de, wMapPals add hl, de jr Function17e41e @@ -4419,7 +4419,7 @@ endr ld e, a ld a, [hli] ld d, a - ld hl, Unkn1Pals + ld hl, wMapPals add hl, de ld e, l ld d, h diff --git a/misc/unused_title.asm b/misc/unused_title.asm index 7a9c2556f..143994d9a 100644 --- a/misc/unused_title.asm +++ b/misc/unused_title.asm @@ -67,7 +67,7 @@ endr ld [rSVBK], a ld hl, UnusedTitleBG_Palettes - ld de, Unkn1Pals + ld de, wMapPals ld bc, $40 call CopyBytes diff --git a/predef/cgb.asm b/predef/cgb.asm index c15265db5..e6b0d291e 100644 --- a/predef/cgb.asm +++ b/predef/cgb.asm @@ -69,11 +69,11 @@ Predef_LoadSGBLayoutCGB: ; 8d59 Function8db8: ; 8db8 ld hl, PalPacket_9c66 + 1 - ld de, Unkn1Pals + ld de, wMapPals ld c, $4 call CopyPalettes ld hl, PalPacket_9c66 + 1 - ld de, Unkn1Pals + $20 + ld de, wMapPals + $20 ld c, $4 call CopyPalettes ld hl, PalPacket_9c66 + 1 @@ -83,7 +83,7 @@ Function8db8: ; 8db8 jr Function8e23 Function8ddb: ; 8ddb - ld de, Unkn1Pals + ld de, wMapPals call Function9729 push hl call Function9643 @@ -168,7 +168,7 @@ Function8e8b: ; 8e8b ld hl, Palette_b309 .asm_8e93 - ld de, Unkn1Pals + 8 * 7 + ld de, wMapPals + 8 * 7 ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -182,7 +182,7 @@ Function8e9f: ; 8e9f ld hl, Palette_b309 .asm_8ead - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0008 ld a, $5 call FarCopyWRAM @@ -200,7 +200,7 @@ Function8eb9: ; 8eb9 ld hl, Palettes_b729 .asm_8ec8 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0030 ld a, $5 call FarCopyWRAM @@ -211,7 +211,7 @@ Function8eb9: ; 8eb9 ; 8edb Function8edb: ; 8edb - ld de, Unkn1Pals + ld de, wMapPals ld a, [wcda1] ld l, a ld h, $0 @@ -228,7 +228,7 @@ endr ld hl, Palettes_a8ca call Function9643 ld hl, Palette8f52 - ld de, Unkn1Pals + 8 * 3 + ld de, wMapPals + 8 * 3 ld bc, $0018 ld a, $5 call FarCopyWRAM @@ -286,7 +286,7 @@ Unknown_8f6a: ; 8f6a ; 8f70 Function8f70: ; 8f70 - ld de, Unkn1Pals + ld de, wMapPals ld a, $1d call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -334,7 +334,7 @@ Palette8fc2: ; 8fc2 ; 8fca Function8fca: ; 8fca - ld de, Unkn1Pals + ld de, wMapPals ld a, $1d call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -395,7 +395,7 @@ Palette9036: ; 9036 ; 903e Function903e: ; 903e - ld de, Unkn1Pals + ld de, wMapPals ld a, $1d call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -417,7 +417,7 @@ Function903e: ; 903e Function906e: ; 906e ld hl, Palettes_b7a9 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0080 ld a, $5 call FarCopyWRAM @@ -508,7 +508,7 @@ Jumptable_912d: ; 912d Function9133: ; 9133 ld hl, Palette_914e - ld de, Unkn1Pals + ld de, wMapPals call LoadHLPaletteIntoDE ld hl, Palette_9156 ld de, Unkn2Pals @@ -538,7 +538,7 @@ Palette_9156: ; 9156 ; 9166 Function9166: ; 9166 - ld de, Unkn1Pals + ld de, wMapPals ld a, $38 call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -563,7 +563,7 @@ Function9180: ; 9180 Function9195: ; 9195 ld hl, Palettes_b789 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0028 ld a, $5 call FarCopyWRAM @@ -575,7 +575,7 @@ Function9195: ; 9195 Function91ad: ; 91ad ld hl, Palettes_b641 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0080 ld a, $5 call FarCopyWRAM @@ -604,7 +604,7 @@ Function91d1: ; 91d1 ; 91e4 Function91e4: ; 91e4 - ld de, Unkn1Pals + ld de, wMapPals ld a, c and a jr z, .asm_91f5 @@ -640,7 +640,7 @@ Function91e4: ; 91e4 Function9228: ; 9228 ld hl, Palettes_b6f1 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0028 ld a, $5 call FarCopyWRAM @@ -689,7 +689,7 @@ Function925e: ; 925e ; 9289 Function9289: ; 9289 - ld de, Unkn1Pals + ld de, wMapPals xor a call Function976b call Function9643 @@ -794,7 +794,7 @@ Function9289: ; 9289 ; 9373 Function9373: ; 9373 - ld de, Unkn1Pals + ld de, wMapPals ld a, $10 call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -831,7 +831,7 @@ Function93a6: ; 93a6 ; 93ba Function93ba: ; 93ba - ld de, Unkn1Pals + ld de, wMapPals ld a, $1d call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -859,7 +859,7 @@ Function93d3: ; 93d3 ld hl, Palettes_9439 .asm_93e9 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0040 ld a, $5 call FarCopyWRAM @@ -1000,7 +1000,7 @@ Function94d0: ; 94d0 ; 94fa Function94fa: ; 94fa - ld de, Unkn1Pals + ld de, wMapPals ld a, $4e call GetAthPalletFromPalettes9df6 call LoadHLPaletteIntoDE @@ -1024,7 +1024,7 @@ Palette_9521: ; 9521 ; 9529 Function9529: ; 9529 - ld de, Unkn1Pals + ld de, wMapPals ld a, [CurPartySpecies] ld bc, TempMonDVs call Function974b @@ -1036,7 +1036,7 @@ Function9529: ; 9529 ; 9542 Function9542: ; 9542 - ld de, Unkn1Pals + ld de, wMapPals ld a, [CurPartySpecies] call Function9775 call Function9643 @@ -1062,7 +1062,7 @@ Function9555: ; 9555 ; 9578 Function9578: ; 9578 - ld de, Unkn1Pals + ld de, wMapPals ld a, [CurPartySpecies] ld bc, TempMonDVs call Function9764 @@ -1075,7 +1075,7 @@ Function9578: ; 9578 Function9591: ; 9591 ld hl, Palette95e0 - ld de, Unkn1Pals + ld de, wMapPals ld bc, $0010 ld a, $5 call FarCopyWRAM diff --git a/tilesets/animations.asm b/tilesets/animations.asm index 675e06bb7..d0e44a063 100644 --- a/tilesets/animations.asm +++ b/tilesets/animations.asm @@ -958,7 +958,7 @@ TileAnimationPalette: ; fc6d7 jr z, .color2 .color1 - ld hl, Unkn1Pals + $1a ; pal 3 color 1 + ld hl, wMapPals + $1a ; pal 3 color 1 ld a, [hli] ld [rBGPD], a ld a, [hli] @@ -966,7 +966,7 @@ TileAnimationPalette: ; fc6d7 jr .end .color0 - ld hl, Unkn1Pals + $18 ; pal 3 color 0 + ld hl, wMapPals + $18 ; pal 3 color 0 ld a, [hli] ld [rBGPD], a ld a, [hli] @@ -974,7 +974,7 @@ TileAnimationPalette: ; fc6d7 jr .end .color2 - ld hl, Unkn1Pals + $1c ; pal 3 color 2 + ld hl, wMapPals + $1c ; pal 3 color 2 ld a, [hli] ld [rBGPD], a ld a, [hli] @@ -1011,11 +1011,11 @@ FlickeringCaveEntrancePalette: ; fc71e ld a, [hVBlankCounter] and %00000010 jr nz, .bit1set - ld hl, Unkn1Pals + $20 ; pal 4 color 0 + ld hl, wMapPals + $20 ; pal 4 color 0 jr .okay .bit1set - ld hl, Unkn1Pals + $22 ; pal 4 color 2 + ld hl, wMapPals + $22 ; pal 4 color 2 .okay ld a, [hli] diff --git a/wram.asm b/wram.asm index 89519a0a7..d4b4fe8c2 100644 --- a/wram.asm +++ b/wram.asm @@ -1677,12 +1677,21 @@ CurPartyLevel:: ; d143 ds 1 wd144:: ds 2 + +; used when following a map warp +wNextWarp:: wd146:: ds 1 +wNextMapGroup:: wd147:: ds 1 +wNextMapNumber:: wd148:: ds 1 +wPrevWarp:: wd149:: ds 1 +wPrevMapGroup:: wd14a:: ds 1 +wPrevMapNumber:: wd14b:: ds 1 + wd14c:: ds 1 ; used in FollowNotExact wd14d:: ds 1 ; used in FollowNotExact wd14e:: ds 1 @@ -1710,10 +1719,11 @@ wd192:: ds 1 wd193:: ds 1 wd194:: dw wd196:: ds 1 -wd197:: ds 2 -wd199:: ds 1 +wd197:: ds 1 +wSecondMapHeaderBank:: ds 1 +wTileset:: ds 1 wPermission:: ds 1 - ds 2 +wSecondMapHeaderAddr:: dw ; width/height are in blocks (2x2 walkable tiles, 4x4 graphics tiles) MapHeader:: ; d19d @@ -2194,7 +2204,7 @@ ENDM object_struct Object12 wd6de:: - ds 64 + ds $40 map_object: MACRO \1Object:: @@ -2481,9 +2491,12 @@ wCurrentMapXYTriggerCount:: ds 1 wCurrentMapXYTriggerHeaderPointer:: ds 1 wdc00:: ds 1 wCurrentMapSignpostCount:: ds 1 +wCurrentMapSignpostHeaderPointer:: wdc02:: ds 1 wdc03:: ds 1 +wCurrentMapPersonEventCount:: wdc04:: ds 1 +wCurrentMapPersonEventHeaderPointer:: wdc05:: ds 1 wdc06:: ds 1 wCurrMapTriggerCount:: ds 1 @@ -2589,10 +2602,10 @@ VisitedSpawns:: ; dca5 wdca9:: ds 1 wdcaa:: ds 1 wdcab:: ds 1 -wdcac:: ds 1 - ; used on maps like second floor pokécenter, which are reused, so we know which ; map to return to +BackupWarpNumber:: ; dcac + ds 1 BackupMapGroup:: ; dcad ds 1 BackupMapNumber:: ; dcae @@ -2803,7 +2816,7 @@ w3_dd68:: SECTION "GBC Video", WRAMX, BANK [5] ; 8 4-color palettes -Unkn1Pals:: ds 8 * 8 ; d000 +wMapPals:: ds 8 * 8 ; d000 Unkn2Pals:: ds 8 * 8 ; d040 BGPals:: ds 8 * 8 ; d080 OBPals:: ds 8 * 8 ; d0c0 -- cgit v1.2.3