diff options
27 files changed, 3465 insertions, 270 deletions
@@ -56,3 +56,5 @@ gfx/player/chris_back.2bpp gfx/trade/game_boy.2bpp gfx/pokegear/pokegear_sprites.2bpp gfx/slots/slots_*.2bpp +gfx/pokedex/pokedex.2bpp +gfx/pokedex/slowpoke.2bpp diff --git a/constants/event_flags.asm b/constants/event_flags.asm index 2aa6bf22..bb1476b1 100644 --- a/constants/event_flags.asm +++ b/constants/event_flags.asm @@ -621,7 +621,7 @@ const EVENT_GAVE_KURT_PNK_APRICORN ; Phone events const EVENT_JACK_ASKED_FOR_PHONE_NUMBER - const EVENT_JACK_READY_FOR_REMATCH ; 0260 + const EVENT_JACK_READY_FOR_REMATCH ; 260 const EVENT_BEVERLY_ASKED_FOR_PHONE_NUMBER const EVENT_BEVERLY_READY_FOR_REMATCH const EVENT_HUEY_ASKED_FOR_PHONE_NUMBER @@ -637,7 +637,7 @@ const EVENT_BETH_ASKED_FOR_PHONE_NUMBER const EVENT_BETH_READY_FOR_REMATCH const EVENT_JOSE_ASKED_FOR_PHONE_NUMBER - const EVENT_JOSE_READY_FOR_REMATCH ; 0270 + const EVENT_JOSE_READY_FOR_REMATCH ; 270 const EVENT_REENA_ASKED_FOR_PHONE_NUMBER const EVENT_REENA_READY_FOR_REMATCH const EVENT_JOEY_ASKED_FOR_PHONE_NUMBER @@ -669,7 +669,7 @@ const EVENT_DEREK_ASKED_FOR_PHONE_NUMBER const EVENT_DEREK_READY_FOR_REMATCH const EVENT_CHRIS_ASKED_FOR_PHONE_NUMBER - const EVENT_CHRIS_READY_FOR_REMATCH + const EVENT_CHRIS_READY_FOR_REMATCH ; 290 const EVENT_BRENT_ASKED_FOR_PHONE_NUMBER const EVENT_BRENT_READY_FOR_REMATCH const EVENT_TIFFANY_ASKED_FOR_PHONE_NUMBER @@ -1669,7 +1669,7 @@ ; The map script command macros `disappear` and `appear` set/clear these flags and immediately apply the effect on visibility. ; The map script command macros `setevent` and `clearevent` set/clear these flags, and their effects will be seen when the map is reloaded. ; Johto itemballs - const EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB + const EVENT_CYNDAQUIL_POKEBALL_IN_ELMS_LAB ; 640 const EVENT_TOTODILE_POKEBALL_IN_ELMS_LAB const EVENT_CHIKORITA_POKEBALL_IN_ELMS_LAB const EVENT_VIOLET_CITY_PP_UP @@ -1685,7 +1685,7 @@ const EVENT_TIN_TOWER_4F_PP_UP const EVENT_TIN_TOWER_4F_ESCAPE_ROPE const EVENT_TIN_TOWER_5F_RARE_CANDY - const EVENT_TIN_TOWER_7F_MAX_REVIVE + const EVENT_TIN_TOWER_7F_MAX_REVIVE ; 650 const EVENT_TIN_TOWER_8F_NUGGET const EVENT_TIN_TOWER_8F_MAX_ELIXER const EVENT_TIN_TOWER_8F_FULL_RESTORE @@ -1701,7 +1701,7 @@ const EVENT_UNION_CAVE_1F_AWAKENING const EVENT_UNION_CAVE_B1F_TM_SWIFT const EVENT_UNION_CAVE_B1F_X_DEFEND - const EVENT_UNION_CAVE_B2F_ELIXER + const EVENT_UNION_CAVE_B2F_ELIXER ; 660 const EVENT_UNION_CAVE_B2F_HYPER_POTION const EVENT_SLOWPOKE_WELL_B1F_SUPER_POTION const EVENT_SLOWPOKE_WELL_B2F_TM_RAIN_DANCE @@ -1717,7 +1717,7 @@ const EVENT_TEAM_ROCKET_BASE_B3F_FULL_HEAL const EVENT_TEAM_ROCKET_BASE_B3F_DIRE_HIT const EVENT_TEAM_ROCKET_BASE_B3F_PROTEIN - const EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL + const EVENT_TEAM_ROCKET_BASE_B3F_ICE_HEAL ; 670 const EVENT_ILEX_FOREST_REVIVE const EVENT_GOLDENROD_UNDERGROUND_COIN_CASE const EVENT_GOLDENROD_UNDERGROUND_SWITCH_ROOM_ENTRANCES_SMOKE_BALL @@ -1733,7 +1733,7 @@ const EVENT_MOUNT_MORTAR_1F_INSIDE_ESCAPE_ROPE const EVENT_MOUNT_MORTAR_1F_INSIDE_MAX_REVIVE const EVENT_MOUNT_MORTAR_1F_INSIDE_HYPER_POTION - const EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION + const EVENT_MOUNT_MORTAR_2F_INSIDE_MAX_POTION ; 680 const EVENT_MOUNT_MORTAR_2F_INSIDE_RARE_CANDY const EVENT_MOUNT_MORTAR_2F_INSIDE_TM_DEFENSE_CURL const EVENT_MOUNT_MORTAR_2F_INSIDE_DRAGON_SCALE @@ -1749,7 +1749,7 @@ const EVENT_ICE_PATH_B2F_BLACKTHORN_SIDE_TM_REST const EVENT_ICE_PATH_B3F_NEVERMELTICE const EVENT_WHIRL_ISLAND_NE_ULTRA_BALL - const EVENT_WHIRL_ISLAND_SW_GUARD_SPEC + const EVENT_WHIRL_ISLAND_SW_GUARD_SPEC ; 690 const EVENT_WHIRL_ISLAND_B1F_FULL_RESTORE const EVENT_WHIRL_ISLAND_B1F_CARBOS const EVENT_WHIRL_ISLAND_B1F_CALCIUM @@ -1765,7 +1765,7 @@ const EVENT_SILVER_CAVE_ITEM_ROOMS_FULL_RESTORE const EVENT_DARK_CAVE_VIOLET_ENTRANCE_POTION const EVENT_DARK_CAVE_VIOLET_ENTRANCE_FULL_HEAL - const EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION + const EVENT_DARK_CAVE_VIOLET_ENTRANCE_HYPER_POTION ; 6a0 const EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_REVIVE const EVENT_DARK_CAVE_BLACKTHORN_ENTRANCE_TM_SNORE const EVENT_VICTORY_ROAD_TM_EARTHQUAKE @@ -1781,7 +1781,7 @@ const EVENT_ROUTE_29_POTION const EVENT_ROUTE_31_ANTIDOTE const EVENT_ROUTE_31_POKE_BALL - const EVENT_ROUTE_32_GREAT_BALL + const EVENT_ROUTE_32_GREAT_BALL ; 6b0 const EVENT_ROUTE_32_POTION const EVENT_ROUTE_35_TM_ROLLOUT const EVENT_ROUTE_42_ULTRA_BALL @@ -1798,7 +1798,7 @@ const EVENT_RIVAL_NEW_BARK_TOWN const EVENT_RIVAL_CHERRYGROVE_CITY const EVENT_RIVAL_AZALEA_TOWN - const EVENT_RIVAL_TEAM_ROCKET_BASE + const EVENT_RIVAL_TEAM_ROCKET_BASE ; 6c0 const EVENT_RIVAL_GOLDENROD_UNDERGROUND const EVENT_RIVAL_VICTORY_ROAD const EVENT_RIVAL_OLIVINE_CITY @@ -1814,7 +1814,7 @@ const EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER const EVENT_RADIO_TOWER_ROCKET_TAKEOVER const EVENT_GOLDENROD_CITY_CIVILIANS - const EVENT_RADIO_TOWER_CIVILIANS_AFTER + const EVENT_RADIO_TOWER_CIVILIANS_AFTER ; 6d0 const EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS const EVENT_OLIVINE_LIGHTHOUSE_JASMINE const EVENT_OLIVINE_GYM_JASMINE @@ -1830,7 +1830,7 @@ const EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE const EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE const EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE - const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 + const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_1 ; 6e0 const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_2 const EVENT_TEAM_ROCKET_BASE_B2F_ELECTRODE_3 const EVENT_BLACKTHORN_CITY_SUPER_NERD_BLOCKS_GYM @@ -1846,7 +1846,7 @@ const EVENT_ILEX_FOREST_FARFETCHD5 const EVENT_ILEX_FOREST_FARFETCHD6 const EVENT_ILEX_FOREST_FARFETCHD7 - const EVENT_ILEX_FOREST_FARFETCHD8 + const EVENT_ILEX_FOREST_FARFETCHD8 ; 6f0 const EVENT_ILEX_FOREST_FARFETCHD9 const EVENT_ILEX_FOREST_FARFETCHD10 const EVENT_ILEX_FOREST_APPRENTICE @@ -1862,7 +1862,7 @@ const EVENT_KURTS_HOUSE_SLOWPOKE const EVENT_GUIDE_GENT_IN_HIS_HOUSE const EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE - const EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER + const EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER ; 700 const EVENT_ELMS_AIDE_IN_LAB const EVENT_COP_IN_ELMS_LAB const EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST @@ -1878,7 +1878,7 @@ const EVENT_BOULDER_IN_ICE_PATH_1A const EVENT_BOULDER_IN_ICE_PATH_2A const EVENT_BOULDER_IN_ICE_PATH_3A - const EVENT_BOULDER_IN_ICE_PATH_4A + const EVENT_BOULDER_IN_ICE_PATH_4A ; 710 const EVENT_MYSTERY_GIFT_DELIVERY_GUY const EVENT_MET_BILL const EVENT_ECRUTEAK_POKE_CENTER_BILL @@ -1894,7 +1894,7 @@ const EVENT_BUG_CATCHING_CONTESTANT_8A const EVENT_BUG_CATCHING_CONTESTANT_9A const EVENT_BUG_CATCHING_CONTESTANT_10A - const EVENT_BUG_CATCHING_CONTESTANT_1B + const EVENT_BUG_CATCHING_CONTESTANT_1B ; 720 const EVENT_BUG_CATCHING_CONTESTANT_2B const EVENT_BUG_CATCHING_CONTESTANT_3B const EVENT_BUG_CATCHING_CONTESTANT_4B @@ -1910,7 +1910,7 @@ const EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR const EVENT_FAST_SHIP_B1F_SAILOR_LEFT const EVENT_FAST_SHIP_B1F_SAILOR_RIGHT - const EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN + const EVENT_FAST_SHIP_CABINS_SE_SSE_GENTLEMAN ; 730 const EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1 const EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_2 const EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M @@ -1964,12 +1964,12 @@ const EVENT_GOLDENROD_DEPT_STORE_5F_HAPPINESS_EVENT_LADY const EVENT_BURNED_TOWER_FIREBREATHER_DICK_NORMAL const EVENT_BURNED_TOWER_FIREBREATHER_DICK_ASHES - const EVENT_RANG_CLEAR_BELL_1 - const EVENT_RANG_CLEAR_BELL_2 - const EVENT_FLORIA_AT_FLOWER_SHOP - const EVENT_FLORIA_AT_SUDOWOODO - const EVENT_GOLDENROD_CITY_MOVE_TUTOR - const EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR + const EVENT_RANG_CLEAR_BELL_1 ; rename? + const EVENT_RANG_CLEAR_BELL_2 ; rename? + const EVENT_FLORIA_AT_FLOWER_SHOP ; rename? + const EVENT_FLORIA_AT_SUDOWOODO ; rename? + const EVENT_GOLDENROD_CITY_MOVE_TUTOR ; rename? + const EVENT_GOLDENROD_GAME_CORNER_MOVE_TUTOR ; rename? ; Kanto people const EVENT_ROUTE_24_ROCKET const EVENT_CERULEAN_GYM_ROCKET diff --git a/constants/sprite_anim_constants.asm b/constants/sprite_anim_constants.asm index 04c01743..1df8c368 100644 --- a/constants/sprite_anim_constants.asm +++ b/constants/sprite_anim_constants.asm @@ -23,6 +23,9 @@ NUM_SPRITE_ANIM_STRUCTS EQU 10 ; see wSpriteAnimationStructs SPRITE_ANIM_INDEX_PARTY_MON EQU $00 SPRITE_ANIM_INDEX_GS_TITLE_TRAIL EQU $0f SPRITE_ANIM_INDEX_NAMING_SCREEN_CURSOR EQU $14 +SPRITE_ANIM_INDEX_GAMEFREAK_LOGO EQU $15 +SPRITE_ANIM_INDEX_GS_INTRO_STAR EQU $16 +SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE EQU $17 SPRITE_ANIM_INDEX_SLOTS_GOLEM EQU $18 SPRITE_ANIM_INDEX_SLOTS_CHANSEY EQU $19 SPRITE_ANIM_INDEX_SLOTS_EGG EQU $1a diff --git a/data/phone/text/bike_shop.asm b/data/phone/text/bike_shop.asm new file mode 100644 index 00000000..ec2ce893 --- /dev/null +++ b/data/phone/text/bike_shop.asm @@ -0,0 +1,19 @@ +BikeShopPhoneCallerText: + text "Hi, <PLAYER>!" + line "Our BICYCLE sales" + + para "have gone through" + line "the roof!" + + para "We owe it all to" + line "your advertising" + + para "by riding around" + line "on our BICYCLE." + + para "As our way of say-" + line "ing thanks, please" + + para "keep that BICYCLE." + line "Thanks again!" + done diff --git a/data/phone/text/bill.asm b/data/phone/text/bill.asm new file mode 100644 index 00000000..24f4840d --- /dev/null +++ b/data/phone/text/bill.asm @@ -0,0 +1,101 @@ +BillPhoneMornGreetingText: + text "Good morning!" + + para "This is the #-" + line "MON STORAGE SYSTEM" + + para "ADMINISTRATION" + line "SERVICE." + done + +BillPhoneDayGreetingText: + text "Good day!" + + para "This is the #-" + line "MON STORAGE SYSTEM" + + para "ADMINISTRATION" + line "SERVICE." + done + +BillPhoneNiteGreetingText: + text "Good evening!" + + para "This is the #-" + line "MON STORAGE SYSTEM" + + para "ADMINISTRATION" + line "SERVICE." + done + +BillPhoneGenericText: + text "Who's calling?" + + para "<PLAYER>, is it?" + line "Hang on a sec…" + + para "<……>" + line "<……>" + done + +BillPhoneNotFullText: + text "Thanks for" + line "waiting!" + + para "<PLAYER>, your BOX" + line "has room for @" + text_ram wStringBuffer3 + text_start + cont "more #MON." + + para "Get out there and" + line "fill it up!" + done + +BillPhoneNearlyFullText: + text "Thanks for" + line "waiting!" + + para "<PLAYER>, your BOX" + line "has room for only" + cont "@" + text_ram wStringBuffer3 + text " more #MON." + + para "Maybe you should" + line "switch your BOX." + done + +BillPhoneFullText: + text "Thanks for" + line "waiting!" + + para "<PLAYER>, your BOX" + line "is full!" + + para "You'll have to" + line "switch BOXES if" + + para "you want to catch" + line "more #MON." + done + +BillPhoneNewlyFullText: + text "Hi, <PLAYER>?" + line "It's me, BILL!" + + para "Thanks for using" + line "my STORAGE SYSTEM." + + para "That last #MON" + line "you sent filled" + cont "your BOX up." + + para "You'll have to" + line "switch BOXES if" + + para "you want to catch" + line "more #MON." + + para "Bye now!" + done diff --git a/data/phone/text/elm.asm b/data/phone/text/elm.asm new file mode 100644 index 00000000..a1450ca2 --- /dev/null +++ b/data/phone/text/elm.asm @@ -0,0 +1,212 @@ +ElmPhoneHealYourMonText: + text "Hello, <PLAYER>?" + + para "Try not to overdo" + line "it." + + para "Be sure to heal" + line "your #MON if" + cont "they are hurt." + done + +ElmPhoneSawMrPokemonText: + text "Hello, <PLAYER>?" + + para "Did you meet MR." + line "#MON? Great!" + cont "Come back safely!" + done + +ElmPhonePokemonStolenText: + text "<PLAYER>? I'm very" + line "upset now." + + para "We had a #MON" + line "stolen from here." + + para "How could anyone" + line "do that?" + done + +ElmPhoneCheckingTheEggText: + text "Hello, <PLAYER>?" + + para "We're checking the" + line "EGG now. It does" + + para "appear to be a" + line "#MON EGG." + done + +ElmPhoneAssistantText: + text "Hello, <PLAYER>?" + + para "Did you see my" + line "assistant? He's at" + + para "the #MON CENTER" + line "in VIOLET CITY." + done + +ElmPhoneHowIsTheEggText: + text "Hello, <PLAYER>?" + + para "How's the EGG? Has" + line "anything changed?" + + para "If anything hap-" + line "pens, please call." + done + +ElmPhoneEggHatchedText: + text "Hello, <PLAYER>?" + line "How is the EGG?" + + para "What? It hatched?" + line "Wow! What kind of" + cont "#MON is it?" + + para "Please come show" + line "me now!" + done + +ElmPhoneDiscoveredHatchTimeText: + text "Hello, <PLAYER>?" + + para "I just made a new" + line "discovery." + + para "The time it takes" + line "for an EGG to" + + para "hatch depends on" + line "the #MON." + done + +ElmPhoneInvestigatingEggMovesText: + text "Hello, <PLAYER>?" + + para "It's still a" + line "mystery what kinds" + + para "of moves hatched" + line "#MON have." + + para "We're investigat-" + line "ing that now." + done + +ElmPhoneDiscoveredPokerusText: + text "Hello, <PLAYER>?" + + para "I discovered an" + line "odd thing." + + para "Apparently there's" + line "something called" + + para "#RUS that in-" + line "fects #MON." + + para "Yes, it's like a" + line "virus, so it's" + cont "called #RUS." + + para "It multiplies fast" + line "and infects other" + + para "#MON too. But" + line "that's all." + + para "It doesn't seem to" + line "do anything, and" + + para "it goes away over" + line "time." + + para "I guess it's" + line "nothing to worry" + cont "about. Bye!" + done + +ElmPhoneDisasterText: + text "H-hello? <PLAYER>?" + line "It's a disaster!" + + para "Uh, um, it's just" + line "terrible!" + + para "What should I do?" + line "It… Oh, no…" + + para "Please get back" + line "here now!" + done + +ElmPhoneEggAssistantText: + text "Hello, <PLAYER>? We" + line "discovered some-" + + para "thing about the" + line "EGG!" + + para "My assistant is at" + line "the #MON CENTER" + + para "in VIOLET CITY. " + line "Could you talk to" + cont "him?" + done + +ElmPhoneRadioTowerRocketTakeoverText: + text "<PLAYER>, how are" + line "things going?" + + para "I called because" + line "something weird is" + + para "happening with the" + line "radio broadcasts." + + para "They were talking" + line "about TEAM ROCKET." + + para "<PLAYER>, do you" + line "know anything" + cont "about it?" + + para "Maybe TEAM ROCKET" + line "has returned. No," + + para "that just can't" + line "be true." + + para "Sorry to bug you." + line "Take care!" + done + +ElmPhoneGiftText: + text "Hello, <PLAYER>?" + + para "I have something" + line "here for you." + + para "Could you swing by" + line "my LAB?" + + para "See you later!" + done + +; unused +ElmPhoneGotAholdOfSomethingNeatText: + text "Hello, <PLAYER>?" + line "How's it going?" + + para "I got ahold of" + line "something neat." + + para "Swing by my LAB" + line "and pick it up!" + + para "See you later!" + done diff --git a/data/phone/text/landmarks.asm b/data/phone/text/landmarks.asm new file mode 100644 index 00000000..175f6111 --- /dev/null +++ b/data/phone/text/landmarks.asm @@ -0,0 +1,67 @@ +PhoneNationalParkText: + db "NATIONAL PARK@" + +PhoneLighthouseText: + db "LIGHTHOUSE@" + +; unreferenced +PhoneUndergroundText: + db "UNDERGROUND@" + +PhoneDarkCaveText: + db "DARK CAVE@" + +PhoneMtMortarText: + db "MT.MORTAR@" + +PhoneRoute26Text: + db "ROUTE 26@" + +PhoneRoute27Text: + db "ROUTE 27@" + +PhoneRoute30Text: + db "ROUTE 30@" + +PhoneRoute31Text: + db "ROUTE 31@" + +PhoneRoute32Text: + db "ROUTE 32@" + +PhoneRoute33Text: + db "ROUTE 33@" + +PhoneRoute34Text: + db "ROUTE 34@" + +PhoneRoute35Text: + db "ROUTE 35@" + +PhoneRoute36Text: + db "ROUTE 36@" + +; unreferenced +PhoneRoute37Text: + db "ROUTE 37@" + +PhoneRoute38Text: + db "ROUTE 38@" + +PhoneRoute39Text: + db "ROUTE 39@" + +PhoneRoute42Text: + db "ROUTE 42@" + +PhoneRoute43Text: + db "ROUTE 43@" + +PhoneRoute44Text: + db "ROUTE 44@" + +PhoneRoute45Text: + db "ROUTE 45@" + +PhoneRoute46Text: + db "ROUTE 46@" diff --git a/data/phone/text/mom.asm b/data/phone/text/mom.asm new file mode 100644 index 00000000..75e8dfbb --- /dev/null +++ b/data/phone/text/mom.asm @@ -0,0 +1,165 @@ +MomPhoneGreetingText: + text "Hello?" + + para "Oh, hi, <PLAYER>!" + line "Working hard?" + done + +MomPhoneLandmarkText: + text "Oh, so you're in" + line "@" + text_ram wStringBuffer3 + text "…" + + para "Isn't that where" + line "@" + text_ram wStringBuffer4 + text_start + para "is? Did you go" + line "take a look?" + done + +MomPhoneGenericAreaText: + text "Really, you're in" + line "@" + text_ram wStringBuffer3 + text "?" + + para "I've never gone" + line "there. That's kind" + cont "of neat, <PLAYER>." + done + +MomPhoneNewBarkText: + text "What? You're in" + line "@" + text_ram wStringBuffer3 + text "?" + + para "Come see your MOM" + line "sometime!" + done + +MomPhoneCherrygroveText: + text "You're visiting" + line "@" + text_ram wStringBuffer3 + text "?" + + para "How about coming" + line "home for a bit?" + done + +MomOtherAreaText: + text "Wow, you're in" + line "@" + text_ram wStringBuffer3 + text "?" + + para "Good luck on your" + line "#MON quest!" + done + +MomDeterminedText: + text "That sounds really" + line "tough." + + para "But, <PLAYER>, I" + line "know you're really" + + para "determined. You'll" + line "be OK, right?" + done + +MomCheckBalanceText: + text "By the way, you've" + line "saved up ¥@" + text_ram wStringBuffer3 + text "." + + para "Do you want to" + line "keep on saving?" + done + +MomImportantToSaveText: + text "It's important to" + line "save your money." + done + +MomYoureNotSavingText: + text "Oh, <PLAYER>," + line "you're not saving" + + para "any money. Would" + line "you like to save?" + done + +MomYouveSavedText: + text "By the way, you've" + line "saved up ¥@" + text_ram wStringBuffer3 + text "." + + para "Want to start" + line "saving again?" + done + +MomOKIllSaveText: + text "OK. I'll save your" + line "money." + done + +MomPhoneStopSavingMoneyText: + text "OK. I'll stop" + line "saving your money." + done + +MomPhoneHangUpText: + text "<PLAYER>, keep it" + line "up! I'm rooting" + cont "for you, baby!" + done + +MomPhoneNoPokemonText: + text "Hello?" + + para "Oh, hi, <PLAYER>!" + line "Wasn't PROF.ELM" + cont "waiting for you?" + done + +MomPhoneNoPokedexText: + text "Hello?" + + para "Oh, hi, <PLAYER>!" + line "You're on a big" + + para "mission for PROF." + line "ELM? Be good!" + done + +MomPhoneNoGymQuestText: + text "Hello?" + + para "Hi, <PLAYER>! If" + line "you're done with" + + para "your errand come" + line "on home, dear." + done + +MomPhoneLectureText: + text "Hello?" + + para "…… <PLAYER>?" + line "I heard from PROF." + + para "ELM that you went" + line "on a long trip." + + para "I wish you would" + line "have told me…" + + para "What about money?" + line "Should I save it?" + done diff --git a/data/phone/text/trainers.asm b/data/phone/text/trainers.asm new file mode 100644 index 00000000..2a15811c --- /dev/null +++ b/data/phone/text/trainers.asm @@ -0,0 +1,355 @@ +PhoneMaleAnswerMornText: + text "Hello. This is" + line "@" + text_ram wStringBuffer3 + text "…" + + para "Good morning," + line "<PLAYER>!" + done + +PhoneMaleAnswerDayText: + text "Hello. This is" + line "@" + text_ram wStringBuffer3 + text "…" + + para "How's it going," + line "<PLAYER>?" + done + +PhoneMaleAnswerNiteText: + text "Hello. This is" + line "@" + text_ram wStringBuffer3 + text "…" + + para "Good evening," + line "<PLAYER>!" + done + +PhoneFemaleAnswerMornText: + text "Hi. This is" + line "@" + text_ram wStringBuffer3 + text "." + + para "Hi, <PLAYER>!" + line "Good morning." + done + +PhoneFemaleAnswerDayText: + text "Hi. This is" + line "@" + text_ram wStringBuffer3 + text "." + + para "Hi, <PLAYER>!" + line "How are you?" + done + +PhoneFemaleAnswerNiteText: + text "Hi. This is" + line "@" + text_ram wStringBuffer3 + text "." + + para "Hi, <PLAYER>!" + line "Good evening." + done + +PhoneMaleGreetMornText: + text "<PLAYER>, good" + line "morning!" + + para "It's me, @" + text_ram wStringBuffer3 + text "." + line "How are you doing?" + done + +PhoneMaleGreetDayText: + text "<PLAYER>, howdy!" + + para "It's me, @" + text_ram wStringBuffer3 + text "." + line "Isn't it nice out?" + done + +PhoneMaleGreetNiteText: + text "<PLAYER>, good" + line "evening!" + + para "It's me, @" + text_ram wStringBuffer3 + text "." + line "Got a minute?" + done + +PhoneFemaleGreetMornText: + text "Good morning," + line "<PLAYER>." + + para "This is @" + text_ram wStringBuffer3 + text "." + line "Did I wake you?" + done + +PhoneFemaleGreetDayText: + text "Hello, <PLAYER>." + + para "This is @" + text_ram wStringBuffer3 + text "." + line "How are things?" + done + +PhoneFemaleGreetNiteText: + text "Good evening," + line "<PLAYER>." + + para "This is @" + text_ram wStringBuffer3 + text "." + line "Were you awake?" + done + +PhoneMaleReallyEnergeticText: + text "How are your" + line "#MON doing?" + + para "My @" + text_ram wStringBuffer4 + text "'s" + line "really energetic." + cont "It's a handful!" + done + +PhoneFemaleTopShapeText: + text "How are your" + line "#MON doing?" + + para "I always keep my" + line "@" + text_ram wStringBuffer4 + text " in top" + + para "shape by going to" + line "#MON CENTERS." + done + +PhoneMaleLookingAwesomeText: + text "My @" + text_ram wStringBuffer4 + text "'s" + line "looking awesome." + + para "I wish I could" + line "show you." + done + +PhoneFemaleDressedUpText: + text "I dressed up my" + line "@" + text_ram wStringBuffer4 + text "." + + para "It looks even" + line "cuter than before." + done + +PhoneMaleManagedToBeatText: + text "Oh, yeah, I man-" + line "aged to beat a" + cont "tough @" + text_ram wStringBuffer4 + text "." + + para "I need to make my" + line "party stronger." + done + +PhoneFemaleTypeAdvantageText: + text "You have to hear" + line "this! I battled" + + para "@" + text_ram wStringBuffer4 + text " the" + line "other day." + + para "It was easy! I had" + line "a type advantage." + done + +PhoneMaleAlmostCaughtText: + text "Hey, listen!" + line "I almost caught" + + para "@" + text_ram wStringBuffer4 + text " the" + line "other day." + + para "Oh, it was soooo" + line "close too!" + done + +PhoneFemaleMissedCatchingText: + text "Guess what happen-" + line "ed the other day." + + para "I missed catching" + line "@" + text_ram wStringBuffer4 + text " again." + + para "Maybe I'm not very" + line "good at this…" + done + +PhoneMaleWantsToBattleText: + text "Want to battle?" + line "It's not going to" + + para "be a repeat of the" + line "last time we met." + + para "I'll be around" + line "@" + text_ram wStringBuffer5 + text "." + done + +PhoneFemaleWantsToBattleText: + text "Do you want to" + line "battle? I'm going" + cont "to win this time!" + + para "I'll be waiting" + line "for you around" + + para "@" + text_ram wStringBuffer5 + text "." + line "Look for me, OK?" + done + +PhoneWrongNumberKazText: + text "Hello? This is" + line "@" + text_ram wStringBuffer3 + text "…" + + para "Uh-oh… You're not" + line "KAZ! Sorry, wrong" + cont "number." + done + +PhoneWrongNumberAudreyText: + text "Hello, this is" + line "@" + text_ram wStringBuffer3 + text ". How are" + cont "you doing, AUDREY?" + + para "Huh? <PLAYER>?" + line "Oops! My mistake!" + done + +PhoneSeeYouLaterText: + text "See you later!" + done + +PhoneByeByeText: + text "Bye-bye!" + done + +PhoneSwarmGrassText: + text "You have to see" + line "this! It's wild!" + + para "A whole bunch of" + line "@" + text_ram wStringBuffer4 + text " have" + + para "shown up around" + line "@" + text_ram wStringBuffer5 + text "!" + done + +PhoneSwarmFishText: + text "It's amazing!" + + para "On @" + text_ram wStringBuffer5 + text "," + line "@" + text_ram wStringBuffer4 + text " are" + + para "biting like there" + line "is no tomorrow." + + para "<PLAYER>, bring" + line "your ROD, buddy!" + done + +PhoneSwarmCaveText: + text "A friend just told" + line "me this." + + para "He saw a lot of" + line "@" + text_ram wStringBuffer4 + text " in" + cont "@" + text_ram wStringBuffer5 + text "." + + para "<PLAYER>, you ought" + line "to go look." + done + +PhoneBugCatchingContestText: + text "They're holding" + line "the Bug-Catching" + + para "Contest today at" + line "the PARK." + + para "<PLAYER>, are you" + line "going to go?" + done + +IrwinRocketTakeoverRumorText: + text "<PLAYER>, did you" + line "know?" + + para "I hear GOLDENROD's" + line "RADIO TOWER was" + + para "taken over by TEAM" + line "ROCKET." + + para "But what exactly" + line "is TEAM ROCKET?" + done + +GinaRocketTakeoverRumorText: + text "<PLAYER>, did you" + line "hear the news?" + + para "TEAM ROCKET has" + line "taken over the" + + para "RADIO TOWER in" + line "GOLDENROD CITY." + + para "I wonder if the" + line "workers are OK…" + done diff --git a/data/phone/text/unused.asm b/data/phone/text/unused.asm new file mode 100644 index 00000000..cd1cf723 --- /dev/null +++ b/data/phone/text/unused.asm @@ -0,0 +1,3 @@ +UnusedPhoneText: + text "Good morning." + done diff --git a/data/text/std_text.asm b/data/text/std_text.asm new file mode 100644 index 00000000..4c57e2e6 --- /dev/null +++ b/data/text/std_text.asm @@ -0,0 +1,422 @@ +NurseMornText: + text "Good morning!" + line "Welcome to our" + cont "#MON CENTER." + done + +NurseDayText: + text "Hello!" + line "Welcome to our" + cont "#MON CENTER." + done + +NurseNiteText: + text "Good evening!" + line "You're out late." + + para "Welcome to our" + line "#MON CENTER." + done + +NurseAskHealText: + text "We can heal your" + line "#MON to perfect" + cont "health." + + para "Shall we heal your" + line "#MON?" + done + +NurseTakePokemonText: + text "OK, may I see your" + line "#MON?" + done + +NurseReturnPokemonText: + text "Thank you for" + line "waiting." + + para "Your #MON are" + line "fully healed." + done + +NurseGoodbyeText: + text "We hope to see you" + line "again." + done + +; not used + text "We hope to see you" + line "again." + done + +NursePokerusText: + text "Your #MON ap-" + line "pear to have tiny" + + para "life forms stuck" + line "to them." + + para "Your #MON are" + line "healthy and seem" + cont "to be fine." + + para "But we can't tell" + line "you anything more" + + para "at a #MON" + line "CENTER." + done + +DifficultBookshelfText: + text "It's full of" + line "difficult books." + done + +PictureBookshelfText: + text "A whole collection" + line "of #MON picture" + cont "books!" + done + +MagazineBookshelfText: + text "#MON magazines…" + line "#MON PAL," + + para "#MON HANDBOOK," + line "#MON GRAPH…" + done + +TeamRocketOathText: + text "TEAM ROCKET OATH" + + para "Steal #MON for" + line "profit!" + + para "Exploit #MON" + line "for profit!" + + para "All #MON exist" + line "for the glory of" + cont "TEAM ROCKET!" + done + +IncenseBurnerText: + text "What is this?" + + para "Oh, it's an" + line "incense burner!" + done + +MerchandiseShelfText: + text "Lots of #MON" + line "merchandise!" + done + +LookTownMapText: + text "It's the TOWN MAP." + done + +WindowText: + text "My reflection!" + line "Lookin' good!" + done + +TVText: + text "It's a TV." + done + +HomepageText: + text "#MON JOURNAL" + line "HOME PAGE…" + + para "It hasn't been" + line "updated…" + done + +; not used + text "#MON RADIO!" + + para "Call in with your" + line "requests now!" + done + +TrashCanText: + text "There's nothing in" + line "here…" + done + +; not used + text "A #MON may be" + line "able to move this." + done + +; not used + text "Maybe a #MON" + line "can break this." + done + +PokecenterSignText: + text "Heal Your #MON!" + line "#MON CENTER" + done + +MartSignText: + text "For All Your" + line "#MON Needs" + + para "#MON MART" + done + +ContestResults_ReadyToJudgeText: + text "We will now judge" + line "the #MON you've" + cont "caught." + + para "<……>" + line "<……>" + + para "We have chosen the" + line "winners!" + + para "Are you ready for" + line "this?" + done + +AskNumber1MText: + text "Wow! You're pretty" + line "tough." + + para "Could I get your" + line "phone number?" + + para "I'll call you for" + line "a rematch." + done + +AskNumber2MText: + text "Register the phone" + line "number?" + done + +RegisteredNumberMText: + text "<PLAYER> registered" + line "@" + text_ram wStringBuffer3 + text "'s number." + done + +NumberAcceptedMText: + text "I'll call you if" + line "anything comes up." + done + +NumberDeclinedMText: + text "Oh, OK…" + line "Just talk to me if" + + para "you want to get my" + line "phone number." + done + +PhoneFullMText: + text "Your phone doesn't" + line "have enough memory" + cont "for more numbers." + done + +RematchMText: + text "I was waiting for" + line "you. Let's battle!" + done + +AskNumber1FText: + text "Wow, you're good" + line "at battling." + + para "Want to give me" + line "your phone number?" + + para "I'll phone you for" + line "another battle." + done + +AskNumber2FText: + text "Register the phone" + line "number?" + done + +RegisteredNumberFText: + text "<PLAYER> registered" + line "@" + text_ram wStringBuffer3 + text "'s number." + done + +NumberAcceptedFText: + text "I'll call you if" + line "something's up." + done + +NumberDeclinedFText: + text "Oh, fine then…" + line "If you want to get" + + para "my phone number," + line "just tell me." + done + +PhoneFullFText: + text "Your phone doesn't" + line "have enough memory" + cont "for more numbers." + done + +RematchFText: + text "I waited for you." + line "Let's battle!" + done + +ContestResults_PlayerWonAPrizeText: + text "<PLAYER> wins the" + line "No. @" + text_ram wStringBuffer3 + text " prize," + cont "a @" + text_ram wStringBuffer4 + text "!" + done + +ReceivedItemText: + text "<PLAYER> received" + line "@" + text_ram wStringBuffer4 + text "." + done + +ContestResults_JoinUsNextTimeText: + text "Please join us for" + line "the next Contest!" + done + +ContestResults_ConsolationPrizeText: + text "Everyone else gets" + line "a BERRY as a con-" + cont "solation prize!" + done + +ContestResults_DidNotWinText: + text "We hope you do" + line "better next time." + done + +ContestResults_ReturnPartyText: + text "We'll return the" + line "#MON we kept" + + para "for you." + line "Here you go!" + done + +ContestResults_PartyFullText: + text "Your party's full," + line "so the #MON was" + + para "sent to your BOX" + line "in BILL's PC." + done + +GymStatue_CityGymText: + text_ram wStringBuffer3 + text_start + line "#MON GYM" + done + +GymStatue_WinningTrainersText: + text "LEADER: @" + text_ram wStringBuffer4 + text_start + para "WINNING TRAINERS:" + line "<PLAYER>" + done + +CoinVendor_WelcomeText: + text "Welcome to the" + line "GAME CORNER." + done + +CoinVendor_NoCoinCaseText: + text "Do you need game" + line "coins?" + + para "Oh, you don't have" + line "a COIN CASE for" + cont "your coins." + done + +CoinVendor_IntroText: + text "Do you need some" + line "game coins?" + + para "It costs ¥1000 for" + line "50 coins. Do you" + cont "want some?" + done + +CoinVendor_Buy50CoinsText: + text "Thank you!" + line "Here are 50 coins." + done + +CoinVendor_Buy500CoinsText: + text "Thank you! Here" + line "are 500 coins." + done + +CoinVendor_NotEnoughMoneyText: + text "You don't have" + line "enough money." + done + +CoinVendor_CoinCaseFullText: + text "Whoops! Your COIN" + line "CASE is full." + done + +CoinVendor_CancelText: + text "No coins for you?" + line "Come again!" + done + +BugContestPrizeNoRoomText: + text "Oh? Your PACK is" + line "full." + + para "We'll keep this" + line "for you today, so" + + para "come back when you" + line "make room for it." + done + +HappinessText3: + text "Wow! You and your" + line "#MON are really" + cont "close!" + done + +HappinessText2: + text "#MON get more" + line "friendly if you" + + para "spend time with" + line "them." + done + +HappinessText1: + text "You haven't tamed" + line "your #MON." + + para "If you aren't" + line "nice, it'll pout." + done diff --git a/engine/events/std_scripts.asm b/engine/events/std_scripts.asm new file mode 100644 index 00000000..bdc90c55 --- /dev/null +++ b/engine/events/std_scripts.asm @@ -0,0 +1,774 @@ +StdScripts:: +; entries correspond to constants/std_constants.asm + dba PokecenterNurseScript + dba DifficultBookshelfScript + dba PictureBookshelfScript + dba MagazineBookshelfScript + dba TeamRocketOathScript + dba IncenseBurnerScript + dba MerchandiseShelfScript + dba TownMapScript + dba WindowScript + dba TVScript + dba HomepageScript + dba Radio1Script + dba Radio2Script + dba TrashCanScript + dba StrengthBoulderScript + dba SmashRockScript + dba PokecenterSignScript + dba MartSignScript + dba GoldenrodRocketsScript + dba RadioTowerRocketsScript + dba ElevatorButtonScript + dba DayToTextScript + dba BugContestResultsWarpScript + dba BugContestResultsScript + dba InitializeEventsScript + dba AskNumber1MScript + dba AskNumber2MScript + dba RegisteredNumberMScript + dba NumberAcceptedMScript + dba NumberDeclinedMScript + dba PhoneFullMScript + dba RematchMScript + dba AskNumber1FScript + dba AskNumber2FScript + dba RegisteredNumberFScript + dba NumberAcceptedFScript + dba NumberDeclinedFScript + dba PhoneFullFScript + dba RematchFScript + dba GymStatue1Script + dba GymStatue2Script + dba ReceiveItemScript + dba ReceiveTogepiEggScript + dba PCScript + dba GameCornerCoinVendorScript + dba HappinessCheckScript + +PokecenterNurseScript: + opentext + checktime MORN + iftrue .morn + checktime DAY + iftrue .day + checktime NITE + iftrue .nite + sjump .ok + +.morn + writetext NurseMornText + promptbutton + sjump .ok + +.day + writetext NurseDayText + promptbutton + sjump .ok + +.nite + writetext NurseNiteText + promptbutton + sjump .ok + +.ok + writetext NurseAskHealText + yesorno + iffalse .done + + writetext NurseTakePokemonText + pause 20 + turnobject LAST_TALKED, LEFT + pause 10 + special HealParty + playmusic MUSIC_NONE + setval HEALMACHINE_POKECENTER + special HealMachineAnim + pause 30 + special RestartMapMusic + turnobject LAST_TALKED, DOWN + pause 10 + + checkphonecall ; elm already called about pokerus + iftrue .no + checkflag ENGINE_CAUGHT_POKERUS + iftrue .no + special CheckPokerus + iftrue .pokerus +.no + writetext NurseReturnPokemonText + pause 20 + +.done + writetext NurseGoodbyeText + + turnobject LAST_TALKED, UP + pause 10 + turnobject LAST_TALKED, DOWN + pause 10 + + waitbutton + closetext + end + +.pokerus + writetext NursePokerusText + waitbutton + closetext + setflag ENGINE_CAUGHT_POKERUS + specialphonecall SPECIALCALL_POKERUS + end + +DifficultBookshelfScript: + jumptext DifficultBookshelfText + +PictureBookshelfScript: + jumptext PictureBookshelfText + +MagazineBookshelfScript: + jumptext MagazineBookshelfText + +TeamRocketOathScript: + jumptext TeamRocketOathText + +IncenseBurnerScript: + jumptext IncenseBurnerText + +MerchandiseShelfScript: + jumptext MerchandiseShelfText + +TownMapScript: + opentext + writetext LookTownMapText + waitbutton + special OverworldTownMap + closetext + end + +WindowScript: + jumptext WindowText + +TVScript: + opentext + writetext TVText + waitbutton + closetext + end + +HomepageScript: + jumptext HomepageText + +Radio1Script: + opentext + setval MAPRADIO_POKEMON_CHANNEL + special MapRadio + closetext + end + +Radio2Script: +; Lucky Channel + opentext + setval MAPRADIO_LUCKY_CHANNEL + special MapRadio + closetext + end + +TrashCanScript: + jumptext TrashCanText + +PCScript: + opentext + special PokemonCenterPC + closetext + end + +ElevatorButtonScript: + playsound SFX_READ_TEXT_2 + pause 15 + playsound SFX_ELEVATOR_END + end + +StrengthBoulderScript: + farsjump AskStrengthScript + +SmashRockScript: + farsjump AskRockSmashScript + +PokecenterSignScript: + jumptext PokecenterSignText + +MartSignScript: + jumptext MartSignText + +DayToTextScript: + readvar VAR_WEEKDAY + ifequal MONDAY, .Monday + ifequal TUESDAY, .Tuesday + ifequal WEDNESDAY, .Wednesday + ifequal THURSDAY, .Thursday + ifequal FRIDAY, .Friday + ifequal SATURDAY, .Saturday + getstring STRING_BUFFER_3, .SundayText + end +.Monday: + getstring STRING_BUFFER_3, .MondayText + end +.Tuesday: + getstring STRING_BUFFER_3, .TuesdayText + end +.Wednesday: + getstring STRING_BUFFER_3, .WednesdayText + end +.Thursday: + getstring STRING_BUFFER_3, .ThursdayText + end +.Friday: + getstring STRING_BUFFER_3, .FridayText + end +.Saturday: + getstring STRING_BUFFER_3, .SaturdayText + end +.SundayText: + db "SUNDAY@" +.MondayText: + db "MONDAY@" +.TuesdayText: + db "TUESDAY@" +.WednesdayText: + db "WEDNESDAY@" +.ThursdayText: + db "THURSDAY@" +.FridayText: + db "FRIDAY@" +.SaturdayText: + db "SATURDAY@" + +GoldenrodRocketsScript: + clearevent EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER + end + +RadioTowerRocketsScript: + setflag ENGINE_ROCKETS_IN_RADIO_TOWER + setevent EVENT_GOLDENROD_CITY_CIVILIANS + setevent EVENT_RADIO_TOWER_BLACKBELT_BLOCKS_STAIRS + clearevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER + clearevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER + setevent EVENT_MAHOGANY_TOWN_POKEFAN_M_BLOCKS_EAST + specialphonecall SPECIALCALL_WEIRDBROADCAST + setmapscene MAHOGANY_TOWN, SCENE_FINISHED + end + +BugContestResultsWarpScript: + special ClearBGPalettes + scall BugContestResults_CopyContestantsToResults + setevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_CONTEST_DAY + clearevent EVENT_ROUTE_36_NATIONAL_PARK_GATE_OFFICER_NOT_CONTEST_DAY + setevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE + warp ROUTE_36_NATIONAL_PARK_GATE, 0, 4 + applymovement PLAYER, Movement_ContestResults_WalkAfterWarp + +BugContestResultsScript: + clearflag ENGINE_BUG_CONTEST_TIMER + clearevent EVENT_WARPED_FROM_ROUTE_35_NATIONAL_PARK_GATE + clearevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE + clearevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE + clearevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY + clearevent EVENT_CONTEST_OFFICER_HAS_BERRY + opentext + writetext ContestResults_ReadyToJudgeText + waitbutton + special BugContestJudging + getnum STRING_BUFFER_3 + ifequal 1, BugContestResults_FirstPlace + ifequal 2, BugContestResults_SecondPlace + ifequal 3, BugContestResults_ThirdPlace + writetext ContestResults_ConsolationPrizeText + promptbutton + waitsfx + verbosegiveitem BERRY + iffalse BugContestResults_NoRoomForBerry + +BugContestResults_DidNotWin: + writetext ContestResults_DidNotWinText + promptbutton + sjump BugContestResults_FinishUp + +BugContestResults_ReturnAfterWinnersPrize: + writetext ContestResults_JoinUsNextTimeText + promptbutton + +BugContestResults_FinishUp: + checkevent EVENT_LEFT_MONS_WITH_CONTEST_OFFICER + iffalse BugContestResults_DidNotLeaveMons + writetext ContestResults_ReturnPartyText + waitbutton + special ContestReturnMons +BugContestResults_DidNotLeaveMons: + special CheckPartyFullAfterContest + ifequal BUGCONTEST_CAUGHT_MON, BugContestResults_CleanUp + ifequal BUGCONTEST_NO_CATCH, BugContestResults_CleanUp + ; BUGCONTEST_BOXED_MON + writetext ContestResults_PartyFullText + waitbutton +BugContestResults_CleanUp: + closetext + setscene SCENE_ROUTE36NATIONALPARKGATE_NOTHING + setmapscene ROUTE_35_NATIONAL_PARK_GATE, SCENE_ROUTE35NATIONALPARKGATE_NOTHING + setevent EVENT_BUG_CATCHING_CONTESTANT_1A + setevent EVENT_BUG_CATCHING_CONTESTANT_2A + setevent EVENT_BUG_CATCHING_CONTESTANT_3A + setevent EVENT_BUG_CATCHING_CONTESTANT_4A + setevent EVENT_BUG_CATCHING_CONTESTANT_5A + setevent EVENT_BUG_CATCHING_CONTESTANT_6A + setevent EVENT_BUG_CATCHING_CONTESTANT_7A + setevent EVENT_BUG_CATCHING_CONTESTANT_8A + setevent EVENT_BUG_CATCHING_CONTESTANT_9A + setevent EVENT_BUG_CATCHING_CONTESTANT_10A + setevent EVENT_BUG_CATCHING_CONTESTANT_1B + setevent EVENT_BUG_CATCHING_CONTESTANT_2B + setevent EVENT_BUG_CATCHING_CONTESTANT_3B + setevent EVENT_BUG_CATCHING_CONTESTANT_4B + setevent EVENT_BUG_CATCHING_CONTESTANT_5B + setevent EVENT_BUG_CATCHING_CONTESTANT_6B + setevent EVENT_BUG_CATCHING_CONTESTANT_7B + setevent EVENT_BUG_CATCHING_CONTESTANT_8B + setevent EVENT_BUG_CATCHING_CONTESTANT_9B + setevent EVENT_BUG_CATCHING_CONTESTANT_10B + setflag ENGINE_DAILY_BUG_CONTEST + special PlayMapMusic + end + +BugContestResults_FirstPlace: + setevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_1 + getitemname STRING_BUFFER_4, SUN_STONE + writetext ContestResults_PlayerWonAPrizeText + waitbutton + verbosegiveitem SUN_STONE + iffalse BugContestResults_NoRoomForSunStone + sjump BugContestResults_ReturnAfterWinnersPrize + +BugContestResults_SecondPlace: + getitemname STRING_BUFFER_4, EVERSTONE + writetext ContestResults_PlayerWonAPrizeText + waitbutton + verbosegiveitem EVERSTONE + iffalse BugContestResults_NoRoomForEverstone + sjump BugContestResults_ReturnAfterWinnersPrize + +BugContestResults_ThirdPlace: + getitemname STRING_BUFFER_4, GOLD_BERRY + writetext ContestResults_PlayerWonAPrizeText + waitbutton + verbosegiveitem GOLD_BERRY + iffalse BugContestResults_NoRoomForGoldBerry + sjump BugContestResults_ReturnAfterWinnersPrize + +BugContestResults_NoRoomForSunStone: + writetext BugContestPrizeNoRoomText + promptbutton + setevent EVENT_CONTEST_OFFICER_HAS_SUN_STONE + sjump BugContestResults_ReturnAfterWinnersPrize + +BugContestResults_NoRoomForEverstone: + writetext BugContestPrizeNoRoomText + promptbutton + setevent EVENT_CONTEST_OFFICER_HAS_EVERSTONE + sjump BugContestResults_ReturnAfterWinnersPrize + +BugContestResults_NoRoomForGoldBerry: + writetext BugContestPrizeNoRoomText + promptbutton + setevent EVENT_CONTEST_OFFICER_HAS_GOLD_BERRY + sjump BugContestResults_ReturnAfterWinnersPrize + +BugContestResults_NoRoomForBerry: + writetext BugContestPrizeNoRoomText + promptbutton + setevent EVENT_CONTEST_OFFICER_HAS_BERRY + sjump BugContestResults_DidNotWin + +BugContestResults_CopyContestantsToResults: + checkevent EVENT_BUG_CATCHING_CONTESTANT_1A + iftrue .skip1 + clearevent EVENT_BUG_CATCHING_CONTESTANT_1B +.skip1 + checkevent EVENT_BUG_CATCHING_CONTESTANT_2A + iftrue .skip2 + clearevent EVENT_BUG_CATCHING_CONTESTANT_2B +.skip2 + checkevent EVENT_BUG_CATCHING_CONTESTANT_3A + iftrue .skip3 + clearevent EVENT_BUG_CATCHING_CONTESTANT_3B +.skip3 + checkevent EVENT_BUG_CATCHING_CONTESTANT_4A + iftrue .skip4 + clearevent EVENT_BUG_CATCHING_CONTESTANT_4B +.skip4 + checkevent EVENT_BUG_CATCHING_CONTESTANT_5A + iftrue .skip5 + clearevent EVENT_BUG_CATCHING_CONTESTANT_5B +.skip5 + checkevent EVENT_BUG_CATCHING_CONTESTANT_6A + iftrue .skip6 + clearevent EVENT_BUG_CATCHING_CONTESTANT_6B +.skip6 + checkevent EVENT_BUG_CATCHING_CONTESTANT_7A + iftrue .skip7 + clearevent EVENT_BUG_CATCHING_CONTESTANT_7B +.skip7 + checkevent EVENT_BUG_CATCHING_CONTESTANT_8A + iftrue .skip8 + clearevent EVENT_BUG_CATCHING_CONTESTANT_8B +.skip8 + checkevent EVENT_BUG_CATCHING_CONTESTANT_9A + iftrue .skip9 + clearevent EVENT_BUG_CATCHING_CONTESTANT_9B +.skip9 + checkevent EVENT_BUG_CATCHING_CONTESTANT_10A + iftrue .skip10 + clearevent EVENT_BUG_CATCHING_CONTESTANT_10B +.skip10 + end + +InitializeEventsScript: + setevent EVENT_EARLS_ACADEMY_EARL + setevent EVENT_RADIO_TOWER_ROCKET_TAKEOVER + setevent EVENT_GOLDENROD_CITY_ROCKET_TAKEOVER + setevent EVENT_RADIO_TOWER_CIVILIANS_AFTER + setevent EVENT_ILEX_FOREST_APPRENTICE + setevent EVENT_ILEX_FOREST_FARFETCHD1 + setevent EVENT_ILEX_FOREST_FARFETCHD2 + setevent EVENT_ILEX_FOREST_FARFETCHD3 + setevent EVENT_ILEX_FOREST_FARFETCHD4 + setevent EVENT_ILEX_FOREST_FARFETCHD5 + setevent EVENT_ILEX_FOREST_FARFETCHD6 + setevent EVENT_ILEX_FOREST_FARFETCHD7 + setevent EVENT_ILEX_FOREST_FARFETCHD8 + setevent EVENT_ILEX_FOREST_FARFETCHD9 + setevent EVENT_ILEX_FOREST_FARFETCHD10 + setevent EVENT_ILEX_FOREST_CHARCOAL_MASTER + setevent EVENT_MAHOGANY_MART_LANCE_AND_DRAGONITE + setevent EVENT_TEAM_ROCKET_BASE_B2F_GRUNT_WITH_EXECUTIVE + setevent EVENT_TEAM_ROCKET_BASE_B2F_EXECUTIVE + setevent EVENT_TEAM_ROCKET_BASE_B2F_DRAGONITE + setevent EVENT_RIVAL_TEAM_ROCKET_BASE + setevent EVENT_BLACKTHORN_CITY_SUPER_NERD_DOES_NOT_BLOCK_GYM + setevent EVENT_USED_THE_CARD_KEY_IN_THE_RADIO_TOWER + setevent EVENT_RIVAL_CHERRYGROVE_CITY + setevent EVENT_RIVAL_AZALEA_TOWN + setevent EVENT_RIVAL_GOLDENROD_UNDERGROUND + setevent EVENT_AZALEA_TOWN_SLOWPOKES + setevent EVENT_KURTS_HOUSE_SLOWPOKE + setevent EVENT_GUIDE_GENT_VISIBLE_IN_CHERRYGROVE + setevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER + setevent EVENT_COP_IN_ELMS_LAB + setevent EVENT_RUINS_OF_ALPH_OUTSIDE_SCIENTIST + setevent EVENT_RUINS_OF_ALPH_RESEARCH_CENTER_SCIENTIST + setevent EVENT_BOULDER_IN_ICE_PATH_1A + setevent EVENT_BOULDER_IN_ICE_PATH_2A + setevent EVENT_BOULDER_IN_ICE_PATH_3A + setevent EVENT_BOULDER_IN_ICE_PATH_4A + setevent EVENT_ROUTE_30_YOUNGSTER_JOEY + setevent EVENT_BUG_CATCHING_CONTESTANT_1A + setevent EVENT_BUG_CATCHING_CONTESTANT_2A + setevent EVENT_BUG_CATCHING_CONTESTANT_3A + setevent EVENT_BUG_CATCHING_CONTESTANT_4A + setevent EVENT_BUG_CATCHING_CONTESTANT_5A + setevent EVENT_BUG_CATCHING_CONTESTANT_6A + setevent EVENT_BUG_CATCHING_CONTESTANT_7A + setevent EVENT_BUG_CATCHING_CONTESTANT_8A + setevent EVENT_BUG_CATCHING_CONTESTANT_9A + setevent EVENT_BUG_CATCHING_CONTESTANT_10A + setevent EVENT_BUG_CATCHING_CONTESTANT_1B + setevent EVENT_BUG_CATCHING_CONTESTANT_2B + setevent EVENT_BUG_CATCHING_CONTESTANT_3B + setevent EVENT_BUG_CATCHING_CONTESTANT_4B + setevent EVENT_BUG_CATCHING_CONTESTANT_5B + setevent EVENT_BUG_CATCHING_CONTESTANT_6B + setevent EVENT_BUG_CATCHING_CONTESTANT_7B + setevent EVENT_BUG_CATCHING_CONTESTANT_8B + setevent EVENT_BUG_CATCHING_CONTESTANT_9B + setevent EVENT_BUG_CATCHING_CONTESTANT_10B + setevent EVENT_FAST_SHIP_1F_GENTLEMAN + setevent EVENT_FAST_SHIP_B1F_SAILOR_RIGHT + setevent EVENT_FAST_SHIP_CABINS_NNW_NNE_NE_SAILOR + setevent EVENT_LAKE_OF_RAGE_CIVILIANS + setevent EVENT_MAHOGANY_MART_OWNERS + setevent EVENT_TIN_TOWER_ROOF_HO_OH + setevent EVENT_WHIRL_ISLAND_LUGIA_CHAMBER_LUGIA + setevent EVENT_PLAYERS_HOUSE_2F_CONSOLE + setevent EVENT_PLAYERS_HOUSE_2F_DOLL_1 + setevent EVENT_PLAYERS_HOUSE_2F_DOLL_2 + setevent EVENT_PLAYERS_HOUSE_2F_BIG_DOLL + setevent EVENT_DECO_BED_1 + setevent EVENT_DECO_POSTER_1 + setevent EVENT_GOLDENROD_TRAIN_STATION_GENTLEMAN + setevent EVENT_OLIVINE_GYM_JASMINE + setevent EVENT_BLACKTHORN_CITY_GRAMPS_NOT_BLOCKING_DRAGONS_DEN + setevent EVENT_MET_BILL + setevent EVENT_ECRUTEAK_POKE_CENTER_BILL + setevent EVENT_MYSTERY_GIFT_DELIVERY_GUY + setevent EVENT_LAKE_OF_RAGE_LANCE + setevent EVENT_GOLDENROD_DEPT_STORE_B1F_LAYOUT_1 + setevent EVENT_GOLDENROD_UNDERGROUND_WAREHOUSE_BLOCKED_OFF + setevent EVENT_DRAGONS_DEN_CLAIR + setevent EVENT_RIVAL_OLIVINE_CITY + setevent EVENT_RIVAL_VICTORY_ROAD + setevent EVENT_RIVAL_DRAGONS_DEN + setevent EVENT_LANCES_ROOM_OAK_AND_MARY + setevent EVENT_FAST_SHIP_CABINS_SE_SSE_CAPTAINS_CABIN_TWIN_1 + setevent EVENT_BURNED_TOWER_B1F_BEASTS_1 + setevent EVENT_RED_IN_MT_SILVER + setevent EVENT_OLIVINE_PORT_SPRITES_AFTER_HALL_OF_FAME + setevent EVENT_FAST_SHIP_PASSENGERS_EASTBOUND + setevent EVENT_FAST_SHIP_PASSENGERS_WESTBOUND + setevent EVENT_OLIVINE_PORT_PASSAGE_POKEFAN_M + setevent EVENT_KURTS_HOUSE_KURT_2 + setevent EVENT_BURNED_TOWER_FIREBREATHER_DICK_ASHES + setevent EVENT_RANG_CLEAR_BELL_1 ; ? + setevent EVENT_PLAYERS_HOUSE_MOM_2 + setflag ENGINE_ROCKET_SIGNAL_ON_CH20 + setflag ENGINE_ROCKETS_IN_MAHOGANY + variablesprite SPRITE_WEIRD_TREE, SPRITE_SUDOWOODO + variablesprite SPRITE_OLIVINE_RIVAL, SPRITE_SILVER + variablesprite SPRITE_AZALEA_ROCKET, SPRITE_ROCKET + variablesprite SPRITE_FUCHSIA_GYM_1, SPRITE_JANINE + variablesprite SPRITE_FUCHSIA_GYM_2, SPRITE_JANINE + variablesprite SPRITE_FUCHSIA_GYM_3, SPRITE_JANINE + variablesprite SPRITE_FUCHSIA_GYM_4, SPRITE_JANINE + variablesprite SPRITE_COPYCAT, SPRITE_LASS + variablesprite SPRITE_JANINE_IMPERSONATOR, SPRITE_LASS + setevent EVENT_FOUND_MACHINE_PART_IN_CERULEAN_GYM + setevent EVENT_CERULEAN_GYM_ROCKET + setevent EVENT_ROUTE_24_ROCKET + setevent EVENT_ROUTE_25_MISTY_BOYFRIEND + setevent EVENT_TRAINERS_IN_CERULEAN_GYM + setevent EVENT_COPYCATS_HOUSE_2F_DOLL + setevent EVENT_VIRIDIAN_GYM_BLUE + setevent EVENT_SEAFOAM_GYM_GYM_GUY + setevent EVENT_MT_MOON_SQUARE_CLEFAIRY + setevent EVENT_SAFFRON_TRAIN_STATION_POPULATION + setevent EVENT_INDIGO_PLATEAU_POKECENTER_RIVAL + setevent EVENT_INITIALIZED_EVENTS + return + +AskNumber1MScript: + writetext AskNumber1MText + end + +AskNumber2MScript: + writetext AskNumber2MText + end + +RegisteredNumberMScript: + writetext RegisteredNumberMText + playsound SFX_REGISTER_PHONE_NUMBER + waitsfx + promptbutton + end + +NumberAcceptedMScript: + writetext NumberAcceptedMText + waitbutton + closetext + end + +NumberDeclinedMScript: + writetext NumberDeclinedMText + waitbutton + closetext + end + +PhoneFullMScript: + writetext PhoneFullMText + waitbutton + closetext + end + +RematchMScript: + writetext RematchMText + waitbutton + closetext + end + +AskNumber1FScript: + writetext AskNumber1FText + end + +AskNumber2FScript: + writetext AskNumber2FText + end + +RegisteredNumberFScript: + writetext RegisteredNumberFText + playsound SFX_REGISTER_PHONE_NUMBER + waitsfx + promptbutton + end + +NumberAcceptedFScript: + writetext NumberAcceptedFText + waitbutton + closetext + end + +NumberDeclinedFScript: + writetext NumberDeclinedFText + waitbutton + closetext + end + +PhoneFullFScript: + writetext PhoneFullFText + waitbutton + closetext + end + +RematchFScript: + writetext RematchFText + waitbutton + closetext + end + +GymStatue1Script: + getcurlandmarkname STRING_BUFFER_3 + opentext + writetext GymStatue_CityGymText + waitbutton + closetext + end + +GymStatue2Script: + getcurlandmarkname STRING_BUFFER_3 + opentext + writetext GymStatue_CityGymText + promptbutton + writetext GymStatue_WinningTrainersText + waitbutton + closetext + end + +ReceiveItemScript: + waitsfx + writetext ReceivedItemText + playsound SFX_ITEM + waitsfx + end + +ReceiveTogepiEggScript: + waitsfx + writetext ReceivedItemText + playsound SFX_GET_EGG + waitsfx + end + +GameCornerCoinVendorScript: + faceplayer + opentext + writetext CoinVendor_WelcomeText + promptbutton + checkitem COIN_CASE + iftrue CoinVendor_IntroScript + writetext CoinVendor_NoCoinCaseText + waitbutton + closetext + end + +CoinVendor_IntroScript: + writetext CoinVendor_IntroText + +.loop + special DisplayMoneyAndCoinBalance + loadmenu .MenuHeader + verticalmenu + closewindow + ifequal 1, .Buy50 + ifequal 2, .Buy500 + sjump .Cancel + +.Buy50: + checkcoins MAX_COINS - 50 + ifequal HAVE_MORE, .CoinCaseFull + checkmoney YOUR_MONEY, 1000 + ifequal HAVE_LESS, .NotEnoughMoney + givecoins 50 + takemoney YOUR_MONEY, 1000 + waitsfx + playsound SFX_TRANSACTION + writetext CoinVendor_Buy50CoinsText + waitbutton + sjump .loop + +.Buy500: + checkcoins MAX_COINS - 500 + ifequal HAVE_MORE, .CoinCaseFull + checkmoney YOUR_MONEY, 10000 + ifequal HAVE_LESS, .NotEnoughMoney + givecoins 500 + takemoney YOUR_MONEY, 10000 + waitsfx + playsound SFX_TRANSACTION + writetext CoinVendor_Buy500CoinsText + waitbutton + sjump .loop + +.NotEnoughMoney: + writetext CoinVendor_NotEnoughMoneyText + waitbutton + closetext + end + +.CoinCaseFull: + writetext CoinVendor_CoinCaseFullText + waitbutton + closetext + end + +.Cancel: + writetext CoinVendor_CancelText + waitbutton + closetext + end + +.MenuHeader: + db MENU_BACKUP_TILES ; flags + menu_coords 0, 4, 15, TEXTBOX_Y - 1 + dw .MenuData + db 1 ; default option + +.MenuData: + db STATICMENU_CURSOR ; flags + db 3 ; items + db " 50 : ¥1000@" + db "500 : ¥10000@" + db "CANCEL@" + +HappinessCheckScript: + faceplayer + opentext + special GetFirstPokemonHappiness + ifless 50, .Unhappy + ifless 150, .KindaHappy + writetext HappinessText3 + waitbutton + closetext + end + +.KindaHappy: + writetext HappinessText2 + waitbutton + closetext + end + +.Unhappy: + writetext HappinessText1 + waitbutton + closetext + end + +Movement_ContestResults_WalkAfterWarp: + step RIGHT + step DOWN + turn_head UP + step_end diff --git a/engine/movie/gamefreak_presents.asm b/engine/movie/gamefreak_presents.asm index 2676c9f6..f4c2c5cc 100644 --- a/engine/movie/gamefreak_presents.asm +++ b/engine/movie/gamefreak_presents.asm @@ -1,41 +1,30 @@ -Copyright_GFPresents: ; e49a8 (39:49a8) +Copyright_GFPresents: ; Play the copyright screen and GameFreak Presents sequence. ; Return carry if user cancels animation by pressing a button. call ClearBGPalettes call ClearTilemap - ld a, HIGH(vBGMap0) ldh [hBGMapAddress + 1], a xor a ; LOW(vBGMap0) ldh [hBGMapAddress], a - ldh [hJoyDown], a ldh [hSCX], a ldh [hSCY], a - ld a, SCREEN_HEIGHT_PX ldh [hWY], a - call WaitBGMap - ld b, SCGB_GAMEFREAK_LOGO call GetSGBLayout - call SetPalettes - ld c, 10 call DelayFrames - callfar Copyright - call WaitBGMap - ld c, 100 call DelayFrames - call ClearTilemap - call GFPresents_Init + call .GetGFLogoGFX .loop call GFPresents_PlayFrame @@ -55,7 +44,7 @@ Copyright_GFPresents: ; e49a8 (39:49a8) scf ret -GFPresents_Init: ; e49f3 (39:49f3) +.GetGFLogoGFX: ; Load gfx and initialize variables ld de, GFPresentsGFX1 @@ -75,25 +64,21 @@ GFPresents_Init: ; e49f3 (39:49f3) ld [hli], a ld a, $8d ld [hl], a - xor a ld [wJumptableIndex], a - ld [$ce64], a + ld [wIntroSceneFrameCounter], a ld [wIntroSceneTimer], a ldh [hSCX], a ldh [hSCY], a - ld a, 1 ldh [hBGMapMode], a - ld a, SCREEN_HEIGHT_PX ldh [hWY], a - lb de, %00100100, %11111000 call DmgToCgbObjPals ret -GFPresents_PlayFrame: ; e4a37 (39:4a37) +GFPresents_PlayFrame: ; Play one frame of GFPresents sequence. ; Return carry when the sequence completes or is canceled. @@ -133,7 +118,7 @@ GFPresents_PlayFrame: ; e4a37 (39:4a37) scf ret -GFPresents_HandleFrame: ; e4a6d (39:4a6d) +GFPresents_HandleFrame: ; Dispatch to the current scene handler ld a, [wJumptableIndex] @@ -155,26 +140,26 @@ GFPresents_HandleFrame: ; e4a6d (39:4a6d) dw GFPresents_WaitForTimer dw GFPresents_SetDoneFlag -GFPresents_NextScene: ; e4a88 (39:4a88) +GFPresents_NextScene: ld hl, wJumptableIndex inc [hl] ret ; unused? -Func_e4a8d: ; e4a8d (39:4a8d) +Functione4a8d: ld c, 64 call DelayFrames call GFPresents_NextScene ret -GFPresents_Star: ; e4a96 (39:4a96) +GFPresents_Star: ; tell GFPresents_PlaceLogo we haven't finished yet xor a - ld [$ce64], a + ld [wIntroSceneFrameCounter], a depixel 10, 11, 4, 0 - ld a, $16 + ld a, SPRITE_ANIM_INDEX_GS_INTRO_STAR call InitSpriteAnimStruct ; TODO set some flag in the struct? @@ -188,17 +173,17 @@ GFPresents_Star: ; e4a96 (39:4a96) call GFPresents_NextScene ret -GFPresents_PlaceLogo: ; e4ab2 (39:4ab2) +GFPresents_PlaceLogo: ; Draw the Game Freak logo (may be initially invisible due to palette) ; wait until the star animation completed ; TODO this is cleared above, but when is it set? - ld a, [$ce64] + ld a, [wIntroSceneFrameCounter] and a ret z depixel 10, 11, 4, 0 - ld a, $15 + ld a, SPRITE_ANIM_INDEX_GAMEFREAK_LOGO call InitSpriteAnimStruct call GFPresents_NextScene @@ -208,7 +193,7 @@ GFPresents_PlaceLogo: ; e4ab2 (39:4ab2) ld [wIntroSceneTimer], a ret -GFPresents_LogoSparkles: ; e4ac8 (39:4ac8) +GFPresents_LogoSparkles: ld hl, wIntroSceneTimer ld a, [hl] @@ -230,16 +215,18 @@ GFPresents_LogoSparkles: ; e4ac8 (39:4ac8) call GFPresents_NextScene ret -GFPresents_PlaceGameFreak: ; e4adf (39:4adf) +GFPresents_PlaceGameFreak: hlcoord 5, 12 ld de, .game_freak call PlaceString ret .game_freak - db $80, $81, $82, $83, $8d, $84, $85, $83, $81, $86, "@" + db $80, $81, $82, $83, $8d, $84, $85, $83, $81, $86 +.end + db "@" -GFPresents_PlacePresents: ; e4af4 (39:4af4) +GFPresents_PlacePresents: hlcoord 7, 13 ld de, .presents call PlaceString @@ -252,18 +239,18 @@ GFPresents_PlacePresents: ; e4af4 (39:4af4) ret .presents - db $87, $88, $89, $8a, $8b, $8c, "@" + db $87, $88, $89, $8a, $8b, $8c +.end + db "@" -GFPresents_SetDoneFlag: ; e4b0d (39:4b0d) -; Tell GFPresents_PlayFrame and TitleScreenFrame (01:63da) that we're finished. +GFPresents_SetDoneFlag: +; Tell GFPresents_PlayFrame and TitleScreenFrame that we're finished. ld hl, wJumptableIndex set 7, [hl] ret -GFPresents_WaitForTimer: ; e4b13 (39:4b13) -; Wait for the timer to elapse - +GFPresents_WaitForTimer: ld hl, wIntroSceneTimer ld a, [hl] and a @@ -274,8 +261,8 @@ GFPresents_WaitForTimer: ; e4b13 (39:4b13) call GFPresents_NextScene ret -GFPresents_UpdateLogoPal: ; e4b20 (39:4b20) -; called from 29:5928 +GFPresents_UpdateLogoPal: +; called from 23:5928 ; OBP1 was initialized at end of GFPresents_Init ; once we reached the final state, leave it alone @@ -297,7 +284,7 @@ GFPresents_UpdateLogoPal: ; e4b20 (39:4b20) call DmgToCgbObjPal1 ret -GFPresents_Sparkle: ; e4b33 (39:4b33) +GFPresents_Sparkle: ; Initialize and configure a sparkle sprite. ; TODO unclear how this relates to the actual screen display, ; seems to be called more times than there are visible sparkles? @@ -314,7 +301,7 @@ GFPresents_Sparkle: ; e4b33 (39:4b33) ; set up a new sparkle sprite push af depixel 11, 11 - ld a, $17 + ld a, SPRITE_ANIM_INDEX_GS_INTRO_SPARKLE call InitSpriteAnimStruct pop af diff --git a/engine/movie/title.asm b/engine/movie/title.asm index 93345798..0545b8f1 100644 --- a/engine/movie/title.asm +++ b/engine/movie/title.asm @@ -55,7 +55,7 @@ TitleScreen: ld [hli], a ; wIntroSceneFrameCounter ld [hli], a ; wTitleScreenTimer ld [hl], a ; wTitleScreenTimer + 1 - ld de, $6058 + depixel 12, 11 ld a, SPRITE_ANIM_INDEX_GS_INTRO_HO_OH call InitSpriteAnimStruct ld hl, wSpriteAnim1 diff --git a/engine/overworld/player_movement.asm b/engine/overworld/player_movement.asm index bdf23ec4..6747c0ef 100755 --- a/engine/overworld/player_movement.asm +++ b/engine/overworld/player_movement.asm @@ -394,7 +394,7 @@ DoPlayerMovement:: .CheckWarp: ; Bug: Since no case is made for STANDING here, it will check -; [.edgewarps + $ff]. This resolves to $3e at $8035a. +; [.edgewarps + $ff]. This resolves to $3e at $1035a. ; This causes wWalkingIntoEdgeWarp to be nonzero when standing on tile $3e, ; making bumps silent. diff --git a/engine/phone/scripts/bike_shop.asm b/engine/phone/scripts/bike_shop.asm new file mode 100644 index 00000000..bb10af68 --- /dev/null +++ b/engine/phone/scripts/bike_shop.asm @@ -0,0 +1,5 @@ +BikeShopPhoneCallerScript: + writetext BikeShopPhoneCallerText + clearflag ENGINE_BIKE_SHOP_CALL_ENABLED + specialphonecall SPECIALCALL_NONE + end diff --git a/engine/phone/scripts/bill.asm b/engine/phone/scripts/bill.asm new file mode 100644 index 00000000..7bb2e4d6 --- /dev/null +++ b/engine/phone/scripts/bill.asm @@ -0,0 +1,41 @@ +BillPhoneCalleeScript: + checktime DAY + iftrue .daygreet + checktime NITE + iftrue .nitegreet + writetext BillPhoneMornGreetingText + promptbutton + sjump .main + +.daygreet + writetext BillPhoneDayGreetingText + promptbutton + sjump .main + +.nitegreet + writetext BillPhoneNiteGreetingText + promptbutton + sjump .main + +.main + writetext BillPhoneGenericText + promptbutton + readvar VAR_BOXSPACE + getnum STRING_BUFFER_3 + ifequal 0, .full + ifless PARTY_LENGTH, .nearlyfull + writetext BillPhoneNotFullText + end + +.nearlyfull + writetext BillPhoneNearlyFullText + end + +.full + writetext BillPhoneFullText + end + +BillPhoneCallerScript: + writetext BillPhoneNewlyFullText + waitbutton + end diff --git a/engine/phone/scripts/elm.asm b/engine/phone/scripts/elm.asm new file mode 100644 index 00000000..b93bdc22 --- /dev/null +++ b/engine/phone/scripts/elm.asm @@ -0,0 +1,101 @@ +ElmPhoneCalleeScript: + readvar VAR_SPECIALPHONECALL + ifequal SPECIALCALL_POKERUS, .pokerus + checkevent EVENT_SHOWED_TOGEPI_TO_ELM + iftrue .discovery + checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE + iffalse .next + checkevent EVENT_TOGEPI_HATCHED + iftrue .egghatched +.next + checkevent EVENT_GOT_TOGEPI_EGG_FROM_ELMS_AIDE + iftrue .eggunhatched + checkevent EVENT_ELMS_AIDE_IN_LAB + iftrue .assistant + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iftrue .checkingegg + checkevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON + iftrue .stolen + checkevent EVENT_GOT_MYSTERY_EGG_FROM_MR_POKEMON + iftrue .sawmrpokemon + writetext ElmPhoneHealYourMonText + end + +.sawmrpokemon + writetext ElmPhoneSawMrPokemonText + end + +.stolen + writetext ElmPhonePokemonStolenText + end + +.checkingegg + writetext ElmPhoneCheckingTheEggText + end + +.assistant + writetext ElmPhoneAssistantText + end + +.eggunhatched + writetext ElmPhoneHowIsTheEggText + end + +.egghatched + writetext ElmPhoneEggHatchedText + setevent EVENT_TOLD_ELM_ABOUT_TOGEPI_OVER_THE_PHONE + end + +.discovery + random 2 + ifequal 0, .nextdiscovery + writetext ElmPhoneDiscoveredHatchTimeText + end + +.nextdiscovery + writetext ElmPhoneInvestigatingEggMovesText + end + +.pokerus + writetext ElmPhoneDiscoveredPokerusText + specialphonecall SPECIALCALL_NONE + end + +ElmPhoneCallerScript: + readvar VAR_SPECIALPHONECALL + ifequal SPECIALCALL_ROBBED, .disaster + ifequal SPECIALCALL_ASSISTANT, .assistant + ifequal SPECIALCALL_WEIRDBROADCAST, .rocket + ifequal SPECIALCALL_SSTICKET, .gift + ifequal SPECIALCALL_MASTERBALL, .gift + writetext ElmPhoneDiscoveredPokerusText + specialphonecall SPECIALCALL_NONE + end + +.disaster + writetext ElmPhoneDisasterText + specialphonecall SPECIALCALL_NONE + setevent EVENT_ELM_CALLED_ABOUT_STOLEN_POKEMON + end + +.assistant + writetext ElmPhoneEggAssistantText + specialphonecall SPECIALCALL_NONE + clearevent EVENT_ELMS_AIDE_IN_VIOLET_POKEMON_CENTER + setevent EVENT_ELMS_AIDE_IN_LAB + end + +.rocket + writetext ElmPhoneRadioTowerRocketTakeoverText + specialphonecall SPECIALCALL_NONE + end + +.gift + writetext ElmPhoneGiftText + specialphonecall SPECIALCALL_NONE + end + +.unused + writetext ElmPhoneGotAholdOfSomethingNeatText + specialphonecall SPECIALCALL_NONE + end diff --git a/engine/phone/scripts/generic.asm b/engine/phone/scripts/generic.asm new file mode 100644 index 00000000..4587c739 --- /dev/null +++ b/engine/phone/scripts/generic.asm @@ -0,0 +1,227 @@ +PhoneScript_Random2: + random 2 + end + +PhoneScript_Random4: + random 4 + end + +PhoneScript_AnswerPhone_Male: + checktime DAY + iftrue .day + checktime NITE + iftrue .nite + writetext PhoneMaleAnswerMornText + promptbutton + end +.day + writetext PhoneMaleAnswerDayText + promptbutton + end +.nite + writetext PhoneMaleAnswerNiteText + promptbutton + end + +PhoneScript_AnswerPhone_Female: + checktime DAY + iftrue .day + checktime NITE + iftrue .nite + writetext PhoneFemaleAnswerMornText + promptbutton + end +.day + writetext PhoneFemaleAnswerDayText + promptbutton + end +.nite + writetext PhoneFemaleAnswerNiteText + promptbutton + end + +PhoneScript_GreetPhone_Male: + checktime DAY + iftrue .day + checktime NITE + iftrue .nite + writetext PhoneMaleGreetMornText + promptbutton + end +.day + writetext PhoneMaleGreetDayText + promptbutton + end +.nite + writetext PhoneMaleGreetNiteText + promptbutton + end + +PhoneScript_GreetPhone_Female: + checktime DAY + iftrue .day + checktime NITE + iftrue .nite + writetext PhoneFemaleGreetMornText + promptbutton + end +.day + writetext PhoneFemaleGreetDayText + promptbutton + end +.nite + writetext PhoneFemaleGreetNiteText + promptbutton + end + +; Huey +Phone_GenericCall_Male_SkipMon: + special RandomPhoneMon + scall PhoneScript_Random2 + ifequal 0, Phone_LookingAwesome_Male_SkipMon + writetext PhoneMaleReallyEnergeticText + promptbutton + sjump PhoneScript_SeeYouLater + +; unused +Phone_GenericCall_Female_SkipMon: + special RandomPhoneMon + scall PhoneScript_Random2 + ifequal 0, Phone_DressedUp_Female_SkipMon + writetext PhoneFemaleTopShapeText + promptbutton + sjump PhoneScript_ByeBye + +; Huey +Phone_LookingAwesome_Male_SkipMon: + writetext PhoneMaleLookingAwesomeText + promptbutton + sjump PhoneScript_ByeBye + +; unused +Phone_DressedUp_Female_SkipMon: + writetext PhoneFemaleDressedUpText + promptbutton + sjump PhoneScript_ByeBye + +Phone_GenericCall_Male: + special RandomPhoneMon + scall PhoneScript_Random2 + ifequal 0, Phone_LookingAwesome_Male + writetext PhoneMaleReallyEnergeticText + promptbutton + sjump Phone_FoundAMon_Male + +Phone_GenericCall_Female: + special RandomPhoneMon + scall PhoneScript_Random2 + ifequal 0, Phone_DressedUp_Female + writetext PhoneFemaleTopShapeText + promptbutton + sjump Phone_FoundAMon_Female + +Phone_LookingAwesome_Male: + writetext PhoneMaleLookingAwesomeText + promptbutton + sjump Phone_FoundAMon_Male + +Phone_DressedUp_Female: + writetext PhoneFemaleDressedUpText + promptbutton + sjump Phone_FoundAMon_Female + +Phone_FoundAMon_Male: + special RandomPhoneWildMon + scall PhoneScript_Random2 + ifequal 0, PhoneScript_AlmostCaught_Male + writetext PhoneMaleManagedToBeatText + promptbutton + sjump PhoneScript_SeeYouLater + +Phone_FoundAMon_Female: + special RandomPhoneWildMon + scall PhoneScript_Random2 + ifequal 0, PhoneScript_MissedCatching_Female + writetext PhoneFemaleTypeAdvantageText + promptbutton + sjump PhoneScript_ByeBye + +PhoneScript_AlmostCaught_Male: + writetext PhoneMaleAlmostCaughtText + promptbutton + sjump PhoneScript_SeeYouLater + +PhoneScript_MissedCatching_Female: + writetext PhoneFemaleMissedCatchingText + promptbutton + sjump PhoneScript_ByeBye + +PhoneScript_WantsToBattle_Male: + writetext PhoneMaleWantsToBattleText + promptbutton + sjump PhoneScript_SeeYouLater + +PhoneScript_WantsToBattle_Female: + writetext PhoneFemaleWantsToBattleText + promptbutton + sjump PhoneScript_ByeBye + +Phone_WrongNumber_JoseBrent: + writetext PhoneWrongNumberKazText + end + +Phone_WrongNumber_Tiffany: + writetext PhoneWrongNumberAudreyText + end + +PhoneScript_SeeYouLater: + writetext PhoneSeeYouLaterText + end + +PhoneScript_ByeBye: + writetext PhoneByeByeText + end + +PhoneScript_SwarmGrass: + writetext PhoneSwarmGrassText + promptbutton + sjump PhoneScript_SeeYouLater + +PhoneScript_SwarmFish: + writetext PhoneSwarmFishText + promptbutton + sjump PhoneScript_SeeYouLater + +PhoneScript_SwarmCave: + writetext PhoneSwarmCaveText + promptbutton + sjump PhoneScript_SeeYouLater + +PhoneScript_BugCatchingContest: + writetext PhoneBugCatchingContestText + promptbutton + sjump PhoneScript_SeeYouLater + +IrwinRocketRumorScript: + writetext IrwinRocketTakeoverRumorText + promptbutton + sjump PhoneScript_SeeYouLater + +GinaRocketRumorScript: + writetext GinaRocketTakeoverRumorText + promptbutton + sjump PhoneScript_ByeBye + +Phone_CheckIfUnseenRare_Male: + scall PhoneScriptRareWildMon + iffalse PhoneScript_SeeYouLater + sjump Phone_GenericCall_Male + +Phone_CheckIfUnseenRare_Female: + scall PhoneScriptRareWildMon + iffalse PhoneScript_ByeBye + sjump Phone_GenericCall_Female + +PhoneScriptRareWildMon: + special RandomUnseenWildMon + end diff --git a/engine/phone/scripts/mom.asm b/engine/phone/scripts/mom.asm new file mode 100644 index 00000000..ec0e5113 --- /dev/null +++ b/engine/phone/scripts/mom.asm @@ -0,0 +1,150 @@ +MomPhoneCalleeScript: + checkevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST + iftrue .script_10401f + checkevent EVENT_DUDE_TALKED_TO_YOU + iftrue MomPhoneLectureScript + checkevent EVENT_GAVE_MYSTERY_EGG_TO_ELM + iftrue MomPhoneNoGymQuestScript + checkevent EVENT_GOT_A_POKEMON_FROM_ELM + iftrue MomPhoneNoPokedexScript + sjump MomPhoneNoPokemonScript + +.script_10401f + checkevent EVENT_TEMPORARY_UNTIL_MAP_RELOAD_8 + iftrue MomPhoneHangUpScript + writetext MomPhoneGreetingText + promptbutton + getcurlandmarkname STRING_BUFFER_3 + readvar VAR_ROOFPALETTE + ifequal 1, MomPhonePalette1 + ifequal 2, MomPhonePalette2 + sjump MomPhoneOther + +MomPhoneLandmark: + writetext MomPhoneLandmarkText + promptbutton + sjump MomSavingMoney + +MomPhonePalette1: + readvar VAR_MAPGROUP + ifequal GROUP_NEW_BARK_TOWN, .newbark + ifequal GROUP_CHERRYGROVE_CITY, .cherrygrove + ifequal GROUP_VIOLET_CITY, .violet + ifequal GROUP_AZALEA_TOWN, .azalea + ifequal GROUP_GOLDENROD_CITY, .goldenrod + writetext MomPhoneGenericAreaText + promptbutton + sjump MomSavingMoney + +.newbark + writetext MomPhoneNewBarkText + promptbutton + sjump MomSavingMoney + +.cherrygrove + writetext MomPhoneCherrygroveText + promptbutton + sjump MomSavingMoney + +.violet + getstring STRING_BUFFER_4, .text_sprout_tower + sjump MomPhoneLandmark +.text_sprout_tower + db "SPROUT TOWER@" + +.azalea + getstring STRING_BUFFER_4, .text_slowpoke_well + sjump MomPhoneLandmark +.text_slowpoke_well + db "SLOWPOKE WELL@" + +.goldenrod + getstring STRING_BUFFER_4, .text_radio_tower + sjump MomPhoneLandmark +.text_radio_tower + db "RADIO TOWER@" + +MomPhonePalette2: + writetext MomOtherAreaText + promptbutton + sjump MomSavingMoney + +MomPhoneOther: + writetext MomDeterminedText + promptbutton + sjump MomSavingMoney + +MomSavingMoney: + checkflag ENGINE_MOM_SAVING_MONEY + iffalse .NotSaving + checkmoney MOMS_MONEY, 0 + ifequal HAVE_MORE, .SavingHasMoney + sjump .SavingNoMoney + +.NotSaving: + checkmoney MOMS_MONEY, 0 + ifequal HAVE_MORE, .HasMoney + sjump .NoMoney + +.SavingHasMoney: + getmoney STRING_BUFFER_3, MOMS_MONEY + writetext MomCheckBalanceText + yesorno + iftrue MomPhoneSaveMoneyScript + sjump MomPhoneStopSavingMoneyScript + +.SavingNoMoney: + writetext MomImportantToSaveText + yesorno + iftrue MomPhoneSaveMoneyScript + sjump MomPhoneStopSavingMoneyScript + +.NoMoney: + writetext MomYoureNotSavingText + yesorno + iftrue MomPhoneSaveMoneyScript + sjump MomPhoneStopSavingMoneyScript + +.HasMoney: + getmoney STRING_BUFFER_3, MOMS_MONEY + writetext MomYouveSavedText + yesorno + iftrue MomPhoneSaveMoneyScript + sjump MomPhoneStopSavingMoneyScript + +MomPhoneSaveMoneyScript: + setflag ENGINE_MOM_SAVING_MONEY + writetext MomOKIllSaveText + promptbutton + sjump MomPhoneHangUpScript + +MomPhoneStopSavingMoneyScript: + clearflag ENGINE_MOM_SAVING_MONEY + writetext MomPhoneStopSavingMoneyText + promptbutton + sjump MomPhoneHangUpScript + +MomPhoneHangUpScript: + writetext MomPhoneHangUpText + end + +MomPhoneNoPokemonScript: + writetext MomPhoneNoPokemonText + end + +MomPhoneNoPokedexScript: + writetext MomPhoneNoPokedexText + end + +MomPhoneNoGymQuestScript: + writetext MomPhoneNoGymQuestText + end + +MomPhoneLectureScript: + setevent EVENT_TALKED_TO_MOM_AFTER_MYSTERY_EGG_QUEST + setflag ENGINE_MOM_ACTIVE + specialphonecall SPECIALCALL_NONE + writetext MomPhoneLectureText + yesorno + iftrue MomPhoneSaveMoneyScript + sjump MomPhoneStopSavingMoneyScript diff --git a/engine/phone/scripts/trainers.asm b/engine/phone/scripts/trainers.asm new file mode 100644 index 00000000..8c22df62 --- /dev/null +++ b/engine/phone/scripts/trainers.asm @@ -0,0 +1,677 @@ +JackPhoneCalleeScript: + gettrainername STRING_BUFFER_3, SCHOOLBOY, JACK1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +JackPhoneCallerScript: + gettrainername STRING_BUFFER_3, SCHOOLBOY, JACK1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneNationalParkText + setevent EVENT_JACK_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +BeverlyPhoneCalleeScript: + gettrainername STRING_BUFFER_3, POKEFANF, BEVERLY1 + scall PhoneScript_AnswerPhone_Female + sjump Phone_GenericCall_Female + +BeverlyPhoneCallerScript: + gettrainername STRING_BUFFER_3, POKEFANF, BEVERLY1 + scall PhoneScript_GreetPhone_Female + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Female + sjump Phone_GenericCall_Female + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneNationalParkText + setevent EVENT_BEVERLY_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Female + +HueyPhoneCalleeScript: + gettrainername STRING_BUFFER_3, SAILOR, HUEY1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male_SkipMon + +HueyPhoneCallerScript: + gettrainername STRING_BUFFER_3, SAILOR, HUEY1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + sjump Phone_GenericCall_Male_SkipMon + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneLighthouseText + setevent EVENT_HUEY_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +GavenPhoneCalleeScript: + gettrainername STRING_BUFFER_3, COOLTRAINERM, GAVEN3 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +GavenPhoneCallerScript: + gettrainername STRING_BUFFER_3, COOLTRAINERM, GAVEN3 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute26Text + setevent EVENT_GAVEN_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +BethPhoneCalleeScript: + gettrainername STRING_BUFFER_3, COOLTRAINERF, BETH1 + scall PhoneScript_AnswerPhone_Female + sjump Phone_GenericCall_Female + +BethPhoneCallerScript: + gettrainername STRING_BUFFER_3, COOLTRAINERF, BETH1 + scall PhoneScript_GreetPhone_Female + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Female + sjump Phone_GenericCall_Female + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute26Text + setevent EVENT_BETH_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Female + +JosePhoneCalleeScript: + gettrainername STRING_BUFFER_3, BIRD_KEEPER, JOSE2 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +JosePhoneCallerScript: + gettrainername STRING_BUFFER_3, BIRD_KEEPER, JOSE2 + scall PhoneScript_Random4 + ifequal 0, Phone_WrongNumber_JoseBrent + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute27Text + setevent EVENT_JOSE_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +ReenaPhoneCalleeScript: + gettrainername STRING_BUFFER_3, COOLTRAINERF, REENA1 + scall PhoneScript_AnswerPhone_Female + sjump Phone_GenericCall_Female + +ReenaPhoneCallerScript: + gettrainername STRING_BUFFER_3, COOLTRAINERF, REENA1 + scall PhoneScript_GreetPhone_Female + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Female + sjump Phone_GenericCall_Female + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute27Text + setevent EVENT_REENA_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Female + +JoeyPhoneCalleeScript: + gettrainername STRING_BUFFER_3, YOUNGSTER, JOEY1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +JoeyPhoneCallerScript: + gettrainername STRING_BUFFER_3, YOUNGSTER, JOEY1 + scall PhoneScript_GreetPhone_Male + checkflag ENGINE_FLYPOINT_GOLDENROD + iffalse .NoBattle + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + +.NoBattle: + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute30Text + setevent EVENT_JOEY_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +WadePhoneCalleeScript: + gettrainername STRING_BUFFER_3, BUG_CATCHER, WADE1 + scall PhoneScript_AnswerPhone_Male + scall PhoneScript_Random2 + ifequal 0, .Generic + checkflag ENGINE_DAILY_BUG_CONTEST + iftrue .Generic + readvar VAR_WEEKDAY + ifequal TUESDAY, PhoneScript_BugCatchingContest + ifequal THURSDAY, PhoneScript_BugCatchingContest + ifequal SATURDAY, PhoneScript_BugCatchingContest + +.Generic: + sjump Phone_GenericCall_Male + +WadePhoneCallerScript: + gettrainername STRING_BUFFER_3, BUG_CATCHER, WADE1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .NoContest + checkflag ENGINE_DAILY_BUG_CONTEST + iftrue .NoContest + readvar VAR_WEEKDAY + ifequal TUESDAY, PhoneScript_BugCatchingContest + ifequal THURSDAY, PhoneScript_BugCatchingContest + ifequal SATURDAY, PhoneScript_BugCatchingContest + +.NoContest: + checkflag ENGINE_FLYPOINT_GOLDENROD + iffalse .NoBattle + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + +.NoBattle: + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute31Text + setevent EVENT_WADE_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +RalphPhoneCalleeScript: + gettrainername STRING_BUFFER_3, FISHER, RALPH1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +RalphPhoneCallerScript: + gettrainername STRING_BUFFER_3, FISHER, RALPH1 + scall PhoneScript_GreetPhone_Male + checkflag ENGINE_FLYPOINT_GOLDENROD + iffalse .NoBattle + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + +.NoBattle: + scall PhoneScript_Random2 + ifequal 0, .QwilfishSwarm + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute32Text + setevent EVENT_RALPH_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +.QwilfishSwarm: + checkflag ENGINE_SWARM + iftrue Phone_GenericCall_Male + getmonname STRING_BUFFER_4, QWILFISH + getstring STRING_BUFFER_5, PhoneRoute32Text + setval FISHSWARM_QWILFISH + special ActivateFishingSwarm + sjump PhoneScript_SwarmFish + +LizPhoneCalleeScript: + gettrainername STRING_BUFFER_3, PICNICKER, LIZ1 + scall PhoneScript_AnswerPhone_Female + sjump Phone_GenericCall_Female + +LizPhoneCallerScript: + gettrainername STRING_BUFFER_3, PICNICKER, LIZ1 + scall PhoneScript_GreetPhone_Female + checkflag ENGINE_FLYPOINT_GOLDENROD + iffalse .NoBattle + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + +.NoBattle: + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Female + sjump Phone_GenericCall_Female + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute32Text + setevent EVENT_LIZ_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Female + +AnthonyPhoneCalleeScript: + gettrainername STRING_BUFFER_3, HIKER, ANTHONY2 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +AnthonyPhoneCallerScript: + gettrainername STRING_BUFFER_3, HIKER, ANTHONY2 + scall PhoneScript_GreetPhone_Male + checkflag ENGINE_FLYPOINT_GOLDENROD + iffalse .NoBattle + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + +.NoBattle: + scall PhoneScript_Random2 + ifequal 0, .DunsparceSwarm + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute33Text + setevent EVENT_ANTHONY_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +.DunsparceSwarm: + checkflag ENGINE_SWARM + iftrue Phone_GenericCall_Male + getmonname STRING_BUFFER_4, DUNSPARCE + getstring STRING_BUFFER_5, PhoneDarkCaveText + swarm DARK_CAVE_VIOLET_ENTRANCE + sjump PhoneScript_SwarmCave + +ToddPhoneCalleeScript: + gettrainername STRING_BUFFER_3, CAMPER, TODD1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +ToddPhoneCallerScript: + gettrainername STRING_BUFFER_3, CAMPER, TODD1 + scall PhoneScript_GreetPhone_Male + checkflag ENGINE_FLYPOINT_GOLDENROD + iffalse .NoBattle + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + +.NoBattle: + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute34Text + setevent EVENT_TODD_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +GinaPhoneCalleeScript: + gettrainername STRING_BUFFER_3, PICNICKER, GINA1 + scall PhoneScript_AnswerPhone_Female + checkflag ENGINE_ROCKETS_IN_RADIO_TOWER + iftrue GinaRocketRumorScript + sjump Phone_GenericCall_Female + +GinaPhoneCallerScript: + gettrainername STRING_BUFFER_3, PICNICKER, GINA1 + scall PhoneScript_GreetPhone_Female + checkflag ENGINE_ROCKETS_IN_RADIO_TOWER + iftrue GinaRocketRumorScript + checkflag ENGINE_FLYPOINT_GOLDENROD + iffalse .NoBattle + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + +.NoBattle: + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Female + sjump Phone_GenericCall_Female + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute34Text + setevent EVENT_GINA_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Female + +IrwinPhoneCalleeScript: + gettrainername STRING_BUFFER_3, JUGGLER, IRWIN1 + scall PhoneScript_AnswerPhone_Male + checkflag ENGINE_ROCKETS_IN_RADIO_TOWER + iftrue IrwinRocketRumorScript + sjump Phone_GenericCall_Male + +IrwinPhoneCallerScript: + gettrainername STRING_BUFFER_3, JUGGLER, IRWIN1 + scall PhoneScript_GreetPhone_Male + checkflag ENGINE_ROCKETS_IN_RADIO_TOWER + iftrue IrwinRocketRumorScript + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute35Text + setevent EVENT_IRWIN_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +ArniePhoneCalleeScript: + gettrainername STRING_BUFFER_3, BUG_CATCHER, ARNIE1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +ArniePhoneCallerScript: + gettrainername STRING_BUFFER_3, BUG_CATCHER, ARNIE1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, .YanmaSwarm + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute35Text + setevent EVENT_ARNIE_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +.YanmaSwarm: + checkflag ENGINE_SWARM + iftrue Phone_GenericCall_Male + getmonname STRING_BUFFER_4, YANMA + getstring STRING_BUFFER_5, PhoneRoute35Text + swarm ROUTE_35 + sjump PhoneScript_SwarmGrass + +AlanPhoneCalleeScript: + gettrainername STRING_BUFFER_3, SCHOOLBOY, ALAN1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +AlanPhoneCallerScript: + gettrainername STRING_BUFFER_3, SCHOOLBOY, ALAN1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute36Text + setevent EVENT_ALAN_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +DanaPhoneCalleeScript: + gettrainername STRING_BUFFER_3, LASS, DANA1 + scall PhoneScript_AnswerPhone_Female + sjump Phone_GenericCall_Female + +DanaPhoneCallerScript: + gettrainername STRING_BUFFER_3, LASS, DANA1 + scall PhoneScript_GreetPhone_Female + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Female + sjump Phone_GenericCall_Female + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute38Text + setevent EVENT_DANA_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Female + +ChadPhoneCalleeScript: + gettrainername STRING_BUFFER_3, SCHOOLBOY, CHAD1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +ChadPhoneCallerScript: + gettrainername STRING_BUFFER_3, SCHOOLBOY, CHAD1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .SnubbullSwarm + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.SnubbullSwarm: + checkflag ENGINE_SWARM + iftrue Phone_GenericCall_Male + getmonname STRING_BUFFER_4, SNUBBULL + getstring STRING_BUFFER_5, PhoneRoute38Text + swarm ROUTE_38 + sjump PhoneScript_SwarmGrass + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute38Text + setevent EVENT_CHAD_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +DerekPhoneCalleeScript: + gettrainername STRING_BUFFER_3, POKEFANM, DEREK1 + scall PhoneScript_AnswerPhone_Male + scall PhoneScript_Random2 + ifequal 0, .Generic + checkflag ENGINE_DAILY_BUG_CONTEST + iftrue .Generic + readvar VAR_WEEKDAY + ifequal TUESDAY, PhoneScript_BugCatchingContest + ifequal THURSDAY, PhoneScript_BugCatchingContest + ifequal SATURDAY, PhoneScript_BugCatchingContest + +.Generic: + sjump Phone_GenericCall_Male + +DerekPhoneCallerScript: + gettrainername STRING_BUFFER_3, POKEFANM, DEREK1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .NoContest + checkflag ENGINE_DAILY_BUG_CONTEST + iftrue .NoContest + readvar VAR_WEEKDAY + ifequal TUESDAY, PhoneScript_BugCatchingContest + ifequal THURSDAY, PhoneScript_BugCatchingContest + ifequal SATURDAY, PhoneScript_BugCatchingContest + +.NoContest: + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute39Text + setevent EVENT_DEREK_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +ChrisPhoneCalleeScript: + gettrainername STRING_BUFFER_3, FISHER, CHRIS1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +ChrisPhoneCallerScript: + gettrainername STRING_BUFFER_3, FISHER, CHRIS1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute42Text + setevent EVENT_CHRIS_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +BrentPhoneCalleeScript: + gettrainername STRING_BUFFER_3, POKEMANIAC, BRENT1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +BrentPhoneCallerScript: + gettrainername STRING_BUFFER_3, POKEMANIAC, BRENT1 + scall PhoneScript_Random4 + ifequal 0, Phone_WrongNumber_JoseBrent + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute43Text + setevent EVENT_BRENT_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +TiffanyPhoneCalleeScript: + gettrainername STRING_BUFFER_3, PICNICKER, TIFFANY3 + scall PhoneScript_AnswerPhone_Female + sjump Phone_GenericCall_Female + +TiffanyPhoneCallerScript: + gettrainername STRING_BUFFER_3, PICNICKER, TIFFANY3 + scall PhoneScript_Random4 + ifequal 0, Phone_WrongNumber_Tiffany + scall PhoneScript_GreetPhone_Female + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Female + sjump Phone_GenericCall_Female + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute43Text + setevent EVENT_TIFFANY_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Female + +VancePhoneCalleeScript: + gettrainername STRING_BUFFER_3, BIRD_KEEPER, VANCE1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +VancePhoneCallerScript: + gettrainername STRING_BUFFER_3, BIRD_KEEPER, VANCE1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute44Text + setevent EVENT_VANCE_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +WiltonPhoneCalleeScript: + gettrainername STRING_BUFFER_3, FISHER, WILTON1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +WiltonPhoneCallerScript: + gettrainername STRING_BUFFER_3, FISHER, WILTON1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .RemoraidSwarm + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.RemoraidSwarm: + checkflag ENGINE_SWARM + iftrue Phone_GenericCall_Male + getmonname STRING_BUFFER_4, REMORAID + getstring STRING_BUFFER_5, PhoneRoute44Text + setval FISHSWARM_REMORAID + special ActivateFishingSwarm + sjump PhoneScript_SwarmFish + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute44Text + setevent EVENT_WILTON_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +KenjiPhoneCalleeScript: + gettrainername STRING_BUFFER_3, BLACKBELT_T, KENJI3 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +KenjiPhoneCallerScript: + gettrainername STRING_BUFFER_3, BLACKBELT_T, KENJI3 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute45Text + setevent EVENT_KENJI_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +ParryPhoneCalleeScript: + gettrainername STRING_BUFFER_3, HIKER, PARRY1 + scall PhoneScript_AnswerPhone_Male + sjump Phone_GenericCall_Male + +ParryPhoneCallerScript: + gettrainername STRING_BUFFER_3, HIKER, PARRY1 + scall PhoneScript_GreetPhone_Male + scall PhoneScript_Random2 + ifequal 0, .MarillSwarm + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Male + sjump Phone_GenericCall_Male + +.MarillSwarm: + checkflag ENGINE_SWARM + iftrue Phone_GenericCall_Male + getmonname STRING_BUFFER_4, MARILL + getstring STRING_BUFFER_5, PhoneMtMortarText + swarm MOUNT_MORTAR_1F_OUTSIDE + sjump PhoneScript_SwarmCave + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute45Text + setevent EVENT_PARRY_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Male + +ErinPhoneCalleeScript: + gettrainername STRING_BUFFER_3, PICNICKER, ERIN1 + scall PhoneScript_AnswerPhone_Female + sjump Phone_GenericCall_Female + +ErinPhoneCallerScript: + gettrainername STRING_BUFFER_3, PICNICKER, ERIN1 + scall PhoneScript_GreetPhone_Female + scall PhoneScript_Random2 + ifequal 0, .WantsBattle + scall PhoneScript_Random2 + ifequal 0, Phone_CheckIfUnseenRare_Female + sjump Phone_GenericCall_Female + +.WantsBattle: + getstring STRING_BUFFER_5, PhoneRoute46Text + setevent EVENT_ERIN_READY_FOR_REMATCH + sjump PhoneScript_WantsToBattle_Female + +INCLUDE "engine/phone/scripts/generic.asm" + +INCLUDE "data/phone/text/landmarks.asm" diff --git a/engine/phone/scripts/unused.asm b/engine/phone/scripts/unused.asm new file mode 100644 index 00000000..08d67f60 --- /dev/null +++ b/engine/phone/scripts/unused.asm @@ -0,0 +1,3 @@ +UnusedPhoneScript: + writetext UnusedPhoneText + end diff --git a/gfx/pokedex/pokedex.2bpp b/gfx/pokedex/pokedex.2bpp Binary files differdeleted file mode 100644 index ace4e25e..00000000 --- a/gfx/pokedex/pokedex.2bpp +++ /dev/null diff --git a/gfx/pokedex/slowpoke.2bpp b/gfx/pokedex/slowpoke.2bpp Binary files differdeleted file mode 100644 index 959020dc..00000000 --- a/gfx/pokedex/slowpoke.2bpp +++ /dev/null diff --git a/home/print_num.asm b/home/print_num.asm index d37ebe1d..5bea7696 100755 --- a/home/print_num.asm +++ b/home/print_num.asm @@ -25,39 +25,38 @@ PrintNum:: .main xor a - ldh [$ffb5], a - ldh [$ffb6], a - ldh [$ffb7], a + ldh [hPrintNumBuffer + 0], a + ldh [hPrintNumBuffer + 1], a + ldh [hPrintNumBuffer + 2], a ld a, b and $f cp 1 jr z, .byte cp 2 jr z, .word - ; maximum 3 bytes .long ld a, [de] - ldh [$ffb6], a + ldh [hPrintNumBuffer + 1], a inc de ld a, [de] - ldh [$ffb7], a + ldh [hPrintNumBuffer + 2], a inc de ld a, [de] - ldh [$ffb8], a + ldh [hPrintNumBuffer + 3], a jr .start .word ld a, [de] - ldh [$ffb7], a + ldh [hPrintNumBuffer + 2], a inc de ld a, [de] - ldh [$ffb8], a + ldh [hPrintNumBuffer + 3], a jr .start .byte ld a, [de] - ldh [$ffb8], a + ldh [hPrintNumBuffer + 3], a .start push de @@ -84,51 +83,51 @@ PrintNum:: .seven ld a, HIGH(1000000 >> 8) - ldh [$ffb9], a + ldh [hPrintNumBuffer + 4], a ld a, HIGH(1000000) ; mid - ldh [$ffba], a + ldh [hPrintNumBuffer + 5], a ld a, LOW(1000000) - ldh [$ffbb], a + ldh [hPrintNumBuffer + 6], a call .PrintDigit call .AdvancePointer .six ld a, HIGH(100000 >> 8) - ldh [$ffb9], a + ldh [hPrintNumBuffer + 4], a ld a, HIGH(100000) ; mid - ldh [$ffba], a + ldh [hPrintNumBuffer + 5], a ld a, LOW(100000) - ldh [$ffbb], a + ldh [hPrintNumBuffer + 6], a call .PrintDigit call .AdvancePointer .five xor a ; HIGH(10000 >> 8) - ldh [$ffb9], a + ldh [hPrintNumBuffer + 4], a ld a, HIGH(10000) ; mid - ldh [$ffba], a + ldh [hPrintNumBuffer + 5], a ld a, LOW(10000) - ldh [$ffbb], a + ldh [hPrintNumBuffer + 6], a call .PrintDigit call .AdvancePointer .four xor a ; HIGH(1000 >> 8) - ldh [$ffb9], a + ldh [hPrintNumBuffer + 4], a ld a, HIGH(1000) ; mid - ldh [$ffba], a + ldh [hPrintNumBuffer + 5], a ld a, LOW(1000) - ldh [$ffbb], a + ldh [hPrintNumBuffer + 6], a call .PrintDigit call .AdvancePointer .three xor a ; HIGH(100 >> 8) - ldh [$ffb9], a + ldh [hPrintNumBuffer + 4], a xor a ; HIGH(100) ; mid - ldh [$ffba], a + ldh [hPrintNumBuffer + 5], a ld a, LOW(100) - ldh [$ffbb], a + ldh [hPrintNumBuffer + 6], a call .PrintDigit call .AdvancePointer @@ -136,22 +135,21 @@ PrintNum:: dec e jr nz, .two_skip ld a, "0" - ldh [$ffb5], a - + ldh [hPrintNumBuffer + 0], a .two_skip - ld c, 0 - ldh a, [$ffb8] + ld c, 0 + ldh a, [hPrintNumBuffer + 3] .mod_10 cp 10 jr c, .modded_10 sub 10 inc c jr .mod_10 - .modded_10 + ld b, a - ldh a, [$ffb5] + ldh a, [hPrintNumBuffer + 0] or c jr nz, .money call .PrintLeadingZero @@ -164,12 +162,12 @@ PrintNum:: add c ld [hl], a pop af - ldh [$ffb5], a + ldh [hPrintNumBuffer + 0], a inc e dec e jr nz, .money_leading_zero inc hl - ld [hl], $e8 + ld [hl], "." .money_leading_zero call .AdvancePointer @@ -184,7 +182,7 @@ PrintNum:: .PrintYen: push af - ldh a, [$ffb5] + ldh a, [hPrintNumBuffer + 0] and a jr nz, .stop bit 5, d @@ -201,68 +199,68 @@ PrintNum:: dec e jr nz, .ok ld a, "0" - ldh [$ffb5], a + ldh [hPrintNumBuffer + 0], a .ok ld c, 0 .loop - ldh a, [$ffb9] + ldh a, [hPrintNumBuffer + 4] ld b, a - ldh a, [$ffb6] - ldh [$ffbc], a + ldh a, [hPrintNumBuffer + 1] + ldh [hPrintNumBuffer + 7], a cp b jr c, .skip1 sub b - ldh [$ffb6], a - ldh a, [$ffba] + ldh [hPrintNumBuffer + 1], a + ldh a, [hPrintNumBuffer + 5] ld b, a - ldh a, [$ffb7] - ldh [$ffbd], a + ldh a, [hPrintNumBuffer + 2] + ldh [hPrintNumBuffer + 8], a cp b jr nc, .skip2 - ldh a, [$ffb6] + ldh a, [hPrintNumBuffer + 1] or 0 jr z, .skip3 dec a - ldh [$ffb6], a - ldh a, [$ffb7] + ldh [hPrintNumBuffer + 1], a + ldh a, [hPrintNumBuffer + 2] .skip2 sub b - ldh [$ffb7], a - ldh a, [$ffbb] + ldh [hPrintNumBuffer + 2], a + ldh a, [hPrintNumBuffer + 6] ld b, a - ldh a, [$ffb8] - ldh [$ffbe], a + ldh a, [hPrintNumBuffer + 3] + ldh [hPrintNumBuffer + 9], a cp b jr nc, .skip4 - ldh a, [$ffb7] + ldh a, [hPrintNumBuffer + 2] and a jr nz, .skip5 - ldh a, [$ffb6] + ldh a, [hPrintNumBuffer + 1] and a jr z, .skip6 dec a - ldh [$ffb6], a + ldh [hPrintNumBuffer + 1], a xor a .skip5 dec a - ldh [$ffb7], a - ldh a, [$ffb8] + ldh [hPrintNumBuffer + 2], a + ldh a, [hPrintNumBuffer + 3] .skip4 sub b - ldh [$ffb8], a + ldh [hPrintNumBuffer + 3], a inc c jr .loop .skip6 - ldh a, [$ffbd] - ldh [$ffb7], a + ldh a, [hPrintNumBuffer + 8] + ldh [hPrintNumBuffer + 2], a .skip3 - ldh a, [$ffbc] - ldh [$ffb6], a + ldh a, [hPrintNumBuffer + 7] + ldh [hPrintNumBuffer + 1], a .skip1 - ldh a, [$ffb5] + ldh a, [hPrintNumBuffer + 0] or c jr z, .PrintLeadingZero - ldh a, [$ffb5] + ldh a, [hPrintNumBuffer + 0] and a jr nz, .done bit 5, d @@ -274,12 +272,12 @@ PrintNum:: ld a, "0" add c ld [hl], a - ldh [$ffb5], a + ldh [hPrintNumBuffer + 0], a inc e dec e ret nz inc hl - ld [hl], $e8 + ld [hl], "." ret .PrintLeadingZero: @@ -296,7 +294,7 @@ PrintNum:: jr nz, .inc bit 6, d ; left alignment or right alignment? jr z, .inc - ldh a, [$ffb5] + ldh a, [hPrintNumBuffer + 0] and a ret z .inc diff --git a/layout.link b/layout.link index 984869b6..a527bdb5 100644 --- a/layout.link +++ b/layout.link @@ -154,9 +154,9 @@ ROMX $3e ROMX $3f "bank3f" ROMX $40 - "bank40" + "Standard Scripts" ROMX $41 - "bank41" + "Phone Scripts" ROMX $42 "Map Scripts 1" ROMX $43 @@ -824,144 +824,27 @@ InitMysteryGiftLayout:: dr $fcfb2, $fde20 -SECTION "bank40", ROMX +SECTION "Standard Scripts", ROMX -StdScripts:: - dr $100000, $10110c +INCLUDE "engine/events/std_scripts.asm" +INCLUDE "data/text/std_text.asm" INCLUDE "data/text/battle.asm" -SECTION "bank41", ROMX - -; Phone scripts and text -UnusedPhoneScript:: - dr $104000, $104004 -MomPhoneCalleeScript:: - dr $104004, $104124 -MomPhoneLectureScript:: - dr $104124, $104137 -BillPhoneCalleeScript:: - dr $104137, $104172 -BillPhoneCallerScript:: - dr $104172, $104177 -ElmPhoneCalleeScript:: - dr $104177, $1041e1 -ElmPhoneCallerScript:: - dr $1041e1, $10422a -JackPhoneCalleeScript:: - dr $10422a, $104234 -JackPhoneCallerScript:: - dr $104234, $104256 -BeverlyPhoneCalleeScript:: - dr $104256, $104260 -BeverlyPhoneCallerScript:: - dr $104260, $104282 -HueyPhoneCalleeScript:: - dr $104282, $10428c -HueyPhoneCallerScript:: - dr $10428c, $1042a7 -GavenPhoneCalleeScript:: - dr $1042a7, $1042b1 -GavenPhoneCallerScript:: - dr $1042b1, $1042d3 -BethPhoneCalleeScript:: - dr $1042d3, $1042dd -BethPhoneCallerScript:: - dr $1042dd, $1042ff -JosePhoneCalleeScript:: - dr $1042ff, $104309 -JosePhoneCallerScript:: - dr $104309, $104332 -ReenaPhoneCalleeScript:: - dr $104332, $10433c -ReenaPhoneCallerScript:: - dr $10433c, $10435e -JoeyPhoneCalleeScript:: - dr $10435e, $104368 -JoeyPhoneCallerScript:: - dr $104368, $104390 -WadePhoneCalleeScript:: - dr $104390, $1043b5 -WadePhoneCallerScript:: - dr $1043b5, $1043f8 -RalphPhoneCalleeScript:: - dr $1043f8, $104402 -RalphPhoneCallerScript:: - dr $104402, $104446 -LizPhoneCalleeScript:: - dr $104446, $104450 -LizPhoneCallerScript:: - dr $104450, $104478 -AnthonyPhoneCalleeScript:: - dr $104478, $104482 -AnthonyPhoneCallerScript:: - dr $104482, $1044c4 -ToddPhoneCalleeScript:: - dr $1044c4, $1044ce -ToddPhoneCallerScript:: - dr $1044ce, $1044f6 -GinaPhoneCalleeScript:: - dr $1044f6, $104506 -GinaPhoneCallerScript:: - dr $104506, $104534 -IrwinPhoneCalleeScript:: - dr $104534, $104544 -IrwinPhoneCallerScript:: - dr $104544, $10456c -ArniePhoneCalleeScript:: - dr $10456c, $104576 -ArniePhoneCallerScript:: - dr $104576, $1045b2 -AlanPhoneCalleeScript:: - dr $1045b2, $1045bc -AlanPhoneCallerScript:: - dr $1045bc, $1045de -DanaPhoneCalleeScript:: - dr $1045de, $1045e8 -DanaPhoneCallerScript:: - dr $1045e8, $10460a -ChadPhoneCalleeScript:: - dr $10460a, $104614 -ChadPhoneCallerScript:: - dr $104614, $104650 -DerekPhoneCalleeScript:: - dr $104650, $104675 -DerekPhoneCallerScript:: - dr $104675, $1046b2 -ChrisPhoneCalleeScript:: - dr $1046b2, $1046bc -ChrisPhoneCallerScript:: - dr $1046bc, $1046de -BrentPhoneCalleeScript:: - dr $1046de, $1046e8 -BrentPhoneCallerScript:: - dr $1046e8, $104711 -TiffanyPhoneCalleeScript:: - dr $104711, $10471b -TiffanyPhoneCallerScript:: - dr $10471b, $104744 -VancePhoneCalleeScript:: - dr $104744, $10474e -VancePhoneCallerScript:: - dr $10474e, $104770 -WiltonPhoneCalleeScript:: - dr $104770, $10477a -WiltonPhoneCallerScript:: - dr $10477a, $1047b8 -KenjiPhoneCalleeScript:: - dr $1047b8, $1047c2 -KenjiPhoneCallerScript:: - dr $1047c2, $1047e4 -ParryPhoneCalleeScript:: - dr $1047e4, $1047ee -ParryPhoneCallerScript:: - dr $1047ee, $10482a -ErinPhoneCalleeScript:: - dr $10482a, $104834 -ErinPhoneCallerScript:: - dr $104834, $104a80 -BikeShopPhoneCallerScript:: - dr $104a80, $10614d +SECTION "Phone Scripts", ROMX + +INCLUDE "engine/phone/scripts/unused.asm" +INCLUDE "engine/phone/scripts/mom.asm" +INCLUDE "engine/phone/scripts/bill.asm" +INCLUDE "engine/phone/scripts/elm.asm" +INCLUDE "engine/phone/scripts/trainers.asm" +INCLUDE "engine/phone/scripts/bike_shop.asm" +INCLUDE "data/phone/text/unused.asm" +INCLUDE "data/phone/text/mom.asm" +INCLUDE "data/phone/text/bill.asm" +INCLUDE "data/phone/text/elm.asm" +INCLUDE "data/phone/text/trainers.asm" +INCLUDE "data/phone/text/bike_shop.asm" SECTION "Names", ROMX |