Groundwork for Tradeback Move Tutor

Currently the move tutor is a little bit broken - the IDs are 1 above how they should be. Shell speculates that it's searching at the table starting from Kangaskhan due to the way the decrements shake up but it may just be making things more complicated than they are.

Big cheese code is `PrepareTradebackMoveList`, it's where things are mucking up.

Also, the code can be significantly optimised, as it's currently being adapted from the function above, `PrepareRelearnableMoveList`; It doesn't need to check levels, for example.

Note that the relearner functions properly, so use it as a reference. I may have removed something important.

Technically, we could have NO_MON as an entry which may make things shake out properly. But I'd rather have a proper fix.
This commit is contained in:
Llinos Evans 2023-04-23 06:11:05 +01:00
parent 5e21c159f9
commit 2f01628cd9
24 changed files with 1657 additions and 97 deletions

View file

@ -0,0 +1,2 @@
map_header CitrineTradebackHouse, CITRINE_TRADEBACK_HOUSE, HOUSE, 0
end_map_header

View file

@ -1,2 +0,0 @@
map_header VermilionOldRodHouse, VERMILION_OLD_ROD_HOUSE, HOUSE, 0
end_map_header

View file

@ -165,7 +165,7 @@ MapHeaderBanks::
db BANK(SeafoamIslandsB2F_h)
db BANK(SeafoamIslandsB3F_h)
db BANK(SeafoamIslandsB4F_h)
db BANK(VermilionOldRodHouse_h)
db BANK(CitrineTradebackHouse_h)
db BANK(FuchsiaGoodRodHouse_h)
db BANK(PokemonMansion1F_h)
db BANK(CinnabarGym_h)

View file

@ -165,7 +165,7 @@ MapHeaderPointers::
dw SeafoamIslandsB2F_h
dw SeafoamIslandsB3F_h
dw SeafoamIslandsB4F_h
dw VermilionOldRodHouse_h
dw CitrineTradebackHouse_h
dw FuchsiaGoodRodHouse_h
dw PokemonMansion1F_h
dw CinnabarGym_h

View file

@ -3,6 +3,7 @@ CitrineCity_Object:
def_warp_events
warp_event 9, 27, CITRINE_ROCKET_HOUSE, 1
warp_event 9, 17, CITRINE_TRADEBACK_HOUSE, 1
def_bg_events

View file

@ -0,0 +1,15 @@
CitrineTradebackHouse_Object:
db $a ; border block
def_warp_events
warp_event 2, 7, LAST_MAP, 2
warp_event 3, 7, LAST_MAP, 2
def_bg_events
def_object_events
object_event 2, 4, SPRITE_GAMBLER, STAY, RIGHT, 1 ; person
object_event 5, 4, SPRITE_COOLTRAINER_M, STAY, LEFT, 2 ; person
object_event 4, 3, SPRITE_PAPER, STAY, DOWN, 3 ; person
def_warps_to CITRINE_TRADEBACK_HOUSE

View file

@ -2,11 +2,11 @@ Route25_Object:
db $2c ; border block
def_warp_events
warp_event 49, 11, BILLS_HOUSE, 1
warp_event 49, 5, BILLS_HOUSE, 1
warp_event 60, 1, UNDERWATER_TUNNEL, 1
def_bg_events
bg_event 53, 11, 11 ; Route25Text11
bg_event 51, 7, 11 ; Route25Text11
def_object_events
object_event 14, 2, SPRITE_YOUNGSTER, STAY, DOWN, 1, OPP_YOUNGSTER, 5

View file

@ -1,13 +0,0 @@
VermilionOldRodHouse_Object:
db $a ; border block
def_warp_events
warp_event 2, 7, LAST_MAP, 9
warp_event 3, 7, LAST_MAP, 9
def_bg_events
def_object_events
object_event 2, 4, SPRITE_FISHING_GURU, STAY, RIGHT, 1 ; person
def_warps_to VERMILION_OLD_ROD_HOUSE

View file

@ -164,7 +164,7 @@ MapSongBanks::
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B2F
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B3F
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B4F
db MUSIC_CITIES2, 0 ; VERMILION_OLD_ROD_HOUSE
db MUSIC_CITIES2, 0 ; CITRINE_TRADEBACK_HOUSE, was old rod house
db MUSIC_CITIES2, 0 ; FUCHSIA_GOOD_ROD_HOUSE
db MUSIC_CINNABAR_MANSION, 0 ; POKEMON_MANSION_1F
db MUSIC_GYM, 0 ; CINNABAR_GYM

View file

@ -95,7 +95,6 @@ InternalMapEntries:
internal_map SAFARI_ZONE_GATE, 8, 12, SafariZoneName
internal_map FUCHSIA_MEETING_ROOM, 8, 13, FuchsiaCityName
internal_map SEAFOAM_ISLANDS_B4F, 5, 15, SeafoamIslandsName
internal_map VERMILION_OLD_ROD_HOUSE, 10, 9, VermilionCityName
internal_map FUCHSIA_GOOD_ROD_HOUSE, 8, 13, FuchsiaCityName
internal_map POKEMON_MANSION_1F, 2, 15, PokemonMansionName
internal_map CINNABAR_MART, 2, 15, CinnabarIslandName

File diff suppressed because it is too large Load diff