Open Route 31, Violet City and Sprout Tower (#31)

Enable Route 31 and its gate, Dark Cave's Violet entrance, Violet City with its buildings and Sprout Tower. Port the script commands they use: gettrainername, askforphonenumber (with AddPhoneNumber's room for Mom and Elm; addcellnum now reports failure as the original does), checkpokemail, loadmenu/_2dmenu/closewindow, giveegg and trade (NPCTrade, with wTradeFlags saved).

Eggs keep their species with an egg flag, as wPartySpecies does. The pack's TM/HM counts receive, check and toss TMs and HMs, which are named TM01-HM07.

The playthrough continues through Route 31 (with Mom's call), Violet City and Sprout Tower to Elder Li's Flash.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
Sébastien QUEROLandClaude Opus 5.5 committed 2026-10-03 16:24:29 +02:00
1 parent ec3d1cd5c4
commit 7909302db1
16 files changed
+585 -63

No files matched your search

+20
View File
@@ -57,6 +57,8 @@ export const SYMBOLS = {
pocketIsFullText: 0x97060,
findItemInBallScript: 0x122ce,
caughtAskNicknameText: 0x4db44,
stringEgg: 0xe035,
tmhmMoves: 0x1167a,
nicknameStrings: 0x11780,
rivalNameString: 0x117c3,
rivalDefaultName: 0xc2b2,
@@ -194,6 +196,11 @@ export const ENGINE_FLAGS = {
/** Overworld scripts, routines and tables, keyed by their PRET labels so
* that `npm run check:reference` verifies each address by name. */
export const OVERWORLD = {
NPCTrades: 0xfce58,
TradeTexts: 0xfcf53,
NPCTradeCableText: 0xfcf7b,
TradedForText: 0xfcf80,
"TradedForText.done": 0xfcf92,
BugCatchingContestBattleScript: 0x135eb,
ContestMons: 0x97d87,
"OverworldTownMap": 0xc2c0,
@@ -1028,5 +1035,18 @@ export const NATIVE_MAPS: Record<string, string> = {
"26:8": "Evolution speech house",
"26:9": "Berry house",
"26:10": "Mr. Pokémon’s house",
"26:2": "Route 31",
"26:11": "Route 31 Violet gate",
"3:78": "Dark Cave",
"10:5": "Violet City",
"10:6": "Violet Mart",
"10:7": "Violet Gym",
"10:8": "Earl’s Pokémon Academy",
"10:9": "Nickname speech house",
"10:10": "Pokémon Center",
"10:11": "Kyle’s house",
"3:1": "Sprout Tower 1F",
"3:2": "Sprout Tower 2F",
"3:3": "Sprout Tower 3F",
};
export const INITIAL_POSITION = { map: "24:7", x: 3, y: 3 } as const;