mirror of
https://github.com/thornAvery/kep-hack.git
synced 2025-11-05 05:00:59 +13:00
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:
parent
5e21c159f9
commit
2f01628cd9
|
|
@ -183,7 +183,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
|
||||||
map_const SEAFOAM_ISLANDS_B2F, 15, 9 ; $A1
|
map_const SEAFOAM_ISLANDS_B2F, 15, 9 ; $A1
|
||||||
map_const SEAFOAM_ISLANDS_B3F, 15, 9 ; $A2
|
map_const SEAFOAM_ISLANDS_B3F, 15, 9 ; $A2
|
||||||
map_const SEAFOAM_ISLANDS_B4F, 15, 9 ; $A3
|
map_const SEAFOAM_ISLANDS_B4F, 15, 9 ; $A3
|
||||||
map_const VERMILION_OLD_ROD_HOUSE, 4, 4 ; $A4 - Now unused
|
map_const CITRINE_TRADEBACK_HOUSE, 4, 4 ; $A4 - Was Vermillion Old Rod house
|
||||||
map_const FUCHSIA_GOOD_ROD_HOUSE, 4, 4 ; $A5
|
map_const FUCHSIA_GOOD_ROD_HOUSE, 4, 4 ; $A5
|
||||||
map_const POKEMON_MANSION_1F, 15, 14 ; $A6
|
map_const POKEMON_MANSION_1F, 15, 14 ; $A6
|
||||||
map_const CINNABAR_GYM, 10, 9 ; $A7
|
map_const CINNABAR_GYM, 10, 9 ; $A7
|
||||||
|
|
|
||||||
2
data/maps/headers/CitrineTradebackHouse.asm
Normal file
2
data/maps/headers/CitrineTradebackHouse.asm
Normal file
|
|
@ -0,0 +1,2 @@
|
||||||
|
map_header CitrineTradebackHouse, CITRINE_TRADEBACK_HOUSE, HOUSE, 0
|
||||||
|
end_map_header
|
||||||
|
|
@ -1,2 +0,0 @@
|
||||||
map_header VermilionOldRodHouse, VERMILION_OLD_ROD_HOUSE, HOUSE, 0
|
|
||||||
end_map_header
|
|
||||||
|
|
@ -165,7 +165,7 @@ MapHeaderBanks::
|
||||||
db BANK(SeafoamIslandsB2F_h)
|
db BANK(SeafoamIslandsB2F_h)
|
||||||
db BANK(SeafoamIslandsB3F_h)
|
db BANK(SeafoamIslandsB3F_h)
|
||||||
db BANK(SeafoamIslandsB4F_h)
|
db BANK(SeafoamIslandsB4F_h)
|
||||||
db BANK(VermilionOldRodHouse_h)
|
db BANK(CitrineTradebackHouse_h)
|
||||||
db BANK(FuchsiaGoodRodHouse_h)
|
db BANK(FuchsiaGoodRodHouse_h)
|
||||||
db BANK(PokemonMansion1F_h)
|
db BANK(PokemonMansion1F_h)
|
||||||
db BANK(CinnabarGym_h)
|
db BANK(CinnabarGym_h)
|
||||||
|
|
|
||||||
|
|
@ -165,7 +165,7 @@ MapHeaderPointers::
|
||||||
dw SeafoamIslandsB2F_h
|
dw SeafoamIslandsB2F_h
|
||||||
dw SeafoamIslandsB3F_h
|
dw SeafoamIslandsB3F_h
|
||||||
dw SeafoamIslandsB4F_h
|
dw SeafoamIslandsB4F_h
|
||||||
dw VermilionOldRodHouse_h
|
dw CitrineTradebackHouse_h
|
||||||
dw FuchsiaGoodRodHouse_h
|
dw FuchsiaGoodRodHouse_h
|
||||||
dw PokemonMansion1F_h
|
dw PokemonMansion1F_h
|
||||||
dw CinnabarGym_h
|
dw CinnabarGym_h
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ CitrineCity_Object:
|
||||||
|
|
||||||
def_warp_events
|
def_warp_events
|
||||||
warp_event 9, 27, CITRINE_ROCKET_HOUSE, 1
|
warp_event 9, 27, CITRINE_ROCKET_HOUSE, 1
|
||||||
|
warp_event 9, 17, CITRINE_TRADEBACK_HOUSE, 1
|
||||||
|
|
||||||
def_bg_events
|
def_bg_events
|
||||||
|
|
||||||
|
|
|
||||||
15
data/maps/objects/CitrineTradebackHouse.asm
Normal file
15
data/maps/objects/CitrineTradebackHouse.asm
Normal 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
|
||||||
|
|
@ -2,11 +2,11 @@ Route25_Object:
|
||||||
db $2c ; border block
|
db $2c ; border block
|
||||||
|
|
||||||
def_warp_events
|
def_warp_events
|
||||||
warp_event 49, 11, BILLS_HOUSE, 1
|
warp_event 49, 5, BILLS_HOUSE, 1
|
||||||
warp_event 60, 1, UNDERWATER_TUNNEL, 1
|
warp_event 60, 1, UNDERWATER_TUNNEL, 1
|
||||||
|
|
||||||
def_bg_events
|
def_bg_events
|
||||||
bg_event 53, 11, 11 ; Route25Text11
|
bg_event 51, 7, 11 ; Route25Text11
|
||||||
|
|
||||||
def_object_events
|
def_object_events
|
||||||
object_event 14, 2, SPRITE_YOUNGSTER, STAY, DOWN, 1, OPP_YOUNGSTER, 5
|
object_event 14, 2, SPRITE_YOUNGSTER, STAY, DOWN, 1, OPP_YOUNGSTER, 5
|
||||||
|
|
|
||||||
|
|
@ -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
|
|
||||||
|
|
@ -164,7 +164,7 @@ MapSongBanks::
|
||||||
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B2F
|
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B2F
|
||||||
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B3F
|
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B3F
|
||||||
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B4F
|
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_CITIES2, 0 ; FUCHSIA_GOOD_ROD_HOUSE
|
||||||
db MUSIC_CINNABAR_MANSION, 0 ; POKEMON_MANSION_1F
|
db MUSIC_CINNABAR_MANSION, 0 ; POKEMON_MANSION_1F
|
||||||
db MUSIC_GYM, 0 ; CINNABAR_GYM
|
db MUSIC_GYM, 0 ; CINNABAR_GYM
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,6 @@ InternalMapEntries:
|
||||||
internal_map SAFARI_ZONE_GATE, 8, 12, SafariZoneName
|
internal_map SAFARI_ZONE_GATE, 8, 12, SafariZoneName
|
||||||
internal_map FUCHSIA_MEETING_ROOM, 8, 13, FuchsiaCityName
|
internal_map FUCHSIA_MEETING_ROOM, 8, 13, FuchsiaCityName
|
||||||
internal_map SEAFOAM_ISLANDS_B4F, 5, 15, SeafoamIslandsName
|
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 FUCHSIA_GOOD_ROD_HOUSE, 8, 13, FuchsiaCityName
|
||||||
internal_map POKEMON_MANSION_1F, 2, 15, PokemonMansionName
|
internal_map POKEMON_MANSION_1F, 2, 15, PokemonMansionName
|
||||||
internal_map CINNABAR_MART, 2, 15, CinnabarIslandName
|
internal_map CINNABAR_MART, 2, 15, CinnabarIslandName
|
||||||
|
|
|
||||||
1305
data/pokemon/tradeback_moves.asm
Normal file
1305
data/pokemon/tradeback_moves.asm
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -22,8 +22,8 @@ SetIshiharaTeam:
|
||||||
|
|
||||||
IshiharaTeam:
|
IshiharaTeam:
|
||||||
db EXEGGUTOR_A, 90
|
db EXEGGUTOR_A, 90
|
||||||
db PINSIR, 90
|
db RHYDON, 90
|
||||||
db CARAPTHOR, 90
|
db KANGASKHAN, 90
|
||||||
db KASANAGI, 50
|
db KASANAGI, 50
|
||||||
IF DEF(_DEBUG)
|
IF DEF(_DEBUG)
|
||||||
db KOKANA, 50
|
db KOKANA, 50
|
||||||
|
|
|
||||||
|
|
@ -702,4 +702,109 @@ PrepareRelearnableMoveList:: ; I don't know how the fuck you're a single colon i
|
||||||
ld [hl], c
|
ld [hl], c
|
||||||
ret
|
ret
|
||||||
|
|
||||||
|
; Modified Mateo/jojobear13 code for a Tradeback Move Tutor
|
||||||
|
PrepareTradebackMoveList:: ; I still don't know how the fuck you're a single colon in shin pokered but it sure as shit doesn't work here - PvK
|
||||||
|
; Loads Tradeback move list to wRelearnableMoves - we can reuse this variable.
|
||||||
|
; Input: party mon index = [wWhichPokemon]
|
||||||
|
; Get mon id.
|
||||||
|
ld a, [wWhichPokemon]
|
||||||
|
ld c, a
|
||||||
|
ld b, 0
|
||||||
|
ld hl, wPartySpecies
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hl] ; a = mon id
|
||||||
|
ld [wd0b5], a ;joenote - put mon id into wram for potential later usage of GetMonHeader
|
||||||
|
; Get pointer to evos moves data.
|
||||||
|
dec a
|
||||||
|
ld c, a
|
||||||
|
ld b, 0
|
||||||
|
ld hl, TradebackMovesPointerTable
|
||||||
|
add hl, bc
|
||||||
|
add hl, bc
|
||||||
|
ld a, [hli]
|
||||||
|
ld h, [hl]
|
||||||
|
ld l, a ; hl = pointer to evos moves data for our mon
|
||||||
|
push hl
|
||||||
|
; Get pointer to mon's currently-known moves.
|
||||||
|
ld a, [wWhichPokemon]
|
||||||
|
ld hl, wPartyMon1Level
|
||||||
|
ld bc, wPartyMon2 - wPartyMon1
|
||||||
|
call AddNTimes
|
||||||
|
ld a, [hl]
|
||||||
|
ld b, a
|
||||||
|
push bc
|
||||||
|
ld a, [wWhichPokemon]
|
||||||
|
ld hl, wPartyMon1Moves
|
||||||
|
ld bc, wPartyMon2 - wPartyMon1
|
||||||
|
call AddNTimes
|
||||||
|
pop bc
|
||||||
|
ld d, h
|
||||||
|
ld e, l
|
||||||
|
pop hl
|
||||||
|
; Skip over evolution data.
|
||||||
|
.skipEvoEntriesLoop
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr nz, .skipEvoEntriesLoop
|
||||||
|
; Write list of relearnable moves, while keeping count along the way.
|
||||||
|
; de = pointer to mon's currently-known moves
|
||||||
|
; hl = pointer to moves data for our mon
|
||||||
|
; b = mon's level
|
||||||
|
ld c, 0 ; c = count of relearnable moves
|
||||||
|
.loop
|
||||||
|
ld a, [hli]
|
||||||
|
and a
|
||||||
|
jr z, .done
|
||||||
|
cp b
|
||||||
|
jr c, .addMove
|
||||||
|
jr nz, .done
|
||||||
|
.addMove
|
||||||
|
push bc
|
||||||
|
ld a, [hli] ; move id
|
||||||
|
ld b, a
|
||||||
|
; Check if move is already known by our mon.
|
||||||
|
push de
|
||||||
|
ld a, [de]
|
||||||
|
cp b
|
||||||
|
jr z, .knowsMove
|
||||||
|
inc de
|
||||||
|
ld a, [de]
|
||||||
|
cp b
|
||||||
|
jr z, .knowsMove
|
||||||
|
inc de
|
||||||
|
ld a, [de]
|
||||||
|
cp b
|
||||||
|
jr z, .knowsMove
|
||||||
|
inc de
|
||||||
|
ld a, [de]
|
||||||
|
cp b
|
||||||
|
jr z, .knowsMove
|
||||||
|
.tradebackMove
|
||||||
|
pop de
|
||||||
|
push hl
|
||||||
|
; Add move to the list, and update the running count.
|
||||||
|
ld a, b
|
||||||
|
ld b, 0
|
||||||
|
ld hl, wMoveBuffer + 1
|
||||||
|
add hl, bc
|
||||||
|
ld [hl], a
|
||||||
|
pop hl
|
||||||
|
pop bc
|
||||||
|
inc c
|
||||||
|
jr .loop
|
||||||
|
.knowsMove
|
||||||
|
pop de
|
||||||
|
pop bc
|
||||||
|
jr .loop
|
||||||
|
.done
|
||||||
|
ld b, 0
|
||||||
|
ld hl, wMoveBuffer + 1
|
||||||
|
add hl, bc
|
||||||
|
ld a, $ff
|
||||||
|
ld [hl], a
|
||||||
|
ld hl, wMoveBuffer
|
||||||
|
ld [hl], c
|
||||||
|
ret
|
||||||
|
|
||||||
INCLUDE "data/pokemon/evos_moves.asm"
|
INCLUDE "data/pokemon/evos_moves.asm"
|
||||||
|
INCLUDE "data/pokemon/tradeback_moves.asm"
|
||||||
11
maps.asm
11
maps.asm
|
|
@ -694,7 +694,6 @@ INCLUDE "data/maps/headers/Route21.asm"
|
||||||
INCLUDE "data/maps/objects/Route21.asm"
|
INCLUDE "data/maps/objects/Route21.asm"
|
||||||
Route21_Blocks: INCBIN "maps/Route21.blk"
|
Route21_Blocks: INCBIN "maps/Route21.blk"
|
||||||
|
|
||||||
VermilionOldRodHouse_Blocks:
|
|
||||||
Route12SuperRodHouse_Blocks:
|
Route12SuperRodHouse_Blocks:
|
||||||
Daycare_Blocks: INCBIN "maps/Daycare.blk"
|
Daycare_Blocks: INCBIN "maps/Daycare.blk"
|
||||||
|
|
||||||
|
|
@ -714,10 +713,6 @@ INCLUDE "scripts/Route17.asm"
|
||||||
INCLUDE "scripts/Route19.asm"
|
INCLUDE "scripts/Route19.asm"
|
||||||
INCLUDE "scripts/Route21.asm"
|
INCLUDE "scripts/Route21.asm"
|
||||||
|
|
||||||
INCLUDE "data/maps/headers/VermilionOldRodHouse.asm"
|
|
||||||
INCLUDE "scripts/VermilionOldRodHouse.asm"
|
|
||||||
INCLUDE "data/maps/objects/VermilionOldRodHouse.asm"
|
|
||||||
|
|
||||||
INCLUDE "data/maps/headers/CeladonMart2F.asm"
|
INCLUDE "data/maps/headers/CeladonMart2F.asm"
|
||||||
INCLUDE "scripts/CeladonMart2F.asm"
|
INCLUDE "scripts/CeladonMart2F.asm"
|
||||||
INCLUDE "data/maps/objects/CeladonMart2F.asm"
|
INCLUDE "data/maps/objects/CeladonMart2F.asm"
|
||||||
|
|
@ -1329,3 +1324,9 @@ INCLUDE "data/maps/headers/CitrineRocketHouse.asm"
|
||||||
INCLUDE "scripts/CitrineRocketHouse.asm"
|
INCLUDE "scripts/CitrineRocketHouse.asm"
|
||||||
INCLUDE "data/maps/objects/CitrineRocketHouse.asm"
|
INCLUDE "data/maps/objects/CitrineRocketHouse.asm"
|
||||||
CitrineRocketHouse_Blocks: INCBIN "maps/CitrineRocketHouse.blk"
|
CitrineRocketHouse_Blocks: INCBIN "maps/CitrineRocketHouse.blk"
|
||||||
|
|
||||||
|
INCLUDE "data/maps/headers/CitrineTradebackHouse.asm"
|
||||||
|
INCLUDE "scripts/CitrineTradebackHouse.asm"
|
||||||
|
INCLUDE "data/maps/objects/CitrineTradebackHouse.asm"
|
||||||
|
INCLUDE "scripts/tradeback_move_tutor.asm"
|
||||||
|
CitrineTradebackHouse_Blocks: INCBIN "maps/CitrineTradebackHouse.blk"
|
||||||
|
|
@ -10,9 +10,9 @@ eC<Fd
|
||||||
'tt'
|
'tt'
|
||||||
oooooteC<Fd
|
oooooteC<Fd
|
||||||
''nmeC<Fd
|
''nmeC<Fd
|
||||||
'89'nlll
|
'tt'nlll
|
||||||
eC<Fd
|
eC<Fd
|
||||||
'wA=r'nooo
|
'=r'nooo
|
||||||
eC<Fd&#####"nmeC<Fd
|
eC<Fd&#####"nmeC<Fd
|
||||||
''tlllllteC<Fd
|
''tlllllteC<Fd
|
||||||
'6't
|
'6't
|
||||||
|
|
|
||||||
|
|
@ -1,23 +1,27 @@
|
||||||
,,,,+WWWWWWWWWWWWWWWWWW%QQ$WWWWWWWW%WWWW%n
|
,,,,+WWWWWWWWWWWWWWWWWW%hiWWWWWWWW%WWWW%n
|
||||||
n
|
n
|
||||||
|
|
||||||
n
|
n
|
||||||
|
|
||||||
`ttt
|
`ttt
|
||||||
6CCCCdeCd11eCCCC
|
6CCCCdhied11eCCCC
|
||||||
|
|
||||||
|
|
||||||
LLL
|
LLL
|
||||||
nlnttnt
|
nlnttnt
|
||||||
nCCCCduveC-.CCCCLlL
|
nCCCCd|}~e-.CCCCLlL
|
||||||
mln
|
mln
|
||||||
ttottt
|
ttottt
|
||||||
TTCCdhieCCCCCCCCC11111ml
|
CCdUUUUUUUeCCCCCC11111ml
|
||||||
mL
|
mL
|
||||||
|
|
||||||
ttmtt
|
ttmtt
|
||||||
nxTCC-hi.CCCCCCCCCQQQQQQQQQQQQQQQQQ
|
|
||||||
nCTTd
|
TTT
|
||||||
|~eCCd1eCCC??????????????????;CxTT
|
T
|
||||||
tt
|
eCCCCCCQQQQQQQQQQQQQQQQQ
|
||||||
eCC-.CCC,,,,,,,,,,,,,,,,,,)CCxx.CCCCCCCC,,,,,,,,,,,,,,,,,,,??????????????????
|
nxxxteCTCdted1eCCC??????????????????;CCd
|
||||||
|
t
|
||||||
|
T
|
||||||
|
t
|
||||||
|
e-.CCC,,,,,,,,,,,,,,,,,,)CC-.CCCCCC,,,,,,,,,,,,,,,,,,,??????????????????
|
||||||
15
scripts/CitrineTradebackHouse.asm
Normal file
15
scripts/CitrineTradebackHouse.asm
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
CitrineTradebackHouse_Script:
|
||||||
|
jp EnableAutoTextBoxDrawing
|
||||||
|
|
||||||
|
CitrineTradebackHouse_TextPointers:
|
||||||
|
dw TradebackTutorText1
|
||||||
|
dw CitrineTradebackHouseGuy
|
||||||
|
dw CitrineTradebackHouseBooklet
|
||||||
|
|
||||||
|
CitrineTradebackHouseBooklet:
|
||||||
|
text_far _CitrineTradebackHouseBooklet
|
||||||
|
text_end
|
||||||
|
|
||||||
|
CitrineTradebackHouseGuy:
|
||||||
|
text_far _CitrineTradebackHouseGuy
|
||||||
|
text_end
|
||||||
|
|
@ -1,57 +0,0 @@
|
||||||
VermilionOldRodHouse_Script:
|
|
||||||
jp EnableAutoTextBoxDrawing
|
|
||||||
|
|
||||||
VermilionOldRodHouse_TextPointers:
|
|
||||||
dw VermilionHouse2Text1
|
|
||||||
|
|
||||||
VermilionHouse2Text1:
|
|
||||||
text_asm
|
|
||||||
ld a, [wd728]
|
|
||||||
bit 3, a ; got old rod?
|
|
||||||
jr nz, .got_item
|
|
||||||
ld hl, VermilionHouse2Text_560b1
|
|
||||||
call PrintText
|
|
||||||
call YesNoChoice
|
|
||||||
ld a, [wCurrentMenuItem]
|
|
||||||
and a
|
|
||||||
jr nz, .refused
|
|
||||||
lb bc, CANDY_JAR, 1 ; used to be the old rod, but since I've replaced it, for now he'll give you this. I believe this house is currently unused, so no issues..? ~ PvK
|
|
||||||
call GiveItem
|
|
||||||
jr nc, .bag_full
|
|
||||||
ld hl, wd728
|
|
||||||
set 3, [hl] ; got old rod
|
|
||||||
ld hl, VermilionHouse2Text_560b6
|
|
||||||
jr .done
|
|
||||||
.bag_full
|
|
||||||
ld hl, VermilionHouse2Text_560ca
|
|
||||||
jr .done
|
|
||||||
.refused
|
|
||||||
ld hl, VermilionHouse2Text_560c0
|
|
||||||
jr .done
|
|
||||||
.got_item
|
|
||||||
ld hl, VermilionHouse2Text_560c5
|
|
||||||
.done
|
|
||||||
call PrintText
|
|
||||||
jp TextScriptEnd
|
|
||||||
|
|
||||||
VermilionHouse2Text_560b1:
|
|
||||||
text_far _VermilionHouse2Text_560b1
|
|
||||||
text_end
|
|
||||||
|
|
||||||
VermilionHouse2Text_560b6:
|
|
||||||
text_far _VermilionHouse2Text_560b6
|
|
||||||
sound_get_item_1
|
|
||||||
text_far _VermilionHouse2Text_560bb
|
|
||||||
text_end
|
|
||||||
|
|
||||||
VermilionHouse2Text_560c0:
|
|
||||||
text_far _VermilionHouse2Text_560c0
|
|
||||||
text_end
|
|
||||||
|
|
||||||
VermilionHouse2Text_560c5:
|
|
||||||
text_far _VermilionHouse2Text_560c5
|
|
||||||
text_end
|
|
||||||
|
|
||||||
VermilionHouse2Text_560ca:
|
|
||||||
text_far _VermilionHouse2Text_560ca
|
|
||||||
text_end
|
|
||||||
131
scripts/tradeback_move_tutor.asm
Normal file
131
scripts/tradeback_move_tutor.asm
Normal file
|
|
@ -0,0 +1,131 @@
|
||||||
|
TradebackTutorText1:
|
||||||
|
text_asm
|
||||||
|
; Display the list of moves to the player.
|
||||||
|
ld hl, TradebackTutorGreetingText
|
||||||
|
call PrintText
|
||||||
|
call YesNoChoice
|
||||||
|
ld a, [wCurrentMenuItem]
|
||||||
|
and a
|
||||||
|
jp nz, .exit
|
||||||
|
xor a
|
||||||
|
;charge 1000 money
|
||||||
|
ld [hMoney], a
|
||||||
|
ld [hMoney + 2], a
|
||||||
|
ld a, $0A
|
||||||
|
ld [hMoney + 1], a
|
||||||
|
call HasEnoughMoney
|
||||||
|
jr nc, .enoughMoney
|
||||||
|
; not enough money
|
||||||
|
ld hl, TradebackTutorNotEnoughMoneyText
|
||||||
|
call PrintText
|
||||||
|
jp TextScriptEnd
|
||||||
|
.enoughMoney
|
||||||
|
ld hl, TradebackTutorSaidYesText
|
||||||
|
call PrintText
|
||||||
|
; Select pokemon from party.
|
||||||
|
call SaveScreenTilesToBuffer2
|
||||||
|
xor a
|
||||||
|
ld [wListScrollOffset], a
|
||||||
|
ld [wPartyMenuTypeOrMessageID], a
|
||||||
|
ld [wUpdateSpritesEnabled], a
|
||||||
|
ld [wMenuItemToSwap], a
|
||||||
|
call DisplayPartyMenu
|
||||||
|
push af
|
||||||
|
call GBPalWhiteOutWithDelay3
|
||||||
|
call RestoreScreenTilesAndReloadTilePatterns
|
||||||
|
call LoadGBPal
|
||||||
|
pop af
|
||||||
|
jp c, .exit
|
||||||
|
ld a, [wWhichPokemon]
|
||||||
|
ld b, a
|
||||||
|
push bc
|
||||||
|
ld hl, PrepareTradebackMoveList
|
||||||
|
ld b, Bank(PrepareTradebackMoveList)
|
||||||
|
call Bankswitch
|
||||||
|
ld a, [wMoveBuffer]
|
||||||
|
and a
|
||||||
|
jr nz, .chooseMove
|
||||||
|
pop bc
|
||||||
|
ld hl, TradebackTutorNoMovesText
|
||||||
|
call PrintText
|
||||||
|
jp TextScriptEnd
|
||||||
|
.chooseMove
|
||||||
|
ld hl, TradebackTutorWhichMoveText
|
||||||
|
call PrintText
|
||||||
|
xor a
|
||||||
|
ld [wCurrentMenuItem], a
|
||||||
|
ld [wLastMenuItem], a
|
||||||
|
ld a, MOVESLISTMENU
|
||||||
|
ld [wListMenuID], a
|
||||||
|
ld de, wMoveBuffer
|
||||||
|
ld hl, wListPointer
|
||||||
|
ld [hl], e
|
||||||
|
inc hl
|
||||||
|
ld [hl], d
|
||||||
|
xor a
|
||||||
|
ld [wPrintItemPrices], a ; don't print prices
|
||||||
|
call DisplayListMenuID
|
||||||
|
pop bc
|
||||||
|
jr c, .exit ; exit if player chose cancel
|
||||||
|
push bc
|
||||||
|
; Save the selected move id.
|
||||||
|
ld a, [wcf91]
|
||||||
|
ld [wMoveNum], a
|
||||||
|
ld [wd11e],a
|
||||||
|
call GetMoveName
|
||||||
|
call CopyToStringBuffer ; copy name to wcf4b
|
||||||
|
pop bc
|
||||||
|
ld a, b
|
||||||
|
ld [wWhichPokemon], a
|
||||||
|
ld a, [wLetterPrintingDelayFlags]
|
||||||
|
push af
|
||||||
|
xor a
|
||||||
|
ld [wLetterPrintingDelayFlags], a
|
||||||
|
predef LearnMove
|
||||||
|
pop af
|
||||||
|
ld [wLetterPrintingDelayFlags], a
|
||||||
|
ld a, b
|
||||||
|
and a
|
||||||
|
jr z, .exit
|
||||||
|
; Charge 1000 money
|
||||||
|
xor a
|
||||||
|
ld [wPriceTemp], a
|
||||||
|
ld [wPriceTemp + 2], a
|
||||||
|
ld a, $0A
|
||||||
|
ld [wPriceTemp + 1], a
|
||||||
|
ld hl, wPriceTemp + 2
|
||||||
|
ld de, wPlayerMoney + 2
|
||||||
|
ld c, $3
|
||||||
|
predef SubBCDPredef
|
||||||
|
ld hl, TradebackTutorByeText
|
||||||
|
call PrintText
|
||||||
|
jp TextScriptEnd
|
||||||
|
.exit
|
||||||
|
ld hl, TradebackTutorByeText
|
||||||
|
call PrintText
|
||||||
|
jp TextScriptEnd
|
||||||
|
|
||||||
|
|
||||||
|
TradebackTutorGreetingText:
|
||||||
|
text_far _TradebackTutorGreetingText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
TradebackTutorSaidYesText:
|
||||||
|
text_far _TradebackTutorSaidYesText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
TradebackTutorNotEnoughMoneyText:
|
||||||
|
text_far _TradebackTutorNotEnoughMoneyText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
TradebackTutorWhichMoveText:
|
||||||
|
text_far _TradebackTutorWhichMoveText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
TradebackTutorByeText:
|
||||||
|
text_far _TradebackTutorByeText
|
||||||
|
text_end
|
||||||
|
|
||||||
|
TradebackTutorNoMovesText:
|
||||||
|
text_far _TradebackTutorNoMovesText
|
||||||
|
text_end
|
||||||
2
text.asm
2
text.asm
|
|
@ -281,6 +281,8 @@ INCLUDE "text/move_relearner.asm"
|
||||||
|
|
||||||
SECTION "Text 12", ROMX
|
SECTION "Text 12", ROMX
|
||||||
INCLUDE "text/CitrineRocketHouse.asm"
|
INCLUDE "text/CitrineRocketHouse.asm"
|
||||||
|
INCLUDE "text/CitrineTradebackHouse.asm"
|
||||||
|
INCLUDE "text/tradeback_move_tutor.asm"
|
||||||
|
|
||||||
SECTION "Pokédex Text", ROMX
|
SECTION "Pokédex Text", ROMX
|
||||||
|
|
||||||
|
|
|
||||||
15
text/CitrineTradebackHouse.asm
Normal file
15
text/CitrineTradebackHouse.asm
Normal file
|
|
@ -0,0 +1,15 @@
|
||||||
|
_CitrineTradebackHouseGuy::
|
||||||
|
text "This man is a"
|
||||||
|
line "legend in these"
|
||||||
|
cont "parts."
|
||||||
|
|
||||||
|
para "He taught my"
|
||||||
|
line "SNORLAX how to"
|
||||||
|
cont "use LOVELY KISS!"
|
||||||
|
done
|
||||||
|
|
||||||
|
_CitrineTradebackHouseBooklet::
|
||||||
|
text "It's a book showing"
|
||||||
|
line "two strange BIRD"
|
||||||
|
cont "#MON."
|
||||||
|
done
|
||||||
37
text/tradeback_move_tutor.asm
Normal file
37
text/tradeback_move_tutor.asm
Normal file
|
|
@ -0,0 +1,37 @@
|
||||||
|
_TradebackTutorGreetingText::
|
||||||
|
text "In a far-off land,"
|
||||||
|
line "our #MON can"
|
||||||
|
cont "learn different"
|
||||||
|
cont "moves."
|
||||||
|
|
||||||
|
para "For ¥1000, I can"
|
||||||
|
line "teach yours."
|
||||||
|
done
|
||||||
|
|
||||||
|
_TradebackTutorSaidYesText::
|
||||||
|
text "Which #MON"
|
||||||
|
line "should I tutor?"
|
||||||
|
prompt
|
||||||
|
|
||||||
|
_TradebackTutorNotEnoughMoneyText::
|
||||||
|
text "Great power comes"
|
||||||
|
line "at a price, you"
|
||||||
|
cont "know!"
|
||||||
|
done
|
||||||
|
|
||||||
|
_TradebackTutorWhichMoveText::
|
||||||
|
text "Which move should"
|
||||||
|
line "it learn?"
|
||||||
|
done
|
||||||
|
|
||||||
|
_TradebackTutorByeText::
|
||||||
|
text "If any of your"
|
||||||
|
line "#MON desires"
|
||||||
|
cont "power, come"
|
||||||
|
cont "visit me!"
|
||||||
|
done
|
||||||
|
|
||||||
|
_TradebackTutorNoMovesText::
|
||||||
|
text "This #MON"
|
||||||
|
line "isn't capable..."
|
||||||
|
done
|
||||||
Loading…
Reference in a new issue