From a4044f0929537e3625877e3ae846dd700b0b575a Mon Sep 17 00:00:00 2001 From: Llinos Evans <36418502+PlagueVonKarma@users.noreply.github.com> Date: Mon, 29 Jul 2024 14:23:59 +0100 Subject: [PATCH] Naming mother restored! The act of naming your mother was restored by adding a name substitution system to WRAM, thus allowing the Dude to occupy a slot naturally. I believe Red and Blue's names are unused too, but just to be safe, I left them alone. Using this means we can technically have battles that substitute names all the time, so this is really neat. Reworked the first rival encounter scene to have him treat you like an idiot, blurt out what you name your mother, tease you, and piss you off. Arguably flows better than the original and makes more sense. Also, now the mother's name is placed in various spots. Only concern really is seeing the default name in the phone contact. Feel free to change that if you want, but it's hard to place due to situations where the player leaves without talking to her, so take care! --- README.md | 1 + data/events/special_pointers.asm | 4 ++- data/phone/non_trainer_names.asm | 2 +- data/text/battle.asm | 9 ++++--- data/text/common_1.asm | 11 ++++---- engine/events/catch_tutorial.asm | 6 ++--- engine/events/specials.asm | 13 ++++++++++ maps/CherrygroveCity.asm | 44 +++++++++++++++++++++++++------- maps/PlayersHouse1F.asm | 15 ++++++----- maps/Route29.asm | 6 ++--- ram/wram.asm | 9 ++----- 11 files changed, 82 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 5b0effa..2d657c7 100644 --- a/README.md +++ b/README.md @@ -22,6 +22,7 @@ Mega Evolutions, Gigantamax forms, etc, are not in active consideration. # Changes - There is now an enby character option named Topaz, purple-themed. +- You can now name your mother, just as it was in Gold and Silver's prototype stages! - There is a new Nihon region, based on the 1998 version before it got scrapped for Johto. - The Fairy-type is now available, though Pokemon are not retroactively changed, per the Kanto Expansion Pak philosophy (you wouldn't want a Fairy-type Granbull pre-split, would you?) - Fossil revival is back in town! Get fossils using Rock Smash and revive them at Ruins of Alph or the newly-added Pewter Museum of Science! diff --git a/data/events/special_pointers.asm b/data/events/special_pointers.asm index 069a5cf..1cf8848 100644 --- a/data/events/special_pointers.asm +++ b/data/events/special_pointers.asm @@ -186,4 +186,6 @@ SpecialsPointers:: ; Tradeback NPC tutorial add_special TradebackNPC - ;add_special FossilScientist + +; Restoring naming the mother. + add_special NameMom diff --git a/data/phone/non_trainer_names.asm b/data/phone/non_trainer_names.asm index 1b2be43..d9d4788 100644 --- a/data/phone/non_trainer_names.asm +++ b/data/phone/non_trainer_names.asm @@ -11,7 +11,7 @@ NonTrainerCallerNames: assert_table_length NUM_NONTRAINER_PHONECONTACTS + 1 .none: db "----------@" -.mom: db "MOM:@" +.mom: db ":@" ; Now uses the name you give your mom when talking to Silver. .bill: db "BILL:@" .elm: db "PROF.ELM:@" .bikeshop: db "BIKE SHOP:@" diff --git a/data/text/battle.asm b/data/text/battle.asm index 27b8044..ff461dd 100644 --- a/data/text/battle.asm +++ b/data/text/battle.asm @@ -198,15 +198,18 @@ SentSomeToMomText: text_decimal wBattleReward, 3, 6 text_start line "for winning!" - cont "Sent some to MOM!" + cont "Sent some to" + cont "!" prompt SentHalfToMomText: - text "Sent half to MOM!" + text "Sent half to" + line "!" prompt SentAllToMomText: - text "Sent all to MOM!" + text "Sent all to" + line "!" prompt UnusedRivalLossText: ; unreferenced diff --git a/data/text/common_1.asm b/data/text/common_1.asm index e0a2957..e0a4bf4 100644 --- a/data/text/common_1.asm +++ b/data/text/common_1.asm @@ -1569,8 +1569,9 @@ _NPCTradeAfterText5:: ; Should not happen. done _MomLeavingText1:: - text "Wow, that's a cute" - line "#MON." + text ": Wow, you" + line "got such a cute" + cont "#MON!" para "Where did you get" line "it?" @@ -1614,9 +1615,9 @@ _MomLeavingText3:: done _MomIsThisAboutYourMoneyText:: - text "Hi! Welcome home!" - line "You're trying very" - cont "hard, I see." + text ": Hi! Welcome" + line "home! You're trying" + cont "very hard, I see." para "I've kept your" line "room tidy." diff --git a/engine/events/catch_tutorial.asm b/engine/events/catch_tutorial.asm index 3539cea..58f3447 100644 --- a/engine/events/catch_tutorial.asm +++ b/engine/events/catch_tutorial.asm @@ -17,9 +17,9 @@ CatchTutorial:: dw .DudeTutorial .DudeTutorial: -; Back up your name to your Mom's name. +; Back up your name to a substitute slot, preserving the mother's name. ld hl, wPlayerName - ld de, wMomsName + ld de, wSubstituteName ld bc, NAME_LENGTH call CopyBytes ; Copy Dude's name to your name @@ -46,7 +46,7 @@ CatchTutorial:: pop af ld [wOptions], a - ld hl, wMomsName + ld hl, wSubstituteName ld de, wPlayerName ld bc, NAME_LENGTH call CopyBytes diff --git a/engine/events/specials.asm b/engine/events/specials.asm index 69ed8d4..9718b20 100644 --- a/engine/events/specials.asm +++ b/engine/events/specials.asm @@ -92,6 +92,19 @@ NameRival: .DefaultName: db "SILVER@" +NameMom: + ld b, NAME_MOM + ld de, wMomsName + farcall _NamingScreen + ld hl, wMomsName + ld de, .DefaultName + call InitName + ret + +.DefaultName: + db "MOM@" + + NameRater: farcall _NameRater ret diff --git a/maps/CherrygroveCity.asm b/maps/CherrygroveCity.asm index d025bc3..242adf2 100644 --- a/maps/CherrygroveCity.asm +++ b/maps/CherrygroveCity.asm @@ -113,6 +113,15 @@ CherrygroveRivalSceneNorth: writetext CherrygroveRivalText_Seen waitbutton closetext + + ; Restoring the mother naming scheme from SW97. + ; Largely achieves the same thing as the original, down to being mocked. + special NameMom + opentext + writetext CherrygroveNameMom2 + waitbutton + closetext + checkevent EVENT_GOT_TOTODILE_FROM_ELM iftrue .Totodile checkevent EVENT_GOT_CHIKORITA_FROM_ELM @@ -305,11 +314,11 @@ GuideGentMovement6: step_end CherrygroveCity_RivalWalksToYou: - step LEFT - step LEFT - step LEFT - step LEFT - step LEFT + big_step LEFT + big_step LEFT + big_step LEFT + big_step LEFT + big_step LEFT step_end CherrygroveCity_RivalPushesYouOutOfTheWay: @@ -439,11 +448,28 @@ CherrygroveRivalText_Seen: para "Don't you get what" line "I'm saying?" - para "Well, I too, have" - line "a good #MON." + para "<……> <……> <……>" + + para "Hey. What do you" + line "call your MOM?" + done - para "I'll show you" - line "what I mean!" +CherrygroveNameMom2: + text "Hahaha!" + + para "?!" + + para "You really call" + line "her that?" + + para "Grow up! Pah!" + + para "<……> <……> <……>" + + para "Seems I struck" + line "a nerve." + + para "Come on, then!" done RivalCherrygroveWinText: diff --git a/maps/PlayersHouse1F.asm b/maps/PlayersHouse1F.asm index 14df45e..f620dcf 100644 --- a/maps/PlayersHouse1F.asm +++ b/maps/PlayersHouse1F.asm @@ -289,8 +289,9 @@ HurryUpElmIsWaitingText: done SoWhatWasProfElmsErrandText: - text "So, what was PROF." - line "ELM's errand?" + text ": So, what" + line "was PROF.ELM's" + cont "errand?" para "…" @@ -303,7 +304,8 @@ SoWhatWasProfElmsErrandText: done ImBehindYouText: - text ", do it!" + text ": ," + line "do it!" para "I'm behind you all" line "the way!" @@ -343,7 +345,8 @@ NeighborText: done PlayersHouse1FStoveText: - text "Mom's specialty!" + text "'s special-" + line "ty!" para "CINNABAR VOLCANO" line "BURGER!" @@ -351,8 +354,8 @@ PlayersHouse1FStoveText: PlayersHouse1FSinkText: text "The sink is spot-" - line "less. Mom likes it" - cont "clean." + line "less. " + cont "likes it clean." done PlayersHouse1FFridgeText: diff --git a/maps/Route29.asm b/maps/Route29.asm index 9b883f6..36aefd0 100644 --- a/maps/Route29.asm +++ b/maps/Route29.asm @@ -50,7 +50,7 @@ Route29Tutorial1: follow ROUTE29_COOLTRAINER_M1, PLAYER applymovement ROUTE29_COOLTRAINER_M1, DudeMovementData1b stopfollow - loadwildmon RATTATA, 5 + loadwildmon SENTRET, 5 catchtutorial BATTLETYPE_TUTORIAL turnobject ROUTE29_COOLTRAINER_M1, UP opentext @@ -75,7 +75,7 @@ Route29Tutorial2: follow ROUTE29_COOLTRAINER_M1, PLAYER applymovement ROUTE29_COOLTRAINER_M1, DudeMovementData2b stopfollow - loadwildmon RATTATA, 5 + loadwildmon SENTRET, 5 catchtutorial BATTLETYPE_TUTORIAL turnobject ROUTE29_COOLTRAINER_M1, UP opentext @@ -115,7 +115,7 @@ CatchingTutorialDudeScript: yesorno iffalse .Declined closetext - loadwildmon RATTATA, 5 + loadwildmon SENTRET, 5 catchtutorial BATTLETYPE_TUTORIAL opentext writetext CatchingTutorialDebriefText diff --git a/ram/wram.asm b/ram/wram.asm index d82dce5..843ff65 100644 --- a/ram/wram.asm +++ b/ram/wram.asm @@ -2882,6 +2882,7 @@ wMomsName:: ds NAME_LENGTH wRivalName:: ds NAME_LENGTH wRedsName:: ds NAME_LENGTH wGreensName:: ds NAME_LENGTH +wSubstituteName:: ds NAME_LENGTH wSavedAtLeastOnce:: db wSpawnAfterChampion:: db @@ -2894,8 +2895,6 @@ wStartSecond:: db wRTC:: ds 4 - ds 4 - wDST:: ; bit 7: dst db @@ -2907,12 +2906,8 @@ wGameTimeMinutes:: db wGameTimeSeconds:: db wGameTimeFrames:: db - ds 2 - wCurDay:: db - ds 1 - wObjectFollow_Leader:: db wObjectFollow_Follower:: db wCenteredObject:: db @@ -2928,7 +2923,7 @@ endr wCmdQueue:: ds CMDQUEUE_CAPACITY * CMDQUEUE_ENTRY_SIZE - ds 6 + ds 3 wMapObjects:: wPlayerObject:: map_object wPlayer ; player is map object 0