Citrine Pokecenter, trade refactoring

I am tired of doing the Legendary wing event, so I'm populating Citrine City.

Some notes;
- I refactored the In-Game Trades to match their nicknames and re-distributed them.
- I swapped Fuschia's bench guy for the third unused one meant for the safe house, but I may outright restore these.
- I refactored the Pokecenter Hidden Objects to all use the same set - they're clones of each other, so this works out. This saves a TON of bytes and works fine.
- I placed the Harry trade for Kadabra/Alakazam in Citrine Pokecenter as it feels right for such a powerful Pokemon to be post-game.
This commit is contained in:
Llinos Evans 2023-04-28 00:48:09 +01:00
parent ba78014ec6
commit d5708ef12e
25 changed files with 146 additions and 78 deletions

View file

@ -286,9 +286,10 @@ Credits
* ZumiIsawhat? - Restorations of beta OST
* FrenchOrange - Reconstructions of various overworld beta sprites.
* Helix Chamber, RacieBeep, loumilouminosus, Orchid, GBCRetro, & catstorm26 - Prototype Pokémon sprites
* Vortyne - Reused a bit of code from their pureRGB hack. Assisted in bug fixes.
* Vortiene - Reused a bit of code from their pureRGB hack. Assisted in bug fixes.
* jojobear13 & Mateo - Move deleter & move relearner functionality from Shin Pokered, followed [this guide](https://github.com/jojobear13/shinpokered/blob/master/how%20to%20guides/how%20to%20add%20the%20move%20relearner%26deleter.txt). Tweaks were made to make it compatible with the pokered version we worked off of.
* Rangi - Reused a bit of code from their Red* / Blue* hack to make HMs usable in the overworld!
* wrulfy - Technical advice
* 大吟醸 (Daiginjo) - Assistance in translating the Tamamushi University Student Book, allowing for an accurate adaptation of the location.
Original README.md proceeding;

View file

@ -185,7 +185,7 @@ DEF FIRST_INDOOR_MAP EQU const_value
map_const SEAFOAM_ISLANDS_B3F, 15, 9 ; $A3
map_const SEAFOAM_ISLANDS_B4F, 15, 9 ; $A4
map_const CITRINE_TRADEBACK_HOUSE, 4, 4 ; $A5 - Was Vermillion Old Rod house
map_const FUCHSIA_GOOD_ROD_HOUSE, 4, 4 ; $A6
map_const CITRINE_POKECENTER, 7, 4 ; $A6 - Was Fuschia Good Rod house
map_const POKEMON_MANSION_1F, 15, 14 ; $A7
map_const CINNABAR_GYM, 10, 9 ; $A8
map_const CINNABAR_LAB, 9, 4 ; $A9

View file

@ -20,16 +20,16 @@ DEF SLOTS_SOMEONESKEYS EQU $ff
; in game trades
; TradeMons indexes (see data/events/trades.asm)
const_def
const TRADE_FOR_TERRY
const TRADE_FOR_LOLA
const TRADE_FOR_MARCEL
const TRADE_FOR_CHIKUCHIKU ; unused
const TRADE_FOR_SAILOR
const TRADE_FOR_HARRY
const TRADE_FOR_DUX
const TRADE_FOR_MARC
const TRADE_FOR_LOLA
const TRADE_FOR_DORIS
const TRADE_FOR_JIMBO
const TRADE_FOR_MICHELLE
const TRADE_FOR_JENNY
const TRADE_FOR_CRINKLES
const TRADE_FOR_SPOT
const TRADE_FOR_RICKY
const TRADE_WITH_SELF ; Celadon University
const TRADE_FOR_RATICATE_A ; LGPE Trade references - Viridian
const TRADE_FOR_GOLEM_A ; Pewter

View file

@ -17,5 +17,6 @@ BenchGuyTextPointers:
bench_guy_text SAFFRON_POKECENTER, SPRITE_FACING_LEFT, SaffronCityPokecenterBenchGuyText
bench_guy_text MT_MOON_POKECENTER, SPRITE_FACING_LEFT, MtMoonPokecenterBenchGuyText
bench_guy_text ROCK_TUNNEL_POKECENTER, SPRITE_FACING_LEFT, RockTunnelPokecenterBenchGuyText
bench_guy_text CELADON_UNIVERSITY_POKECENTER, SPRITE_FACING_LEFT, CeladonUniversityPokecenterBenchGuyText
bench_guy_text CELADON_UNIVERSITY_POKECENTER, SPRITE_FACING_LEFT, CeladonUniversityPokecenterBenchGuyText
bench_guy_text CITRINE_POKECENTER, SPRITE_FACING_LEFT, CitrinePokecenterGuyText
db -1 ; end

View file

@ -84,6 +84,7 @@ HiddenObjectMaps:
db CERULEAN_CITY
db ROUTE_4
db CELADON_UNIVERSITY_POKECENTER
db CITRINE_POKECENTER
db -1 ; end
HiddenObjectPointers:
@ -173,6 +174,7 @@ HiddenObjectPointers:
dw CeruleanCityHiddenObjects
dw Route4HiddenObjects
dw CeladonUniversityPokecenterHiddenObjects
dw CitrinePokecenterHiddenObjects
MACRO hidden_object
db \2 ; y coord
@ -221,11 +223,6 @@ OaksLabHiddenObjects:
hidden_object 1, 1, SPRITE_FACING_UP, DisplayOakLabEmailText
db -1 ; end
ViridianPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
ViridianMartHiddenObjects:
db -1 ; end
@ -254,12 +251,20 @@ PewterGymHiddenObjects:
PewterMartHiddenObjects:
db -1 ; end
; You don't need to re-define your hidden objects every time if they're always the same.
; Therefore, I put all the Pokecenters together. This saves a bunch of bytes.
ViridianPokecenterHiddenObjects:
PewterPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
CeruleanPokecenterHiddenObjects:
LavenderPokecenterHiddenObjects:
VermilionPokecenterHiddenObjects:
CeladonPokecenterHiddenObjects:
FuchsiaPokecenterHiddenObjects:
CinnabarPokecenterHiddenObjects:
RockTunnelPokecenterHiddenObjects:
MtMoonPokecenterHiddenObjects:
CitrinePokecenterHiddenObjects:
CeladonUniversityPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
@ -272,16 +277,6 @@ CeruleanGymHiddenObjects:
CeruleanMartHiddenObjects:
db -1 ; end
LavenderPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
VermilionPokecenterHiddenObjects:
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
db -1 ; end
VermilionGymHiddenObjects:
hidden_object 3, 14, SPRITE_FACING_UP, GymStatues
hidden_object 6, 14, SPRITE_FACING_UP, GymStatues
@ -308,11 +303,6 @@ CeladonMansion2HiddenObjects:
hidden_object 0, 5, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
CeladonPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
CeladonGymHiddenObjects:
hidden_object 3, 15, SPRITE_FACING_UP, GymStatues
hidden_object 6, 15, SPRITE_FACING_UP, GymStatues
@ -374,11 +364,6 @@ CeladonHotelHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
db -1 ; end
FuchsiaPokecenterHiddenObjects:
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
db -1 ; end
FuchsiaGymHiddenObjects:
hidden_object 3, 15, SPRITE_FACING_UP, GymStatues
hidden_object 6, 15, SPRITE_FACING_UP, GymStatues
@ -395,25 +380,10 @@ CinnabarGymHiddenObjects:
hidden_object 1, 7, (TRUE << 4) | 6, PrintCinnabarQuiz
db -1 ; end
CinnabarPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
SaffronGymHiddenObjects:
hidden_object 9, 15, SPRITE_FACING_UP, GymStatues
db -1 ; end
MtMoonPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
RockTunnelPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_LEFT, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end
ViridianForestHiddenObjects:
hidden_object 1, 18, POTION, HiddenItems
hidden_object 16, 42, ANTIDOTE, HiddenItems
@ -664,8 +634,3 @@ CeruleanCityHiddenObjects:
Route4HiddenObjects:
hidden_object 40, 3, GREAT_BALL, HiddenItems
db -1 ; end
CeladonUniversityPokecenterHiddenObjects:
hidden_object 0, 4, SPRITE_FACING_UP, PrintBenchGuyText
hidden_object 13, 3, SPRITE_FACING_UP, OpenPokemonCenterPC
db -1 ; end

View file

@ -0,0 +1,2 @@
map_header CitrinePokecenter, CITRINE_POKECENTER, POKECENTER, 0
end_map_header

View file

@ -166,8 +166,8 @@ MapHeaderBanks::
db BANK(SeafoamIslandsB2F_h)
db BANK(SeafoamIslandsB3F_h)
db BANK(SeafoamIslandsB4F_h)
db BANK(CitrineTradebackHouse_h)
db BANK(FuchsiaGoodRodHouse_h)
db BANK(CitrineTradebackHouse_h) ; was old rod house
db BANK(CitrinePokecenter_h) ; was good rod house
db BANK(PokemonMansion1F_h)
db BANK(CinnabarGym_h)
db BANK(CinnabarLab_h)

View file

@ -166,8 +166,8 @@ MapHeaderPointers::
dw SeafoamIslandsB2F_h
dw SeafoamIslandsB3F_h
dw SeafoamIslandsB4F_h
dw CitrineTradebackHouse_h
dw FuchsiaGoodRodHouse_h
dw CitrineTradebackHouse_h ; was vermillion old rod house
dw CitrinePokecenter_h ; was fuschia good rod house
dw PokemonMansion1F_h
dw CinnabarGym_h
dw CinnabarLab_h

View file

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

View file

@ -0,0 +1,18 @@
CitrinePokecenter_Object:
db $0 ; border block
def_warp_events
warp_event 3, 7, LAST_MAP, 6
warp_event 4, 7, LAST_MAP, 6
def_bg_events
def_object_events
object_event 3, 1, SPRITE_NURSE, STAY, DOWN, 1 ; person
object_event 5, 4, SPRITE_BRUNETTE_GIRL, WALK, LEFT_RIGHT, 2 ; person
object_event 10, 5, SPRITE_COOLTRAINER_M, WALK, ANY_DIR, 3 ; person
object_event 11, 2, SPRITE_LINK_RECEPTIONIST, STAY, DOWN, 4 ; person
object_event 8, 3, SPRITE_GAMEBOY_KID, STAY, DOWN, 5 ; Sandslash Trader
object_event 4, 1, SPRITE_CHANSEY, STAY, DOWN, 6 ; Chansey
def_warps_to CITRINE_POKECENTER

View file

@ -9,8 +9,8 @@ FuchsiaCity_Object:
warp_event 18, 3, SAFARI_ZONE_GATE, 1
warp_event 5, 27, FUCHSIA_GYM, 1
warp_event 22, 13, FUCHSIA_MEETING_ROOM, 1
warp_event 31, 27, FUCHSIA_GOOD_ROD_HOUSE, 2
warp_event 31, 24, FUCHSIA_GOOD_ROD_HOUSE, 1
;warp_event 31, 27, FUCHSIA_GOOD_ROD_HOUSE, 2 these need to be replaced with...something.
;warp_event 31, 24, FUCHSIA_GOOD_ROD_HOUSE, 1
def_bg_events
bg_event 15, 23, 11 ; FuchsiaCityText11

View file

@ -166,7 +166,7 @@ MapSongBanks::
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B3F
db MUSIC_DUNGEON2, 0 ; SEAFOAM_ISLANDS_B4F
db MUSIC_CITIES2, 0 ; CITRINE_TRADEBACK_HOUSE, was old rod house
db MUSIC_CITIES2, 0 ; FUCHSIA_GOOD_ROD_HOUSE
db MUSIC_POKECENTER, 0 ; CITRINE_POKECENTER was good rod house
db MUSIC_CINNABAR_MANSION, 0 ; POKEMON_MANSION_1F
db MUSIC_GYM, 0 ; CINNABAR_GYM
db MUSIC_CINNABAR, 0 ; CINNABAR_LAB

View file

@ -96,7 +96,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 FUCHSIA_GOOD_ROD_HOUSE, 8, 13, FuchsiaCityName
internal_map POKEMON_MANSION_1F, 2, 15, PokemonMansionName
internal_map CINNABAR_MART, 2, 15, CinnabarIslandName
internal_map INDIGO_PLATEAU_LOBBY, 0, 2, IndigoPlateauName

View file

@ -202,6 +202,19 @@ _RockTunnelPokecenterGuyText::
cont "LAVENDER TOWN!"
done
_CitrinePokecenterGuyText::
text "While #MON can"
line "become stronger"
cont "with vitamins,"
cont "they only go"
cont "so far."
para "#MON must"
line "battle to reach"
cont "their full"
cont "potential."
done
_UnusedBenchGuyText1::
text "I wish I could"
line "catch #MON."

View file

@ -31,7 +31,7 @@ TextPredefs::
add_tx_pre MtMoonPokecenterBenchGuyText ; 19
add_tx_pre RockTunnelPokecenterBenchGuyText ; 1A
add_tx_pre CeladonUniversityPokecenterBenchGuyText ; 1B
add_tx_pre UnusedBenchGuyText2 ; 1C XXX unused
add_tx_pre CitrinePokecenterGuyText ; 1C was unused bench guy text 2
add_tx_pre UnusedBenchGuyText3 ; 1D XXX unused
add_tx_pre UnusedPredefText ; 1E XXX unused
add_tx_pre PokemonCenterPCText ; 1F

View file

@ -68,7 +68,7 @@ CeladonCityPokecenterBenchGuyText::
text_end
FuchsiaCityPokecenterBenchGuyText::
text_far _FuchsiaCityPokecenterGuyText
text_far _UnusedBenchGuyText3 ; replaced
text_end
CinnabarIslandPokecenterBenchGuyText::
@ -96,3 +96,7 @@ SaffronCityPokecenterBenchGuyText2:
CeladonCityHotelText::
text_far _CeladonCityHotelText
text_end
CitrinePokecenterGuyText::
text_far _CitrinePokecenterGuyText
text_end

View file

@ -697,7 +697,7 @@ Route21_Blocks: INCBIN "maps/Route21.blk"
Route12SuperRodHouse_Blocks:
Daycare_Blocks: INCBIN "maps/Daycare.blk"
FuchsiaGoodRodHouse_Blocks: INCBIN "maps/FuchsiaGoodRodHouse.blk"
;FuchsiaGoodRodHouse_Blocks: INCBIN "maps/FuchsiaGoodRodHouse.blk"
SECTION "Maps 12", ROMX
@ -718,9 +718,9 @@ INCLUDE "scripts/CeladonMart2F.asm"
INCLUDE "data/maps/objects/CeladonMart2F.asm"
CeladonMart2F_Blocks: INCBIN "maps/CeladonMart2F.blk"
INCLUDE "data/maps/headers/FuchsiaGoodRodHouse.asm"
INCLUDE "scripts/FuchsiaGoodRodHouse.asm"
INCLUDE "data/maps/objects/FuchsiaGoodRodHouse.asm"
;INCLUDE "data/maps/headers/FuchsiaGoodRodHouse.asm"
;INCLUDE "scripts/FuchsiaGoodRodHouse.asm"
;INCLUDE "data/maps/objects/FuchsiaGoodRodHouse.asm"
INCLUDE "data/maps/headers/Daycare.asm"
INCLUDE "scripts/Daycare.asm"
@ -1335,3 +1335,8 @@ INCLUDE "scripts/CitrineTradebackHouse.asm"
INCLUDE "data/maps/objects/CitrineTradebackHouse.asm"
INCLUDE "scripts/tradeback_move_tutor.asm"
CitrineTradebackHouse_Blocks: INCBIN "maps/CitrineTradebackHouse.blk"
INCLUDE "data/maps/headers/CitrinePokecenter.asm"
INCLUDE "scripts/CitrinePokecenter.asm"
INCLUDE "data/maps/objects/CitrinePokecenter.asm"
CitrinePokecenter_Blocks: INCBIN "maps/CitrinePokecenter.blk"

View file

@ -0,0 +1,2 @@
 !"#


View file

@ -101,7 +101,7 @@ Lab4Text_75dd5:
Lab4Text2:
text_asm
ld a, TRADE_FOR_SAILOR
ld a, TRADE_FOR_JIMBO
ld [wWhichTrade], a
predef DoInGameTradeDialogue
jp TextScriptEnd

View file

@ -13,7 +13,7 @@ Lab2Text1:
Lab2Text2:
text_asm
ld a, TRADE_FOR_DORIS
ld a, TRADE_FOR_JENNY
ld [wWhichTrade], a
jr Lab2DoTrade

View file

@ -0,0 +1,37 @@
CitrinePokecenter_Script:
call Serial_TryEstablishingExternallyClockedConnection
jp EnableAutoTextBoxDrawing
CitrinePokecenter_TextPointers:
dw CitrineHealNurseText
dw CitrinePokecenterText2
dw CitrinePokecenterText3
dw CitrineTradeNurseText
dw KadabraTrade
dw CitrinePokeCenterText4
CitrineTradeNurseText:
script_cable_club_receptionist
CitrineHealNurseText:
script_pokecenter_nurse
CitrinePokecenterText2:
text_far _CitrinePokecenterText2
text_end
CitrinePokecenterText3:
text_far _CitrinePokecenterText3
text_end
KadabraTrade:
text_asm
ld a, TRADE_FOR_HARRY
ld [wWhichTrade], a
predef DoInGameTradeDialogue
jp TextScriptEnd
CitrinePokeCenterText4:
text_asm
callfar PokecenterChanseyText
jp TextScriptEnd

View file

@ -8,7 +8,7 @@ Route18Gate2F_TextPointers:
Route18GateUpstairsText1:
text_asm
ld a, TRADE_FOR_MARC
ld a, TRADE_FOR_JIMBO
ld [wWhichTrade], a
predef DoInGameTradeDialogue
jp TextScriptEnd

View file

@ -11,7 +11,7 @@ UndergroundPathRoute5_TextPointers:
UndergroundPathEntranceRoute5Text1:
text_asm
ld a, TRADE_FOR_SPOT
ld a, TRADE_FOR_RICKY
ld [wWhichTrade], a
predef DoInGameTradeDialogue
ld hl, UndergroundPathEntranceRoute5_TextScriptEndingText

View file

@ -192,7 +192,7 @@ SECTION "Text 8", ROMX
INCLUDE "text/VermilionGym_2.asm"
INCLUDE "text/VermilionPidgeyHouse.asm"
INCLUDE "text/VermilionDock.asm"
INCLUDE "text/VermilionOldRodHouse.asm"
;INCLUDE "text/VermilionOldRodHouse.asm"
INCLUDE "text/CeladonMart1F.asm"
INCLUDE "text/CeladonMart2F.asm"
INCLUDE "text/CeladonMart3F.asm"
@ -223,7 +223,7 @@ SECTION "Text 9", ROMX
INCLUDE "text/FuchsiaGym_2.asm"
INCLUDE "text/FuchsiaMeetingRoom.asm"
INCLUDE "text/FuchsiaGoodRodHouse.asm"
;INCLUDE "text/FuchsiaGoodRodHouse.asm"
INCLUDE "text/PokemonMansion1F.asm"
INCLUDE "text/CinnabarGym.asm"
INCLUDE "text/CinnabarLab.asm"
@ -288,6 +288,7 @@ INCLUDE "text/BrunswickTrail.asm"
INCLUDE "text/SilphGauntlet1F.asm"
INCLUDE "text/SilphGauntlet4F.asm"
INCLUDE "text/SilphGauntlet7F.asm"
INCLUDE "text/CitrinePokecenter.asm"
SECTION "Pokédex Text", ROMX

View file

@ -0,0 +1,19 @@
_CitrinePokecenterText2::
text "I've seen a lot"
line "of men in black"
cont "going in and"
cont "out of this one"
cont "house."
para "It couldn't be,"
line "could it?"
done
_CitrinePokecenterText3::
text "The TRAINERs here"
line "are too tough!"
para "What are they"
line "feeding their"
cont "#MON?!"
done